it-swarm.cn

如何保护软件免遭盗版?

为什么今天看起来很容易盗版?

似乎有点难以置信,随着我们的所有技术进步以及在工程上花费了数十亿美元用于开发最令人难以置信的令人兴奋的软件,我们除“序列号/激活密钥”之外,没有其他方法可以防止盗版。 ”。我确信创建Windows 7或Office甚至是Snow Leopard会花费大量资金,甚至数十亿美元,但我可以在不到20分钟的时间内免费获得它。对于所有Adobe产品也一样,这可能是最简单的。

可以存在一种防呆和防黑客的方法来保护您的软件免遭盗版吗?如果不现实,理论上可能吗?还是不管这些公司采用什么机制部署,黑客都能找到解决方法吗?

80
Snowman

代码就是数据。当代码可运行时,该数据的副本为不受保护的代码。可以复制不受保护的代码。

用反盗版检查来充实代码会使代码难一些,但是黑客只会使用调试器并将其删除。插入无操作而不是调用“ check_license”非常容易。

  • 难破解的程序会逐步处理更多令人讨厌的事情。
  • 但是供应商必须向客户出售他们准备使用的软件。
  • 并非所有人都允许计算机打电话回家。
  • 有些从事敏感物品工作的人拒绝将机器连接到互联网。

我在当前雇主那里出售的程序(航空航天工具)永远不会打电话回家。每次程序启动时,客户都不会容忍打电话回家进行“激活”。

最坏的情况是,该程序在VM,没有网络,在这里总是固定日期。=

因此,它可能已经合法安装了一次,但是开发人员的任何努力都无法使它表明情况并非如此。

  • 尝试向通用计算机添加硬件“防复制”注定要失败。
  • 任何销售没有复制保护的硬件的公司最终都会出售所有硬件。
  • 像戴尔和英特尔这样的供应商逐渐尝试引入像钯这样的间谍硬件,但他们遭到了强烈抵制。
  • 当计算机进行科学,实时的操作时,“检查​​盗版内容”的任何中断都将导致故障。如果所有计算机都具有硬件DRM,则特殊的科学/实时计算机将不必具备它。偶然地每个人都会购买特殊的科学/实时的。
  • 硬件DRM检查将对某些内容产生误报。

    • 最简单的情况:分辨率。我从摄像机阵列录制Quad HD视频(现在坐在我的桌子上)。 Windows DRM是QuadHD,可在我和数据之间找到。

    • 签名分析:硬件DRM很小,并且具有相对固定的数据集。它还必须使用与CPU相同的数据总线,以使其间歇性地减慢速度。这会破坏实时性。

    • 因此,为了使误报期间的硬件DRM更智能,您的计算机最终将被打断,无法使用Web服务进行检查。现在,我的科学数据处理器要么由于未联网而出现故障,要么停止了流数据传输。

78
Tim Williscroft

最终,最大的问题是大多数软件都将锁和钥匙交给了潜在的攻击者,并希望他们不知道如何将它们组合在一起。

保护软件的安全方法是不将其提供给用户(例如SaaS)。例如,您会注意到您无法“盗版” Google文档。最终,如果您要尝试保护某物,则必须假定他们对您提供给他们的任何东西都有充分的了解。您不能信任客户。这不仅适用于防止盗版,也适用于防止系统受到损害。

由于现有的软件分发模型是基于给客户端提供整个软件包,然后尝试对其进行保护在硬件上由潜在的攻击者控制,因此,分发模型与任何“无价之宝”软件的概念都不兼容。

64
Anon.

为什么今天仍然容易盗版该软件?

出售易于盗版的软件更有利可图。

在决定反盗版措施时,公司会进行成本效益分析。对于任何给定的一组措施,如果收益不超过成本,则公司不会这样做。

成本包括实施,记录,支持和维护这些措施的时间和精力,如果真的很烦人,则可能包括销售损失。一般来说,有两种好处:

  • 更大的利润是因为那些会盗版该程序的人购买了它。
  • 做出决定的人很高兴程序没有被盗版。

这是一个简单的示例:Microsoft Office。

现在,MS只是为了赚钱,而不仅仅是让高管对盗版感到高兴。一段时间以来,MS一直在销售“家庭和学生”版本的Office,其价格要比“普通”版本的企业便宜。我是几年前买的,它根本没有版权保护! “反盗版”技术包括输入产品密钥,然后将其存储在应用程序文件夹中。但是您可以同时在任意多台计算机上运行它,而且它们都可以正常运行!实际上,在Mac上,您可以将应用程序文件夹通过网络拖到从未安装过的另一台计算机上,并且由于产品密钥与应用程序一起存储,因此运行起来非常好。

