物联网信息安全之IPSec和SSL课件_第1页
物联网信息安全之IPSec和SSL课件_第2页
物联网信息安全之IPSec和SSL课件_第3页
物联网信息安全之IPSec和SSL课件_第4页
物联网信息安全之IPSec和SSL课件_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、物联网信息安全之IPSec和SSL1主要内容IP安全IP安全性概述IPSec协议Web安全Web安全概述SSL/TLS协议2TCP/IP协议应用层HTTP ,SMTP, POP, TELNET, FTP传输层TCP,UDP网络层IP,ARP,RARP,ICMP,IGMP数据链路层MAC物理层网卡3 用户数据用户数据应用头应用数据TCP头应用数据TCP头IP头应用数据TCP头IP头以太网帧头TCP分段IP数据报以太网帧142020以太网帧尾446到1500字节应用TCPIP以太网驱动程序以太网用户数据经过协议栈的封装过程TCP/IP协议体系TCP/IP协议体系是一个开放的协议平台,但是缺乏安全性

2、。缺乏对通信双方身份真实性的鉴别能力缺乏对传输数据的完整性和机密性保护的机制由于IP地址可软件配置以及基于源IP地址的鉴别机制,IP层存在:业务流被监听和捕获、IP地址欺骗、信息泄露和数据项篡改(数据完整性的破坏)、身份伪装、拒绝服务等攻击。5Internet安全性途径应用层电子邮件安全协议(PEM、S/MIME、PGP) 远程登陆的安全协议(SSH) SET、Kerberos、SHTTP传输层 SSL / TLS网络层IP 安全性(IPSec)6IPSec的起源1994年IETF专门成立IP安全协议工作组,来制定和推动一套称为IPSec的IP安全协议标准。1995年8月公布了一系列关于IPS

3、ec的建议标准。1996年,IETF公布下一代IP的标准IPv6 ,把鉴别和加密作为必要的特征,IPSec成为其必要的组成部分。1999年底,IETF完成了IPSec扩展,在IPSec中加上了ISAKMP(因特网安全关联和密钥管理协议),IKE(密钥交换协议)和Oakley(密钥确定协议)。ISAKMP/IKE/Oakley支持自动建立加密、鉴别信道,以及密钥的自动安全分发和更新。幸运的是,IPv4也可以实现这些安全特性。IPSec成为IP层的一部分,在我们的计算机中是TCP/IP协议栈的一部分软件,它调用原始IP协议的功能,被TCP或UDP等协议调用。7IPSec概述IPsec提供认证(au

4、thentication):确保收到的数据报是从报头中的源端发出的机密性(confidentiality):防止第三方窃听密钥协商(key management)IPSec在IPv6中是强制的,在IPv4中是可选的,这两种情况下都是采用在主IP报头后面接续扩展报头的方法实现的。AH(Authentication Header)是鉴别的扩展报头ESP header (Encapsulating Security Payload)是实现加密和鉴别(可选)的扩展报头8IPSec的应用IPSec的主要特征是可以支持IP层所有流量的加密和/或鉴别。因此可以增强所有分布式应用的安全性。IPSec为在LAN

5、、WAN和Internet上的通讯提供安全性 分支办公机构通过Internet互连。(Secure VPN)通过Internet的远程访问。与合作伙伴建立extranet与intranet的互连。增强电子商务安全性。9IPSec的应用方式端到端(end-end):主机到主机的安全通信端到路由(end-router):主机到路由设备之间的安全通信路由到路由(router-router):路由设备之间的安全通信,常用于在两个网络之间建立虚拟私有网(VPN)。10一个IP安全的方案11IPSec的优点弥补IPv4在协议设计时缺乏安全性考虑的不足。位于传输层之下,对应用和最终用户透明。在防火墙或路由器

6、中实现时,可以防止IP旁路。可以对所有跨越周界的流量实施强安全性。公司或工作组内部的通信不会导致招致与安全处理相关的开销。需要时IPSec可以提供个人安全性。12四个主要的组成部分:体系结构包括总体概念,安全需求,定义,以及定义IPSec技术的机制;认证头(AH)协议为数据包提供身份验证、完整性和抗重播功能,并签署整个数据报,但不加密该包,因此不提供机密性。封装安全载荷(ESP)协议提供身份验证、完整性、抗重播、机密性和一定程度的流量保护。密钥管理(IKE)协议用于密钥交换IPSec13IPSec 体系结构14组成部分说明密钥管理IKE执行两个阶段的操作:密钥交换和数据保护。通过在彼此通信的计

7、算机或网关上协商,从而达成一致的加密和身份验证算法,保证机密性和身份验证。密钥安全交换使用DH机制,可以生成768位或1024位的主密钥的密钥材料。加密算法:描述将各种不同加密算法用于ESP的文档,加密算法有DES、3DES,ESP中强制实施的加密算法是DES-CBC 。鉴别算法:描述将各种不同鉴别算法用于AH以及ESP鉴别选项的文档;身份验证方式有Kerberos v5、公钥证书和预共享密钥。完整性算法包括MD5和SHA1。ESP和AH的两个强制实施的验证器是HMAC-SHA-96和HMAC-MD5-96。解释域包括一些参数,批准的加密和鉴别算法标识,以及运行参数等。15各组成部分说明IPS

