可信计算

**可信賴運算 / 可信用計算（Trusted Computing，TC）** 是一項由可信任運算組織（Trusted Computing Group，前稱為 **TCPA**）推動和開發的技術。這個術語來源於可信系統（可信系統），並且有其特定含義。從技術角度來講，「可信的」（Trusted）未必意味著對使用者而言是「值得信賴的」（Trustworthy）。確切而言，它意味著可以充分相信其行為會更全面地遵循設計，而執行設計者和軟體編寫者所禁止的行為的概率很低。

這項技術的擁護者稱它將會使電腦更加安全、更加不易被病毒和惡意軟體侵害，因此從終端使用者角度來看也更加可靠。此外，他們還宣稱可信賴運算將會使電腦和伺服器提供比現有更強的電腦安全性。而反對者認為可信賴運算背後的那些公司並不那麼值得信任，這項技術給系統和軟體設計者過多的權利和控制。他們還認為可信賴運算會潛在地迫使使用者的線上互動過程失去匿名性，並強制推行一些不必要的技術。最後，它還被看作著作權和著作權保護的未來版本，這對於公司和其他市場的使用者非常重要，同時這也引發了批評，引發了對不當審查（censorship）關注。

很多著名的安全專家已經表明了對可信賴運算技術的反對，因為他們相信它將給電腦製造商和軟體作者更多限制使用者使用自己的電腦的能力。有一些人關注的則是可信賴運算可能（或者本身就是要）起到限制自由軟體市場、私有軟體開發和更一般化的整個 IT 市場競爭的作用。有些人，如理察・斯托曼，因此給它起了一個惡名 —— **背叛的計算**（Treacherous computing）。

微軟在 Windows Vista 中引入了可信計算。

## 信任的本質

與常規的_信任_的定義不同，安全專家將可信系統定義為：為保證較大系統的安全，而**必須**被信任的系統。例如，美國國防部將可信系統定義為：可以違反安全策略的系統；也就是說 _「一個因為你沒有選擇而必須信任的系統」_ 。密碼學家 Bruce Schneier 認為「 **『可信』電腦並不意味著它是值得信賴的**」。在這些定義下，硬碟控制器的使用者必須信任它，相信它在任何情況下都能夠誠實地將資料儲存到磁碟；安全網站的使用者必須_信任_它是安全的，因為使用者自己無法驗證。在安全領域的說法中_信任_總是一種折衷或者缺陷；有時根本無法避免，但這不是大家希望的。再作一個比喻，你最好的朋友無法共享你的醫療記錄，因為他沒有這些醫療記錄。而另一方面，你的醫生卻可以共享。有可能你信任自己的醫生並且認為他是一個好人；也有可能你們的鎮上只有一個醫生，而你只好信任他。

關於可信賴運算的主要爭論在於_信任_本身的含義。可信賴運算集團將**技術信任**描述為 _「如果一個實體的行為總是按照預期的方式和目標進行，那它就是可信的」_ 。批評者將_可信系統_描述為一個你「被迫信任」的系統，而非是真正值得信賴的。

也有批評者認為，並非總是能夠檢驗可信賴運算依賴的硬體 —— 可信平台模組，它是平台中最終的核心信任根所在硬體系統。如果實現有問題，它將給整個平台完整性及其保護的資料帶來安全威脅。可信賴運算集團的規範是開放的，任何人都可以審查，然而廠商實現的最終商業產品卻不一定會接受這樣的審查。

最後一個問題就是，密碼學的進步非常快，像可信賴運算這樣用硬體實現的演算法可能無意中造就了未來的廢棄物。

儘管贊成者聲稱_可信賴運算_增進了安全性，而批評者則反擊稱不僅安全得不到增強，_可信賴運算_還可能推動強制數字權限管理（DRM），傷害到使用者的隱私，並對使用者強加其他的限制。與_可信賴運算_相比，安全計算主要關注匿名性。_安全計算_的宣揚者聲稱，額外的安全性可以通過其它的方式獲得，而不必禁止使用者成為超級使用者獲得電腦的控制權。

