双向安全(多协议)

时间:2015-06-21 11:19:47

标签: node.js security mutual-authentication

我正在实施一对多多协议服务器(+客户端),我想添加双向安全性。这就是我想要完成的事情:

  1. 客户端和服务器都以安全的方式相互进行身份验证。客户端没有人为干预。
  2. 客户端的代码校验和在服务器上验证。
  3. 客户端的代码可以用解释语言(例如python或javascript)编写,因此我希望在有人获得访问客户端之后防止破坏网络的可能性(这可能是但是,因为我的客户不会在服务器上执行任何操作,只报告他们的操作结果,所以这样做有点过分了。
  4. 我应该如何设计身份验证流程?我应该使用哪些技术/ google,或者 - 在较低级别 - 我可以尝试使用哪些现有解决方案? (我的原型是使用node.js编写的)

1 个答案:

答案 0 :(得分:1)

SSL可以双向进行身份验证。开箱即用,没有什么特别需要。甚至可以免费获得证书(自签名或来自认可的CA)。

客户端证书可用于区分客户端(如果需要),类似地,它们可用于防止同时登录的客户端副本。

您根本不能做的是阻止智能恶意用户以这样的方式控制客户端,即他们对服务器的交互方式进行逆向工作,而不是运行您的目标客户端,运行自己的客户端,就像它一样是真正的客户,但不是。

无法信任客户端的解决方案是不要让它做你必须信任的事情,而不是改变你的代码。这通常意味着从2层模型(重型客户端 - 服务器)转移到3层模型,其中您要运行的代码保留在您控制的硬件上,并且只有(不受信任的)用户接口被推送到用户控制的硬件