8、ec文档RFC2401: 安全结构概述RFC2402: IP扩展的包认证概述(IPv4和IPv6)RFC2406: IP扩展的包加密描述(IPv4和IPv6)RFC2408: 特定加密机制 16安全关联SA(Sercurity Association)SA的概念是IPsec的基础,有的地方也译为安全联盟。SA是发送与接收者之间对某些要素的一种协定,如IPsec协议的使用、协议的操作模式、密码算法、密钥、用于保护它们之间数据流的主密钥的生存期等。SA安全关联是策略和密钥的结合,定义了保护端到端通信的安全服务、机制和密钥。SA可以看成是两个IPSec对等端之间的一条隧道,可以为不同类型的流量创建独

9、立的SA。比如为TCP创建独立的SA,也可以为UDP创建独立的SA。SA是单向的,如果需要一个对等关系,即双向安全交换,则需要两个SA。SA提供的具体安全服务取决于所选的安全协议(AH或ESP)、模式、SA作用的两端点和安全协议所需的服务。17安全关联SA每个SA通过三个参数来唯一标识 安全参数索引 (SPI,Security Parameters Index):一个32位位串,由AH和ESP携带,使得接收系统能选择合适的SA处理接收数据报。对一个单播的SA来说,SPI本身就可确定一个SA,或与IPSec协议类型一起来确定SA,这是因为SPI的值是由接收端产生的,这时SPI是必需的字段;对多播

10、的SA束来说,SPI和可选的IPSec协议号加上目的地址一起指定一个SA,因为多播的SA束是由一个多播控制器产生而不是IPSec接收者产生,其中1-255之间的SPI值被IANA保留将来使用。IP目的地址:表示SA的目的地址,可以是用户终端系统、防火墙或路由器。安全协议标识:表示该关联是一个AH安全关联或ESP安全关联。18安全关联SA的管理SA管理的两大任务就是SA的创建和删除SA的管理可以手工进行安全参数由管理员按安全策略手工指定、维护。容易出错,手工建立起来的SA没有生存周期限制。也可以通过IKE完成如果安全策略要求建立安全、保密的连接,但却不存在相应的SA,IPsec的内核会自动启动或

11、触发IKE进行协商。19IPsec操作模式IPsec有两种操作模式传输模式(Transport Mode)隧道模式(Tunnel Mode)传输模式适用于端主机的通信,而隧道模式主要用于网关之间或网关与主机之间,也适用于主机之间的通信。根据RFC2401的规定,这两种模式的区别是:传输模式中仅对上层协议的报文提供安全服务,而IP报头是不受保护的;而隧道模式是对上层协议和IP报头都提供安全服务。也就是说,两种模式的实质区别是对数据包保护的范围不同。20传输模式为上层协议提供保护,增加了IP包负载的保护。使用原始的明文IP头,源/目的地址不变,只加密数据部分(包括它的TCP和UDP头),所有安全相

12、关信息包括在AH和/或ESP头中。传输模式适合于端到端的安全通信。21隧道模式加密整个IP数据包包括全部的TCP/IP或UDP/IP头和数据,并用自己的地址作为源地址加入到新的IP头。当通过隧道的数据到达目的网关(即隧道的另一头),利用AP和/或ESP头中的相关的安全信息对加密过的原IP数据报进行处理,将还原的高层数据按原IP数据报所标明的IP地址递送,完成真正的源到目的之间的安全传输。隧道模式适合于路由到路由或端到路由的安全通信。22IPSec的工作模式然而,在实际的应用中,是对上层数据还是对整个数据包进行保护,其操作方式、执行效率和开销差别很小。传输模式所能达到的保护目的,隧道模式也完全可

13、以达到。虽然在使用隧道模式时因为要在数据包外层增加一个新IP头而比传输模式多占用一定的带宽,但可以使用头部压缩技术来解决。IPSec在VPN的应用中,由于路由器和网关的存在,几乎都是使用隧道模式来保护数据。 23认证头(AH)协议AH为IP包提供数据完整性和认证功能,认证范围为整个包,不提供机密性。利用MAC码实现认证,双方必须共享一个密钥,认证算法由SA指定认证的范围:整个包两种认证模式:传输模式:不改变IP地址,插入一个AH;隧道模式:生成一个新的IP头,把AH和原来的整个IP包作为新IP包的载荷。24Next Header:8位,指明AH头之后的载荷类型,值取自于IANA(The Int

14、ernet Assigned Numbers Authority,互联网数字分配机构)的IP协议号的定义,如4表明下一个载荷是IPv4,41表示IPv6。Payload Length:8位,以32位字为单位的认证数据字段的长度。采用以32位的字为单位的值减2。缺省情况下完整性检查值是一个96位的CRC验证值,再加上3个32位的固定字段,则这个字段的值应为4。Reserved:16位,保留SPI:数据报识别SA的32位伪随机数Sequence Number:单调递增计数值,用来避免重放攻击Authentication Data:长度可变,但是必须是32位的倍数,包含针对这个包的完整性校验值(IC

15、V)或者MAC。AH认证的作用域(IPv4)传输模式隧道模式应用AH之前26AH认证的作用域(IPv6)传输模式隧道模式应用AH之前27ESP协议提供保密功能,包括报文内容的机密性和有限的通信量的机密性,也可以提供可选的认证服务。将需要保密的IP分组或上层协议部分(即传输层数据)封装到一个ESP载荷中,然后对此载荷进行相应的安全处理,如进行加密、认证处理等。ESP只认证ESP头之后的信息。加密算法和认证算法由SA指定。两种工作模式:传输模式:将上层协议部分封装到ESP载荷之中,采用当前的IP头部。隧道模式:将整个IP封装到ESP载荷之中,并在ESP头部添加新的IP头部,以网关地址为其源地址。2