可信賴運算的贊成者辯稱，隱私問題在現有的規範中已經解決 —— 可能是對早期版本規範受到的批評而做的相應處理。終端使用者對於他們的可信平台模組的使用方法有很多種，然而，第三方可能強制使用一些特定的選項，從而無法體現使用者選擇的好處。

## 核心概念

可信賴運算包括 5 個核心技術概念，在一個完全可信的系統中它們都是必須的。

1. 認證金鑰
2. 安全輸入輸出
3. 記憶體封鎖 / 受保護執行
4. 封裝儲存
5. 遠端證明

### 安全輸入輸出（I/O）

安全輸入和輸出（I/O）指的是電腦使用者與他們認為與之進行互動的軟體間的受保護的路徑。在當前的電腦系統中，惡意軟體有很多途徑截取使用者與軟體行程間傳送的資料。例如，鍵盤監聽者（Keyboard Logger）和螢幕截取者（Screen Scraper）。安全 I/O 表現為受硬體和軟體保護和驗證的信道，採用校驗值來驗證進行輸入輸出的軟體沒有受到篡改。將自身注入到信道間的惡意軟體會被辨識出來。

儘管安全（I/O）提供針對軟體攻擊的防護，但它未必提供對基於硬體的攻擊的防護，例如物理插入使用者鍵盤和電腦間的裝置。

### 記憶體封鎖

記憶體封鎖擴充為當前的記憶體保護技術，提供了對記憶體敏感區域（如放置金鑰的區域）的全面隔離。甚至作業系統也無法存取封鎖的記憶體，所以其中的資訊在侵入者取得了 OS 的控制權的情況下仍然是安全的。

### 封裝儲存

封裝儲存從當前使用的軟體和硬體組態衍生出的金鑰，並用這個金鑰加密私有資料，從而實現對它的保護。這意味著該資料僅在系統擁有同樣的軟硬體組合的時候才能讀取。例如，使用者在他的電腦上儲存自己的日記，不希望其他的程式或電腦讀取。這樣一來，病毒可以尋找日記，讀取它，並將它發給其他人。Sircam 病毒所作的與此類似。即使日記使用了口令保護，病毒可能執行字典攻擊。病毒還可以修改使用者的日記軟體，使用者使用軟體打開日記時通過受篡改的軟體可能洩漏其中的內容。使用封裝儲存，日記被安全地加密，只有在該電腦上的未被修改的日記軟體才可以打開它。

### 遠端證明

遠端證明使得使用者或其他人可以檢測到該使用者的電腦的變化。這樣可以避免向不安全或安全受損的電腦傳送私有資訊或重要的命令。遠端證明機制通過硬體生成一個憑證，聲明哪些軟體正在執行。使用者可以將這個憑證發給遠端的一方以表明他的電腦沒有受到篡改。

遠端證明通常與公鑰加密結合來保證發出的資訊只能被發出證明要求的程式讀取，而非其它竊聽者。

再用上面日記的例子，使用者的日記軟體可以將日記傳送給其他的機器，但是只能發給那些能夠證明所執行的是一份安全的日記軟體。與其他的技術結合起來，遠端證明可以為日記提供一個更加安全的路徑：通過鍵盤輸入以及在螢幕顯示時受到安全 I/O 的保護，記憶體封鎖在日記軟體執行時保護日記，而封裝儲存在它儲存到硬碟的時候保護它，並且遠端證明保護它在其它電腦使用時不受非授權軟體的破壞。

## 爭議問題

可信賴運算的反對者指出：保護電腦不受病毒和攻擊者影響的安全機制，同樣會限制其屬主的行為。他們指出這將使得強制性壟斷成為可能，從而會傷害那些購買可信賴運算機的人們。

