📖
前言:电子邮件(Email)是因特网上被广泛使用的一种网络应用,即使在互联网高度发达的今天,人们有了大量的诸如微信、QQ等社交软件来交换信息,但它仍然是个人和商务活动中一种重要的信息交换工具。本章介绍电子邮件安全,主要包括电子邮件安全问题分析、安全电子邮件标准PGP、WebMail安全威胁及防范,最后介绍垃圾邮件的防范。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/1332bdd471a347f197db4ab19a5560c5.png)
目录
- 🕒 1. 电子邮件安全问题
- 🕒 2. 安全电子邮件标准PGP
-
* 🕘 2.1 PEM
- 🕘 2.2 S/MIME
- 🕘 2.3 PGP
-
* 🕤 2.3.1 PGP发送和接收邮件的过程
- 🕤 2.3.2 PGP消息格式
- 🕤 2.3.3 PGP密钥管理
- 🕤 2.3.4 PGP信任关系
- 🕒 3. WebMail安全威胁及防范
- 🕒 4. 垃圾邮件防范
- 🕒 5. PGP实验
🕒 1. 电子邮件安全问题
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/273785ac0097458999bd270d1e53cb73.png)
安全需求:
- 机密性:保证邮件在传输过程中不会被第三方窃取,只有邮件的真正接收方才能够阅读邮件的内容,即使发错邮件,接收方也无法看到邮件内容。
- 完整性:保证邮件在传输过程中不会被修改
- 不可否认性:保证邮件发送人不能否认其发过的邮件
- 真实性:保证邮件的发送人不是冒名顶替的,它同邮件完整性一起可防止攻击者伪造邮件
基于SMTP、POP3/IMAP等协议的电子邮件系统没有采取必要的安全防护措施,导致:
- 邮件内容被窃听
- 垃圾邮件(Spam)
- 邮件炸弹
- 传播恶意代码(钓鱼邮件)
- 电子邮件欺骗
安全措施:
- 端到端的安全电子邮件技术 ,保证邮件从发出到接收的整个过程中,内容保密、无法修改且不可否认
- 传输安全增强技术 ,在网络层或传输层使用安全协议(IPsec, SSL/TLS)来保证应用层的电子邮件在安全的传输通道上进行传输
- 邮件服务器安全增强 ,采用安全防护设备(防火墙、入侵检测系统)保护邮件服务器;增加邮件服务器攻击检测和防护能力。
- 邮件发送方身份验证
* 发件人策略框架SPF
* DKIM协议
* DMARC协议
🕒 2. 安全电子邮件标准PGP
端到端的安全电子邮件标准和协议主要有三种
- PEM (Privacy Enhanced Mail,隐私增强电子邮件)
- S/MIME (Secure/Multipurpose Internet Mail Extensions,安全/多用途因特网邮件扩展)
- PGP (Pretty Good Privacy,优良隐私保护)
🕘 2.1 PEM
由美国RSA实验室基于RSA和DES算法开发的安全电子邮件方案。它在电子邮件标准格式上增加了 加密、认证、消息完整性保护和密钥管理功能 。
由于PEM在MIME之前提出的,因此它并不支持MIME, 只支持文本信息 。PEM 依赖于PKI并遵循X.509认证协议
,而当时要建立一个可用的PKI并不是一件容易的事
🕘 2.2 S/MIME
S/MIME基于PEM,使用RSA提出的PKCS和MIME来增强Email的安全(对邮件主体进行 消息完整性保护、签名和加密 后作为附件发送)
S/MIME v1是1995年完成的(MIME是1992年推出的),v2在IETF的RFC2311和RFC2312中定义,v3在RFC 3850和RFC
3851中定义(这些RFC是信息文件,而不是标准或建议的标准)
S/MIME不仅用于实现安全电子邮件传输,任何支持MIME格式的数据传输机制或协议(如HTTP)均可用
🕘 2.3 PGP
PGP既是一个特定的安全电子邮件应用软件,也是一个安全电子邮件标准。
PGP最常用于安全电子邮件传输,但它也可以用于任何需要保证传输 机密性、完整性和认证 (不可否认性)的应用中。
功能:
功能服务 | 采用的算法 | 说明 |
---|---|---|
数字签名(包括身份鉴别) | 散列算法:SHA1, SHA24, SHA256, SHA384, SHA512, MD5, RIPEMD160 | |
等;签名算法:DSS或RSA | 先用散列函数,如SHA-1产生消息的散列码,然后用DSS或RSA算法对散列码进行签名 | |
消息加密 | 对称密码算法:CAST-18, IDEA, 3DES, AES;公开密码算法 RSA, Diffie-Hellman | |
消息用一次性会话密钥(对称密钥)加密, 会话密钥用接收方的公钥加密 | ||
压缩 | ZIP, ZLIB, BZIP2 | 消息用ZIP / ZLIB / BZIP2 算法压缩后存储或传送 |
邮件兼容性 | Radix 64 | 邮件应用安全透明,加密后的消息用 Radix 64 转换(也就是MME的Base64编码) |
数据分段 | 为了满足邮件的大小限制,支持分段和重组 |
单选题:如果要在网络层保护电子邮件的安全,则应采用的协议是()
A. IP B.TLS C. PGP D. IPSec
答案:D
🕤 2.3.1 PGP发送和接收邮件的过程
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/12294ec6125b4edfb2d8f18c1a290289.png)
☆ Q:签名、加密、压缩的顺序问题?
A:在PGP中,是对未压缩的邮件正文进行散列计算后,再对散列值进行签名。然后将邮件正文和签名拼接后进行压缩后加密。在压缩之前进行签名的主要原因有两点:一是对没压缩的消息进行签名,可便于对签名的验证,如果在压缩后再签名,则需要保存压缩后的消息或在验证时重新压缩消息,增加了处理的工作量;二是由于压缩算法ZIP在不同的实现中会在运算速度和压缩率之间寻求平衡,因而可能会产生不同的压缩结果(当然,直接解压结果是相同的),因此压缩后再进行签名就可能导致无法实现鉴别(接收方在验证签名时可能会因压缩的原因而出现验证失败)。PGP
对加密前的明文(含签名)进行压缩,而不是在加密后再压缩的主要原因也有两点:一方面因为先压缩再加密方案缩短了报文大小,从而减少了网络传输时间和存储空间;另一方面经过压缩实际上是经过了一次变换,变换后减少了明文中上下文的关系,比原始消息的冗余信息更少,再加密的安全性更高,而如果先加密,再压缩,效果会差一些。
Q:兼容性考虑(Base64编码):为什么要进行Base64编码?对性能的影响如何?
A:在兼容性方面,加密后的报文使用Base64编码将报文转换成ASCII字符串,主要考虑到很多文件系统只允许使用ASCII字符组成的报文。实际应用中,使用Base64编码转换后将导致消息大小增加33%(每3个字节的二进制数据映射成4个ASCIII字符)。由于加密前对消息进行了压缩,实际的性能下降幅度要小很多
Q:分段与重装:为什么要分段?如果分段,会话密钥部分和签名部分在第几个报文段?
A:PGP还需考虑电子邮件系统文件设施对最大报文长度的限制(一般为50000个字节),因此,PGP还需提供报文的分段和重组功能。分段是在所有其他的处理(包括Base64编码转换)完成后才进行的,因此,会话密钥部分和签名部分只在第一个报文段的开始位置出现一次。在接收端,PGP必须剥掉所有的电子邮件首部,才能重新装配成原来的完整分组。
🕤 2.3.2 PGP消息格式
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/501cd1b36bb04a10a9a3b5ce99a9bbe1.png)
🕤 2.3.3 PGP密钥管理
会话密钥生成与管理
- 会话密钥Ks是由基于美国国家标准“金融机构密钥管理(大规模)”(ANSI X 9.17)中定义的随机数生成方法的伪随机数产生器(Pseudorandom number Generator, PRG)产生的128位随机数,只用于一条消息的一次加解密过程
- Ks使用接收方的公钥加密后发送给接收方。这种会话密钥的安全交换方法称为“ 数字信封 ”
公开密码算法密钥管理,用户A获取用户B的公钥主要方式包括:
- 物理交付
- 电话验证
- 通过可信的第三方
- 通过可信的认证中心(CA)
公开密码算法密钥管理
- 每个用户都有一个 公钥环 (Public Key Ring)和 私钥环 (Private Key Ring),均用表型数据结构存储
- 公钥环存储该用户知道的其他用户的公钥,私钥环存储用户自己的所有公钥/私钥对。PGP允许一个用户同时拥有多个公钥/私钥对,主要目的有两个:一是经常变换密钥,以增强安全性;二是多个密钥对可以支持同一时刻与多个用户进行通信
- PGP采用 密钥标识符 (密钥ID,Key ID)来表示密钥,并建立密钥标识和对应公钥/私钥间的映射关系
- 私钥存储方法:加密私钥的 口令短语 (passphrase)p,加密后存储在私钥环中
🕤 2.3.4 PGP信任关系
PGP信任模型:以用户为中心的信任模型(信任网模型,Web of Trust)
- 没有一个统一的认证中心来管理用户公钥,每个人都可以作为一个CA对某个用户的公钥签名,以此来说明这个公钥是否有效(可信)
- 当用户接收到新的公钥时,首先要检查公钥证书的签名者,然后根据这个签名者的信任程度计算出该公钥的合法性,如果合法才能把它插入到自己的公钥环中
- 公钥加密体制基础——用户必须确信他所拿到的公钥属于它看上去属于的那个人(公钥的真实性)
用户要得到介绍人真实公钥并信任介绍人
(相对比较容易,而黑客想假冒很困难)
- 公钥环中每一个公钥项都有表示 信任度 的字段,包括:
- 密钥合法性字段 :合法和不合法
- 签名可信性字段 :不信任、部分信任、一直信任和绝对信任
- 拥有者可信性字段 :不信任、部分信任、一直信任和绝对信任, 由 用户自己指定。
多选题:1、用户A对用户B和C的公钥拥有者可信性字段打的都是部分信任,系统要求,两个部分信任的签名才能让公钥合法,当前A收到了G的公钥,上边的签名来自于B和C,以下说法正确的是(
)
A. B对G公钥的签名信任性字段为绝对信任
B. C对G公钥的签名信任性字段为部分信任
C. G的公钥合法
D. G的公钥不合法
答案:BC2、用户A对用户B和C的公钥拥有者可信性字段打的都是部分信任,D是完全信任,系统要求,两个部分信任或者一个完全信任的签名才能让公钥合法,当前A收到了G的公钥,上边的签名来自于B,Z的公钥签名来自D,以下说法正确的是(
)
A. B对G公钥的签名信任性字段为部分信任
B. D对Z公钥的签名信任性字段为部分信任
C. Z的公钥合法
D. G的公钥不合法
答案:ACD
公钥合法性与所有者信任之间的关系: 公钥合法是否一定可信 ?
- “公钥是否合法” 与 “所有者是否可信” 是两个不同的问题,因为尽管公钥合法,其所有者也可以是不可信的
- “对哪个密钥的所有者进行哪种级别的信任” 是因人而异的
口令或私钥的泄密
- 口令泄露或被破解
- 私钥文件的保护
PGP缺少PKI体系那样严格的证书撤销机制,很难确保没有人使用一个已不安全的密钥,是PGP安全体系中比较薄弱的环节
PGP使用的公开密码算法、对称密码算法、安全散列函数的安全性问题
- 2019.10,密码学家Gaëtan Leurent和Thomas Peyrin宣布对SHA-1计算出第一个选择前缀冲突,并选择PGP/GnuPG信任网络来演示SHA-1的前缀冲突攻击
- GnuPG 2.2.18(2019.11.25发布):对2019-01-19之后基于SHA-1创建的身份签名视为 无效
🕒 3. WebMail安全威胁及防范
WebMail不需借助专门的邮件客户端,只要能用浏览器上网就能收发邮件,极大地方便了用户。但是,WebMail的使用也带来的新的安全威胁,前面介绍的Web应用所面临的很多安全问题同样在WebMail中存在
安全问题:
- WebMail暴力破解
- 防范:禁用账户、禁止IP地址、登录检验
- 恶意HTML邮件
- 利用HTML邮件,攻击者能进行 电子邮件欺骗 ,甚至欺骗用户更改自己的邮箱密码
- 在HTML邮件中 嵌入恶性脚本程序 ,攻击者还能进行很多破坏攻击,如修改注册表、非法操作文件、格式化硬盘、耗尽系统资源、修改“开始”菜单等,甚至能删除和发送用户的邮件、访问用户的地址簿、修改邮箱帐户密码等
- Cookie会话攻击
- 攻击者获取用户WebMail的Cookie信息后,就能很容易地侵入用户的WebMail。攻击者获取用户WebMail的Cookie信息的方法主要有 内网监听和XSS攻击
- 含有恶性脚本程序的HTML邮件能使攻击者获取WebMail的Cookie信息
- WebMail系统应该避免使用持久型Cookie会话跟踪,使攻击者在Cookie会话攻击上不能轻易得逞
🕒 4. 垃圾邮件防范
垃圾邮件基本特征如下:
- 内容的重复性:内容的大量重复
- 信息的合法性:查不到发件人信息
- 时间的有效性:不正常的发送时间
- 地址的有效性:无效的发送源地址
- 邮箱名的有效性:名称由无意义字符串组成
- HTML的合法性:不合法的HTML tag,大量图片
- 发送行为特征:大批量、时间短、发送源变换
反垃圾邮件方法
- 基于地址的 垃圾邮件检测:黑白名单检测、反向域名验证技术
- 基于内容的 垃圾邮件检测:分布式协作法、规则过滤法、统计过滤法、关键词过滤法
- 基于行为的 垃圾邮件检测:基于邮件通信拓扑相似性的垃圾邮件检测、基于邮件用户社交关系的垃圾邮件检测、基于SMTP连接行为的垃圾邮件
🕒 5. PGP实验
Gpg4win是一款非对称加密方式软件。简单来讲,就是用公钥加密文件,用私钥解密文件。如果你需要发送加密信息,首先获取接收者的公钥,然后利用该公钥加密后传递,对方利用对应的私钥就可解密。也就是说,公钥是锁,私钥是钥匙。非对称加密方式很好地解决了传递机密信息的问题。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/eadf9ae86ee34699a9cf4e5b458df9a2.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/dd570abfcd504033834df811c3619e94.png)
1、 使用Gpg4win完成自己公私钥对的生成并导出公钥,公私钥对的名字是你的名字(Alice)。发送自己的公钥给Bob,并接收Bob的公钥进行导入。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/5b1765ef4dbf4c5d92e92e4f220a1dea.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/006cc2f7a4c340128b3213d69e346ed8.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/dc9c4ed8a3fa439d9e0ff3a1a609e07b.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/5a26765e2ecb471e8fdead24335501c5.png)
导入:
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/fd8c90190e044170b4a85dfcdaa38a53.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/3e15e0b0b93a4283ab9349b33440ad60.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/37b463ef6464483f840888fd25de496c.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/a264aa74212d4f8a9583b862d8ac5a0a.png)
2、
在邮件正文输入文本信息,写下“hello,Alice”,复制文本到剪贴板并用Gpg4win进行加密,加密密钥为Bob的公钥,再将密文重新复制回邮件正文发送给Bob。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/59a999068b02451097991373abeae6cb.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/adf52fd3cec34ad380e10340edbfeb36.png)
-----BEGIN PGP MESSAGE-----
hF4DOx6IZtNgixoSAQdA8UB6S1SPCPJJFfTVmJErPIPZjJEOiotryg8S2WKNV2Iw
bPqAS8ZzvxIHstntaxTdAoAalToTcyot9ZAKE8fQiF5K0LCo9V4VDhQVN2QLFW8l
1FIBCQIQv8R7sGOCe1IymUJIVhT826DZ+bf6LKa4ofWLPZG1I3w4tCobu3Oo3m1t
UGeTVC8l9U1F1hVOmrfiAbvxxSELscRY9YIzIvIbiU05WFQB
=TpUR
-----END PGP MESSAGE-----
3、 Bob用自己的公钥进行解密,查看明文邮件内容。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/fdee327971c64f9d87382eb91ba6ef16.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/064d70b39b904b4599ff72747d8898b5.png)
4、 新建文本文件,内容为你的名字,使用你的私钥和Bob的公钥为文件签名和加密,并将文件发送给Bob。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/489692029e0740afa093c8a063259641.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/95f25acaad6941dd8bb97c49891882e7.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/cbefbe52a56a48e9965e831d8c99dd60.png)
5、Bob接收文件,并完成解密和签名验证。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/a1440dd4bdbf4c18925a5e9143e6899f.png)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/c042da006f93407ab0c8fb29384850be.png)
OK,以上就是本期知识点“电子邮件安全”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页
网络安全工程师(白帽子)企业级学习路线
第一阶段:安全基础(入门)
第二阶段:Web渗透(初级网安工程师)
第三阶段:进阶部分(中级网络安全工程师)
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资源分享
![](https://i-blog.csdnimg.cn/blog_migrate/19ed6359ed5e5b6c651832df66b50223.jpeg)