【问题标题】:Ensuring Client / Server Authentication without credentials确保没有凭据的客户端/服务器身份验证
【发布时间】:2013-03-17 07:30:48
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: security ssl https certificate


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 这如何帮助将预共享密钥绑定到特定设备而不是其他副本?
      猜你喜欢
      • 1970-01-01
      • 2012-08-28
      • 2011-11-04
      • 2012-04-15
      • 2020-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多