500 likes | 724 Views
第 5 章 电子邮件安全. 主要内容. Pretty good privacy (PGP ) S/MIME. PGP (良好隐私). Philip R. Zimmerman 是 PGP 的 创造者。 PGP 提供了机密性和身份鉴别服务,可用于电子邮件和文件存储应用中 。 Philip R. Zimmerman 进 行的工作: 1. 选择最好的可用加密算法来创建数据块 2. 将这些算法集成到独立于操作系统和处理器的通用应用程序 3. PGP 数据包和文档(包含源码),可免费获得 4. 与公司( Network Associates )约定,提供 PGP 商业版本.
E N D
主要内容 • Pretty good privacy(PGP) • S/MIME
PGP(良好隐私) • Philip R. Zimmerman 是 PGP的创造者。 • PGP提供了机密性和身份鉴别服务,可用于电子邮件和文件存储应用中。 Philip R. Zimmerman进行的工作: 1.选择最好的可用加密算法来创建数据块 2.将这些算法集成到独立于操作系统和处理器的通用应用程序 3.PGP数据包和文档(包含源码),可免费获得 4.与公司(Network Associates)约定,提供PGP商业版本
PGP广泛应用的原因 • 可获得不同平台的免费版本 • 基于被认可的算法 • 应用范围广泛 • 不由政府和标准化组织控制和开发
5.1.1 符号 使用的符号: • Ks=对称加密算法中使用的会话密钥 • KRa=用户A的私钥,用于公钥加密方案 • KUa=用户A的公钥,用于公钥加密方案 • EP=公钥加密 • DP=公钥解密 • EC=对称加密 • DC=对称解密 • H=hash函数 • ||=连接 • Z=使用ZIP算法进行压缩 • R64=转换为radix 64的ASCII格式
5.1.2 操作描述 • 包含5种服务: • 认证 • 机密性 • 压缩 • E-mail兼容性 • 分段
1.认证 PGP提供数字签名服务,步骤如下: • 发送者创建消息 • 发送者使用SHA-1算法产生消息160位hash代码 • 发送者私钥加密hash代码(RSA),将结果附在消息上 • 接收者使用RSA算法和发送者公钥解密和恢复hash代码 • 接收者生成新的hash代码,并与解密后的hash代码比较 Sha-1和RSA的结合能提供有效的数字签名方案
2.机密性 • 机密性用于传送加密消息或在本地存储加密文件 • PGP提供机密性服务,步骤如下: • 1.发送者产生一条消息及适合该消息的随机128位数字作为会话密钥 • 2.使用会话密钥和CAST-128(或IDEA或3DES)算法加密消息 • 3.使用接收者的公钥和RSA算法加密会话密钥,并附在消息上 • 4.接收者使用自己的私钥和RSA算法解密和恢复会话密钥 • 5.使用会话密钥解密消息
2.机密性(2) 特点: • 使用对称和公钥加密的结合,减少加密时间 • 使用公钥加密解决了会话密钥分配问题。 • 一次性会话密钥加强了常规加密算法的强度
3.机密性与认证 • 同时提供机密性和身份认证两种服务的方法: • 生成明文消息的签名并附在消息上 • 对处理后的消息进行压缩 • 用常规加密算法,利用会话密钥对压缩消息进行加密 • 利用对方的公钥加密会话密钥
4.压缩 默认情况下,PGP在应用签名之后但在加密之前压缩消息 • 压缩前生成签名的原因: 1.能保存未压缩的消息和签名,从而实现将来的验证 2.压缩算法的不确定性,难以验证压缩的消息 • 压缩后加密消息能提高密码的安全性
5.E-mail兼容性 • 电子邮件消息使用ASCII文本构成的块。 • PGP用radix-64进行转换,将8位二进制流转换为可打印的ASCII字符流 3个字节4个ASCII字符(还符加CRC校验) 使用radix-64使消息扩展33%,使用ZIP平均压缩比为2.0,总体压缩1/3
6.分段与重组 • 通常受限于最大消息长度(50000字节) • 更长的消息将被细分成足够小的段 • PGP 自动将过大的消息细分为几个足够小的段 • 接收者剥去所有email头,并进行块的重组
PGP服务总结 功能 应用的算法 数字签名 DSS/SHA或 RSA/SHA 消息加密 采用Diffie-Hellman或者RS A方案的CAST、IDEA或 者 3DES 压缩 ZIP E - mail 兼容性 Radix - 64 转换 - 分段
5.1.3 密钥和密钥环 PGP使用4种类型的密钥: • 一次性会话密钥 • 公钥 • 私钥 • 基于口令短语的对称密钥 对密钥的要求: • 能够生成不可预测会话密钥的方法 • 允许 用户拥有多个公钥/私钥对 • PGP必须维护自己的公钥/私钥对文件,以及由相应通信者的公钥组成的文件
1.会话密钥的生成 会话密钥的特点---与单一的消息相联系 CAST-128产生随机密钥---使会话密钥不可预测 PGP随机数的产生方法: • 根据文本和用户击键的时间产生随机数 • 基于ANSI X9.17算法产生伪随机数 真实随机数的目的: • 用于产生RSA密钥对 • 提供伪随机数发生器的初始值 • 提供伪随机数产生阶段的附加输入 伪随机数的目的: • 用于生成会话密钥 • 用于CFB模式的加密中的初始向量
2.密钥标识符 每个用户都会有多个公钥/私钥对,接收方需要确定使用的公钥: • 将公钥与消息一同发送 • 将标识符与每个公钥关联在一起 PGP采用的方法: 为每一个公钥分配密钥ID KUa mod 264 传送消息的格式: • 消息构件 • 签名构件 • 会话密钥构件
3.密钥环 任一PGP消息中都包括两个提供机密性和身份验证的密钥ID 在每个节点上采用数据结构对: • 私钥环: 一个用于存储此节点的公钥私钥对 • 公钥环: 一个用于存储此节点知道的其他用户的公钥
密钥环—私钥环 • 私钥环能用UserID或KeyID进行索引 • 私钥需要加密存储 • 由系统生成RSA的公钥/私钥对 • 用户选择一个口令,产生口令的hash值 • 利用生成的hash值加密私钥,并进行存储
5.1.4 公钥管理 1.公钥管理的方法 公钥加密技术最致命的弱点—公钥篡改 假设: A的公钥环包含B的公钥信息,但该公钥的真正拥有者是C A获得可靠的B的公钥,使用的方法如下: • 通过物理手段获得B的公钥(安全,但有明显局限) • 通过电话验证密钥(可验证密钥的“指纹”) • 从相互信任的个体D那里得到B的公钥 • 从可信的证书权威机构那里得到B的公钥
2. 信任的使用 • PGP没有包括建立认证权威机构或建立信任的任何规范,但提供了便捷的方式来使用信任、使用密钥来关联信任度、采用可信的信息等 • 公钥环的每个实体是一个公钥证书,相应的是密钥合法性(KeyLegit)字段——表示PGP信任这个用户的该密钥的程度 • 签名信任(SigTrust)字段——PGP用户信任公钥证书签名的程度,密钥合法性源于该项 • 所有者信任(OwnerTrust)字段——每个实体将公钥与一特定拥有者相联系,这个字段指出该公钥签名其他公钥证书的信任程度
信任关系处理过程 1、当A向公钥环中插入一个新公钥时,PGP必须向信任标志(trust flag)赋值,该标志与该公钥的所有者相关——所有者信任字段。 • 如果其所有者是A,则该值为最高信任(ultimate trust)。 • 否则,PGP询问用户,让用户给出信任级别。 • 用户可选:该公钥的所有者是不认识(unknown)、不信任(untrusted)、 接近信任(marginally trusted) 或完全信任(complete trusted)
信任关系处理过程(2) 2、当输入一个新的公钥时,可能有一个或多个签名跟随其后。更多的签名可以以后再加入。 • 当一个签名插入到一个条目中时,PGP查找公钥环中确定签名的创建者是否属于认识的公钥所有者。 • 如果是,则这个公钥的SIGTRUST字段的值被赋予OWNERTRUST 的值。 • 否则,赋予unknown user 值。
信任关系处理过程(3) 3、密钥合法性字段的值基于该条目中签名合法性来计算。 • 如果至少有一个签名信任字段值为最高信任(ultimate),则密钥合法性字段的值设为complete。 • 否则,PGP计算一个信任值的加权和。
所有者信任域 签名合法性 密钥合法性
3.废弃公钥 用户因怀疑密钥已被泄露等安全问题,可以废弃现有的公钥 废弃公钥的做法:所有者发出由他签名的密钥废弃证书,然后在尽可能大的范围内迅速传播该证书,以使潜在的通信者更新他们的公钥环 密钥废弃证书与标准签名证书的格式相同,但需要指明证书的目的是撤消公钥,并使用私钥进行签署 获得私钥的攻击者也可以发出这样的证书,但其可能的威胁较小
5.2 S/MIME • Secure/Multipurpose Internet Mail Extension 安全/多用途Internet邮件扩展 • S/MIME 将会成为商业和机构使用的工业标准. • PGP 主要为个人email提供安全性
RFC822 RFC822:关于邮件消息格式的协议标头行,如: • To: • From: • Subject: 主体: • 消息的正文,必须是ASCII文本 基于Internet的文本邮件消息的标准
多用途Internet邮件扩展 • MIME是对RFC822框架的扩展,可以解决smtp或其他邮件传输协议存在的一些问题和限制。
简单邮件传输协议 (SMTP, RFC 822) • SMTP/822方案的限制: • 可执行文件和其他二进制目标码 (jpeg image) • 包含各国语言字符的文本数据(non-ASCII) • 超过一定长度的邮件消息 • ASCII 到 EBCDIC 翻译问题 • X.400消息中的非文本制数据 • 没有遵守RFC821定义的smtp标准
MIME标头字段 • MIME-Version:必须为 “1.0” -> RFC 2045, RFC 2046 • Content-Type(内容类型):详细描述主体中的数据 • Content-Transfer-Encoding(内容向编码的转换):表示转换的类型 (radix-64) • Content-ID(内容ID):唯一标识MIME实体 • Content Description:对目标文件体的文本描述,尤其是目标文件不可读时 (如:声音数据)
MIME传输编码 • 传输编码的目的:提供在最大范围提供可靠的邮件传输 • MIME传输编码:见P125表5-4 • 7位 • 8位 • 二进制 • Quoted-printable • Base64 • X-token
5.2.3 S/MIME 的功能 • 封装的数据:包含加密内容和接收者用于加密内容的密钥. • 签名的数据:用签名者的私钥对消息摘要进行加密,形成数字签名。内容与签名被转换成base64编码,一个签名的数据消息只能被具有S/MIME能力的接收者查看 • 透明的签名数据: 只有签名部分用base64编码,结果是,即使接收者没有S/MIME能力,他也能查看消息内容,只是他不能验证该签名 • 签名和封装的数据: 签名和加密的结合,加密数据被签名或者签名数据被加密
S/MIME使用的算法 • 消息摘要: SHA-1和 MD5 • 数字签名: DSS,应当支持RSA • 公钥算法: ELGamal(Diffie-Hellman ),应当支持RSA • 加密消息:3DES和RC2/40
5.2.4 S/MIME消息 • 确保MIME实体的安全 S/MIME内容类型
S/MIME Clear Signing 正文部分 签名部分