0

我正在研究保护我的客户端应用程序和服务器之间的通道的方法。

我有一个富桌面客户端(win)和移动客户端连接到 web 服务,交换数据。

使用 SSL 证书,服务器和客户端可以相互信任。在安全连接上,我可以交换用户名和密码,从而对用户进行身份验证。

但是,在某些情况下,用户必须通过两种方法中的任何一种连接到服务器,而无需其凭据,而只能是文字,例如车牌号。

我真的想确保在这种情况下,我只允许客户端从我确定我知道的设备连接,因为没有进一步检查身份验证并且车牌号将是一个非常常见的文字。

我如何确保只有我的服务器已知的“设备”才能与我的服务器交互?

4

2 回答 2

0

如果要对设备进行身份验证,则需要找到一种方法让设备证明它是什么,而不泄露它的秘密。

对于任何有能力看到该号码的人来说,类似车牌的系统很容易被欺骗。根据您对此设备的控制程度,您可能无法隐藏它,即使与您的服务器的连接受到 SSL/TLS 的保护。

一种可能的方法是使用加密硬件令牌(或智能卡)。其中一些令牌可以配置为持有证书和私钥,能够使用私钥而无法导出该私钥。加密操作(签名和解密)发生在令牌本身上。

您可以使用这些对您的服务器执行客户端证书身份验证。在这种情况下,您会知道客户端拥有该令牌。这可以在您知道 CA 仅针对此类令牌中的密钥对颁发证书的条件下起作用:管理 CA 来处理此问题将产生成本。

这至少允许您将身份验证绑定到特定令牌。您是否可以将其与您的整体设备集成取决于您拥有的设备类型。

于 2013-03-27T21:25:27.787 回答
0

请检查 TLS 预共享密钥 ( RFC 4279 ) 是否可用于您的方案。

于 2013-03-27T14:35:49.177 回答