1、12.1 12.1 协议安全性的概念协议安全性的概念12.2 Diffie-Hellman12.2 Diffie-Hellman协议协议12.3 SIGMA12.3 SIGMA协议协议12.4 SSL/TLS12.4 SSL/TLS协议协议12.5 VPN12.5 VPN与与IPSecIPSec协议协议 带身份认证的密钥交换协议需要要同时完带身份认证的密钥交换协议需要要同时完成两类目标:第一,在线认证协议当前参与成两类目标:第一,在线认证协议当前参与方的身份,其中某些协议只追求一方认证另方的身份,其中某些协议只追求一方认证另一方的身份,称为一方的身份,称为“单向认证单向认证”,另一些协,另一些
2、协议追求双方互相认证,称为议追求双方互相认证,称为“双向认证双向认证”; 第二,在协议双方之间生成一个密钥第二,在协议双方之间生成一个密钥K Ks s,K Ks s用于接下来对一切需要保密的数据进行对用于接下来对一切需要保密的数据进行对称加密。精确地说,这类协议的安全目标包称加密。精确地说,这类协议的安全目标包括以下必须被同时满足的三点。括以下必须被同时满足的三点。 如果协议任何一方如果协议任何一方A(B) A(B) 按照协议的逻辑按照协议的逻辑判定对方的身份是判定对方的身份是B(A)B(A),则当前实际参与协,则当前实际参与协议的对方确实是议的对方确实是B(A)B(A),这就是抗身份欺诈性,
3、这就是抗身份欺诈性质。质。 如果协议任何一方如果协议任何一方A(B) A(B) 按照协议的逻辑按照协议的逻辑判定当前与之会话的对方是判定当前与之会话的对方是B(A)B(A),则对方也,则对方也必定判定当前与之会话的对方是必定判定当前与之会话的对方是A(B)A(B),这就,这就是协议的一致性。是协议的一致性。 除合法参与方之外,协议所生成的会话除合法参与方之外,协议所生成的会话密钥密钥K Ks s对任何第三方(包括被动或主动攻击对任何第三方(包括被动或主动攻击者)都无法(用者)都无法(用P.P.T.P.P.T.算法)有效推断出来,算法)有效推断出来,这就是密钥保密性。这就是密钥保密性。 设设G
4、G是循环群,如是循环群,如F Fp p* *(p p是大素数),是大素数),g g是是其公开的生成子,其公开的生成子,G G上的离散对数问题是指:上的离散对数问题是指:任给任给U U= =g gx x求指求指x x;G G上的计算性上的计算性Diffie-Diffie-HellmanHellman问题是指:任给问题是指:任给U U= =g gx x和和V V= =g gy y两个元素,两个元素,求求g gxyxy;G G上的判定性上的判定性Diffie-HellmanDiffie-Hellman问题是指:问题是指:任给任给U U= =g gx x、V V= =g gy y和和W W三个元素,判
5、定三个元素,判定W W?= =g gxyxy。 Diffie-HellmanDiffie-Hellman协议的安全性要求协议的安全性要求G G上的上的判定性判定性Diffie-HellmanDiffie-Hellman问题难解,即不存在问题难解,即不存在P.P.T.P.P.T.算法算法A A能从任意的输入能从任意的输入U U(=(=g gx x) )、V V(=(=g gy y) )和和W W以显著偏离以显著偏离1/21/2的概率判定的概率判定W W?= =g gxyxy。 设设SIG=(KGSIG=(KGs s, Sign, Vf), Sign, Vf)是抗伪造的数字是抗伪造的数字签名方案,
6、签名方案,=(KG=(KGe e,E,D),E,D)是保密的对称加密是保密的对称加密方案。方案。 Diffie-HellmanDiffie-Hellman协议的过程如图协议的过程如图12-112-1所示,所示,其中其中( (vkvkA A, ,skskA A) )和和( (vkvkB B, ,skskB B) )分别是分别是A A和和B B的签字的签字公钥和私钥,并且假定公钥和私钥,并且假定A A和和B B事先已从可信任事先已从可信任的途径(如公钥基础设施中的数字证书)获的途径(如公钥基础设施中的数字证书)获得了对方签字公钥(得了对方签字公钥(vkvkB B和和vkvkA A),),f f是任
7、何一是任何一种散列函数。种散列函数。 A B A 随机生成x; B, gx, B BSign(skB, gx); 验证数字签名; 密钥交换 随机生成y; 阶段 计算出 gxy(gx)y; ASign(skA, gy) gy, A, E(gxy, 0|A|B) 验证数字签名; 计算出gxy(gy)x; 解密并验证明文是0|A|B; 解密并验证明文是1|B|A E(gxy, 1|B|A) E(f(gxy), Mi), i=1, 2, 3, 保密会话阶段 12.3.1 主体协议主体协议12.3.2 匿名的变体匿名的变体12.3.3 完整的协议实例:完整的协议实例:SIGMA-R 12.3.1 主体协
8、议主体协议 SIGMA SIGMA协议也是一类基于判定性协议也是一类基于判定性Diffie-Diffie-HellmanHellman问题难解性的密钥交换协议。问题难解性的密钥交换协议。 记号记号prfprf表示拟随机函数(在目前阶段读表示拟随机函数(在目前阶段读者将其想象为散列函数即可),者将其想象为散列函数即可),SIG=(KGs,Sign,Vf)SIG=(KGs,Sign,Vf)是抗伪造的数字签名方案,是抗伪造的数字签名方案,MAC=(KGm, MAC, MVf)MAC=(KGm, MAC, MVf)是抗伪造的消息认证码是抗伪造的消息认证码方案,循环群方案,循环群G G以以g g为公开的
9、生成子,为公开的生成子,G G上的判上的判定性定性Diffie-HellmanDiffie-Hellman问题难解。问题难解。 SIGMASIGMA协议过程如图协议过程如图12-212-2所示,其中所示,其中CA(A|CA(A|vkvkA)A)和和CA(B|CA(B|vkvkB)B)表示表示A A和和B B的公钥证的公钥证书。书。 A B 随机生成 x; gx 随机生成y; 计算出gxy和 Kmprf(0|gxy) gy, CA(B|vkB), Sign(skB, gx|gy), MAC(Km,CA(B|vkB) 计算出gxy和 Kmprf(0|gxy); 验证 B 的数字签名和 MAC(Km
10、,CA(B|vkB); CA(A|vkA), Sign(skA, gy|gx), MAC(Km, CA(A|vkA) 验证A的数字签名和 MAC(Km,CA(A|vkA); 12.3.2 匿名的变体匿名的变体 SIGMA SIGMA协议有能力针对一类特殊应用模式,协议有能力针对一类特殊应用模式,即协议参与方之一事先未必总能明确当前需即协议参与方之一事先未必总能明确当前需要与之对话的对方。要与之对话的对方。 这时一个常见的需求是协议的某一方不这时一个常见的需求是协议的某一方不先行暴露自己,仅在确认对方具有可信任的先行暴露自己,仅在确认对方具有可信任的身份之后再向对方出示自己的身份。身份之后再向对
11、方出示自己的身份。 图图12-212-2中所示的中所示的SIGMASIGMA协议已经具有这一协议已经具有这一特点:特点:B B先向先向A A出示自己的身份(第二条消出示自己的身份(第二条消息),而息),而A A仅在认证了仅在认证了B B的身份之后才向的身份之后才向B B表明表明自己的身份(第三条消息)。自己的身份(第三条消息)。 在实际应用中,这给了协议发起方在实际应用中,这给了协议发起方A A一个一个机会,一旦对方不属于自己所信任的实体,机会,一旦对方不属于自己所信任的实体,A A将立刻终止协议而不向将立刻终止协议而不向B B暴露自己的身份。暴露自己的身份。 这就是第一类匿名性质,即协议的参
12、与方这就是第一类匿名性质,即协议的参与方之一总是在另一方的身份被完全认证之后才之一总是在另一方的身份被完全认证之后才出示自己的身份。出示自己的身份。 这一性质也称为后验身份认证性质。这一性质也称为后验身份认证性质。 图图12-212-2中的中的SIGMASIGMA协议就使协议就使A A具有对具有对B B的后的后验身份认证性质。验身份认证性质。 A B 随机生成x gx 随机生成y; gy CA(A|vkA), Sign(skA, gx|gy), MAC(Km, CA(A|vkA) CA(B|vkB), Sign(skB, gy|gx), MAC(Km, CA(B|vkB) 还有第二类匿名性质,
13、即协议双方对任何还有第二类匿名性质,即协议双方对任何非参与方完全匿名。非参与方完全匿名。 这一要求在当代无线网络环境中是非常现这一要求在当代无线网络环境中是非常现实的:通信双方不仅需要保密其传输的数据,实的:通信双方不仅需要保密其传输的数据,而且经常期望不向任何第三方暴露自己的身而且经常期望不向任何第三方暴露自己的身份,以免暴露自己的行踪。份,以免暴露自己的行踪。 SIGMASIGMA协议略加修改就可以满足这一要求,协议略加修改就可以满足这一要求,办法是对含身份标识的消息进行对称加密,办法是对含身份标识的消息进行对称加密,而加密密钥来自当前协议会话生成的随机数。而加密密钥来自当前协议会话生成的
14、随机数。 这样,仅协议的合法参与方才能解密从而这样,仅协议的合法参与方才能解密从而“看到看到”身份标识,这就是如图身份标识,这就是如图12-412-4所示的所示的SIGMASIGMA协议,其中符号协议,其中符号 M M K K表示以表示以K K为密钥对为密钥对括号中的消息括号中的消息M M做对称加密,其他符号与图做对称加密,其他符号与图12-212-2中的完全相同。中的完全相同。12.3.3 完整的协议实例:完整的协议实例:SIGMA-R 这一协议不仅具有这一协议不仅具有12.112.1节描述的所有安全节描述的所有安全性质,而且还具有性质,而且还具有B B对对A A的后验身份认证性质的后验身份
15、认证性质(第一类匿名),并且(第一类匿名),并且A A、B B对任何第三方完对任何第三方完全匿名(第二类匿名)。全匿名(第二类匿名)。 A B 随机生成x sidA, gx, NA, infoA(1) 随机生成y; sidA, sidB, gy, NB, infoB(1) 计算ANB|sidA|gx| infoA(1)|infoA(2); sidA, sidB, infoA(2), CA(A|vkA), Sign(skA, A), MAC(K1m, CA(A|vkA)K1e 计算BNA|sidB|gy| infoB(1)|infoB(2); sidA, sidB, infoB(2), CA(B
16、|vkB), Sign(skB, B), MAC(K2m, CA(B|vkB) K2e A B 随机生成 x; gx 随机生成y; 计算出gxy和Keprf(2|gxy)、 Kmprf(0|gxy); gy, CA(B|vkB), Sign(skB, gx|gy), MAC(Km,CA(B|vkB)Ke 计算出gxy和Keprf(2|gxy)、Kmprf(0|gxy); 验证B的数字签名和MAC(Km,CA(B|vkB); CA(A|vkA), Sign(skA, gy|gx), MAC(Km,CA(A|vkA)Ke 验证A的数字签名和 MAC(Km,CA(A|vkA); 图中的符号图中的符号
17、E E和和D D分别表示某个选定的对称分别表示某个选定的对称加密方案的加密算法与解密算法,加密方案的加密算法与解密算法,prfprf表示某表示某个拟随机函数,个拟随机函数,HMACHMAC表示某种消息认证码生表示某种消息认证码生成算法,成算法,SignSign是选定的数字签名方案的签字是选定的数字签名方案的签字算法。算法。 A B 随机生成 RA; RA 随机生成 RB; RB 随机生成 y; g,gx, Sign(skB, RA|RB|g|gx), B 随机生成 x; 验证 B 的数字签名; gy Kmprf(gxy, 1); Kmprf(gxy, 1); KeA|KaA|KeB|KaBpr
18、f(Km, 2); FAprf(Km, 3); UE(KeA, FA|HMAC(KaA, FA); U KeA|KaA|KeB|KaBprf(Km, 2); F|tD(KeA, U); 验证 F=prf(Km, 3)t=HMAC(KaA, F); FBprf(Km, 4); VE(KeB, FB|HMAC(KaB, FB); V F|tD(KeB, V); 验证 F=prf(Km, 4)t=HMAC(KaB, F); (a)SSL/TLS 握手协议 明文消息 m j : Y jE(KeA, mj|HMAC(KaA, mj); Y j mj|hjD(KeA, Y j); 验证 h j =HMAC
19、(KaA, mj); 明文消息 m j+1 : Y j+1E(KeB, mj+1|HMAC(KaB, mj+1); Y j+1 mj+1 |hj+1D(KeB, Y j+1); 验证 h j+1 =HMAC(KaB, mj+1); (b)SSL/TLS 记录协议 12.5.1 VPN12.5.2 IPSec协议族协议族 12.5.1 VPN 所谓所谓VPNVPN是指虚拟私有网(是指虚拟私有网(Virtual Virtual Private NetworkPrivate Network)或虚拟专用网,它在不可)或虚拟专用网,它在不可信任的公共网络设施(如因特网)上通过安信任的公共网络设施(如因特
20、网)上通过安全协议等技术途径实现完全可信任的逻辑通全协议等技术途径实现完全可信任的逻辑通信环境,其效果就好像在完全私有的网络环信环境,其效果就好像在完全私有的网络环境上一样。境上一样。 从使用者的观点看,从使用者的观点看,VPNVPN分为内联网分为内联网VPNVPN、外联网外联网VPNVPN和远程接入和远程接入VPNVPN。 VPN VPN 也可以按照部署模式分类,部署模也可以按照部署模式分类,部署模式从本质上讲是指式从本质上讲是指VPNVPN逻辑连接的起点和终点。逻辑连接的起点和终点。 这时这时VPNVPN可以分为端到端(可以分为端到端(end-to-endend-to-end)模式和供应商
21、模式和供应商企业(企业(Provider-EnterpriseProvider-Enterprise)模式。模式。 12.5.2 IPSec协议族协议族 VPN VPN可以视为公共因特网上的一群可信任可以视为公共因特网上的一群可信任的安全区域,每个区域实施一组特定的对的安全区域,每个区域实施一组特定的对IPIP分组的数据保密、认证及访问控制策略。分组的数据保密、认证及访问控制策略。 IPSecIPSec协议族就是帮助因特网实现这一安协议族就是帮助因特网实现这一安全目标的具体技术。全目标的具体技术。 IPSec IPSec可以在主机可以在主机/ /主机之间、安全网关主机之间、安全网关/ /路由器
22、之间、主机路由器之间、主机/ /安全网关之间或主机安全网关之间或主机/ /路路由器之间实施。由器之间实施。 实施的模式有两种:传输模式和隧道模实施的模式有两种:传输模式和隧道模式。式。 传输模式用于保护传输模式用于保护IPIP分组所承载的上层分组所承载的上层协议数据,这种模式在原始分组的协议数据,这种模式在原始分组的IPIP首部与首部与上层协议的消息单元(如上层协议的消息单元(如TCPTCP段、段、UDPUDP消息)消息)之间插入一个之间插入一个IPSecIPSec首,但整个首,但整个IPIP分组仍以传分组仍以传统方式在因特网上被路由统方式在因特网上被路由/ /转发。转发。 隧道模式用来保护整
23、个隧道模式用来保护整个IPIP分组的内容,分组的内容,包括原始包括原始IPIP分组的首部和数据载荷部分。分组的首部和数据载荷部分。 在接下来进一步描述在接下来进一步描述IPSecIPSec之前,需要解之前,需要解释释IPsecIPsec的两个重要概念,这就是安全关联的两个重要概念,这就是安全关联(Security AssociationSecurity Association,SASA,中文名称也,中文名称也译为安全联盟)和安全策略(译为安全联盟)和安全策略(Security Security PolicyPolicy,SPSP)。)。 SASA是两个通信实体经协商建立起来的一是两个通信实体经
24、协商建立起来的一种协定,协定内容主要针对种协定,协定内容主要针对IPIP分组的安全保分组的安全保护机制,如数据的加密护机制,如数据的加密/ /解密算法、会话密钥、解密算法、会话密钥、随机数、身份认证算法和对应的参数等。随机数、身份认证算法和对应的参数等。 SP SP是是IPSecIPSec的另一个重要组成部分,它定的另一个重要组成部分,它定义两个运行义两个运行IPSecIPSec的机器之间的安全通信特征,的机器之间的安全通信特征,并决定在该通信中为所有并决定在该通信中为所有IPIP分组提供的安全分组提供的安全服务。服务。 现在可以解释现在可以解释IPSecIPSec的两个重要的子协议:的两个重
25、要的子协议:用于实现用于实现IPIP分组的数据完整性保护的分组的数据完整性保护的AHAH协议协议和用以和用以IPIP分组数据保密的分组数据保密的ESPESP协议。协议。 这两个协议都有其特定的首部,统称为这两个协议都有其特定的首部,统称为IPSecIPSec首,在具体情形则称为首,在具体情形则称为AHAH首或首或ESPESP首。首。 AHAH(Authentication HeaderAuthentication Header)协议把含)协议把含密钥的密钥的HMACHMAC散列值附加到散列值附加到IPIP分组上,以此实分组上,以此实现数据完整性、数据源认证和抗重放攻击。现数据完整性、数据源认证
26、和抗重放攻击。 ESP ESP(Encapsulating Security PayloadEncapsulating Security Payload)协议也表现为插入协议也表现为插入IPIP分组的一个分组的一个IPSecIPSec协议首。协议首。 对对IPSecIPSec,履行通信双方身份认证和动态,履行通信双方身份认证和动态生成共享密钥的协议是生成共享密钥的协议是IKEIKE协议。协议。 图图12-1612-16所示是在所示是在IKEIKE协商完成之后,也协商完成之后,也就是输入就是输入/ /输出方向的输出方向的SASA被明确建立后,被明确建立后,IPIP分分组的发送和接收的处理流程,从图中可以清组的发送和接收的处理流程,从图中可以清楚地看出安全机制是怎样被包括进去的。楚地看出安全机制是怎样被包括进去的。