您在哪里将加密密钥放在面向公众的服务器上?

Mar*_*ler 6 c# security encryption nservicebus

我在我的Web应用程序和服务之间使用NServiceBus和MSMQ,我需要能够加密消息有效负载,这样如果消息在Web服务器上本地排队(服务主机已关闭),则无法查看敏感数据.

由于Web服务器是面向公众的,因此我不仅需要加密可能被序列化到磁盘的数据,而且我也无法将加密密钥存储在Web服务器上.

我已经考虑使用DPAPI存储密钥,但由于密钥将存储在主机上,我还不知道是否违反了要求.我考虑的另一个选项是,当Web应用程序启动时,它可以从服务请求密钥并在应用程序池的生命周期内将其保存在内存中.

我以前没有必要处理这种级别的加密要求,并希望了解其他人正在做什么,并获得有关上述想法的一些反馈.

cjk*_*cjk 7

你可以使用公钥/私钥加密吗?然后,您只需要在服务器上使用公钥,并使用其他位置的私钥解密数据.


Udi*_*han 0

您可以覆盖 NServiceBus 提取其加密密钥的源 - 这在此处的文档中进行了描述:http://docs.preferred.net/nservicebus/security/encryption

这样,您就可以避免将此敏感信息驻留在 DMZ 上。