为什么会有这种可悲的反盗版技术?有两个原因。

首先是因为为家庭用户搞砸安装而增加的技术支持成本是不值得的。

第二个是非技术性反盗版措施。 MS有一个举报程序,如果您知道某个公司盗版了MS软件,例如安装了200个“家庭和学生”办公室的副本,则可以给他们打电话。然后,MS进入公司并对其进行审计,如果发现了盗版软件,便将其告上法庭-并且赚了很多钱。

因此,MS不必使用技术来防止盗版。他们发现仅使用冷现金支付就更有利可图。

31
Bob Murphy

恕我直言,一个基本问题是,保护软件免遭盗版的大多数或所有“万无一失”方法*也会惹恼甚至驱赶无辜的合法用户。

例如。如果检查应用程序仅安装在一台计算机上,可能会使用户难以更改其计算机上的硬件。硬件加密狗可能意味着您不能在工作和家用计算机上使用相同的应用程序。更不用说DVD区号,CSS,Sony Rootkit等,它们并不是严格地用于软件保护,而是紧密相关的。

*正如@FrustratedWithFormsDesigner指出的那样,在实践中绝不是完美的;没有100%的安全性,您只能尝试使入侵者破坏防御的成本足够高,以使它们不会“太多”。而且我相信,由于软件和数字信息的基本性质,一旦有人设法突破特定的防御措施,这种突破几乎总是可以被数百万人轻易复制。

29
Péter Török

正如 Bruce Schneier所说 一样,试图使数字文件不可复制,就像试图使水不湿一样。他主要谈论的是“ DRM”,它比代码更适用于内容(例如电影),但是从防止复制文件中内容的角度来看,实际区别不大-复制文件就是复制文件就是复制文件。

25
Jerry Coffin

只有一种“保护您的软件不受盗版侵害的傻瓜和黑客证明方法”

免费软件(因为您可以用它做任何想要的事情,甚至出售它。)

您不能偷走免费提供的东西。当然,这将使一些恐龙公司的软件模型失效,但盗版无济于事。卖一些你不能复制的东西,最好是随你免费赠予的东西;例如您的帮助。

17
Orbling

这是由以下四个主要因素造成的:

从根本上讲,计算机的许多工作都是通过复制数据来实现的。例如,为了执行程序,计算机必须将其从硬盘驱动器复制到内存中。但是,一旦将某些内容复制到内存中,就可以将其从内存写入另一个位置。牢记“盗版保护”的基本前提是制作无法成功复制的软件,您可以开始看到问题的严重性。

其次,解决这一难题的方法直接损害了合法用户和那些希望在不合法购买软件的情况下使用该软件的用户的利益。其中一些用户将具有分析编译后的代码所需的技术知识。现在,您有一个强大的对手正在积极与您作战。

由于这是一个难题,而且生产正确的软件也固有地困难,因此您的解决方案很可能在某处至少包含一个可利用的bug。对于大多数软件来说,这并不重要,但是大多数软件不会受到坚定的对手的积极攻击。软件的本质就是它的本质,一旦发现一个可利用的漏洞,就可以用来控制整个系统并禁用它。因此,为了提供可靠的保护,您对非常棘手的问题的解决方案必须perfect否则将被破解。

第四个因素是全球互联网。这使得将信息传输给任何感兴趣的人变得微不足道。这意味着,一旦您的不完善的系统被破解一次,它就会无处不在。

这四个因素的结合意味着,不完美的复制保护系统可能不是安全的。 (又是什么时候您最后一次看到一款完美的软件?)鉴于此,问题不应该是“为什么软件仍然容易被盗版?”而是“为什么人们仍在尝试阻止它?”

13
Mason Wheeler

基于云的SaaS解决方案背后的一个经常被忽视的主要动机是确保收入流。

我认为这正是IP货币化和保护的未来所在。

通过将重点从销售将在供应商无法控制的环境中运行的本地解决方案转移,最终,所有针对软件盗版的策略注定会失败。当您将资产分发给他人时,没有任何方法可以保护您的资产,因为需要在他的机器上实施保护。

通过将您的软件托管在云中并作为服务提供,您可以有效地将盗版的门槛提高到猴子业务的水平。

