电子邮件加密技术初探(20170718-20170720探索日志)

作者:荒原之梦

前言:邮件加密一直是人们十分关心的问题。在我们还只能使用信纸进行通讯的时代,人们就发明了信封和火漆来防止信件被偷窥。在互联网时代,我们的信息安全面临着越来越多的挑战,除了需要国家出台相应的法律(我国已于2016年06月01日起正式实施中华人民共和国网络安全法)来保护我们个人的信息安全之外,还需要从我们自身做起才能有效的保护个人信息,防止被非法获取。当然,邮件加密绝不仅仅是设置更加复杂的密码,邮件传输信道的加密和邮件内容的加密以及我们自身对各种秘钥的管理——各个环节都需要我们的关注。这几天我主要了解了电子邮件加密的相关技术,下面列举如下,择日分类详述。

一、邮件加密技术基础

1.HTTPS协议

HTTPS=HTTP+SSL/TLS。这里需要明白的是HTTP,SSL,TLS的具体含义以及在实际使用过程中如何将信息进行加密解密。简单的讲,HTTPS协议就是将在网络中传输的数据进行加密,使得在服务器端和客户端之间传输的数据不再是明文数据。

注:这里补充一点:我们必须分清楚“邮件通信加密”和“邮件内容加密”。上述中提到的SSL指的是建立一条加密链路以加密邮件通讯,其实这个链路中传输的邮件内容是没有被SSL加密的。而下面将要提到的PGP加密指的是邮件内容的加密。

2.RSA公钥加密。

RSA公钥加密算法基于一个简单的事实,就是将两个大质数相乘很容易,但是想要在不知情的情况下根据结果找出是由哪两个数相乘得到的该结果却不容易,至少在当今一段时间和过去想要暴力破解使用了长秘钥的RSA加密信息是相当困难的。

3.数字签名。

数字签名的应用主要是为了证明信息的真实性,例如被加密的信息其实也可能被修改。正如我们在网上下载软件或者其他文件后通常会测试一下哈希值一样,目的之一就是为了排除我们收到的是一个被修改过的文件的可能性。

4.PGP邮件加密。

GnuPG是应用了PGP协议的开源加密软件,GnuPG的官网为https://gnupg.org/。GnuPG是GNU将OpenPGP(即PGP)中的专利算法去除后实现的开源软件。GnuPG整合了RSA公钥加密和数字签名技术,可以运行在Windows或Linux系统中,可以用来加密文件或者邮件。其实很多邮箱客户端都集成了GnuPG,例如在linux中可以在Evolution和Mozilla Thunderbird这两个邮箱客户端中使用GnuPG,在Windows(或Linux)中可以使用Kmail(Kmail是kontact的邮箱组件,网址https://userbase.kde.org/Kontact/zh-cn

图 1

