我正在开发一个 python GUI 应用程序并计划调用与我的程序一起打包的外部程序来进行一些加密。我从 OpenSSL 之类的网站上注意到,这些网站谈论有关加密软件的出口法律。
如果我无法将二进制形式的加密软件与我的应用程序打包在一起,我该如何解决这个问题才能仍然能够加密我的程序的输出?
我正在开发一个 python GUI 应用程序并计划调用与我的程序一起打包的外部程序来进行一些加密。我从 OpenSSL 之类的网站上注意到,这些网站谈论有关加密软件的出口法律。
如果我无法将二进制形式的加密软件与我的应用程序打包在一起,我该如何解决这个问题才能仍然能够加密我的程序的输出?
您需要谨慎选择目标受众,尤其是当您与 ITAR(国际武器贸易条例)共舞时。确定您可以合法地将产品出口到的国家/地区,然后至少说其他国家/地区的人不能下载它。您可能需要做更多的事情才能在您的国家/地区保持合法。
从法律上讲,这已经进入了深渊,您需要与知识渊博的律师讨论此事。如果你住在芬兰,你可能可以做任何你喜欢的事情。如果你住在美国,请小心。如果你住在法国,要非常小心。
更新:有时我觉得自己老了,其他时候我证明了这一点。在没有检查当前 ITAR 对强密码学的处理方式的情况下,我给出了一个至少已经过时 12 年的答案。在 1997 年之前,从/到任何国家/地区出口任何类型的加密货币都是一件非常冒险的事情,并且会受到严厉的法律处罚。在法国尤其如此,法国一度禁止所有非政府机构使用加密,甚至是非常弱的 40 位 DES。尽管法国有所放松,但他们似乎仍然落后于大多数其他发达国家:a)他们的公民拥有有效的隐私权,b)在一个 4096 位 RSA 的世界里,他们无能为力。在整个网络上都可以使用。
ITAR 对加密的立场在 96-97 年发生了变化。尽管情况总体上有所改善,但出口/进口加密货币仍然存在障碍。在您走得更远之前,您应该彻底熟悉您所在国家/地区有关加密货币的法律——您可能会对您的发现感到震惊/悲伤。即使是美国也对你可以向谁以及以何种形式出口哪种加密货币有一些限制。
一些国家,特别是法国和英国,已经制定了(并且似乎仍然以某种形式或其他形式)法律,可以要求软件供应商托管其客户使用的密钥和/或提供进入系统的后门。政府想看看你在说什么。
底线:好的加密让政府感到紧张,关于什么是合法/非法的法律无处不在。尝试准确了解加密在您提议的产品/项目中所扮演的角色,并根据他们所在国家/地区对该主题的立场确定用户是否可以选择加入/退出。
我经常看到人们依赖于加密部分的外部包:您可以在没有加密包的情况下打包您的软件,并告诉您的用户他们必须从原始发布者处下载并安装加密部分。
这有效地将加密部分的责任从您转移到您的用户。