想要學習和理解可信計算技術的入門者,經常不知道從哪裏下手,下面根據個人經驗總結一些資源供參考(不一定全,歡迎補充):
規範
通過規範的研究可以理解可信計算的基本概念和思想,方便閱讀更多的書籍和論文。
早期可信計算的研究主要以TCG(國際可信計算工作組http://www.trustedcomputinggroup.org/resources/tpm_main_specification )組織爲主,國內開展可信計算研究的思路基本也是跟着TCG的步伐。可信計算最核心的就是TPM硬件芯片,其TPM 1.2規範是比較經典的,大多數廠家的芯片都以TPM 1.2爲標準。不過,現在該規範已經升級到TPM 2.0,也稱爲“Trusted Platform Module Library Specification”,而且遵循該規範的新芯片也已經面世。
國內對應的是TCM芯片,可以參考“可信計算密碼支撐平臺功能與接口規範”,而且已經成爲國家標準,即GB/T 29829-2013。
而隨着可信計算的發展,可信平臺模塊不一定再是硬件芯片的形式,特別是在資源比較受限的移動和嵌入式環境中,可信執行環境(TEE,Trusted Execution Environment)的研究比較熱,如基於ARM TrustZone、智能卡等可以實現可信計算環境。另一個熱點是物理不可克隆函數PUF(Physical Unclonable Functions),其可以爲可信計算提供物理安全特徵,實現密鑰安全存儲、認證、信任根等功能,而且對應用到物聯網、可穿戴設備、BYOD等場景中具有很好的優勢。關於這方面的標準可以參考“GlobalPlatform”,一個開放式聯盟,定義了關於卡、設備、系統等各個方面的規範,其中包含與可信計算聯繫比較緊密的GP-TEE規範。
書籍與論文
中文書籍推薦馮登國教授的“可信計算理論與實踐”,其對可信計算的研究歷史、現狀和技術有比較全面和深入的理解。還有張煥國教授的“可信計算”一書。另外推薦綜述論文“可信計算技術研究”(發表在計算機研究與發展期刊上)和“The Theory and Practice in the Evolution of Trusted Computing”(發表在科學通報CSB上)。
如果想對可信計算有比較原汁原味的深入理解,推薦閱讀一些經典的英文原版書籍:
ü S.W. Smith. Trusted Computing Platforms: Design and Applications. 2005 關於設計和使用安全協處理器的早期工作的總結
ü D. Grawrock. Dynamics of a Trusted Platform. 2008 包含TPM的動機與設計,以及Intel的Latelaunch和虛擬化支持技術的描述
ü D. Challener, K. Yoder, R. Catherman, D. Safford, and L. Van Doorn. A Practical Guide to Trusted Computing. IBM Press 2008. 從一個開發者的角度介紹了可信計算平臺的各個方面,包含設備驅動的撰寫,以及可信軟件棧的應用接口,值得一讀(這本書有中文翻譯的版本,不過還是推薦最好讀英文原版)
另外推薦閱讀CMU學者的綜述論文“Bootstrapping Trust in Commodity Computers”,發表在信息安全頂會IEEE S&P 2010上面,對可信計算的理解比較到位。
最後推薦Mark Ryan在訪問TCG後綜述了一篇關於TPM 1.2的論文“Introduction to the TPM 1.2”,適合初學者閱讀,能比較快速準確的抓住TPM的本質。
會議與研究機構
如果四大頂級安全會議(CCS、IEEE S&P、USENIX Security、NDSS)等有關於可信計算的文章,自然值得一讀。
另外推薦可信計算領域比較專業的會議Trust(International Conference on Trust & Trustworthy Computing),由歐洲研究可信計算的幾個主流機構舉辦,每年上半年在歐洲開會,每年只錄用十篇左右文章,如Trust 2014年的網址爲http://www.ics.forth.gr/trust2014/。
另外推薦CCS會議的WorkShop,TrustED(International Workshop on Trustworthy Embedded Devices),其前身爲CCS-STC,每年與頂會CCS一起舉辦,只收錄幾篇文章,也比較專業,主要關注可信計算在嵌入式和移動等方面的新型成果。
如果做學術研究的話,跟蹤國際上前沿組織與機構的研究成果是很好的選擇,可信計算方面的機構有:CMU Cylab實驗室, ETH Zurich系統安全實驗室,Intel&HP實驗室(代表人物Ernie Brickell, Liqun Chen, Jiangtao Li,代表成果DAA),TU Darmstadt CASED,IAIK of Graz等。
開源項目
瞭解了可信計算的思想和原理,如果不從實際上體驗一把可信計算的功能也是很痛苦的。而現在在國內使用TPM的芯片很困難,TCM芯片在很多方面可能與國際主流用法不一致。因此,爲了實際使用可信計算功能,這裏推薦一些開源項目。
(1)TPM Emulator
開源地址:https://github.com/PeterHuewe/tpm-emulator
不需要實際TPM芯片就可以通過軟件提供可信平臺模塊的功能,可以在Windows和Linux上進行編譯後使用,建議和可信軟件棧TROUSERS一起使用。
(2)可信軟件棧TROUSERS
開源地址:http://sourceforge.net/projects/trousers
IBM實現的一套開源軟件棧,是Linux下進行可信計算應用開發的主要接口。
(3)IBM Software TPM
開源地址:http://ibmswtpm.sourceforge.net/
提供了一全套實踐可信計算的軟件工具:包含軟件TPM模擬器、libtpm庫(類似可信軟件棧TSS)、實例命令(用C語言寫,可以直接訪問TPM命令接口,測試可信計算的功能),而且通過提供的TPM Proxy代理可以去實際TPM芯片、以及其他軟件模擬的TPM Emulator進行通信。
(4)OpenTC項目
開源網址:www.opentc.net
是歐盟贊助的一個可信計算項目,目標是開發一套完整的可信操作系統,出了很多成果,包含Trusted XEN Virtualisation OS,Trusted Linux以及Trusted Microkernel for small and embedded systems等。
(5)Trusted JAVA項目
開源網址:http://trustedjava.sourceforge.net/
是OpenTC項目的一部分,顯示瞭如何使用Java來使用TPM和TSS的功能,由IAIK開發,可以支持跨平臺的使用可信計算功能。
(6)TPM4JAVA
開源網址:http://tpm4java.datenzone.de/trac
另一個可信Java工程,不過主要由Technical University of Darmstadt大學主持。
(7)內核完整性度量IMA
開源網址:http://sourceforge.net/p/linux-ima/wiki/Home/
結合TPM安全芯片,在Linux內核實現了可信計算的完整性度量體系,對所有可執行程序進行了度量。
(8)EMSCB項目
開源網址:http://www.emscb.com/content/pages/49241.htm
由德國政府贊助,基於對TPM的使用開發一些典型的安全應用(如加密等)。可以基於它們的代碼理解可信應用開發的思路,以及嵌入到其它應用開發中。