cassandra - 设置“require_client_auth”的功能
问题描述
我正在尝试将客户端设置为我们的一个客户端的节点 SSL 加密。
我对require_client_auth
在 cassandra.yaml 中的 client_encryption_options 中设置的功能以及需要从客户端和 cassandra 节点设置哪些配置感到困惑,以防我将 require_client_auth 设置为 true。
密码身份验证已设置,现在正在调查是否有任何额外的优势同时打开(“authenticator:PasswordAuthenticator”和“require_client_auth:true”)
解决方案
正如 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 服务器。
- 客户端请求访问受保护的资源。
- 服务器将其证书提供给客户端。
- 客户端验证服务器的证书。
- 如果成功,客户端将其证书发送到服务器。
- 服务器验证客户端的凭据。
- 如果成功,服务器将授予对客户端请求的受保护资源的访问权限。
另一方面,使用 One Way SSL,客户端仅验证服务器的证书(来自同一个文档)。
双向 SSL 的优势在于知道 Cassandra 节点不允许来自未知客户端证书的连接。
IMO,一种方式 SSL 仍然提供相当程度的安全性。开发团队将需要提供一个证书,该证书通过与来自 Cassandra 节点的证书相同的 CA(证书颁发机构)进行验证。双向 SSL 在大型组织中可能很有用,有助于阻止未首先与您的团队交谈的应用程序的连接。
推荐阅读
- javascript - 如何访问 JavaScript 对象中的值
- ssis - 使用 SSIS 将 ID 值添加到后续 Excel 数据导出到 SQL Server
- javascript - 为什么 javascript value 属性不像手动更改那样工作?
- reactjs - 如何在反应的子应用程序中管理共享状态/存储?
- c# - 如何修改在 Azure Functions 中本机注入的 IConfiguration
- flutter - Flutter 可见性按钮 1 一次可见问题
- vb.net - 如何在 Visual Studio 2019 中读取文本文件?
- excel - 在每个值后附加逗号,然后单行显示
- database - 扫描大型 DynamoDB 表 - 1.5TB 大小,包含 100 亿条记录
- java - log4j 的错误方法可以打印没有字符串参数的堆栈跟踪吗?