2

我今天听到有人就他们正在销售以防止应用程序盗版的框架进行营销宣传(我知道,你不能)。这是高级概述:

注册过程:

  • 手机使用服务器的公钥加密:手机的 IMEI 号码和安装的应用程序的唯一 ID(由应用程序开发人员分配)给服务器,即,

    Reg_request = Encrypt(Server_PublicKey, (IMEI||AppID))

  • 服务Reg_request使用解密函数和自己的私钥进行解密以提取 IMEI 和 AppID

  • 服务然后要求用户付款。付款后,服务会serial number根据以下内容生成激活IMEI||AppID
  • 然后服务使用智能手机的公钥加密生成serial number的公钥,然后将其发送给用户。
  • 收到此信息后,应用程序使用解密功能和存储在智能手机上的私钥对其进行解密,以获得serial number.
  • 为了激活,应用程序传递IMEI||AppID给它自己的散列函数以获取临时验证序列号。
  • 如果此数字与serial number从服务器接收到的数字匹配,则激活成功。

我对密码学知之甚少,但这对我来说就像传统的公钥密码学。这种方法有多合理,或者更确切地说,攻击者要破解它有多困难?而且,传统的基于桌面的软件是否使用更复杂的方法?

4

2 回答 2

3

您描述的方案没有什么特别之处,实际上,如果您用 HTTPS 之类的东西替换所有公钥加密,语义根本不会改变。

我的猜测是,这是一个经典案例,经理指示开发人员在产品中添加密码学以使其更安全,或者仅仅是因为它听起来很酷,但实际上他们都不熟悉密码学。

于 2013-09-16T17:51:41.710 回答
1

在许可证密钥生成方面,非对称加密至少有一个优势。私钥可用于加密许可证数据并生成许可证密钥,而公钥用于验证许可证数据。私钥将保密,仅供许可证生成器或许可证激活服务使用。使用这种方法,为任何试图篡改您的应用程序的人创建“密钥生成器”并不容易。

最后,人们应该明白,创建一个可以完全防止盗版的方案是极其困难的(如果不是不可能的话)。您只能阻止最终用户执行“随意盗版”。

于 2013-09-17T02:00:48.320 回答