可信計算基礎實驗一——開發環境的搭建(kali)


可信計算基礎實驗一——開發環境的搭建(kali)

TPM仿真環境結構

上圖即為TPM仿真環境軟件包依賴關系圖,按由下往上按部就班的進行安裝。

安裝步驟

1.m4與gmp的安裝

依照軟件包依賴關系圖,我們看到安裝gmp前,我們要先安裝m4。

m4簡介:m4 是一種宏處理器,它掃描用戶輸入的文本並將其輸出,期間如果遇到宏就將其展開后輸出。m4 可用作編譯器的前端,或者單純作為宏處理器來用。

m4的安裝很簡單,只需使用命令行即可安裝:sudo apt-get install m4

gmp簡介:gmp是一個可以進行任意精度算術的自由庫,可以操作有符號整數、有理數和浮點數。gmp的主要目標應用是密碼學應用與研究、互聯網安全應用、代數系統、計算代數研究等。gmp基於m4,所以在安裝gmp之前要先安裝m4。

這里是gmp的下載地址

這里我下載的版本為gmp-6.2.0.tar.xz

依次執行以下命令(這里一般不會出現問題):

  • xz -d gmp-6.2.0.tar.xz
  • tar xvf gmp-6.2.0.tar
  • cd gmp-6.2.0
  • ./configure
  • make
  • make check
  • make install

安裝完成:

2.安裝cmake

cmake簡介:CMake 是一個跨平台的自動化建構系統,它使用一個名為 CMakeLists.txt 的文件來描述構建過程,可以產生標准的構建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspaces 。

安裝cmake也使用命令行進行安裝sudo apt-get install cmake

3.安裝TPM-Emulator

這里是TPM-Emulator的下載地址

選擇tpm-emulator-0.7.5.tar.gz進行下載

該程序主要包含三個部分:
(1)tpmd:實現 TPM 仿真器的用戶空間應用程序,可以通過 Unix 域套接字(Unix)或命名管道(Windows)進行訪問。
(2)tpmd_dev:一個內核模塊,它提供設備 /dev/tpm 以實現向后兼容,並將收到的命令轉發給 tpmd(僅限Unix和Mac OS X)。
(3)tddl:TPM 仿真器的 TSS 符合設備驅動程序庫。

安裝命令:

  • tar -zxvf tpm-emulator-0.7.5.tar.gz
  • cd tpm-emulator-0.7.5
  • mkdir build
  • cd build
  • cmake ../
  • make
  • sudo make install

在make步驟中可能會出現以下錯誤

make: *** /lib/modules/5.4.0-kali4-amd64/build: 沒有那個文件或目錄。 停止。
make[3]: *** [all] 錯誤 2
make[2]: *** [tpmd_dev/linux/tpmd_dev.ko] 錯誤 2
make[1]: *** [tpmd_dev/CMakeFiles/tpmd_dev.dir/all] 錯誤 2
make: *** [all] 錯誤 2

這個錯誤原因就是缺少了5.4.0-kali4-amd64這個文件,這個是kali的內核頭文件。這里有兩種可能,一是這個文件確實不存在,另一種可能是文件存在但是沒有進行軟鏈接。

這里我們可以使用cd /lib/modules/5.4.0-kali4-amd64到目錄中,輸入ls -l看到以下內容:

這里我們看到沒有顯示建立軟鏈接。

然后我們輸入cd /usr/src,看到此目錄下也沒有任何文件,由此我們可以判斷本機上並不存在此內核頭文件,因此要進行安裝,安裝命令為:sudo apt-get install linux-headers-$(uname -r)(可以先執行sudo apt-get update)。

分支問題: 這里我還遇到了另一個問題,命令是沒錯的但始終無法進行下載,這里我使用uname -a查看了我kali的內核版本為5.4.0-kali3-amd64,使用sudo apt-get update后執行sudo apt-get dist-upgrade更新內核后解決(這個實際上是將所有內容都更新,速度會有點慢)這個問題在處理時沒有進行截圖,因此沒能在過后繼續研究,可能問題表述不是很正確,大致思路寫在這里僅供參考。

