随着越来越多的企业、单位接入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协议校验了用户的身份和网络服务。这种双重验证被称为相互身份验证。[Page]
2.2 IPSec基本概念
2.2.1 IPSec基本概念
IPSec通过使用基于密码学的保护服务、安全协议和动态密钥管理,可以实现以下这几个目标:
1、认证IP报文的来源
基于IP地址的访问控制十分脆弱,因为攻击者可以很容易利用伪装的IP地址来发送IP报文。许多攻击者利用机器间基于IP地址的信任,来伪装IP地址。IPSec允许设备使用比源IP地址更安全的方式来认证IP数据报的来源。IPSec的这一标准称为原始认证
上文我们介绍了IPSec的工作原理及其相关的基本概念和术语,在接下来的叙述中,我们将集中讨论IPSec的配置步骤。
1 IPSec基本配置步骤
前文中提到的AH和ESP报头中值得注意的一点是没有指明用来产生认证数据和负载数据的算法。可以使用一些不同的算法。这意味着,如果出现了一个新的算法,它可以不作明显改动地合成进IPSec标准中。目前,MD5和SHA是用来产生认证数据的两种算法。ESP加密算法包括DES,3DES,RC5和IDEA。下面讨论IPSec配置的步骤以及如何选取不同的算法。
(1)打开IPSec配置对话框
选择"开始"|"程序"| "管理工具"|"本地安全策略"菜单,打开"本地安全设置"对话框。单击以选择"IP安全策略:在本地机器",如图1所示。
最初的窗口显示三种预定义的策略项:客户端、服务器、安全服务器。在每个预定义的策略的描述中详细解释了该策略的操作原则。如果想要修改系统预定义的策略细节,可以右击相应的策略并选择"属性"进行修改。
下面,我们将通过新建一个策略对各种策略的属性进行介绍。
(2)右击"IP安全策略,在本地机器",选择"创建IP安全策略",打开"安全策略向导"。单击"下一步"继续。如图2、3所示。
(3)在弹出的对话框中为新的IP安全策略命名并填写策略描述。如图4所示。
(4)单击"下一步",接受对话框中"默认的响应"复选项,之后单击"下一步"。如图5所示。
(5)接受默认的选项"Windows 2000 默认值Kerberos V5"作为默认响应规则身份验证方法,单击"下一步"继续。如图6所示。
(6)保留"编辑属性"的选择并单击"完成"按钮完成IPSec的初步配置。如图7所示。
(7)完成初步配置后,将弹出新IP安全策略属性对话框。如图8所示。
(8)接下来需要添加用户自己定义的"IP安全规则"。这里,我们在不选择"使用'添加向导'"情况下单击"添加"按钮。出现如图9所示的"新规则属性"对话框。在这里我们可以对新规则的各项属性进行设置。其中包括:
1)IP筛选列表
在"IP筛选列表"标签页上单击"添加"按钮打开"IP筛选器列表"对话框。如图10所示。
输入新IP筛选器列表的名称、描述信息并在不选择"使用'添加向导'"情况下单击"添加"按钮。新弹出的"筛选器属性"对话框如图11所示,包含三个标签页:
●"寻址":可以对IP数据流的源地址、目标地址进行规定,如图11所示。
●"协议":可以对数据流所使用的协议进行规定,如果选择了"TCP"或"UDP"协议还可以对源端和目的端使用的端口号作出规定,如图12所示。
●"描述":对新筛选器作出简单描述。
在完成对"筛选器属性"的设置后,要确保选中新设置的"IP筛选器",如图13所示。
2)筛选器操作
"筛选器操作"标签页是整个IPSec设计的关键。它将对符合"IP筛选器"的数据流进行相应处理。如图14所示。这里,我们在不选择"使用'添加向导'"情况下单击"添加"按钮。出现如图15所示的"新筛选器操作 属性"对话框。
[Page]
众信咨询:互联网资质代理诚信品牌