如何保护软件免遭盗版?


76

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

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

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


5
实际上,一些公司尝试使用更为复杂的反盗版方法(例如,要求连接到互联网,检查一份副本仅在一种硬件上运行,DNA锁等)。但是它们仍然会破裂。

76
有一个简单的解决方案:为合法用户提供令人难以置信的高质量支持。更重要的是,不要将非付费用户视为犯罪分子,而是您的潜在市场。当然,这要花钱,但是节省法律费用和复制保护工厂的费用将减轻打击。
biziclop 2011年

26
对于行为问题,没有好的技术解决方案。
Job

16
坚韧-给一个人一条鱼,他会吃一条鱼;告诉他他不能吃鱼,要打架。
2011年

7
@Job:...不。越来越多的证据表明,“盗版”(一个非常糟糕的侵权用语)对内容创作者而言具有重大的经济利益,而这样做对普通人也有利。在讨论DRM的“好处”时,您的比较将更加准确。
greyfade11年

Answers:


76

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

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

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

程序我在现在的老板(航天工具)销售不打电话回家。每次程序启动时,客户都不会容忍打电话回家进行“激活”。

最坏的情况是,该程序在没有网络的虚拟机中运行,因此始终是固定日期。

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

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

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

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

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


3
关于您的第一个要点,如果您的计算机不是运行代码的计算机该怎么办?也许某处有一台主机?现在确定这似乎是不可能的,但是从理论上讲这将是一个解决方案吗?(这是什么云计算?)
雪人

@mohabitar:这是一个人的问题。盗版与信任有关。没有计算机可以信任一个人。只有人才能信任人。
S.Lott

2
@mohabitar:云计算肯定会限制盗版,因为没有源代码可用于复制(除非存在网络安全漏洞)。但是,(a)许多任务完全不适合云计算,(b)在台式机上可以完成更多的任务(因此,台式机应用程序将胜过云计算)。
dbkk

@nohabitar:你的意思是像我在这里建议的那样?
Ben Voigt 2012年

1
@Ben Voight我试图扩展对这种故障模式的描述。示例:假设我正在将数据从科学仪器流式传输到硬盘。我的硬盘驱动器控制器中有硬件DRM。我以最大写入速率传输数据,DRM电路检测到它认为是科学数据流中的DRM签名的内容。现在它阻止了我。要么在线获取验证,要么就阻止我。喔喔喔喔 甚至更糟糕的是,要求MPAA来起诉我,让他们观看5美元的反盗版芯片,就像看电影一样。
Tim Williscroft 2012年

62

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

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

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


所有人都认为该问题有几个很好的答案,如果您阅读所有答案,它们在这里会得到很好的体现,我认为该答案以及提到SaaS的其他答案均包含实用的解决方案。尝试(OSS答案)可能是错误的,从理论上说服用户可能会更好,但这是业界目前正在使用的一种。
Encaitar 2014年

28

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

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

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


2
甚至那些最终都可能被黑客入侵。
FrustratedWithFormsDesigner

2
阿们@Frustrated。宇宙的基本定律是“生命与障碍->障碍最终被克服”或生命终结。

2
他们可以(加密狗):Cubase使用一个。hack是一种设备驱动程序,可加载虚拟USB设备,该虚拟USB设备告诉软件它想听的内容。
James Love

1
@FrustratedWithFormsDesigner,很好,谢谢您的提及。我扩大了答案,以进一步阐述这一点。
彼得Török

更重要的是,任何技术反盗版措施都会对某些用户造成负面影响。因此,问题是,您想惩罚您的付费客户多少,以伤害尚未付款的客户。当您的成绩说“一点也不”时,您没有太多选择。而且当它起作用时,它经常会吸引一些用户。以Steam为例-就像很多人一样,我完全拥有一个Steam游戏,而我永远也不会再购买。相反,我将等到破解的De-Steamed版本可用,因为Steam体验是如此糟糕。

28

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

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

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

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

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

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

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

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

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

是非技术性反盗版措施。MS有一个举报程序,如果您知道某个公司盗版了MS软件,例如安装了200个“家庭和学生”办公室的副本,则可以给他们打电话。然后,MS进入公司并对其进行审计,如果发现了盗版软件,就会对其进行起诉-这样可以从中分得一杯cut。

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


25

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


17

仅有一种“保护软件免受盗版的傻瓜和黑客攻击方法”

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

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


我将这个答案简称为:“开源”。
亚历克西(Alexey)2012年

4
Riiiight ...“恐龙公司”。然后假装通过夸大“服务合同”来增加价值?不用了,我更愿意为质量工程而不是绒毛服务合同付费。虽然我很喜欢,我们甚至赞助免费软件,但您的回答却因“恐龙”评论而失去了公信力。
DeepSpace101 2014年

1
这是唯一的方法吗?那么所有者服务器上运行的软件又如何呢?同样,如果我们接受免费软件是盗版的答案,那么我们将对那些接受免费软件的人进行修改,然后通过不将更改提供给他人来违反协议的行为进行处理。这不是自由软件的盗版吗?
斯蒂尔加

