【问题标题】:Symmetric and Asymmetric Cryptography对称和非对称密码学
【发布时间】:2018-06-14 03:00:51
【问题描述】:

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

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

办理许可证如下:

  • 许可证生成:

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

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

我的问题是:

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

【问题讨论】:

    标签: c# .net cryptography encryption-symmetric encryption-asymmetric


    【解决方案1】:

    作为一个非常笼统的概述,最简单的方法是使用私钥对信息进行签名(实际上并没有真正需要加密任何内容),并使用相应的公钥验证签名。而已。私钥是安全的,没有它就不能生成有效的新签名,所以如果有人更改了签名信息,签名就会失效。不需要额外的对称加密——就我而言,这是毫无意义的工作。

    有很多库已经很容易做到这一点,但手动做到这一点也不难。 https://github.com/dnauck/Portable.Licensing 是我以前用过的。

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

    【讨论】:

    • 签名好像比较好,我试试。谢谢
    猜你喜欢
    • 1970-01-01
    • 2014-12-05
    • 2019-07-29
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 2013-08-04
    相关资源
    最近更新 更多