网络与信息安全学习(四) 2021-09-05 网络 暂无评论 2547 次阅读 # 4.1 IPSec安全协议概述 安全协议是以密码学为基础的协议。它可在网络系统中提供各种安全服务。如:认证实体的身份、在实体间分配密钥,实现机密性、完整性、抗否认性等。 IPSec是IETF(www.ietf.org)公布的一组安全IP协议集,是在IP级为IP业务提供保护的安全协议标准,即IPSec是引入了安全机制的IP安全协议。 通过现代密码学方法支持机密性和认证服务,使用户能有选择的使用,并得到所期望的安全服务。 IPSec(IP Security Protocol)在IP层(网络层)提供:访问控制、数据完整性验证、数据源验证、防报文重放、数据机密性等安全服务。 ## 4.1.1 IPSec组成与功能 为保证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隧道,实现在外网上访问远程的私有内网。 ## 4.1.2 IPSec安全体系 IPSec协议组提供认证和加密两种安全机制,认证机制能够确认数据发送方的真实身份,并判断数据在传输过程中是否遭到篡改;加密机制保证数据的机密性。 IPSec安全体系由报文头验证AH协议、封装安全载荷ESP协议、密钥交换IKE协议、解释域、加密和认证算法组成。 其中,AH协议提供数据源验证、数据完整性校验和防报文重放功能;然而,它并不加密报文。由ESP协议提供对IP报文的加密。 IKE协议负责定义加密生成技术和协商共享策略。解释域负责定义IKE所没有定义的协商内容,并为使用IKE协商安全的协议,统一分配标识符。 ##4.1.3 IPSec运行模式 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的处理流程受到了规范。 # 4.2 IPSec安全协议—AH ##4.2.1 AH概述 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计算,然后与发送端同样计算的该字段值进行比较。 ## 4.2.3 AH运行模式与完整性检查 如果该包在传输过程中,经过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包数据没有被篡改。否则丢弃。 # 4.3 IPSec安全协议—ESP ## 4.3.1 ESP概述 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头部,将占用更多的带宽。 # 4.4 安全联盟SA 安全关联SA(Security Association)是两个IPSec实体(主机、网关)之间经过协商建立起来的一种协定。 ## 4.4.1 安全联盟概述 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可以使用不同的安全协议。 # 4.5 密钥管理协议—IKE ## 4.5.1 IKE概述 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协议的配合,以防止重放。 # 4.6 SSL—安全套接层协议 ## 4.6.1 SSL协议简介 在互联网上访问某些网站时,你会发现在浏览器窗口的下方会显示一个锁的小图标,表示该网页被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协议并不能保证各方间的安全传输和信任关系。 ## 4.6.2 SSL记录协议 SSL记录协议的功能:根据会话状态指定的压缩算法、加密算法、MAC算法、密钥长度、散列长度、IV长度等,以及连接状态中指定的客户和服务器的随机数、加密密钥、序列号等参数,对当前连接中要传送的高层数据进行压缩与解压缩、加解密、计算与检验MAC等操作。 在SSL协议中,所有的传输数据都被封装在记录中,记录由记录头和长度不为0的记录数据组成。 SSL记录协议包括:对记录头和记录数据格式的规定以及为SSL连接提供的服务,如:机密性服务和数据完整性服务。 ## 4.6.3 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服务器提供一个认证服务。 转自https://blog.csdn.net/zhouzhuo_CSUFT/article/details/82747281 标签: 信息安全 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。