网络上每个月都会有一些文章介绍某些应用程序或平台在 SSL 实现中使用过时的加密配置。这让我担心......我自己的实现怎么样?
当我在应用程序中使用 OpenSSL 来提供和/或使用 HTTPS 时,我到底应该怎样做才能以最安全的方式配置 OpenSSL? (例如与 cURL 结合)
除了配置之外,还必须采取哪些其他步骤来确保 OpenSSL 的安全使用?我应该采取什么特殊步骤吗?与公钥基础设施有关?
网络上是否有一些“已知良好”的配置可用?
最佳答案
确保您的证书提供商使用 SHA1 或更好的(首选 SHA2)哈希对您的证书进行签名。
HTTPS (SSL/TLS) 仅在您验证证书时才有效。这通常由客户执行。如果客户端没有通过验证证书来验证服务器的身份,您就会受到中间人攻击。
您可以配置服务器,使其不允许旧的 (SSL) 协议(protocol),而是需要最新的 TLS 协议(protocol),该协议(protocol)在加密上更强大(例如,伪随机函数中的 SHA1 和 MD5,而不仅仅是 TLS 中的 MD5 1.0,TLS 1.2 使用 SHA2)。
创建证书 key 对时,请选择更长的 key (例如,2048 位优于 1024 位)。
Mozilla wiki 上有一些很好的建议: Security/Server Side TLS
关于security - 如何以安全的方式为 HTTPS 配置 OpenSSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19377865/