April 15,2009

TPM 與 ecryptfs

基本都是參考:

另外遇到問題可以參考 IBM 的 troubleshooting,最近 IBM 不知道是網站改版還怎樣,之前留的網址都失聯了,你可以用 ibm ecryptfs troubleshooting 去 google 找。

下面的步驟最好全部以 root 或 sudo 來執行:
  1. 進 BIOS 把 TPM clear 掉
  2. 我的環境正好是用 infineon 的,所以用 modprobe tpm_infineon,一般好像是用 tpm_tis 就行了。
  3. 啟動 trousers:tcsd -f,不用 -f 的話,會掛...這個 daemon 提供 tspi 服務並且與 TPM device 溝通。
  4. 取得 ownership:tpm_takeownership ,這個步驟裡,SRK password 跟其後的 Confirm password 不要輸入!!否則要回到步驟 0 重設。SRK 是 Storage Root Key 的縮寫,不使用密碼保護的原因是為了 ecryptfs 取用方便。
  5. 掛載 ecryptfs:modprobe ecryptfs
  6. 啟動 ecryptfsd
  7. 產生 UUID:ecryptfs-generate-tpm-key -p 1 ,這個 UUID 是提領 key 用的,實際的 key 會透過 PCR 1 的 key 來取得(如果我沒理解錯的話)。


至此,準備工作已經完成,接下來就是操作,這裡我假設 private 是放置要加密的資料的地方:
  1. 先建立:mkdir private
  2. 進行掛載:mount -t ecryptfs private private
  3. 依序回答問題,第一個先選 tspi,第二個問題(cipher)選 aes,第三個問題(key bytes)選 16 bytes,第四個問題(passthrough)選 n,最後問題照預設值。第一個問題是加密方式,你也可以使用其他方式,但這樣就用不到 TPM 了;cipher 跟 key bytes 可以視需要自行調整。這樣就能 mount 上,mount 以後,ecryptfs 會把 UUID 存到 keyring (用 keyctl show 可以看 keyring 內容)裡。


在 private 資料夾裡的操作,基本上不能複寫,只能複製、貼上,但 vim 可編輯。

umount 之前,最好先輸入 mount,把參數記下。
umount 之後,可以直接以參數來掛載,這樣就不用再次回答問題:mount -t ecryptfs -o sig=UUID,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n private private
參數裡,有個 sig,這個 sig 就是填 UUID,不過你輸入 mount 時,看到的卻不是 UUID,而是一個較短的字串。這字串其實是一個提領 UUID 的鑰匙,ecryptfs 會用這個鑰匙去 keyring 裡(用 keyctl show 可以看到),取出 UUID,再以 UUID 去掛載。keyring 主要存放在 kernel 的某個地方,所以重開機以後就會消失,我還不知道怎麼把 keyring 內容存起來。

好吧,以上就是我這幾天跟 TPM 奮戰的紀錄...


Posted by elleryq at 樂多Roodo! │11:24 │回應(0)引用(0)Linux 及其相關
樂多分類:網路/3C 共同主題:linux 工具:編輯本文
標籤:linux,tpm
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/8721955