9
Johannes Rudolph

我认为您正在寻找的答案是,许多公司不再真正关心盗版。没有人希望他们的东西免费获得,但是当您在烦恼和必须支持高级复制保护破坏或破坏计算机的所有人之间进行权衡时,就会选择这种平衡。几家公司已经竭尽全力地进行护理,但到了最后,这些东西仍然破裂了,用户的口感往往很差。

尝试为可能会阻止黑客入侵的少数人实施该工具(或潜在的客户流失)是不值得的。

一些公司甚至将盗版用户视为一种资源。瓦尔(Valve)在不久前发表了这样的评论,在新闻中引起了轰动,您不能告诉我,微软多年来在亚洲所有盗版Windows安装中均未脱颖而出。

对于那里的微软公司,他们希望为每笔需要出售的小家伙出售大批许可证,但他们却负担不起失去客户的机会,甚至在某些情况下甚至无法承受rootkit和其他可恶的人用来尝试建立这种锁定的东西。 -在。

您无法做出完美的反盗版行为,但是没有多少人有足够的动力去尝试。

8
Bill

无论您将软件内置什么,运行它的机器都必须能够理解它。随着软件变得越来越复杂,了解其他软件的软件也变得越来越复杂。因此,如果机器可以理解该软件,则海盗可以理解(并且可以修改)该软件。

例如,原则上,您可以在可执行文件中建立强大的加密功能,因此大多数软件都不可读。然后的问题是,最终用户的机器读取的代码不能比海盗更多。为了解决这个问题,您的软件必须同时包含解密算法和密钥-要么是明文形式的,要么至少是隐藏在较弱的加密之后(明文的解密形式)。

IIRC,最好的反汇编程序可以警告您有关加密的代码,并帮助您捕获和分析加密背后隐藏的内容。如果这看起来像反汇编程序的编写者是邪恶的,请考虑安全开发人员每天都需要这样做,以调查也隐藏在加密代码中的病毒和其他恶意软件。

可能只有两种解决方案。一种是封闭式平台,可将自己的用户拒之门外。如PlayStation 3所示,这不一定是保证。无论如何,有很多不喜欢它的非邪恶用户。

另一个是让您的软件在您控制的服务器上运行。

7
Steve314

从技术上讲,软件仍然可以被盗版,因为大多数IT仍在几千年前概念上设计的软件和硬件环境中运行,而当时甚至不存在软件盗版的概念。

必须保持这些基础以实现向后兼容,从而进一步增加我们对它们的依赖性。

如果我们考虑到反盗版从头开始重新设计硬件/软件环境,则可以添加重大改进。

你自己看:

  • 相同的开放式操作系统,其所有组件都完全公开,并且可以提供操作性

  • 相同的开放式计算机体系结构,将采用您使用的所有软件

  • 软件分发模型仍然基于移交给用户的未加密文件

Internet及其低安全性,许多漏洞,开放性,垃圾邮件和分布式攻击存在着完全相同的问题。如果我们可以重做Internet,那么第二次我们会做得更好。不幸的是,我们必须坚持必须保持兼容性,以保持大量应用程序和服务的兼容性。

目前看来,保护软件免受盗版的最好方法是在硬件级别进行更改:

  • 关闭硬件,然后将其变成黑匣子。使用户无法弄乱硬件及其软件。这里的方法可能是在芯片级别对所有内容进行加密,以便对其外部接口进行完全加密。一个很好的例子是用于媒体接口HDMI的HDCP加密-媒体流在离开播放器盒之前被加密,并在显示单元内部解密,因此没有开放的数据流可供截取。

  • 关闭分销渠道。使所有外部媒体和在线通道完全加密,以便只有经过认证的硬件才能解密数据流。

两者都可以实现,但是它将整个生态系统变成监狱。自由硬件/软件的并行/地下移动很可能会创建并行生态系统。

5
user8685

我猜一个原因是,知道如何编写体面安全性的人可能是黑客本身。

另外,试图保护自己免受盗版的侵害确实非常困难。由于您的计算机必须自己执行此保护,因此可以在任何给定点(内存/执行/网络流量/ ...)对其进行拦截。那就是迷惑进入的地方,试图使人们无法理解正在发生的事情。

我相信序列号和激活密钥的作用在于,您至少可以看到谁在盗版,并尝试以此方式对其进行跟踪/阻止。我认为,这就是如今如此多的服务成为在线服务的部分原因。 (Steam,Windows更新等。。。)突然变得很难破解,但是,仍然有可能。

