首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要:用于版权保护的加密方案

需要:用于版权保护的加密方案
EN

Stack Overflow用户
提问于 2013-01-26 04:20:15
回答 3查看 277关注 0票数 0

我的任务是为应用程序实现基于加密狗的复制保护方案。我意识到无论我做什么,总会有人破解它,但我至少想让它比if-语句检查是否存在加密狗更困难一点。

我的方法是加密应用程序正确执行所需的关键数据。在运行时,从加密狗中检索解密密钥(我们选择的模型具有一些合适的API函数),数据被解密,应用程序是满意的。

当然,有决心的攻击者可以截获该解密密钥,还可以获得解密的数据。没关系。但最困难的应该是替换他们自己的数据。所以我正在寻找一种加密方案,在这种方案中,知道解密密钥的人不能加密自己的数据。

这显然是非对称加密。但到目前为止,对于我发现的每一种算法,加密(或公共)密钥都可以从解密(或私有)密钥生成,这正是我试图避免的。

注意:简单地对数据进行签名不会有太大帮助,因为(除非我完全误解了这样的签名)验证签名只是另一个if语句,很容易被规避。

所以..。有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-29 18:51:31

为了回答我自己的问题(在某种程度上),使用RSA可以做到这一点,但大多数API(包括OpenSSL的加密库)需要被“欺骗”才能做到这一点。在给定私钥的情况下,可以生成公钥的原因是

对于RSA的实现来说,在私钥数据中保存p和q(那些大素数)是很常见的做法。公钥(由模数N和一些指数e组成)是公开的。不管怎样,(通常)选择一个晦涩难懂的e是没有意义的。因此,有几个常用的标准值,比如3或65537。(

  1. )因此,即使p和q是未知的,您也可以“猜测”公共指数。

但是,RSA是对称的,因为您用公钥加密的任何东西都可以用私钥解密,反之亦然。所以我所做的(我是个怪物)就是让密码库生成RSA密钥。您可以在那里选择自己的公共指数,稍后将用于解密(与正常方式相反)。然后,我在键数据结构中切换公共和私有指数。

对于任何想要使用加密库做类似事情的人,有一些建议:

  1. 在RSA数据结构中,清除除n和e/ d之外的所有内容,这取决于您是要使用该特定密钥进行加密还是解密。
  2. 使用RSA_blind_off关闭盲目。即使在解密时,它也需要加密指数,这不是我们想要的。请注意,这可能会使您遭受某些攻击。

如果有人需要更多的帮助,请留下评论,我会编辑这篇文章的更多信息。

票数 0
EN

Stack Overflow用户

发布于 2013-01-26 04:39:40

一旦攻击者知道了私钥,您就不会有任何秘密信息来将自己与其他人区分开来。为了使攻击者更难:您可能希望在应用程序特定的时间T之后使每一对(公钥、私钥)过期,并基于加密狗和您自己的机器上的前一对独立地生成新的对。这样,攻击者需要不断地访问加密狗,以便能够使用新的私钥加密他的数据,或者像T一样频繁地运行他的private_key_detection算法。

票数 3
EN

Stack Overflow用户

发布于 2013-01-26 05:06:35

你可能想在加密狗上运行解密。有一些硬件可以帮助实现这一点(I just googled this one, for example.)。可能有很多others....Dallas半导体公司曾经有一个Java键,可以让你在一个像加密狗一样的小设备上运行代码,但我认为他们不再有这个功能了。

其中一些允许您在加密狗中执行代码。因此,也许一个很难重新创建但对性能要求不高的关键函数可能会起作用?也许是一种许可证密钥验证算法。

也许您可以在软件狗中包含代码,这些代码必须放入内存中才能运行。这可能更难打破,但可能很难实现,这取决于您正在使用什么工具来编写程序。

您可能还想研究一些反调试主题。我记得前段时间看过一些出版物,but here is at least one。这是另一层,将使其更难破解。

对Internet连接的依赖性也可能是一种选择。在这里你必须小心,如果你的客户不能让你的代码在没有互联网连接的情况下运行,你就不能惹恼他们。

你也可以看看FlexLM (或者现在叫它什么)。它是有效的,但它是一头野兽。如果我没记错的话,他们还试图与你们公司协商一定比例的毛利,以换取许可费(已经有好几年了……我想当他们提出要求时,我们已经告诉他们不要再提了。)

祝好运!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14529732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档