一些编程语言(如 Java 和 C#)在其标准库中包含加密包。其他如 Python 和 Ruby 让你下载第三方模块来做强加密。我认为这是出于法律原因;也许 Sun Microsystems 有足够多的律师,他们不怕被起诉,而 Guido van Rossum 感觉更脆弱。
但法律实际上对此有何规定?在这一点上,如果开源作者在他们的编程语言的标准库中包含强加密,他们会担心吗?如果是这样,那他们为什么不呢?如果不是,那么 Sun 和 Microsoft 将如何摆脱它。
一些编程语言(如 Java 和 C#)在其标准库中包含加密包。其他如 Python 和 Ruby 让你下载第三方模块来做强加密。我认为这是出于法律原因;也许 Sun Microsystems 有足够多的律师,他们不怕被起诉,而 Guido van Rossum 感觉更脆弱。
但法律实际上对此有何规定?在这一点上,如果开源作者在他们的编程语言的标准库中包含强加密,他们会担心吗?如果是这样,那他们为什么不呢?如果不是,那么 Sun 和 Microsoft 将如何摆脱它。
有两个问题:加密软件的进口和加密软件的出口。
一些国家(中国、俄罗斯、伊朗、伊拉克、缅甸等)限制其公民使用密码学。向这些国家/地区进口加密软件是违法的。
要在 JDK 中启用无限加密强度,您必须下载新的策略文件。如果您所在的国家/地区不允许导入加密,则那里的软件许可证不允许您使用该软件。这被称为“无限强度管辖政策”,下面我包括其 README.txt 的一部分。
其他国家,如美国,不想将加密软件出口到邪恶轴心。因此,将加密软件出口到这些国家可能是非法的。
美国的出口限制已大大放宽,可能是因为认识到将加密置于敌人手中是徒劳的,或者可能是为了鼓励使用已被 NSA 破坏的加密。但是,它们并没有完全消失。我不认为该软件可以被恐怖分子许可。
JDK 5.0 的 JCE 已通过美国出口审查流程。JCE 框架以及标准附带的 SunJCE 提供程序是可导出的。
JCE 架构允许通过管辖策略文件配置灵活的加密强度。由于某些国家/地区的进口限制,JDK 5.0 软件分发的管辖策略文件对可用的加密强度进行了内置限制。此下载包中的管辖权策略文件(包含此 README 文件的包)不包含对加密强度的限制。这适用于大多数国家。框架供应商可以创建包含管辖政策文件的下载包,这些文件指定适用于政府强制限制的国家/地区的加密限制。这些国家/地区的用户可以下载适当的捆绑包,JCE 框架将强制执行指定的限制。
建议您咨询您的出口/进口管制顾问或律师以确定确切的要求。
在美国,重要的法律是ITAR。
伊纳尔,但是……
Java 和 C# 是封闭源代码,因此在 EULA 中有条款或多或少地说“如果您在不应该使用的地方使用它,这不是我们的错”。他们还有律师团队来保护自己并执行该条款。
正如 OP 所说,大多数开源许可证没有类似的语言,即使有,他们也没有律师团队。
此外,从从美国出口加密软件是非法的日子开始,Python 和 PERL 比 Java 和 C# 更老。自从法律改变以来不添加密码学可能只是一个“一致性是好的”决定。