第八章安全通信协议
目前网络面临着各种威胁,其中包括保密数据的泄露、数据完整性的破坏、身份伪装和拒绝服务等。
保密数据的泄露。罪犯在公网上窃听保密性数据。这可能是目前互相通信之间的最大障碍。没有加密,发送的每个信息都可能被一个未被授权的组织窃听。由于早期协议对安全考虑的匮乏,用户名或口令这些用户验证信息均以明码的形式在网络上传输。窃听者可以很容易地得到他人的帐户信息。
数据完整性的破坏。即使数据不是保密的,也应该确保它的完整性。也许你不在乎别人看见你的交易过程,但你肯定在意交易是否被篡改。
身份伪装。一个聪明的入侵者可能会伪造你的有效身份,存取只限于你本人可存取的保密信息。目前许多安全系统依赖于IP地址来唯一地识别用户。不幸的是,这种系统很容易被IP欺骗并导致侵入。
拒绝服务。一旦联网之后,必须确保系统随时可以工作。在过去数年内,攻击者已在TCP/IP协议簇及其具体实现中发现若干弱点,使得他们可以造成某些计算机系统崩溃。
8.1 IP安全协议IPSec
IPSec用来加密和认证IP包,从而防止任何人在网路上看到这些数据包的内容或者对其进行修改。IPSec是保护内部网络,专用网络,防止外部攻击的关键防线。它可以在参与IPSec的设备(对等体)如路由器、防火墙、VPN客户端、VPN集中器和其它符合IPSec标准的产品之间提供一种安全服务。IPSec 对于IPv4 是可选的,但对于IPv6 是强制性的。
8.1.1 IPSec体系结构
IPSec是一套协议包,而不是一个单独的协议RFC文号。
IPSec 协议族中三个主要的协议:
IP认证包头AH(IP Authentication Header):AH协议为IP包提供信息源验证和完整性保证。
IP封装安全负载ESP (IP Encapsulating Security Payload)ESP协议提供加密保证。
Internet密钥交换IKE (The Internet Key Exchange):IKE提供双方交流时的共享安全信息。
IPSec提供的安全性服务:
1)访问控制:通过调用安全协议来控制密钥的安全交换,用户身份认证也用于访问控制。
2)无连接的完整性:使用IPSec,可以在不参照其他数据包的情况下,对任一单独的IP包进行完整性校验。
3)数据源身份认证:通过数字签名的方法对IP包内的数据来源进行标识。
4)抗重发攻击:重发攻击是指攻击者发送一个目的主机已接收过的包,通过占用接收系统的资源,使系统的可用性受到损害。为此IPSec提供了包计数器机制,以便抵御抗重发攻击。
5)保密性:确保数据只能为预期的接收者使用或读,而不能为其他任何实体使用或读出。保密机制是通过使用加密算法来实现的。
8.1.2 IPSec模式
IPSec对IP包可以执行的操作分别是:只加密,只认证,既加密也认证。
IPSec有两种工作模式:传输模式(Transport Mode)和隧道模式(Tunnel Mode)。
1.传输模式(Transport Mode) : IPSec协议头插入到原IP头部和传输层头部之间,只对IP包的有效负载进行加密或认证。
2.隧道模式:IPSec会先利用AH或ESP对IP包进行认证或者加密,然后在IP包外面再包上一个新IP头。
8.1.3 IPSec的安全策略
1.安全关联SA
传输模式SA:传输模式SA只能用于两个主机之间的IP通信隧道模式SA:隧道模式SA既可以用于两个主机之间的IP通信也可用于两个安全网关之间或一个主机与一个安全网关之间的IP通信。
SA是安全策略通常用一个三元组唯一的表示:< SPI,IP目的地址,安全协议标识符>
1)SPI:安全参数索引(Security Parameters Index),说明用SA的IP头类型,它可以包含认证算法、加密算法、用于认证加密的密钥以及密钥的生存期;
2)IP目的地址:指定输出处理的目的IP地址,或输入处理的源IP地址;
3)安全协议标识符:指明使用的协议是AH还是ESP或者两者同时使用。
2. 安全关联数据库SAD
SAD存放着和安全实体相关的所有SA,每个SA由三元组索引。一个SAD条目包含下列域:
1)序列号计数器:32位整数,用于生成AH或ESP头中的序列号;
2)序列号溢出标志:标识是否对序列号计数器的溢出进行审核;
3)抗重发窗口:使用一个32位计数器和位图确定一个输入的AH或ESP数据包是否是重发包;
4)IPSec协议操作模式:传输或隧道;
5)AH的认证算法和所需密钥;
6)ESP的认证算法和所需密钥;
7)ESP加密算法,密钥,初始向量(IV)和IV模式;
8)路径最大传输单元;
9)进出标志;
10)SA 生存期状态。
3. 安全策略数据库SPD
SPD决定了对数据包提供的安全服务,所有IPSec 实施方案的策略都保存在该数据库中。
IP包的处理过程中,系统要查阅SPD,每一个数据包,都有三种可能的选择:丢弃、绕过IPSec 或应用IPSec:
1)丢弃:根本不允许数据包离开主机穿过安全网关;
2)绕过:允许数据包通过,在传输中不使用IPSec进行保护;
3)应用:在传输中需要IPSec保护数据包,对于这样的传输SPD必须规定提供的安全服务、所使用的协议和算法等等。
8.1.4 IPSec认证与加密
IPSec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改;加密机制通过对数据进行编码来保证数据的机密性,以防数据在传输过程中被窃听。
AH定义了认证的应用方法,提供数据源认证和完整性保证;ESP定义了加密和可选认证的应用方法,提供可靠性保证。IKE的作用是协助进行安全管理,它在IPSec 进行处理过程中对身份进行鉴别,同时进行安全策略的协商和处理会话密钥的交换工作。
1IP认证包头AH
AH协议提供无连接的完整性、数据源认证和抗重发保护服务,但不提供保密性服务。它能保护通信免受篡改,但不能防止窃听,适用于传输非机密数据。AH在每一个数据包上添加一个身份验证包头。该包头位于IP包头和传输层协议包头之间,如图8.5所示。
AH包头字段内容包括:
1)下一个包头(Next Header,8位):标识紧跟AH头后面使用IP协议号的包头;
2)载荷长度(Payload Len,8位):AH包头长度;
3)保留(Reserved,16位):为将来的应用保留,(目前为0);
4)安全参数索引(SPI,32位):与目的IP 地址一同标识SA;
5)序列号(Sequence Number Field,32位):从1开始的32位单增序列号,不允许重复,唯
一地标识每一个发送的数据包,为SA提供反重发保护。
6)认证数据(Authentication Data,长度可变):包含完整性检查和。
2. IP封装安全负载ESP
ESP为IP包提供完整性检查、认证和加密。它使用HMAC-MD5或HMAC-SHA-1算法对IP 进行认证。为了保证各种IPSec之间实现互操作性,目前ESP必须提供对56位DES算法的支持。ESP 可以单独使用,也可以和AH结合使用。