拜稜鏡計畫揭密之賜,大家開始注意NSA(美國國家安全局)的各種竊聽行為, 而一則(連我都是初次聽到、大吃一驚的)十四年前舊聞,最近也被重新挖出來討論:NSA透過微軟Windows佔領你的電腦: 1、 2。也請參考維基百科。更精確的說法可能是:你透過Windows所進行的任何加解密動作(包含你指定的跟應用軟體自動幫你做的),可能都要擔心會不會遭到NSA偷窺監聽。 目前已知 NSA 所力薦的 DUAL_EC_DRBG 加密技術(非 Windows 預設)確實藏有竊聽後門; 除此之外,其他部份似乎並沒有具體事證顯示 NSA 曾經啟動此機制。文長,也可略過歷史、技術與猜測,直接跳到結論。
資安公司cryptonym的Andrew Fernandes在1999年的CRYPTO ’99資安會議當中發表論文指出:自從 Win95 開始, 所有版本的 Windows 都內含一個名為 _NSAKEY 的可疑金鑰。[映射頁面:1,2,3]Windows的加解密系統稱為CAPI,任何應用軟體如果需要加解密服務(例如私密e-mail、網路銀行、臉書私密訊息…)理論上都應該請這個系統幫忙。許多不同的第三方廠商與(政府?)單位都有可能提供加解密演算法服務(CSP),但這些加解密演算法必須獲得微軟的簽章認證才能被放入CAPI系統以便服務上層的應用軟體。奇妙的是:Fernandes發現看守CAPI造橋/維修工事路線的那扇門,不只有微軟自身的KEY可以打開,還有另一把名為NSAKEY的金鑰也可以進入。(事實上Fernandes只提出KEY與NSAKEY的存在;至於它的功用,是我根據微軟官網、微軟Scott Culp的解說、及維基百科等資料補充上去的。下詳。)
Duncan Campbell是一位專門深度報導資安與公民隱私等等議題的記者。在Fernandes爆料之後,他進一步指出:早在1998年,英國密碼學家Nicko van Someren就已經發現這個位於ADVAPI.DLL的密門(現在新版的windows當中,對應的檔案是ADVAPI32.DLL),只是當時不知道這個密門有個這麼敏感的名字。[1、 2] 他並指出:在 CRYPTO ’99 會議現場,Windows開發者並沒有否認這個密門的存在,但卻拒絕討論它的功用,也不願意說明為何要暗地裡暪著用戶藏這個密門。Campbell還說:事實上Someren還指出有第三個門的存在,這讓微軟自己該部門的負責人 Brian LaMachia都大吃一驚。
2000年4月,Campbell在加拿大「電腦、 自由、 隱私」會議 CFP2000上發表文章,並提出這些疑慮。因為Campbell先前曾為歐盟議會執筆一份「通訊監控報告」,當時也正好要為公民隱私團體EPIC撰寫一份報告,所以現場微軟的Richard Purcell很重視他的意見,表示微軟願意與他溝通。 Purcell引線,讓Campbell向微軟資安回應中心的Scott Culp提問。Campbell的第一輪問題,得到Culp的部分回應;本文上述「造橋/維修工事路線」比喻,就是依據Culp的回應所摘要出來的。
微軟是一家美國公司,也因此必須遵守美國出口法規。我們不只要確認自身的產品符合出口法規,也被要求必須盡力確認像 CAPI 這樣 [內含第三方提供加解密演算法] 的技術也要符合美國出口法規。…這就是這些金鑰的作用。
…
美國商業部出口管理局(BXA)負責出口相關法規,而國家安全局(NSA)則提供加解密出口相關規定的技術評估。
…
微軟不會把我們自己的私鑰告訴任何第三方 — 包含這兩個金鑰。
…
當微軟 [用我們的金鑰] 認證一個CSP的時候,那只表示一件事:微軟確認 [第三方] 廠商所提供的 [BXA] 出口文件無誤。這並不表示我們確認過這個CSP的運作。有些CSP–例如微軟預設提供的CSP–確實經過第三方專家驗證,但這並不是 [用金鑰] 認證CSP的必要條件。同樣地,一個CSP被 [金鑰] 認證過,並不見得就表示那個CSP的管理者不能夠自行再修改那個CSP。有些CSP允許管理者提供更有效率的加解密函數 — 例如跟硬體加速卡結合。只要這些修改沒有影響到CSP的出口法規合法性,那個金鑰認證並不需要去阻止這樣的狀況。
Campbell繼續禮貌地追問更多細節,包含請求 Culp提供微軟當初送交NSA審核(是否符合進出口法規)的技術文件,甚至還幫Culp擬了一份說辭,請 Culp更正並填入時間點等等細節。但Culp表示:設計文件是微軟的智慧財產權;所有的規定都在 BXA的官網上;我已經回答你所有的問題了,再下去就很難談出什麼有意義的結果。於是,Campbell徵得Culp的同意之後,把以上的通訊內容刊資安網站 cryptome。而大眾也更加確認微軟與NSA之間有一些不可告人的關係。
Culp的回應當中,有一點聽起來很可疑:他說那個NSAKEY是個備用金鑰。Cryptome那份e-mail往來的最後面,補上Andrew Fernandes對此的質疑。他指出:有一種裝置叫做crypto-box,如果你用過這種裝置的話,就知道私鑰被竊不是唯一的風險,另一種風險是私鑰毀了。他分析 「備用金鑰」 跟一般資安專家推薦的「拆散(唯一的)私鑰給多位管理高層分開保管」兩種方式,最後他說:「你要說我嚴厲也好,但考量微軟超高規格的資安,如果最後的提案竟是說要以備用金鑰而非拆散私鑰的方式來保護 CSP 系統,那我會叫整個設計團隊回家吃自己。」也請見OSAll 對 Fernandes 完整的採訪。
以下是我的猜測:假設除了「NSAKEY 是微軟的備用金鑰」一事之外,微軟的Culp所說的其他一切都是真的。請回頭看Culp回應當中被我用粗體字標出來的部分。用蓋橋的比喻來說,Culp的意思就是說:微軟的金鑰認證只管制包商初次蓋橋申請一切合法;至於以後包商可能會再自行進出維修橋樑,微軟根本就不會再次認證確認修補後的橋樑的安全性。我認為那個NSAKEY不是微軟自己的金鑰,而是NSA的公鑰。每當NSA(包商)要進入「維修」橋樑時,微軟就用這把公鑰確認包商身份,如果確定是NSA,就放行,至於NSA進去做了什麼「維修」,按照Culp的說法,那並不屬於微軟的權責範圍。這個猜測完全符合Culp所說的這幾句話:「微軟根本就沒把自己的私鑰分享給NSA」、也「從來就沒用這把金鑰簽章過任何 CSP」,因為那把金鑰的功用根本就不是用來認證簽章CSP的啊!
結論:不論我的猜測是否正確,Culp的首度回應及拒絕後續回應,很明確地證實了:微軟與 NSA之間確實存有不可告人的秘密。另一個事實是:NSA長久以來一直企圖將加解密後門硬塞到各處去–其中之一是暗藏後門的亂數演算法(產生金鑰時會用到)DUAL_EC_DRBG,已被成功地塞入國家標準NIST及微軟的CAPI裡面。 [ 1、 2] Culp那段粗體字的話也講得很清楚:收錄在Windows裡面(也就是經過微軟簽章認證過)的加解密演算法,微軟並不保證其安全性。再補幾個新聞連結:
- 每當微軟發現 Windows的漏洞,會在修正問題之前第一時間先通知NSA–這不只意謂著NSA對Windows零時差漏洞免疫,也意謂著NSA經常可以用Windows的零時差漏洞主動出手攻擊
對手 (中國注意)、 盟友 (歐盟已經在注意 — 即使影響航班交流也不怕)、 及其他任何他看不爽或偷看了才爽的對象呃… 我是說… 恐怖份子。[ 1、 2] - 微軟的新產品Xbox One要求用戶 必須站在它的鏡頭前面 「校正」才能啟用、每二十四小時或更短的時間內必須連線上網、不可回收轉手出售或贈送給別人。為什麼要有這些不近情理、趕跑用戶的規定?是故意要襯托 Sony PS4 的讚嗎?如果你的目標是賣產品,這些豬頭規定完全說不通;但如果你的目標是協助NSA全面監控公民,這就很有道理了。還好後來微軟撤銷部分堅持。
- 最近被微軟買下的skype,到底有沒有被美國政府監聽?微軟聲稱skype內容有加密;但是被媒體追問細節時,又拒絕深入回答。也許它用的加解密服務,跟本文所談的CAPI有類似的後門?或是Chess 計畫讓NSA更加不費吹灰之力就長驅直入?
看過這些事證之後,這句話你還說得出口嗎?「Windows是安全的作業系統。」事實上,如果你夠在乎資訊安全,任何看不見原始碼的作業系統都不值得信任–就像任何行事不透明的政黨都不值得信任一樣–Culp那一句「設計文件是微軟的智慧財產權」很明確地幫所有[不提供原始碼的專屬軟體廠商]明白地告訴你:我的智慧財產權, 重於你的資訊安全。
老實說,就連我這麼不信任微軟、這麼相信陰謀論的人,如果十幾年前看到NSAKEY事件的新聞,大概也只是放在心上姑妄聽之而不太敢拿出來談–光是抗議IE-only跟docx專利這些明顯的問題都已經困難重重了。不過,在整理完這些連結之後,我甚至可以接受更進一步的陰謀論(如果有時間像這篇一樣詳細搜尋佐證資料的話)或許當初微軟真的是 NSA 一手扶養長大的?(<==還有其他更多陰謀論)。大家一再地把各種證據攤在桌上,臺灣各級政府及大學電算中心主任對於Windows所造成的資安問題,會不會終有反應呢?或者,他們會繼續無動於衷、繼續裝死、讓我們更加確認:宣稱要保護國家機密的國安修法其實根本就沒有真正的資安專家參與、讓我們更加確認力挺 Windows 的 CIO, 其服務的對象並不是僱主?該說的都說了;終究,我還是得領Office 證照卓越大學的薪水過日子,僱主不聽,我也就只能回家獨自安心地用著開放原始碼的Linux而已吧。有一天,當力挺Windows的資訊教授們終於覺醒時,對於Last Christmas – I gave you my heart這首歌也許終於會有點感覺:-)
Wham – Last Christmas (I Gave You My Heart)
(本文轉載自資訊人權貴ㄓ疑)