平步青云

移动电话上的 IPsec VPN 简介

Ramon Arjona

在我的电话上有电子邮件时我在办公室中,该下午。邮件必须链接到了将要读取--在 SharePoint 网站可仅通过公司的 Intranet 上的一个文档一个文档。这是一个 bummer,因为我不得不等待,直到我可以激发了我的便携式计算机、 放入智能卡读卡器的我的智能卡、 咖啡店获得 Wi-Fi 连接,连接到企业 VPN 的我的便携式计算机和登录之前,我可以读取该文档。

生命周期会更容易就可以使用电话 SharePoint 网站的访问。当然,我的电话需要连接到公司网络的安全和身份验证我的某种神奇的方式。换而言像我的便携式计算机在我的电话需要能够启动一个到网络的 VPN 连接。包括 Windows 电话,许多商业电话模型都附带有内置的 VPN 客户端。但有缺陷最广泛的 VPN 客户端因为它们基于名为 Internet 密钥交换 (IKEv1) 规范的版本 1。IKEv1 是稳定 IPsec 框架的组成部分,且非常适合于有线的设备或便携式计算机,不移动的相对较大的电池使用类似的设备太多的周围。但是,不适合于移动电话。

确保,我使用无线连接在我的便携式计算机上从我的办公室到会议室并再次。我可能从一个无线连接切换到一个有线,不会丢失连接。但我们不移动几乎与便携式计算机尽可能与我们的电话。通过通讯和中的漫游的状态和转换的办公楼的与您传输电话。除非您使用了蜂窝调制解调器,时的最后一次便携式计算机告诉您它漫游?通常,电话更改其点网络附件的频率和复杂性的便携式计算机永远不会担心。考虑 IKEv1 规范的用户,专家未不必再担心的移动电话方案或者,因为在二十世纪,九十年代末,时已被写入 RFC 2409,智能电话只是未在市场中流行。然后,使用的移动电话有 skyrocketed,、 移动电话的重要性已开始处理其他、 较大的计算设备,(如工作站或膝上型电脑的重要性。

IKEv1 不适合高度移动样式的计算,因为 IKEv1 没有一种处理可能会更改其网络附件几次几秒钟的点的主机的好方法。时被起草 IKEv2 的一组称为移动和多 (MOBIKE) 协议的扩展了也起草以适应移动电话方案。将使用这些扩展,2009a 移动电话 VPN 成为更实用。市场上的多个产品支持 IKEv2 和 MOBIKE,包括 Microsoft 系统中心移动设备管理器 (SCMDM)。

在本文中,我将介绍一些 IKEv2 和 MOBIKE 后面的技术的基础知识。我假定您有知识的 IPv4 网络,某些熟悉移动电话,和加密一个基本的了解。本文不打算详细地介绍 IPsec 并不打算讨论其他排序,如 SSL 基于 VPN 的 VPN 技术。我还将讨论 IPv6。IPSec 与 IKE 扩展 IPv4,但它们内置到这样的一些事情我们将按在此处仍将适用的 IPv6 网络上的 IPv6。但是,IPv6 介绍足够复杂性和不会将它足够的详细信息,在包含它的新术语。

说 ‘ AH ’

三个协议组成 IPsec 的核心:身份验证报头 (AH)、 封装安全负载 (ESP) 和 IKE。若要解决 IKE,首先需要 AH 和 ESP 讨论。

在一个简单地说 AH 确保我们发送的数据包不能篡改。保护我们的数据包的完整性。AH 还确保发送的数据包从人员声明发送它们。它确保了我们的数据包的真实性。AH 不,但是,提供隐私或加密的任何量值。攻击者获得对网络的访问权限仍可能嗅探的 AH 来保护,并提取其内容的数据包。他将但是,无法伪装成一个经过身份验证的参与方,也不能更改我们数据包在传输过程中。AH 是在 RFC 4302 中定义的。

例如,小红和小明建立 VPN 连接本身之间,然后选择要保护它们的数据包使用 AH。Charlie 自己插入到网络,并启动截取的数据包。Charlie 就能够重建小红和小明的对话,因为他可以看到它们的数据包的内容,并弄清它们之间传递何种通信。但是,他无法伪造王俊元从刘爱琳邮件但不获取捕获到,并且他不能改变或者小红,Bob 的邮件。这两种这些操作不能通过 AH。

在传输模式或隧道模式下,可以使用 AH。传输方式的一个数据包有效负载将受到保护,,并且数据包被路由到另一台主机的直接从。隧道方式整个数据包受保护的 AH,而从一端的 IPSec"隧道"路由的数据包到另一个。隧道是通过将原始数据包封装完成的。隧道的两端是一个安全性网关。正在发送一个数据包的网关负责封装的数据包,通过添加一个"外部"IP 标头和地址。该外部地址到另一端隧道的安全性网关路由数据包。接收的数据包的网关负责处理 AH 来确定数据包是来自有效发件人,而且没有被篡改,然后它将数据包路由到最终目的地。

传输方式的 AH 获取 IP 标头后的权限添加到该数据包。AH 早于下一个层协议 (如 UDP 或 TCP) 数据包中还之前数据包,如 ESP 标头中的任何 IPsec 标头。那 AH IP 标头必须具有值 51,幻数是由 IANA 为 AH 告诉应用程序处理它将会看到接下来是一个 AH 数据包数。图 1 显示数据包的形状后,需向其添加一个 AH。

隧道方式添加到 AH 获取新的 IP 报头之后。封装的 IP 标头将被视为有效负载随所有其他内容的一部分。的图 2 所示。受保护的 AH 数据包的第一个 8 位指定了 AH 后的有效负载的协议 ID。这会告诉接收方后 AH 有效负载的预期行为。例如,如果下一层协议是 TCP,协议 ID 将被设置为 6。域为下一个页眉。(您可能想知道为什么它不称为协议与 IPv4 中的其他标题一致的方式。原因是一致性和与 IPv6 的兼容性。幸运的是,确实不需要知道很多有关了解 AH 在您的 IPv4 网络上的工作方式的 IPv6 但如果您想知道为什么它称为 Next Header,这是为什么)。

下一步是 AH 负载的 7 位长度。因为只有 7 位,有效负载的大小仅限于 128 个字节。然后实际上是长字符串的零 — 其中,2 个字节。这些 2 个字节保留将来使用若要根据 RFC,因此之前的定义供将来使用,我们提供了 2 空字节的只是沿该时间。

以下这些 2 个字节是安全参数索引 (SPI)。这是一个 32 位数量,用于确定 AH 与相关联的 IPsec 安全关联 (SA)。我将讨论详细 SA 时,我讨论 IKEv2。此数字后跟一个 32 位序列为数字就会增加与每个发送的数据包,用于防止重播攻击。

后序列数提供完整性检查值 (ICV)。将 ICV 计算在发件人方法是将如 SHA 2 等哈希函数应用到 IP 标头、 AH,和有效负载。检查的接收方的数据包没有被篡改通过应用相同的哈希函数和确认的产生相同的哈希。

我从 ESP

AH,像封装式安全措施负载 (ESP) 可以提供完整性和身份验证。与不同 AH,但是,ESP 提供身份验证和完整性只将数据包的有效负载,而不数据包标头。ESP 还可用于通过加密在数据包有效负载提供机密性。在理论上,ESP 的这些功能可启用独立,因此有可能已加密,而无需身份验证和完整性,或完整性和身份验证不加密。在练习中,但是,不在其他情况下不会进行大量的有意义。例如,知道一条消息已发送给我保密不我任何好如果我不能也能完全确保发件人。ESP 是在 RFC 4303 中定义的。

ESP,AH,类似,可在隧道模式或传输模式中启用。AH 后,必须插入 ESP 标头。传输方式 ESP 加密 IP 数据包有效的负载。在隧道模式 ESP 封装整个数据包视为有效负载,并对其进行加密。此过程如图 3 所示。

协商 IPsec SA 所设置的对等方之间的一个过程,则选择加密算法。高级加密标准 (AES) 是一个常见的选择,现代的实现的加密算法。当然,用于 AES 首先必须共享的机密为要启动安全通信的两个主机。手动使主机共享的密钥是不切实际的方法,因为它不会缩放,但您可以使用 Diffie-大 (DH) 密钥交换设置机密信息。

组 Diffie-大

DH 是一个协议允许两个参与方共享机密,在不安全的信道上,而且是发生在 IKE 协商不可分割的组成部分。共享的机密的通信通过 DH 可用于创建一个安全加密的通信通道。进入 DH 数学复杂,我将不进入它在此详述。如果您感兴趣的学习有关其更多信息检查包括模块化的指数 (MODP) 组和 DH 其应用程序的资源。我们用于它 suffices DH 组是为特定的数字与数学关系和一个唯一的组 ID 集合

安全连接的设置时使用 IPsec,IKE 协商期间指定了 DH 组。此协商,在尝试建立安全连接在两个对等方需要查找它们都支持的 DH 组。用更高版本 ID 的 DH 组具有高加密强度。例如,在称为出原始 IKE 规范中的第一个 DH 组有有关作为一个对称注册表项在相同的加密强度 70 和 80 位之间。更强大的加密算法,如 AES 的出现,更多的强度。 需要以防止 DH 组越来越弱加密链中的链接的 DH 组因此,RFC 3526 中指定了较新的 DH 组提供估计 90 和 190 位之间的强度。

这些较新的 DH 组不利方面是及其更高强度方面的成本:具有更强的组,更多的处理时间要求。这是一种原因对等方需要协商相互可接受的 DH 组的原因。例如,我的电话可能没有足够的处理能力处理 DH 组 15,因此它想要支持仅 DH 组 2。试图建立与服务器的 IPSec 连接,我的电话将建议 DH 组 2,而如果服务器支持 DH 组 2,组将使用--即使服务器可能会使用更强的 DH 组。当然,如果两个对等无法达成一个通用的 DH 组,它们将无法进行通信。

这是足够的背景。让我们来讨论 IKE。

我喜欢 IKE (并因此应该在)

IKE 用于建立 IPsec 对等方之间连接。此连接被称为安全关联 (SA)。有两种的 SA,该 IKE_SA 在 CHILD_SA。在 IKE_SA 设置第一个。是通过 DH 协商共享的机密的位置和在加密和哈希算法也协商。在 CHILD_SA 是网络通信的发送位置受 AH、 ESP,或这两者。

IKE 在每个请求需要可以方便地认为方面对消息的响应。应使用第一个消息对称为 IKE_SA_INIT,用于确定哪些加密算法和 DH 组在对等端。因为仍在此交换期间确定加密,此消息对未加密。下一个对消息称为 IKE_SA_AUTH。这种交换进行身份验证期间 IKE_SA_INT,发送邮件,并证明的发起方和响应方的标识。该步骤是必需的因为清除--有建立安全通道,该对等方现在需要彼此证明它们实际上是声称的一致的用户和他们真正要开始此对话中发送第一个消息。IKE_SA_AUTH 消息交换还设置第一个的 CHILD_SA,这经常只的 CHILD_SA 创建对等方之间。

一个 CHILD_SA 是单工--或单向--连接,因此 CHILD_SAs 总是设置在对。如果删除了一个 SA 对中的,其他也应被删除。这是通过参考性的邮件处理的 IKE。每个 RFC 4306 的参考性的邮件包含零个或多个通知、 删除或配置的邮件。假设我们有发起方的计算机和服务器的响应方。若要关闭 CHILD_SA 连接,并终止 VPN 决定的计算机。它发送到服务器的标识由其 SPI 删除 SA 的删除有效负载使用参考性消息。服务器然后删除该传入的 SA,并发送到要删除其半 SA 的计算机响应。计算机会收到此消息,并删除其 SA 的一半,所有内容很好。

当然,内容可能不会始终工作这种方式。发起方或响应方可能得到的安全关联的一个"半关闭"状态,SA 对中的一个成员关闭的但其他仍处于打开状态。RFC 指定这是一个异常条件,但它不允许的对等方关闭这些半打开连接。而,对等机器将要连接状态变得非常不稳定--如果删除该 IKE_SA 但删除该 IKE_SA 删除 alf 在 CHILD_SAs 其下创建的。这两种情况下将电话上痛苦因为保持在 CHILD_SA 打开将占用不足的系统的资源一样不必消除向下和重新生成该 IKE_SA。

此外,则可能完全,消失,而不告诉系统一端 SA 的很好的安全关联的末尾的一个对等。这是一个特别容易出现的移动电话的情况。例如,考虑的方案的移动电话用户已建立了与服务器的 IPsec VPN 连接。移动电话用户进入一个地下室,和失去其无线电信号。服务器有没有办法知道电话到一个黑洞已消失,因此它会继续在 CHILD_A,发送邮件,但收到没有响应。同样可以用于启动到一个黑洞发送消息,因为的移动电话网络上的路由问题电话。这种情况会导致任何可能导致跟踪的另一个对等但在电话上的成本大于在服务器上成本因为资源在电话上的更不足。

为什么是消除向下和重新生成 SA 错误?

简短的回答 的向下撕裂,重新生成 SA 使用电话 can’t 承受浪费的成本资源。特别,执行加密计算消耗 CPU 并用在广播时发送和接收大量的这两种成本电池使用寿命的数据。大量同时传输的数据会消耗成本金额的带宽,特别是在数据通过在千字节计划费用的位置的位置。

由于在电话上发送消息单选成本电源和电源上的限于,电话需要检测这些黑洞的情况下,并处理它们以节省系统资源。这通常是通过一个称为间隔一端检测 (DPD),在其中 suspects 它可能与一个黑洞对等发送请求的 liveness 证明消息的过程处理的。如果在一个适当的时间内不响应该请求的目标,发件人可以采取适当措施删除该 IKE_SA,并回收该资源花费在其上。一般情况下,它是可取的发送 DPD 只时还有其他通信通过 SA 旅行和对等机器有怀疑它的伙伴上不再存在的原因。虽然不要求实现这种方式 DPD,但没有意义多以确认该 liveness 的对等方的当前发送您的网络通信的其他排序的。

更改它的 IP 地址主机在 VPN 连接上导致问题的另一种情况。主机的 IP 地址用于 32 位 SPI 一起标识一个特定的主机和其相关联的安全关联。当主机失去其 IP 地址时,该关联也是丢失,并且 SA 需要向下的数据被破坏并重新创建新的 IP 地址。

我们已经说过之前,这不是大问题与台式计算机或膝上式计算机。计算机可能会丢失 DHCP 租约并获取一个新的 IP 地址但大多数 DHCP 实现会非常计算机将分配它之前有相同 IP 地址。换而言桌面 PC 不要经常更改 IP 地址。便携式计算机,因为它们是移动,可以更改其网络附件的点,因此获得强制它们具有任何 SA 打开被破坏并重新创建一个新 IP 地址。但是,的速率的膝上式计算机切换 IP 地址是仍相对较少速率的电话不会与进行比较时。例如,能够传输数据通过 Wi-Fi 和移动电话的信道的电话可能在每次将用户引导她办公室建筑物中或移出发生电话更改从一个 Wi-Fi GPRS 连接和后再次切换网络。与便携式计算机可能保留在相同的网络链接上,因此继续有无变化,topologically 正确的网络地址生成,办公室移动不同电话,它实际上保证更改 IP 地址的两个根本不同网络之间切换。这将导致在电话上的中断连接每次发生在网络之间切换时。电话单独移动电话网络上时,可能发生同样的操作。电话可能会进入漫游模式,并从其家庭网络切换到外部网络由一个不同的移动操作员。在电话可能从的覆盖范围的一个区域移动到另,并成为附加到完全不同的移动运营商网络部分。

有任意数量的控制可能导致的中断的连接的移动运营商的其他原因。向下此频繁撕裂和重新生成 SA 的将使移动 VPN intractable IKEv2 称为 MOBIKE 到该扩展不是。

MOBIKE

在 RFC 4555 中定义 IKEv2 MOBIKE 协议。在公布他们具有多个 IP 地址的 IPsec VPN,它允许对等端。这些地址之一与相关联的对等的 SA。如果由于网络附件中更改切换它的 IP 地址强制对等机器,一个先前标识,该 IP 地址或一个新分配的地址可以被换中而不必向下消除和重新生成 SA。

若要指示它能够使用 MOBIKE,对等方包括 IKE_SA_AUTH 交换 MOBIKE_SUPPORTED 通知。IKE_AUTH 交换还包括其他发起方和响应方的地址。发起方是启动 VPN 的设置发送第一 IKE 条消息,并对决策的 IP 地址用于从之间的有可用以及提供它的响应方负责该设备。

如 RFC 指出发送方通常是在移动设备因为移动设备到网上其位置的更多安全意识,因此它是一个更好地适合来决定要使用的地址。但是,RFC 不指定应如何进行这些决策。通常,IPsec VPN 的一端将一个的移动设备,并且重另一端将固定的安全性网关服务器。规范不需要这种实现,并允许移动--在网关的两端,但它不提供一种方法的网关再次查找对方如果它们同时移动两个端点的。也就是如果一个对等客户更新其地址,并且另一个对等端在同一时间执行相同的操作没有没有机会将通信或者对等机器,此更改,而且 VPN 连接将将丢失。

发起方使用响应方的地址列表将找出最佳地址对用于 SA。响应方不使用发起方的地址,除了作为一种与发起方通信的响应方的地址已更改。

例如,发起方看到的已更改其地址时, 它会通知这一事实使用参考性包含一个 UPDATE_SA_ADDRESSES 通知消息的响应方。此消息使用的新地址,还启动对等机器的 ESP 邮件中的正在使用它。更新通知的接收方记录新的地址,并有选择地检查以确保地址属于其他移动节点被声明为返回 routability。以下这,响应方启动其传出的 ESP 通信使用新的地址。

当然发起方的响应方可能不知道 SA 的生存期内都没有其所有 IP 地址。对等方可以公布它支持使用参考性邮件地址的列表中更改。如果对等机器中有只有一个地址此地址,标头中存在并且该邮件包含 NO_ADDITIONAL_ADDRESSES 通知。否则为如果对等机器中有多个地址这些地址之一置于该参考性条消息的标头,其他都包含在一个 ADDITIONAL_IP4_ADDRESSES 通知内。

此列表不更新--它是整个列表公布在希望对等机器的地址。换而言整个列表将发送每个的时间,但此成本低于仍然向下撕裂和每次电话更改其网络附件的点,重新生成 SA 的成本。

总结

您现在应该与 MOBIKE 的 IPsec VPN 将移动电话上的工作方式的基本了解。

不断增长的主页和工作区中的智能电话传播将使这些解决方案更重要的用户开始请求相匹配的多个资源丰富的计算设备上的体验。该时间的人是寿命的愿意接受的电话不能连接到公司网络的只有一天的电池都的受影响,我们熟悉所有智能电话的其他缺点从。最后这不会。竞争和出现的更好的硬件将强制采用的更完整的端到端解决方案以便在便携式计算机和桌面与相同的体验的电话。

然后我,连同其他,人将能够浏览公司的 SharePoint 网站,即可单击我的电话上一个链接。

特别感谢 Melissa Johnson 她的建议和技术审阅这篇文章。

Ramon Arjona在 Microsoft 的 SDET 潜在顾客。