《电子商务安全技术第10章安全通信协议与交易协议IP安全》由会员分享,可在线阅读,更多相关《电子商务安全技术第10章安全通信协议与交易协议IP安全(60页珍藏版)》请在金锄头文库上搜索。
1、IP安全1Internet安全协议IETF的各个工作小组从不同角度解决互连网安全问题,形成一些RFC和草案:nDNSSEC工作组 RFC2137、2535、2541 研究DNS安全及DNS动态更新nWTS(Web Transaction Security)工作组 建立SHTTP 认证、完整性保护;RFC2084 nSECSH工作组 安全ShellnIPSEC工作组nTLS工作组(SSL协议)2IP安全面临的问题伪造IP包的地址;修改其内容重播以前的包;拦截并查看包的内容如何确保收到的IP数据报:1)来自原先要求的发送方(IP头内的源地址);2)包含的是发送方当初放在其中的原始数据;3)原始数据
2、在传输中途未被其它人看过。 3IPSec协议 IP安全是整个TCP/IP安全的基础与核心。它可对上层的各种应用服务提供透明的安全保护。IPv4没有考虑安全性,缺乏对通信双方身份的认证,缺乏对传输数据的保护,并且容易受窃听、IP地址欺骗等攻击。IPSec工作组于1994年成立,1995年8月公布了一系列建议标准:RFC2401:IP安全结构 RFC2406:AH; RFC2406:ESP RFC2409:IKERFC2403:HMAC-MD5-96 RFC2404:HMAC-SHA-964IPSec概述 IPSec可保障主机之间、网络安全网关(如路由器或防火墙)之间或主机与安全网关之间的数据包的
3、安全。由于受IPSec保护的数据报本身不过是另一种形式的IP包,所以完全可以嵌套提供安全服务,同时在主机之间提供像端到端这样的认证,并通过一个隧道,将那些受IPSec保护的数据传送出去(隧道本身也通过IPSec受到安全网关的保护)。 5IPSec的协议对IP数据报或上层协议进行保护的方法是使用某种IPSec协议:“封装安全载荷(ESP:Encapsulating Security Payload)”或者“认证头(AH:Authentication Header)”。AH可证明数据的起源地、保障数据的完整性、防止相同数据包的重播。ESP除具有AH的所有能力之外,还可选择保障数据的机密性,以及为数
4、据流提供有限的机密性保障。 6IPSec的安全业务AHESP (加密)ESP(加密并认证)访问控制无连接完整性数据来源认证对重放数据的拒绝保密性受限业务流的保密性7密钥管理协议IKE密钥管理协议IKE(Internet Key Exchange)用于动态地认证IPSec参与各方的身份、协商安全服务以及生成共享密钥等。 IPSec提供的安全服务需要用到共享密钥,它既可用于保障数据的机密性,亦可用于数据完整性(消息认证码MAC),或者同时应用于两者。IPSec的运算速度必须够快,而现有公共密钥技术(如RSA或DSS)的速度均不够快。公共密钥技术仍然限于在密钥交换期间完成一些初始的认证工作。8IPS
5、ec协议组成安全关联SA (Security Association)安全策略数据库SPD (Security Policy Database)认证头AH (Authentication Head )封装安全载荷ESP(Encapsulation Security Payload)IKE(Internet密钥交换)ISAKMP/Oakley(密钥管理协议)ISAKMP: Internet Security Association and Key Management ProtocolOakley:是D-H密钥交换协议的改进9结构图 10IPSec实施IPSec既可在终端系统上实现,亦可在某种安
6、全网关上实现(如路由器及防火墙)。在主机中实施可以有两种方式:1、与操作系统的集成实施。2、在协议堆栈中的网络层和数据链路层之间实施。11操作系统集成IPSec作为网络层协议,可在网络层实现,由IP层的服务构建IP头。这个模型与其它网络层协议(比如ICMP)的实施等同。应用TCP/UDPIP+ IP sec数据链路层12在协议堆栈中实施应用TCP/UDPIPIP sec数据链路层13在主机实施的特点a保证端到端的安全性b能够实现所有的IPSEC安全模式c能够对每个数据流提供安全保障d在建立IPSEC的过程中,能够维持用户身份的认证。14在路由器中实施如果在路由器中实施,可在网络的一部分中对传输
7、的数据包进行安全保护。例如某公司只打算对传给地理位置分散的那些部门的数据实施保护,而且只在数据流经Internet的时候进行保护,从而构建自己的VPN或者内联网。IPSec实施方案通过对数据包进行“隧道传输”,从而实现了对它们的保护。15IPSec两种不同的使用模式 传送模式:保护上层协议;用于两主机之间;隧道模式:保护整个IP数据报;当一方为网关时。原始IP包: IP头 + TCP头 + 数据传送模式: IP头 + IPSec头 + TCP头 + 数据隧道模式:新 IP头 + IPSec头 + IP头 + TCP头 + 数据16安全关联为正确封装及提取IPSec数据包,要将安全服务、密钥与要
8、保护的通信数据联系到一起;同时要将远程通信实体与要交换密钥的IPSec数据传输联系起来。这样的方案称为安全关联(Security Association,SA)。SA是构成IPSec的基础。它由两个通信实体协商建立。它们决定了用来保护数据包安全的IPSec协议、密钥以及密钥的有效存在时间等。任何IPSec实施方案都会构建一个SA数据库(SAD),由它来维护保障数据包安全的SA记录。17安全关联SA是单向进行的,它仅朝一个方向定义安全服务,要么对通信实体收到的包进行“进入”保护,要么对实体外发的包进行“外出”保护。SA由一个三元组唯一标识:1)安全参数索引(SPI):存在于IPSec协议头内;2
9、)安全协议(AH、ESP)标识符;3)目标IP地址:它同时决定了关联方向。通常SA是以成对的形式存在的,每个朝一个方向。既可人工创建它,亦可采用动态创建方式。SA驻留在“安全关联数据库(SAD)”内。18SA创建若用人工方式加以创建,SA便会一直存在下去,除非再用人工方式将其删除。若用动态方式创建,则SA有一个存活时间与其关联在一起。存活时间(TTL)由IPSec通信双方在密钥管理协议中协商。TTL非常重要,因为受一个密钥保护的通信量必须加以谨慎地管理。若超时使用一个密钥,会为攻击者侵入系统提供更多的机会。 19安全关联数据库SADSAD用于定义每个SA的参数值:n顺序号:以AH/ESP报头中
10、32位bit值表示n顺序号溢出标记:防止溢出数据报的传送n反重放窗口:收到的AH/ESP数据报是否重放nAH/ESP信息:认证/加密算法、密钥、有效期nSA有效期:该时间间隔之后,SA结束/被替代nIPSec协议模式:传输模式/隧道模式n路径最大传输单元:最大数据报长度(不分段)20安全策略数据库SPDSPD (Security Policy Database)定义了对所有出/入业务应采取的安全策略,为IP数据项提供什么服务以及以什么方式提供。对所有出/入包括非Ipsec业务的处理必须咨询SPD,处理有三种可能:1)丢弃:不允许在此主机上存在,或不允许通过此网关。2)绕过Ipsec:允许通过而
11、无需Ipsec保护3)采用Ipsec:对这种业务流,SPD要指明提供的安全服务,采用的协议及使用的算法等。21安全策略用户可以根据自己的要求,对不同的通信设定不同级别的安全策略。例:在一个网络安全网关上制订IPSec策略,对本地子网与远程网关的子网间通信数据采用DES加密,并用HMAC-MD5进行认证;对从远程子网发给一个邮件服务器的所有Telnet数据用3DES进行加密,同时用HMAC-SHA进行认证;对于需要加密的、发给另一个服务器的所有Web通信数据,则用IDEA满足其加密要求,同时用HMAC-RIPEMD进行认证。22安全参数索引(SPI )SPI长度为32位,用于唯一地标识出接收端上
12、的一个SA。作为两个主机秘密通信的协定, SA决定了密钥和加密算法等参数。必须采用某种机制,让通信源指出用哪个SA来保护数据包;而对通信的目的地,则需指出用哪个SA来检查收到的包是否安全。SPI是个任意数,一般是在IKE交换过程中由目标主机选定的。SPI被当作AH和ESP头的一部分传送。接收主机使用这 个 字 元 组 来 唯 一 地 标 定SA(DST是IP头中的目标地址;而protocol代表协议是AH或ESP)。23消息认证码MACMAC:使用一个保密密钥生成固定大小的小数据块,并加入到消息中,称MAC, 或加密和。用户A和用户B,共有保密密钥K,消息M, MAC=CK(M)1、接收者可以
13、确信消息M未被改变。2、接收者可以确信消息来自所声称的发送者;3、如果消息中包含顺序码,则接收者可以保证消息的正常顺序;MAC函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少。24MAC的基本应用方式1)消息认证AB: M|CK(M)2)消息认证+保密AB: EK2 M|CK1(M)3)消息认证+保密AB: EK2 M|CK1(EK2 M) 25封装安全载荷概述ESP( Encapsulating Security Payload) 属 于IPSec的一种协议,可用于确保IP数据包的机密性、数据的完整性以及对数据源的身份认证。此外,它也要负责对重播攻击的抵抗。具体做法
14、是在IP头之后、需要保护的数据之前,插入一个新头ESP头。受保护的数据可以是一个上层协议,或者是整个IP数据报。最后,还要在最后追加一个ESP尾。ESP是一种新的IP协议,对ESP数据包的标识是通过IP头的协议字段来进行的。26ESP原理ESP保护示意图27ESP格式SPI(安全参数索引)序列号初始化向量受保护的数据填充项填充项长度下一个头认证数据28ESP格式作为IPSec头,ESP头中会包含一个SPI字段。它和IP头之前的目标地址以及协议结合在一起,用来标识用于处理数据包的特定的SA。通过序列号,ESP具有了抵抗重播攻击的能力。序列号是一个不重复的、单向递增的、由发送端插在ESP头的一个号
15、码。ESP保护的实际数据包含在载荷数据字段中。因此,这个字段的长度由数据长度决定。某些加密算法要用到初始化向量(IV),它也受到保护。29隧道模式隧道模式隧道模式下受ESP保护的一个IP包,下一个头是TCP加密认证新IP头SPI序列号初始化向量IP头TCP头数据填充项填充项长度下一个头认证数据ICV30传输模式传输模式IP头SPI序列号初始化向量TCP头数据填充项填充项长度下一个头认证数据31加密与认证由于ESP同时提供了机密性以及身份认证机制,所以在其SA中必须同时定义两套算法用来确保机密性的算法叫作cipher(加密器),而负责身份认证的叫作authenticator(认证器)。每个ESP
16、 SA都至少有一个加密器和一个认证器。 32处理外出数据包:传送模式对在IPv4上运行的传送模式应用来说,ESP头跟在IP头后,IP头的协议字段被复制到ESP头的“下一个头”字段中,ESP头的其余字段则被填满SPI字段分配到的是来自SAD的、用来对这个包进行处理的特定SA的SPI;填充序列号字段的是序列中的下一个值;填充数据会被插入,其值被分配;同时分配的还有填充长度值。随后,IP头的协议字段得到的是ESP的值,50。除了头插入位置不同之外,IPv6处理规则基本上类似于IPv4。ESP头可插在任意一个扩展头之后。33处理外出数据包:隧道模式对隧道模式应用来说,ESP头是加在IP包前面的。如果封
17、装的是一个IPv4包,那么ESP头的“下一个头”字段分配到值4;如果封装的是一个IPv6包,则分配到值41。其他字段的填充方式和在传送模式中一样。随后,在ESP头的前面新增了一个IP头,并对相应的字段进行填充(赋值)源地址对应于应用ESP的那个设备本身;目标地址取自于用来应用ESP的SA;协议设为50;其他字段的值则参照本地的IP处理加以填充。34加密认证不管哪种模式下,接下去的步骤都是相同的。从恰当的SA中选择加密器(加密算法),对包进行加密(从载荷数据的开头,一直到“下一个头”字段)。随后,使用恰当的SA中的认证器,对包进行认证(自ESP头开始,中间经过加密的密文,一直到ESP尾)。随后,
18、将认证器的结果插入ESP尾的“认证数据”字段中。对外出数据包进行处理的最后一步是:重新计算位于ESP前面的IP头的校验和。35处理进入数据包接收端在收到一个ESP包之后,若不对这个包进行处理,就无法得知它究竟处于隧道模式,还是传送模式。根据对这个包进行处理的SA,便可知道它到底处在什么模式下。但除非完成了对它的解密,实际上不可能知道ESP保护的是什么。如果收到的IPSec包是一个分段,必须把它保留下来,直到这个包的其他部分收完为止。36处理进入数据包收到ESP包后,首先要检查处理这个包的SA是否存在这是基本的IPSec要求,而不是ESP专有的。如果没有SA,这个包就会被丢弃。一旦认证通过了一个
19、有效的SA,就可用它开始对包的处理。首先检查序列号。由于ESP身份认证密文而不是明文,接下来进行的便是对这个包进行身份认证。37处理进入数据包然后是解密。通过取自SA的密钥和密码算法,就可对ESP包进行解密,这个ESP包从载荷数据开始到下一个头结束。传送身份认证和解密检查成功之后,就可对结果数据包进行初步的有效性检验。如果用来处理这个数据包的SA表明在某一特定模式下要么是隧道模式,要么是传送模式只能处理ESP包,那么还必须检验这个包的适用性。如果这个包与要求的模式不符,就必须把它丢弃。38处理进入数据包对于传送模式,上层协议头与IP头是同步的,ESP头的下一个头字段被复制到IP头的协议字段中,
20、并计算出一个新的IP校验和;对于隧道模式,就抛开外部IP头和ESP头我们需要的是这个解开封装的包。为进行下一步的处理,可将一个经过改造和认证的包转发出去。如果它是一个传送模式包,就会转发到一个高一级的协议层(比如TCP或UDP),由它们对这个包进行处理;如果它是一个隧道模式包,就会重新插入到IP处理流中,继续转发到它的最终目的地。39认证头概述认证头(AuthenticationHeader,AH)是一种IPSec协议,用于为IP提供数据完整性、数据原始身份认证和一些可选的、有限的抗重播服务。它定义在RFC2402中。除了机密性之外,AH提供ESP能够提供的一切东西。不需要加密算法(加密器),
21、而需要一个认证器(身份认证器)。AH定义保护方法、头的位置、身份认证的覆盖范围以及输出和输入处理规则,但没有对所用的身份认证算法进行定义。40认证头概述认证头的保护41认证头概述AH是另一个IPSec协议。在IPv4中数据报的协议字段值是51,表明IP头之后是一个AH头。在IPv6中,下一个头字段的值由扩展头的存在来决定。如果没有扩展头,下一个头字段将是51。如果AH头之前有扩展头,紧靠在AH头前面的扩展头中的下一个头字段就会被设成51。将AH头插入IPv6的规则与ESP插入规则类似。AH和ESP保护的数据相同时,AH头会一直插在ESP头之后。AH头比ESP头简单,因为它不提供机密性。由于不需
22、要填充和一个填充长度指示器,因此也不存在尾。另外,也不需要一个初始化向量。42认证头格式AH格式下一个头载荷长度保留SPI序列号认证数据43认证头格式下一头字段表示AH头之后是什么。在传送模式下,将是处于保护中的上层协议的值,如UDP或TCP协议的值。在隧道模式下,值为4,表示IP-in-IP(IPv4)封装或IPv6封装的41这个值。载荷长度字段表示采用32位的字减2表示头本身的长度。AH头是一个IPv6扩展头,按照RFC2460,它的长度是从64位字表示的头长度中减去一个64位字而来的。但AH采用32位字来计算,因此,我们减去两个32位字(或一个64位字)。没有使用预留字段时,必须将它设成
23、0。44认证头格式SPI和外部IP头的目的地址一起,用于识别对这个包进行身份认证的SA。序列号是一个单向递增的计算器,等同于ESP中使用的序列号。序列号提供抗重播功能。认证数据字段长度不固定,其中包括完整性校检的结果。AH没有定义身份认证器,但有两个强制实施身份认证器:HMAC-SHA-96和HMAC-MD5-96。和ESP一样,输出结果被切短成96个位。同时,也没有针对AH的使用,定义公共密钥身份认证算法(比如RSA和DDS)。45模式和ESP一样,AH可用于传送模式和隧道模式。不同之处在于它保护的数据要么是一个上层协议,要么就是一个完整的IP数据报。任何一种情况下,AH都要对外部IP头的固
24、有部分进行身份认证。46传送模式AH用于传送模式时,保护的是端到端通信。通信终点必须是IPSec终点。下一个头是TCP。IP头下一个头载荷长度保留SPI序列号认证数据数据已认证47隧道模式 AH用于隧道模式时,它将自己保护的数据报封装起来,另外,在AH头之前,另添了一个IP头。“里面的”IP数据报中包含了通信的原始寻址,而“外面的”IP数据报则包含了IPSec端点的地址。隧道模式可用来替换端对端安全服务的传送模式,AH只用于保证收到的数据包在传输过程中不会被修改,保证由要求发送它的当事人将它发送出去,以及保证它是一个新的非重播的数据包。48隧道模式IP头下一个头载荷长度保留SPI序列号认证数据
25、IP头数据已认证下一个头是IP-in-IP49AH处理外出数据包与一个SPD条目(表示采用AH保护)匹配时,要求SAD查看是否存在一个合适的SA。如果没有,可用IKE动态地建立一个。如果有,就将AH应用到这个与之相符的数据包,该数据包在SPD条目指定的那个模式中。如果它是一束SPD,应用顺序就由它所涉及的协议而定。AH始终保护的是ESP,别无它物。50输出处理创建一个外出SA时可通过手工或IKE将序列号计算器初始化成0。在利用这个SA构建一个AH头之前,计算器就开始递增。这样保证了每个AH头中的序列号都是一个独一无二的、非零的和单向递增的数。AH头的其余字段都将填满恰当的值。SPI字段分配的值
26、是取自SA的SPI;下一个头字段分配的是跟在AH头之后的数据类型值;载荷长度分配的是“32位字减二”;“身份认证数据”字段设成0。51输出处理和ESP不一样,AH将安全保护扩展到外部IP头的原有的或预计有的字段。因此,要将完整性检查值(ICV)之前的不定字段调成零。对没有包含在身份认证ICV中的IPv4头来说,它的不定字段包括Type of service(服务类型)、Flags(标志)、Fragment offset(分段偏移)、Time to live(存活时间)和Header checksum(头校验和)。对IPv4选项或IPv6扩展头来说,如果它们是固定的或预定的,都会包含在ICV计算
27、之中。否则,必需在计算ICV之前,把它们调成零。52输出处理身份认证可能要求进行适当的填充。对有些MAC来说,比如DES-CBCMAC,要求在其上面应用MAC的数据必须是算法的块尺寸的倍数。因此,必须进行填充,以便正确地使用MAC(注:两种强制算法均无此要求)。这个填充项是隐式添加的。它必须一概为零,其大小不包括在载荷长度中,并且不随数据包一起传送。对于IPv4,AH头必须是32个字节的一倍,IPv6则是64个字节的一倍。若MAC的输出和这项要求不符,就必须添加AH头。对于填充项的值,必须包括在ICV计算中,并在载荷长度中反映出填充项的大小。如果强制实施身份认证程序正确对齐了,在用HMAC-M
28、D5-96或HMAC-SHA-96时,就不再需要填充项。53输出处理通过把密钥从SA和整个IP包(包括AH头)传到特定的算法(它被认作SA中的身份认证程序)这一方式,对ICV进行计算。由于不定字段已设成零,不会包括在ICV计算中。接下来,ICV值被复制到AH的“身份认证数据”字段中,IP头中的不定字段就可根据IP处理的不同得以填充。现在,AH处理结束,AH保护的IP包可以输出了。根据包的大小,在放到线上之前,可将它分段,或在两个IPSec同级之间的传送过程中,由路由器进行分段。54输入处理如果一个受安全保护的包在被收到之前分成了几段,就要在AH输入处理前对这些分段进行重组。接收IPSec包首先
29、要找出用来保护这个包的SA。然后,IP头的目的地址、特定协议(这里是51)和取自AH头的SPI这三者再对SA进行识别。如果没有找到合适的SA,这个包就会被丢弃。找到SA之后,进行序列号检查。抗重播检查会决定这个包是新收的还是以前收到的。如果检查失败,这个包就会被丢弃。55输入处理现在必须检查完整性检查值(ICV)了。对整个数据包应用“身份认证器”算法,并将获得的摘要同保存下来的ICV值进行比较。如相符,IP包就通过了身份认证;如不符,便丢弃该包。56Internet密钥交换IKE的用途是在IPSec通信双方之间,建立起共享安全参数及认证过的密钥(即建立“安全关联” )。 IKE协议是Oakle
30、y和SKEME协议的混合,并在由ISAKMP规 定 的 一 个 框 架 内 运 作 。 ISAKMP是“Internet安全关联和密钥管理协议”的简称,即Internet Security Association and Key Management Protocol。ISAKMP定义了包格式、重发计数器以及消息构建要求。它定义了整套加密通信语言。57Internet密钥交换IKE的用途Oakley和SKEME定义了通信双方建立共享密钥的步骤。IKE利用ISAKMP语言描述这些步骤以及其它信息交换措施。58建立IKE的两个阶段阶段1:协商创建并认证一个通信信道(IKE SA),为双方下一步通信
31、提供保密、完整以及数据源认证服务。本阶段有两种运行模式:Main mode和aggressive模式。阶段2:对Sa可提供的服务及所需密钥进行协商。IKE支持四种认证方式:基于数字签名的认证、两种基于公钥的认证、基于共享密钥的认证。IKE使用UDP协议和500端口。59六、IPSec的应用nIPSec是IPv6必须支持的功能,它与防火墙、安全网关结合可形成各种安全解决方案;与其他协议相结合将使安全性更高;能使企业将其Extranet扩展到贸易伙伴进行电子商务,而不用担心安全协议的兼容性。nIPSec的典型应用是构建虚拟专用网VPNVPN通过保密隧道在非信任公共网络上产生安全私有连接。它能把远程用户、分支机构和商业伙伴连接组成一个自治网络,达到与专用网同样的安全、可靠、可扩充、可管理、服务质量。IPSec为VPN的互操作性、管理、通信提供了有力手段。60