回答:
OpenVPN是一个基于SSL加密的应用层VPN协议。
OpenVpn的技术核心是虚拟网卡,其次是SSL协议实现。
虚拟网卡是使用网络底层编程技术实现的一个驱动软件,安装后在主机上多出现一个网卡,可以像其它网卡一样进行配置。服务程序可以在应用层打开虚拟网卡,如果应用软件向虚拟网卡发送数据,则服务程序可以读取到该数据,如果服务程序写合适的数据到虚拟网卡,应用软件也可以接收得到。虚拟网卡在很多的操作系统下都有相应的实现,这也是OpenVpn能够跨平台一个很重要的理由。
该VPN可在Windows、Linux环境下搭建,或者通过网络设备、第三方软件搭建。
开源VPN(OpenVPN)是一个功能齐全的 SSL VPN 解决方案,为远程访问等企业级场景提供了许多选项来控制 VPN 客户端的安全性,同时也能保护服务器安全。其最大优势在于位不同系统平台提供出色的稳定性和可扩展性。
隧道加密
OpenVPN 使用 OpenSSL 库加密数据与控制信息:它使用了 OpesSSL 的加密以及验证功能,意味着,它能够使用任何 OpenSSL 支持的算法。它提供了可选的数据包 HMAC 功能以提高连接的安全性。此外,OpenSSL 的硬件加速也能提高它的性能。
验证
OpenVPN 提供了多种身份验证方式,用以确认参与连接双方的身份,包括:预享私钥,第三方证书以及用户名/密码组合。预享密钥最为简单,但同时它只能用于建立点对点的 VPN; 基于 PKI 的第三方证书提供了最完善的功能,但是需要额外的精力去维护一个 PKI 证书体系。OpenVPN2.0 后引入了用 户名/口令组合的身份验证方式,它可以省略客户端证书,但是仍有一份服务器证书需要被用作加密。
网络
OpenVPN 所有的通信都基于一个单一的 IP 端口,默认且推荐使用 UDP 协议通讯,同时TCP也被支持。OpenVPN 连接能通过大多数的代理服务器,并且能够在 NAT 的环境中很好地工作。服务端具有向客户端“推送”某些网络配置信息的功能,这些信息包括:IP地址、路由设置等。OpenVPN 提供了两种虚拟网络接口:通用 Tun/Tap 驱动,通过它们,可以建立三层 IP 隧道,或者虚拟二层以太网,后者可以传送任何类型的二层以太网络数据。传送的数据可通过 LZO 算法压缩。IANA(Internet Assigned Numbers Authority)指定给 OpenVPN 的官方端口为 1194。OpenVPN 2.0 以后版本每个进程可以同时管理数个并发的隧道。
OpenVPN 使用通用网络协议(TCP与UDP)的特点使它成为 IPsec 等协议的理想替代,尤其是在 ISP(Internet service provider)过滤某些特定 VPN 协议的情况下。在选择协议时候,需要注意2个加密隧道之间的网络状况,如有高延迟或者丢包较多的情况下,请选择 TCP 协议作为底层协议,UDP 协议由于存在无连接和重传机制,导致要隧道上层的协议进行重传,效率非常低下。
安全
OpenVPN 与生俱来便具备了许多安全特性:在用户空间运行,无须对内核及网络协议栈作修改; 初始完毕后以 chroot 方式运行,放弃 root 权限; 使用 mlockall 以防止敏感数据交换到磁盘。
OpenVPN 通过 PKCS#11 支持硬件加密标识,如智能卡。
免责声明:本网站部分文章、图片等信息来源于网络,版权归原作者平台所有,仅用于学术分享,如不慎侵犯了你的权益,请联系我们,我们将做删除处理!