【发布时间】:2020-03-23 10:13:18
【问题描述】:
我正在创建一个将部署给我们客户的许可证管理器。在不涉及许多细节的情况下,我们在许可证文件中配置了许多参数,然后将其加密并放置在客户端服务器上。许可证管理器解密此文件并读取值。目前,这一切都是使用逐行 Triple-DES 完成的(如......每一行都是单独加密的......)。我正在用 NodeJS 重写整个东西。
目标是能够加密纯文本许可证文件并将该文件分发到客户服务器。客户服务器将运行需要能够解密许可证的许可证管理器 NodeJS 应用程序。
看起来私人/公共密钥加密可能是可行的方法 - 但客户能否使用我们与许可证管理器一起分发的密钥来加密他们自己的许可证文件?
【问题讨论】:
-
如果您有公钥或私钥,那么是的,您可以加密文件。通常,编码的私钥还包含公钥(或者您可以使用它分发一个)我不明白您的要求。除此之外,这类问题应该在security.stackexchange.com 上提问。
-
我只是想了解是否可以在服务器端加密某些东西然后在客户端解密它;客户端无法在解密后自行加密数据。
-
不,您正在寻找的是签名。使用非对称密码术,您使用公钥进行加密,并且您应该真的期望它是公开的 - 即包括对手在内的每个人都能够获取/猜测该值。
-
确实,您可能正在寻找签名。接下来-您不考虑用户是否可以替换公钥并验证他们自己的签名。没有灵丹妙药,只有你可以让它变得更难。查看在 DRM 系统或许可证管理器上花费了多少以及它们持续了多长时间
标签: node.js encryption licensing public-key-encryption