网际协议安全(IPSec)
网络与通信
由于因特网与局域网的发展,对网络安全的需要日益增加。值得关心的主要是网络通信在传输中的数据免遭修改、拦截、查看或被拦截时复制、被未经过身份验证的其他人员所访问等危险。网络保护策略通常只集中于使用防火墙、安全的路由器和用户访问的身份验证、实际网络线路免受访问和网络访问点不被利用,但这些保护策略并不能保护来自内部网络的攻击及保证数据在通过多个网络时被保护(因为有时传输必须在因特网上)。
Win2000中提供的IPSec通过采用加密安全服务,可确保IP网络的专用、安全通信;可以保护IP数据包及对网络攻击提供防卫。IPSec在网络层实现保护所有使用IP进行数据传输的应用程序和服务,并基于端对端的安全模式:发送计算机在传输之前加密数据,接收计算机在数据收到后才解密该数据。每台计算机在各自端口处理数据包,在资源和目标之间转发数据包的路由器并不需要支持IPSec。这种模式可成功地部署现有的企业方案(客户机/服务器、对等网、路由器/路由器、拨号上网客户机和从专用网络的因特网访问)。与在网络层之上操作的其他安全机制相比,这是一种改进,例如SSL(安全套接口层),它只是保护使用SSL的应用。如果所有应用都需要保护,那么对每项应用的修改都是需要的。
IPSec在Win2000中由IPSec策略代理、ISAKMP/Oakley Key Management Service、IPSec驱动程序等组件构成。策略代理是位于每台Win2000计算机上的IPSec机制,随计算机启动而启动,并在策略指定的时间间隔内从Active Directory中检索或从该计算机的注册表中读取该策略,然后将策略信息发送到ISAKMP/Oakley服务、IPSec驱动程序和计算机注册表。ISAKMP/Oakley密钥管理服务驻留在运行Win2000的每台计算机上,由策略代理驱动,在IP数据报可从一台计算机传输到另一台计算机之前建立安全关联,产生实际密钥。它集合安全关联管理,降低了连接时间。IPSec驱动程序(IPSEC.SYS)也由策略代理驱动,并观察所有的IP数据报,用以匹配该计算机安全策略中的筛选器列表。如果发现了筛选器匹配,则发送计算机上的IPSec驱动程序将使用SA和共享的密钥加密该数据,并将它发送到接收计算机,接收计算机上的IPSec驱动程序解密被传输的数据,并将它传送到接收应用程序。
((图1))显示了运行Win2000的内部计算机A和B在通讯时IPSec的安全过程。

要配置IPSec策略可从本地安全策略管理单元或从MMC(管理控制台)添加IP安全策略管理单元进行,其中从MMC添加时可选择管理范围(本机、本域、另一台机或另一域)。IP策略管理单元中包括三个预定义的策略条目,默认没有被指派,如((图2))。

其中安全服务器(要求安全设置)对于所有IP通讯总是要求使用Kerberos信任的安全设置,不允许与不受信任的客户端进行没有加密的通讯;客户端(只响应)进行没有加密的正常通讯,使用默认响应规则与请求安全设置的服务器协商,只有被请求的协议和那台服务器的端口通讯才能得到保护;服务器(请求安全设置)总是利用Kerberos信任所有IP通讯请求是否安全,如果安全则允许与没有响应的客户端进行不加密的通讯。当然也可自定义IPSec策略和规则。
我们来激活计算机A和B内置的IPSec策略进行一个小测试,以检查如果通讯不加密,IPSec是否能封锁通讯。A和B计算机IP地址分别为192.168.0.1、192.168.0.2,子网掩码均为255.255.255.0。首先在计算机A上Ping计算机B的IP地址,应得到四个应答,证实A和B可以进行通讯,如((图3))。

然后打开计算机A的IP安全策略管理单元,右击安全服务器(要求安全设置),单击属性取消所有的默认筛选器列表,再点添加,在安全规则向导对话框点下一步直到身份验证方法对话框,选择此字符串用来保护密钥交换(预共享密钥),在滚动框中输入“TEST”,如((图4))。

单击下一步选取所有IP通讯,再单击下一步选择要求安全设置,点下一步完成。这样就已经添加了一个自定义的限制性的筛选器列表。关闭对话框,右击安全服务器在弹出菜单中单击“指派”,关闭IP安全策略管理单元。现在去Ping计算机B,可以发现Ping是不成功的,如((图5))。

在计算机B上Ping计算机A也不成功,收到“Request timed out”的消息。计算机A和B要想进行通讯,则应在计算机B配置和计算机A上相同的IP安全策略设置,并且通讯是加密的。
要注意的是通讯计算机之间路径中的任何路由器或交换机,应该只是参与将加密的IP数据报转发到它们的目标。如果通讯计算机之间有防火墙或其他安全网关,则IP转发必须被启用或者创建特殊的筛选,以允许加密IP数据报的转发。还应该注意的是IPSec不能通过Win2000中的NAT(网络地址转换),因为即使IP数据头保持原封不动,加密和身份验证也不允许改变数据包中的其他字段。