电子邮件安全.docx
《电子邮件安全.docx》由会员分享,可在线阅读,更多相关《电子邮件安全.docx(25页珍藏版)》请在冰点文库上搜索。
电子邮件安全
电子邮件安全
(一)
【教学目的要求】熟悉各名词、术语的含义,掌握基本概念,特别是PGP、PGP操作描述。
掌握网络安全体系结构、安全攻击方法等基本概念。
【重点】PGP、PGP操作描述
【难点】PGP、PGP操作描述
【教学方法】多媒体教学和传统教学相结合。
【课时安排】2课时
【教学过程】
【导入】E-mail是Internet上最大的应用之一,安全电子邮件主要解决身份认证和保密性相关的安全问题。
【讲解】
安全电子邮件
涉及到的问题:
安全算法的选择
系统邮件的信息格式
如何实现认证和信任管理
邮件服务器的可靠性
应用实际例子:
PGP、S/MIME等
邮件信息格式
早期只支持ASCII文本格式
随着Email的发展需要发送各种类型数据,形成了MIME(MultipurposeInternetMailExtensions,多用途网际邮件扩展)
5.1PGP(PrettyGoodPrivacy)
1.提供了一种机密性和数字签名的安全服务,广泛用于电子邮件和文件存储的安全应用
2.选择各种经过实际验证的安全算法作为基础构件
3.将这些算法有机整合起来,形成一个通用的独立于操作系统和硬件平台的应用程序
4.是一个自由软件包()
PGP的优势
1.免费得到,支持多种平台(DOS/Windows、Unix、Macintosh等)
2.建立在一些经过实际验证的算法基础上(RSA、DSS、Diffie-Hellman、IDEA、3DES、SHA-1、MD5),选用算法的生命力和安全性得到公众认可
3.应用范围极其广泛
4.不从属于任何政府机构和标准化组织
5.已经成为互联网标准文档(RFC3156)
6.免费得到,支持多种平台(DOS/Windows、Unix、Macintosh等)
7.建立在一些经过实际验证的算法基础上(RSA、DSS、Diffie-Hellman、IDEA、3DES、SHA-1、MD5),选用算法的生命力和安全性得到公众认可
8.应用范围极其广泛
9.不从属于任何政府机构和标准化组织
10.已经成为互联网标准文档(RFC3156)
5.1.1PGP符号约定
Ks=用户对称加密体制中的会话密钥
PRa=用户A的私钥
PUa=用户A的公钥
EP=公钥加密
DP=公钥解密
EC=对称加密
DC=对称解密
H=散列函数
||=串接
Z=用ZIP算法压缩
R64=转换为基-64的ASCII码格式
5.1.2PGP操作描述
数字签名:
DSS/SHA或RSA/SHA,散乱码由SHA产生
信息加密:
CAST-128或IDEA或3DES+Diffie-Hellman或RSA
CAST-128以其设计者CarlisleAdams和StaffordTavares命名。
是一个64位的Feistel密码,使用16个循环并允许密钥大小最大可达128位
Diffie-Hellman或RSA加密会话密钥
数据压缩:
ZIP
与电子邮件的兼容性:
Radix64,将加密消息转换为ASCII串
分段处理:
适应最大消息尺寸限制
PGP身份认证
发送方
产生消息M
用SHA-1对M生成一个160位的散列码H
用发送者的私钥对H加密,并与M连接,压缩传输
接收方
解压缩,并用发送者的公钥解密并恢复散列码H
对消息M生成一个新的散列码,与H比较。
如果一致,则消息M被认证。
PGP认证说明
说明
RSA的强度保证了发送方的身份
SHA的强度保证了消息认证的有效性
DSS/SHA-1可选替代方案
签名与消息可以分离
对消息进行单独的日志记录
可执行程序的签名记录,检查病毒
文档多方签名,可以避免嵌套签名
PGP保密性
发送方
生成消息M,压缩后,为该消息生成一个随机数作为会话密钥
用会话密钥加密M
用接收者的公钥加密会话密钥并与加密后的消息M连接
接收方
用自己的私钥解密恢复会话密钥
用会话密钥解密恢复消息M,解压缩
PGP保密性说明
采用CAST-128(或IDEA或3DES)、64位CFB方式。
一次性密钥,单向分发,公钥算法保护
对称加密算法和公钥加密算法的结合可以缩短加密时间
用公钥算法解决了会话密钥的分配问题
不需要专门的会话密钥交换协议
由于邮件系统的存储-转发的特性,用握手方式交换密钥不太可能
每个消息都有自己的一次性密钥,进一步增强了保密强度
公开密钥算法的长度决定安全性
RSA(768-3072)、DSS(1024)
PGP认证与保密的结合
两种服务都需要时,发送者先用自己的私钥签名,然后用会话密钥加密消息,再用接收者的公钥加密会话密钥。
压缩
压缩的时机(在签名之后加密之前):
在签名之后的原因:
1.将来验证时只需要存储原始报文和签名
2.因为压缩算法的不同实现版本可能会产生不同的结果,这样若先压缩则会使得签名结果不一致;为保证签名的一致性,需要约束所有的PGP实现都使用同样的压缩算法和参数,这难以实现
压缩之后对报文加密可以增强加密的强度,压缩过的报文比原始明文冗余更少,密码分析更加困难;而且节省空间
压缩算法使用了ZIP
【作业布置】思考题1-3。
【教学后记】通过本章教学,学生掌握了PGP的有关基本概念,了解了PGP的符号表示方法等知识,该部分内容只是一个框架描述,比较抽象,难懂。
电子邮件安全
(二)
【教学目的要求】熟悉各名词、术语的含义,掌握基本概念,PGP报文定义、加密密钥和密钥环、PGP报文的发送和接收流程。
【重点】PGP报文、PGP报文的发送和接收流程。
【难点】安全体系结构和主动攻击。
【教学方法】多媒体教学和传统教学相结合。
【课时安排】2课时
【教学过程】
【导入】
【讲解】
与电子邮件的兼容性
签名和加密的结果是任意的8位字节流,而很多电子邮件系统仅允许使用包含ASCII文本的数据块
应用radix-64将二进制流转换成ASCII码
radix-64将每三个字节的二进制数据映射成四个ASCII字符,长度增加了33%,但是压缩能够补偿radix-64的扩展
分段和重组
某些Internet服务可访问的最大长度受限(50000bytes)
长报文必须分段
PGP在radix-64转换完成后,自动将长报文分段
接收端自动剥离包头,重组
PGP报文的发送和接收流程
5.1.3加密密钥和密钥环
PGP使用四种类型的密钥:
一次性会话常规密钥,公钥,私钥,基于口令短语的常规密钥。
需求:
需要产生不可预测的会话密钥
一个用户可拥有多个公钥/私钥对,需要某种手段来标识具体的密钥
每个PGP实体需要维护一个文件保存其公钥私钥对,另一个文件保存通信对方的公钥。
密钥标识符
一个用户有多个公钥/私钥对时,接收者如何知道发送者是用了哪个公钥来加密会话密钥?
将公钥与消息一起传送,但是浪费空间
将一个标识符与一个公钥关联,对一个用户来说做到一一对应,但是要对密钥ID进行分配,比较繁琐
PGP的解决办法
以64位定义密钥ID:
PUamod264
PGP数字签名也需要密钥ID
PGP消息格式
消息部分
签名部分
时间戳
发送方公钥ID
消息摘要的头2个8位字节,使接收方判断是否使用了正确的公钥
消息摘要(发送方私钥加密)
会话密钥部分
接收方的公钥ID
会话密钥(接收方公钥加密)
私钥环和公钥环
系统地组织密钥
【作业布置】思考题P18的4题。
【教学后记】通过本章教学,学生掌握了网络安全的有关基本概念,了解了网络安全的体系结构等知识,还对网络攻击的类别进行了介绍,扩充了学生的专业知识的视野,为后面的网络安全学习打下了基础。
安全电子邮件密钥管理
【教学目的要求】熟悉各名词、术语的含义,掌握基本概念,公钥管理、S/MIME。
【重点】S/MIME。
【难点】公钥管理、S/MIME。
【教学方法】多媒体教学和传统教学相结合。
【课时安排】2课时
【教学过程】
【导入】先前已经介绍了PGP,接下来介绍公钥管理、S/MIME。
【讲解】
密钥环说明
私钥环保存该节点用户的公钥和私钥对,公钥环保存另一个节点用户的公钥
私钥环
UserID:
通常是用户的邮件地址。
也可以是一个名字
加密的私钥:
使用CAST-128(或IDEA或3DES)加密
用户选择加密私钥的口令;
当系统用RSA生成一个新的公钥/私钥对时,要求用户输入口令短语。
对该短语使用SHA-1生成一个160位的散列码后,销毁该口令;
系统用其中128位作为密钥,用CAST-128加密私钥,然后销毁这个散列码,并将加密后的私钥存储到私钥环中;
当用户要访问私钥环中的私钥时,必须提供口令。
PGP将检索出加密的私钥,生成散列码,解密私钥。
PGP消息的生成(无压缩和radix-64)
签名
利用userid作为索引从私钥环中得到加密私钥
PGP提示输入口令,恢复私钥
利用私钥构造签名部分
加密
PGP产生一个会话密钥,并加密消息
PGP基于接收者userid从公钥环中获取其公钥
用该公钥加密会话密钥,以构造消息的会话密钥部分
PGP消息的生成(无压缩和radix-64)
PGP消息的接收(无压缩和radix-64)
解密
PGP用消息的会话密钥部分中的用户ID作为索引,从私钥环中获取私钥
PGP提示输入口令,恢复私钥
恢复会话密钥,并解密消息
验证
PGP用消息的签名部分中的用户ID作为索引,从公钥环中获取发送者的公钥
恢复被传输过来的消息摘要
PGP对于接收到的消息作摘要,并与上一步的结果作比较
PGP消息的接收(无压缩和radix-64)
5.1.4公钥管理
公钥管理的实质
用户A为了与其他用户用PGP互操作,必须建立一个拥有其他用户公钥的公钥环
威胁:
A从B发布公钥的系统上获取的公钥是攻击者C伪造的
攻击者C向A发送消息并伪造B的签名,这样A以为该消息来自B
对任何由A发往B的消息,C都可以阅读
得到可靠公钥的办法
物理上得到B的公钥
通过电话验证公钥
B将其公钥email给A,A可以用PGP对该公钥生成一个160位的SHA-1摘要,并以16进制显示。
这一特点称作密钥的“指纹”。
然后A打电话给B,让B在电话中对证“指纹”。
如果双方一致,则该公钥被认可
从双方都信任的个体D处获得B的公钥
D是公证人,生成一个签名的证书。
其中包含B的公钥、密钥生成时间。
D对该证书生成一个SHA-1摘要,用其私钥加密这个摘要,并将其附加在证书后。
因为只有D能够产生这个签名,没有人可以生成一个错误的公钥并假装是D签名的。
这个签名的证书可以由B或D直接发给A,也可以贴到公告牌上。
从一个信任的CA中心得到B的公钥证书
5.2S/MIME
是Internet电子邮件格式MIME(MultipurposeInternetMailExtensions,多用途网际邮件扩展)的安全扩充(S/MIME中的S)
与PKI结合,使用X.509证书
S/MIME是目前的工业标准,PGP则更多地用于个人安全电子邮件
SMTP
SMTP有以下缺陷
不能传输可执行文件或其它二进制对象
只能传输7-位ASCII码字符
邮件报文长度可能受限
ASCII和字符码EBCDIC(扩展二进制编码的十进制交换码)的转换不一致问题
MIME概要
定义了5个新的消息头字段,提供了关于消息体的信息
定义了大量的内容格式,从而标准化地表达多媒体电子邮件
定义了多种转换编码方式,可以将任意内容格式转换到邮件系统可识别的标准格式
MIME的5个头字段
MIME-Version:
必须为1.0(RFC2045、RFC2046)
Content-Type:
定义了多种类型,如Image、Video、Application等
Content-Transfer-Encoding:
编码类型,将消息主体转换到消息传输能接受的格式,例如radix64
Content-ID:
MIME实体的唯一标识符
Content-Description:
对象内容描述(如mpeg)
S/MIME的功能
封装数据(Envelopeddata):
加密的内容和加密后的会话密钥
数据签名(Signeddata):
用私有密钥对数据摘要进行签名,内容与签名被转换成base64(radix-64)编码,一个签名的数据消息只能被带有S/MIME能力的接收者查看。
数据的透明签名(Clear-signeddata):
只对数字签名进行base64编码,没有S/MIME的接收者依然可以看到报文内容,尽管他们不能验证该签名
签名并且封装数据(Signedandenvelopeddata)
S/MIME使用的算法
报文摘要:
SHA-1和MD5
数字签名:
DSS
对称加密:
3DES和RC2-40
公钥加密:
RSA(512-1024)、Diffie-Hellman
S/MIME用户代理
S/MIME使用了X.509v3的公钥证书
用户代理实现的密钥管理功能:
密钥生成:
生成Diffie-Hellman、DSS和RSA密钥对
注册:
公钥必须注册到CA,以获得X.509公钥证书
证书的存储和检索:
为验证接收到的前面和加密输出消息,用户需要访问本地证书列表
【作业布置】习题1-5题。
【教学后记】通过本章教学,学生掌握了电子邮件的有关基本概念,了解了S/MIME等知识。