我有TCP / IP服务器客户端程序。 我想在TCP / IP中实现加密通信。
我知道SSLStream是在C#中实现加密通信的方法之一。有没有简单的选项在TCP / IP中实现加密?
注意:我听说IPSec可以在非常低的水平上实施。
答案 0 :(得分:0)
答案 1 :(得分:0)
一个标准的跨平台解决方案是OpenSSL:
<强>描述强>
OpenSSL ssl库实现安全套接字层(SSL v2 / v3)和传输层安全性(TLS v1)协议。它提供了一个丰富的API,在此处记录。
首先必须初始化库;见SSL_library_init(3)。
然后创建SSL_CTX对象作为框架以建立启用TLS / SSL的连接(请参阅SSL_CTX_new(3))。可以在此对象中设置有关证书,算法等的各种选项。
创建网络连接后,可以将其分配给SSL对象。使用SSL_new(3)创建SSL对象后,可以使用SSL_set_fd(3)或SSL_set_bio(3)将网络连接与对象关联。
然后分别使用SSL_accept(3)或SSL_connect(3)执行TLS / SSL握手。 SSL_read(3)和SSL_write(3)用于在TLS / SSL连接上读写数据。 SSL_shutdown(3)可用于关闭TLS / SSL连接。