gpt4 book ai didi

ssl - TLS 客户端证书 : which attribute for authorization?

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:18 24 4
gpt4 key购买 nike

我正在尝试设置一个 Web 服务,该服务使用在 TLS 握手期间发送的 x509 客户端证书进行身份验证,并检查用户是否有权访问所请求的资源。

这个想法是给每个用户一个访问级别,一些资源只对更高级别可用。然后使用该证书将用户与其级别相匹配。

我在配置 Apache 以根据根 CA 验证证书并将证书转发到后端应用程序(基于 python 的 XML-RPC 服务器)时没有遇到任何问题。

但是我正在努力选择我应该使用证书的哪些属性来将用户映射到他的级别:

  • Common Name 字段似乎是一个自然的选择,但我想知道这个解决方案的安全性如何,因为没有什么可以阻止多个中间 CA 提供具有相同 CN 的证书
  • 公钥本身显然更安全,但它的实用性如何?如果客户必须在证书到期后更新证书,它会保持不变吗?还有一个更大的字符串的存储和比较速度的问题
  • 整个证书本身或其指纹指纹可以替代公钥,但如果更新证书,客户端将无法连接

我目前倾向于使用公钥,但它是这种情况下的最佳选择吗?或者有更好的选择吗?

提前致谢

最佳答案

通常,使用客户端证书进行身份验证是通过一些私有(private) CA 来完成的,这些 CA 会颁发客户端证书,并且只在验证客户端证书时信任 CA。在这种情况下,受信任的 CA 并且只有这个 CA 可以完全控制证书的主题,这意味着将 CN 映射到用户非常好并且也很常用。

如果您出于某种原因想要允许由任意 CA 颁发的证书,那么您已经意识到,这种简单的映射无法完成。在这种情况下,可以完成证书公钥或证书指纹之间的映射,这当然需要预先知道特定用户期望获得哪个确切证书。而且,每当客户端证书因过期而需要更改时,都需要以某种方式更新此映射。

关于ssl - TLS 客户端证书 : which attribute for authorization?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54968859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com