9.6. 基本的な NBDE および TPM2 暗号化クライアント操作


プレーンテキストファイルを含む例で、Clevis が提供する基本的な機能を確認できます。この例は、NBDE または Clevis+TPM のデプロイメントのトラブルシューティングにも使用できます。

Clevis フレームワークは、プレーンテキストファイルを暗号化し、JSON Web Encryption (JWE) 形式の暗号テキストと LUKS で暗号化されたブロックデバイスの両方を復号できます。Clevis クライアントは、暗号化操作に Tang ネットワークサーバー、Trusted Platform Module 2.0 (TPM 2.0) チップ、または PKCS #11 デバイスのいずれかを使用できます。

Tang サーバーにバインドされた暗号化クライアント
  • Clevis 暗号化クライアントが Tang サーバーにバインドされていることを確認するには、clevis encrypt tang サブコマンドを使用します。

    $ clevis encrypt tang '{"url":"http://tang.srv:port"}' < input-plain.txt > secret.jwe
    The advertisement contains the following signing keys:
    
    _OsIk0T-E2l6qjfdDiwVmidoZjA
    
    Do you wish to trust these keys? [ynYN] y

    上記の例の http://tang.srv:port URL は、tang がインストールされているサーバーの URL と一致するように変更します。出力ファイル secret.jwe には、JWE 形式で暗号化された暗号文が含まれています。この暗号文は入力ファイル input-plain.txt から読み取られたものです。

    または、設定上、SSH アクセスを使用せずに Tang サーバーと非対話的に通信する必要がある場合は、アドバタイズメントをダウンロードしてファイルに保存できます。

    $ curl -sfg http://tang.srv:port/adv -o adv.jws

    adv.jws ファイル内のアドバタイズメントは、ファイルやメッセージの暗号化など、後続のタスクに使用します。

    $ echo 'hello' | clevis encrypt tang '{"url":"http://tang.srv:port","adv":"adv.jws"}'
  • データを復号するには、暗号文 (JWE) を指定した clevis decrypt コマンドを使用します。

    $ clevis decrypt < secret.jwe > output-plain.txt
  • clevisclevis decrypt、および clevis encrypt tang コマンドを引数なしで実行すると、組み込みの CLI ヘルプが表示されます。次に例を示します。

    $ clevis encrypt tang
    Usage: clevis encrypt tang CONFIG < PLAINTEXT > JWE
    …
  • 詳細と例は、システム上の clevis-encrypt-tang(1)clevis-luks-unlockers(7)、および clevis(1) man ページを参照してください。
TPM 2.0 を使用する暗号化クライアント
  • TPM 2.0 チップを使用して暗号化するには、JSON 設定オブジェクト形式の引数だけを指定した clevis encrypt tpm2 サブコマンドを使用します。

    $ clevis encrypt tpm2 '{}' < input-plain.txt > secret.jwe

    別の階層、ハッシュ、および鍵アルゴリズムを選択するには、以下のように、設定プロパティーを指定します。

    $ clevis encrypt tpm2 '{"hash":"sha256","key":"rsa"}' < input-plain.txt > secret.jwe
  • データを復号するには、JSON Web Encryption (JWE) 形式の暗号文を提供します。

    $ clevis decrypt < secret.jwe > output-plain.txt
  • ピンは、PCR (Platform Configuration Registers) 状態へのデータのシーリングにも対応します。このように、PCR ハッシュ値が、シーリング時に使用したポリシーと一致する場合にのみ、データのシーリングを解除できます。

    たとえば、SHA-256 バンクに対して、インデックス 0 および 7 の PCR にデータをシールするには、以下を行います。

    $ clevis encrypt tpm2 '{"pcr_bank":"sha256","pcr_ids":"0,7"}' < input-plain.txt > secret.jwe
    警告

    PCR 内のハッシュは書き換えられることがあります。その場合、暗号化されたボリュームのロックを解除できなくなります。このため、PCR の値が変更された場合でも暗号化されたボリュームを手動でロック解除できるように、強力なパスフレーズを追加してください。

    shim-x64 パッケージのアップグレード後にシステムが暗号化されたボリュームを自動的にロック解除できない場合は、Red Hat ナレッジベースソリューション Clevis TPM2 no longer decrypts LUKS devices after a restart の手順に従ってください。

  • 詳細は、システム上の clevis-encrypt-tpm2(1) および clevis-luks-bind(1) man ページを参照してください。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る