劍橋大學的密碼學家 Ross Anderson 非常關切的一個問題是 _"可信賴運算可能支援遠端審查 [...] 一般而言，支援可信賴運算的電腦系統的屬主所建立的數字物件將始終受到其控制，而非那些控制數字物件儲存在的電腦的人 [...] 所以，如果有人寫了被法庭認定為誹謗的文章，作者將被迫進行審查 — 並且如果作者拒絕，編寫文書處理軟體的公司可能被命令刪除該文章。在這種可能之下，我們可以預料可信賴運算將被用於壓制包括色情文學到對政治領導人的批評在內的任何事"_

他進一步講到：

　
: > [...] 軟體提供者可以使得你很難轉而使用其競爭者的產品。簡單而言，Word 可以加密你的所有文件，而金鑰只能由微軟的產品存取；這意味著你只能使用微軟的產品讀取，而非其它競爭者的文書處理軟體。
> 
>

　
: > [...] 對微軟而言最重要的好處在於可信賴運算可以大規模增加從微軟產品（如 Office）轉向使用其競爭產品（如 Open Office）的代價。例如，現在如果一個律師事務所從 Office 轉向使用 OpenOffice，那它將不得不安裝軟體，培訓雇員並轉換現有的檔案。在 5 年內，一旦他們收到來自於數以千計的客戶的可信賴運算保護的文件，他們將不得不從每個客戶處獲得許可（以簽章的數位憑證的形式），以將這些檔案遷移到新的平台。律師事務所實際上根本不想這樣做，所以他們被束縛得更深，這又使得微軟可以大規模提高價格。
> 
>

Anderson 總結道

> 最根本的問題在於控制可信賴運算基礎設施的人將取得巨大的權力。擁有這樣的權力就像是可以迫使所有人都使用同一個銀行、同一個會計或同一個律師。而這種權力能以多種形式被濫用。
> 
> 

### 使用者不能更換軟體

在日記的例子中，封裝儲存保護日記不受病毒等惡意程式的傷害，但它無法區分惡意程式與有用的程式（如將日記轉換為新格式的程式或提供對日記進行尋找新方法的程式）。如果使用者希望使用另外的日記程式，他將發現新日記程式不可能打開已有的日記，這樣，使用者就被「釘選」在舊的程式中。同樣，使用者如果未得到日記軟體的允許，他將無法讀取或修改自己的日記。如果他使用的日記軟體沒有編輯或刪除的選項，那就無法修改或刪除已有的日記條目。

遠端證明可能導致其他的問題。目前，儘管有些網站可能（故意）被格式化為僅有特定的瀏覽器能夠解讀其編碼，但網站仍然可以使用多種 WEB 瀏覽器存取 -- 有些瀏覽器可以通過類比其他瀏覽進行存取。例如，假設微軟的 MSN 拒絕為非微軟瀏覽器提供頁面服務，使用者可以通過讓瀏覽器類比微軟的瀏覽器來實現存取。遠端證明使得這樣的類比不可能，因為 MSN 可能要求提供一個證明使用者正在實際執行一個 IE 瀏覽器。

### 使用者不能控制他們接收的資訊

可信賴運算常受到的一個批評就是，封裝儲存可能阻止使用者將封裝的檔案移動到新的電腦。這個限制可能來自於糟糕的軟體設計或內容提供者故意實施的限制。TPM 規範的遷移部份要求一些特定類型的檔案只能移動到採用相同安全模型的電腦上。如果一個舊型號的晶片不再生產，就根本不可能將資料轉移到新電腦；那些資料將與舊電腦一同長眠。

此外，批評者還注意到 TPM 可以強制使用者接受間諜軟體，例如強制音樂檔案只能在那些在播放時會通知唱片公司的機器上播放。同樣一個新聞雜誌可能要求使用者證明使用特定的閱讀器後，才允許下載他們的文章。閱讀軟體可能在雜誌網站上的版本變化後，禁止閱讀最初的新聞。這種最新版本限制的實施將允許雜誌通過修改或刪除文章來「重寫歷史」。即使使用者將最初的文章儲存在自己的電腦中，閱讀軟體發現網站變化後，也可能拒絕閱讀請求。