16、8ESP协议数据单元由三部分组成头部加密数据可选的尾部ESP加密和认证的作用域(IPv4)传输模式隧道模式应用ESP之前30ESP加密和认证的作用域(IPv6)隧道模式应用ESP之前传输模式31AH和ESP联合使用(1)32AH和ESP联合使用(2)33IPsec的密钥管理完成安全参数的协商和管理。通过安全关联(SA, Sercurity Association)描述IPSec数据封装的安全参数。SA创建方式:手工的:通过管理员手动的完成自动的: Internet 密钥交换协议 IKE作用:在IPSec通信双方之间,建立起共享安全参数及验证过的密钥(建立“安全关联”),IKE代表IPSec对S

17、A进行协商34IKE协议(Internet 密钥交换协议) IKE用于在两个通信实体协商和建立安全伙伴SA,交换密钥;IKE包含了3个协议的有关部分:ISAKMP、Oakley和SKEME。IKE是在ISAKMP的框架内融合使用了部分Oakley和部分SKEME。Oakley和SKEME定义了通信双方建立共享密钥必须采取的步骤;ISAKMP(Internet Security Association and Key Management Protocol)框架,是一个针对认证和密钥交换的框架。为正确实施IKEv1,需遵守三个文档的规定:基本ISAKMP规范(RFC2408)、IPSec解释域(

18、RFC2407)、IKE规范本身(RFC2409)。35IKE协议IPSec 协议本身没有提供在通信实体间建立安全伙伴的方法,利用 IKE 建立安全伙伴。IKE的用途就是在IPSec通信双方之间,建立起共享安全参数及验证过的密钥,亦即建立“安全关联”关系,并且实现安全伙伴的集中化管理,减少连接时间。IKE为IPSec通信双方提供密钥因子,以用于生成加密密钥和验证密钥。另外,IKE也为IPSec协议AH和ESP协商SA。IKE协商的最终结果:一个通过验证的密钥,以及建立双方共享的安全服务参数集合(产生IPsec的SA)根据生成密钥和保护对象的不同,IKE协议的执行分成两个独立的阶段:第一阶段:协

19、商并创建一个通信信道(IKE SA),对该信道进行验证,为双方进一步的IKE通信提供机密性、消息完整性以及消息源认证服务;第二阶段:使用已建立的IKE SA来建立IPsec SA36ISAKMP协议ISAKMP(Internet Security Association Key Management Protocol,Internet安全联盟密钥管理协议)由RFC2408定义,定义了协商、建立、修改和删除SA的过程和包格式。ISAKMP为SA的属性和协商、修改、删除SA的方法提供了一个通用的框架,但没有定义具体的SA格式,也没有定义任何密钥交换协议的细节或具体的加密算法、密钥生成技术、认证机制

20、,它是与密钥交换独立的,可以被不同的密钥交换协议使用。ISAKMP报文可以利用UDP或者TCP,端口都是500,一般情况下常用UDP协议。ISAKMP双方交换的内容称为载荷(payload),ISAKMP定义了13种载荷,一个载荷就像积木中的一个“小方块”,这些载荷按照某种规则“叠放”在一起,然后在最前面添加上ISAKMP头部,这样就组成了一个ISAKMP报文,这些报文按照一定的模式进行交换,从而完成SA的协商、修改和删除等功能。ISAKMP也是IKE中在配置IPSEC VPN的时候唯一可设置的。ISAKMP定义了交换的包结构。37ISAKMP协议ISAKMP包含两个协商阶段,不同阶段可以使用

21、不同的密钥交换协议定义的交换。阶段1为通信双方建立一个ISAKMP SA,以建立对通信双方此后的协商过程的保护协定。(IKE SA)阶段2中将最终协商出用于通信双方正常通信的SA。(IPSec SA)38Oakley协议Oakley描述了一系列被称为“模式”的密钥交换,以及每一种密钥交换提供的服务。SKEME(Secure Key Exchange Mechanism,安全密钥交换机制)描述了一种提供匿名,抗否认,和快速密钥更新的通用密钥交换技术。Oakley和SKEME定义了通信双方建立共享的验证密钥所必须采取的步骤和方法,包括:负载的构建;信息负载的运送;信息负载处理的顺序;信息负载被使用

