可信計算

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

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

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

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

## 信任的本質

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

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

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

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

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

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

## 核心概念

可信計算包括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