网络安全协议
TCP/IP协议族在设计时并没有考虑到安全性问题,信息在传输过程中的安全性无法保证,接收方无法确认发送方的身份,也无法判定接收到的信息是否与原始信息相同。
因此,网络安全研究人员在链路层、网络层和传输层开发了相应的安全补充协议,期望在各个层次上分别达到保密性、完整性和不可抵赖性的安全目标。802.1X和EAP协议用于在链路层上实现发送方身份认证,IPSec和SSL分别在网络层和传输层利用密码技术实现了三个基本安全目标,802.11i协议族定义无线局域网WLAN的加密和完整性检测机制。
802.1X
IEEE 802.1X运行于网络中的链路层,既可以是以太网LAN,也可以是无线以太网WLAN,具有完备的用户认证和管理功能,基于C/S方式实现访问控制和身份认证,在认证通过之前,802.1X只允许EAPOL报文通过交换机端口,只有认证通过后,用户访问网络的报文才可以通过以太网端口。
802.1X协议的主要特点:
(1)链路层协议,不需要到达网络层;
(2)使用扩展认证协议EAP实现身份认证,提供了良好的扩展性和适应性,实现了PPP认证的兼容;
(3)采用“可控端口”和“不可控端口”的逻辑功能,从而可以实现数据与认证的分离,由不可控的逻辑端口完成对用户的认证与控制,数据报文通过可控端口进行交换,通过认证之后的报文无须封装;
(4)可以映射不同的用户认证等级到不同的VLAN;
(5)可以使用交换端口和无线LAN具有安全的认证接入功能。
802.1X协议具体工作流程:
(1)用户开启802.1X客户端,输入已经申请和登记的用户名和口令,发起连接请求,客户端发出请求认证的链路层帧,启动认证过程;
(2)交换机收到请求认证帧后,响应一个请求帧,要求客户端提供用户名;
(3)客户端将包含用户名信息的数据帧发送给交换机,交换机将该帧封装处理后发送给认证服务器;
(4)认证服务器收到帧后,与数据库中的用户信息比较,获取该用户对应的口令信息,然后使用随机生成的加密密钥对它进行加密处理,同时也将该加密密钥发送给交换机,由交换机转发给客户端;
(5)客户端收到由交换机转发的加密密钥后,用该密钥对口令进行加密,并通过交换机转发给认证服务器;
(6)认证服务器将收到的加密口令和第(4)步计算的加密口令信息进行对比,如果相同,则认为该用户为合法用户,发送认证通过的消息,并向交换机发出打开端口的指令,允许用户访问网络;否则,发送认证失败的消息,保持交换机端口的关闭状态,只允许EAPOL认证信息通过。
Tips:
当受控的交换机端口变为授权状态并允许访问网络后,连接在该端口的所有终端都可以访问网络,这并不符合接入控制的要求,解决该问题的方法是基于MAC的访问控制列表ACL,将每个端口与MAC地址绑定即可。
IPSec
IPSec协议,也称为IP安全协议,是在IP层增加的安全补充协议,通过额外的报文头部信息实现。它包括三个方面:认证、保密和密钥管理。
优点:
(1)在路由器和防火墙中使用IPSec时,可以对通过边界的信息流提供强安全性。
(2)位于传输层之下,对所有的应用透明,即无论终端是否使用IPSec,对上层软件和应用没有影响。
(3)对终端用户透明,不需要对用户进行安全机制的培训。
(4)可以给个人用户提供安全性。
下表1-1列出了IPSec包含的所有协议族,其中最重要的三个协议分别为鉴别头部协议(AH)、封装安全载荷协议(ESP)和密钥交换协议(IKE)。
RFC |
内容 |
2401 |
IPSec体系结构 |
2402 |
AH协议 |
2403 |
HMAC-MD5-96在AH和ESP中的应用 |
2404 |
HMAC-SHA-1-96在AH和ESP中的应用 |
2405 |
DES-CBC在ESP中的应用 |
2406 |
ESP协议 |
2407 |
IPSec DOI |
2408 |
ISAKMP协议 |
2409 |
IKE协议 |
2410 |
NULL加密算法及其在IPSec中的应用 |
2411 |
IPSec文档路线图 |
2412 |
OAKLEY协议 |
表 1‑1 IPSec协议族
IPSec存在两种运行模式:传输模式和隧道模式。传输模式保护IP报文的内容,一般用于两台主机之间的安全通信。隧道模式保护整个IP报文,当通信一方是外部网关时,通常使用隧道模式,可以用来隐藏内部主机的IP地址。
AH协议
AH协议提供数据完整性保护和发送方身份验证,使用HMAC消息认证机制,IPSec包括两种HMAC算法,即HMAC-MD5-96和HMAC-SHA-1-96,AH验证整个IP报文信息,不提供加密服务,当报文验证失败时,将丢弃报文,不会转发给上层协议解密。
AH协议字段位置
AH协议在IP头部的协议字段中标记为51。
传输模式:
AH报文在IP头部和数据之间插入。每个实现传输模式的主机无法使用私有地址,必须安装IPSec协议,因此AH协议对终端用户不透明。
隧道模式:
AH报文在外层IP头部和隧道数据(原始IP头部和数据)之间插入。内网所有用户可以透明享受安全网关提供的IPSec服务。
AH协议的报文格式和字段含义
(1)下一个头部:表示AH封装的协议报文类型,如果是传输模式,从IP头部的协议字段中复制,如6(TCP)、17(UDI)或50(ESP),如果是隧道模式,该值为4。
(2)认证头部长度:以32位为单位的AH总长度,实际长度为总长度减2。
(3)安全参数索引SPI:接收方根据SPI、源IP地址和IP头部中的协议类型值确定相应的接收SA(两个主机之间经过协商建立的一种协定,定义众多参数信息)。
(4)认证数据:消息认证码,其生成算法由SA指定。
(5)序号:单调递增的计数器,用于防止重放攻击。
AH认证原理
认证数据时覆盖的字段:
(1)IP头部中无须改变的字段,如源和目标IP,而TTL之类的字段不做认证;
(2)AH中除了认证数据外的其他5个字段值;
(3)IP报文的数据部分。
如果攻击者在传输过程中篡改了某个覆盖的字段值,接收方重新计算得到的认证数据与AH中的认证数据不会相同,即可确定该报文被篡改过。
Tips
如果内网用户经过NAT转换,那么接收方会报告AH验证失败,因此AH无法与NAT共存。
ESP协议
ESP协议提供数据完整性验证和发送方身份认证的原理与AH相同,但是ESP计算认证数据时覆盖的字段较少,仅包括ESP头部、数据部分和ESP尾部。另外,ESP还提供加密功能,采用对称加密算法,常用加密算法是3DES。
ESP协议字段位置
ESP协议在IP头部的协议字段的标记是50。
传输模式:
ESP头部在IP头部和数据之间插入,ESP尾部和消息认证码添加在原始IP报文数据的尾部。
隧道模式:
ESP头部在外层IP头部和内层IP头部之间插入,ESP尾部和消息认证码添加在原始IP报文数据的尾部。
ESP协议的报文格式和字段含义
ESP头部包括安全参数索引(SPI)和序列号,ESP尾部包括填充项、填充长度和下一个头部字段:
(1)SPI:32位标识符,用来确定相应的接收SA。
(2)序号:单调递增的计数器。
(3)填充项:可选字段,一是为了对齐加密数据,填充到4字节边界;二是在加密数据时,保证数据加上ESP尾部的长度是分组加密的分组长度的整倍数。
(4)填充长度:指定填充项包括几字节,范围为0到255。
(5)下一个头部:表示ESP封装的协议报文类型。
(6)消息认证码:ESP计算认证数据时生成的消息认证码。
Tips
在隧道模式,ESP加密运算覆盖整个内层IP报文,外层IP头部既不加密也不验证,不加密是因为路由器需要外层IP进行路由选择,不验证是使得ESP可以适用NAT转换,所以ESP不像AH那样会与NAT服务冲突。
AH和ESP协议可以嵌套使用,首先用ESP对原始报文进行加密,然后用AH进行完整性计算,即把AH头插入IP头部和ESP头部之间,接收方首先进行完整性验证,然后再进行解密。
协议 |
传输模式 |
隧道模式 |
AH |
认证IP数据、IP头部的一部分 |
认证内层IP报文、外层IP头部的一部分 |
不带认证的ESP |
加密IP数据和ESP尾部 |
加密内层IP报文和ESP尾部 |
带认证的ESP |
除加密外,认证ESP头部、数据和ESP尾部 |
除加密外,认证ESP头部、数据和ESP尾部 |
表格 1-2 AH和ESP功能对比
IKE协议
IPSec在保护一个IP报文之前,需要预先建立安全关联SA。IKE是IPSec用于密钥管理的协议,它负责自动管理SA的建立、删除、修改和协商。
IKE的特点是它不会在网络上直接传递密钥,而是通过计算得出双方的共享密钥,即使攻击者截获用于计算密钥的所有交换数据,也无法计算出真正的密钥。
IKE可以动态建立SA和共享密钥,但是它的实现非常复杂,容易成为整个系统的性能瓶颈。
IPSec应用实验
首先,访问服务器的测试页面,成功;
然后在服务器上配置IPSec,目标使所有TCP连接均通过IPSec才可以连接成功;
首先打开【本地安全策略】,在【IP安全策略,在本地计算机】中创建一条新的IP安全策略;
至此,已经创建了一条新的IP安全策略,但是还未设置其属性,选中【编辑属性】后点击【完成】,继续配置安全策略的属性;
可以看到这边已经有一条默认的策略,我们点【添加】来设置自定义的安全策略属性;
还没有建立筛选器,我们添加一个新的筛选器;
选中【使用“添加向导”】后点添加,来配置筛选器的属性;
这里为筛选器配置操作;
这里可以选择【完整性和加密】(ESP协议)或【进保持完整性】(AH协议)或自定义完整性和加密的算法;
这里我们可以使用Kerberos V5协议或CA证书或预共享密钥等身份验证方法;
至此,我们的IP安全策略就配置完属性了,我们还可以在【常规】-【设置】-【方法】里对IKE使用的算法进行配置,右键策略点击【分配】后,安全策略就会被指派生效了;
当我们再次访问测试页面就无法访问了;