可信計算

可信計算/可信用計算（Trusted Computing，TC）是一項由-{zh-hans:可信計算組;zh-hant:可信任運算組織}-（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支持的機器（一般是-{zh-hans:筆記本; zh-hant:筆電}-）。 -  Linux kernel從版本2.6.13開始已經包含了對可信計算的支持，並且現在已有許多Linux項目開始支持可信計算。在05年1月，Gentoo Linux的成員「crypto herd」宣稱他們準備支持可信計算，特別是支持可信平臺模塊。 同時，也有符合TCG規範的Linux開源軟件協議棧—— TrouSerS date=20190926153521 。- 有些具有有限的可信計算功能產品在當前版本的Microsoft Windows下也有第三方的實現。- BitLocker支援TPM。-  TrustKernel date=20200920102943 的T6安全操作系統利用ARM TrustZone技術實現了一個軟件級別的TPM功能。

**參考文獻**

**外部鏈接**
 可信計算規範標準制定組織 date=20210222155141  - '可信計算'常見問題，繁體中文版 — 劍橋大學教授Ross Anderson反對可信計算的FAQ，中文版。- '可信計算'常見問題date=20100922063134  — 劍橋大學教授Ross Anderson反對可信計算的FAQ。- 反智慧財產權 date=20200924164811 - 可信計算組織 (TCG) — 可信計算規範標準制定組織，以前稱為TCPA。- TrouSerS - 開源TCG軟件棧 date=20190926153521  有一個很好的 FAQ date=20190305085555  , 解釋你使用TPM可能遇到的問題。- TCPA誤解辯論和Linux驅動 date=20180317050129  IBM Watson研究院全球安全分析實驗室- TCPA/TCG硬件實驗, 或者: 如何學會停止擔憂並愛上熊。 技術報告TR2003-476, Dartmouth大學計算機系， 2003年12月 date=20191104094633 和  "Enforcer" Linux安全模塊 date=20200731091553 - 下一代安全計算基(NGSCB) — 微軟的可信計算體系結構- Palladium與TCPAdate=20130308061758  — 來自Bruce Schneier的Crypto-Gram時事通訊- Against-TCPAdate=20060622003100 - 可信計算的有趣應用 date=20070806222534 - 你能夠信任你的計算機麼?date=20130502013705  — FSF的文章- 針對“微軟會議”文章的技術博客 -- 比文章中解釋"封裝存儲"得清楚，但沒有數學內容。- 可信計算：機遇與風險, EFF (電子前沿基金會)的技術成員Seth Schoen。- Microsoft's Machiavellian manoeuvring (ZDNet UK) date=20090107004018  by Bruce Schneier- LAFKON - 一個關於可信計算的電影 date=20210203030010  反對可信計算的電影- 可信系統問題: 安全層，統計威脅分析，和清白的假定," 國土安全--趨勢與爭論, IEEE智能系統, Vol. 20 No. 5, pp. 80-83 (Sept./Oct. 2005) (更為一般化地討論可信系統，將其作為國土安全的安全戰略)。另見,  可信系統項目, 全球信息社會項目的一部分( GISP date=20201127105526 ), 一個全球策略研究所的聯合項目( WPI date=20200508063101 )和科技策略高級研究中心( CASdate=20051108003543 ) (可信系統項目分析對安全和社會從使用可信系統策略的推論)。- 可信移動平臺 - 一個定義移動設備安全功能的規範集，IBM、Intel和NTT DoCoMo聯合制定。
*Jason F. Reid, William J. Caelli:  DRM, 可信計算與操作系統體系結構 date=20070219053318  2005