嘿 当用C ++编写的服务器时,我通过TCP和UDP从客户端向服务器发送消息。我想知道什么是最好的,必须安全的发送方式,例如,如果我想发送登录数据:电子邮件,密码和IP。什么是在消息中发送它的最佳方式ang读取服务器中的数据,而这些数据存储在char *中。
感谢。
答案 0 :(得分:4)
这与C ++没有任何关系。您正在询问有关信息安全的一般性问题。您希望通过TCP或UDP发送包含敏感信息(电子邮件地址,密码和IP)的信息。为此,您需要使用加密技术。
密码学是一个复杂的领域,你不应该尝试推出自己的协议,除非你对你正在做的事情了解很多。相反,你应该避免UDP(因为很难通过UDP正确地加密)并且只是使用SSL而不是TCP。
要从C ++执行此操作,您可以使用OpenSSL套接字库。客户端和服务器都与库链接。如果您需要一些帮助,可以使用sslwrap进行调试,这是一个命令行工具,允许您使用来自客户端的明文套接字。服务器,但将未加密的数据包装在SSL TCP连接中。
答案 1 :(得分:0)
正如另一张海报所说,不要担心C ++;使用SSL或TLS。这意味着您将需要获取服务器的证书,如果您获得商业证书,则需要花费50至1500美元,或者您可以通过自己建立的Intranet证书颁发机构制作自己的证书。
此措施将加密通信,并确保您的客户端实际上与真实服务器“通话”,而不是冒名顶替。但是,如果您还需要对客户端进行身份验证,那么您将需要第二个证书(确切地说,每个客户端计算机可能需要一个证书)。如果这对您的客户需求来说太重了,那么考虑使用HMAC来帮助确定冒名顶替者的授权客户。