安全协议是以密码学为基础的协议。它可在网络系统中提供各种安全服务。如:认证实体的身份、在实体间分配密钥,实现机密性、完整性、抗否认性等。
IPSec是IETF(www.ietf.org)公布的一组安全IP协议集,是在IP级为IP业务提供保护的安全协议标准,即IPSec是引入了安全机制的IP安全协议。
通过现代密码学方法支持机密性和认证服务,使用户能有选择的使用,并得到所期望的安全服务。
IPSec(IP Security Protocol)在IP层(网络层)提供:访问控制、数据完整性验证、数据源验证、防报文重放、数据机密性等安全服务。
为保证IP网络的安全,Internet工程任务组(IETF)提出一系列IP安全协议,总称为“IPSec协议簇”(IP Security Protocol)。
IPSec作为一组标准及协议集合,它包括:加密技术、Hash算法、认证头AH(Authentication Header)协议、封装安全载荷ESP(Encapsulating Security Payload)协议、Internet密钥交换IKE(Internet Key Exchange)协议等。
IPSec是基于OSI第三层网络层的隧道协议,用数据包作为数据交换单位,将IP包封装附加的IP包头后,通过IP网络发送。
IPSec提供了一种标准的、健壮的机制,可为IP协议及上层协议提供以下几种安全服务:
1)数据源验证,确保收到的数据的发送者为实际的发送者;
2)数据完整性,确保数据在传输过程中未被非法篡改;
3)抗重放攻击保护,防止数据被假冒者复制存储并重复发送;
4)信息机密性,确保数据在传输过程中不被窃取。
IPSec的不足之处:
IPSec也存在一些缺点:IPSec需要已知或固定范围的IP地址,所以在动态分配地址时不适合IPSec;除了TCP/IP协议以外,IPSec不支持其它协议;除了包过滤处,它没有指定其它访问控制方法,对于采用NAT方式访问公共网络的情况难以处理。
IPSec的规范文档:
在1998年11月发布RFC2401、2402、2406和2408。
RFC2401:安全体系结构的概述。
RFC2402:IP扩展的包认证描述(IPv4和IPv6)。
RFC2406:IP扩展的包加密描述(IPv4和IPv6)。
RFC2408:密钥管理性能规范。
AH 协议负责定义认证方法,提供数据源验证和完整性保证;
ESP协议负责定义加密和可选认证方法,提供数据可靠性保证;
IKE协议负责提供自动协商交换密钥、建立和维护安全联盟等服务。
IPSec协议弥补了IPv4在安全性方面的不足,它是IPv6的一个组成部分。
主要功能:
1、能保证数据的机密性
IPSec协议通过加密算法,使只有接收方获取真正的数据,而他人无法获知真实数据。
2、能保证数据来源的可靠性
在通信之前,双方先用IKE认证对方身份并协商密钥,协商成功之后才进行通信。由于第三方不知道验证加密算法和密钥,因此,不能冒充发送方。
3、能保证数据的完整性
IPSec协议通过验证算法,确保数据从发送方到接收方的传送中,任何数据的篡改能被检测到。
4、确保认证报文没有重复
即使攻击者不能发送伪装的报文,也不能篡改报文,但他仍可重发截获的报文,导致复制报文的上层应用发生混乱(称为“报文重放攻击”)。IPSec协议能检测出重复报文并丢弃,具有防重放攻击功能。
5、能实现VPN通信
IPSec协议作为OSI第三层的隧道协议,能在IP层上创建一个安全的VPN隧道,实现在外网上访问远程的私有内网。
IPSec协议组提供认证和加密两种安全机制,认证机制能够确认数据发送方的真实身份,并判断数据在传输过程中是否遭到篡改;加密机制保证数据的机密性。
IPSec安全体系由报文头验证AH协议、封装安全载荷ESP协议、密钥交换IKE协议、解释域、加密和认证算法组成。
其中,AH协议提供数据源验证、数据完整性校验和防报文重放功能;然而,它并不加密报文。由ESP协议提供对IP报文的加密。
IKE协议负责定义加密生成技术和协商共享策略。解释域负责定义IKE所没有定义的协商内容,并为使用IKE协商安全的协议,统一分配标识符。
IPSec协议有两种工作模式:传输模式和隧道模式。
1.传输模式
这种模式对IP分组应用IPSec协议,对IP报头不做任何修改,负责保护两个主机之间的通信,提供点对点的安全性,是IPSec的默认模式。
2.隧道模式
这种模式将原IP分组封装成带有新IP报头的新的IPSec分组,通过“隧道”进行封装、发送和拆封,隐藏原有的IP分组,该模式常用在装有IPSec的路由器或防火墙中。
IPSec工作原理
IPSec包含4类组件:
(1)IPSec进程本身:验证头协议(AH)或封装安全载荷协议(ESP);
(2)Internet密钥交换协议(IKE,Internet Key Exchange):进行安全参数协商;
(3)SADB(SA Database):用于存储安全关联(SA,Security Association)等安全相关参数;
(4)SPD(Security Policy Database,安全策略数据库):用于存储安全策略。
IPSec的工作原理类似于包过滤防火墙。IPSec通过查询安全策略数据库SPD,决定对接收到的IP包的处理方式,但不同于包过滤防火墙的是,IPSec对IP数据包的处理方法除了丢弃、直接转发(绕过IPSec)外,还有进行IPSec的处理。
所谓“进行IPSec处理”即是对IP数据包进行加密和认证,保证在外部网络传输的数据包的机密性、真实性、完整性,使其通过Internet进行安全的通信。
在IETF的标准化下,IPSec的处理流程受到了规范。
AH协议又称“报文头验证协议“,不提供数据加密服务,适合传输非机密数据。
AH通过散列函数(Hash函数)实现认证,当需要身份验证而不要求保密时,可选用AH协议。
AH的工作原理:在每个IP数据包上增加一个身份验证报头,该报头含有一个带密钥的Hash散列,该Hash散列在整个数据包中计算,当数据更改时散列值将会变化,从而提供完整性验证。
AH报头字段:
1) 下一个报头:识别下一个使用IP协议号的报头,如:下一个报头值等于“6”,表示其后是TCP报头。
2) AH报头长度。
3)SPI (Security Parameters Index)是为数据包识别安全关联的32位伪随机值,若SPI 值为0,则表明没有安全关联存在。 4) 序列号:从1开始的32位单增序列号,唯一标识每一个发送数据包。
5)验证数据:接收端接收数据包后,会先执行Hash计算,然后与发送端同样计算的该字段值进行比较。
如果该包在传输过程中,经过NAT(Network Address Translation,网络地址转换)网关,则其源/目的IP地址有可能被改变,将造成到达目的地后,完整性验证失败。故在传输模式下AH与NAT有冲突,两者不能同时使用。
2) 隧道模式
在该模式下,AH头插入到原始IP头部之前,AH头之前再增加一个新的IP头部。隧道模式下,AH验证的范围也是整个IP包,因此,上面所说的AH和NAT的冲突在隧道模式下也存在。
AH头的主要功能是:校验IP源地址和IP目的地址,看它们是否在路由过程中被改变过。如果校验没通过,分组将会被抛弃。
2、数据完整性检查
从上面的传输模式和隧道模式可见,AH协议验证的范围包括整个IP包。
验证过程概括如下:在发送方,整个IP包和验证密钥作为输入,经过MD算法计算后,得到的结果被填充到AH头部的“验证数据”字段中;在接收方,整个IP包和验证算法所用的密钥也被作为输入,经过MD算法计算的结果和AH头部的“验证数据”字段进行比较,如果一致,说明该IP包数据没有被篡改。否则丢弃。
ESP(Encapsulating Security Payload ,封装安全载荷)协议是一种提供混合安全服务的协议,它可实现IP数据包的保密、完整和数据源认证,可与AH协议一起使用。它是插入IP数据包内的一个协议头(ESP报头)。
ESP采用对称密钥加密技术,即使用相同的密钥对数据进行加解密。它支持DES、三重DES和AES算法对明文的加密。
ESP只保护数据,而不保护IP报头。ESP在IP报头和传输协议报头(如:TCP或UDP)之间,增加一个ESP报头提供安全性,IP和ESP报头封装了源端和目的端间的数据包。
1、传输模式
在ESP的传输模式中,其头部直接加在准备传输的数据前,一个封装包中只有一个IP头部,且该IP头部与ESP头部均无需加密,因此,这种模式可节省带宽,如下图。
传输时先把IP装载数据用ESP封装起来(ESP头部和ESP尾部),发送端通过使用者ID和目的地址得到SA环境,然后用加密算法(DES)加密传输的数据,接收端接收到ESP封装的数据包后,直接处理IP头部(因没有加密),从ESP头部取出SPI值,得到相应的SA,再用SA中的解密函数解出加密的数据。
ESP传输模式的验证要比AH传输模式弱一些。如果需要更强的验证服务,可用AH验证或同时使用AH验证和ESP验证。
2、隧道模式
在隧道模式中,ESP首先将IP封装包加密(含IP头部),再在前面加上ESP头部并插入新的IP头部。接收端用ESP头部内容中的SPI值决定SA,解出ESP头部后的装载数据,取回原始的IP头部与封装包,继续往后传输ESP头部及ESP尾部的内容。
ESP在隧道模式下,对整个原始IP包进行验证和加密,而在传输模式下,由于源、目的IP地址不被加密,不能提供流加密服务。因此,ESP隧道模式比ESP传输模式更安全。但隧道模式增加了一个额外的IP头部,将占用更多的带宽。
安全关联SA(Security Association)是两个IPSec实体(主机、网关)之间经过协商建立起来的一种协定。
SA是构成IPSec的基础,也是IPSec的本质,它决定保护什么、如何保护以及谁来保护的问题。AH和ESP两个协议都使用SA保护通信,而IKE则是在通信双方中协商出SA。
SA由三元组(SPI,IP目的地址,IPSec协议)唯一标识。
1) SPI(安全参数索引):是32位的安全参数索引,用于标识具有相同IP地址和相同安全协议的不同的SA,它通常被标识在AH或ESP头中 。
2)IP目的地址:IP目的地址,它是SA的终端地址。
3)IPSec协议:采用AH或ESP。
SA是策略和密钥的结合,它定义了保护端对端通信的常规安全服务、机制以及密钥。
当一台计算机与多台计算机同时进行安全通信时,可能存在多种关联。
接收端计算机使用SPI,决定将用哪种SA处理传入的数据包。SPI是一个分配给每个SA的字串,用于区分多个存在于接收端计算机上的安全关联。每个SA可以使用不同的安全协议。
IKE(Internet Key Exchange,Internet密钥交换)是IPSec体系中的一种主要协议,它属于一种混合型协议,包括:Internet安全关联、密钥管理协议(ISAKMP)、两种密钥交换协议Oakley与SKEME。
IKE为IPSec协议—AH和ESP提供自动协商交换密钥、建立SA等服务,能简化IPSec的使用、管理、配置和维护。
注意:IKE不是在网络上直接传输密钥,而是通过一系列数据的交换,最终计算出双方共享的密钥,即使第三者截获了双方的所有交换数据也不足以计算出真正的密钥。
IKE的身份认证方式:
1)基于数字签名,利用数字证书表示身份,用数字签名算法计算出一个签名来验证身份。
2)基于公开密钥,利用公钥加密身份,通过检验对方发来的该HASH值进行认证。
3)基于修正的公开密钥,对上述方式进行修正。
请求IKE的方式:
IKE是一个用户级的进程。启动后,作为后台守护进程运行。在需要服务前,它处于不活动状态,在实际中通过两种方式请求IKE服务。
1)当内核的安全策略模块要求建立SA时,内核触发IKE。
2)当远程IKE实体需要协商SA时,触发IKE。
IKE在IPSec中的作用:
1)IKE是UDP之上的一个应用层协议;
2)IKE为IPSec协商建立SA,并把建立的参数及生成的密钥交给IPSec;通过IKE,IPSec很多参数(如:密钥)可自动建立,降低手工配置的复杂度。
3)IPSec用IKE建立的SA,对IP报文加密或认证处理。
3)IKE协议保证每个SA所使用的密钥互不相关。
4)IPSec用AH或ESP报文头中的序列号防止重放。该序列号溢出后,SA需重新建立,这时需要IKE协议的配合,以防止重放。
在互联网上访问某些网站时,你会发现在浏览器窗口的下方会显示一个锁的小图标,表示该网页被SSL协议保护着。
SSL协议(Secure Sockets Layer Protocol,安全套接层)是一个用于互联网上保密通信的安全协议,它位于TCP层和应用层之间,对应用层透明。
SSL协议的设计初衷是支持各种应用层协议的,如:HTTP,FTP,Telnet等,但目前SSL协议主要是应用于HTTP协议。
SSL协议具有两层结构,其低层是SSL记录协议层(SSL Record Protocol Layer),其高层是SSL握手协议层(SSL Handshake Protocol Layer)。
握手层允许通信实体在应用SSL协议传送数据之前,相互验证身份、协商加密算法、生成密钥等。记录层封装各种高层协议,具体实施压缩与解压缩、加解密、计算与验证MAC(散列值)等与安全有关的操作。
1.SSL协议的特点
1)SSL协议的优势是它与应用层协议无关。高层的应用层协议(如:HTTP、FTP)在SSL协议之上。SSL协议在应用层协议通信之前,就已经完成加密算法、通信密钥的协商以及服务器认证工作,之后应用层协议所传送的数据都会被加密,从而保证通信的机密性。
2)SSL协议支持各种加密算法。在“握手”过程中,使用的是RSA公钥系统。密钥交换后,使用一系列密码算法,如:DES及MD5等。
3)SSL协议可被大多数浏览器和Web服务器所内置,应用于电子交易中。国际著名的Cyber(1ash信用卡支付系统)就支持这种加密模式,IBM等公司也提供这种加密模式的支付系统。
2.SSL协议存在的问题
1)SSL提供的保密连接有漏洞。SSL除了传输过程以外不能提供任何安全保证,SSL并不能使客户确信此公司接收信用卡支付是得到授权的。
2)网上商店在收到客户的信用卡号码后,需设法保证其安全性,否则信用卡号可能被黑客通过商家服务器窃取。
3)SSL是一个面向连接的协议,只能提供交易中客户与服务器间的双方认证,在涉及多方的电子交易中,SSL协议并不能保证各方间的安全传输和信任关系。
SSL记录协议的功能:根据会话状态指定的压缩算法、加密算法、MAC算法、密钥长度、散列长度、IV长度等,以及连接状态中指定的客户和服务器的随机数、加密密钥、序列号等参数,对当前连接中要传送的高层数据进行压缩与解压缩、加解密、计算与检验MAC等操作。
在SSL协议中,所有的传输数据都被封装在记录中,记录由记录头和长度不为0的记录数据组成。
SSL记录协议包括:对记录头和记录数据格式的规定以及为SSL连接提供的服务,如:机密性服务和数据完整性服务。
SSL握手协议让服务器和客户机相互验证,协商加密和MAC算法以及保密密钥,以保护在SSL记录中发送的数据,握手协议在应用程序的数据传输之前使用。
握手协议的功能:验证实体身份,协商密钥交换算法、压缩算法和加密算法,完成密钥生成及密钥交换等。
握手协议由一系列客户机与服务器的交换消息组成,所有消息都具有规定的格式并分为两个阶段建立连接:
1)建立私密性信道; 2)进入客户认证。
Kerberos简介
1、Kerberos特点
Kerberos是美国麻省理工学院(MIT)研制的认证协议,是一种实用的网络认证系统。Kerberos协议通过网络通信的实体相互证明彼此的身份,抵抗旁听和重放等攻击,保证通信数据的完整性和保密性。
Kerberos基于非对称密钥加密技术,采用可信任第三方的认证方案,加入了“时间戳记”和“报文序号”机制,抵抗重发(Replay)攻击。
Kerberos认证技术在分布式环境中提供强大的认证,而且使用的范围广,目前已经成为事实上的工业标准。
Kerberos认证的实现不依赖于主机操作系统,不基于对主机操作系统的信任,不要求网络中全部主机的物理安全性。Kerberos
Kerberos采用认证服务器保存主体及其密钥的数据库,代码库提供加密并实现Kerberos协议。
采用Kerberos协议用户只需输入一次身份验证信息就可凭借此验证获得的票据(ticket)访问多个服务。由于在每个Client和Service之间建立了共享密钥,使得该协议具有较好的安全性。
在一个分布式的client/server体系机构中采用一个或多个Kerberos服务器提供一个认证服务。