zoukankan      html  css  js  c++  java
  • 电子邮件加密技术初探(2017/07/18-2017/07/20探索日志)

    邮件加密一直是人们十分关心的问题。在我们还只能使用信纸进行通讯的时代,人们就发明了信封和火漆来防止信件被偷窥。在互联网时代,我们的信息安全面临着越来越多的挑战,除了需要国家出台相应的法律(我国已于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的组件。

    邮件加密的实现

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

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

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

    2.Lavabit
    Lavabit官网:https://lavabit.com/
    Lavabit曾因棱镜门事件被关闭,不过在2017年Lavabit重新上线。
    图 4

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

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

    C.使用PGP加密邮件

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

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

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

    end
    更多内容请访问我的个人主页http://zhaokaifeng.com/

  • 相关阅读:
    Springboot配置异常错误页
    Springboot进行hibernate-vidator数据验证
    Springboot模拟https安全访问(使用Java提供的keytool命令生成证书)
    Springboot的项目如何打成war包
    Springboot的开发环境(dev)、测试环境(beta)和生产环境(product)打包部署
    使用Maven构建的Springboot父子工程的项目打包部署
    Springboot整合Spring的.xm配置文件
    Springboot使用MessageSource读取资源文件
    Springboot使用内置对象HttpServletRequest、HttpServletResponse
    Springboot的控制层结合@PathVariable的使用
  • 原文地址:https://www.cnblogs.com/wildernessdreams/p/9053834.html
Copyright © 2011-2022 走看看