Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 选择简单、安全、轻量级的网络协议_C#_C++_Security_Network Protocols - Fatal编程技术网

C# 选择简单、安全、轻量级的网络协议

C# 选择简单、安全、轻量级的网络协议,c#,c++,security,network-protocols,C#,C++,Security,Network Protocols,我正在构建一个可能需要通过网络发送和接收数据的应用程序(客户端和服务器端)。这些消息将很短,并且可能大部分是二进制的。我需要的连接是安全的,即使在公共网络上 我不想重新发明轮子,所以我希望协议本身能够处理所有会话管理开销(握手、处理丢弃的数据包、发送回ACK响应等)。如果Windows、Linux和OSX(通过.net框架和*NIX内核)自然支持它,那也很好 到目前为止,我已经考虑了几种选择: HTTPS-除了开销之外,对上述所有内容都有很好的支持。如果消息很短,则所有HTTP头都是冗余的。本

我正在构建一个可能需要通过网络发送和接收数据的应用程序(客户端和服务器端)。这些消息将很短,并且可能大部分是二进制的。我需要的连接是安全的,即使在公共网络上

我不想重新发明轮子,所以我希望协议本身能够处理所有会话管理开销(握手、处理丢弃的数据包、发送回ACK响应等)。如果Windows、Linux和OSX(通过.net框架和*NIX内核)自然支持它,那也很好

到目前为止,我已经考虑了几种选择:

  • HTTPS-除了开销之外,对上述所有内容都有很好的支持。如果消息很短,则所有HTTP头都是冗余的。本地支持
  • IPSEC-本机支持,但强制我自己处理会话
  • 谷歌的HTTPS协议缓冲区——目前最好的选择,但需要一些实现工作

我是网络编程的新手,因此任何建议或提示都将不胜感激。

我想你首先必须决定你想在什么级别工作。IPSEC作为一种协议,与IP的工作级别大致相同;基本上,你必须自己做每件事。HTTPS是一种非常高级的协议

HTTP/HTTPS是普遍支持的(只需做一点工作)将通过代理等方式工作。HTTPS为您提供隐私和端点的可选身份验证,并且只需很少的额外成本。操作系统甚至可能已经提供了您可以使用的密钥存储


您还可以打开一个套接字,简单地来回推送加密数据;考虑telnet或SSH(尽管SSH在协议协商阶段相当重要)。加密库在大多数框架中都可用,但在密钥管理和交换方面必须小心。但是,如果您可以接受使用预共享密钥,那么这并不一定是一个问题;否则,X509证书可能是一种可行的方法,在许多平台上都很容易得到支持。

我认为您首先必须决定要在什么级别工作。IPSEC作为一种协议,与IP的工作级别大致相同;基本上,你必须自己做每件事。HTTPS是一种非常高级的协议

HTTP/HTTPS是普遍支持的(只需做一点工作)将通过代理等方式工作。HTTPS为您提供隐私和端点的可选身份验证,并且只需很少的额外成本。操作系统甚至可能已经提供了您可以使用的密钥存储


您还可以打开一个套接字,简单地来回推送加密数据;考虑telnet或SSH(尽管SSH在协议协商阶段相当重要)。加密库在大多数框架中都可用,但在密钥管理和交换方面必须小心。但是,如果您可以接受使用预共享密钥,那么这并不一定是一个问题;否则,X509证书可能是一种可行的方法,在许多平台上都很容易得到支持。

IPSec在IP级别上工作,用于保护系统级别的网络连接。它在应用程序级别上不可用。因此,SSL/TLS是最好的选择,因为它是最受欢迎和本机支持的。如果您想使用UDP,存在DTLS协议(UDP上的TLS),但它没有常规TLS广泛支持


如果您根本不想处理套接字,而是更愿意关注业务逻辑,那么看看我们的产品。这是一个面向消息的轻量级跨平台中间件,它允许您发送和接收消息,MsgConnect将处理套接字本身

IPSec在IP级别工作,用于保护系统级别的网络连接。它在应用程序级别上不可用。因此,SSL/TLS是最好的选择,因为它是最受欢迎和本机支持的。如果您想使用UDP,存在DTLS协议(UDP上的TLS),但它没有常规TLS广泛支持


如果您根本不想处理套接字,而是更愿意关注业务逻辑,那么看看我们的产品。这是一个面向消息的轻量级跨平台中间件,它允许您发送和接收消息,MsgConnect将处理套接字本身

不要忘记SSL协议。不要忘记SSL协议。