VPN工作原理
IPSec提供三种不同的形式来保护通过公有或私有IP网络来传送的私有数据:
认证:可以确定所接受的数据与所发送的数据是一致的,同时可以确定申请发送者在实际上是真实发送者,而不是伪装的。
数据完整:保证数据从原发地到目的地的传送过程中没有任何不可检测的数据丢失与改变。
机密性:使相应的接收者能获取发送的真正内容,而无意获取数据的接收者无法获知数据的真正内容。
在IPSec由三个基本要素来提供以上三种保护形式:认证协议头(AH)、安全加载封装(ESP)和互联网密钥管理协议(IKMP)。认证协议头和安全加载封装可以通过分开或组合使用来达到所希望的保护等级。
对于VPN来说,认证和加密都是必需的,因为只有双重安全措施才能确保未经授权的用户不能进入VPN,同时,Internet上的窃听者无法读取VPN上传输的信息。大部分的应用实例中都采用了ESP而不是AH。密钥交换功能允许手工或自动交换密钥。
当前的IPSec支持数据加密标准(DES),但也可以使用其它多种加密算法。因为人们对DES的安全性有所怀疑,所以用户会选择使用Triple-DES(即三次DES加密)。至于认证技术,将会推出一个叫作HMAC(MAC 即信息认证代码Message Authentication Code)的新概念。
认证协议头(AH)是在所有数据包头加入一个密码。正如整个名称所示,AH通过一个只有密钥持有人才知道的"数字签名"来对用户进行认证。这个签名是数据包通过特别的算法得出的独特结果;AH还能维持数据的完整性,因为在传输过程中无论多小的变化被加载,数据包头的数字签名都能把它检测出来。不过由于AH不能加密数据包所加载的内容,因而它不保证任何的机密性。两个最普遍的AH标准是MD5和SHA-1,MD5使用最高到128位的密匙,而SHA-1通过最高到160位密匙提供更强的保护。
安全加载封装(ESP)通过对数据包的全部数据和加载内容进行全加密来严格保证传输信息的机密性,这样可以避免其他用户通过监听来打开信息交换的内容,因为只有受信任的用户拥有密匙打开内容。ESP也能提供认证和维持数据的完整性。最主要的ESP标准是数据加密标准(DES),DES最高支持56位的密匙,而Triple-DES使用三套密匙加密,那就相当于使用最高到168位的密匙。由于ESP实际上加密所有的数据,因而它比AH需要更多的处理时间,从而导致性能下降。
密钥管理包括密钥确定和密钥分发两个方面,最多需要四个密钥:AH和ESP各两个发送和接收密钥。密钥本身是一个二进制字符串,通常用十六进制表示,例如,一个56位的密钥可以表示为5F39DA752E0C25B4。注意全部长度总共是64位,包括了8位的奇偶校验。56位的密钥(DES)足够满足大多数商业应用了。密钥管理包括手工和自动两种方式。
人工手动管理方式是指管理员使用自己的密钥及其它系统的密钥手工设置每个系统。这种方法在小型网络环境中使用比较实际。手工管理系统在有限的安全需要可以工作得很好。使用手工管理系统,密钥由管理站点确定然后分发到所有的远程用户。真实的密钥可以用随机数字生成器或简单的任意拼凑计算出来,每一个密钥可以根据集团的安全政策进行修改。
自动管理系统能满足其他所有的应用要求。使用自动管理系统,可以动态地确定和分发密钥,显然和名称一样,是自动的。自动管理系统具有一个中央控制点,集中的密钥管理者可以令自己更加安全,最大限度的发挥IPSec的效用。 另一方面,自动管理系统可以随时建立新的SA密钥,并可以对较大的分布式系统上使用密钥进行定期的更新。自动管理模式是很有弹性的,但需要花费更多的时间及精力去设置,同时,还需要使用更多的软件。
IPSec的自动管理密钥协议的默认名字是ISAKMP/Oakley。互联网安全组织及密钥管理协议(Internet Security Association and Key Management Protocol ISAKMP)对互联网密钥管理的架构以及特定的协议提供支持。Oakley 密钥使用的协议基于Diffle-Hellman 算法,但它也提供额外的安全功能。特别是Oakley包括认证用户的机制。
IPSec的实现方式
IPSec的一个最基本的优点是它可以在共享网络访问设备,甚至是所有的主机和服务器上完全实现,这很大程度避免了升级任何网络相关资源的需要。在客户端,IPSec架构允许使用在远程访问介入路由器或基于纯软件方式使用普通MODEM的PC机和工作站。通过两种模式在应用上提供更多的弹性:传送模式和隧道模式。