22、的方法。39IKEv1的身份认证方式IKEv1提供4种身份认证方式(IKEv2只保留了前两种):(1)基于数字签名(Digital Signature),利用数字证书来表示身份,利用数字签名算法计算签名来验证身份。(2)基于预共享字符串(PreShared Key),双方事先通过某种方式商定好一个双方共享的字符串。(3)基于公开密钥(Public Key Encryption),利用对方的公开密钥加密身份,并检查对方发来的该HASH值作认证。 (4)基于修正的公开密钥(Revised Public Key Encryption),对方式(3)进行修正。IKE使用Diffie-Hellman组中

23、的加密算法,共定义了五个Diffie-Hellman组,其中三个组使用乘幂算法(模长是768、1024、1680位),另两个组使用椭圆曲线算法(模长是155、185位)。40IKEv1的工作模式IKE定义了4种工作模式:主模式、嚣张模式、快速模式、新组模式。前面3个用于协商SA,最后一个用于协商Diffie-Hellman算法所用的组。主模式和嚣张模式用于第一阶段;快速模式用于第二阶段;新组模式用于在第一个阶段后协商新的组。41IKEv1的主模式交换的步骤1、策略协商交换IKE以“保护组(Protectionsuite)”的形式来定义策略。保护组至少需定义加密算法(选择DES或3DES)、散列

24、算法(选择MD5或SHA)、Diffie-Hellman组以及验证方法(数字签名,公共密钥加密的两种验证,或者共享密钥认证)。IKE的策略数据库列出了所有保护组(按各个参数的顺序)。通信双方决定了一个特定的保护组后,以后的通信便必须根据它进行。2、Diffie-Hellman共享值、nonce交换交换DH算法生成共享密钥所需要的基本材料信息。两端主机可以各自生成出完全一样的共享“主密钥”,保护紧接其后的认证过程。3、身份验证交换对Diffie-Hellman共享秘密进行验证,同时还要对IKE_SA本身进行验证。“主密钥”结合在第一步中确定的协商算法,对通信实体和通信信道进行认证。整个待认证的实

25、体载荷,包括实体类型、端口号和协议,均由前一步生成的“主密钥”提供机密性和完整性保证。可能使用到多个证书负载。42IKEv1的主模式交换的步骤 43IKEv1的嚣张模式交换的步骤嚣张模式(Aggressive mode,也有文献译为野蛮模式、主动模式或积极模式)交换也分为三个步骤,但只交换三条消息:头两条消息协商策略,交换Diffie-Hellman公开值必需的辅助数据以及身份信息;第二条消息认证响应方;第三条消息认证发起方,并为发起方提供在场的证据。Aggressive模式下,双方在第一次交换时发送的身份信息是没有加密的。Aggressive 模式的优点是信息交换快速,但加密被节省了。44I

26、KEv1的嚣张模式交换的步骤 45IKEv1的快速模式交换的步骤第二阶段协商建立IPSec_SA,使用快速模式。快速模式交换的信息必须由IKE SA来保护,即除了ISAKMP报头外,所有的负载都要加密。HASH负载和SA负载必须紧跟在ISAKMP报头后。HASH用于验证消息,同时也提供了参与的证据。快速模式基本上是一次SA协商和提供重放保护的nonce交换。nonce用于产生新的密钥材料并阻止通过重放攻击产生虚假的安全联盟。密钥交换(KE)负载是可选的。快速模式交换通过三条消息建立IPSec_SA:头两条消息协商IPSec_SA的各项参数值,并生成IPSec 使用的密钥。包括使用哪种IPSec

27、协议(AH或ESP)、使用哪种hash算法(D5或SHA)、是否要求加密,若是,选择加密算法(DES或3DES)。在上述三方面达成一致后,将建立起两个SA,分别用于入站和出站通信。第二条消息为响应方提供在场的证据;第三条消息为发起方提供在场的证据。46IKEv1的快速模式交换的步骤 47IKEv2IETF组织IP安全工作组于2005年发布了IKE的新版本,即IKEv2。它整合了IKEvl的相关RFC文档,由RFC4306单一文档定义IKEv2。IKEv2协议保留了IKEvl的基本功能,同时大幅精简了原有协议,在保证安全性的前提下,将第一阶段的交互由六条消息简化为四条,第二阶段改为可选,三条消息

28、也变为两条。IKEv2还取消了一些在实际中使用意义不大的概念。IKEvl中,通信双方的SA生存期必须协商一致,而IKEv2中双方可以独立选择SA的生存期。IKEv2每个通用载荷头部要尽可能保持现有的语法和分配值,尽量兼容IKEvl。IKEv2的所有交互消息以请求/响应消息对的形式存在;IKEv2提供超时重传机制,发起方负责在等待时间到达后的消息重传,响应方则不负责消息重传,除非收到对方的重传请求。IKEv2对IKEvl存在的安全漏洞进行了修订,从抵御中间人攻击、抵御DoS攻击、强身份认证和完美向前保护等方面提高了密钥协商的安全性。IKEv2支持如扩展认证协议EAP、远程地址获取、NAT穿越等新