如果您拥有成功的产品,那么会有更多的人试图破解它,因此盗版的机会更大。

5
Steven Jeuris

自动反盗版是一个逻辑矛盾。

合法用户受到供应商的信任。

任何“自动”反盗版都试图使信任关系自动化。

这怎么工作? any技术手段怎么能“信任”一个人?

信任是天生的人际关系。看起来值得信任但不值得信任的人总是可以颠覆任何技术机制。

因此,人们也总是放任信任。

5
S.Lott

只要付出努力,就可以实现几乎完美的复制保护…但是花费不了成本。几个著名的博客都有 讨论过非常好 :具体来说,是最佳盗版率的概念。

反盗版措施有若干成本:实施这些措施的直接成本,但也有间接成本:例如,这些措施通常会带来不便,驱逐用户。

盗版是有代价的,但代价通常并不高。它甚至可能还具有一些好处,例如扩大用户群。正如一位评论员在《编码恐怖》上的帖子中写道:“现在我是一名开发人员,实际上我有钱可以花在软件上,我倾向于购买在大学时期盗版的程序,因为我已经熟悉它们了。 ”

因此,一定要采取一些反盗版保护措施,以确保合法销售不会被严重削弱。但是超过了某个点,就没有任何经济诱因来改善反盗版措施。

4
Peter LeFanu Lumsdaine

所有的答案似乎都是技术问题,但这不是技术问题,而是社会问题。

该软件易于复制且难以编写。如果在不容易复制的地方我们不会打扰。大多数程序只是一次性编写,而较小的程序则依靠较大的程序来运行。如果我们也使程序难以复制,那么我们将自己置于竞争劣势。是的,您可以通过阻止复制来最大化短期利润。但是最终,您将失去市场份额,因为谁可以将复制成本,写入成本和使用成本降至最低。

Free Software最大限度地降低了这些成本中的1个复制成本,并大幅度降低了其他2个写入成本和使用成本。

复制成本

我可以在与Windows 7大约相同的时间和精力下安装Ubuntu linux [Windows 7需要我另外添加一个许可证密钥,这使其难度稍微增加一些]。

Windows 7的价格为100英镑,但是对于Ubuntu来说,我可以下载它,在杂志商店以6英镑的价格购买(附带免费杂志),以2英镑的邮购价格或从朋友那里借来一张CD。

写作成本

可以修改自由软件,这降低了成本。我不必从头开始。

使用成本

在Windows 7中,除了Web浏览器外,我没有任何应用程序,在Ubuntu中,我可以想象到的每个应用程序都需要在操作系统中进行大量安装。

我在Linux上不需要病毒扫描程序。

我可以在较旧的硬件上运行Linux。

使用免费软件,没有人会通过制作不兼容版本的Office工具来强迫自己变丑。

4
ctrl-alt-delor

在计算机足够相似,能够从网上下载软件并立即运行它的世界中,很难识别某物来确定该计算机是否可以运行,但是,那台电脑不是。

最终归结为您拥有别人所没有的东西。这可以是您已购买的序列号,硬件加密狗或在其特定位置上存在物理错误的DVD。然后,该软件会查找该特定内容,如果不存在,则拒绝运行。对于序列号,您还需要在Internet上有一个位置,软件可以验证该序列号对于母船是可接受的。

不幸的是,黑客非常善于通过外科手段移除此类检查,因此代码需要非常复杂,并且难以修改以使其变得困难,但是只要有足够的奉献精神,人类仍然可以做到。

因此,大多数便宜的软件产品都会在互联网上使用带有母舰身份的序列号来进行验证,并附带有许可的政策,所有公司都应遵守。昂贵的产品通常使用加密狗保护。

3
user1249

有不同类型的具有保护功能的软件。

当您以Windows 7为例时,很明显答案是否定的,仅仅是因为PC架构和PC编程是众所周知的。

但是,如果考虑其他硬件,例如PS3,PSP和iPhone,则完全不同,主要是因为制造商可以控制一切,而不仅仅是软件:它们可以使硬件仅运行正版软件,这需要擅长破解这些技巧。

您应该回想一下Microsoft longhorn项目:当时他们想实施芯片来检查您的软件是否为真品。从理论上讲,很难破解,但他们没有这么做,因为它会非常侵入。

2
jokoon