22.3. 信頼できる鍵での作業
keyctl
ユーティリティーを使用して、信頼できる鍵を作成、エクスポート、ロード、更新することにより、システムのセキュリティーを向上できます。
前提条件
Trusted Platform Module (TPM) が有効でアクティブである。カーネル整合性サブシステム および 信頼できる鍵および暗号化鍵 を参照してください。
tpm2_pcrread
コマンドを入力して、システムに TPM があることを確認できます。このコマンドの出力に複数のハッシュが表示される場合は、TPM があります。
手順
次のユーティリティーのいずれかを使用して、永続ハンドル (たとえば、81000001) を持つ SHA-256 プライマリーストレージキーを使用して 2048 ビット RSA キーを作成します。
tss2
パッケージを使用する場合:# TPM_DEVICE=/dev/tpm0 tsscreateprimary -hi o -st Handle 80000000 # TPM_DEVICE=/dev/tpm0 tssevictcontrol -hi o -ho 80000000 -hp 81000001
tpm2-tools
パッケージを使用する場合:# tpm2_createprimary --key-algorithm=rsa2048 --key-context=key.ctxt name-alg: value: sha256 raw: 0xb … sym-keybits: 128 rsa: xxxxxx… # tpm2_evictcontrol -c key.ctxt 0x81000001 persistentHandle: 0x81000001 action: persisted
TPM 2.0 を使用し、
keyctl add trusted <NAME> "new <KEY_LENGTH> keyhandle=<PERSISTENT-HANDLE> [options]" <KEYRING>
という構文で信頼できる鍵を作成します。この例では、永続ハンドルは 81000001 です。# keyctl add trusted kmk "new 32 keyhandle=0x81000001" @u 642500861
このコマンドは、
kmk
という名前の信頼できる鍵を32
バイト (256 ビット) の長さで作成し、ユーザーキーリング (@u
) に配置します。鍵の長さは 32 から 128 バイト (256 から 1024 ビット) です。カーネルキーリングの現在の構造を一覧表示します。
# keyctl show Session Keyring -3 --alswrv 500 500 keyring: ses 97833714 --alswrv 500 -1 \ keyring: uid.1000 642500861 --alswrv 500 500 \ trusted: kmk
信頼できる鍵のシリアル番号を使用して、鍵をユーザー空間のブロブにエクスポートします。
# keyctl pipe 642500861 > kmk.blob
このコマンドは、
pipe
サブコマンドとkmk
のシリアル番号を使用します。ユーザー空間のブロブから信頼できる鍵をロードします。
# keyctl add trusted kmk "load `cat kmk.blob`" @u 268728824
TPM で保護された信頼できる鍵 (
kmk
) を使用するセキュアな暗号化鍵を作成します。keyctl add encrypted <NAME> "new FORMAT <KEY_TYPE>:<PRIMARY_KEY_NAME> <KEY_LENGTH>" <KEYRING> という構文に従います。# keyctl add encrypted encr-key "new trusted:kmk 32" @u 159771175
関連情報
-
keyctl(1)
の man ページ - 信頼できる鍵および暗号化された鍵
- Kernel Key Retention Service
- カーネル整合性サブシステム