簡介
開源開發的最大優勢之一是它實作了整個世界的協作。然而,由于開源開發是一項全球性的活動,它必然涉及跨國界提供可用的軟體。一些國家的出口管制條例,例如美國,可能需要采取額外的步驟來確定一個開源項目符合當地條例規定的義務。
Linux基金會最近釋出了一份關于開源社群如何詳細解決這些問題的白皮書,點選此處可下載下傳。本文概述了開源社群應該了解并遵循的與美國出口管制要求和開源加密相關的一般性原則。
美國和其他國家的出口管制
《出口管理條例》(Export Administration Regulations)(以下簡稱“EAR”)是美國聯邦政府限制出口的主要條例,由 美國商務部(US Department of Commerce)下的 産業與安全局(Bureau of Industry and Security)(以下簡稱“BIS”)釋出并定期修訂。《出口管制條例》适用于所有“受《出口管制條例》管制的物品,并可管制這些物品的出口、再出口或(在國内)轉讓。”
EAR下“出口”的定義較為寬泛。出口不僅包括從美國境内向境外輸送實物産品,還包括其他行為,例如向在美國居住的非美國公民或非美國合法永久居民傳送技術,以及向美國境外人員提供用于電子傳輸的軟體。
這 EAR 似乎給開源社群敲響了警鐘,但是好消息是,公開釋出給全世界享用的開源技術是不受制于 EAR 的。是以,開源至今仍然是一個最為便利的全球協作的模式。
為了符合 EAR 的要求,如果開源技術是公開的,不受進一步傳播的限制,那麼它是“已釋出的”,是以“不受制”于 EAR。
除美國外,歐盟在其出口管制條例中也有類似規定。
什麼樣的開源項目不受 EAR 和歐盟出口限制?
所有。Linux 基金會以及與我們合作的項目社群制作的開源軟體均已釋出,并且在沒有任何傳播限制的前提下供公衆通過公開管道擷取。
以下情形(但不僅限于此)不受到 EAR 限制,因為“開源”“已釋出”:
- 已公開釋出的開源軟體不受制于 EAR
- 已公開釋出的開源規範不受制于 EAR
- 已公開釋出的,說明硬體設計的開源文檔不受制于 EAR
- 已公開釋出的開源軟體二進制不受制于 EAR
然而,若項目涉及加密技術,則開源社群可能需要采取一些其他的措施以滿足 EAR “已釋出”的要求。
使用加密技術的項目
EAR 規範了特定加密軟體和技術的出口。“加密軟體”的定義非常廣泛,并可能包括僅激活或啟用其他軟硬體産品的加密功能的軟體。
但是,與已釋出的軟體不受制于 EAR 一樣,使用加密技術的軟體即如符合以下兩個條件,則不受制于 EAR:(1)該源代碼是“可公開擷取”的,以及(2)已向第742.15(b)部分所提供的電子郵箱位址發送了郵件以示通知。
為符合第一項豁免要求,“可公開擷取”指的是在 EAR 法下“已釋出”的定義,這包括通過公共站點進行釋出(即公開傳播)。隻要完全公開的開源軟體項目達到該标準,則應當視為通過了衡量标準的第一部分要求:如果項目的源代碼可在網際網路上公開擷取,則應被視為“可公開擷取”。
為滿足上述衡量标準的第二部分要求,還需要向兩個指定的郵箱位址發送郵件(一個是 BIS 的郵箱位址:[email protected],另外一個是 國家安全局(National Security Agency)(簡稱“NSA”)的郵箱位址:[email protected])。郵件内容需要包括可公開擷取的源代碼的 URL 位址(或源代碼本身)。如 URL 或源代碼發生任何變更,則需要再次以郵件形式通知上述郵箱位址。
當該可公開擷取的加密源代碼通過了上述兩項衡量标準後,那麼相應的目标代碼也将不受 EAR 管轄。
Linux 基金會的所有項目源代碼,包括加密軟體,均可公開擷取,我們也已經提供了如上所述的電子郵件通知。我們也在 LF 官網上公開了上述電子郵件通知的副本。是以,Linux 基金會的項目源代碼及對應的物件代碼均不受制于 EAR 關于加密的限制。
請注意,上述情況隻适用于開源項目本身。如源代碼并未公開,修改了項目代碼的下遊分銷商或其衍生産品的下遊分銷商仍然需要自行評估是否符合 EAR 的規定(和其出口的其他軟體一樣)。
除了使用加密技術的項目外,EAR 還在 2020 年 1 月為采用神經網絡驅動的地理空間分析教育訓練的系統增加了一項新法規。與其他公開提供的開源技術一樣,公開釋出的開源軟體,即使是在神經網絡驅動的地理空間分析教育訓練這一類别中,也不會受到 EAR 的限制。請參閱我們的完整白皮書了解更多說明。
開源軟體社群的最佳實踐
雖然開源項目不受 EAR 限制,但我們已經學習或者掌握了一些可能對所有開源社群有所助益的實踐,都與出口管理條例相關。
我們經常用“公開”這個詞來形容許多事情:開源許可、公開和透明的讨論、公開的社群、公共智庫裡儲存的可公開擷取的源代碼。對于開源社群來說,“公開”似乎是顯而易見的做法,但以下是一些社群需要考慮的具體建議。
開放,公開
首先,社群應該盡量保持技術對話的開放和公開。如果私人技術對話在社群内發生,這是正常的,但建議将社群決策和結果公開。對于我們的項目來說,使資訊公開透明是很重要的,因為技術或技術資訊的私人交流可能不符合 EAR 的“公開可得”标準。
出現的一個問題與在安全披露過程中交換與安全問題有關的資訊有關。作為一種最佳實踐,項目可能會考慮在修複程式可用時公開此類交換,而不是将此資訊限制在一個機密的公開清單中。
向 BIS 和 NSA 發送加密通知
如果您的開源軟體項目實施或使用屬于 ECCN 5D002 規定的加密功能,那麼根據 EAR 的要求,您将需要向 BIS 和 NSA 發送加密通知。EAR 的具體要求如下:
- 發送電郵至 [email protected] 及 [email protected]。如果您的項目是LF的項目,并且您的通知沒有出現在我們的出口管理頁面上,請發送通知至 [email protected]。
- 郵件應該包括含有可公開擷取加密源代碼的網站位址,或源代碼本身。
- 如果您提供的是網站位址,那麼每次更換網站位址時,您都必須通過電子郵件發送通知,但是您不需要通知有關源代碼本身的更新或者變更。
- 如果您提供的是源代碼本身,那麼每當加密功能進行更新或者變更後,您都必須提供最新的源代碼。
Linux 基金會建議将其他的一些細節作為最佳實踐:
- 為了加強透明度和展現合規性,将送出給 BIS 和 NSA 的通知公開化。這也有助于解決下遊使用者對社群是否發送了通知的疑惑。通過公開通知的方式,您可以避免這些困擾。
- 附加聯系方式和負責項目的法人實體的名稱。
- 設計一個保留中期至長期證據的系統(證明發送給 BIS 和 NSA 的通知電郵實際上已經送達)。因為如果将來發生問題,或者如果個人無法通路該“已發送”郵箱,僅依靠“已發送”郵箱記錄不是個好辦法(例如發件人跳槽了)。
此外,如果您正在以目标代碼的形式分發公開可用的加密軟體,那麼您還需要確定它也以源代碼的形式公開可用。
如果必須以二進制或目标代碼形式分發加密軟體,那麼就必須确定相應的源代碼是可公開擷取的。最簡便的方式就是自主将該加密軟體版本的源代碼公開,作為項目本身的源代碼。(事實上,根據适用的開源許可,這對遵守開源許可可能也是必要的,或者至少是有用的!)
除人工稽核外,還有一些性能各異的掃描工具(例如 Fossology 和 exportctl),可以掃描源代碼并探測加密功能的應用。沒有一種自動掃描工具能夠完美地檢測出所有的應用,但這些工具可能有助于識别大型代碼庫中的加密軟體。