首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于节约的通信安全

基于节约的通信安全
EN

Stack Overflow用户
提问于 2014-08-07 19:18:13
回答 1查看 585关注 0票数 0

因此,我制作了一个基于节约的程序与一个客户端和一个服务器,客户端可以很好地与服务器进行通信。现在,由于数据传输将是非常关键的,我希望在其中有某种安全性。

所以,我想到了登录系统,但问题是我没有在服务器端存储任何类型的会话数据(我甚至不知道应该存储什么,在所有客户机请求来来去去之后,没有办法区分它们)。所以经过很多思考,这就是我想出来的

  1. 使用随机数,我会在服务器启动时生成某种随机字符串。
  2. 客户端将输入用户名和密码,这些用户名和密码将在服务器端使用PAM身份验证(只需阅读有关内容)。
  3. 如果验证,服务器将只将随机生成的字符串发送到客户端。
  4. 客户端每次尝试执行RPC时都会将该字符串发送到服务器。
  5. 如果得到验证,服务器将执行此工作,否则将返回一些错误代码。

可能的问题,我可以想到

目前,当服务器发生故障,而客户端处于某些RPC中时,它会给出一些错误消息,并且当服务器重新启动时,我们可以无任何问题地完成任务。

现在,如果服务器出现故障,那么生成的字符串将是不同的。因此,我将再次进行身份验证。

那么,您如何看待这个用于身份验证的整个模式?有没有更好或更简单的方法?

我不使用任何类型的数据库。我在两边都使用C++。我的客户端使用QT

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-07 19:43:41

免责声明-我不知道PAM是如何工作的,所以我只有一些关于这种方法的高级问题。如果我误解了你的方法的任何部分,我会事先道歉。

当你说你想保护数据传输时,我觉得你想要身份验证和保密,你现在只有一种认证的方法了。

例如,如果客户端C1正在对服务器进行身份验证(假设凭据不是以明文发送),则服务器在步骤3中发送随机字符串。当其他人在网络上嗅探时会发生什么?流氓客户端可以不发送随机字符串并以C1的身份对服务器执行RPC调用吗?如果用户名和密码以明文形式发送到服务器,网络上的人也能访问凭据吗?另外,随后发送的数据如何?它只是以节约的格式编码,并且可以被网络上的任何人解码,对吗?数据敏感吗?

如果是的话,我想建议使用PKI/证书。使用自签名证书必须是可以的。如果您只希望客户端对服务器进行身份验证并证明它是合法的,则可以让所有客户端呈现他们的证书。证书基本上是该客户端的公钥,由为该client.The客户端提供凭单的权威机构签名,私钥在本地存储,永远不会离开客户端。现在,当客户端将证书呈现给服务器时,服务器会查看谁签署了证书(CA)。如果它是服务器信任的CA,它可以直接发送随机字符串或仅存储数据,使用客户端的公钥加密。客户端将能够用它的私钥解密,对于任何其他嗅探者来说,它看起来就像随机字节。服务器将对每个客户端执行此操作,并且只需要存储它信任的验证机构的名称。这可能是你的名字和地址。您可以使用openssl在每个客户端上生成自签名证书。但这意味着您需要对每个客户端进行额外的安装工作。生成密钥对和证书。如果此约束对您有效,您可以探索这种方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25190465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档