确保没有凭据的客户端/服务器身份验证

时间:2013-03-27 09:08:08

标签: security ssl https certificate

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

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

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

但是,在某些情况下,用户必须通过这两种方法中的任何一种方式连接到服务器而没有他的凭据,但只有文字,例如牌照号码。

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

如何确保只有我的服务器已知的“设备”可以与我的服务器进行交互?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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

您可以使用它们对服务器执行客户端证书身份验证。在这种情况下,您将知道客户端具有该令牌。这可能会在您知道CA仅为此类令牌中的密钥对颁发其证书的情况下运行:管理CA以处理此问题需要付出代价。

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