### 喪失網際網路上的匿名性

由於裝有可信賴運算裝置的電腦可以唯一證明自己的身分，廠商或其他可以使用證明功能的人就能夠以非常高的可能性確定使用者的身分。

這種能力大小要視使用者提供自願或間接提供身分資訊的機會而定。一個常見的取得資訊途徑就是使用者購買電腦後就註冊個人資訊。另外一個常見的途徑是使用者為廠商的會員網站提供身分資訊。

可信賴運算的贊成者指出，它可以使線上購物和信用卡交易更安全，但這可能導致電腦使用者失去存取網際網路時希望擁有的匿名性。

批評者指出這可能導致對政治言論自由，新聞記者使用匿名資訊源，揭發政治部落格，以及其他公眾需要通過匿名性來防止報復的領域，產生抑制作用。

作為對隱私問題關注的回應，研究者開發了直接匿名證明（Direct anonymous attestation，DAA），它允許客戶端實施證明，同時限制需要向驗證者提供的資訊。

### 建議的屬主多載

所有這些問題源自於，可信賴運算平台對程式提供的保護是針對包括屬主在內所有事物的。一個簡單的解決方案就是允許電腦的屬主繞過這些保護。這被稱作_屬主多載（owner override）_ ，剛剛被提出作為規範的修訂內容。

啟用屬主多載將允許使用安全的 I/O 路徑來確保屬主通過物理接觸（physical present）操作，進而繞過保護。這樣的多載將允許通過遠端證明表明當前的環境符合使用者的規範，例如建立憑證表明 IE 正在執行，而實際上是另外的瀏覽器在執行。這樣不是通過阻止軟體修改，而是通過遠端證明來表明軟體受到了未經屬主授權的修改。

一些可信賴運算集團的成員認為屬主多載對可信賴運算計劃是一個威脅。他們認為屬主多載傷及對遠端電腦的信任，因為遠端證明並未集中實施。屬主多載提供了為電腦屬主提供了安全和實施的好處，但並未阻止其他屬主在自己的電腦上放棄規則和限制。在這樣的場景下，無論是日記、DRM 音樂或聯合的專案的資料，一旦被傳送到其他人的電腦，並且這些電腦由他人控制安全，那這些電腦將可以對這些資料進行複製。

可信賴運算的一個重要前提是屬主不可信任。這裡假定使用者將或者由於疏忽或者故意為之，來試圖破壞自己的系統。例如，IT 管理員無法確保筆記型電腦將執行一個特定的作業系統。

### 關於實用性的質疑

同樣受到激烈的爭論還有可信賴運算所基於的一些假設在「現實世界」中一定程度上是不實際的，使用者可能會發現在常規層面上使用屬主多載是非常必要的，或者根本不願意使用這些功能，儘管軟體廠商堅持要求使用。

所有的硬體組件，包括可信賴運算硬體本身，都可能發生故障，或者被升級和更替。由於存在以下可能性 -- 不可逆轉得喪失對自己資訊的存取或者喪失多年的工作成果而根本沒有恢復的機會，使用者可能會認為這無法接受。有些針對資訊使用和發布或者強制資訊在未來很長一個階段可靠地儲存的限制，使得可信賴運算技術的很多預期的套用根本不可行。將屬主或者使用限制基於特定部份的電腦硬體的可驗證標識，對消費者而言可能並不足夠 —— 如果它壞了怎麼辦？

## 支援資訊

* 從 2004 年開始，主要的電腦廠商就開始銷售包含可信平台模組以及相應 BIOS 支援的機器（一般是筆電）。
* Linux kernel 從版本 2.6.13 開始已經包含了對可信賴運算的支援，並且現在已有許多 Linux 專案開始支援可信賴運算。在 05 年 1 月，Gentoo Linux 的成員「crypto herd」宣稱他們準備支援可信賴運算，特別是支援可信平台模組。 同時，也有符合 TCG 規範的 Linux 開源軟體協定棧 ——TrouSerS （頁面存檔備份，存於網際網路檔案館）。
* 有些具有有限的可信賴運算功能產品在目前版本的 Microsoft Windows 下也有第三方的實現。
* BitLocker 支援 TPM。
* TrustKernel （頁面存檔備份，存於網際網路檔案館）的 T6 安全作業系統利用 ARM TrustZone 技術實現了一個軟體級別的 TPM 功能。

