我有一个 Silverlight 3 应用程序,它连接到服务器以执行各种操作。我的用户使用表单身份验证登录,但他们请求的操作是使用 AppPool 帐户在服务器上运行的,因此当他们进入审核日志时,他们会根据 AppPool 帐户进行记录。PCI DSS 法规现在要求用户自己的 ID 存在于审计日志中,这意味着必须使用用户的信用来采取行动。现在,我可以在用户登录并提交每个请求时保存用户的凭据,并且服务器正在执行的操作可以使用这些凭据。但是 PCI 法规说,如果保存凭据,则必须对其进行加密(以避免有人获取 PC 的内存转储并获取密码)。
我能看到的唯一方法是从服务器获取公钥并用它加密密码,然后提交加密密码并使用私钥在服务器上解密。但 Silverlight 没有非对称加密。
我想我离问题太近了,必须有另一种解决方案,但我看不出它是什么。任何人都可以帮忙吗?
澄清
这是一个内部应用程序。到目前为止,我一直在使用 IIS Forms AuthN over SSL 到 Active Directory - 我不担心在传输过程中保护密码,只是当它保存在客户端的内存中时。据我了解,因为我使用的是Forms Authentication,所以除非我使用LogonUser,否则无法在服务器上进行模拟,这意味着我需要服务器上的密码,所以我每次都需要传输它,所以我需要持有它在客户端,在内存中,直到应用程序关闭。