标准库中的加密合法性

时间:2008-09-18 18:25:32

标签: encryption programming-languages

某些编程语言(如Java和C#)在其标准库中包含加密包。其他如Python和Ruby让你下载第三方模块来进行强加密。我认为这是出于法律原因;也许Sun Microsystems有足够的律师,他们不怕被起诉,而Guido van Rossum感觉更脆弱。

但法律对此有何实际说法?在这一点上,如果开源作者在他们的编程语言的标准库中包含强加密,他们会有什么可担心的吗?如果是这样,那么他们为什么不呢?如果没有,那么Sun和微软如何逃脱它。

4 个答案:

答案 0 :(得分:7)

有两个问题:加密软件的输入和加密软件的导出。

一些国家(中国,俄罗斯,伊朗,伊拉克,缅甸等)限制其公民使用加密技术。 导入加密软件到这些国家/地区是违法的。

要在JDK中启用无限制的加密强度,您必须下载新的策略文件。如果您所在的国家/地区不允许导入加密,则该软件许可证不允许您使用该软件。这被称为“无限强度管辖政策”,下面我将其中包含部分README.txt。

其他国家/地区,如美国,不希望将加密软件导出到Axis of Evil。因此,加密软件导出到这些国家/地区可能是违法的。

美国的出口限制已经大幅减少,可能是因为认识到将加密技术从敌人手中夺走是徒劳的,或者可能是为了鼓励使用受到国家安全局影响的加密技术。但是,它们并没有完全消失。我不认为该软件可以被恐怖分子许可。

  

JDK 5.0的JCE已通过美国出口审核流程。   JCE框架以及SunJCE提供商   标准,可出口。

     

JCE架构允许灵活的加密强度   通过管辖区策略文件配置。因为   一些国家的进口限制,管辖政策   使用JDK 5.0软件分发的文件已内置   对可用加密强度的限制。管辖权   此下载包中的策略文件(包括此包   自述文件)对加密强度没有限制。   这适用于大多数国家。框架供应商可以   创建包含管辖区策略文件的下载包   指定适用于国家/地区的加密限制   哪些政府要求限制。这些国家的用户   可以下载一个合适的包,JCE框架会   执行指定的限制。

     

建议您咨询出口/进口控制律师或   律师确定具体要求。

答案 1 :(得分:2)

在美国,重要的法律是ITAR

答案 2 :(得分:2)

快速谷歌出现了维基百科文章。

http://en.wikipedia.org/wiki/Export_of_cryptography

但截至目前,似乎“不需要重新发明轮子”是正确的。

答案 3 :(得分:0)

IANAL,但是......

Java和C#是封闭源代码,因此EULA中的术语或多或少说“如果你在某个地方使用它,那不是我们的错”。他们还有律师团队来保护自己并执行该条款。

大多数开源许可证没有类似的语言,即使是那些,也没有律师团队,就像OP所说的那样。

此外,Python和PERL比Java和C#更早,从非美国出口加密软件的那些日子开始。由于法律的改变,不加密码术可能只是一种“一致性好”的决定。