可信計算

}}

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

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

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

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

信任的本質

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

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

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

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

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

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

核心概念

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

認證金鑰
安全輸入輸出
記憶體遮蔽 / 受保護執行
封裝儲存
遠端證明

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

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

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

2.2 記憶體遮蔽

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

2.3 封裝儲存

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

2.4 遠端證明

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

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

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

爭議問題

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

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

他進一步講到：

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

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

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

3.1 使用者不能更換軟體

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

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

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

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

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

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

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

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

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

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

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

3.4 建議的屬主過載

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

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

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

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

3.5 關於實用性的質疑

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

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

支援資訊

從 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 功能。