「Trusted Platform Module」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:セキュリティ Category:他のハードウェア en:Trusted Platform Module Trusted Platform Module (TPM) はセキュアな暗号プロセッサ...」)
 
(同期)
7行目: 7行目:
   
 
当然ながら TPM が使えるのは TPM ハードウェアに対応しているデバイスだけです。あなたのハードウェアは TPM をサポートしているのに認識されない場合、BIOS の設定で TPM を有効にする必要があります。
 
当然ながら TPM が使えるのは TPM ハードウェアに対応しているデバイスだけです。あなたのハードウェアは TPM をサポートしているのに認識されない場合、BIOS の設定で TPM を有効にする必要があります。
  +
  +
== バージョン ==
  +
  +
{{Note|TPM 2.0 のサポートは不完全です (カーネルとユーザー空間の両方)。現時点では TPM2 を動作させる方法は見つかっていません。}}
  +
  +
TPM 2.0 が搭載されたシステムで {{ic|tcsd}} を実行すると以下のようになります:
  +
  +
# cat /sys/class/tpm/tpm0/device/description
  +
TPM 2.0 Device
  +
  +
# tcsd -f
  +
TCSD TDDL ioctl: (25) Inappropriate ioctl for device
  +
TCSD TDDL Falling back to Read/Write device support.
  +
TCSD TCS ERROR: TCS GetCapability failed with result = 0x1e
  +
  +
この記事では主に TPM 1.2 を扱っています。
   
 
==ドライバー==
 
==ドライバー==
15行目: 31行目:
 
さらに、使用しているチップセットにあわせて、以下のモジュールのどれかをロードしてください:
 
さらに、使用しているチップセットにあわせて、以下のモジュールのどれかをロードしてください:
   
  +
# modprobe tpm_{atmel,bios,infineon,nsc,tis,crb}
# modprobe tpm_atmel tpm_bios tpm_infineon tpm_nsc tpm_tis tpm_crb
 
   
 
== 使用方法 ==
 
== 使用方法 ==
77行目: 93行目:
   
 
==参照==
 
==参照==
* [https://ja.wikipedia.org/wiki/Trusted_Platform_Module TPM on Wikipedia]
+
* [[wikipedia:ja:Trusted_Platform_Module|TPM on Wikipedia]]
  +
* [http://lwn.net/Articles/674751/ Protecting systems with the TPM]
 
* [http://www.thinkwiki.org/wiki/Embedded_Security_Subsystem Embedded Security Subsystem on Thinkwiki]
 
* [http://www.thinkwiki.org/wiki/Embedded_Security_Subsystem Embedded Security Subsystem on Thinkwiki]
 
* [http://www.cs.unh.edu/~it666/reading_list/Hardware/tpm_fundamentals.pdf TPM Fundamentals (PDF)]
 
* [http://www.cs.unh.edu/~it666/reading_list/Hardware/tpm_fundamentals.pdf TPM Fundamentals (PDF)]

2017年4月9日 (日) 15:10時点における版

Trusted Platform Module (TPM) はセキュアな暗号プロセッサの国際規格です。暗号鍵をデバイスに統合することによりハードウェアを保護する専用のマイクロプロセッサとして設計されています。

実際に TPM を Secure Boot や Key Storage など様々なセキュリティアプリケーションで使うことができます。

当然ながら TPM が使えるのは TPM ハードウェアに対応しているデバイスだけです。あなたのハードウェアは TPM をサポートしているのに認識されない場合、BIOS の設定で TPM を有効にする必要があります。

バージョン

ノート: TPM 2.0 のサポートは不完全です (カーネルとユーザー空間の両方)。現時点では TPM2 を動作させる方法は見つかっていません。

TPM 2.0 が搭載されたシステムで tcsd を実行すると以下のようになります:

# cat /sys/class/tpm/tpm0/device/description 
TPM 2.0 Device
# tcsd -f
TCSD TDDL ioctl: (25) Inappropriate ioctl for device
TCSD TDDL Falling back to Read/Write device support.
TCSD TCS ERROR: TCS GetCapability failed with result = 0x1e

この記事では主に TPM 1.2 を扱っています。

ドライバー

TPM ドライバーは新しいカーネルならネイティブで含まれていますが、ロードする必要があります:

# modprobe tpm

さらに、使用しているチップセットにあわせて、以下のモジュールのどれかをロードしてください:

# modprobe tpm_{atmel,bios,infineon,nsc,tis,crb}

使用方法

TPM は tcsd によって管理します。Trusted Computing リソースを管理するユーザー空間のデーモンで、(TSS の仕様によれば) TPM デバイスドライバーの唯一の表玄関です。tcsd は AUR パッケージの trousersAUR に含まれています。IBM によって開発・リリースされており、/etc/tcsd.conf で設定することが可能です。

tcsd を起動して出力を監視するには、次を実行:

# tcsd -f

もしくは tcsd.service を起動・有効化してください。

tcsd を実行したら、tpm-toolsAUR もインストールすると良いでしょう。TPM を管理するためのコマンドラインツールが多数入っています。

他の便利なツール:

  • tpmmanager — tpm-tools の Qt フロントエンド。
http://sourceforge.net/projects/tpmmanager || tpmmanagerAUR
  • openssl_tpm_engine — TSS API と対話する OpenSSL エンジン。
http://sourceforge.net/projects/trousers || openssl_tpm_engineAUR[リンク切れ: アーカイブ: aur-mirror]
  • tpm_keyring2 — TPM ベースの eCryptfs 鍵を管理するキーマネージャ。
http://sourceforge.net/projects/trousers || tpm_keyring2AUR[リンク切れ: アーカイブ: aur-mirror]
  • opencryptoki — Linux の PKCS#11 実装。IBM の暗号ハードウェアを使用するためのドライバーやライブラリ、テスト用のソフトウェアトークンが含まれています。
http://sourceforge.net/projects/opencryptoki || opencryptokiAUR

基本

まずは基本的なバージョン情報を確認してください:

$ tpm_version

そしてセルフテストを実行:

$ tpm_selftest -l info
 TPM Test Results: 00000000 ...
 tpm_selftest succeeded

SSH 鍵のセキュア化

TPM を使って鍵を保護する方法は複数存在しますが、以下では simple-tpm-pk11-gitAUR を使用する簡単な方法を説明します。

まず、新しいディレクトリを作成して鍵を生成してください:

$ mkdir ~/.simple-tpm-pk11
$ stpm-keygen -o ~/.simple-tpm-pk11/my.key

鍵を設定:

~/.simple-tpm-pk11/config
key my.key

SSH を設定して適切な PKCS11 プロバイダを使用する:

~/.ssh/config
Host *
    PKCS11Provider /usr/lib/libsimple-tpm-pk11.so

これで PKCS11 プロバイダで鍵を生成することができます:

$ ssh-keygen -D /usr/lib/libsimple-tpm-pk11.so
ノート: 上記の方法では複数の鍵を生成・使用することはできません。

参照