首页 > 解决方案 > 设置“require_client_auth”的功能

问题描述

我正在尝试将客户端设置为我们的一个客户端的节点 SSL 加密。

我对require_client_auth在 cassandra.yaml 中的 client_encryption_options 中设置的功能以及需要从客户端和 cassandra 节点设置哪些配置感到困惑,以防我将 require_client_auth 设置为 true。

密码身份验证已设置,现在正在调查是否有任何额外的优势同时打开(“authenticator:PasswordAuthenticator”和“require_client_auth:true”)

标签: cassandra

解决方案


正如 Jim 所说,require_client_auth与 Cassandra 的身份验证系统没有任何关系。它是客户端到节点 SSL 的附加安全配置级别。

当您实施客户端到节点 SSL启用require_client_auth时,您将启用所谓的双向 SSL。不是 Cassandra 客户端简单地验证服务器的身份,服务器还验证客户端使用的证书。这个文档One Way and Two Way SSL and TLS (Peeples K. 2015) 很好地描述了这个过程:

双向 SSL 身份验证也称为客户端或相互身份验证,因为在 SSL 服务器向 SSL 客户端验证自身身份后,充当 SSL 客户端的应用程序将其证书提供给 SSL 服务器。

使用基于证书的 2-Way SSL 建立加密通道包括: 两种方式 SSL

  1. 客户端请求访问受保护的资源。
  2. 服务器将其证书提供给客户端。
  3. 客户端验证服务器的证书。
  4. 如果成功,客户端将其证书发送到服务器。
  5. 服务器验证客户端的凭据。
  6. 如果成功,服务器将授予对客户端请求的受保护资源的访问权限。

另一方面,使用 One Way SSL,客户端仅验证服务器的证书(来自同一个文档)。

一种方式 SSL

双向 SSL 的优势在于知道 Cassandra 节点不允许来自未知客户端证书的连接。

IMO,一种方式 SSL 仍然提供相当程度的安全性。开发团队将需要提供一个证书,该证书通过与来自 Cassandra 节点的证书相同的 CA(证书颁发机构)进行验证。双向 SSL 在大型组织中可能很有用,有助于阻止未首先与您的团队交谈的应用程序的连接。


推荐阅读