10.9. PKCS #11 ピンを使用して LUKS 暗号化ボリュームのロック解除を設定する


PKCS #11 と互換性のあるデバイス (スマートカードまたはハードウェアセキュリティーモジュール (HSM)) を使用して、LUKS で暗号化されたボリュームのロック解除を設定できます。

Clevis PKCS #11 ピンを使用して暗号化されたボリュームを自動的にロック解除するには、/etc/crypttab ファイルの変更も必要です。この変更により、コンソールでユーザーにプロンプトを表示する代わりに、AF_UNIX ソケットを使用して、ボリュームのロックを解除するためのキーフレーズを待機するように systemd マネージャーを設定します。

Clevis PKCS #11 のユニットファイルは、ディスクのロック解除に関する情報を送受信するためのソケットを /run/systemd/clevis-pkcs11.sock ファイル内に設定します。Clevis PKCS #11 ピンによってロック解除されるディスクの場合は、ソケットファイルをキーファイルとして設定する必要があります。

前提条件

  • PKCS #11 デバイスがすでに設定されており、アクセス可能である。
  • clevis-pin-pkcs11 パッケージがインストールされている。
  • clevis luks bind コマンド用に、LUKS パスワードの空きスロットが少なくとも 1 つある。

手順

  1. PBD 用 LUKS 暗号化ボリュームを特定します。次の例では、ブロックデバイスは /dev/sda2 と呼ばれています。

    # lsblk
    NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    sda                                             8:0    0    12G  0 disk
    ├─sda1                                          8:1    0     1G  0 part  /boot
    └─sda2                                          8:2    0    11G  0 part
      └─luks-40e20552-2ade-4954-9d56-565aa7994fb6 253:0    0    11G  0 crypt
        ├─rhel-root                               253:0    0   9.8G  0 lvm   /
        └─rhel-swap                               253:1    0   1.2G  0 lvm   [SWAP]
    Copy to Clipboard
  2. ボリュームのロック解除に使用する PKCS #11 デバイスの URI を特定します。次に例を示します。

    $ pkcs11-tool -L | grep uri
    uri            	: pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;serial=42facd1f749ece7f;token=clevis
    uri            	: pkcs11:model=PKCS%2315%20emulated;manufacturer=OpenPGP%20project;serial=000f06080f4f;token=OpenPGP%20card%20%28User%20PIN%29
    Copy to Clipboard
  3. clevis luks bind コマンドを使用してボリュームを PKCS #11 デバイスにバインドします。次に例を示します。

    # clevis luks bind -d /dev/sda2 pkcs11 '{"uri":"pkcs11:model=PKCS%2315%20emulated;manufacturer=OpenPGP%20project;serial=000f06080f4f;token=OpenPGP%20card%20%28User%20PIN%29;id=%03;object=Authentication%20key;type=public"}'
    …
    Do you wish to initialize /dev/sda2? [yn] y
    Enter existing LUKS password:
    Copy to Clipboard

    このコマンドは、次の手順を実行します。

    1. LUKS マスター鍵と同じエントロピーを使用して、新しい鍵を作成します。
    2. Clevis で新しい鍵を暗号化します。
    3. LUKS2 ヘッダートークンに Clevis JWE オブジェクトを保存するか、デフォルト以外の LUKS1 ヘッダーが使用されている場合は LUKSMeta を使用します。
    4. LUKS を使用する新しい鍵を有効にします。
  4. オプション: 使用するモジュールを指定する必要がある場合は、module-path URI パラメーターを追加します。

    # clevis luks bind -d /dev/sda2 pkcs11 '{"uri":"pkcs11:module-path=/usr/lib64/libykcs11.so.2";model=PKCS%2315%20emulated;manufacturer=OpenPGP%20project;serial=000f06080f4f;token=OpenPGP%20card%20%28User%20PIN%29;id=%03;object=Authentication%20key;type=public}'
    Copy to Clipboard
  5. clevis-luks-pkcs11-askpass.socket ユニットを有効にします。

    # systemctl enable --now clevis-luks-pkcs11-askpass.socket
    Copy to Clipboard
  6. テキストエディターで /etc/crypttab ファイルを開き、PKCS #11 ピンでロックを解除する LUKS 暗号化ボリュームを含む行を特定します。次に例を示します。

    luks-6e38d5e1-7f83-43cc-819a-7416bcbf9f84 UUID=6e38d5e1-7f83-43cc-819a-7416bcbf9f84 - -
    Copy to Clipboard
  7. ダッシュを /run/systemd/clevis-pkcs11.sock ファイルパスと keyfile-timeout オプションに置き換えます。

    luks-6e38d5e1-7f83-43cc-819a-7416bcbf9f84 UUID=6e38d5e1-7f83-43cc-819a-7416bcbf9f84 /run/systemd/clevis-pkcs11.sock keyfile-timeout=30s
    Copy to Clipboard

    keyfile-timeout オプションは、ロック解除エラーが発生し、システムがコンソールからパスフレーズを手動で入力する必要がある場合に、次の処理に移行する仕組みを提供します。

  8. 変更を保存し、エディターを終了します。
  9. システムの起動プロセスの初期段階で、ルートファイルシステムのロックを解除するために必要なディスクバインディングを処理するには、インストール済みのシステムで dracut ツールを使用します。

    # dracut -fv --regenerate-all
    Copy to Clipboard
  10. システムを再起動します。

    次回のブートプロセス中に、PKCS #11 デバイス PIN の入力が要求されます。正しい PIN を入力した場合にのみ、対応する設定済みの暗号化ディスクが復号化されます。

検証

  1. ブートプロセスを手動でテストする代わりに、次のコマンドを使用してテキストメッセージを暗号化および復号化できます。

    # echo "top secret" | clevis encrypt pkcs11 '{"uri":"pkcs11:module-path=/usr/lib64/libykcs11.so.2?pin-value=<PIN>"}' | clevis decrypt
    Copy to Clipboard

    <PIN> は PIN 値に置き換えます。メッセージを復号化するには、この PIN 値を入力する必要があります。

  2. Clevis JWE オブジェクトが LUKS ヘッダーに正常に配置されていることを確認するには、clevis luks list コマンドを使用します。次に例を示します。

    # clevis luks list -d /dev/sda2
    1: pkcs11 '{"uri": "pkcs11:model=PKCS%2315%20emulated;manufacturer=piv_II;
    serial=0a35ba26b062b9c5;token=clevis;id=%02;object=Encryption%20Key?
    module-path=/usr/lib64/libykcs11.so.2"}'
    Copy to Clipboard
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat