扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在互联网上的持续不断的不安全推动了IETF组织去开发统一的安全架构,能够符合国家关于加密通信的使用的法律。本文是对IP安全架构的规范和相关草案的一个简介。
一、前言
因特网技术的兴起,互连技术的成长,使得大家愈来愈仰赖Internet这个应用广泛的公众网络。因此如何让使用者透过因特网通讯,而不用担心传送的信息封包被截取、假冒,就显得相当重要。因为这些封包内容可能有你的ID,信用卡号码等重要的个人数据。
事实上,这几年来因特网上的安全标准有很多。例如:RFC1508和1509所规定的GSSAPI(Generic Security Service Application Program Interface),Telnet,FTP和HTTP都可以使用;因特网工程小组(Internet Engineering Task Force; IETF)的PSRG小组所订定的PEM标准可以达到E-mail的安全性,而网络最著名的E-mail安全软件则是P. Zimmermann的PGP(Pretty Good Privacy);其它如EIT的S-HTTP(Secure HTTP),Netscape的SSL(Secure Sockets Layer),Microsoft的PCT以及上面提及的GSSAPI均可建立HTTP的安全机制,Visa的SET(Secure Electronic Transfer)则能达到安全的电子商务(Electric Commerce)。这些不论是对话层(Session Layer)或应用层(Application Layer)上的安全机制,使用者必须使用专属的通讯协议,或特定厂商的产品。
所以会有这样的问题,可以说都是TCP/IP惹的祸,IP标头中有来源(Source),目的(Destination)地址,装载数据(Payload),而TCP只负责将信息切割成封包,若遗失封包TCP再重送,所以TCP/IP根本没有安全性可言,使用一般Sniffing软件工具,即可一目了然地看到这些信息。
为了确保在任何IP网络上拥有安全的私密通信,也为了整合不同标准及不同厂商产品, IETF着手订定了一套开放标准网络安全协议IPSec (IP Security)。将密码技术应用在网络层,以提供传送、接收端做数据的认证(Authentication)、完整性(Integrity)、存取控制(Access Control)、以及机密性(Confidentiality)等安全服务。高层的应用协也可以直接或间接地使用这些安全服务。
IPSec是设计来达到网络层中端对端安全通讯的第三层协议,它主要的架构是IP认证标头(Authentication Header; AH)以及IP封装安全装载(Encapsulating Security Payload; ESP)。IP AH提供数据的完整性和认证,但不包括机密性,而IP ESP原则上只提供机密性,但也可在ESPHeader中订定适当的算法及模式来确保数据的完整性并认证,IP AH和IP ESP可以分开使用或一起使用。完整的IPSec还应包括IP AH和ESP中所使用金钥的交换和管理,也就是安全群组(Security Assocication; SA)和密钥管理IKE(Internet Key Exchange), IPSec架构图,其中DOI(Domain of interpretation)是为了让其它协议可以使用ISAKMP而订定的Framework,让我们很清楚知道IPSec和IKE所扮演的角色。
本文的第二部份将介绍IP AH,第三部份的内容是IP ESP,第四部份叙述安全群组SA的观念,第五部份则是以一个实际的例子来说明IP AH和IP ESP实际运作的情形,第六部份介绍SKIP及ISAKMP/Qakley两个IETF所参考的金钥管理协议。ISAKMP/Oakley较有弹性且能支持较多的协议,已被选为IPv6的IPSec金钥管理协议。最后一部份则是以ISPec的角度来看它在VPN上的应用,并整理列出目前VPN符合IPSec标准的商用产品。
虽然针对IP层的安全机制尚有其它的IP Tunneling技术,例如基植于PPP而发展的PPIP(Point-to-Point Tunneling Protocol),这是由Microsoft和Ascend所共同提出,可支持IP/IPX/NetBEUI,支持的厂商则有Nortel,3COM。另外L2TP(Layer 2 Tunneling Protocol)则是融合了PPTP和Cisco的L2F(Layer 2 Forwarding),主要的厂商有Nortel和IBM。
本文主要介绍IFTF所制定的开放标准IPSec,因为它能整合不同的VPN系统而达到安全地网络互连目的。
二、IP AH格式
IP AH提供认证及装载数据的完整性,但不含机密性。由于它不提供机密性,所以不受密码组件有对外输出的官方限制,故能横跨不同的国家的因特网使用。
IP AH使用需要128位金钥的MD5(Message Digest 5)计算出整个数据的杂凑函数值(注:此单向杂凑数也可使用SHA-1(Secure Hash Algorithm-1)),使得接收端(知道密钥的人)也可以验证、计算是否使用相同的密钥以检查数据是否正确完整,若检查不符则将此封包丢弃。依据IPSec规定,IPv6每部主机均应能提供密钥长度128位的MD5,而所有IPv4也应宣告能支持此项AH功能。
IP AH的格式,其中每项字段的意义分别叙述如下:Next Header长度8个位,这个标头是定义AH后面数据的类型;数据长度字段也是8个位,它决定认证数据域位的长度,另外还有16个保留位做未来之用。安全参数索引(Security Parameter Index;SPI)是长度32个位的虚拟随机数,决定安全群组SA的内容,例如"0"是表示没有SA,而1~255则是保留值。在SPI后面的是顺序号码字段(Sequence Number Field),加入这个号码可防止重送攻击(Replay Attack)。最后一个字段是认证数据长度是可变的(32位的倍数)。显示了使用信息摘要函数MD5,它产生128位的杂凑函数值。从图中也可看出对IPv4或IPv6而言。IP AH是在IP标头和TCP(或UDP)之间。
在IPSec中不管是IP AH或IP ESP,均有两种不同的操作模式,隧道模式(Tunneling Mode)及传送模式(Transport Mode)。还没介绍IPAH两种模式前,我们先来解释最常使用的技术 "隧道模式"的观念,整个IP datagram被包在新的datagram中。分别为原始的IP datagram,AH传送模式及AH隧道模式,对于AH隧道模式而言,最后它只是一个新的IP datagram而已。
三、IP ESP格式
IP ESP标准描述如何加密IP的装载数据(Payload) ,加密的范围可以是整个IPDatagram或者只是上层TCP,UDP,或ICMP数据(完全决定在使用隧道模式或传送模式)。IP ESP所使用的保密技术是数据保密标准(Data Encryption Standard; DES)或是Triple-DES,模式则是加密区块链(Cipher Block Chain ;CBC)。除了加密以外,IP ESP也能应用在认证,完整性,以及防止重送攻击。
IP ESP的隧道模式及传送模式各有其优点。隧道模式可以在两个Security Gateway间建立一个安全"隧道",经由这两个Gateway Proxy的传送均在这个隧道中进行。反观传送模式加密的部份较少,没有额外的IP标头,故工作效率较佳。
这两种模式的操作详细说明如下:
1.传送模式:
IP ESP的传送模式,ESP标头直接加在欲传送的数据前,这种模式可节省频宽。因为IP标头不需加密,所以不像隧道模式,一个封包中有两个IP标头。
首先将IP装载数据使用ESP封装起来(ESP Header和ESP Trailer)。传送端利用使用者ID和目的端地址以得到SA环境(下一节会加以介绍),然后用加密算法(DES或Triple-DES)加密传送的数据。接收端收到ESP封装的封包时直接处理IP标题(因为没有加密),然后从ESP Header拿取SPI值以得到相对的SA,再利用SA的安全环境所订的解密函数解出所加密的资料。
对传送模式而言,解密的人就是目的地址端的使用者。但是针对Firewall, Gateway Proxy而言,使用隧道模式则较为合适,因为他们并不是原始的送,收端。
2.隧道模式
隧道模式可以简单地用一句话来说明"IP-in-IP"。首先使用SA的相关讯息将IP的封包加密(含IP标头),接下来在前面加上ESP Header。然后Prepend新的IP标头。接收端收到ESP封包后,使用ESP Header内容中的SPI值决定SA,然后解出ESP Header后的装载数据,就可以取回原始的IP标头与封包,可以继续地往下传。
ESP Header及ESP Trailer的内容,ESP Header包含了SPI值,启始化向量IV,及顺序号码字段等,其中顺序号码可防止重送攻击。
3.IP AH与IP ESP混合使用
IP AH与IP ESP可以独立或分开使用。是先加密再认证,数据认证之前作加密。则是先认证再加密,它的好处是对认证数据也有加密,因此没有人可以更动认证数据。
在介绍完下一节安全群组SA的观念之后,我们将会以一个实际的例子来说明IPSec中IP Header ,IP AH, IP ESP, SPI等的操作情形。
第一代的IPSec版本于1995年提出(rfc 1825, rfc 1826, rfc 1827),它对金钥的交换和管理并未定义,所强调的内容是封包转换的格式。但网络安全规格近年来改革频繁,目前最新的IPSec版本已于1998年提出(rfc 2401, rfc 2402, rfc 2406),增加自动金钥交换且更新了封包转换的格式,使得IPSec架构愈趋完整。
四、安全群组SA
在IPSec标准中最重要的项目就是SA,它定义了一个安全的"环境",这个环境的内容包含了IP封包加密,解密,和认证的相关讯息,叙述如下:
·密码功能:提供加密或认证或两者同时。
·密码算法:例如加/解密使用DES(或 Triple-DES)认证使用MD5 (或SHA-1)。
·密码算法中所使用的金钥,金钥的生命周期等。
·是否有启始化向量。
·SA的生命周期
SA可以使用安全参数索引SPI(32位)来描述,也就是一个SPI值决定一个特定的SA,而主机的IP地址与SPI则定义了唯一的SA。例如主机A可以通知主机B SPI值为1000,它所相对的SA环境,密码功能为有只加密,用DES,金钥为0x1234567890abcdef(长度64位,其中8个位为同位)。所以主机A就可以藉由SPI 1000的值来加密它的数据,然后传送到主机B。当B收到封包后利用主机A和SPI的值就可以决定出SA而解密取回原始数据。
从上面的叙述可以发现SA是单向的(A B),
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。