IPSec 基础
日期:2006-10-02 荐:
IPsec 简介
IPSec,因特网协议安全,是由IETF(Internet Engineering Task Force)定义的一套在网络层提供IP安全性的协议。
基于Ipsec的VPN,如阿姆瑞特VPN,由两部分组成:
Internet密钥交换协议(IKE)
IPsec协议(AH/ESP/二者都有)
第一部分,IKE是初始协商阶段,两个VPN端点在这个阶段协商使用哪种方法为下面的IP数据流提供安全。而且,通过定义一套安全联盟(SA),IKE用于管理连接;SA面向每个连接的。SA是单向的,因此每个Ipsec连接至少有2个SA。在IKE(因特网密钥交换)部分对此有更详细的描述。
另一部分是IKE协商后,用加密和认证方法实际传输的IP数据。有几种方法,如IPsec协议ESP, AH或两者结合在一起都可以做到这一点。IPsec协议(ESP/AH)部分对此进行了解释。
建立VPN事件的流程可做如下简要描述:
IKE协商如何保护IKE
IKE协商如何保护Ipsec
Ipsec在VPN中传输数据
后面的部分将具体描述每一个步骤。
Internet密钥交换协议(IKE)
这部分描述IKE,因特网密钥交换协议,及其使用的参数。
加密和认证数据比较直接,唯一需要的是加密和认证算法,及其使用的密钥。因特网密钥交换协议(IKE),用作分配这些对话用密钥的一种方法,而且在VPN端点间,规定了如何保护数据的方法。
IKE主要有三项任务:
为端点间的认证提供方法
建立新的IPsec连接(创建一对SA)
管理现有连接
IKE跟踪连接的方法是给每个连接分配一组安全联盟(SA)。SA描述与特殊连接相关的所有参数,包括使用的Ipsec协议(ESP/AH/二者兼有),加密/解密和认证/确认传输数据使用的对话密钥。SA本身是单向的,每个连接需要一个以上的SA。大多数情况下,只使用ESP或AH,每个连接要创建2个SA,一个描述入站数据流,另一个描述出站数据流。同时使用ESP和AH的情况中就要创建4个SA。
IKE 协商
协商对话参数过程中包含许多阶段和模式。下面对其进行具体描述。
事件流程如下描述:
IKE阶段1
协商应该如何保护IKE
IKE阶段2
协商应该如何保护Ipsec
源自阶段1的密钥交换生成一些新的加密信息,以提供VPN数据流加密和认证中使用的对话密钥。
IKE和Ipsec连接都有使用期限的限制,使用时间(秒)和数据大小(KB)来描述。使用期限用于防止连接建立的时间过长,从密码学的角度看,这是有必要的。
IPSec的使用期限一般要比IKE的使用期限短。这样通过进行阶段2协商时,对Ipsec连接再次加密。不必进行另外的阶段1协商直至到IKE使用期限。
IKE 协议
IKE提议是如何保护数据的建议。发起IPsec连接的VPN网关,作为发起者会发出提议列表,提议表建议了不同的护连接的方法。
协商连接可以是通过VPN来保护数据流的Ipsec连接,或是IKE连接,保护IKE协商本身。
响应的VPN网关,在接收到此提议表后,就会根据自己的安全策略选择最适合的提议,并根据已选择的提议做出响应。
如果没有找到可接受的提议,就会做出没有可接受提议的响应,并可能提供原因。
提议包括需要的全部参数,如加密和认证数据使用的算法,以及IKE参数中描述的其他参数。
IKE 阶段1 - IKE安全协商
一个IKE协商可分两个阶段。第一阶段(阶段1),通过确认远端网关是否具有匹配的Pre-Shared密钥,来进行2个VPN网关或VPN客户端的相互认证。
可是,因为我们不希望以明文方式公布太多的协商信息,所以我们还是要保护其余的IKE协商信息。可以用前面描述的方法做到这一点,即通过发起者向响应者发送提议列表来完成。一旦这个工作完成,响应者选择并接受其中的一个提议后,将尝试着认证VPN的另一端,以确保它就是要认可的一端,并校验远端网关正是所期望的。
通过Pre-Shared密钥、证书或公开密钥加密能够完成认证。Pre-Shared密钥是目前最常见的认证方法。阿姆瑞特防火墙VPN模式支持Pre-Shared密钥和证书两种方式。
IKE 阶段2 - IPsec安全协商
另一个协商是在阶段2进行的,详细说明了Ipsec的连接参数。
在阶段2,我们将从阶段1的Diffie-Hellman密钥交换中摘取新的密钥信息,并将其作为保护VPN数据流的会话密钥。
如果使用PFS(完善的转发机密),每个阶段2协商中,会进行新的Diffie-Hellman交换。虽然这种操作比较慢,但可确保密钥不依赖于以前用过的任何密钥,不从同样的初始密钥材料中摘取密钥。这就保证了在不太安全的事件中,危及了某些密钥安全时,而不衍生出并发的密钥。
一旦完成阶段2协商,就会建立VPN连接,以备使用。
IKE 参数
在协商过程中要使用许多参数。
下面对建立VPN连接需要的配置参数加以小结。我们强烈建议了解这些参数的作用后,再试着配置VPN端点,因为两个端点能够同意所有这些参数是非常重要的。
当安装2个阿姆瑞特防火墙作为VPN端点时,就可以减少在两个相同对话框中进行对比的过程。可是,使用不同供应商的设备时,就不是很容易了。
下面是对涉及IKE协商的参数小结,后面是对这些参数的具体描述。
端点身份(Endpoint identification)
本地和远端网络/主机(Local and Remote networks/hosts)
通道/传输模式(Tunnel/transport mode)
远端网关(Remote gateway)
主/挑战模式(Main/aggressive mode)
IPsec协议(ESP/AH/二者兼有)(IPsec protocol (ESP/AH/both))
IKE加密(IKE encryption)
IKE认证(IKE authentication)
IKE DH组(IKE DH group)
IKE使用期限(IKE lifetime)
PFS打开/关闭/身份(PFS on/off/identities)
IPsec DH组(IPsec DH group)
Ipsec加密(IPsec encryption)
Ipsec认证(IPsec authentication)
Ipsec使用期限(IPsec lifetime)
端点身份(Endpoint Identification)
这是表示VPN网关身份的一组数据。确切地说,它取决于使用的认证方法。使用Pre-Shared密钥时,它可以是一组16进制串或某种其他数据,用于识别VPN网关。为了使VPN网关可以通过相互的认证,远端网关必须拥有相同的Pre-Shared密钥。
用Pre-Shared密钥的认证是基于Diffie-Hellman算法。
本地和远端网络/主机(Local and Remote Networks/Hosts)
子网或主机间的IP数据流是受到VPN的保护的。
在LAN到LAN连接里,这里表示各自LAN的网络地址。
如果使用漫游客户,远端网络可以设为0.0.0.0/0,这意味着漫游客户可从任何地方接入本网络。
通道/传输模式(Tunnel/Transport mode)
Ipsec可以使用2种模式:通道或传输模式
通道模式表明数据流经过通道到达远端网关,远端网关将对数据进行解密/认证,把数据从通道中提取出来,并发往最终目的地。这样,偷听者只能看到加密数据流从VPN的一端发往另一端。在传输模式里,数据流无法通过通道传输,因此不适用于VPN通道。它可以用于保证VPN客户端到安全网关连接的安全,如Ipsec保护的远程配置。
大多数配置中都设置为“通道”。
远端网关(Remote Gateway)
远端网关就是远端安全网关,它负责进行解密/认证,并把数据发往目的地。也可以把该字段设成“none”(无),迫使阿姆瑞特VPN把远端地址看作远端网关。这种做法在漫游访问方式里尤其有用,因为事先不知道远端VPN客户的IP地址。把它设置为none,只要认证正确,IP地址符合上面讨论的远端网络地址,就允许来自任何IP地址的任何人打开VPN连接。
传输模式不适用远程网关。
主/挑战模式(Main/Aggressive Mode)
IKE协商有2种操作模式:主模式和挑战模式。
二者的不同之处在于,挑战模式可以用更少的包发送更多信息,这样做的优点是快速建立连接,而代价是以清晰的方式发送安全网关的身份。
使用挑战模式时,有的配置参数如Diffie-Hellman和PFS不能进行协商,因此两端拥有兼容的配置是至关重要的。
IPsec协议(IPsec Protocols)
Ipsec协议描述了如何处理数据的方法。其中可以选择的2种协议是AH(认证头,Authentication Header)和ESP(封装安全有效载荷,Encapsulating Security Payload)。
ESP具有加密,认证或二者兼有的功能。但是,我们不建议仅使用加密功能,因为它会大大降低安全性。
关于ESP更多信息,请参看ESP (Encapsulating Security Payload)。
AH只有认证作用。与ESP的认证之间的不同之处仅仅在于,AH可以认证部分外发的IP头,如源和目的地址,保证包确实来自IP包声明的来源。
关于AH更多信息,请参看认证头(Authentication Header)。
IKE加密(IKE Encryption)
这里指定IKE协商使用的加密算法,如算法种类和使用的密钥长度。
阿姆瑞特VPN支持的算法是:
AES
Blowfish
Twofish
Cast128
3DES
DES
DES只在与其他老的VPN设备共同操作时使用。应尽可能地避免使用DES,因为DES是一种老算法,我们认为其不是很安全。
IKE认证(IKE Authentication)
这里指定IKE协商使用的认证算法。
阿姆瑞特VPN支持的算法是:
SHA1
MD5
IKE DH (Diffie-Hellman) 组
这里指定IKE交换密钥时使用的Diffie-Hellman组。
阿姆瑞特VPN支持的Diffie-Hellman组有:
DH group 1 (768-bit)
DH group 2 (1024-bit)
DH group 5 (1536-bit)
密钥交换的安全性随着DH组的扩大而增加,但交换的时间也增加了。
IKE使用期限(IKE Lifetime)
IKE连接的使用期限。
使用期限以时间(秒)和数据量(KB)计算。超过其中任何一个期限时,就会进行新的阶段1交换。如果上一个IKE连接中没有发送数据,就不建立新连接,直到有人希望再次使用VPN连接。
PFS
当PFS无效时,IKE协商阶段1的密钥交换过程中会创建一个初始密钥材料。在IKE协商阶段2中,从初始密钥材料提取加密和认证密钥。使用PFS(完善转发机密)时,总能够根据重读的密钥创建全新材料。如果有一个密钥符合,就不会用该信息衍生其他密钥。
PFS的使用有2种方式:第一种是密钥PFS,可在每个阶段2协商中交换新密钥。另一种是身份PFS,在此可以保护身份,方法是每完成一个阶段2的协商就删除阶段1的SA,保证使用相同的密钥对一个阶段2的协商进行加密。
通常不需要PFS,因为危及加密或认证密钥安全性的可能性微乎其微。
IPsec DH 组
这是与IKE十分相似的Diffie-Hellman组。但是,Diffie-Hellman组仅用于PFS。
IPsec 加密
这里的加密算法用于保护数据流的传输。
使用AH或使用不加密的ESP时,就不需要Ipsec加密。
阿姆瑞特VPN支持的算法有:
AES
Blowfish
Twofish
Cast128
3DES
DES
Ipsec认证(IPsec Authentication)
这里的认证算法用于保护数据流的传输。
使用不经认证的ESP(尽管建议不使用未经认证的ESP)时不使用Ipsec认证。
阿姆瑞特VPN支持的算法有:
SHA1
MD5
Ipsec使用期限(IPsec Lifetime)
VPN连接的使用期限,用时间(秒)和数据量(千字节)表示。只要超出其中任何一个值,就要重新创建用于加密和认证的密钥。如果最后一个密钥期没有使用VPN连接,那么就会终止连接并在需要连接时从头开始重新打开连接。
IKE认证方法(手工,PSK,证书)
手工密钥
配置VPN最简单的办法是使用称为手工密钥的方法。使用这种方法时根本不需要使用IKE,在VPN通道两端直接配置加密和认证密钥以及其他参数。
优点:
因为该密钥很直接,所以共同操作性很大。目前大多数共同操作问题都出在IKE上。手册密钥完全避开IKE,只设置自己的IPsec SA。
缺点:
这种方法陈旧,是IKE产生之前使用的方法,缺少IKE具有的所有功能。因此此法有诸多限制,如总要使用相同的加密/认证密钥,无防止重放攻击服务,非常死板,不够灵活。也无法保证远端主机和网关的真实性。
这种连接也易受某些重放攻击的攻击,这意味着访问加密数据流的恶意实体能够记录一些包,并把包储存下来并在以后发到目的地址。目的VPN端点无法辨别此包是不是重放的包。用IKE就可避免这种攻击。
Pre-Shared密钥, PSK
Pre-Shared密钥是VPN端点间共享一个密钥的方法,是由IKE提供的服务,所以具有IKE的所有优点,比手工密钥灵活许多。
优点:
Pre-Shared密钥具有比手工密钥多得多的优点。包括端点认证,PSK是真正进行端点认证的。还包括IKE的所有优点。相反,在使用固定加密密钥时,一个新的对话密钥在使用后,有一定的时间周期限制。
缺点:
使用Pre-Shared密钥时需要考虑的一件事是密钥的分配。如何把Pre-Shared密钥分配给远端VPN客户和网关呢?这个问题很重要,因为PSK系统的安全性是基于PSK的机密性的。如果在某些情况下危及到PSK的安全性时,就需要改动配置,使用新的PSK。
证书
每个VPN网关都有自己的证书,和一或多个可信任根证书。
此认证基于几种理论:
每个端点都有私有密钥,在证书里有与该私有密钥相对应的公有密钥,而且任何人无法访问私有密钥。
证书已经过远端网关信任人员的签署。
优点:
增加了灵活性。例如许多VPN客户端在没有配置相同pre-shared密钥时也能够得到管理,使用pre-shared密钥和漫游客户端时经常是这种情况。相反,如果某客户端不安全时,就可以轻松地取消该客户端证书。无需对每个客户进行重新配置。
缺点:
增加了复杂性。基于证书的认证可作为庞大的公有密钥体系结构的一部分,使VPN客户端和网关可依赖于第三方。换言之,要配置更多内容,也可能会出现更多错误。
IPsec 协议(ESP/AH)
Ipsec协议是用来保护通过VPN传输数据流的。使用的协议及其密钥是由IKE协商的。
与Ipsec相关的协议有2种:AH和ESP。下面对它们进行详细说明。
认证头(Authentication Header)
AH是一种认证数据流的协议。它运用加密学复述功能,根据IP包的数据生成一个MAC。此MAC随包发送,允许网关确认原始IP包的整体性,确保数据在通过因特网的途中不受损坏。
除IP包数据外,AH也认证部分IP头。
AH协议把AH头插在原始IP头之后,在通道模式里,AH头是插在外部IP头之后的,但在原始内部IP头之前。
ESP (Encapsulating Security Payload)
ESP用于IP包的加密和认证。还可只用于加密或认证。
ESP头插在原始IP头之后,在通道模式里,ESP头是插在外部IP头之后的,但在原始内部IP头之前。
ESP头之后的所有数据是经过加密/认证的。与AH不同的是ESP也对IP包加密。认证阶段也不同,ESP只认证ESP头之后的数据,因此不保护外部IP头。
标签: