因此,我制作了一个基于节约的程序与一个客户端和一个服务器,客户端可以很好地与服务器进行通信。现在,由于数据传输将是非常关键的,我希望在其中有某种安全性。
所以,我想到了登录系统,但问题是我没有在服务器端存储任何类型的会话数据(我甚至不知道应该存储什么,在所有客户机请求来来去去之后,没有办法区分它们)。所以经过很多思考,这就是我想出来的
可能的问题,我可以想到
目前,当服务器发生故障,而客户端处于某些RPC中时,它会给出一些错误消息,并且当服务器重新启动时,我们可以无任何问题地完成任务。
现在,如果服务器出现故障,那么生成的字符串将是不同的。因此,我将再次进行身份验证。
那么,您如何看待这个用于身份验证的整个模式?有没有更好或更简单的方法?
我不使用任何类型的数据库。我在两边都使用C++。我的客户端使用QT
发布于 2014-08-07 19:43:41
免责声明-我不知道PAM是如何工作的,所以我只有一些关于这种方法的高级问题。如果我误解了你的方法的任何部分,我会事先道歉。
当你说你想保护数据传输时,我觉得你想要身份验证和保密,你现在只有一种认证的方法了。
例如,如果客户端C1正在对服务器进行身份验证(假设凭据不是以明文发送),则服务器在步骤3中发送随机字符串。当其他人在网络上嗅探时会发生什么?流氓客户端可以不发送随机字符串并以C1的身份对服务器执行RPC调用吗?如果用户名和密码以明文形式发送到服务器,网络上的人也能访问凭据吗?另外,随后发送的数据如何?它只是以节约的格式编码,并且可以被网络上的任何人解码,对吗?数据敏感吗?
如果是的话,我想建议使用PKI/证书。使用自签名证书必须是可以的。如果您只希望客户端对服务器进行身份验证并证明它是合法的,则可以让所有客户端呈现他们的证书。证书基本上是该客户端的公钥,由为该client.The客户端提供凭单的权威机构签名,私钥在本地存储,永远不会离开客户端。现在,当客户端将证书呈现给服务器时,服务器会查看谁签署了证书(CA)。如果它是服务器信任的CA,它可以直接发送随机字符串或仅存储数据,使用客户端的公钥加密。客户端将能够用它的私钥解密,对于任何其他嗅探者来说,它看起来就像随机字节。服务器将对每个客户端执行此操作,并且只需要存储它信任的验证机构的名称。这可能是你的名字和地址。您可以使用openssl在每个客户端上生成自签名证书。但这意味着您需要对每个客户端进行额外的安装工作。生成密钥对和证书。如果此约束对您有效,您可以探索这种方法。
https://stackoverflow.com/questions/25190465
复制相似问题