虚拟专用网络、认证与无线安全详解
1. VPN 认证与数据传输基础
在构建虚拟专用网络(VPN)时,除了要考虑使用何种类型的认证方式,认证数据和加密信息的传输方法也至关重要。这正是 VPN 协议发挥作用的地方,每个 VPN 协议都有自己的认证方法以及加密数据的交换方式。
由于所有 VPN 协议都包含认证和加密功能,因此在深入了解之前,有必要先熟悉认证协议。与众多复杂的加密算法相比,认证过程相对简单,其目的仅仅是验证某个实体是否为其声称的身份。现代认证协议还具备防止诸如会话劫持等复杂攻击的功能。
会话劫持是指攻击者等待用户成功认证进入系统后,接管该会话。实现会话劫持的方法多种多样,且都具有一定的复杂性。关键在于,攻击者无需获取用户的密码,只需在用户向系统提供密码并完成认证后,接管会话即可。
2. 常见认证协议介绍
2.1 CHAP(Challenge - Handshake Authentication Protocol)
CHAP 专门设计用于防止会话劫持。其过程相对简单明了,具体步骤如下:
1. 客户端向服务器(在 CHAP 文档中常称为认证者)发送用户名和密码。
2. 服务器/认证者要求客户端计算一个加密哈希值,并将其发送回服务器。
3. 服务器/认证者会不定期、随机地要求客户端重新提供该加密哈希值,以检测是否发生会话劫持,若发现则终止连接。
微软基于 CHAP 开发了自己的变体 MS - CHAP。例如,MS - CHAP v2 支持双向认证,即双方相互认证。
2.2 EAP(Extensible Authentication Protocol)
EAP 是一个可修改和扩展的框架,最初在 RFC 2284 中定义,后被 RFC 3748 取代,最终由 RFC 5247 更新。EAP 有多种变体,不同变体在认证材料的交换方式上有所不同。以下是几种常见的 EAP 变体:
-
LEAP(Lightweight Extensible Authentication Protocol)
:由思科开发,广泛应用于无线通信领域,许多微软操作系统(包括 Windows 10)都支持 LEAP,它使用改进版的 MS - CHAP。
-
EAP - TLS(Extensible Authentication Protocol - Transport Layer Security)
:利用传输层安全(TLS)来保护认证过程,大多数实现使用 X.509 数字证书来认证用户。
-
PEAP(Protected Extensible Authentication Protocol)
:通过认证的 TLS 隧道对认证过程进行加密,由思科、微软和 RSA 安全等组成的联盟开发,最初包含在微软 Windows XP 中,至今仍在使用。
-
EAP - POTP(Protected One - Time Password)
:在 RFC 4793 中描述,使用一次性密码令牌生成认证密钥,可用于单向或双向认证。一次性密码(OTP)仅使用一次,之后即失效,通常与生成 OTP 的设备(如密钥卡)结合使用,密钥卡和服务器使用相同算法并结合当前时间戳生成相同的 OTP,常与传统密码配合使用。
2.3 Kerberos
Kerberos 是一种网络认证协议,旨在通过对称加密为客户端/服务器应用程序提供强大的认证。它最初由麻省理工学院(MIT)在“Project Athena”项目下开发,以希腊神话中守护冥府的三头犬 Kerberos 命名。
Kerberos 被广泛应用于从 Windows 2000 到当前版本(截至撰写本文时为 Server 2019)以及 Red Hat Enterprise Linux、FreeBSD、IBM AIX 等多种操作系统。其认证过程较为复杂,目的是防止会话劫持攻击,并确保认证机制更加健壮和可靠。一般过程如下:
1. 用户将用户名发送到认证服务器(AS),AS 通过检索用户密码的存储哈希值生成一个秘密密钥,然后向客户端发送两条加密消息:
- 消息 A:客户端/票据授予会话密钥,用客户端的秘密密钥加密。
- 消息 B:票据授予票据(TGT),包含客户端 ID、客户端网络地址和有效期。
2. 客户端尝试使用通过用户输入密码生成的秘密密钥解密消息 A。若输入密码与 AS 数据库中的密码不匹配,则解密失败;若成功,消息 A 包含可用于与票据授予服务器(TGS)通信的客户端/TGS 会话密钥。消息 B 用 TGS 秘密密钥加密,客户端无法解密。
3. 客户端请求服务时,向 TGS 发送两条消息:
- 消息 C:由消息 B 中的 TGT 和请求服务的 ID 组成。
- 消息 D:认证器(包含客户端 ID 和时间戳),用客户端/TGS 会话密钥加密。
4. TGS 收到消息 C 和 D 后,从消息 C 中提取消息 B,用 TGS 秘密密钥解密消息 B 得到客户端/TGS 会话密钥,再用该密钥解密消息 D(认证器),然后向客户端发送两条消息:
- 消息 E:客户端到服务器的票据(包含客户端 ID、客户端网络地址、有效期和客户端/服务器会话密钥),用服务的秘密密钥加密。
- 消息 F:客户端/服务器会话密钥,用客户端/TGS 会话密钥加密。
5. 客户端收到消息 E 和 F 后,有足够信息向服务服务器(SS)进行认证。客户端连接到 SS 并发送两条消息:
- 消息 E(客户端到服务器的票据,用服务的秘密密钥加密)。
- 消息 G:新的认证器(包含客户端 ID 和时间戳),用客户端/服务器会话密钥加密。
6. 服务服务器(SS)用自己的秘密密钥解密票据(消息 E),获取客户端/服务器会话密钥,再用该密钥解密认证器,向客户端发送消息 H(客户端认证器中的时间戳)以确认身份并表示愿意提供服务。
7. 客户端用客户端/服务器会话密钥解密确认消息 H,检查时间戳是否正确。若正确,客户端可信任服务器并开始向服务器发出服务请求,服务器提供相应服务。
以下是 Kerberos 中一些基本术语:
-
Principal
:Kerberos 可以分配票据的服务器或客户端。
-
Authentication server(AS)
:授权主体并将其连接到票据授予服务器的服务器。
-
Ticket granting server(TGS)
:提供票据的服务器。
-
Key distribution center(KDC)
:提供初始票据并处理 TGS 请求的服务器,通常同时运行 AS 和 TGS 服务。
-
Ticket granting ticket(TGT)
:认证过程中授予的票据。
-
Ticket
:用于向服务器认证,包含客户端身份、会话密钥、时间戳和校验和,用服务器密钥加密。
-
Session key
:临时加密密钥。
Kerberos 的复杂性是有意为之,通过不断交换加密票据和验证信息,使会话劫持变得极为困难。攻击者若想破坏系统,需要破解两个强大的加密密钥。
2.4 SESAME(Secure European System for Applications in a Multi - vendor Environment)
SESAME 是欧洲针对 Kerberos 开发的解决方案,旨在扩展 Kerberos 并改进其弱点。它同时使用对称和非对称加密,使用“Privileged Attribute Certificates”(PACS)而非票据,PACS 经过数字签名,包含主体身份、对象访问能力、访问时间段和 PAC 有效期,由特权属性服务器提供。
2.5 NTLM
NTLM 虽不用于现代 VPN,但在微软产品中常用于提供认证和其他安全服务。它是一个三步过程:
1. 客户端连接到服务器并发送 NEGOTIATE_MESSAGE 以表明其能力。
2. 服务器用 CHALLENGE_MESSAGE 响应,用于确定客户端身份。
3. 客户端用 AUTHENTICATE_MESSAGE 响应服务器的挑战,完成认证。
NTLM 通过发送密码的哈希值进行认证,NTLM 版本 1 使用基于 DES 的 LanMan 哈希,NTLM 版本 2 使用 MD4 加密哈希。然而,NTLM 容易受到“pass the hash”攻击,攻击者获取用户密码的哈希值后,无需知道实际密码即可登录系统。攻击者获取哈希值的途径包括从本地 SAM 文件获取、数据包嗅探或从缓存中获取。
3. 常见 VPN 协议介绍
3.1 PPTP(Point - to - Point Tunneling Protocol)
PPTP 是一种较旧的 VPN 协议,标准于 1999 年作为 RFC 2637 发布。该规范未明确规定具体的加密或认证方式,由实现者自行决定。自 Windows 95 以来,所有 Windows 版本都支持 PPTP,最初微软实现的 PPTP 使用 MS - CHAP 进行认证,使用 DES 进行加密。
PPTP 基于点对点协议(PPP),使用 TCP 端口 1723 建立连接,连接建立后创建 GRE 隧道(由思科开发)。PPP 用于在串行点对点链路上传输数据报,它有多个组件和协议,支持以下功能:
1. 封装组件。
2. 协商配置参数的协议。
3. 链路控制协议(LCP)。
PPTP 支持两种隧道类型:
-
自愿隧道
:远程用户先连接到标准 PPP 会话,登录到服务提供商网络,然后启动 VPN 软件建立 PPTP 会话返回中央网络的 PPTP 远程访问服务器。用户可选择是否建立 VPN 会话,若不使用 VPN,可仅使用标准 PPP 连接,但安全性较低。
-
强制隧道
:主机网络仅提供通过 VPN 的连接,用户只能使用完整的 PPTP 连接,这是更安全的选择。
PPTP 的认证支持两种技术:可扩展认证协议(EAP)和挑战握手认证协议(CHAP)。其加密使用微软点对点加密(MPPE)协议,该协议专为 PPTP 设计,使用 RC4 算法,密钥长度可以是 128 位、56 位或 40 位,128 位密钥强度最高。MPPE 的一个优点是加密密钥会频繁更换,在初始协商和密钥交换过程中,通过设置位来指示使用的 RC4 密钥强度:
- 128 位加密(“S”位设置)。
- 56 位加密(“M”位设置)。
- 40 位加密(“L”位设置)。
3.2 L2TP(Layer 2 Tunneling Protocol)
L2TP 通过用户数据报协议(UDP)发送整个数据包(包括有效负载和头部),隧道端点分别称为 L2TP 访问集中器(LAC)和 L2TP 网络服务器(LNS)。LAC 发起隧道连接到 LNS,连接建立后,通信是双向的。
L2TP 与 PPTP 类似,支持自愿和强制隧道模式,此外还支持多跳连接。与 PPTP 相比,L2TP 具有以下优势:
- L2TP 不仅可以在 IP 网络上工作,还可以在异步传输模式(ATM)、帧中继等其他网络类型上工作,而 PPTP 只能用于 IP 网络。
- L2TP 支持多种远程访问协议,如 TACACS + 和 RADIUS,而 PPTP 不支持。
不过,L2TP 未定义具体的加密协议,其有效负载使用 IPSec 协议进行加密,RFC 4835 指定使用 3DES 或 AES 加密。IPSec 比 PPTP 中的认证和加密机制更安全。
以下是 L2TP 与 PPTP 的对比表格:
| 协议 | 网络支持 | 远程访问协议支持 | 加密协议 |
| ---- | ---- | ---- | ---- |
| PPTP | 仅 IP 网络 | 无 | MS - CHAP 认证,DES 或 MPPE 加密 |
| L2TP | IP、ATM、帧中继等 | TACACS +、RADIUS 等 | IPSec(3DES 或 AES) |
4. IPSec(Internet Protocol Security)
IPSec 是用于创建虚拟专用网络的技术,它在 IP 协议基础上增加了安全性和隐私保护,广泛应用于多种操作系统,如 Windows XP 的 Internet 连接防火墙安全设置中,用户可以启用 IPSec 进行传输。
IPSec 由互联网工程任务组(IETF)开发,有两种加密模式:
-
传输模式
:加密每个数据包中的数据,但保留头部未加密,这意味着源地址、目的地址和其他头部信息是可见的。
-
隧道模式
:同时加密头部和数据,比传输模式更安全,但可能会降低传输速度。
在接收端,符合 IPSec 标准的设备会解密每个数据包。IPSec 是单密钥加密技术,发送和接收设备必须共享一个密钥。除了两种加密模式,IPSec 还提供了另外两种协议:认证头部(AH)和封装安全有效负载(ESP)。
IPSec 是目前使用最广泛的 VPN 协议,因为与 PPTP 和 L2TP 不同,它提供了一个完整的解决方案,包括内置的认证和加密功能。IPSec 实际上由多个协议组成,其大致过程如下:
1. 某一方决定启动 IPSec VPN,触发 Internet 密钥交换(IKE)过程。
2. 在 IKE 阶段 1,对等方进行认证,并协商安全关联(SA)。
3. 在 IKE 阶段 2,协商并确定安全认证参数。
4. 完成上述步骤后,即可开始数据传输。
安全关联(SA)是 IPSec 中的一个重要概念,它是一组用于加密和认证的参数,如算法、密钥等。在启动 IPSec 时,确保连接的双方具有相同的安全关联至关重要,这些安全关联通过 Internet 安全关联和密钥管理协议(ISAKMP)建立。
mermaid 格式流程图展示 IPSec 过程:
graph LR
A[启动 IPSec VPN] --> B[IKE 阶段 1:对等方认证,协商 SA]
B --> C[IKE 阶段 2:协商并确定安全认证参数]
C --> D[数据传输]
综上所述,不同的认证协议和 VPN 协议各有优缺点,在实际应用中,需要根据具体需求和安全要求选择合适的协议。例如,对于安全性要求较高的企业网络,可能更适合使用 Kerberos 认证和 IPSec 协议;而对于一些对安全性要求相对较低的个人用户,PPTP 或 L2TP 可能是更简单的选择。同时,随着技术的不断发展,新的认证和加密技术也在不断涌现,我们需要持续关注和学习,以保障网络安全。
虚拟专用网络、认证与无线安全详解
5. 不同协议的安全性分析
不同的认证协议和 VPN 协议在安全性上存在显著差异,了解这些差异有助于我们根据实际需求做出更合适的选择。以下是对前面介绍的部分协议安全性的详细分析:
| 协议名称 | 安全性优势 | 安全性劣势 |
|---|---|---|
| CHAP | 能有效防止会话劫持,通过定期要求客户端重新提供加密哈希值来检测异常 | 相对较早期的协议,在面对一些新型复杂攻击时可能存在不足 |
| EAP 及其变体 | 具有可扩展性,能根据不同场景进行定制;部分变体如 EAP - TLS 利用 TLS 和数字证书增强安全性 | 不同变体的安全性参差不齐,一些较简单的变体可能容易受到攻击 |
| Kerberos | 采用复杂的加密和验证机制,能有效防止会话劫持,广泛应用于多种操作系统,成熟度高 | 认证过程复杂,配置和维护难度较大 |
| SESAME | 结合了对称和非对称加密,扩展了 Kerberos 并改进其弱点 | 相对较新,应用范围可能不如 Kerberos 广泛 |
| NTLM | 在微软产品中广泛应用,有一定的认证基础 | 容易受到“pass the hash”攻击,安全性较低 |
| PPTP | 实现相对简单,早期在 Windows 系统中广泛支持 | 加密和认证方式不够明确,安全性依赖于具体实现,容易受到攻击 |
| L2TP | 支持多种网络类型和远程访问协议,结合 IPSec 加密提高了安全性 | 自身未定义具体加密协议,依赖外部加密协议 |
| IPSec | 提供完整的解决方案,包括内置的认证和加密,广泛应用且安全性高 | 配置和管理相对复杂,对设备性能有一定要求 |
6. 协议选择建议
在选择认证协议和 VPN 协议时,需要综合考虑多个因素,以下是一些具体的选择建议:
6.1 企业网络
- 认证协议 :对于安全性要求极高的企业网络,建议优先选择 Kerberos 或 SESAME。Kerberos 成熟稳定,广泛应用于多种操作系统,能有效防止会话劫持等攻击;SESAME 则在 Kerberos 的基础上进行了扩展和改进,结合了对称和非对称加密,安全性更高。
- VPN 协议 :IPSec 是企业网络的首选,它提供了完整的安全解决方案,包括内置的认证和加密功能,能满足企业对数据安全和隐私的严格要求。同时,L2TP 结合 IPSec 也是一个不错的选择,它支持多种网络类型和远程访问协议,灵活性较高。
6.2 个人用户
- 认证协议 :对于个人用户,如果主要使用微软操作系统,EAP 及其变体如 LEAP、EAP - TLS 或 PEAP 是比较合适的选择。这些协议在微软操作系统中广泛支持,且能提供一定的安全性。
- VPN 协议 :如果对安全性要求不是特别高,PPTP 或 L2TP 可能是更简单的选择。PPTP 实现相对简单,在早期的 Windows 系统中广泛支持;L2TP 则支持多种网络类型,结合 IPSec 加密后安全性也有所提高。
7. 未来发展趋势
随着网络技术的不断发展和安全威胁的日益复杂,认证协议和 VPN 协议也在不断演进。以下是一些未来可能的发展趋势:
7.1 认证协议
- 多因素认证的普及 :单一的认证方式已经难以满足日益增长的安全需求,未来多因素认证将更加普及。例如,结合生物识别技术(指纹识别、面部识别等)、一次性密码(OTP)和传统密码的多因素认证方式将成为主流。
- 基于区块链的认证 :区块链技术的去中心化、不可篡改等特性使其在认证领域具有巨大的潜力。未来可能会出现基于区块链的认证协议,提高认证的安全性和可信度。
7.2 VPN 协议
- 量子加密的应用 :量子加密技术具有绝对的安全性,随着量子技术的不断发展,未来可能会应用于 VPN 协议中,为数据传输提供更高的安全保障。
- 软件定义网络(SDN)与 VPN 的融合 :SDN 技术可以实现网络的灵活配置和管理,与 VPN 协议融合后,将提高 VPN 的性能和可扩展性。
8. 总结
本文详细介绍了虚拟专用网络(VPN)中的认证协议和常见的 VPN 协议,包括 CHAP、EAP 及其变体、Kerberos、SESAME、NTLM、PPTP、L2TP 和 IPSec 等。不同的协议在安全性、功能和应用场景上各有优缺点,在实际应用中,需要根据具体需求和安全要求选择合适的协议。
同时,我们也分析了不同协议的安全性差异,并给出了企业网络和个人用户的协议选择建议。随着网络技术的不断发展,认证协议和 VPN 协议也在不断演进,未来多因素认证、基于区块链的认证、量子加密和 SDN 与 VPN 的融合等将成为发展的趋势。
mermaid 格式流程图展示协议选择流程:
graph LR
A[确定使用场景] --> B{企业网络还是个人用户}
B -->|企业网络| C[选择高安全性认证和 VPN 协议]
C --> D[如 Kerberos、IPSec]
B -->|个人用户| E[选择相对简单的协议]
E --> F[如 PPTP、L2TP]
在保障网络安全的过程中,我们需要持续关注技术的发展动态,不断学习和应用新的安全技术和协议,以应对日益复杂的网络安全威胁。希望本文能为读者在选择合适的认证协议和 VPN 协议时提供有价值的参考。
超级会员免费看
1万+

被折叠的 条评论
为什么被折叠?



