「Trusted Platform Module」の版間の差分
(ページの作成:「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行目: | ||
==参照== |
==参照== |
||
− | * [ |
+ | * [[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 が搭載されたシステムで 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 フロントエンド。
- openssl_tpm_engine — TSS API と対話する OpenSSL エンジン。
- tpm_keyring2 — TPM ベースの eCryptfs 鍵を管理するキーマネージャ。
- http://sourceforge.net/projects/trousers || tpm_keyring2AUR[リンク切れ: アーカイブ: aur-mirror]
- opencryptoki — Linux の PKCS#11 実装。IBM の暗号ハードウェアを使用するためのドライバーやライブラリ、テスト用のソフトウェアトークンが含まれています。
基本
まずは基本的なバージョン情報を確認してください:
$ 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