29、的特性,功能得到了很大的完善。IKEv2取消了模式的概念,不存在“主模式”、“野蛮模式”、“快速模式”、“带身份保护的主模式”和“新组模式”等交换类型。48IKEv2IKEv2协商SA分为两步实现:首先,在通信双方间建立经认证的安全信道IKE_SA;然后,在IKE_SA保护下建立CHILD_SA,即IKEvl中的IPSec_SA。49IKEv2IKEv2中的消息交换包括三种基本交换类型:初始交换(Initial Exchange)、协商子SA交换(CREATE_CHILD_SA Exchange)信息交换(Informational Exchange)。IKEv2的初始交换对应IKEvl的第一

30、阶段交换, 即IKE_SA阶段,包含两个步骤:IKE_SA_INIT和IKE_AUTH,由四条消息构成。IKE_SA_INIT的一对消息用来协商加密算法,交换nonce值,以进行Diffie_Hellman交换计算,并得到后续各种密钥值。IKE_AUTH的一对消息用于双方认证,并交换身份和证书(可选)、确定流量选择符。此轮交互用于建立首个CHILD_SA。如果只需要一个CHILD_SA,则无需进行子SA协商交换。50IKEv2的初始交换HDR是IKE头,包括:版本号、SPIi(发起者给出的SA标识);SAi1是发起者支持IKE_SA的密码算法集,包括DH组、加密、认证算法;KEi和KEr是Di

31、ffie-Hellman值;Ni和Nr是Nonce值;SAr1是响应方在SAi1内选择的算法;CERTREQ是可选的,指请求首选CA,表示应答方要求使用数字证书认证;表示载荷受SK_e、SK_a和IKE 加密和认证算法进行加密和完整性保护;IDi, IDr用于认证,它基于预共享秘钥SK_pi, SK_pr;Auth是预共享秘钥 (SK_pi, SK_pr) + ID或数字证书;SAi2和SAr2 用于生成CREATE_CHILD_SA;TS标明被SAi2, SAr2所保护的传输层参数(协议、端口范围和地址范围),如TSi = (0, 0-65535,02-02),TSr = (0, 0-655

32、35,-55) 51IKEv2IKEv2在IKE_SA_INIT中计算出密钥种子SKEYSEED。SKEYSEED = prf(Ni | Nr,gir),prf是伪随机函数。SKEYSEED用来继续生成其它7个密钥材料:SK_d用来生成CHILD_SA的密钥,发起方和响应方共享SK_d;SK_ai和SK_ar用于验证;SK_ei和SK_er用于加解密;SK_pi和SK_pr用来生成AUTH载荷。它们的生成方法为:SK_d | SK_ai | SK_ar | SK_ei | SK_er | SK_pi | SK_pr = Prf+(SKEYSEED,Ni | Nr | SPIi | SPIr)其

33、中,prf+ 函数如下定义:prf+(K,S) = T1 , T2 , T3 , T4 , .,T1 = prf (K, S | 0 x01)T2 = prf (K, T1 | S | 0 x02)T3 = prf (K, T2 | S | 0 x03)T4 = prf (K, T3 | S | 0 x04) ,依次类推,| 表示连接。52IKEv2CHILD_SA密钥材料生成方式如下:KEYMAT = Prf+(SK_d,Ni | Nr)对于使用PFS的CREATE_CHILD_SA交换,密钥材料定义如下:KEYMAT = Prf+(SK_d,gir | Ni | Nr)。其中gir取自于C

34、REATE_CHILD_SA交换中的DH交换,gir = gS_i*S_r,S_i和S_r是双方的私钥。IKEv2支持两种认证方法:数字签名和预共享密钥。当消息2中附有CERTREQ载荷时表示使用数字签名认证。数字签名认证需要双方的消息提供证书CERT。发起者对附有Nr和prf(SK_ai, IDi)的第一条消息进行签名;响应者对附有Ni 和prf(SK_ar, IDr)的第二条消息进行签名。预共享密钥是 (SK_pi, SK_pr),HMAC 使用协商的prf函数,AUTH = prf(prf(Shared Secret, Key Pad for IKEv2), )53IKEv2子SA协商交

35、换(CREATE_CHILD_SA Exchange)在响应方发现自己受到DoS攻击的情况下,可再进行子SA交换协商。该交换对应着IKEvl的第二阶段交换,用于建立新的CHILD_SA,由交互双方中生存期到期的一方发起。其中两条消息使用初始交换中选择的加密和认证算法保护消息。54IKEv2N是新SA的协商标识;KEx是可选的Diffie-Hellman 值,需对CHILD_SA的PFS(完美前向秘密性,指获取某个会话密钥不会连累其它会话密钥,任何密钥都不能从以前的密钥中推导出来)进行保护时存在,用于计算新的IPSec 密钥,应与上一阶段的不同; TSx:当N存在时用于新IPSec_SA的重新协

