【问题标题】:Having a file encrypted to lets know the client software got activated?对文件进行加密以告知客户端软件已激活?
【发布时间】:2011-11-04 11:58:13
【问题描述】:

我现在面临一个相当奇怪的问题。如果你喜欢这个:Best place to put key or password used for encryption? 我正在寻找一种加密数据的方法。使用 RSA 似乎是一个不错的选择。但是我们有一个问题,因为我的要求是那些家伙......

  • 客户端必须对文件进行加密才能确定软件是否已激活。

这实际上意味着客户端必须读取加密文件。但问题是我们实际上需要私钥在那里,这不是一个好主意,因为有些人可以开始使用该密钥制作他们的许可证文件。激活服务器对发送回客户端的数据文件进行加密,然后客户端保存该文件。

解决此问题的最佳方法是什么?

所以我正在寻找的正是满足这些要求的方法......

  • 客户端必须对文件进行加密才能确定软件是否已激活。
  • 客户端以未加密/加密的形式将用户数据发送到激活服务器。那没关系。当然,此时加密会更好。
  • 激活服务器检查该数据,然后确定是否可以激活客户端。
  • 如果客户端可以被激活,那么服务器会发送加密形式的许可证文件。但问题现在出现了。如果客户端上没有私钥,则无法解密客户端上的文件,这会非常不安全!

有什么想法吗?

【问题讨论】:

    标签: .net vb.net encryption


    【解决方案1】:

    我认为您应该看看数字签名:http://www.codeproject.com/KB/security/xmldsiglic.aspx 似乎是您问题的一个很好的答案。

    【讨论】:

    • 我已经将它与 RSA 一起使用。它可以通过什么方式解决我的问题?
    • 您是否使用 X509 证书来签署/检查您的许可证数据?
    • 我什至不知道 X509 证书是什么,所以我会拒绝。
    • 嗯..我正在阅读那篇文章,所以如果我理解..解决方案的关键是签名。所以如果我是正确的..服务器会将签名发送给客户端并保留它。每次将许可证文件与该签名进行比较。毕竟不需要解密文件..无论如何为什么文件会首先被解密?这些信息已经发送到服务器。但是我们还有另一个问题..如何处理诸如过期日期之类的东西。
    • X509 证书包含您的私钥和公钥,正是这种证书用于 HTTPS 协议。我知道X509证书也可以用来证明你的程序没有损坏。另一种方法是在您的程序中实现一个秘密算法并混淆代码。最后一点,有一些公司提供这项服务(例如:inishtech.comolicense.de
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-07
    • 2012-09-22
    • 2020-03-23
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    相关资源
    最近更新 更多