软件指南针:专注于软件传播与分享

关于中间人攻击的重要注意事项 (OpenVPN官方文档)

来源:原创 1417次浏览 0条评论
☞ 本文主要介绍软件OpenVPN的相关内容:关于中间人攻击的重要注意事项 (OpenVPN官方文档)

   其下列版本/分支可以参考本文:

  • 全部版本/分支
英文原文:http://openvpn.net/index.php/open-source/documentation/howto.html#secnotes

关于中间人攻击的重要注意事项(如果客户端没有验证与之连接的服务器端证书)

为了避免可能的中间人攻击(一个经过认证的客户端尝试连接到重复服务器的另一个客户端),请确保客户端执行某种服务器证书验证。当前有5种不同的方式来完成它,已按照优先顺序在下面列出:

  • [OpenVPN 2.1 及以上版本]使用指定的密钥用法和扩展密钥用法来创建你的服务器证书。RFC3280 确定了应该为TLS连接提供下列属性:
    模式 密钥用法 扩展密钥用法
    客户端 数字签名 TLS Web客户端认证
    密钥协议
    数字签名,密钥协议
    服务器 数字签名,密钥加密 TLS Web服务器认证
    数字签名,密钥协议

    你可以使用build-key-server脚本来创建你的服务器证书(详情请查看easy-rsa文档)。通过设置正确的属性,指定证书作为一个服务器端证书。现在,请在你的客户端配置中添加如下语句:

    remote-cert-tls server
  • [OpenVPN 2.0 及以下版本] 使用build-key-server脚本来创建你的服务器证书(详情请查看easy-rsa文档)。通过设置nsCertType=server,指定该证书作为服务器端证书。现在,请在你的客户端配置中添加如下语句: 
    ns-cert-type server
    这将阻止客户端连接任何没有在证书中指定nsCertType=server的服务器,即使该证书已经通过OpenVPN配置文件中的ca文件进行了签名。

  • 在客户端使用tls-remote指令,根据服务器证书的Common Name来判断接受或拒绝该服务器连接。

  • 使用tls-verify脚本或插件,根据服务器证书的嵌入式X509附属条目中的自定义测试来判断接受/拒绝该服务器连接。

  • 使用一个CA给服务器证书签名,使用另一个不同的CA给客户端证书签名。客户端配置的ca指令应该引用为服务器签名的CA文件,而服务器配置的ca指令应该引用为客户端签名的CA文件。

作者:软件指南针(http://www.softown.cn),转载请保留出处!

用户评论

使用指南 故障排除 0 返回顶部