属性证书和访问管理

信息安全 证书 访问控制 授权 x.509
2021-08-17 18:23:04

我最近遇到了属性证书(RFC 5755),它可以用作一种授权方式。

我喜欢这个想法,但我花了很多时间来寻找这在现实生活中如何运作的信息。我了解属性证书的用途,但我不明白如何使用它。

例如,我有一个 Web 应用程序。如何在 Web 应用程序中使用属性证书进行访问管理?Web 应用程序的授权层中必须有可以使用属性证书的东西。这是如何实现的?我无法在真实的 Web 应用程序中找到任何示例。

另外,是否有任何支持属性证书的访问管理工具,可以提供属性证书和属性权限?我可以找到PERMIS 项目,但它似乎已经过时并且不再有用了。

我希望看到属性证书在访问管理中的实际应用,而不是理论或可能的用例。

2个回答

现实生活中,属性证书不起作用。没有人真正支持他们。原因之一是,根据定义,证书是信息的异步​​分发方法:证书将一些值绑定在一起(对于“普通”证书,这是名称和公钥;对于属性证书,持有者名称绑定到属性值)并且绑定是可验证的,无需与中央在线存储库对话。这就是证书上的加密签名的含义:允许离线或至少半离线验证。

离线验证的另一面是无法立即取消证书。撤销,但它本质上是异步的:当证书被撤销时,它会在几小时或几天内生效(取决于生成 CRL 的频率)。异步正是你不想要的授权:如果你因为怀疑有恶意活动而想阻止某人,你想现在就做,而不是下周。

可以通过让所有客户端每次都获得新的吊销信息,通过与 OCSP 服务器通信来进行同步吊销,但这会首先消除您想要证书的原因。使用证书的全部目的是避免每次需要一些授权信息时都必须与在线服务器通信。

所以,基本上,证书和授权不能很好地混合。这使得用于授权的 RFC 5755 属性证书毫无用处。相应地,它们的使用并不多。

RFC 5755中的介绍解释了属性证书的预期用途。我在这里复制一些文字:

有些人经常混淆 PKC 和 AC。一个类比可以使区分变得清晰。PKC 可以被视为像护照一样:它识别持有人,往往会持续很长时间,并且不应该是微不足道的。AC 更像是入境签证:它通常由不同的机构签发,并且不会持续很长时间。由于获得入境签证通常需要出示护照,因此获得签证可能是一个更简单的过程。

在 Web 应用程序中,您仍然需要 PK 证书来进行用户身份验证,而属性证书将提供授权/访问管理。用户必须同时呈现两者才能连接到应用程序。

阅读 RFC 5755 将揭示一些其他用例。确实,采用速度很慢,通过在线搜索可以找到很多示例,但是安全应用程序正在使用属性证书。