(英语:Internet Protocol Security
,缩写为IPsec
),是一个协议包,透过对IP
协议的分组进行加密和认证来保护IP
协议的网络传输协议族(一些相互关联的协议的集合)。
中文名
互联网安全协议
外文名
Internet Protocol Security
本 质
开放标准的框架结构
作 用
保障网络安全
缩 写
IPsec
学 科
通信工程
互联网安全协议(英语:Internet Protocol Security
,缩写为IPsec
),是一个协议包,透过对IP
协议的分组进行加密和认证来保护IP
协议的网络传输协议族(一些相互关联的协议的集合)。
IPsec
主要由以下协议组成:
一、认证头(AH
),为IP
数据报提供无连接数据完整性、消息认证以及防重放攻击保护;
二、封装安全载荷(ESP
),提供机密性、数据源认证、无连接完整性、防重放和有限的传输流(traffic-flow
)机密性;
三、安全关联(SA
),提供算法和数据包,提供AH、ESP操作所需的参数。
IPv6
是IETF
为IP
协议分组通信制定的新的因特网标准,IPsec
在RFC 6434
以前是其中必选的内容,但在IPv4
中的使用则一直只是可选的。这样做的目的,是为了随着IPv6
的进一步流行,IPsec
可以得到更为广泛的使用。第一版IPsec
协议在RFCs2401-2409
中定义。在2005年第二版标准文档发布,新的文档定义在RFC 4301
和RFC 4309
中。
IPsec
被设计用来提供
(1)入口对入口通信安全,在此机制下,分组通信的安全性由单个节点提供给多台机器(甚至可以是整个局域网);
(2)端到端分组通信安全,由作为端点的计算机完成安全操作。
上述的任意一种模式都可以用来构建虚拟专用网(VPN),而这也是IPsec最主要的用途之一。应该注意的是,上述两种操作模式在安全的实现方面有着很大差别。
因特网范围内端到端通信安全的发展比预料的要缓慢,其中部分原因,是因为其不够普遍或者说不被普遍信任。公钥基础设施能够得以形成(DNSSEC最初就是为此产生的),一部分是因为许多用户不能充分地认清他们的需求及可用的选项,导致其作为内含物强加到卖主的产品中(这也必将得到广泛采用);另一部分可能归因于网络响应的退化(或说预期退化),就像兜售信息的充斥而带来的带宽损失一样。
IPsec
协议工作在OSI模型的第三层,使其在单独使用时适于保护基于TCP
或UDP
的协议(如安全套接子层(SSL
)就不能保护UDP
层的通信流)。这就意味着,与传输层或更高层的协议相比,IPsec
协议必须处理可靠性和分片的问题,这同时也增加了它的复杂性和处理开销。相对而言,SSL/TLS
依靠更高层的TCP
(OSI的第四层)来管理可靠性和分片。
认证头(Authentication Header
,AH)被用来保证被传输分组的完整性和可靠性。此外,它还保护不受重放攻击。认证头试图保护IP数据报的所有字段,那些在传输IP分组的过程中要发生变化的字段就只能被排除在外。当认证头使用非对称数字签名算法(如RSA
)时,可以提供不可否认性(RFC 1826
)。
认证头分组图示:
字段含义:
下一个头:标识被传送数据所属的协议。
载荷长度:认证头包的大小。
保留:为将来的应用保留(目前都置为0)。
安全参数索引:与IP地址一同用来标识安全参数。
串行号:单调递增的数值,用来防止重放攻击。
认证数据:包含了认证当前包所必须的数据。
封装安全载荷(Encapsulating Security Payload
,ESP)协议对分组提供了源可靠性、完整性和保密性的支持。与AH头不同的是,IP分组头部不被包括在内。
ESP分组图示:
字段含义:
安全参数索引:与IP地址一同用来标识安全参数
串行号:单调递增的数值,用来防止重放攻击。
载荷数据:实际要传输的数据。
填充:某些块加密算法用此将数据填充至块的长度。
填充长度:以位为单位的填充数据的长度。
下一个头:标识被传送数据所属的协议。
认证数据:包含了认证当前包所必须的数据。
FreeS/WAN
项目已经开发了一个开源的GNU/Linux
环境下的IPsec
实现。且一个基于KAME
项目的IPsec
实现已经包含在NetBSD、FreeBSD以及2.6Linux内核中。从某种程度上说,也是因为这个原因,Free S/WAN
项目的开发在2004年3月时被中止。Openswan
和strongSwan
是Free S/WAN
延续。
至今已有许多IPsec
协议和ISAKMP/IKE
协议的实现。它们包括:
RFC 2401
IP协议的安全架构
RFC 2402
认证头
RFC 2406
封装安全载荷
RFC 2407
ISAKMP的IPsec解释域(IPsec DoI)
RFC 2408
网络安全关系与密钥管理协议(ISAKMP)
RFC 2409
因特网密钥交换(IKE)
IPsec
协议工作在OSI
模型的第三层,使其在单独使用时适于保护基于TCP
或UDP
的协议(如 安全套接子层(SSL
)就不能保护UDP
层的通信流)。这就意味着,与传输层或更高层的协议相比,IPsec
协议必须处理可靠性和分片的问题,这同时也增加了它的复杂性和处理开销。相对而言,SSL/TLS
依靠更高层的TCP
(OSI
的第四层)来管理可靠性和分片。
(1)AH(Authentication Header
) 协议。
它用来向 IP通信提供数据完整性和身份验证,同时可以提供抗重播服务。
在 IPv6 中协议采用 AH 后, 因为在主机端设置了一个基于算法独立交换的秘密钥匙, 非法潜入的现象可得到有效防止, 秘密钥匙由客户和服务商共同设置。在传送每个数据包时,IPv6 认证根据这个秘密钥匙和数据包产生一个检验项。在数据接收端重新运行该检验项并进行比较,从而保证了对数据包来源的确认以及数据包不被非法修改。
(2)ESP(Encapsulated Security Payload
) 协议。
它提供 IP层加密保证和验证数据源以对付网络上的监听。因为 AH虽然可以保护通信免受篡改, 但并不对数据进行变形转换, 数据对于黑客而言仍然是清晰的。为了有效地保证数据传输安全, 在IPv6 中有另外一个报头 ESP,进一步提供数据保密性并防止篡改。
安全联盟 SA,记录每条 IP安全通路的策略和策略参数。安全联盟是 IPSec 的基础, 是通信双方建立的一种协定,决定了用来保护数据包的协议、转码方式、密钥以及密钥有效期等。AH和 ESP都要用到安全联盟,IKE的一个主要功能就是建立和维护安全联盟。
密钥管理协议 ISAKMP
, 提供共享安全信息。Internet密钥管理协议被定义在应用层,IETF规定了 Internet安全协议和 ISAKMP(Internet Security Association and Key Management Protocol
) 来实现 IPSec 的密钥管理,为身份认证的 SA 设置以及密钥交换技术
IPSec
的安全特性主要有:
"不可否认性"可以证实消息发送方是唯一可能的发送者,发送者不能否认发送过消息。"不可否认性"是采用公钥技术的一个特征,当使用公钥技术时,发送方用私钥产生一个数字签名随消息一起发送,接收方用发送者的公钥来验证数字签名。由于在理论上只有发送者才唯一拥有私钥,也只有发送者才可能产生该数字签名,所以只要数字签名通过验证,发送者就不能否认曾发送过该消息。但"不可否认性"不是基于认证的共享密钥技术的特征,因为在基于认证的共享密钥技术中,发送方和接收方掌握相同的密钥。
"反重播"确保每个IP包的唯一性,保证信息万一被截取复制后,不能再被重新利用、重新传输回目的地址。该特性可以防止攻击者截取破译信息后,再用相同的信息包冒取非法访问权(即使这种冒取行为发生在数月之后)。
防止传输过程中数据被篡改,确保发出数据和接收数据的一致性。IPSec利用Hash函数为每个数据包产生一个加密检查和,接收方在打开包前先计算检查和,若包遭篡改导致检查和不相符,数据包即被丢弃。
在传输前,对数据进行加密,可以保证在传输过程中,即使数据包遭截取,信息也无法被读。该特性在IPSec
中为可选项,与IPSec
策略的具体设置相关。