IPSEC工作原理
虚拟专网是指在公共网络中建立专用网络,数据通过安全的“管道”在公共网络中传播。使用VPN有节省成本、提供远程访问、扩展性强、便于管理和实现全面控制等好处,是目前和今后网络服务的重点项目。因此必须充分认识虚拟专网的技术特点,建立完善的服务体系。 VPN工作原理
目前建造虚拟专网的国际标准有IPSEC(RFC 1825-1829)和L2TP(草案draft-ietf-pppext-l2tp-10)。其中L2TP是虚拟专用拨号网络协议,是IETF根据各厂家协议(包括微软公司的PPTP、Cisco的L2F)进行起草的,目前尚处于草案阶段。IPSEC是一系列基于IP网络(包括Intranet、Extranet和Internet)的,由IETF正式定制的开放性IP安全标准,是虚拟专网的基础,已经相当成熟可靠。L2TP协议草案中规定它(L2TP标准)必须以IPSEC为安全基础(见draft-ietf-pppext-l2tp-security-01)。因此,阐述VPN的工作原理,主要是分析IPSEC的工作原理。
IPSEC提供三种不同的形式来保护通过公有或私有IP网络来传送的私有数。
认证——作用是可以确定所接受的数据与所发送的数据是一致的,同时可以确定申请发送者在实际上是真实发送者,而不是伪装的。
数据完整——作用是保证数据从原发地到目的地的传送过程中没有任何不可检测的数据丢失与改变。
机密性——作用是使相应的接收者能获取发送的真正内容,而无意获取数据的接收者无法获知数据的真正内容。
在IPSEC由三个基本要素来提供以上三种保护形式:认证协议头(AH)、安全加载封装(ESP)和互联网密匙管理协议(IKMP)。认证协议头和安全加载封装可以通过分开或组合使用来达到所希望的保护等级。
认证协议头(AH)是在所有数据包头加入一个密码。正如整个名称所示,AH通过一个只有密匙持有人才知道的“数字签名”来对用户进行认证。这个签名是数据包通过特别的算法得出的独特结果;AH还能维持数据的完整性,因为在传输过程中无论多小的变化被加载,数据包头的数字签名都能把它检测出来。不过由于AH不能加密数据包所加载的内容,因而它不保证任何的机密性。两个最普遍的AH标准是MD5和SHA-1,MD5使用最高到128位的密匙,而SHA-1通过最高到160位密匙提供更强的保护。
安全加载封装(ESP)通过对数据包的全部数据和加载内容进行全加密来严格保证传输信息的机密性,这样可以避免其他用户通过监听来打开信息交换的内容,因为只有受信任的用户拥有密匙打开内容。ESP也能提供认证和维持数据的完整性。最主要的ESP标准是数据加密标准(DES),DES最高支持56位的密匙,而3DES使用三套密匙加密,那就相当于使用最高到168位的密匙。由于ESP实际上加密所有的数据,因而它比AH需要更多的处理时间,从而导致性能下降。
密匙管理包括密匙确定和密匙分发两个方面,最多需要四个密匙:AH和ESP各两个发送和接收密匙。密匙本身是一个二进制字符串,通常用十六进制表示,例如,一个56位的密匙可以表示为5F39DA752E0C25B4。注意全部长度总共是64位,包括了8位的奇偶校验。56位的密匙(DES)足够满足大多数商业应用了。密匙管理包括手工和自动两种方式,手工管理系统在有限的安全需要可以工作得很好,而自动管理系统能满足其他所有的应用要求。
使用手工管理系统,密匙由管理站点确定然后分发到所有的远程用户。真实的密匙可以用随机数字生成器或简单的任意拼凑计算出来,每一个密匙可以根据集团的安全政策进行修改。 使用自动管理系统,可以动态地确定和分发密匙,显然和名称一样,是自动的。自动管理系统具有一个中央控制点,集中的密匙管理者可以令自己更加安全,最大限度的发挥IPSEC的效用。
IPSEC的实现方式
IPSEC的一个最基本的优点是它可以在共享网络访问设备,甚至是所有的主机和服务器上完全实现,这很大程度避免了升级任何网络相关资源的需要。在客户端,IPSEC架构允许使用在远程访问介入路由器或基于纯软件方式使用普通MODEM的PC机和工作站。而ESP通过两种模式在应用上提供更多的弹性:传送模式和隧道模式。
IPSEC Packet 可以在压缩原始IP地址和数据的隧道模式使用
传送模式通常当ESP在一台主机(客户机或服务勤)上实现时使用,传送模式使用原始明文IP头,并且只加密数据,包括它的TCP和UDP头。
隧道模式通常当ESP在关联到多台主机的网络访问介入装置实现时使用,隧道模式处理整个IP数据包——包括全部TCP/IP或UDP/IP头和数据,它用自己的地址做为源地址加入到新的IP头。当隧道模式用在用户终端设置时,它可以提供更多的便利来隐藏内部服务器主机和客户机的地址。
虚拟专网的加密算法说明
一、IPSec认证
IPSec认证包头(AH)是一个用于提供IP数据报完整性和认证的机制。完整性保证数据报不被无意的或恶意的方式改变,而认证则验证数据的来源(主机、用户、网络等)。AH本身其实并不支持任何形式的加密,它不能保护通过Internet发送的数据的可信性。AH只是在加密的出口、进口或使用受到当地政府限制的情况下可以提高全球Intenret的安全性。当全部功能实现后,它将通过认证IP包并且减少基于IP欺骗的攻击机率来提供更好的安全服务。AH使用的包头放在标准的IPv4和IPv6包头和下一个高层协议帧(如TCP、UDP、I CMP等)之间。
AH协议通过在整个IP数据报中实施一个消息文摘计算来提供完整性和认证服务。一个消息文摘就是一个特定的单向数据函数,它能够创建数据报的唯一的数字指纹。消息文摘算法的输出结果放到AH包头的认证数据(Authentication_Data)区。消息文摘5算法(MD5)是一个单向数学函数。当应用到分组数据中时,它将整个数据分割成若干个128比特的信息分组。每个128比特为一组的信息是大分组数据的压缩或摘要的表示。当以这种方式使用时,MD5只提供数字的完整性服务。一个消息文摘在被发送之前和数据被接收到以后都可以根据一组数据计算出来。如果两次计算出来的文摘值是一样的,那么分组数据在传输过程中就没有被改变。这样就防止了无意或恶意的窜改。在使用HMAC-MD5认证过的数据交换中,发送者使用以前交换过的密钥来首次计算数据报的64比特分组的MD5文摘。从一系列的16比特中计算出来的文摘值被累加成一个值,然后放到AH包头的认证数据区,随后数据报被发送给接收者。接收者也必须知道密钥值,以便计算出正确的消息文摘并且将其与接收到的认证消息文摘进行适配。如果计算出的和接收到的文摘值相等,那么数据报在发送过程中就没有被改变,而且可以相信是由只知道秘密密钥的另一方发送的。