在Windows中还可以使用Gpg4win(官网https://www.gpg4win.org/)来发送基于PGP加密的邮件。

图 2

另外Outlook邮箱客户端也有GnuPG的组件。

二、邮件加密的实现

想要在网络上进行加密通讯其实需要一个系统的工作,不仅需要多种信息加密工具的配合使用确保信息不被泄露以及不被篡改,还有有关人员身份的隐匿,而且在很大程度上还需要对“人”本身进行有效的管理,特别是在公司等组织内部,由于所需保密的信息可能涉及多人,此时对人的管理就显得尤为重要。

下面我就从技术的角度列举一下使用加密电子邮件的一些方法,下面的有些方法可以组合使用以提高保密强度:

1.使用电子邮件服务商提供的加密电子邮件服务

1.1 ProtonMail

ProtonMail官网:https://protonmail.com/

根据ProtonMail官网上的介绍,ProtonMail使用了End-to-End端到端加密技术,而且ProtonMail开放了自己的源代码。并且,注册ProtonMail是不需要提供手机号的,其总部和邮件服务器都位于瑞士。

图 3

1.2 Lavabit

Lavabit官网:https://lavabit.com/

Lavabit曾因棱镜门事件被关闭,不过在2017年Lavabit重新上线。

图 4

2.使用电子邮封加密电子邮件

电子邮封(百度百科:电子邮封)是一种比较方便使用的电子邮件加密软件。直观的讲,电子邮封就是给电子邮件加上了一个信封。MailCloak是一款电子邮封软件,可以实现对邮件内容的加密,有客户端版,火狐版等。MailCloak由GWEBS公司提供,此外GWEBS还提供有其他保障数据安全的软件。GWEBS官网:http://www.gwebs.com/

图 5

3.使用PGP加密邮件

前面已经提到多种实现了GnuPG加密的邮件客户端,使用GnuPG是一种较为可靠的邮件加密方法(从没有绝对的信息安全可言),但是这些软件的使用(如果你想发挥它们的最大功能的话)比较复杂,我将在另一篇文章里详细介绍安装和配置Gpg4win并使用Gpg4win发送加密文件,之后在另一台电脑上解密加密邮件的过程。

以上三种邮件加密方法需要收发信件的双方都使用相应的加密措施,否则有可能造成无法解密信息或者信息的泄露。

警示:所有信息加密技术都应该用于维护自身的合法利益,避免个人信息被别人非法获取后对我们自身造成伤害。所以,千万不要尝试使用信息加密技术做危害他人和社会的事情,我们必须在法律允许的范围内行事,不然再强大的加密技术也不可能让你做到永远高枕无忧。

2017/06/28探索日志

作者:荒原之梦

前言:今天主要还是在想办法解决我搭建的网站打不开PHP的问题,我一直想尽快解决这个问题,但是在今天下午的时候我决定先不着急解决这个问题,先着手了解与之相关的数据库和服务器配置,采取迂回战术,等我弄懂了相关技术再去解决我的网站的问题应该会比盲目的按照网上的解决办法尝试会有更深刻的理解。下面我就来总结一下今天到现在为止我的探索进展。

1.服务器

昨天老师还批评我们说都不喜欢用Linux系统,就算用也是用图形化界面。其实图形化界面确实很好看,在某些时候操作也是很方便的,我觉得如果是桌面版的操作系统,无论Windows还是linux,用图形化界面还是比较方便于日常使用的,因为桌面版主要是服务于个人办公和娱乐的,那些办公软件和媒体播放软件也只有在图形化界面里可以用吧——我不知道使用Shell的时候(不是Shell模拟器)能不能播放视频~~

但是吧,在使用服http://zhaokaifeng.com/wordpress/wp-admin/post-new.php务器操作系统时还是乖乖的用命令行吧,首先服务器,例如通常的web服务器,都是用来托管文件的,GUI界面就显得比较多余了,还会拖慢系统的运行速度,占用系统资源,所以还不如用命令行。此外,同样一个名字的发行版Linux,在系统内核上虽然是一样的,但是在具体的软件配置上还是有区别的,比如在Linux服务器系统上,Apache、MySQL、php这些都是标配。当然,桌面版操作系统也可以安装这些。

在众多Linux系统里Ubuntu应该是一个比较适合用作日常办公娱乐使用的操作系统了,同时也是一个中国本土化比较全面的操作系统,支持很多中文软件。在Ubuntu的中文官网优麒麟上有两大版本的ubuntu操作系统,分别是发行版(由商业公司开发和维护)和社区版(由Linux志愿者开发和维护)。

图 1

而且在发行版和社区版的下面还有更细致的分类——分为了桌面版和服务器版。

图 2

我在云服务器里选择的是CentOS作为操作系统,因为CentOS比较适合用在服务器上,但是我对CentOS还不是很熟悉,也没听说过CentOS有服务器版的。找过资料才知道,CentOS在安装时可以选择安装桌面版还是服务器版。其实用过Ubuntu就知道CentOS确实是一个更适合用在服务器上的操作系统,相比于Ubuntu里有软件中心等方便日常使用的软件,CentOS就显得很“冷清”了。

下图是CentOS的GUI桌面:

图 3

下图是Ubuntu的GUI桌面:

图 4

2.下一步计划

下一步我准备在Windows和CentOS上建一个用本地电脑作为服务器的网站,主要目的是为了熟悉建站的整个流程,然后再去云服务器上建网站。而且学会在本地建站也能为我今后做安全相关试验时搭建实验环境打下一个基础。

Java基础小知识1——分别使用字节流和字符流复制文件

作者:荒原之梦

前言:在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的。

1.使用字节流缓冲区复制文件

示例代码如下:

运行完代码,刷新目录后,ccc文件夹下就会出现从bbb文件夹里复制过来的文件aaa.txt

 

图 1

2.使用字符流复制文件

示例代码如下:

运行完代码,刷新目录后,ccc文件夹下就会出现从bbb文件夹里复制过来的文件aaaaaa.txt

图 2

在单用户模式下修改CentOS的root密码

作者:荒原之梦

前言:我们在使用CentOS的过程中可能会发生忘记root用户密码的情况,本文就从应用的角度简单介绍一下如何在单用户模式下修改root用户的密码。

  • 开启CentOS,进入系统启动菜单

将光标停留在系统开机时默认的启动项(如下图绿色区域所示),然后根据蓝色区域的提示内容“按下e键编辑已经选中的项目”的提示按下e键,进行下一步操作。

图 1
  • 修改操作的前期准备

按下e键后我们可能无法看到我们需要编辑的区域,这是因为在较新版本的CentOS中这个编辑页面不是一次显示完的,我们可以看到两个箭头分别指向上和下,使用上下方向键向下翻就会找到我们需要编辑的位置了。

图 2

翻到下面后就是这个页面,我们要编辑的内容就是蓝色区域所示的两个位置。我们要把其中的” ro”替换成” rw init=/bin/sh”,并把rhgb quiet删除。

图 3

修改后的页面如下:

图 4

其中rw后面的\是修改时系统自动加上去的,表示换行的意思。

  • 开始修改密码的相关操作

按上述步骤修改完成后,按Ctrl+X组合键启动系统。输入passwd并两次输入新的root密码,之后输入“touch /.autorelabel”(用于selinux重启后更新label)和“exec /sbin/init”(正常启动init进程,重启),然后回车。

图 5

等待系统完成更新后就可以使用修改后的密码进入系统:

图 6

公告

出于学习和研究之目的,根据计划,本人将在本站所在服务器上进行一系列部署更新与更改工作,届时本站可能出现短时或长时间的访问异常。具体公告如下:

1.优化服务器磁盘数据存储情况,备份重要数据。

2.优化网站页面布局。

3.开展有关于电子邮件服务器配置的实践性工作。

4.配置服务于本人个人的有关服务。

5.本人保证所有将要在本站服务器上进行的操作都将以合法和公开的方式进行,所有操作都不会对网络中非本人所拥有的服务器和其他电子计算机造成危害。具体工作内容将随着本人工作的开展在不损害本人合法利益的前提下逐步公告。

6.以上工作将于2017年07月30日下午19点整陆续开展,特此公告。

荒原之梦

2017年07月30日

公告

1.本网站主要用于本人(即本网站法定所有者)学习测试之用,因此本网站随时可能无法访问。

2.本网站拥有完善的网络安全防御机制,本人原则上不同意任何形式和目的的网络攻击行为。请勿对本网站采取DDoS攻击、端口扫描、注入、网络监听等行为,否则本网站保留在法律允许的范围内采取合理反制措置的权利。

3.本网站将发布一些本人的文章,除非特殊声明,所有在本网站发布的文章均为本人独立创作,其著作权归本人所有。