IPSec原理与实践1-原理(组图)
随着越来越多的企业、单位接入Internet和接入速度的不断提高,网络安全正日益成为网络管理的一个重要课题。作为广泛部署的Windows(NT)Server系统自身的安全受到越来越多的关注。市场上也出现了很多软、硬件防火墙产品来保证内网服务器的安全。其实,Windows(NT)Server系统自身便带有功能强大的防火墙系统-IPSec,其全面的安全保护功能并不输于其它商业防火墙产品。本文将介绍基于Windows操作系统的防火墙系统-IPSec的原理与实现。
1 TCP/IP过滤
在深入探讨IPSec之前,我们首先来看一下Windows系统的TCP/IP过滤功能。
Windows 2000 Server系统内部集成了很多安全特性,这包括"本地安全及审核策略"、"加密文件系统"、"TCP/IP过滤"、"IP安全(IPSec)"等等。其中的"TCP/IP过滤"为用户提供了一个简单、易于配置、易于使用的网络安全保障工具。它是用于入站本地主机TCP/IP通讯的一组筛选器。使用TCP/IP筛选可以为每个IP接口严格指定所处理的传入TCP/IP通讯类型。这个功能设计用于隔离Internet或Intranet服务器所处理的通信。
如图1所示,使用"TCP/IP"筛选,可以根据以下三种方式来限制本地主机的入站TCP/IP通讯:
●目标TCP端口
●目标UDP端口
●IP协议(号)
"TCP/IP筛选"的使用有很多限制,如不能根据源地址来区别对待数据包的入站、不能对出站通信进行筛选、不能对已允许的通信进行加密等等。如果想要实现更加灵活、安全的设计,则必须使用IPSec。
2 IPSec原理
使用internet协议安全(Internet Protocol Security,IPSec)是解决网络安全问题的长久之计。它能针对那些来自专用网络和internet的攻击提供重要的防线,并在网络安全性与便用性之间取得平衡。IPSec是一种加密的标准,它允许在差别很大的设备之间进行安全通信。利用IPSec不仅可以构建基于操作系统的防火墙,实现一般防火墙的功能。它还可以为许可通信的两个端点建立加密的、可靠的数据通道。
2.1 术语解释
为了便于理解IPSec的工作原理,首先介绍一些数据加密和安全方面常用的一些术语和基本知识,然后再介绍IPSec的实现以及它如何在网络中提供安全通信的。这种介绍仅仅是一个概述并为后面讨论IPSec做一个铺垫。加密是一个复杂的领域,它包含了许多规则、算法以及数学方面的知识。这里我们将着重讨论加密技术的实际实现,对于它内在的理论只作一个简要的概述。
2.1.1 数据加密标准
数据加密标准(Data Encryption Standard,DES)是美国国家标准局于1977年开发的对称密钥算法。它是一种对称密钥算法,可以使用40~56位长的密钥。另一种称为3DES的加密策略也使用同样的DES算法,但它并不只是加密一次,而是先加密一次,再加密(解密)一次,最后做第三次加密,每一次加密都使用不同的密钥。这一过程显著地增加了解密数据的难度。
2.1.2 RSA算法
RSA是一种根据它的发明者Rivest,Shamir和Adleman命名的公开密钥算法。它方便了对称密钥加密中的密钥交换过程。它还可以用来产生数字签名。
2.1.3 Diffie-Hellman
Diffie-Hellman是一种简化在非安全网络上交换秘密密钥的公开密钥加密算法。算法是以Diffie和Hellman命名的,他们在1977年出版了第一个公开密钥加密的公开搜索。它的主要目的是简化在不安全网络上交换秘密会话密钥的过程。
2.1.4 散列函数
散列(Hash)函数是一种单向的算法,它提取任意长度的一段信息并产生固定长度的乱序的摘要。摘要是文本的一个截取,只包含与文本最相关的部分,这就是Hash函数所产生的结果。Hash是一种单向的定义。我们可以在给定的文本上运行算法来获得固定长度的Hash值,但不能从Hash过程中获得最初的文本。Hash函数可以唯一地定义文本。它对每个唯一的消息而言就像是指纹一样。不同的消息可以产生不同的值,并且相同的消息会产生完全相同的Hash,Hash值可以用于维持数据的完整性。如果A发送一个消息给B,并给B消息的Hash。B可以在消息上运行用在该消息上的同一Hash算法,并用计算得到的Hash值与B收到的Hash值相比较。如果发现根据消息计算出来的Hash与B收到的Hash值不同,就可以知道数据在传输的过程中出错了。
2.1.5 消息摘要:MD5
消息摘要(Message Digest 5,MD5)是一种符合工业标准的单向128位的Hash算法,由RSA Data Security Inc.开发,它可以从一段任意长的消息中产生一个128位的Hash值。(例如,质询握手身份验证协议 (CHAP)通过使用MD5来协商一种加密身份验证的安全形式。CHAP在响应时使用质询-响应机制和单向MD5散列。用这种方法,用户可以向服务器证明自己知道密码,但不必实际将密码发送到网络上,从而保证了密码本身的安全性。)
2.1.6 安全散列算法:SHA-1
Secure Hash Algorithm(SHA-1)是一种产生160位Hash值的单向Hash算法。它类似于MD5,但安全性比MD5更高。
2.1.7 Hash信息验证码HMAC(Hash message authentication codes)
HMAC可以用来验证接收消息和发送消息的完全一致性(完整性)。
2.1.8 数字签名
数字签名标准(Digital Signature Standard,DSS)是国家标准技术研究所开发的数字签名算法。数字签名(Digital Signature,DS)是一种用使用者的私有密钥加密的Hash值。它可以像正常签名一样用于认证,但它也可以用做与签名相关的信息完整性的认证。
2.1.9 认证授权
认证授权(Certificate Authority,CA)是一个实体,通常是一台计算机,它保存了一些公开密钥。事实上,它保存的一些称为认证的目标包含了用户或设备的信息,其中包括它们的公开密钥。认证包含某个公开密钥的所有者的认证信息,如:姓名、地址、公司等。认证的目的有两个:
●标志一个用户或设备的公开密钥。
●确认假设的公开密钥的拥有者是公开密钥的真实拥有者。
认证授权(CA)是一个记录了所有认证的第三方。使用CA,用户可以有一个认证的集中贮藏处,它允许用户获得其他用户的公开密钥并认证那些用户。它提供了一个记录用户和设备公开密钥的集中存放点。它还提供了认证授权,当用户从CA中获得用户A的公开密钥时,密钥确实是用户A的而不是其他人的。
2.1.10 OAKLEY密钥决定协议
Hilarie Orman提出的"OAKLEY密钥决定协议",Oakley和SKEME各自定义了一种建立已认证密钥交换的方法,包括载荷的结构、所承载载荷信息、处理它们的顺序以及如何使用它们。Oakley描述了一系列的密钥交换模式,提供密钥交换和刷新功能。
2.1.11 SKEME: Secure Key Exchange Mechanism
Hugo Krawczik提出的"安全密钥交换机制(SKEME)"SKEME描述了通用密钥交换技术,提供匿名性、防抵赖和快速刷新。
2.1.12 互连网安全联盟及密钥管理协议
互连网安全联盟及密钥管理协议(Internet Security Association and Key Management Protocol,ISAKMP)是一个定义在主机之间交换密钥和协商安全参数的框架。ISAKMP定义密钥在非安全网络上交换的一般机制,ISAKMP定义的信息包括报文中消息的位置和通信过程发生的机制,但它不指明使用的协议和算法。
2.1.13 互连网密钥交换
互连网密钥交换(Internet Key Exchange,IKE)是一种实现密钥交换定义的协议。IKE是一种在ISAKMP框架下运行的协议。它是从其他密钥交换协议OaKley和SKEME中派生而来的。IKE用于在对等端之间认证密钥并在它们之间建立共享的安全策略。IKE用于确认,譬如标志一个要求加密会话的对等端,以及决定对等端使用何种算法和何种密钥。
IKE考虑了IPSec使用的所有算法交换秘密密钥的复杂性。通过将密钥管理函数替代普通的密钥管理协议,简化了将新的算法添加进IPSec协议栈的过程。IKE使用公开密钥加密算法在非安全网络上安全地交换秘密密钥。
2.1.14 Kerberos V5身份验证
Kerberos V5是用于处理用户和系统身份的身份验证的Internet标准安全协议,是在Windows 2000 Server域中进行身份验证的主要安全协议。使用Kerberos V5,通过网络线路所发送的密码将经过加密而不作为纯文本进行发送。Kerberos V5协议校验了用户的身份和网络服务。这种双重验证被称为相互身份验证。
2.2 IPSec基本概念
2.2.1 IPSec基本概念
IPSec通过使用基于密码学的保护服务、安全协议和动态密钥管理,可以实现以下这几个目标:
1、认证IP报文的来源
基于IP地址的访问控制十分脆弱,因为攻击者可以很容易利用伪装的IP地址来发送IP报文。许多攻击者利用机器间基于IP地址的信任,来伪装IP地址。IPSec允许设备使用比源IP地址更安全的方式来认证IP数据报的来源。
阅读(859) | 评论(0) | 转发(0) |