(六)可信计算知识点
一、可信計算與TCG
1.?????可信計算概念:如果針對某個特定的目的,實體的行為與預期的行為相符,則稱針對這個目的,該實體是可信的。
2.?????對建立可信計算環境的需求
商業運行、社會基礎設施運行、個人越來越依賴于IT計算環境。
IT計算環境面臨越來越多的安全威脅。
安全可信問題已經成為普適計算、云計算等新型計算模式真正實現的瓶頸。
現技術因成本、可管理性、向后兼容性、性能、可移植性等問題無法被廣泛采納。
3.?????可信計算可以從幾個方面來理解:
用戶的身份認證:這是對使用者的信任。
平臺軟硬件配置的正確性:這體現了使用者對平臺運行環境的信任。
應用程序的完整性和合法性:這體現了應用程序運行的可信。
平臺之間的可驗證性:指網絡環境下平臺之間的相互信任。
4.?????TCG制定的規范中定義了可信計算的三個屬性
可鑒別:計算機系統的用戶可以確定與他們進行通信的對象身份。
完整性:用戶確保信息能被正確傳輸。
私密性:用戶相信系統能保證信息的私密性。? ? ? ? ? ??
5.TCG發展
1999年10月,由HP、IBM、Intel和Microsoft等公司牽頭組織? TCPA(Trusted Computing Platform Alliance),發展成員約200家,遍布全球各大洲主力廠商,TCPA專注于從計算平臺體系結構上增強其安全性。
2001年1月,TCPA組織發布了TPM主規范(v1.1)
2003年3月,改組為TCG (Trusted Computing Group),同年10月,發布了TPM主規范(v1.2)
2009年,TCG與ISO/IEC 的合作形成國際標準ISO/IEC 11889-X: 2009
2013年3月,TCG組織發布了TPM主規范(v2.0)
成立目的:在計算和通信系統中廣泛使用基于硬件安全模塊支持下的可信計算平臺,以提高整體的安全性。
TCG的使命:發展并推動開放的、廠商中立的、多種平臺間的可信計算構造單元及軟件接口的業界標準規范
6.TCG的解決方案
?????? 將平臺轉變為可信計算環境
?????? 使平臺能夠證明給定的網絡環境是一個受保護的環境
?????? 在正確的平臺環境下,秘密才會被釋放出來
?????? 將TPM作為產品中的可信構造塊
7.TCG規范的設計原則
安全性原則:對指定的關鍵安全數據進行受控的訪問,可靠的度量并報告系統的安全性質
?????? ??????報告機制要在所有者的完全控制之下
私密性原則:設計實現時考慮私密性需求
可互操作性原則:在保證安全性的前提下,不引入新互操作障礙
數據的可移植性原則:規范的部署應該支持在數據所有權方面已建立的原則及慣例
可控性原則:所有者對屬于它們的TCG功能的使用及操作能夠進行有效的選擇和控制
易用性原則:非技術用戶也可以理解和使用TCG功能
8.當前應用
?????? 帶有TPM的PC、Server、IoT設備
?????? 第三方軟件使用TPM提供數據保護、網絡訪問、標識管理、認證
?????? 網絡產品:Radius認證服務器、病毒保護、策略管理
9. TCG組織介紹
10.TCG現有標準規范介紹
二、TPM
1. TPM的核心設計思想。
第一個設計原則:安全性原則。比如說在TPM規范的設計過程當中,必須考慮如下三個內容。第一個就是對指定的一些關鍵的數據,要進行一些受控的一些訪問。第二呢,就是說對可靠的一些度量。就是對我們的數據要做一個可靠的度量,并且呢,來報告這個系統的安全性質。第三呢,就是報告機制是要求在所有者的完全控制之下來完成。
第二個設計原則:私密性原則。
大家知道,這可行計算TPM芯片如果在一個物理機上有這樣一個芯片的話。不應該因為它是一個唯一的一個芯片,如果一旦被惡意用戶知道的話,那么就沒有辦法保護這個平臺的這個可行性。所以對于這個在設計的時候,比如說對平臺進行將來做驗證的時候,不只是要保證它的安全性,還要保證它的私密性。
第三個設計原則:可互操作性原則。
在前面的安全性的這個前提之下,不應該引入一些使得我們進行互操作,帶來不方便的一些障礙。
第四個設計原則:數據的可移植性原則。那么大家知道,每一個數據都有所有者。那么所有者對數據的存放,它是有自己的一些就是意愿的。比如說,在建立這個TCG的規范的時候,不應該讓這個數據。就是說,只能夠在這個平臺上存放,而不能讓所有者去隨意的遷移。
理論上應該允許用戶從一個平臺上遷移到另一個平臺上。
第五個原則:可控性的原則。
比如說,所有者,就是這個平臺的所有者,他應該可以對這個需不需要這個平臺使用TPM這樣的規范,或者需不需要開啟這個TPM的功能, 自己有一個選擇權和控制權。
第六個原則:可用性原則,或者易用性的原則。就是說讓所有的非技術性的用戶,都可以去理解,還可以方便的去使用我們所提供的,或TPM所提供的這樣的功能。
2.TPM是什么?
TCG技術的核心內容就是為計算平臺提供了一整套基于TPM及平臺中TBB(平臺可信構造塊)的信任建立及可信性證實方法和機制
TPM是和CPU是在同一個芯片在同一個主板上的,有一定的計算和存儲能力。所以理論上來講,它是一個小型的計算系統。在BIOS和這個操作系統工作之前已經開始工作。它不能夠去使用這個計算機本身的內存和外存。也就是說它是一個獨立的一個計算系統,所以它只能夠用自己內部的存儲,和內部的計算能力。它內部計算能力主要是采取一些公開的一些算法,比如說密碼的一些運算。所以它需要提供一些標準的接口,還有提供一些相關的安全操作,來支持這樣的一些密碼計算。
3.TPM其實需要包括四個主要功能。
① 對稱/非對稱加密;② 安全存儲;③ 完整性度量;④ 簽名認證。
第一個就是要去支持我們的加密,包括對稱和非對稱的加密,非對稱加密和簽名的認證是通過RSA算法來實現的。
第二個就是要幫助我們去做安全存儲, 它要提供一些密鑰的管理方案,
來幫助我們對本地的數據做一個安全的存儲。
第三個就是要去驗證我們的平臺的完整性,需要第一,要度量平臺的完整性狀態是什么。
然后我們還要去做驗證。完整性度量則是通過高效的SHA-1散列算法來完成的。
第四個就是要做簽名認證,這個主要是對完整性積極驗證的時候。
對稱加密呢其實在這里可以采用任意的一個算法。 既可以使用專用協處理器,也可以使用軟件來完成
4. 受保護的功能:是一組命令,只有它們才能訪問被屏蔽的位置
被隔離的位置:是內存,寄存器等,滿足:(1)在這些位置上操作敏感數據是安全的(2)訪問數據的位置只能是受保護的功能。
?
5.?????TPM體系結構
互操作性:為了符合TCG規范,TPM必須支持的算法有:RSA、SHA-1、 HMAC。
TPM還可以支持其他算法,所有TPM中的算法和協議必須包含在TPM及平臺信任狀
中。對算法進行規定有兩方面的目的:一方面是知道和了解所選算法的安全屬性;對
密鑰大小進行標識,以便在協議中正確使用;另一個是為交互定義算法的基本級別。
DIR數據完整性寄存器:在規范的1.1版本中定義的DIR,在1.2版本中將其移到了一
般目的的非易失存儲區域。 TPM仍應該支持非易失存儲區域中的DIR寄存器功能。
(TPM必須提供至少一個DIR;DIR必須是160比特的值,必須保存在屏蔽位置;
DIR必須是非易失的)
PCR平臺配置寄存器:一個典型TPM中一般有24個PCR寄存器,每個寄存器都存儲
特定的散列值。 0~7用于系統啟動,8~15供操作系統使用,16~23用于動態可信根
的建立。
PCR平臺配置寄存器:
? 1個PCR是1個160比特的存儲位置,用來存儲離散的完整性度量值。
? 所有的PCR寄存器都在屏蔽位置,且在TPM中。
?PCR被設計為在一個寄存器中保存不限數量的度量值。它通過使用密碼哈希來達到這一點,計算的偽碼為PCRi New= HASH ( PCRi Old value || 需要增加的值)。
? 有兩個與PCR構造相關的密碼哈希的性質:
? 一個是順序,即對PCR的更新并不是可交換的(A-B, B-A結果不同);
? 一個是單向性,即給定PCR值,攻擊者要想確定輸入信息在計算上是不可能的,而且如果不知道原來PCR的值或者從上次復位后對PCR寄存器的所有輸入信息也不可能確定對PCR的后續更新
TPM組件:(以下均為TPM組件)
? I/O器件:負責管理信息在通信總線上的傳送,它的任務包括執行與內部和外部總線通信相應的編碼/解碼協議,將消息發送給相應的目標器件。
? 密碼協處理器:實現加密、解密、簽名和簽名驗證。 TPM使用常規的方法來進行加密操作,包括:非對稱密鑰對產生(RSA)、非對稱加密/解密(RSA)、哈希(SHA-1)、隨機數產生(RNG)。TPM也可以在內部使用對稱加密體制,但是不能向一般用戶暴露任何對稱算法函數。 TCG最新的技術規范中要求TPM必須能提供2048位的RSA算法。
? 密鑰產生器:負責生成對稱密鑰和非對稱密鑰對。對于RSA算法的密鑰生成過程而言,密鑰生成器將利用隨機數發生器隨機產生隨機數,并在自身完成對該隨機數的大素數測試。
? HMAC引擎:提供數據認證碼和消息認證碼兩部分信息來分別保證數據和命令消息的完整性。 HMAC引擎僅僅提供運算功能,不提供傳輸數據的命令和機制。 HMAC運算參數遵照RF2104中提出的標準,使用20字節的密鑰和64字節的數據塊長度。
? 非易失性存儲器:用來存儲永久標識(如EK)以及和TPM相關的狀態。
? 隨機數發生器:負責產生各種密鑰生成和簽名中所需要的隨機數,它通過一個內部的狀態機和單項散列函數將一個不可預測的輸入變成32字節長度的隨機數,其輸入數據源可以由軟件或硬件產生,如噪音、時鐘、溫度等,該數據源對外不可見。 TPM中的隨機數發生器也可以利用偽隨機數生成算法。
? SHA-1引擎:負責完成基本的哈希運算。其哈希接口對外暴露,以便平臺在啟動時進行完整性驗證。TCG并未規定SHA-1的最低吞吐量要求。
? 電源監測模塊:根據可信計算平臺電源狀態數據管理TPM的電源,在監測到電源狀態發生變化時幫助TPM采取適當的限制措施。
? 分支選擇器(Opt-In):實現了TCG策略中TPM內部功能可以被開啟與關閉的機制。它通過改變一些永久性的可變標志位來實現TPM內部功能的關閉、停用和完全激活。但這種設置必須是TPM的所有者或經所有者授權的情況下才能進行,原則上不允許進行遠程設置。
? 執行引擎:包含CPU和嵌入式軟件,運行經過I/O傳送給TPM的命令,并執行TPM初始化和監測操作。
6.?????可信平臺中的有關密鑰介紹:
? Endorsement Key(EK):由廠商交付給用戶之前生成,是TPM的唯一標識。幫助獲得所有權、生成AIK.
? Attestation IdentityKeys(AIK):是EK的別名,在一個TPM中可以有多個,為了保護EK的私密性而生成的替代品
? Storage Root Key(SRK):存儲根密鑰,每個可信計算平臺只對應一個惟一的SRK。在改變所有者時會改變
7.?????平臺的信任的建立:
在TPM及平臺制造中,在TPM中保存EK(Endorsement Key),由制造廠商提供認可信任狀(與EK綁定)、平臺信任狀;在TCG評估機構評估后,由評估機構提供Conformance Credential。
? 在此基礎上,平臺的RTR(可信報告根)EK、 RTM(可信度量根)TBB、 RTS(可信
存儲根)EK已經建立起來。
? 可信報告根:提供密碼機制對TPM的狀態及信息進行數字簽名
? 可信存儲根:提供密碼機制保護保存在TPM之外的信息(數據和密鑰)
? 可信度量根:由平臺提供的對平臺的狀態進行度量的機制
? 交付用戶后,可信平臺的所有者獲得TPM的所有權,同時生成存儲根密鑰。
? 平臺所有者發起AIK請求時,在EK及平臺CA的幫助下獲得AIK信任狀。
8.?????可信平臺中的有關信任狀:
? 認可信任狀( Endorsement or EKcredential ):頒發者證明對應EK所在的TPM是他們生產的
? 平臺信任狀(Platformcredential ):頒發者證明帶有某一特征的平臺是他們生產的。
? 一致性信任狀(Conformancecredential):證明某個帶有TPM的可信平臺符合TCG的相關規范
? 確認信任狀( Validationcredential ):證明可信平臺的某個組件是他們生產的
? 證實標識信任狀( AttestationIdentity or AIK credential ):證明帶有對應AIK密鑰的平臺經證明已經確認是一個可信平臺
9.?????平臺所有權的獲得:
? 可信平臺最初交付時都沒有所有者
? 獲得所有權的過程實際上是將一個共享秘密插入TPM的屏蔽位置,插入時考慮:(1)機密性:用TPM的PUBEK進行加密,只有相應TPM可以獲得(2)完整性、可驗證性:插入后,由TPM提供插入值的證明(3)可遠程執行:通過機密性和完整性實現
? 在獲得所有權的同時,TPM生成新的SRK和一個新的TPMProof值,供可信存儲根機制使用。
? 獲得所有權后,TPM的所有者提供與TPM之間的共享秘密就可以執行一些特權命令。
? “物理存在”:TPM中的可信路徑,平臺提供機制證明用戶目前是在平臺上直接操作,而不是通過網絡連接。
? TPM所有權的清除:可以由所有者進行,也可以通過“物理存在”來進行。獲得所有權后,可以禁止進行TPM所有權清除工作。
? TPM所有者可以將特權命令委托給持有其他共享秘密的實體使用。
10.?完整性度量、存儲、報告機制:
目的:允許平臺進入任何狀態,但這些狀態都被忠實的記錄下來,供其它過程參考
完整性度量:是獲得與平臺完整性相關的平臺特性的度量值的方法
度量值的存儲:(1)由TPM內的PCR及TPM外的SML(StoredMeasurement Log)共同完成(2)完整性度量值保存在SML中,完整性度量值的摘要擴充到PCR中
完整性報告:對完整性存儲的內容進行證實的過程。
11.?信任鏈產生:在可信體系中,信任鏈以可信根(TPM)為起點而建立,在此基礎上再將信任關系逐級傳遞到系統的各個模塊,從而建立整個系統的信任關系。所以信任根必須是一個能夠被信任的組件,通常在一個可信平臺中有三個可信根:
可信報告根(Root of Trust for Reporting,RTR):提供密碼機制對TPM的狀態及信息進行數字簽名
可信存儲根(Root of Trust for Storage,RTS):提供密碼機制保護保存在TPM之外的信息(數據和密鑰)
可信度量根(Root of Trust for Measurement,RTM):由平臺提供的對平臺的狀態進行度量的機制
12.?完整性報告:
(1)???? 遠程報告:可信平臺使用AIK對當前平臺的PCR值進行簽名,報告給遠程挑戰者,以證明其平臺狀態的可信性。這一過程使用挑戰-應答協議完成。
(2)???? 本地報告:借助TPM本身提供的Seal操作(將數據或密鑰與一個或一組指定的PCR值綁定,只有當這個或這組PCR值符合特定的指定值時,這些數據和密鑰才能夠被釋放出來)來完成本地的安全報告。
當挑戰者要判斷本地機器是否被攻陷,意味著本機有可能是不可信的。那么本機的驗證會被攻擊者篡改,挑戰者會受到欺騙。
13.?遠程證實協議:遠程證實時,一個平臺(挑戰方)向另一個平臺(證實方)發送一個挑戰證實的消息和一個隨機數,要求獲得一個或多個PCR值,以便對證實者的平臺狀態進行驗證。
14.?AIK證書的合法性 – EK和AIK
(1)???? 背書密鑰 EK(Endorsement Key):
每個TPM擁有唯一的EK
TPM出廠時,由TPM廠商簽發EK證書,來唯一標識可信平臺的身份。
(2)???? 身份認證密鑰 AIKs(Attestation Identity Keys)
TCG規定,EK不直接用于身份認證,而使用AIK作為EK的別名(多個)。
TPM使用EK生成AIK,并通過CA簽發的AIK證書來完成身份認證。
要解決認證過程的匿名性(隱私性)問題:
1)除TPM及所在平臺外,任何實體不能確定EK與AIK的綁定關系,不然獲得AIK證書的實體就可能掌握TPM的PII(私密性標識信息)
2)AIK證書只是讓其他實體相信,用AIK簽名的信息確實來自一個可信平臺,但不知道具體是哪一個TPM,在平臺層次實現對私密性的保護。
15.?AIK證書的合法性 – Privacy CA方法
Privacy CA方案采用一次一密的簽名方式實現認證過程的匿名性
TPM為每次認證產生一對不同的RSA簽名密鑰AIK ,并引入Privacy CA對AIK公鑰進行證明。
每次認證時,TPM只要將用AIK 簽名的,PCR、以及Privacy CA對AIK的證明發送給驗證者即可。
由于每次認證時TPM向驗證者出示的AIK 公鑰各不相同,因而驗證者無法分辨對方是否是同一個TPM,平臺用戶的行為也就無法被跟蹤。
16.?可信平臺要可信,必須真實的報告系統的狀態,同時不能暴露密鑰,也要盡量不能暴露自己的身份。數據安全保護是可信平臺的核心功能之一:通過密鑰對數據采用特定的保護方式:(1)用于數據安全保護的密鑰分為對稱密鑰和非對稱密鑰(2)被保護的數據可以是任何數據(3)數據安全保護方式包括數據加解密、數據封裝等方式。
17.?秘密的類型:
密鑰:指可信平臺中要用到的、需要受保護的存儲機制進行保護的非對稱密鑰.
數據:受保護的存儲結構不對其內容進行解析的秘密,除真正的秘密數據外,還包括對稱密鑰(TPM將對稱加密的任務交給主機平臺完成,所以不對對稱密鑰進行解析),它們只能是受保護的存儲結構中的葉子節點。
存儲密鑰:用來進行加密的非對稱密鑰,可以作為受保護的存儲結構中的非葉子節點,可以對其它密鑰進行封裝保護。
簽名密鑰:用來進行簽名的非對稱密鑰,只能作為受保護存儲結構的葉子節點。
特殊的簽名密鑰AIK:作為SRK的直接葉子節點。
18.?密鑰是否可遷移:
不可遷移密鑰:(1)在TPM中生成的密鑰,私鑰不離開TPM,受TPM完全控制(2)是TPM可鑒定的密鑰(3)TPM的父密鑰必須也是“不可遷移”密鑰,不能是“可遷移”密鑰。(4)TPM能夠區分可遷移密鑰和不可遷移密鑰,因此它會拒絕遷移一個不可遷移密鑰
可遷移不可鑒定密鑰:(1)在TPM之外生成,受TPM保護的密鑰。(2)由于其私鑰在TPM之外存在,也沒有權威方對它在TPM之外使用的可信性進行證明,所以對TPM來說,它是不可鑒定的。
可遷移可鑒定密鑰:(1)在TPM內部或外部生成,并由任何存儲密鑰、可遷移密鑰或不可遷移密鑰進行加密。(2)只有當密鑰的所有者授權遷移,TPM才會遷移一個密鑰(3)終端用戶可以使用一個不可遷移密鑰作為父密鑰,則不用擔心對其子孫密鑰未授權的遷移行為(4)如果祖先密鑰發生遷移,則所有子孫密鑰都同時發生遷移。
19.?可信平臺軟件架構
20.?
?
總結
以上是生活随笔為你收集整理的(六)可信计算知识点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 物联网安全的三个重点
- 下一篇: 中间人攻击之DNS欺骗