资源描述
2020/10/14 1 第 8章 网络加密与认证 2020/10/14 2 网络加密方式 基本方式 链路加密 每个易受攻击的链路两端都使用加密设备进行加密 缺点是每次到达通信节点时都需要解密以确定路由 , 在节点处容易受到攻击 端端加密 仅在通信线路的两端进行加密,可防止对网络上链路 和节点设备的攻击 可以提供一定程度的认证 缺点是只能对数据报中的用户数据部分加密,容易受 到业务流量分析攻击 2020/10/14 3 结合方式 主机之间使用端端加密 每个链路之间使用链路加密 PSN PSN PSN PSN PSN 分组交换节点 链路加密设备 端端加密设备 2020/10/14 4 端端加密的逻辑位置 指加密功能部署在 OSI参考模型的哪一层 不同的层次有不同的协议 异构的网络之间只在应用层可能有端到端 加密 2020/10/14 5 存储转发通信的加密范围 电子邮 件 表示层 会话层 传输层 网络层 链路层 物理层 电子邮 件 表示层 会话层 传输层 网络层 链路层 物理层 电子邮 件 TCP IP 链路层 物理层 互联网 互联网 电子邮 件 TCP IP 链路层 物理层 2020/10/14 6 各层加密的数据 数据链路层报头 网络层报头 IP报头 TCP报头 数据 数据链路层报头 数据链路层报头 网络层报头 IP报头 TCP报头 数据 数据链路层报头 数据链路层报头 网络层报头 IP报头 TCP报头 数据 数据链路层报头 TCP层加密 应用层加密 数据链路层加密 2020/10/14 7 Kerberos认证系统 2020/10/14 8 Kerberos 雅典娜计划的一部分 (MIT)。 可信的第三方认证方案。 假定主机是不可信的 要求每个 client (对每次业务请求 ) 证明其 身份 . 不要求用户每次业务请求都输入密码 ! 密码设计基于 Needham Schroeder协议 2020/10/14 9 Kerberos 设计 用户必须在工作站会话开始的时候验证 自己 (登录会话 ). 密码永远不在网络中明文传输 (或在存储 器中存储 ) Kerberos认证框图 C: 客户机; AS: 认证服务器; TGS: 票据许可服务器; V: 服务器; IDC: 客户机用户的身份; IDV: 服务器 V的身份; IDtgs: TGS的身份; ADC: C的网络地址; PC: C上用户的口令; TSi: 第 i个时戳; lifetimei: 第 i个有效期限; KC: 由用户口令导出的用户和 AS的共享密钥; Kc,tgs: C与 TGS的共享密钥; Kc,v: C与 V的共享密钥。 KV: TGS与 V的共享密钥; Ktgs: AS与 TGS的共享密钥; Tickettgs:票据许可票据 TicketV:服务许可票据 第 阶段(认证服务交换)用户从 AS获取票据许 可票据: C AS: IDCIDtgsTS1。 AS C: EKCKc,tgsIDtgsTS2lifetime2Tickettgs。 Tickettgs=EKtgsKc,tgsIDCADCIDtgsTS2life time2 第 阶段(票据许可服务交换)用户从 TGS获取服务许可票据: C TGS: IDvTickettgsAuthenticatorc TGS C: EKc,tgsKc,vIDvTS4TicketV Tickettgs=EktgsKc,tgsIDCADCIDtgsTS2lifeti me2 Ticketv=EkvKc,vIDCADCIDVTS4lifetime4 Authenticatorc=EKc,tgsIDCADCTS3 第 阶段(客户机与服务器间的认证交换)用户从服务 器获取服务: C V: TicketvAuthenticatorv。 V C: EKc,vTS5+1。 Ticketv=EkvKc,vIDCADCIDVTS4lifetime4 Authenticatorc=EKc,vIDCADCTS5 2020/10/14 14 认证符与票据不同 票据可重复使用且有效期较长 认证符只能使用一次且有效期很短。 票据 Tickettgs在这里的含义事实上是 “ 使用 Kc,tgs的 人就是 C”。 认证符的含义实际上是 “ 在时间 TS3, C使用 Kc,tgs”。 票据不能证明任何人的身份,只是用来安全地分 配密钥,而认证符则是用来证明客户的身份。 Kerberos区域和多区域的 Kerberos AS TGS AS TGS 服务器 Client 区域 A Kerberos Kerberos 1 2 4 3 5 6 7 客户向本地 AS申请访问本区域 TGS的票据: C AS: IDCIDtgsTS1。 AS向客户发放访问本区域 TGS的票据: AS C: EKCKc,tgsIDtgsTS2lifetime2Tickettgs 客户向本地 TGS申请访问远程 TGS的票据许可票据: C TGS: IDtgsremTickettgsAuthenticatorc。 TGS向客户发放访问远程 TGS的票据许可票据 : TGS C: EKc,tgsKc,tgsremIDtgsremTS4Tickettgsrem。 客户向远程 TGS申请获得服务器服务的服务许可票据: C TGSrem: IDvremTickettgsremAuthenticatorc。 远程 TGS向客户发放服务许可票据: TGS C: EKc,tgsremKc,vremIDvremTS6Ticketvrem。 客户申请远程服务器的服务: C Vrem: TicketvremAuthenticatorc。 对有很多个区域的情况来说,以上方案的扩充性不好 2020/10/14 16 X.509 2020/10/14 17 证书的格式 8.3.1 证书 CA A =CAV, SN, AI, CA, TA, A, AP 表示证书发放机构 CA向用户 A发放的证书 用户 A可从目录中得到相应的证书以建立到 B的以下证书链: X W W V V Y Y Z Z B ,并 通过该证书链获取 B的公开钥。 B可建立以下证书链以获取 A的公开钥: Z Y Y V V W W X X A 内部结点表示 CA, 叶结点表示用户。 证书链 证书的获取 2020/10/14 19 证书的吊销 每一 CA还必须维护一个证书吊销列表 CRL(certificate revocation list), 存放所 有未到期而被提前吊销的证书 每一用户收到他人消息中的证书时,都 必须通过目录检查证书是否已被吊销。 2020/10/14 20 8.3.2 认证 2020/10/14 21 8.4 PGP PGP( pretty good privacy) 目前使用最为普遍的一种电子邮件系统 提供认证业务和保密业务。 8.4.1 运行方式 EP和 DP分别为公钥加密算法和解密算法,使用 DSS 和 RSA算法 SKA和 PKA, SKB和 PKB分别为发送方、接收方的秘密钥和公开钥, EC和 DC分别为分组加密算法和解密算法,加密算法用 CAST-128, 也可用 IDEA或三重 DES,运行模式为 64比特 CFB模式 KS为分组加密算法所用的会话密钥,密钥为一次性 H表示杂凑函数,使用 SHA算法 ,表示链接, Z为 ZIP压缩算法, Z-1解压 , R64表示基 64变换 PGP 业 务 和 保 密 业 务 2020/10/14 23 分组加密算法加密消息、公钥加密算法加密一次性会话密钥减少加密时间; 公钥加密算法来传送一次性会话密钥,保证了仅接收方能得到; 一次性会话密钥进一步加强分组加密算法 先消息签字再对签字 加密 优于 先加密、再 对加密结果签字 。 将签字与明文消息在 一起存储比与密文消 息在一起存储会带来 很多方便 第三方对签字的验证 带来方便 保密业务 保密、认证业务 认证业务 SHA和 RSA算法结合, 也可结合使用 DSS算法 和 SHA算法 2020/10/14 24 压缩的目的是为邮件的传输或文件的存储节省空间。 压缩运算的位置是在签字以后、加密以前 ,压缩前产生签字的原因有二: 对不压缩的消息签字,可便于以后对签字的验证。 ZIP压缩算法是不确定性的,因而产生出不同的压缩结果(虽然解压结果相同)。 电子邮件兼容性 许多电子邮件系统只允许使用 ASCII文本串, PGP使用 基数 64变换 ,将每 3个 8比特的二元数据映射为 4个 ASCII字符。 2020/10/14 26 8.4.2 密钥和密钥环 PGP所用的密钥有 4类: 分组加密算法所用的一次性会话密钥 基于通行字短语的密钥 公钥加密算法所用的公开钥和秘密钥 2020/10/14 27 一次性 会话密钥的产生 CAST-128和 IDEA所用会话密钥长为 128比特 3DES所用的会话密钥长为 168比特。 CAST-128随机数产生器 输入为一个 128比特的密钥和两个 64比特的明文 明文分组由用户随机地键盘输入 96比特,剩下 32比特是键盘 输入所用的时间。 采用 CFB模式,对两个明文分组加密 输出两个 64比特密文分组链接在一起形成 128比特会话密钥密钥。 以后随机数产生器输入密钥为上一次输出会话密钥。 2020/10/14 28 密钥识别符 接收方通常都有多个密钥对,他怎么知道会话密钥是 用他的哪个公开钥加密的?发送方在数字签字时也一 样? 对每一用户的每一公开钥都指定一个惟一的识别符, 称为密钥 ID。 PGP用公开钥中 64个最低有效位表示该密钥的 ID, 即公开钥 PKA的 ID是 PKA mod 264。 由于 64位已足够长,不同密钥的 ID相重概率非常小。 2020/10/14 29 密钥环 PGP为每个用户都提供了两个表型数据结构(见 238页表 8.2) 存储用户自己密钥对(即公开钥 /秘密钥)称为秘密钥环 数据项有:时戳、密钥 ID、 公开钥、被加密的秘密钥、用 户 ID。 被加密的秘密钥 用户首先选择一个 通行字短语 作为 SHA的输入 产生出一个 160比特的杂凑值, 用杂凑值的 128比特作为密钥按 CAST-128对秘密钥加密,加 密完成后再销毁杂凑值。 秘密钥的安全性取决于所用通行字的安全性 存储该用户所知道的其他各用户的公开钥,称为公钥环 数据项包括: 时戳、密钥 ID、公开钥、用户 ID PGP的消息格式 2020/10/14 31 PGP的消息产生过程 签署消息 加密消息 2020/10/14 32 认证消息 解密消息 PGP的消息接收过程
展开阅读全文