我正在构建一个开源客户端/服务器应用程序,我不确定要使用什么,SSL(例如 OpenSSL)或通过普通套接字加密的数据包。
我想我有几个问题:
在普通套接字上使用加密数据包是否有任何安全隐患?
是否有任何“建议”设置?我知道 OpenSSL 有大约 1/2 百万行代码并且有很多安全问题。
(Open)SSL 是否提供了 a) 有益或 b) 有害的功能。
希望这个问题的结构能够通过版主 :)
最佳答案
Is there any security implications using encrypted packets over plain sockets?
如果操作正确则不会。顺便说一句,SSL/TLS 是通过普通套接字加密的数据包。
Is there any 'suggested' setups? I know for a fact that OpenSSL has something like 1/2 million lines of code and had a lot of security issues.
建议的设置是使用已知良好的代码和算法。在任何情况下,您都不应发明自己的东西,尤其是在您对该主题了解不多的情况下。
Is there any features that (Open)SSL give me that would a) beneficial or b) detrimental.
SSL/TLS 标准可能为您提供了所需的一切。实现过去有问题,将来也可能有问题。您可能会看看 LibreSSL,它是 OpenSSL 的一个分支,其中包含许多繁琐和不必要的功能,并且还删除了一些薄弱的安全性。 NSS 看起来也像一个可靠的库,与 OpenSSL、GnuTLS、SChannel 和 SecureTransport 相比,它在过去几乎没有严重的问题。
但请注意,SSL/TLS 和其他加密并不简单,在将其用于正式代码之前,您应该熟悉其中的概念和陷阱。
关于c++ - SSL 与加密套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31303311/