我正在实施一对多多协议服务器(+客户端),我想添加双向安全性。这就是我想要完成的事情:
我应该如何设计身份验证流程?我应该使用哪些技术/ google,或者 - 在较低级别 - 我可以尝试使用哪些现有解决方案? (我的原型是使用node.js编写的)
答案 0 :(得分:1)
SSL可以双向进行身份验证。开箱即用,没有什么特别需要。甚至可以免费获得证书(自签名或来自认可的CA)。
客户端证书可用于区分客户端(如果需要),类似地,它们可用于防止同时登录的客户端副本。
您根本不能做的是阻止智能恶意用户以这样的方式控制客户端,即他们对服务器的交互方式进行逆向工作,而不是运行您的目标客户端,运行自己的客户端,就像它一样是真正的客户,但不是。
无法信任客户端的解决方案是不要让它做你必须信任的事情,而不是改变你的代码。这通常意味着从2层模型(重型客户端 - 服务器)转移到3层模型,其中您要运行的代码保留在您控制的硬件上,并且只有(不受信任的)用户接口被推送到用户控制的硬件