36、商;SK 函数由之前协商的IKE_SA保护,IKE_SA可用于生成很多IPSec_SA,因此IKE_SA可使用较长时间;Ni 和 Nr是Nonce,应与上一阶段的不同。55IKEv2生成CHILD_SA后,IPSec中的AH 或 ESP所需的密钥就可以产生了,密钥材料:KEYMAT = prf+(SK_d, Ni | Nr),其中Ni 和 Nr 是该阶段的新nonce;需提供FPS保护时:KEYMAT = prf+(SK_d, gs_i* s_r | Ni | Nr ) ;其中s_i 和s_r 是阶段2中的新DH值,SK_d 是第一阶段生成的。若要生成256位的AES密钥,需将160位的prt

37、+ 函数运行两次。56IPSec的讨论虽然到目前为止,全球安全专家普遍认为IPSec是最安全的IP协议,但也并非全是赞美之词,最主要的批评是它的复杂性。57IP安全IP安全性概述IPSec协议Web安全Web安全概述SSL/TLS协议主要内容58Web安全Web是一个运行于internet和TCP/IP intranet 之上的基本的client/server应用。Web安全性涉及前面讨论的所有计算机与网络的安全性内容。同时还具有新的挑战。59Web的安全需求Internet是双向的。Web对于Internet上针对Web服务器的攻击是非常脆弱的。Web越来越多地作为公司和产品信息的高度可视化

38、的窗口和商业交互的平台。如果Web服务器被破坏,声誉可能被损害,经济会受到损失。尽管Web浏览器非常容易使用,Web服务器相对容易配置和管理,Web内容也越来越容易开发,但底层的软件却异乎寻常的复杂。这个复杂的软件可能隐藏了很多潜在的安全隐患。Web服务器可以被使用成进入公司或机构整个计算机系统的发射台。一旦Web服务器被破坏,攻击者可以访问不是Web一部分的而是连接到本地站点服务器上的数据和系统。不经意的和没有经过训练的用户(从安全的角度来看)是基于Web服务的常见客户。这样的用户并不是必须了解存在的安全风险,并且也没有工具或知识采取有效的对策。60Web所面临的安全威胁威胁后果对策完整性修

39、改用户数据特洛伊木马浏览器对存储器的修改修改传输中的报文通信量信息丢失危及机器的安全容易受到其他所有威胁的攻击加密的检验和机密性在网上窃听从服务器上偷窃信息从客户那里偷窃数据有关网络配置的信息有关哪个客户与服务器交谈的信息信息丢失丢失秘密加密,Web代理(proxy)拒绝服务破坏用户线程用假的请求来淹没机器填满硬盘或存储器通过DNS攻击来孤立机器破坏性的骚扰性的阻止用户完成工作防治起来很困难鉴别扮演合法用户数据伪造误传用户相信假信息是合法的加密技术按主动和被动攻击分类主动攻击包括假扮另一个用户,修改客户与服务器之间传输的信息,或修改一个Web站点的信息。被动攻击包括偷听测览器和服务器之间的网络

40、通信量,获得对于Web站点受限制的信息的访问权。按位置分类服务器和浏览器的安全,属于计算机系统安全性的范畴。浏览器与服务器之间的网络通信量,属于网络安全的范畴。对Web安全威胁的分类62实现Web通信量安全性的方法网络级:在IP层实现,常用的是IPSec。此方法对于最终用户和应用程序来说是透明的,并且提供了通用的解决方法。传输级:TCP上实现,常用的是SSL/TLS。为了达到完全通用,SSL/TLS可以作为基本协议族的一个部分提供,因而对于应用程序是透明的。也可以将SSL嵌入到专门的软件包中,例如许多浏览器都配置了SSL,大多数Web服务器也已经实现了这个协议。应用级:与应用有关的安全服务被嵌

41、入到特定的应用程序中。对于Web安全而言,这种方法的一个重要例子是SET。 UDP HTTP FTP SMTP TCP IP / IPSecHTTP FTP SMTP TCP IP SSL TLS S/MIME PGP SET TCP IP HTTP SMTP Kerberos (a)网络级 (b)传输级 (c)应用级 SSL/TLS协议SSL(Secure socket layer)协议已成为网络用来鉴别网站和网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通讯的全球化标准。由于SSL技术已建立到所有主要的浏览器和WEB服务器程序中,因此,仅需安装数字证书,或服务器证书就可以激活服

42、务器功能了。SSL是介于HTTP和TCP之间的一个可选层。SSL层在TCP层之上建立了一个加密通道,通过这一层的数据经过了加密,因此达到了保密的效果。SSL层借助下层协议的信道安全协商出一份加密密钥,并用此密钥来加密HTTP请求;而TCP层与Web Server的443端口建立连接,传递SSL处理后的数据。64SSL/TLS协议1994年Netscape开发了SSL(Secure Socket Layer)安全套接层协议,专门用于保护Web通讯。IETF()将SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security)。版本和历史1.0,不成熟2.0

43、,基本上解决了Web通讯的安全问题3.0,1996年发布,增加了一些算法,修改了一些缺陷TLS 1.0(Transport Layer Security传输层安全协议, 也被称为SSL 3.1),1997年IETF发布了Draft1999年,发布RFC 2246(The TLS Protocol v1.0)65SSL协议SSL协议的目标:SSL被设计用来使用TCP提供一个可靠的端到端安全服务,为两个通讯个体之间提供保密性、完整性和合法性认证(身份鉴别)。SSL协议的作用:解决如下问题客户对服务器的身份确认服务器对客户的身份确认建立起服务器和客户之间安全的数据通道66SSL的体系结构SSL不是单