IPSec数据包可以在压缩原始IP地址和数据的隧道模式使用。
传输模式通常当ESP在一台主机(客户机或服务器)上实现时使用,传输模式使用原始明文IP头,并且只加密数据,包括它的TCP和UDP头。
隧道模式通常当ESP在关联到多台主机的网络访问介入装置实现时使用,隧道模式处理整个IP数据包:包括全部TCP/IP或UDP/IP头和数据,它用自己的地址做为源地址加入到新的IP头。当隧道模式用在用户终端设置时,它可以提供更多的便利来隐藏内部服务器主机和客户机的地址。
ESP支持传输模式,这种方式保护了高层协议。传输模式也保护了IP包的内容,特别是用于两个主机之间的端对端通讯(例如,客户与服务器,或是两台工作站)。传输模式中的ESP加密及有时候会认证IP包内容,但不认证IP的包头。这种配置对于装有IPSec的小型网络特别有用。
但是,要全面实施VPN,使用隧道模式会更有效。ESP也支持隧道模式,保护了整个IP包。为此,IP包在添加了ESP字段后,整个包以及包的安全字段被认为是新的IP包外层内容,附有新的IP外层包头。原来的(及内层)包通过"隧道"从一个IP网络起点传输到另一个IP网点,中途的路由器可以检查IP的内层包头。因为原来的包已被打包,新的包可能有不同的源地址及目的地址,以达到安全的目的。
隧道模式被用在两端或是一端是安全网关的架构中,例如装有IPSec的路由器或防火墙。使用了隧道模式,防火墙内很多主机不需要安装IPSec 也能安全地通信。这些主机所生成的未加保护的网包,经过外网,使用隧道模式的安全组织规定(即SA,发送者与接收者之间的单向关系,定义装在本地网络边缘的安全路由器或防火墙中的IPSec软件IP交换所规定的参数)传输。
以下是隧道模式的IPSec运作的例子。某网络的主机甲生成一个IP包,目的地址是另一个网中的主机乙。这个包从起始主机被发送到主机甲的网络边缘的安全路由器或防火墙。防火墙把所有出去的包过滤,看看有哪些包需要进行IPSec的处理。如果这个从甲到乙的包需要使用IPSec,防火墙就进行IPSec的处理,并把网包打包,添加外层IP包头。 这个外层包头的源地址是防火墙,而目的地址可能是主机乙的网络边缘的防火墙。现在这个包被传送到主机乙的防火墙,中途的路由器只检查外层的IP包头。主机乙网络的防火墙会把外层IP包头除掉,把IP内层发送到主机乙去。
IPSec 及VPN
由于企业及政府用户需要把它们的专用WAN/LAN 架构与互联网连接,以便访问互联网的服务,所以他们非常热衷于部署安全的IP。用户需要把它们的网络与互联网分隔,但同时要在网上发送及接收网包。安全的IP就可以提供网上的认证及隐私机制。
因为IP安全机制是独立定义,其用途与现在的IP或IPv6不同,IP安全机制不需要依靠IPv6部署。我们可以看到安全IP的功能会首先被广泛使用,它会比IPv6先流行起来,因为对IP层的安全需求远比增加IPv6功能的需求多很多。
有了IPSec,管理人员就有了实施VPN的安全标准。此外,所有在IPSec中使用的加密及认证算法已经过仔细的研究和几年的验证,所以用户大可放心地将安全问题交付给IPSec。
展望:高集成度将使IPSec的发展产生飞跃
今天,信息高速公路比以往任何时候都显得重要,但是它也面临越来越大的安全威胁,因此对加强网络中每一个节点硬件安全性的需求正在不断增长。这需要将基本的安全功能(数据加密性和完整性)构建到每一台网络设备中,这样才有可能对网络中所有的数据包进行完全地加密保护。不过,对许多网络设备的设计而言,安全性是一个事后考虑的问题。我们需要对何处、何时以及在什么情况下加入安全特性进行重新考虑。目前有三种主要的方法可以在网络硬件设备上加入安全功能。第一种也是最重要的方法就是用一个协处理器和一个网络处理器或者通用处理器一起工作。随着数据处理速率的提高,这种方法变得越来越不实用,因为数据包必须穿越共享的资源如数据总线或存储器四次。第二种方法是增加一个安全处理器串接在网络处理器的后面。这种方法可以实现高速的数据处理,这个串接的安全处理器必须能完成许多类似于网络处理器的功能,像数据包的重新达包等,因而这样的工作被重复进行并且硅片面积也不得不增大一倍。第三种方法是将加密电路集成在与网络处理器类似的芯片中,从而在网络处理器中加入了安全功能同时又保持了传输速度并且最大限度地控制了芯片面积。当采用这种集成的方案设计新的网络线路卡时,用户可以从中受益。在设计一个网络安全产品时,必须同时考虑数据包处理和安全性需求。在已有产品中,一个通用处理器与一个安全协处理器一起工作将不能达到现有产品需要的10Gbps速度。但是如果将现有的网络处理器,如英特尔的IXP1200,与一个安全协处理器搭配使用,就可能达到这种要求。但是现有的安全芯片只提供协处理器架构,这是远远不够的。在下一代的IXP2850中,我们选择将安全和加密功能集成在芯片上,这不仅因为它是一个最好的方法来实现贯穿整个网络的保密功能,而且还因为它是一个更加高效的方法来提供安全性。就性能而言,这种方案能够更好地以10Gbps以太网速率进行加密和鉴别互联网协议安全(IPSec),甚至能保证100%的数据传输安全。我们的设计采用了一个加密单元,它将大多数基本算法所需的功能整合在一起,但在某种意义上说将它集成在网络处理单元(NPU)的基本数据流程管道中更为简单。这个加密单元由几个算法组成以保证数据的机密性和完整性。每种算法有它自己在芯片面积、并行性和对称性方面的折衷考虑以及挑战。

