网络安全——IP安全
IP安全
IP安全是指保护互联网中的IP地址不受到非法访问、攻击或滥用的措施和技术。IP的安全性直接决定了整个互联网的安全。最常用的保障网络安全的协议是IPSec(InternetProtocol Security)。IPSec通过使用认证、加密和密钥管理等技术,提供了对IP通信的端到端安全保护。IPSec被广泛应用于虚拟专用网(Virtual Private Network, VPN)和安全网关等场景,以实现安全的远程访问、站点到站点连接和跨网络的保护。
1、IPSec安全体系结构
IP协议在本质上是不安全的,伪造一个IP数据报、篡改数 据报的内容、窥探传输中数据报的内容都比较容易做到。IP通信环境既不能保证一个IP数据报确实来自它的源IP地址,也不能保证IP数据报在传输过程中未被篡改或泄露。为了解决IP协议的安全问题,IETF于1995年成立了一个IP协议与密钥管理机制的机构,负责制定保证互联网数据传输安全性的标准。这个机构经过几年的工作,提出了一系列协议,构成了一个安全体系,称为IP安全协议集(IPSec)。
1.1、IPSec安全体系的构成
IPSec是基于IP通信环境的一种端到端的数据安全保障机制,相当复杂。IPSec协议由一系列的RFC文档组成,主要包括RFC 2401~2412、RFC 1826和RFC 1827;其中最重要的是1998年11月发布的RFC 2401(安全体系结构概述)、RFC 2402(IPv4和IPv6的报文认证扩展描述)、RFC 2406(IPv4和IPv6的报文加密扩展描述)和RFC 2408(密钥管理协议)。IETF的IP安全工作组还发布了一些附加草案。下图所示为IPSec协议簇的体系结构,即IPSec协议簇中各个子协议及其相互关系,它已经成为工业标准的网络安全协议。

由图可知,IPSec安全体系包含认证头、封装安全载荷和密钥管理3个安全协议,以及解释域、加密与认证算法;可以将其划分为安全协议、密钥管理和安全关联3个部分。
1.1.1、安全协议
安全协议主要包括认证头协议和封装安全载荷协议。
- 认证头部(Authentication Header, AH)。AH提供数据完整性、数据防篡改和源端身份验证的功能。它在IP数据包中添加一个头部,并使用哈希算法(如HMAC)对IP数据包头部和有效负载进行校验和计算,并生成消息认证码(MAC)以验证数据的完整性。
- 封装安全负载(Encapsulating Security Payload,ESP)。ESP提供数据加密、数据完整性和可选的身份验证。它在IP数据包中添加一个头部和一个尾部,用于加密原始数据和计算校验和。ESP可以使用对称加密算法对数据进行加密,以确保数据的机密性。
1.1.2、密钥管理
- 互联网密钥交换(Internet Key Exchange, IKE)协议。IKE是一种混合型协议,由Internet安全关联和密钥关联协议(ISAKMP)与两种密钥交换协议(OAKLEY、SKEME)组成,即IKE由ISAKMP框架、OAKLEY密钥交换模式以及SKEME的共享和密钥更新技术组成。IKE提供了通信节点间的身份验证、密钥交换和协商安全关联(Security Association, SA)参数的过程,用于建立、管理和更新IPSec中的安全关联。IKE可以使用预共享密钥、公钥加密或证书进行身份验证和密钥协商。IKE将密钥协商的结果保留在SA中,供AH和ESP通信时使用。
- 解释域(Domain of Interpretation, DOI)。DOI规定了每个算法的参数要求和计算规则,以及初始向量的计算规则。共享一个DOI的协议从一个共同的命名空间中选择安全协议和变换、共享密码以及交换协议的标识符等,DOI将IPSec的这些RFC文档联系在一起。
1.1.3、安全关联
- 安全关联(SA)。SA是在通信的两个节点之间建立的安全参数集合。它决定了要保护什么、如何保护,以及谁来保护传输的数据。每个IPSec会话都有一个唯一的SA。SA包括加密算法、完整性校验算法、密钥等信息。在IPSec会话建立过程中,通信双方必须协商并交换SA信息,SA是构成IPSec的基础。
- 安全策略数据库(Security Policy Database,SPD)。SPD用于存储和管理IPSec的安全策略。安全策略通过过滤规则定义了哪些流量需要进行IPSec保护,以及如何进行保护。SPD还包含了与网络安全相关的其他参数,如密钥管理等。
1.2、IPSec服务内容
IPSec协议用于提供IP层的安全性,由于所有支持TCP/IP的主机在进行通信时都要经过IP层的处理,所以提供了IP层的安全性就相当于为整个网络提供了安全通信的基础。IPSec协议所提供的具体安全服务如下:
- 数据机密性:IPSec发送端在通过网络传输数据包前对数据包进行加密。
- 数据完整性:IPSec接收端对发送端发送来的数据包进行认证,以确保数据在传输过程中没有被篡改。
- 数据来源认证:IPSec在接收端可以认证发送IPSec报文的发送端是否合法。
- 防止重放攻击:IPSec在接收端可检测并拒绝接收过时或重复的报文。IPSec对于IPv4是可选的,但对IPv6是强制性的。
2、IPSec协议
IPSec协议是一套集多种安全技术于一体的协议包,而不是一个独立的协议,其中最为重要的是认证头(AH)协议和封装安全载荷(ESP)协议。
2.1、认证头(AH)协议
AH协议用来向IP通信提供数据完整性和身份验证,同时可以提供抗重放攻击服务,但它不提供机密性服务。在IPv6中采用AH协议后,因为在主机端设置了一个基于算法独立交换的密钥,非法潜入的现象可得到有效防止,密钥由客户和服务商共同设置。在传送每个数据包时,IPv6认证根据这个密钥和数据包产生一个检验项。在数据接收端重新运行该检验项并进行比较,从而保证了对数据包来源的确认以及数据包不被非法修改。AH协议常用摘要算法(单向Hash函数)MD5和SHA1实现摘要和认证,确保数据完整性。
AH协议在每个数据包上添加一个身份验证报头,该报头位于IP报头和传输层协议报头之间。AH报头格式如图所示。

