近年来,iSCSI以其可行性和性价比高的特点同其对手光纤通道竞争,目前用于在宽域网中连接服务器和SAN,诸如iSCSI这样的基于IP的存储方案有一个优势,即可利用现有的基于 IP的架构,而无需采购昂贵的和复杂的光纤通道产品来进行升级。
由于iSCSI使用的是IP协议,所以 它的安全依赖于IP安全协议。但基本的 IP传输缺乏安全,这就使得任何精通该领域的人可以截获或者修改IP通信。 保护IP 通信的一个更为流行的方法是采用 IP安全协议(IP Security Protocol,简称IPSec)。IPSec是个基于IP的安全协议,不同于SSL安全协议,后者基于OSI模型的应用层。
为了进行安全的数据传输。IPSec使用两个不同的协议:Authentication Headers (AH)和Encapsulating Security Payloads (ESP)。AH协议主要负责数据包的认证和完整性验证。它对源数据包进行认证,并保证数据通信的完整性,但对数据并不进行任何形式的加密。
AH可以确保网络通信时数据不被修改。但无法保证数据不被他人读取。 AH通常在网络通信限制于某些计算机上的场合使用。此时,AH在参与通信的计算机之间进行相互认证,禁止未经认证的计算机参与网络通信。
ESP负责对网络中的数据进行加密,但是也用于认证和完整性服务。AH 认证和ESP认证的区别在于 ESP仅仅包括了数据包的 ESP header, trailer和payload部分,而AH对整个数据包进行保护,包括 IP header。
AH和 ESP这两种协议一起使用,就可以对基于IP的通信提供完整性,认证和加密保护服务。为此,IPSec使用了各种安全协议,要想更多了解IPSec提供保护的级别,现在对这些安全协议逐一介绍。
IPSec完整性协议
完整性验证指的是用散列算法对接收到的信息进行验证,判断其是否与发送的信息完全相同。一个散列算法主要是对发送方和接收方的数据进行加密校验以确保数据未被改变。如果信息在传输过程中有变化,散列值就会不同,此时就拒绝该数据包。
在进行IPSec完整性配置时,有两个选项 :Message Digest 5 (MD5)和安全散列算法1(Secure Hash Algorithm 1 ,简称SHA1)。后者的安全度更高,但需要更多的 CPU资源,MD5使用128位散列算法,而SHA1使用的160位算法。
IPsec 认证协议
当两个系统互相交换加密数据之前,需要相互对加密的数据包进行安全认定。这个安全认定成为安全协定(security association,简称SA)。在相互通信之前,两个系统必须认定对同一SA。
因特网密钥交换协议(Internet Key Exchange,简称IKE)管理着用于IPSec连接的 SA协议过程 。IKE是因特网工程任务组(Internet Engineering Task Force,简称IETF)制定的关于安全协议和密钥交换的标准方法。IKE的操作分两阶段:第一阶段确保通信信道的安全,第二阶段约定SA的操作。
为了建立IPSec通信,两台主机在SA协定之前必须互相认证,有三种认证方法:
Kerberos - Kerberos v5常用于Windows Server 2003,是其缺省认证方式。 Kerberos能在域内进行安全协议认证,使用时,它既对用户的身份也对网络服务进行验证。Kerberos的优点是可以在 用户和服务器之间相互认证,也具有互操作性。Kerberos可以在 Server 2003的域和使用Kerberos 认证的UNix环境系统之间提供认证服务。
公钥证书 (PKI) - PKI用来对非受信域的成员,非Windows客户,或者没有运行Kerberos v5 认证协议的计算机进行认证,认证证书由一个作为证书机关(CA)系统签署。
预先共享密钥 -在预先共享密钥认证中,计算机系统必须认同在IPSec策略中使用的一个共享密钥 ,使用预先共享密钥仅当证书和Kerberos无法配置的场合。
IPSec加密协议
IPSec提供三种主要加密方法,你可以根据你公司的需要选择其中一个。
数据加密标准 (DES 40位) - 该加密方法性能最好,但安全性较低。该 40位数据加密标准(Data Encryption Standard,简称DES)通常被称为 安全套接字层(Secure Sockets Layer,简称SSL)。适用于数据安全性要求较低的场合。
数据加密标准 (DES 56位) - 通过IPSec策略,可以使用56位 DES的加密方法。1977年美国国家标准局公布了DES算法,它可以在通信过程中经常生成密钥。该功能可防止因为一个DES密钥被破译而整个数据集的安全受到影响。但是在商业中被认为过时了,仅用于传统的应用支持,有专门的硬件可以破译标准的 56位密钥。
3DES - IPSec策略可以选择一个强大的加密算法3DES,其安全性比DES更高。3DES也使用了56位密钥,但使用了三个。结果3DES成为 168位加密算法,用于诸如美国政府这样的高机密的环境中。采用该策略的所有计算机将都遵守这样的机制。
IPSec传输模式
IPSec可以在两种不同的模式下运作:传输模式和隧道模式。这些模式指的是数据在网络中是如何发送和加密的。在传输模式下,IPSec的保护贯穿全程:从源头到目的地,被称为提供终端到终端的传输安全性 。
隧道模式仅仅在隧道点或者网关之间加密数据。隧道模式提供了网关到网关的传输安全性。当数据在客户和服务器之间传输时,仅当数据到达网关时才得到加密,其余路径不受保护。一旦到达网关,就采用IPSec进行加密,等到达目的网关之后,数据包被解密和验证,之后数据发送到不受保护的目的主机。隧道模式通常适用于数据必须离开安全的LAN或者WAN的范围,且在诸如互联网这样的公共网络中传输的场合。
随着iSCSI逐渐替代Fibre Channel,安全的IP通信日益重要。IPSec提供了一个在异种环境中加密 IP传输的方法。
存储的实现趋势是采用诸如iSCSI这样的基于IP的方案,因此IP传输的安全性显得日益重要,目前在网络中还有不少程序使用明文传输,例如FTP, Telnet, POP3和IMAP。
在异构环境中,我们可以在应用层,如使用安全套接字层(Secure Sockets Layer,简称SSL),或者使用传输层安全性(Transport Layer Security,简称TLS),也可以在 IP层使用IPSec。本文旨在演示在 Windows 2003 Server下如何使用IPSec对通信进行加密。
我们知道"即开即用"(out of the box)的 IP不安全,但对不少应用来说,问题不大, 对于安全有要求的通信,就需要配置 IPSec。在Server 2003中使用IPSec很简单,但要设置适合的安全等级是有讲究的。
设置安全等级
一般来说,当用IPSec加密数据时,有四种可选安全策略:
阻塞传输:该策略让IPSec封锁来自从A计算机到B计算机所有传输。由接受系统丢弃传输数据。阻塞所有的传输数据的工作量很大,该策略不太常用。
加密传输:加密传输允许在计算机之间通信,但数据必须经过加密以防窃听,此时,IPSec使用封装安全负载(Encapsulating Security Payload,简称ESP)协议来加密数据,窃听到的数据表现为不可读的字节流。
签名传输:签名传输用来防止"中间人"攻击,用于数字签名的认证包头(Authentication Header,简称AH) 协议是在网络包的结尾添加一位,以验证数据在传输中是否被改变。
无需签名或者无需加密,允许未加改变地传输: 这是安全性的缺省设置。允许所有数据进行传输,无需验证数据完整性。
开发一个总体的IPSec安全性策略
一旦了解了IPSec的加密选项,下一步是开发总体的IPSec安全策略。同其他安全策略一样,IPSec安全策略也是一个平衡和折衷方案,即既要让让信息为大量用户访问,又要保护敏感信息不被窃取。
在安全界,对于标准的安全策略,与之对应的手段并没有精确的定义。安全策略的内容多种多样,取决于公司的策略和架构。下列的安全级别可作为规划 IPSec配置的基本准则:
最低程度的安全性:敏感数据不通过计算机网络传送,因此IPSec在缺省情况下关闭,在Server 2003中,可以选择关闭IPSec。
中等程度的安全性:当诸如数据库或者文件服务器这样的网络系统在传输或者保存敏感数据时,必须进行IPSec安全设置。但是,这些安全措施需要综合考虑,不能对日常工作造成影响。 Server 2003提供了缺省的加密数据的IPSec策略,不提倡对客户(仅仅响应)和服务器(请求安全)采用过分严格的安全措施。使用这些缺省的安全设计可以优化效率,且不会降低安全性。
高安全性:对于那些任何情况下都不能篡改或者添加的数据,需要使用高安全性策略。在一些场合中,对于缺省的IPSec安全设置,安全服务器将提供需要的安全等级。同没有配置IPSec的计算机进行通信是不安全,也是不允许的。
配置IPSec安全性
一旦确定了IPSec安全级别,下一步是配置IPSec安全性。IPSec策略配置是把安全需求转换为一个或者多项 IPSec策略, 且在可以在域级,或者公司级,和本地级进行设置。每项IPSec策略包含一条或者多条IPSec规则,每条IPSec规则包含一个过滤列表,过滤动作,认证方法以及连接类型。
过滤列表决定了受安全规则制约的IP流量类型,一旦过滤器被触发,就会采取过滤动作。过滤动作指明了对应于过滤列表中所标出的IP地址所采取的安全措施。 配置 IPSec 过滤动作时,有三种可选动作:
允许:IPSec安全策略中的允许选项是缺省值。数据包允许在网络中传输,无需 IPSec保护。
阻塞: 当使用阻塞过滤选项时, 网络中不允许运行满足相应的IP过滤条件的协议。
协商安全性:如果一项IPSec过滤条件得到匹配, 协商安全性选项可以让管理员设置对数据的加密算法。
IPSec规则的另外一个关键要素是认证,有三种不同的认证方法:
Kerberos - Kerberos v5常用于Windows Server 2003,是其缺省认证方式。 Kerberos能在域内进行安全协议认证,使用时,它既对用户的身份也对网络服务进行验证。Kerberos的优点是可以在 用户和服务器之间相互认证,也具有互操作性。Kerberos可以在 Server 2003的域和使用Kerberos 认证的UNix环境系统之间提供认证服务。
公钥证书 (PKI) - PKI用来对非受信域的成员,非Windows客户,或者没有运行Kerberos v5 认证协议的计算机进行认证,认证证书由一个作为证书机关(CA)系统签署。
预先共享密钥 -在预先共享密钥认证中,计算机系统必须认同在IPSec策略中使用的一个共享密钥 ,使用预先共享密钥仅当证书和Kerberos无法配置的场合。
预定义IPSec策略
正如前面提到的,IP传输规则 用来创建IPSec策略。Server 2003中包含三种预定义的可能会满足公司需要的IPSec策略,这些安全策略可以缺省方式工作,也可以修改为适合公司的特别需要。
通过检查缺省的选项,且对照其设置,可以在创建安全策略时,更好地理解需要完成的工作。 缺省的 IPSec策略包括:客户(仅仅响应),服务器 (请求安全性),以及加密服务器(需要安全性)。
客户(仅仅响应)
在客户(仅仅响应)配置模式下,客户告诉Server 2003不使用缺省的IPSec选项。仅当另外一个系统或者网络设备请求它实现 IPSec策略时,才打开该功能。在该配置模式下,客户系统不会打开IPSec 安全选项,仅当出现外界的请求时,才使用 IPSec策略。
缺省的策略出自缺省的响应规则,该缺省的响应规则应用于数据流入流出的连接,缺省的配置设置为:
IP过滤列表(IP Filter List):
过滤动作(Filter Action): Default Response
认证(Authentication): Kerberos
隧道设置(Tunnel Setting):: None
连接类型(Connection Type):All
如果上面的缺省设置不能满足我们的需求,可以修改它们,或者创建新策略。例如,如果需要,我们可以把认证类型从Kerberos改为 PKI,或者我们可以 把连接类型从All改成LAN,或者仅允许远程访问。
服务器 (请求安全性)
服务器 (请求安全性)选项比客户选项提供了更多安全性。在该配置中,系统在初始时请求IPSec加密传输方式,但是如果其他系统不支持IPSec,也会采取折衷,并允许进行不安全的通信。此时,如果系统没有开启IPSec,整个通信不受保护。要了解该策略是如何制定的,需要仔细查看一下创建策略的规则。有三种规则:
规则 1:
IP过滤列表(IP Filter List):All IP Traffic
过滤动作(Filter Action): Request Security (Optional)
认证(Authentication): Kerberos
隧道设置(Tunnel Setting): None
连接类型(Connection Type):All
规则2:
IP过滤列表(IP Filter List): All ICMP Traffic
过滤动作(Filter Action): Permit
认证(Authentication): N/A
隧道设置(Tunnel Setting): None
连接类型(Connection Type): All
规则3 (与客户选项相同)
IP过滤列表(IP Filter List):
过滤动作(Filter Action): Default Response
认证(Authentication): Kerberos
隧道设置(Tunnel Setting):None
连接类型(Connection Type): All
加密服务器(需要安全性)
一旦开启,加密服务器(需要安全性)选项提供了最高级别的安全性。加密服务器策略 对所有采用IPSec策略传输的网络数据进行加密。该策略将拒绝所有来自非IPSec客户的数据包。该策略有一条规则需求对所有IP传输数据进行加密,但是注意该规则允许ICMP类型的传输数据,另外 缺省的响应规则类似于其他预定义策略。
规则1:
IP过滤列表(IP Filter List):All IP Traffic
过滤动作(Filter Action):Require Security
认证(Authentication):N/A
隧道设置(Tunnel Setting): None
连接类型(Connection Type):All
规则2:
P过滤列表(IP Filter List): All ICMP Traffic
过滤动作(Filter Action):Permit
认证(Authentication): Kerberos
隧道设置(Tunnel Setting) None
连接类型(Connection Type):All
规则 3 (与客户选项相同)
P过滤列表(IP Filter List):
过滤动作(Filter Action):Default Response
认证(Authentication):Kerberos
隧道设置(Tunnel Setting)None
连接类型(Connection Type):All
结论
通过检查这些预定义的Server 2003 策略的多种规则,我们现在对如何设计满足公司要求的安全策略有了更好的理解。使用规则来创建策略,可以让安全设计具有灵活性,可以让管理员设置用于IP数据传输的合适的安全级别。