44、个协议,而是两层协议。底层:SSL记录协议。为不同的更高层协议提供了基本的安全服务。上层:握手协议、修改密文规约协议和告警协议。用于管理SSL交换。67SSL记录协议和SSL握手协议SSL记录协议建立在可靠的传输协议(如TCP)之上它提供连接安全性,有两个特点保密性,使用了对称加密算法完整性,使用HMAC算法用来封装高层的协议SSL握手协议客户和服务器之间相互鉴别协商加密算法和密钥它提供连接安全性,有三个特点身份鉴别,至少对一方实现鉴别,也可以是双向鉴别协商得到的共享密钥是安全的,中间人不能够知道协商过程是可靠的68SSL连接和SSL会话SSL连接(Connection):连接是提供恰当类型服

45、务的传输(在OSI分层模型的定义中)。对于SSL,这样的连接是点对点的关系。连接是短暂的,每个连接与一个会话相联系。SSL会话(Session):一个SSL的会话是客户和服务器之间的一个关联,会话通过握手协议来创建。会话定义了加密安全参数的一个集合,该集合可以被多个连接所共享。会话可以用来避免为每个连接进行昂贵的新安全参数的协商。69SSL会话状态参数会话标识符:服务器选择的任意字节序列,用来标识活动的或可恢复的会话状态。对方的证书:对方的X.509 v3证书。状态的这个元素可以为空。压缩方法:在加密之前用来压缩数据的算法。密文规约(Cipher spec):指明大块数据加密算法(例如,空、D

46、ES等等),用于MAC计算的散列算法(例如 MD5或 SHA-l)。它还定义了加密属性,例如hash_size。主密码:48个字节长的客户和服务器共享的密码。可恢复性:指示会话是否可以用来初始化新的连接的标志。 70SSL连接状态参数服务器和客户的随机数:服务器和客户为每个连接选择的字节序列。服务器写MAC密码:用于对服务器发送数据进行MAC操作的密钥。客户写MAC密码:用于对客户发送数据进行MAC操作的密钥。服务器写密钥:用于服务器对数据加密和客户对数据解密的常规加密密钥。客户写密钥:用于客户对数据加密和服务器对数据解密的常规加密密钥。初始化向量:当使用CBC模式的分组密文时,为每个密钥维护

47、的初始化向量。这个字段首先被SSL握手协议初始化。然后每个记录最终的密文块被保留下来作为下一个记录的IV。序号:每一方为每个连接的传输和接收报文维持着单独的序号。当一方发送和接收修改密文规约报文时,相应的序号被设置成0。序号不能超过264 - 1。71SSL/TLS协议SSL本身是一个分层协议,每一层的消息块都包含有长度、描述和内容。SSL协议的记录协议层在客户机和服务器之间传输应用数据和SSL控制数据,即用于交换应用数据,包括了记录头和记录数据格式的规定。应用程序消息被分割成可管理的数据块,还可以压缩,并产生一个MAC(消息认证代码),然后将结果加密并传输。接收方接受数据并对它解密,校验MA

48、C,解压并重新组合,再把结果提供给应用程序协议。所有的SSL通信,包括握手消息、安全空白记录和应用数据都使用SSL记录层。SSL中,所有的传输数据都被封装在记录中。记录由记录头和长度不为0的记录数据组成。SSL的记录数据包含三个部分:MAC数据、实际数据和粘贴数据。72SSL记录协议SSL记录层协议限定了所有发送和接收数据的打包,它提供了通信、身份认证功能,它是一个在面向连接的可靠传输协议。SSL记录协议为SSL连接提供两种服务。保密性。消息完整性。73SSL记录协议操作过程发送:记录协议接收传输的应用报文,将数据分片成可管理的块,可选地压缩数据,应用MAC,加密,增加首部,在TCP报文段中传

49、输结果单元。接收:被接收的数据被解密、验证、解压和重新装配,然后交付给更高级的用户。74SSL记录协议操作过程 75SSL记录格式在SSL中,所有数据被封装在记录中。一个记录由两部分组成:记录头和非零长度的数据。SSL的上层协议,即管理协议的报文只可放在一个SSL记录层的记录里,但应用层协议的报文允许占用多个SSL记录来传送。SSL记录的格式如下:76SSL记录协议首部构成内容类型(8比特):用来处理这个包装的数据片的更高层协议。已经定义的内容类型是修改密码规约、告警、握手和应用数据。前三个是与SSL有关的协议。主要版本(8比特):指示使用SSL的主要版本。对于SSLv3,字段值为3。次要版本