在AH报头格式中,各字段的含义如下:
- 下一个报头:占8bit,标识紧跟AH头后面使用IP协议号的报头。
- 有效载荷长度:占8bit,即鉴别数据字段的长度,以32bit为单位。
- 保留位:占16bit,为将来的应用保留,目前为0。
- 安全参数索引(SPI):占32bit,是一个随机数,与外部目的IP地址一同标识。
- 序列号:从1开始的32bit单增序列号,不允许重复,用于唯一标识每个发送的数据包,用来避免重放攻击。
- 认证数据(AD):32bit整数倍的消息认证码,用于源端身份认证和数据完整性检测。
2.2、封装安全载荷(ESP)协议
ESP协议提供IP层加密保证和验证数据源,以应对网络上的监听。虽然AH可以保护通信数据免受篡改,但它并不对数据进行变形转换,数据对于黑客而言仍然是清晰的。为了有效保证数据传输安全,在IPv6中采用了另外一个报头——ESP,以进一步提高数据机密性并防止被篡改。
ESP协议可以同时提供数据完整性确认、数据加密、防重放等安全特性;ESP协议通常使用DES、3DES、AES等对称密码算法实现数据加密,使用MD5或SHA1实现数据完整性验证。ESP报文格式如图所示。

在ESP报文格式中,各字段含义如下:
- 安全参数索引(SPI):占32bit,用于标识下一个安全的关联,与AH中SPI的概念一致。
- 序列号:占32bit,是从1开始的32bit单增序列号,不允许重复,用于唯一标识发送的每个数据包,用来避免重放攻击。
- 填充数据:将明文扩充到所需的长度,用来保证边界的正确性。
- 填充长度:指出在这个字段前面填充字节的数目。
- 下一个报头:标识紧跟ESP后面使用IP协议号的报头。
- 认证数据:一个包含了完整性检查值的可变长度字段。
注意:以上是传输模式下的AH协议和ESP协议,隧道模式下的ESP和AH协议与传输模式下略有不同。
3、IPSec的工作原理及应用
IPSec通过使用AH、ESP协议,并使用IKE协议来实现安全性。IPSec的基本工作原理是:发送端在数据传输前(即到达网络传输媒体之前)对数据实施加密,在整个传输过程中,报文都是以密文方式传输的,直到数据到达目的节点,才由接收端对其进行解密。IPSec以数据报而不是整个数据流为单位对数据进行加密,这不仅更灵活,也有助于进一步提高IP数据报的安全性。
3.1、IPSec的工作模式
IPSec无论是进行加密还是进行认证,均有两种工作模式:一种是传输模式,另一种是隧道模式。AH协议和ESP协议均可以应用于这两种模式。
3.1.1、传输模式
传输模式主要为上层协议提供保护。通常,传输模式应用于两台主机之间端到端的通信,该模式要求主机支持IPSec协议。在传输模式下,IPSec协议头(AH或ESP报头)插入在IP报头和传输层协议报头之间,只对IP数据包的有效载荷进行加密或认证,其封装报文结构如图所示。


