我想向客户端发送一个加密文件,其中包含我的应用程序的许可证数据。由于我将使用非对称加密,我将使用私钥加密文件并将其发送到客户端。客户端PC上的应用程序将使用位于应用程序代码中的公钥解密发送的文件。
此处的威胁模型I方面是可以从应用程序.dll文件中提取公钥(例如使用.net反射器)并用于重新生成许可证。
有没有办法保护我的申请?
更新
我浏览了以下link中的代码示例,以加密xml文件。
我现在面临的问题是,根据代码示例,两个密钥将在客户端pc中生成,与我的相同。这是正确的还是我的误解?
另外,由于Alexe Barlescu建议使用ProtectedData类来保护私钥,我该如何实现呢?
答案 0 :(得分:0)
非对称加密使用两个键:
使用客户端的公钥加密包含许可证的文件,因此只有他可以使用他的私钥解密它。 要使客户端的私钥安全,请使用位于System.Security.Cryptography命名空间中的ProtectedData类中的Protect方法对其进行加密。私钥将被加密存储在他的计算机上,只有当他需要解密您发送的消息时才可以解密密钥。