随着SSL (Secure Socket Layer, SSL)虚拟专用网络(Virtual Private Network, VPN)技术的成熟和近年来的快速部署,它得到了网络和it管理员的关注,他们正在寻找远程访问VPN解决方案,提供无处不存在的访问和低成本的部署和管理。目前,SSL VPN技术还没有官方标准;不同的供应商使用不同的实现。本章将详细介绍SSL VPN技术的发展,帮助您理解该技术是如何工作的。 VPN通过公共网络携带私人流量。安全的VPN符合以下基本要求: 身份验证 保密 消息完整性 以下部分检查如何通过使用各种加密算法满足这些要求。已经熟悉这些加密算法的读者可以跳过这些部分并直接移动到SSL部分。 下面的部分描述了散列及其在密码学中的应用。 哈希在安全系统中起着重要的作用,它保证了传输信息的完整性。哈希算法将变长文本字段转换为固定大小的字符串。安全系统中使用的哈希算法有以下两个特性: 单向散列机制: 无碰撞输出: 由于这些属性,散列也被称为消息摘要或数字指纹。人们可以从一个大文档生成一个小的哈希输出,并使用哈希输出作为文档的数字指纹。然后,可以使用这个数字指纹来确保消息在通过不安全的通道传输期间没有被篡改。此外,从数字指纹来看,不可能透露原始信息的内容。 到目前为止,最常用的加密散列算法是消息摘要算法5 (MD5)和安全散列算法1 (SHA-1)。这两种算法都被认为是单向的强无碰撞散列算法。MD5有128位输出,SHA-1有160位输出。由于SHA-1更大,通常被认为比MD5更安全,但计算代价更高。在当今网络的硬件和软件实现中,性能差异通常不是问题。因此,SHA-1是VPN部署时首选的散列算法。 消息认证码MAC (Message authentication code)是一种加密校验和,用于保证消息在传输过程中的完整性。要生成MAC,可以使用加密算法(如DES)或散列算法。散列算法通常比加密算法快得多,因此基于散列的MAC (HMAC)是最流行的方法。HMAC是一个键控散列函数。它是这样工作的:为消息M生成HMAC,你需要选择两个系统参数,一个哈希函数H(通常是MD5或SHA-1)和一个密钥k。消息的HMAC计算如下: HMAC(K,M) = H(K XOR opad,H (K XOR ipad,M))SSL vpn的加密构建模块
哈希和消息完整性验证
哈希
消息身份验证代码