某些编程语言(如Java和C#)在其标准库中包含加密包。其他如Python和Ruby让你下载第三方模块来进行强加密。我认为这是出于法律原因;也许Sun Microsystems有足够的律师,他们不怕被起诉,而Guido van Rossum感觉更脆弱。
但法律对此有何实际说法?在这一点上,如果开源作者在他们的编程语言的标准库中包含强加密,他们会有什么可担心的吗?如果是这样,那么他们为什么不呢?如果没有,那么Sun和微软如何逃脱它。
答案 0 :(得分:7)
有两个问题:加密软件的输入和加密软件的导出。
一些国家(中国,俄罗斯,伊朗,伊拉克,缅甸等)限制其公民使用加密技术。 导入加密软件到这些国家/地区是违法的。
要在JDK中启用无限制的加密强度,您必须下载新的策略文件。如果您所在的国家/地区不允许导入加密,则该软件许可证不允许您使用该软件。这被称为“无限强度管辖政策”,下面我将其中包含部分README.txt。
其他国家/地区,如美国,不希望将加密软件导出到Axis of Evil。因此,将加密软件导出到这些国家/地区可能是违法的。
美国的出口限制已经大幅减少,可能是因为认识到将加密技术从敌人手中夺走是徒劳的,或者可能是为了鼓励使用受到国家安全局影响的加密技术。但是,它们并没有完全消失。我不认为该软件可以被恐怖分子许可。
JDK 5.0的JCE已通过美国出口审核流程。 JCE框架以及SunJCE提供商 标准,可出口。
JCE架构允许灵活的加密强度 通过管辖区策略文件配置。因为 一些国家的进口限制,管辖政策 使用JDK 5.0软件分发的文件已内置 对可用加密强度的限制。管辖权 此下载包中的策略文件(包括此包 自述文件)对加密强度没有限制。 这适用于大多数国家。框架供应商可以 创建包含管辖区策略文件的下载包 指定适用于国家/地区的加密限制 哪些政府要求限制。这些国家的用户 可以下载一个合适的包,JCE框架会 执行指定的限制。
建议您咨询出口/进口控制律师或 律师确定具体要求。
答案 1 :(得分:2)
在美国,重要的法律是ITAR。
答案 2 :(得分:2)
答案 3 :(得分:0)
IANAL,但是......
Java和C#是封闭源代码,因此EULA中的术语或多或少说“如果你在某个地方使用它,那不是我们的错”。他们还有律师团队来保护自己并执行该条款。
大多数开源许可证没有类似的语言,即使是那些,也没有律师团队,就像OP所说的那样。
此外,Python和PERL比Java和C#更早,从非美国出口加密软件的那些日子开始。由于法律的改变,不加密码术可能只是一种“一致性好”的决定。