Clevisのインストールとテスト

次の手順では、Oracle LinuxインスタンスにClevisクライアント・ソフトウェアをインストールする方法、Tangサーバーが提供するキーを使用して基本的な暗号化タスクを実行することによってClevisソフトウェアをテストする方法、および既存のinitrdブート・イメージを更新して、ブート時にLUKS暗号化されたパーティションを自動的に復号化するためにClevisクライアントと統合する方法について説明します。

  1. clevisパッケージおよび関連依存関係をインストールします。
    sudo dnf install -y clevis clevis-luks clevis-udisks2 clevis-dracut

    各パッケージには異なる関数があります。

    • clevisは、Tangサーバーと通信できる基本的な復号化クライアントを提供します

    • ClevisとLUKSを統合してディスクまたはボリュームの自動復号化を実行するには、clevis-luksが必要です

    • Clevisをリムーバブル・ストレージに使用されるudisksフレームワークと統合するには、clevis-udisks2が必要です。これにより、Clevisがリムーバブル・ディスクでLUKS復号化の実行をトリガーできます

    • 早期ブート統合のためにClevisツールをinitrdイメージに含めることができるように、ClevisをDracutと統合するには、clevis-dracutが必要です

  2. Clevisのテスト

    Clevisが、Tangサーバーによって提供されるキーを使用してデータを暗号化できることをテストするには、次の手順に従います:

    1. 暗号化するコンテンツを含むプレーン・テキスト・ファイルを作成します。
      echo "this is my secret message" > unencrypted.txt
    2. 信頼できるネットワーク上で設定および構成したTangサーバーを使用してプレーン・テキスト・ファイルを暗号化し、出力を別のファイルにパイプします。また、このコマンドでは署名キーを信頼するよう求められます。
      clevis encrypt tang '{"url":"http://tang-server.example.org:7500"}' < unencrypted.txt > secret.jwe
      ...
      The advertisement contains the following signing keys:
      
      i9sPMu_sn6vMjzyJm8ZALj7opDE
      
      Do you wish to trust these keys? [ynYN] Y
                              

      Tangサーバーは、プロビジョニング・プロセス中にデータの暗号化に使用される強力な暗号化キーのリストアに使用される署名キーを指定して、リクエストに応答します。

    3. clevis encryptコマンドによって返される暗号化コンテンツを調べます。
      cat secret.jwe
      eyJhbGciOiJFQ0RILUVTIiwiY2xldmlzIjp7InBpbiI6InRhbmciLCJ0YW5n
      Ijp7ImFkdiI6eyJrZXlzIjpbeyJhbGciOiJFQ01SIiwiY3J2IjoiUC01MjEi
      LCJrZXlfb3BzIjpbImRlcml2ZUtleSJdLCJrdHkiOiJFQyIsIngiOiJBUVNs
      ...
      bTJIWkpva19ETXZXTzVBejN0Zzg0dzBRd01xam9pczVnVFNzZlhTbERyNUVI
    4. 暗号化されたファイル内のデータを復号化して、復号化が可能であることを確認します。
      cat secret.jwe |clevis decrypt
      this is my secret message

      clevis decryptコマンドは、暗号化プロセス中に格納されたメタデータを使用して、POSTリクエストからTangサーバーに返された情報によってデータを復号化するために使用されるキーを導出します。

  3. Clevis統合用のinitrdブート・イメージの更新

    早期ブート復号化操作のためにClevis操作をinitrdブート・イメージに導入できるように、clevis-dracutパッケージがインストールされます。このパッケージをインストールしたら、dracutコマンドを実行して既存のinitrdブート・イメージを再構築し、Clevisと統合できます:

    sudo dracut -f

    この手順では、Tangサーバーがアクセス可能である場合、ブート時にClevisがLUKS暗号化パーティションをロック解除できるようにします。ブート時にLUKSパスフレーズを要求されますが、パスフレーズが指定されず、ClevisがTangサーバーに接続できる場合、LUKSはデバイスをロック解除でき、パスフレーズ・プロンプトは一定期間の経過後に閉じます。