50、(8比特):指示使用的次要版本。对于SSLv3,字段值为0。长度(16比特):数据片以字节为单位的长度(明文数据片长度不超过214,压缩数据片长度不超过214+1024,密文数据片长度不超过214+2048)。SSL记录格式77SSL修改密码规约协议这个协议由单个报文组成,该报文由值为1的单个字节组成。这个报文双方都可以发起,目的是表示从下一个记录开始,使用新的密码规约。78SSL告警协议告警协议是用来将SSL有关的告警传送给对方实体。和其他使用SSL的应用一样,告警报文按照当前状态说明被压缩和加密。这个协议的每个报文由两个字节组成。第一个字节的值是警告(warning)(1)或致命(fata

51、l)(2),用来传送报文的严重级别。如果级别是致命的,SSL立刻中止该连接。同一个会话的其他连接可以继续,但是这个会话不可以再建立新的连接了。第二个字节包含了指出特定告警的代码。79SSL握手协议SSL握手协议由客户端和服务器间交换的一系列消息组成,消息格式如下图所示。类型(1字节):指示10种消息中的一个。 长度(3字节):以字节为单位的报文长度。内容(0字节):和这个报文有关的参数 。80SSL握手协议使用的消息报文类型参数hello_request空client_hello版本、随机数、会话 ID、密文族、压缩方法server_hello版本、随机数、会话ID、密文族、压缩方法certi

52、ficateX509 v3证书链server_key_exchange参数、签名certificate_request类型、授权server_done空certificate_verify签名client_key_exchange参数、签名finished散列值81SSL握手协议的流程 客户 服务器 建立安全能力,包括协议版本、会话ID、密码簇、压缩方法和初始随机数 服务器可以发送证书、密钥交换和证书请求。服务器发出结束hello报文阶段的信号 如果请求的话,客户发送证书,客户发送密钥交换,客户可以发送证书验证报文 修正密码簇并结束握手协议 client_hello server_hello

53、certificate server_key_exchange certificate_request server_hello_done certificate client_key_exchange certificate_verify change_cipher_spec finished change_cipher_spec finished 时间 第一阶段:建立起安全协商客户发送一个client_hello消息,包括以下参数:版本、随机数(32位时间戳+28字节随机序列)、会话ID、客户支持的密码算法列表(CipherSuite)、客户支持的压缩方法列表然后,客户等待服务器的serv

54、er_hello消息服务器发送server_hello消息,参数:客户建议的低版本以及服务器支持的最高版本、服务器产生的随机数、会话ID、服务器从客户建议的密码算法中选出的密码组、服务器从客户建议的压缩方法中选出的一个压缩算法83密码组参数说明密码组参数的第一个元素指定了密钥交换的方法,SSL支持以下一些方法:RSA,要求服务器提供一个RSA证书DH(Diffie-Hellman),要求服务器的证书中包含了由CA签名的DH公开参数。客户或者在证书中提供DH公开参数,或者在密钥交换消息中提供此参数瞬时DH(Ephemeral Diffie-Hellman),产生临时的密钥,DH公开参数由发送者的

55、私钥进行签名,接收者用对应的公钥进行验证匿名的DH,不加鉴别。会受到中间人攻击然后,指定以下信息加密算法,和类型(流还是分组密码算法)MAC算法,MD5还是SHA-1HashSizeKey MaterialIV Size84第二阶段:服务器鉴别和密钥交换服务器发送自己的证书,消息包含一个X.509证书,或者一条证书链除了匿名DH之外的密钥交换方法都需要服务器发送server_key_exchange消息可选的,有些情况下可以不需要。只有当服务器的证书没有包含必需的数据的时候才发送此消息消息包含签名,被签名的内容包括两个随机数以及服务器参数服务器发送certificate_request消息非匿

56、名server可以向客户请求一个证书包含证书类型和CAs服务器发送server_hello_done, 然后等待应答85第三阶段:客户鉴别和密钥交换客户收到server_done消息后,它根据需要检查服务器提供的证书,并判断server_hello的参数是否可以接受,如果都没有问题的话,发送一个或多个消息给服务器如果服务器请求证书的话,则客户首先发送一个certificate消息,若客户没有证书,则发送一个no_certificate警告然后客户发送client_key_exchange消息,消息的内容取决于密钥交换的类型最后,客户发送一个certificate_verify消息,其中包含一个

57、签名,对从第一条消息以来的所有握手消息的HMAC值(用master_secret)进行签名86第四阶段:结束第四阶段建立起一个安全的连接客户发送一个change_cipher_spec消息,并且把协商得到的CipherSuite拷贝到当前连接的状态之中然后,客户用新的算法、密钥参数发送一个finished消息,这条消息可以检查密钥交换和鉴别过程是否已经成功。其中包括一个校验值,对所有的消息进行校验。服务器同样发送change_cipher_spec消息和finished消息。握手过程完成,客户和服务器可以交换应用层数据。87过程回顾 客户方CH(Client Hello)消息客户方证书*CKE

58、(Client Key Exchange)消息DSCV( digitally-signed certificate verify)消息*CCS(change cipher spec)消息CHF(Client HandShaking Finished)消息服务方SH(Server Heelo)消息服务方证书*客户方证书请求消息*SKE(Server Key Exchange)消息*CCS(change cipher spec)消息SHF(Server HandShaking Finished)消息应用层数据应用层数据88SSL协议采用的加密算法和认证算法加密算法和会话密钥SSL协议V2和V3支持的加密算法包括RC4、RC2、IDEA和DES而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论