繁体   English   中英

对称和非对称密码

[英]Symmetric and Asymmetric Cryptography

我正在寻找有关密码学的建议。

我正在开发.Net应用程序,需要为此创建一个许可证,因此我计划创建一个加密的许可证文件,我的应用程序将使用该文件来了解它是否已获得许可。

处理许可证如下:

  • 许可证生成:

    1. 生成唯一的对称密钥。
    2. 使用对称密钥来加密许可证信息。
    3. 使用非对称公钥加密对称密钥。
    4. 将加密的对称密钥和加密的许可证信息写入文件。
  • 许可证解密:

    1. 我的应用程序将读取许可证文件。
    2. 使用非对称私钥解密对称密钥,该私钥是dll中嵌入的xml文件。
    3. 使用解密的对称密钥解密许可证信息。

我的问题是:

  • 如果负责解密许可证的dll具有非对称私钥作为xml嵌入式资源,是否有可能窥探dll以获取密钥并生成新的许可证?
  • 我可以使用另一种更安全的技术吗?

作为一个非常一般的概述,最简单的方法是使用私钥对信息进行签名(并不需要真正加密任何东西),然后使用相应的公钥来验证签名。 而已。 私钥是安全的,没有它就无法生成有效的新签名,因此,如果有人更改了签名信息,则签名将无效。 无需在其上进行额外的对称加密-就我而言,这是毫无意义的工作。

许多库已经足够容易地执行此操作,但是手动执行也并不难。 https://github.com/dnauck/Portable.Licensing是我以前使用的一种。

编辑:也是,通常,反编译.net程序集非常容易,包括从中提取资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM