【发布时间】:2010-09-14 14:39:30
【问题描述】:
我们正在设计一个具有外部和内部站点的 .net Web 应用程序。
两个站点都需要加密数据,只有内部站点需要解密数据。
我们想知道以下方面的最佳做法是什么:
- 选择哪种加密方法?
- 在哪里存储加密/解密密钥?
【问题讨论】:
我们正在设计一个具有外部和内部站点的 .net Web 应用程序。
两个站点都需要加密数据,只有内部站点需要解密数据。
我们想知道以下方面的最佳做法是什么:
【问题讨论】:
您需要一种安全的非对称加密算法。这种算法有两个密钥:一个可以用来加密但不能解密的公钥和一个可以用来解密的私钥。
选择一种算法,确保研究它的特性(我认为 RSA 是 .NET 中的常见选择);生成一个私钥/公钥对,将私钥存储在内部站点上无法从外部访问的某个位置,并将公钥放在内部和外部站点都可以找到的位置。
【讨论】:
我想推荐一些好的 MSDN 文章,位于“安全简介”横幅中。
第一个是Encrypting without secrets,它讨论了您想要实施的那种拆分,外部站点只能加密(损坏的站点不可能泄露以前加密的信息)。
第二个是Cryptographic agility,它讨论了从一开始就计划在加密方法不再被认为是强大的情况下或何时取代它们。
【讨论】: