电子邮件安全(一)【教学目的要求】熟悉各名词、术语的含义,掌握基本概念,特别是PGP、PGP 操作描述。
掌握网络安全体系结构、安全攻击方法等基本概念。
【重点】PGP、PGP操作描述【难点】PGP、PGP操作描述【教学方法】多媒体教学和传统教学相结合。
【课时安排】2课时【教学过程】【导入】E-mail 是Internet上最大的应用之一,安全电子邮件主要解决身份认证和保密性相关的安全问题。
【讲解】安全电子邮件涉及到的问题:安全算法的选择系统邮件的信息格式如何实现认证和信任管理邮件服务器的可靠性应用实际例子:PGP、S/MIME等邮件信息格式早期只支持ASCII文本格式随着Email的发展需要发送各种类型数据,形成了MIME (Multipurpose InternetMail Extensions,多用途网际邮件扩展)5.1 PGP(Pretty Good Privacy)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.1 PGP符号约定Ks=用户对称加密体制中的会话密钥PRa=用户A的私钥PUa=用户A的公钥EP=公钥加密DP=公钥解密EC=对称加密DC=对称解密H=散列函数||=串接Z=用ZIP算法压缩R64=转换为基-64的ASCII码格式5.1.2 PGP操作描述数字签名:DSS/SHA或RSA/SHA,散乱码由SHA产生信息加密:CAST-128或IDEA或3DES + Diffie-Hellman或RSACAST-128以其设计者Carlisle Adams 和Stafford Tavares 命名。
是一个64位的Feistel密码,使用16个循环并允许密钥大小最大可达128位Diffie-Hellman或RSA加密会话密钥数据压缩:ZIP与电子邮件的兼容性:Radix 64,将加密消息转换为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:PUa mod 264PGP数字签名也需要密钥IDPGP消息格式消息部分签名部分时间戳发送方公钥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用消息的会话密钥部分中的用户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.2 S/MIME是Internet电子邮件格式MIME (Multipurpose Internet Mail Extensions,多用途网际邮件扩展)的安全扩充(S/MIME中的S)与PKI结合,使用X.509证书S/MIME是目前的工业标准,PGP则更多地用于个人安全电子邮件SMTPSMTP有以下缺陷不能传输可执行文件或其它二进制对象只能传输7-位ASCII码字符邮件报文长度可能受限ASCII和字符码EBCDIC(扩展二进制编码的十进制交换码)的转换不一致问题MIME概要定义了5个新的消息头字段,提供了关于消息体的信息定义了大量的内容格式,从而标准化地表达多媒体电子邮件定义了多种转换编码方式,可以将任意内容格式转换到邮件系统可识别的标准格式MIME的5个头字段MIME-Version:必须为1.0(RFC2045、RFC2046)Content-Type:定义了多种类型,如Image、Video、Application等Content-Transfer-Encoding:编码类型,将消息主体转换到消息传输能接受的格式,例如radix64Content-ID:MIME实体的唯一标识符Content-Description:对象内容描述(如mpeg)S/MIME的功能封装数据(Enveloped data):加密的内容和加密后的会话密钥数据签名(Signed data):用私有密钥对数据摘要进行签名,内容与签名被转换成base64(radix-64)编码,一个签名的数据消息只能被带有S/MIME能力的接收者查看。