问题描述
|
在.NET中执行此操作的最佳做法是什么?
我的问题是,我想与创建的Web服务进行交互。为了确保没有任何“创意”用户可以滥用该服务,我想对参数进行加密(输出是敏感的)。
我以为我很聪明,通过使用Web服务,而不是让我的应用程序直接进入我们的数据库,但是我显然不够聪明,不知道如何处理密钥。
因此,如何在本地安装的应用程序中存储用于加密参数的密钥?
当然,我想防止\“ creative \”用户能够检索它。
我想我可以从Web服务中获取密钥,但是我真的没有看到任何好处。人们仍然可以仅调用服务并获取密钥。
TL; DR
一般来说,当每个人都可以反编译代码并获取密钥(如果它存储在代码中)时,如何处理.NET中的加密/解密密钥?
解决方法
一种简单的方法是将密钥存储在配置中,然后对配置文件(
web.config
或ѭ1either)进行加密-详细信息在这里。
另一种方法是使用证书来保护与Web服务的链接,并将证书作为资源嵌入到应用程序中。然后,这将阻止非常有创造力的用户使用例如Wireshark读取往返于该服务的流量。细节在这里。