0

我有一个 Web 应用程序,它允许用户使用自己的身份提供者进行 SAML 身份验证。我的应用程序中的数据库中有字段,我想确保只有授权用户才能解密(并且系统的开发人员/管理员没有被隐式授权)。对于使用密码登录的用户来说,这很容易 - 制作一个 RSA 密钥对,其中私钥用他们的登录密码加密,并在密码更改时更新钥匙串。但是在没有登录密码的情况下如何做到这一点,因为用户已经通过 SAML 进行了身份验证?

4

1 回答 1

0

我不想告诉你这个,但我也不认为你的安全选项(派生密钥)那么安全。

现实情况是,管理员可以在这里做非常糟糕的事情......包括:

  • 在 f/e 上注入代码并在飞行中窃取密码
  • 窃取数据,直接对db做字典攻击,猜测很多可能的key来解锁数据(要知道密码集比较小)

IMO 仅从密码中获取密钥是不够的。如果您想将其视为“最佳实践”,则需要大幅提高标准。理想情况下,您可以使用一种解决方案来解决这两个问题,但如果您使用密码作为来源(或派生密码哈希),那么这可能是不可能的。

于 2012-10-23T06:28:03.057 回答