第六章:应用层安全协议
1. 电子邮件安全协议(PEM、S/MIME、PGP)
2.远程登陆的安全协议(SSH)
3.Web安全协议(S-HTTP)
参考文献:
教科书第5章
1
1. 电子邮件安全协议(PEM、
S/MIME、PGP)
电子邮件的威胁
邮件炸弹
邮件欺骗
邮件服务器控制权
电子邮件安全协议
PEM (Privacy Enhanced Email,RFC 1421
through 1424)
S/MIME
PGP(Pretty Good Privacy)
2
电子邮件的安全需求
机密性:只有接收者才能阅读
报文的加密:关键是密钥的分发
收发双方如何共享密钥?
认证:发送者的身份认证
基于公钥技术,用发送者的私钥对报文的摘要进行加密,即
数字签名
基于共享密钥:事先发送者与接收者共享一个密钥,采用消
息认证码(MAC)对报文进行认证
完整性:报文未被修改
报文的完整性与身份认证的方法类似,通常可在一起进行
抗否认性:发信者的不可抵赖性,可供第三方鉴别
基于公钥技术,采用发送者的私钥签名
利用公钥体制,用
接收者的公钥加密
报文。
但对于长报文及多
个接收者时该怎么
办?
发送者生成一个密钥,采用对称密码
算法加密报文,即S{M}
再用接收方的公钥加密密钥S,并与
加密的报文同时发送。
假设接收者有A、B、C三人,就分别
生成三个加密密钥KA{S},KB{S}
,KC{S}。
3
PEM(Privacy Enhanced Mail)
PEM协议是80年代末90年代初发展起来的,
它的功能主要包括加密、源认证和完整性,
RFC1421-1424
与此同时,出台了传输多种媒体格式的
EMAIL标准:MIME(Multipurpose
Internet Mail Extensions,RFC2045),
而S/MIME(RFC2633)采用了PEM的许多设
计原理在MIME的基础上进行了扩展
4
PEM 的构成
PEM将邮件报文分成几部分,有的需要加密,有的则需要
认证,这些需要特殊处理的报文通过语句标记。
例如在需要加密的报文段前插入
BEGIN PRIVACY-ENHANCED MESSAGE
在需要加密的报文后插入
END PRIVACY-ENHANCED MESSAGE
报文加密采用DES算法
认证采用MD-5
密钥的分发
基于公钥技术,用接收者的公钥加密会话密钥,并在RFC 1422中
定义了证书体系。
基于对称密码时,采用事先共享的密钥加密会话密钥。
5
PGP(Pretty Good Privacy)
Email安全加密系统
PGP提供的安全业务:
加密:发信人产生一次性会话密钥,以IDEA、3-DES或
CAST-128算法加密报文,采用RSA或D-H算法用收信人的
公钥加密会话密钥,并和消息一起送出。
认证:用SHA对报文杂凑,并以发信人的私钥签字,签名算
法采用RSA或DSS 。
压缩:ZIP,用于消息的传送或存储。在压缩前签字,压缩
后加密。
兼容性:采用Radix-64可将加密的报文转换成ASCII字符
数据分段:PGP具有分段和组装功能
6
机密性和认证
机密性:
发送端产生随机的128位数字作为会话密钥
对称算法加密报文
接收端公钥加密会话密钥
认证
采用SHA-1产生160位HASH值
用发送者的私钥对HASH值签名
报文只需要认证服务或加密服务,当同时需要认证和
加密服务时
采用先签名,后加密顺序(与IPSEC ESP中的先加密,后
MAC相反)
通常将明文与签名一起保存比较方便
验证时,不需要涉及会话密钥
7
压缩
HASH
加密
A的公钥
A的私钥
解密
对称密码加密
8
压缩
PGP 的压缩过程在报文的签名和加密之
间,即先对报文签名,然后压缩,再是
加密
签名后再压缩是为了保存未压缩的报文和签
名
压缩后加密是为了提高密码的安全性,因为
压缩后的报文具有更少的冗余,所以密码分
析会更困难,另外加密的报文也更短
压缩算法采用ZIP
9
E-mail 的兼容性
在多数的邮件系统中是以ASCII字符形式传输,加密后的任
意8比特报文可能不符合ASCII字符特点。
采用基64转换方式 (see appendix 5B).
基64转换方式 的采用将原报文扩展了33%.
10
分段和重组
通常邮件的最大报文的长度限制在50,000
octets.
超过标准长度的报文必须分段.
PGP 自动对过长的报文分段.
接收端再将其重组.
11
Sumary of PGP Services
12
13
加密密钥和密钥环
PGP使用四种类型的密钥:一次性会话对称密钥,
公钥,私钥,基于过度阶段的传统密钥
需求
需要一种生成不可预测的会话密钥
需要某种手段来标识具体的密钥(一个用户可拥有多个
公钥/私钥对,以便随时更换)
每个PGP实体需要维护一个保存其公钥/私钥对的文件
和一个保存通信对方公钥的文件
14
密钥标识符(Key ID)
一个用户有多个公钥/私钥对时,接收者
如何知道发送者是用了哪个公钥来加密
会话密钥
将公钥与消息一起传送
将一个标识符与一个公钥关联,对一个用户
来说做到一一对应
定义KeyID 包括64个有效位,(KUa
mod 264)
15
密钥环(Key Rings)
KeyID在PGP中标识所使用的发送者和接收者
的密钥号
两个keyID包含在任何PGP消息中提供保密与认证
功能
需要一种系统化的方法存储和组织这些key以保证
使用
PGP在每一个节点上提供一对数据结构
存储该节点拥有的公钥/私钥对私钥环
存储本节点知道的其他用户的公钥环
16
密钥对产生时间
加了密的私钥 如用户邮件
地址
17
Format of PGP Message
18
19
20
公钥管理
PGP虽然采用公钥密码体系,但不是证书
保护公钥免受攻击是PGP的一个问题
采用信任关系保护公钥
21
安全协议的分析与思考
认证和加密的次序
会话密钥产生的复杂度与安全通道的粒度有关
对应用层安全来说,由于需求明确,通常采用一次一密,
会话密钥的产生比较简单
对传输层安全来说,安全保护的是某个连接。(如SSL
协议,虽然可用于保护所有的应用层协议,但在邮件保
护中,由于邮件服务器到本地的路径是用POP/MAPI
协议 ,所以需要分段SSL,较为复杂)
对于网络层安全(如IPSEC),安全通道保护的可能是
某个数据流,也可能是一个端-端,也可能是LAN-
LAN,因此会话密钥的生成最为复杂。
对于链路层安全来说,安全保护只限于一截链路,加密
算法和密钥分发都不宜复杂
22
S/MIME
Secure/Multipurpose Internet Mail
Extension (安全/多用途Internet邮件
扩展,RFC2630、2632、2633)
S/MIME 将会成为商业和机构使用的工业
标准.
PGP 为个人e-mail 提供安全
23
Simple Mail Transfer
Protocol (SMTP, RFC 822)
SMTP (简单邮件传输协议)存在的问题:
SMTP不能传输可执行文件和其他二进制码 (jpeg image)
SMTP只能传输7-位ASCII字符的文字
STMP服务器拒绝接收超长邮件
ASCII 到 EBCDIC 转换问题
截取换行超过76字符的行,等等
MIME是对RFC 822框架的扩展,致力于解决STMP存在
的问题
24
MIME的头标
MIME的头标定义了5个新的字段
版本(MIME-Version): (按照 RFC 2045, RFC
2046定义的规格)
内容类型(Content-Type): 这个字段用于详细描述
主体的数据
内容传输编码(Content-Transfer-Encoding): 内容
采用的编码方案 (如radix-64)
内容ID(Content-ID): 该字段主要用于多个上下文
时,对MIME实体的标识.
内容描述(Content Description): 对内容的文本描
述 (.,mpeg)
25
S/MIME 功能
在功能上,S/MIME与PGP相似,通过使用签名、加密或签名/
加密的组合来保证MIME通信的安全,但强化了证书的规范
S/MIME的安全功能:
封装的数据: 加密的内容和加密的会话密钥
签名的数据: 报文摘要+发送者的私钥签名,然后使用基64变换编
码内容和签名
透明签名: 签名但不加密.只对签名进行基64变换,这样具有MIME支
持而没有S/MIME权能的接收者也能读取
签名和封装的数据: 各种不同嵌套顺序将数据加密、签名,如签名
加密的数据或加密签名的数据
S/MIME使用证书,它的密钥管理方案介于严格的
证书层次结构和PGP信任网
26
Algorithms Used
报文摘要: SHA-1 and MD5
数字签名: DSS
对称密码算法: Triple-DES, RC2/40
(exportable)
公钥密码算法: RSA with key sizes of
512 and 1024 bits, and Diffie-
Hellman (for session keys).
27
PGP
vs
PEM、
S/MIME
Item PGP PEM or S/MIME
Supports encryption? Yes Yes
Supports authentication Yes Yes
Supports non-repudiation? Yes Yes
Supports compression? Yes No
Supports mailing lists? No Yes
Uses base64 coding? Yes Yes
Current data encryption algorithm IDEA DES
Key length for data encryption (bits) 128 56
Current algorithm for key
management
RSA RSA/D-H
Key length for key management
(bits)?
384/512/102
4
Variable
User name space User
defined
conformant? No Yes
Can eavesdropper read messages? No No
Can eavesdropper read signatures? No Yes
Internet Standard? Yes Yes
28
2. 远程登录安全协议
SSH: Secure SHell
SSH主要由芬兰赫尔辛基大学的Tatu Ylonen
开发的,它提供一条安全的远程登录通道,
可以代替telnet, rlogin等。由于受版权和
加密算法的限制,很多人都使用它的免费替
代产品OpenSSH。
SSH协议有版本1(SSHv1)和版本
2(SSHv2),这两版本互不兼容,目前SSH
协议只有草案(2002,9),由IETF的SECSH
工作组规范,还没有形成RFC。
29
SSH的体系
SSH传输层(Transport Layer)协议
提供服务器主机认证,提供数据加密,提供数据完整
性支持
SSH认证(Authentication)协议
为服务器提供用户的身份认证
Secure FTP
SSH连接(Connection)协议
将加密的信息隧道复用成若干个逻辑通道,提供给高
层的应用协议使用。
SSH Transport Layer ProtocolSSH Transport Layer Protocol
SFTPSFTPConnection
Connection
ProtocolProtocol
AuthenticationAuthentication
ProtocolProtocol
30
SSH采用的认证、加密算法
Supported authentication methods
X509 Certificates
Public keys
Passwords
Supported encryption algorithms
3DES
Blowfish
Arcfour
Cast
Supported hash algorithms
SHA1
MD5
31
3.Web安全协议(S-HTTP)
32
S-HTTP采用的认证、加密算法
单向哈希函数
MD2,MD5,SHA-1
加密算法
DES-CBC,3DES-CBC,DESX-CBC,IDEA-CFB
,RC2-CBC,RC4,CDMF-CBC
数字签名算法
RSA,DSS
33
S-HTTP的安全操作
如果使用数字签名,则消息后面要附加适当的证书,
或者接收方能通过其他途径获取证书。
如果使用消息认证,那么,会用一个共享密钥采用
单向哈希函数对整个文档计算MAC值。
为了支持数据加密,S-HTTP定义了两种密钥分发
机制。第一是使用公钥机制进行带内密钥交换,即
用接收方的公钥加密会话密钥。第二是使用预先共
享密钥。
34