應用TPM作linux可信起動的初步實踐

2021-09-30 03:09:41 字數 2409 閱讀 4268

首先要有一台帶有tpm 1.2晶元,裝有linux系統的計算機。

使用下面這條命令可以檢視系統核心tpm驅動情況:

$ ls -la /lib/modules/`uname -r`/kernel/drivers/char/tpm

總計 100

drwxr-xr-x 2 root root 4096 02-03 21:47 .

drwxr-xr-x 7 root root 4096 02-03 21:47 ..

-rwxr--r-- 1 root root 9812 01-21 15:27 tpm_atmel.ko

-rwxr--r-- 1 root root 11128 01-21 15:27 tpm_bios.ko

-rwxr--r-- 1 root root 15860 01-21 15:27 tpm_infineon.ko

-rwxr--r-- 1 root root 19184 01-21 15:27 tpm.ko

-rwxr--r-- 1 root root 10796 01-21 15:27 tpm_nsc.ko

-rwxr--r-- 1 root root 16516 01-21 15:27 tpm_tis.ko

tpm_tis模組可以完全使用tpm1.2。需要這個模組,沒的話可能需要重新編譯新的核心。

接下來可以這幾條命令載入tpm驅動:

$ sudo modprobe tpm_bios

$ sudo modprobe tpm

$ sudo modprobe tpm_tis force=1 interrupts=0

$ dmesg

...

[***.yyy] tpm_tis tpm_tis: 1.2 tpm (device-id 0x4a10, rev-id 78)

如果顯示有類似以上資訊,說明設定成功。

需要安裝trouserst和tpm-tools來管理tpm。

$ sudo /etc/init.d/tcsd start

用上面這條命令來起動這個管理工具

然後檢查下tpm是不是可用了。

$ sudo tpm_version

tpm version: 01010000

manufacturer info: 53544d20

好了。現在讓我們來初始化tpm晶元

$ sudo tpm_takeownership

enter owner password: ******

confirm password: ******

enter srk password: yyyyyyyy

confirm password: yyyyyyyy

記住!這條命令只能執行一次!之後不能再常識!

如果出現下面這個錯誤:

tspi_tpm_getpubendorsementkey failed: 0x00000023 - layer=tpm, code=0023 (35), no ek

則說明endorsement key不存在,需要下面這條命令建立。

$ sudo tpm_createek

ok! 之後我們就可以得到public endorsement key

$sudo tpm_getpubek

期間需要輸入owner password。

接下來需要安裝trustedgrub,然後對其中一些檔案做修改。

還有很重要的一處!

在核心源**檔案中的 drivers/char/tpm/tpm_tis.c

/* user specified */這裡我們可以加入我們自己的tpmuid(如果裡面已經有了的話就不用了),這可以讓核心支援我們需要的tpm型號。

關於如何得到tpm的具體資訊,可以使用 iasl 這個軟體來獲得,具體的不在這裡說明了。

以上是可信起動的bios──>bootloader部分的簡單嘗試。

其實這個trustedgrub也有不安全的bug,比如沒有做從cd引導時的hash等等,不過是開源,如果需要或想改進,可以自己動手,也不是什麼難事。

可信起動接下來的部分,包括initrd和init部分。是整個起動可信最複雜的一塊,我也將在接下來的工作中理清過程,同時盡我可能做一些改進。

vector作二維陣列應用

vector一般常用作變長陣列使用。有些場景需要應用二維變長陣列,並需要對其按一定規則排序。這裡給出乙個例項 背景針對每一維的陣列按照數字個數大的排在後面,個數相同的陣列按照第乙個數值不同字面值大的排在後面。include include include using namespace std ve...

t7910安裝linux體會 linux作業 答案

x職業技術學院 2011 2012 下學期 linux系統管理co 620 作業二 guangxi vocational and technical college of communications the second semester of 2011 2012 lab exercise 2 o...

Linux軟體安裝時 prefix選項的作用

原始碼的安裝一般由3個步驟組成 配置 configure 編譯 make 安裝 make install 具體的安裝方法一般作者都會給出文件,這裡說明配置 configure 的prefix選項 以安裝supersparrow 0.0.0為例,我們打算把他安裝到目錄 usr local supers...