gpt4 book ai didi

security - 如何在 Silverlight 中加密用户密码?

转载 作者:行者123 更新时间:2023-12-02 21:47:14 26 4
gpt4 key购买 nike

我有一个 Silverlight 3 应用程序,它连接到服务器以执行各种操作。我的用户使用表单例份验证登录,但他们请求的操作是使用 AppPool 帐户在服务器上运行的,因此当他们进入审核日志时,他们会根据 AppPool 帐户进行记录。 PCI DSS 法规现在要求审核日志中包含用户自己的 ID,这意味着必须使用用户的信用来执行操作。现在,我可以在用户登录时保存用户的凭据,并在每个请求中提交这些凭据,并且服务器采取的操作可以使用这些凭据。但 PCI 法规规定,如果保存信用,则必须对其进行加密(以避免有人获取 PC 的内存转储并获取密码)。

我能想到的唯一方法是从服务器获取公钥并用它加密密码,然后提交加密的密码并使用私钥在服务器上解密。但 Silverlight 没有非对称加密技术。

我想我太接近问题了,一定有另一个解决方案,但我看不到它是什么。有人可以帮忙吗?

澄清

这是一个内部应用程序。到目前为止,我一直在使用通过 SSL 的 IIS Forms AuthN 到 Active Directory - 我并不担心在传输过程中保护密码,只要密码保存在客户端的内存中即可。据我了解,因为我使用的是Forms Authentication,除非我使用LogonUser,否则在服务器上不可能进行模拟,这意味着我需要服务器上的密码,所以我每次都需要传输它,所以我需要保留它在客户端、内存中,直到应用程序关闭。

最佳答案

您是说您需要存储密码以便在 silverlight 应用程序中重复使用吗?如果您担心密码出现在未加密的内存中,那么 Silverlight 那么我认为您有麻烦了。

.NET 框架确实有一个 SecureString 类,用于您概述的确切目的。

不幸的是Silverlight版本的框架没有这个类。因此,即使您要在某个时刻对密码的逻辑存储进行加密,您的代码也需要在使用它之前解密。此时已分配内存,其中包含未加密形式的字符串。

我对表单例份验证了解不多,但如果您可以将用户原则映射到域用户(您似乎表明您需要),那么您将希望在服务器上运行代码时使用模拟。

或者停止使用表单例份验证并使用 Windows 集成身份验证,您绝对可以在服务器端使用模拟。

关于security - 如何在 Silverlight 中加密用户密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2230011/

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