【发布时间】:2011-02-01 16:59:54
【问题描述】:
我在我的 Web 应用程序和服务之间使用 NServiceBus 和 MSMQ,并且我需要能够加密消息有效负载,以便如果消息在 Web 服务器上本地排队(服务主机已关闭),敏感数据不能被查看。
因为网络服务器是面向公众的,所以我不仅需要加密可能无论如何都会序列化到磁盘的数据,而且我也不能将加密密钥存储在网络服务器上。
我考虑过使用 DPAPI 来存储密钥,但由于密钥将存储在主机上,我还不知道这是否违反要求。我考虑过的另一个选项是,当 Web 应用程序启动时,它可以从服务中请求密钥,并将其保存在内存中,直至应用程序池的生命周期。
我以前没有处理过这种级别的加密要求,我想了解其他人在做什么,并就上述想法获得一些反馈。
【问题讨论】:
-
无论您做什么,请聘请安全顾问来验证您的设计/实施的有效性。如果您不是该领域的专家,那么犯错误是微不足道的,与花钱请人帮助您纠正错误的成本相比,错误的成本可能是巨大的。参看。 Heartland 支付系统。
-
这并不是非对称密码学解决的问题。
-
非对称密钥至少会降低观察者从磁盘读取现有状态的可能性。尽管手头有非对称密钥,但观察者可以使用它来发起暴力攻击。
标签: c# security encryption nservicebus