成功安裝好內核頭文件后重新回到剛才查看的兩個目錄下,內容應該是這樣的:
/lib/modules/5.4.0-kali4-amd64:

/usr/src:

重新進行回到tpm-emulator安裝包中即可成功進行make操作。

如果是有內核文件而沒有進行軟鏈接可以參考這個鏈接

4.初始化並啟動TPM-Emulator

初始化TPM-Emulator

使用以下命令進行初始化:

  • tpmd deactivated
  • killall tpmd
  • tpmd clear

初始化的過程中也不會遇到什么問題。

啟動TPM-Emulator

要想在 Unix 或 Mac OS X 上使用 TPM 仿真器,必須先啟動 TPM 仿真器的守護程序(tpmd)並加載 TPM 設備轉發模塊(tpmd_dev)。

使用以下兩條命令:

  • modprobe tpmd_dev
  • tpmd -f -d

如果在執行第一條命令的時候遇到:Module tpmd_dev not found,則執行命令depmod -a.

如果在執行第二條命令時遇到:failed: address already in use,則sudo rm -f 括號中的內容

這里我遇到的問題其實是“modprobe”這條命令根本就找不到!上網搜索的結果沒有特別明確針對此問題的解決措施,不過通過網頁上對於此問題與linux-image有關的說明,結合剛剛下載頭文件的命令,我得出了以下命令:sudo apt-get install --reinstall linux-image-$(uname -r),輸入后重新安裝了本機的linux-image,modprobe命令可用了!(如果還不可用記得加sudo)

5.安裝TSS協議棧

下載地址
我下載的版本為:trousers-0.3.14.tar.gz

先為tousers創建一個目錄,再對其進行解壓

  • mkdir trousers-0.3.14
  • tar -zxvf trousers-0.3.14.tar.gz -C trousers-0.3.14
  • cd trousers-0.3.14

安裝如下依賴包

vi README,我們可以看到有如下依賴包需要安裝:

依次通過命令行進行安裝即可,其中openssl我已經安裝但是在過后還是報錯,這里其實缺少的是“openssl-devel”包,使用sudo apt-get install libssl-dev進行安裝。還有幾個包沒有找到,但是不會出什么問題。

編譯和安裝

  • sh bootstrap.sh(沒有就不用執行)
  • ./configure
  • make
  • sudo make install

注意⚠️: 實驗指導書中有修改Makefile.amMakefile.in的步驟,但都是針對trousers-0.3.8左右版本的教程,當前版本無需進行這步操作

TCSD啟動方式

執行此條命令進行啟動(首先要啟動TPM_Emulator):tcsd -e -f
如果遇到錯誤:TCSD TCS ERROR: TCS GetCapability failed with result = 0x1c就帶上clear參數重啟TPM_Emulator。

安裝tpm-tools

tpm-tools 是一組管理和利用可信計算組織的 TPM 硬件的工具。 TPM 硬件可以安全地創建,存儲和使用 RSA密鑰(不會暴露在內存中),使用加密哈希等來驗證平台的軟件狀態。該程序包含的工具允許平台管理員管理和診斷平台的 TPM 硬件。

命令行輸入sudo apt-get install tpm-tools即可安裝。

至此,我們的TPM實驗環境就應該已經搭建完成了。

測試環境是否搭建成功

  1. 首先啟動tpmd(啟動方式見上)
  2. 再另一個終端啟動tcsd(啟動方式見上)
  3. 再開一個終端使用tpm-tools工具的命令進行測試

分別輸入以下命令查看顯示內容(記得加sudo):

  • tpm_version
  • tpm_getpubek
  • tpm_takeownership

環境搭建成功!

實驗感想

實驗完成了TPM仿真環境的搭建,整體實驗上,由於軟件版本更新和機器狀態的千差萬別,遇到了許多許多錯誤。這里輕描淡寫解決的問題實際上每個都花了很多時間去查相關的資料,這個剛解決馬上又雙叒叕遇到另一個問題了。不過在這個過程中也錘煉了解決問題的能力。

以下是我的參考材料:
搭建TPM過程中的常見錯誤

tpm_emulator 搭建 TPM 仿真環境
樹莓派3-安裝TPM-emulator(已成功)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM