网络通信 频道

IPSEC 安全架构、应用及展望

IPSEC 安全架构、应用及展望

 
一、前言
二、IP AH格式
三、IP ESP格式
四、安全群组SA
五、一个IPSec的实际例子
六、IPSce的金钥管理方法
七、IPSec在VPN上的应用

在互联网上的持续不断的不安全推动了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),但是对主机A与主机B这两个要建立安全通讯的主机而言则需要两个SA,每一方向一个,(A B)和(B A)。

此外SA的使用有两种键入方式,主机导向键入方式(Host-Oriented Keying)与使用者导向键入方或(User-Oriented Keying)。前者是不考虑使用者,从同一个系统所发出的封包,均使用相同的金钥,而后者则是以使用者为考量,允许使用者有不同的金钥。例如:同一使用者有多把金钥用于不同的服务,如FTP与Telnet使用不同的金钥。

五、一个IPSec的实际例子

二~四节已介绍了IPSec的基本架构,IP AH, IP ESP, SA, SPI等。现在我们将这些全部放在一起以实际的例子来加以说明。

EXAMPLE:假设有一个主机yang.chtti.com.tw欲藉由IPSec安全机制将具有加密及认证的TCP封包送到另一部主机yang.csie.ndhu.edu.tw。它希望它的gateway gatekeeper.chtti.com.tw能做加密,认证的工作,而对方的gateway gw.csie.ndhu.edu.tw能解密这些封包并认证,使用的SPI参数值假设是0x1234是指向大家事先同意的安全群组SA。

这个IPSec例子的说明示意图,当主机yang.chtti.com.tw所送的封包到它的gateway时, gateway加密封包并加入ESP Header,然后加入AH和新的IP标头,其中以gateway的地址gatekeeper.chtti.com.tw当作新的来源地址,并以gw.csie.ndhu.edu.tw当作新的目的端地址,最后计算杂凑函数值并加在AH中。

CHECK POINT Firewall-1(CHEK POINT在Firewall市场占有率约44%)的例子,Firewall-1有很好的人机界面(GUI),从图中可以清楚看出使用了AH和ESP,认证用的单向杂凑函数为SHA-1,加密算法为DES,同时也可看到加密及认证的金钥,SPI的数值为0x1234。

由于安全群组SA可以是不同的,所以我们也可以在CHECK POINT Firewall-1中的Security Policy加入下面两条规则(rule),如图所示。因为使用的SPI值不一样,从yang.chtti.com.tw到yang.csie.ndhu.edu.tw的方向是使用SPI 0x1000,反方向则是使用SPI 0x2000,这两台主机彼此做FTP时使用的算法跟金钥可以是不同的。

六、IPSce的金钥管理方法

在IP AH和IP ESP中所用到的认证与加密金钥,如何交换与管理呢!一把金钥是否一直使用呢!这些问题都尚末提及,这些问题对IPSec而言是非常重要的课题。

如果是几台主机,可以用人工的方式来交换金钥,例如打电话或E-mail,但是主机数目一多,或者是主机数据常更改,这时侯就需要一套安全且正式的协议来做这件事情了。

目前主要的金钥管理协议的参考规范有:(1)SKIP(Simple Key-management for IP)(2)ISAKMP/Oakley(Internet Security Association Key Management Protocol /Oakley )。上述两种方法都可应用在IPv4与IPv6中,SKIP较为简单,而ISAKMP/Oakley则可以应用于较多的协议。事实上,IP层的金钥交换协议尚有Photuris和SKEME等。

1.SKIP:

SKIP是由Sun Microsystem所发展,目有三种版本:Sun, TIK,和ELVIS+SKIP。SKIP金钥管理的观念是阶层式的金钥管理,如图所示。通讯的双方真正共享的密钥是Kij(这是利用Diffie Hellman的公开金钥对而达到共享的)。为了安全的考量,公开金钥应至凭证管理中心(Certificate Authority;CA)申请凭证。因此IPSec的使用也需要每一国家的公开金钥基础建设(Public Key Infrastructure;PKI)来配合。

使用Kij推导而得Kijn=MD5(Kij/n),其中n是现在时间距离1995年1月1日零点的时数,Kijn是一个长期金钥(每隔1小时更换一次),利用Kijn这把金钥将短期金钥Kp(每隔2分钟更换一次)加密后插入SKIP Header送到对方。接收端收到后利用Kijn解回Kp。接下来双方使用E_Kp=MD5(Kp/0)及A_Kp=MD5(Kp/2)导出加密金钥E_Kp和认证金钥A_Kp。由于金钥推导过程是一层一层的,因SKIP称之为阶层式的金钥管理架构。

我们一样使用第五节的例子:"当主机yang.chtti.com.tw欲与主机yang.csie.ndhu.edu.tw启动通讯",来讨论SKIP协议,图是SKIP封包内容的描述。

SKIP原欲与ISAKMP整合考量,但失败了。因为IPv6已决定使用ISAKMP与Oakley金钥交换的合并协议,也就是ISAKMP/Oakley(现已称作IKE;Internet Key Exchange)。所以SKIP并非IPSec强制规定的金钥管理方法。

2.ISAKMP/Qakley(IKE):

Oakley金钥交换协议是由亚利桑那大学所提出,它与SEKME有相当多的共同部份(注:SEKME则是Photuris的延伸)。

ISAKMP有两个操作阶段。第一阶段中,相关的一些安全属性经过协商,并产生一些金钥,…等。这些内容构成第一个SA,一般称作ISAKMP SA,与IPSec SA不一样的是它是双向的。第二阶段则是以ISAKMP SA的安全环境来建立AH或ESP的SA。

IKE则是ISAKMP使用Oakley的一些模式和SKEME快速rekey的观念合并而成,它有(1)Main Mode (2)Aggressive Mode (3)Quick Mode(4)New group mode等四种模式。

七、IPSec在VPN上的应用

在了解IPSec协议的工作原理后,我们来看它不同的用场合,值得注意的是在网络层提供安全机制,对应用层而言是完全透通的(trarsparent)。IPSec可以装设在gateway或主机上,或是两者同时,若IPSec装在gateway上,则可在不安全的Internet上提供一个安全的信道,若是装在主机,则能提供主机端对端的安全性。分别是gateway对gateway,主机对gateway,主机对主机三种可能的应用状况。

IPSec的优点

IPSec在传输层之下,对于应用程序来说是透明的。当在路由器或防火墙上安装IPSec时,无需更改用户或服务器系统中的软件设置。即使在终端系统中执行IPSec,应用程序一类的上层软件也不会被影响。

IPSec对终端用户来说是透明的,因此不必对用户进行安全机制的培训。

如果需要的话,IPSec可以为个体用户提供安全保障,这样做就可以保护企业内部的敏感信息。

IPSec正向Internet靠拢。已经有一些机构部分或全部执行了IPSec。IAB的前任总裁Christian Huitema认为,关于如何保证Internet安全的讨论是他所见过的最激烈的讨论之一。讨论的话题之一就是安全是否在恰当的协议层上被使用。想要提供IP级的安全,IPSec必须成为配置在所有相关平台(包括Windows NT,Unix和Macintosh系统)的网络代码中的一部分。

实际上,现在发行的许多Internet应用软件中已包含了安全特征。例如,Netscape Navigator和Microsoft Internet Explorer支持保护互联网通信的安全套层协议(SSL),还有一部分产品支持保护Internet上信用卡交易的安全电子交易协议(SET)。然而,VPN需要的是网络级的功能,这也正是IPSec所提供的。

0
相关文章