## 參考文獻

## 外部連結

* 可信賴運算規範標準制定集團 （頁面存檔備份，存於網際網路檔案館）
* ' 可信賴運算 ' 常見問題，繁體中文版 — 劍橋大學教授 Ross Anderson 反對可信賴運算的 FAQ，中文版。
* ' 可信賴運算 ' 常見問題（頁面存檔備份，存於網際網路檔案館） — 劍橋大學教授 Ross Anderson 反對可信賴運算的 FAQ。
* 反智慧財產權 （頁面存檔備份，存於網際網路檔案館）
* 可信賴運算集團 (TCG) — 可信賴運算規範標準制定集團，以前稱為 TCPA。
* TrouSerS - 開源 TCG 軟體棧 （頁面存檔備份，存於網際網路檔案館） 有一個很好的 FAQ （頁面存檔備份，存於網際網路檔案館） , 解釋你使用 TPM 可能遇到的問題。
* TCPA 誤解辯論和 Linux 驅動 （頁面存檔備份，存於網際網路檔案館） IBM Watson 研究院全球安全分析實驗室
* TCPA/TCG 硬體實驗，或者：如何學會停止擔憂並愛上熊。 技術報告 TR2003-476, Dartmouth 大學電腦系， 2003 年 12 月 （頁面存檔備份，存於網際網路檔案館）和 "Enforcer" Linux 安全模組 （頁面存檔備份，存於網際網路檔案館）
* 下一代安全計算基 (NGSCB) — 微軟的可信賴運算體系結構
* Palladium 與 TCPA（頁面存檔備份，存於網際網路檔案館） — 來自 Bruce Schneier 的 Crypto-Gram 時事通訊
* Against-TCPA（頁面存檔備份，存於網際網路檔案館）
* 可信賴運算的有趣套用 （頁面存檔備份，存於網際網路檔案館）
* 你能夠信任你的電腦麼？（頁面存檔備份，存於網際網路檔案館） — FSF 的文章
* 針對「微軟會議」文章的技術部落格 -- 比文章中解釋 "封裝儲存" 得清楚，但沒有數學內容。
* 可信賴運算：機遇與風險，EFF (電子前沿基金會) 的技術成員 Seth Schoen。
* Microsoft's Machiavellian manoeuvring (ZDNet UK) （頁面存檔備份，存於網際網路檔案館） by Bruce Schneier
* LAFKON - 一個關於可信賴運算的電影 （頁面存檔備份，存於網際網路檔案館） 反對可信賴運算的電影
* 可信系統問題：安全層，統計威脅分析，和清白的假定，" 國土安全 -- 趨勢與爭論，IEEE 智慧型系統，Vol. 20 No. 5, pp. 80-83 (Sept./Oct. 2005) (更為一般化地討論可信系統，將其作為國土安全的安全戰略)。另見，可信系統專案，全球資訊社會專案的一部份 (GISP （頁面存檔備份，存於網際網路檔案館）), 一個全球策略研究所的聯合專案 (WPI （頁面存檔備份，存於網際網路檔案館）) 和科技策略進階研究中心 (CAS（頁面存檔備份，存於網際網路檔案館）) (可信系統專案分析對安全和社會從使用可信系統策略的推論)。
* 可信行動平台 - 一個定義行動裝置安全功能的規範集，IBM、Intel 和 NTT DoCoMo 聯合制定。
* Jason F. Reid, William J. Caelli: DRM, 可信賴運算與作業系統體系結構 （頁面存檔備份，存於網際網路檔案館） 2005