0penVPN 依赖于 easy-rsa脚本,并且应该有自己的副本。复制easy-rsa脚本和文件:
$ sudo mkdir /etc/openvpn/easy-rsa$ sudo cp -rai /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsa/
身份验证很重要,0penVPN 非常重视它。身份验证的理论是,如果 Alice 需要访问 Bob 公司内部的私人信息,那么 Bob 确保 Alice 真的是 Alice 就至关重要。同样的,Alice 也必须确保 Bob 是真正的 Bob。我们称之为相互认证。
现有的最佳实践是从三个可能因素中的选择两个检查属性:
你拥有的你知道的你是谁
选择有很多。0penVPN 安装使用如下:
证书:客户端和服务端都拥有的东西证书口令:某人知道的东西
Alice 和 Bob 需要帮助彼此来验证身份。由于他们都相信 Cathy,Cathy 承担了称为 证书颁发机构certificate authority(CA)的角色。Cathy 证明 Alice 和 Bob 都是他们自己。因为 Alice 和 Bob 都信任 Cathy,现在他们也相互信任了。
但是是什么让 Cathy 相信 Alice 和 Bob 是真的 Alice 和 Bob?Cathy 在社区的声誉取决于如何正确处理这件事,因此如果她希望 Denielle、Evan、Fiona、Greg 和其他人也信任她,她就需要严格测试 Alice 和 Bob 的宣称内容。当 Alice 和 Bob 向 Cathy 证明了他们是真的 Alice 和 Bob 之后,Cathy 将向 Alice 和 Bob 签署证书,让他们彼此和全世界分享。
Alice 和 Bob 如何知道是 Cathy 签署了证书,而不是某个人冒充她签发了证书?他们使用一项叫做公钥加密的技术:
找到一种用一个密钥加密并用另一个密钥解密的加密算法。将其中一个设为私钥,将另外一个设为公钥。Cathy 与全世界分享她的公钥和她的签名的明文副本。Cathy 用她的私钥加密她的签名,任何人都可以用她分享的公钥解密。如果 Cathy 的签名解密后与明文副本匹配,Alice 和 Bob 就可以相信 Cathy 确实签署了它。