3.1.2、隧道模式
在隧道模式下,用户的整个IP数据包被用来计算AH或ESP报头,AH或ESP报头以及ESP加密的用户数据被封装在一个新的IP数据包中。通常,隧道模式应用在两个安全网关(防火墙、路由器)之间的通信。当IPSec通信的一端为安全网关时,必须采用隧道模式。
在隧道模式下,IPSec会先利用AH或ESP对IP数据包进行认证或加密,然后在IP数据包外面再包上一个新的IP报头,其封装报文结构如图所示。


3.2、IPSec的工作流程
IPSec可以在主机、路由器/防火墙(创建一个安全网关)或两者中同时实施和部署。为简单起见,以某一内网为例,每台主机都有处于激活状态的IPSec策略,IPSec的工作流程如图所示。

- 用户Alice(在主机A上)向用户Bob(在主机B上)发送一条消息。
- 主机A上的IPSec驱动程序检查IP筛选器,查看数据包是否需要受保护以及需要受到何种保护。
- 驱动程序通知IKE开始安全协商。
- 主机B上的IKE收到请求安全协商通知。
- 两台主机建立第一阶段SA,各自生成共享“主密钥”(注:若两台主机在此前通信中已经建立起第一阶段SA,则可直接进行第二阶段SA协商)。
- 协商建立第二阶段SA对,即入站SA和出站SA(SA包括密钥和SPI)。
- 主机A上的IPSec驱动程序使用出站SA对数据包进行签名(完整性检查)和(或)加密。
- 驱动程序将数据包递交IP层,再由IP层将数据包转发至主机B。
- 主机B网络适配器驱动程序收到数据包并提交给IPSec驱动程序。
- 主机B上的IPSec驱动程序使用入站SA检查完整性签名和(或)对数据包进行解密。
- 驱动程序将解密后的数据包提交上层TCP/IP驱动程序,再由TCP/IP驱动程序将数据包提交主机B的接收应用程序。
从以上所述可知,IPSec的工作过程是比较复杂的,但所有操作对用户是完全透明的。中介路由器或转发器仅负责数据包的转发,如果中途遇到防火墙、安全路由器或代理服务器,则要求它们具有IP转发功能,以确保IPSec和IKE数据流不被拒绝。需要指出的是,使用IPSec保护的数据包不能通过网络地址转换(NAT)。因为IKE协商中所携带的IP地址是不能被NAT改变的,对地址的任何修改都会导致完整性检查失效。使用IPSec,数据就可以在公网上传输,而不必担心数据被监视、修改或伪造。IPSec提供了两个主机之间、两个安全网关之间或主机和安全网关之间的保护。IPSec支持的组网方式包括:主机与主机、主机与网关、网关与网关。IPSec可提供对远程访问用户的支持,还可以和L2TP、GRE等隧道协议一起使用,给用户提供更大的灵活性和可靠性。
3.3、IPSec应用
IPSec是一种端到端的IP安全机制,具有传输模式和隧道模式。传输模式用于保护IP报文的内容,一般用于两台主机之间的安全通信。隧道模式保护整个IP报文,当通信一方是外部网关时,通常使用隧道模式,可以用来隐藏内部主机的IP地址。
以Windows10为例,IPSec可以从本地安全策略组件或者MMC控制台打开,其主要操作步骤包括:打开运行(Win+R),输入mmc命令,按下回车键,打开控制台;控制台打开后,单击左上角的文件,在打开的下拉项中,选择添加/删除管理单元,单击“添加”按钮,在弹出的对话框中选择“本地计算机”并单击“完成”按钮,结果如图5.13所示。然后单击“确定”按钮,回到控制台可以看到IP安全策略组件出现在控制台中。
然后是具体配置IP安全策略。例如,阻止ICMP报文的配置方法为:①创建新策略;②配置策略“no ping”的IP安全规则。每个规则包括“IP筛选列表”“筛选器操作”“身份认证方法”“隧道设置”“连接类型”属性;③命名IP安全策略并进行相关描述,如图5.14所示;④配置筛选器动作;⑤分配安全策略。
当完成上述安全策略配置之后,可以对安全策略进行验证。在未指派策略“no ping”之前,例如从主机192.168.184.128向本机192.168.184.134发送ICMP请求,会正常应答。指派安全策略后,再次从192.168.184.128向本机192.168.184.134发送ICMP请求,则没有任何回应。
IPSec是安全联网的一项重要技术。在Windows家族中,采用IPSec可保护工作组、局域网计算机、域客户端和服务器、分支机构(物理上为远程机构)、Extranet以及漫游客户端之间的通信。总之,IPSec为计算机发送的数据提供了加密功能,使截获的数据无法解密出有用的信息,从而实现保护的目的。


更多推荐



所有评论(0)