增加的安全功能支持数据加密标准(DES)、3DES、高级加密标准(AES)算法以及安全散列算法(SHA-1),这使得硬件能直接进行数据鉴别。它由两个3DES内核、一个AES内核以及两个SHA-1内核组成。这样可以通过SHA-1内核在将密钥加入数据之前或之后来处理数据。在IXP2850中含有两个这样的内核。增加加密功能非常重要,从某种意义上说这对网络处理器的特性起到了杠杆作用。对于英特尔的网络处理器,这方面主要得益于被称作微引擎的多重、多线程处理单元。我们选择的这种多线程模型是NPU架构中的重要部分,它带来了设计上的一些挑战。例如,因为这些安全功能比较独立于硬件配置,所以希望能充分地并行利用所有的安全硬件。但实现这种硬件的并行性需要小心地管理那些公用的部件(像全局总线、局部存储器)以及数据锁存方法。它还需要保证在不牺牲系统性能的情况下充分灵活地切换初始化向量(IV)、按键和其他状态信息。用流水线方法处理协议也很重要。例如,在处理IPSec隧道模式信息包时,可以流水操作所有必需的处理。尽管在单个接口上实现10Gbps的速度很重要,但是接口的聚合也很重要,例如,把10个1Gbps的接口合并在一起。当多个接口连接到网络处理器的时候,一个特定信息包的数据可以和其它信息包数据交织在一起存放在接收缓冲器中。在NPU中集成加密微引擎管道可使一条加密数据通道每秒发送超过2,500万个IPSec信息包。这足以在10Gbps速度的情况下加密和鉴别IPSec,从而保证100%信息流量的安全性。将安全功能集成到NPU中一个很大的好处就是可以节省整个方案的功耗。现在的安全处理器达到10Gbps速度时,功耗大约是13-30瓦。而IXP2850在设计阶段特别注意降低功耗并且省去了I/O器件,故可以比其他方案节省20%-50%的功耗。
参考资料
V. Ahuja,"Secure Commerce on the Internet",AP Proffesional,1998.
L.J. Hughes , "Internet安全技术实务" 1996.
1998 "VPN技术与应用趋势研讨会",1998.
http://www.ietf.org/thml.charters/ipsec-charter.html
http://firewall.sysware.com.tw/faq/vpn/ipsec.html
http://firewall.sysware.com.tw/faq/vpn/SKIP.html
http://conway.cba.ufl.edu/ism6222/Ipsec.html
http://www.hsc.fr/veille/papier/papier.html.en
转载地址:http://www.net130.com/CMS/Pub/special/special_vpn/233215.htm