NSAKEY 與美式霸權
經常出國的朋友,大概都知道什麼是 TSA 安全鎖。它最大的特色就是「不安全」,因為美國運輸安全管理局 (TSA) 配備的鑰匙,可以隨時打開它。TSA 在 2003 年更警告如果不使用 TSA 認證的鎖,美國海關就有權撬開行李檢查。你可能會說大不了不去美國就是,但糟糕的是 TSA 鎖已經日漸成為行李箱標準配置,令美國擁有窺看全球任何一件行李的能力。你可能會說大不了不放貴重品在行李就是,但你有想過美國其實也有隨時窺看全球任何人的電腦的能力嗎? NSAKEY 便是最好的證明。
我們每天使用的 Windows,其實就是將電腦變成間諜工具的罪魁禍首。從 Windows 95 開始,所有版本的 Windows 都內含一個名為 NSAKEY 的可疑金鑰。此事一直懸而未決,微軟至今仍未能提供令人滿意的解釋。只是最近美國國家安全局 (NSA) 的稜鏡計畫曝光,大家才再次拿出來討論。
最初揭發這個問題的,是英國密碼學家 Nicko van Someren。他在 1998 年發現 Windows 95 中有一個負責處理加密功能的檔案 ADVAPI.DLL(新版本 Windows 上對應的檔案已改名為 ADVAPI32.DLL)的舉動並不尋常,經解拆後他發現當中含有兩組金鑰,其中一組是微軟的數位簽章,另一組的所屬和用途均不明。及後資訊安全公司 Cryptonym 首席科學家 Andrew Fernandez 從 Windows NT4 Service Pack 5 開發者留下的程式碼標籤中,發現這兩組金鑰的真正名字分別是 MSKEY 和 NSAKEY。
NSAKEY 的名字引發了不同的猜測,微軟最初拒絕解釋 NSAKEY 的功用,但為免事件鬧大,最後還是發表了聲明澄清。聲明中微軟表示 MSKEY 用來驗證由第三方廠商開發的加密服務模組 (CSP) 的合法性,但由於要確認 CSP 符合美國軟體出口法,而 NSA 是負責審查所有美國加密技術出口申請的機構,所以金鑰在設計時才會被起名為 NSAKEY。但為什麼 MSKEY 和 NSAKEY 需要同時存在?微軟表示 NSAKEY 是 MSKEY 的備份,用於「災難恢復」。但你會把原來的鑰匙和備份鑰匙放在同一個地方嗎?
就假設 NSAKEY 真的是 NSA 種下的後門好了,對用戶會有什麼影響呢?微軟表示最大的可能性,是「被替換或加載不良的 CSP」。NSA 可以在使用者不察覺之下追加新的加密服務,這樣已經夠糟糕了吧?但更糟糕的是,微軟竟表示加載 CSP 的工序「必須要在物理上直接存取電腦才可做到,不可能通過網路更新。」萬一要對 CSP 作出修正,難道要在每一台 Windows 上直接修改才能做到嗎?究竟微軟是將一般市民當作了傻子,還是希望地球上所有 IT 管理人員都變成傻子呢?採用開源技術才是真正解決問題之道,這正是 Linux 得以繼續存活的理由。
主筆
麥經倫
2013年9月