2015-06-21 82 views
0

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

  1. 客户端和服务器都以安全的方式彼此认证。客户端不涉及人际交互。
  2. 客户端的代码校验和在服务器上进行验证。
  3. 客户端的代码可能是用解释型语言(如python或javascript)编写的,所以我想阻止在有人访问客户端之后危及网络的可能性(尽管这可能是过度的,因为我的客户端将不会在服务器上执行任何操作,只是报告其操作结果)

我应该如何设计身份验证流程?我应该使用哪些技术/ google,或者 - 在较低级别上 - 我可以尝试哪些现有解决方案? (我的原型是使用node.js编写的)

+0

服务器如何获取客户端代码进行校验? –

+0

在你的情况下,客户端不仅是浏览器,还可以写在其他服务器端脚本中? –

+0

是的,没有浏览器。服务器是node.js,客户端可能是用node.js或其他东西编写的,但首先我要从节点开始 – wildcard

回答

1

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

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

你从根本上不能做的是防止聪明的恶意用户以这样一种方式控制客户端,即他们逆向工程师如何与服务器交互,而不是运行你想要的客户端,运行他们自己的,仍然像在它是真正的客户,但不是。

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