5
这是不正确的。盗版大多数免费软件非常容易-以与许可证不兼容的方式使用它。例如,马修·加勒特(Matthew Garrett)拥有悠久而辉煌的历史,曾帮助公司履行对busybox的GPL义务。
RAOF

1
@Orbling几乎任何东西都有可能被盗版;几乎所有许可证都有某种要求。您不能从BSD许可作品中删除版权标头。Apache许可证增加了重要的限制。甚至WTFPL都禁止在不更改名称的情况下更改许可证!另外,出售GPL软件也是完全有可能的。
RAOF

13

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

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

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

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

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

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


因此,您认为甚至〜尝试〜保护您的软件都浪费了时间和金钱?
雪人

4
@mohabitar:是的,这正是我的想法,因为它永远无法工作。据我所知,没有一个DRM系统在暴露于互联网之后已经持续了超过1个月的时间,然后才被广泛打开。微软每天在研发上花费的资金超过了您一生中看到的,而且他们做对了。哎呀,Windows 7甚至在发布之前就被破解了!那么,是什么让任何较小的开发人员认为他们有任何成功的机会呢?
梅森惠勒

2
小型开发商“站在他们一边”的一件事是,更少的海盗可能在意。如果没有人想要您的软件,则没有人会盗版该软件或为他人开发一个破解软件。这并不是一个好主意,但是如果您瞄准的是利基市场,则可以从实际角度考虑。
Steve314 2011年

3
@ Steve314:也许吧,但是如果您之后没有海盗,那就更浪费了。而不是尝试解决一个已经存在但无法很好解决的问题,而是将资源投入到解决一个不存在的问题上。
梅森惠勒

1
@ Steve314:哎呀,如果你有足够的了解它玩世不恭的情况下可以作出它的积极您的最佳利益,在这个特殊的情况下,不把任何复制保护。如果他们确实盗版并且将其告上法庭,则与销售相比,您可以获得更多的损害赔偿,那么为什么不对他们尽可能简化呢?;)
Mason Wheeler

9

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

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

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

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


1
不,它不起作用。看,有一种叫做间谍的东西,从时间的曙光开始就存在。另外,前员工或不快乐的人可能会泄漏它。否则可能会意外泄漏。在数百万种情况下它不起作用,并且有很多可能。
伊斯梅尔·卢塞诺

8

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

尝试为很少会被黑客入侵的少数人实施它,这是不值得的(或潜在的客户流失)痛苦。

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

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

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


7

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

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

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

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

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


5

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

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

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

这怎么工作?有什么技术手段可以“信任”一个人?

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

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


1
步骤:1.发明天网2.实施反盗版3.获利
永不编码

5

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

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

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

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


3
默默无闻的安全性绝对不是针对盗版的明智解决方案。
约翰内斯·鲁道夫

1
@约翰内斯·鲁道夫(Johannes Rudolph):掩盖您的安全并没有什么坏处。; p
Steven Jeuris 2011年

1
同意,它会吓跑一些黑客孩子,但对于真正想破解您软件的人来说,它更像是礼物包装。
约翰内斯·鲁道夫

不完善的安全措施是毫无价值的。只需要一个人即可破解软件,而原来的防盗版已经失败了。由于混淆是有代价的,因此几乎肯定是不值得的。
David Thornley,

5

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

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

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

你自己看:

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

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

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

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

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

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

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

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


因此,实际上,没有。但是理论上呢?有什么办法?
雪人

查看我的答案的更新。

2
加密无法解决任何问题,因为最终必须对其进行加密才能运行。被锁定为“黑匣子”的计算机不是通用计算机。游戏机和iPad浮现在脑海。将这类设备越狱到通用机器中的历史非常有趣。
Tim Williscroft 2011年

他们并没有真正尝试使其坚不可摧,您所说的“越狱”是一种营销策略,由公司本身发起并[秘密]支持。

2
这就是微软的风俗。这将阻止大多数合法用户安装免费软件。并让他们使用微软的东西。(无Firefox,无铬,无Apache,无互联网)
ctrl-alt-delor

4

只要付出努力,就可以实现几乎完美的复制保护……但这并不值得。几个著名的博客对此进行了 出色的讨论:具体地说,是最佳盗版率的概念。

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

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

因此,一定要采取一些反盗版保护措施,以确保合法销售不会被严重削弱。但是超过一定程度,没有任何经济诱因可以使反盗版措施变得更好。


4

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

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

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

复制成本

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

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

写作成本

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

使用成本

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

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

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

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


3

在当今世界上,计算机具有足够相似的能力,可以从网上下载软件并立即运行它,很难识别可以确定此计算机是否可以运行但不能运行的东西。

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

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

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


然后有人破解了加密狗(通常很容易;我曾经审核过其中一个系统),并产生了一个模拟它的驱动程序:P。
Ismael Luceno 2012年

2

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

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

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

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


3
在索尼移除OtherOS变得值得的几个月后,PS3就被破解了。iPhone通常会被破解。黑客技能的质量实际上并不重要,因为如果一个人可以破解某些东西,该技术就会在网络上传播。
大卫·桑利

微软之所以不实施“ TreacherousComputing”现在可能采取的措施,是因为它意识到这会损害他们的业务……
Ismael Luceno 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.