ユーザーごとに異なる暗号化を使用して利用可能なフルディスク暗号化を取得する方法

ユーザーごとに異なる暗号化を使用して利用可能なフルディスク暗号化を取得する方法

私のラップトップでシステム全体を暗号化したいです。しかし、自宅と職場にそれぞれ1人ずつ、2人のユーザーがいますが、両方のユーザーに対して別々の暗号化をしたいと思います。もちろん、完全なディスク暗号化にはdm-cryptを使用し、ホームディレクトリを暗号化するにはecryptfsの2番目の暗号化層を使用できます。しかし、パフォーマンス上の理由から、これは良い考えではないようです。それでは、次のシステムをどのように設定できますか?

  • ハードドライブ全体が暗号化されます。
  • ユーザ1がログインしており、ユーザ2がログインしていない場合、ユーザ2のデータはユーザ1に対して暗号化され、その逆も同様である。
  • システムパスワードを復号化するには、起動時にパスワードを入力する必要があります(通常のLVM / dm-crypt設定のように)、ユーザーxにログインし、そのパーティションのパスワードを復号化するには、2番目のパスワードのみを入力します。
  • パフォーマンスは、単純なフルディスク暗号化に似ています。
  • このソリューションはSSDと連携する必要があります。つまり、TRIMをサポートする必要があります。

それが重要な場合は、Ubuntuをディストリビューションとして使用したいと思います。

ベストアンサー1

  1. ハードドライブ全体を暗号化しないでください(に示すように、/dev/sda各パーティション(またはより正確には各ファイルシステム - 以下を参照)を暗号化してください。

  2. 自宅で両方のユーザーに別々のファイルシステムをインストールします。私は意図的に別々のパーティションを作成することを避けました。これは一般的な作業方法ですが、ある点では限られているからです。暗号化されたファイルシステムを含む大容量ファイルを保持し、必要に応じてマウントする大規模な基本パーティションを持つ方が便利です。利点は、ユーザーの家を別々に維持しながらサイズを変更する方が簡単です。

  3. PAMはログイン時にサイレントインストールを許可します。ログインと実際の操作に同じパスワードを使用したくありません。データ暗号化。代わりに、LUKSを使用するか、ログインパスワードで暗号化されたファイルに暗号化キーを保存することでこれを模倣することができます。これにより、ログインパスワードの変更が暗号化されたデータに影響を与えず、暗号化されたキーにのみ影響を与えるため、ユーザー全体の家族を再暗号化する責任はありません。

一般的なガイドライン:

  • パーティションの使用法gdisk(時々とも呼ばれるgptfdiskpartedやその他の適切なプログラムの詳細については、マニュアルページを参照してください(パーティション化はこのQAの範囲をわずかに超えています)。

  • 暗号化されたファイルに基づくファイルシステム - 私はLUKSの設計に少し異議があるので、通常はある意味でcryptsetupLUKSを模倣する「一般」モードを使用します。 LUKSを選択すると、cryptsetup(オプションを適切に変更することによって)ステップを減らすことができます。

    1. 暗号鍵とパスワードを用意してください。興味深い部分は次のとおりです。データを暗号化するにはランダムに必要なものが必要ですが(8文字のパスワードでは不十分です)、パスワードの場合は簡単に変更できます(ファイルシステム全体を再暗号化せずに)、合理的に簡単に変更できます。覚えて入ってください。これらの要件は矛盾しています。したがって、私たちはLUKSと同じトリックを使います(実際にはLUKSのバリエーションと見なすことができます)。ハイブリッド暗号システムある意味では))。これ暗号鍵ややランダムかもしれません。 (最近の出来事に照らして気になる場合など)真のランダムデータを使用するか、/dev/random暗号文がかなり長いです。

      最初のケース(および実際のランダムデータの場合)は、かなり長いことは、その長さが使用されたパスワードに対して選択されたキーの長さとほぼ等しくなければならないことを意味します。追加する長さ初期化ベクトル。 2番目のケースは難しいという意味です。無差別代入クラッキングそれ。ハッシュを使用すると、鍵が破損または紛失した場合に鍵を回復できるという利点があります(もちろん、ハッシュされた初期パスワードを覚えている場合)。これにより、鍵が暗号化され、ファイルに保存されます。あなたの場合、暗号鍵のパスワードはログインパスワードと同じです。

      # set up the encrypted encryption key
      printf "Reasonably long and complicated passphrase" \
          | openssl dgst -sha512 -binary \
          | openssl enc -bf > /path/to/key.enc
      

      openssl dgst -sha512 -binary標準入力でSHA-512ハッシュのバイナリ形式を生成してopenssl enc -bf使用します。ふぐ- 必要なハッシュとパスワードを自由に選択してください(TwofishまたはRijndaelはどちらも良い試みですが、カーネルで利用可能な他のパスワードも問題ありません)。

      暗号化装置の外部に鍵を保持することの欠点は、暗号化されたデータ自体に加えて他のものが必要であることです。 LUKS はキーをヘッダーに格納するので独立しています。一方、特定のツールセットを使用する必要があります。うまく設計されておらず、ほとんどのインストールに存在しますが、必要アクセスできる特別なツールです。

      一方、別々のファイルを使用すると、キーの保存方法を自由に選択できます。リムーバブルメディアに挿入し、ログインする前に挿入し、ファイルシステムをマウントした後に削除することもできます(メディアがコンピュータに接続されたら、自動ロギングに接続することもできます)。もちろん、これらすべては安全ガイドラインとしてよく考慮されるべきです。「自分だけの暗号通貨を作らないでください」適用可能(例:セキュリティSEに関するこの記事) - これは実際にLUKSを使用する理由になる可能性があります。鍵をバックアップするのは確かに簡単です。

    2. ファイルシステムを保持する空のファイルを作成します。

      dd if=/dev/zero of=/path/to/backing_file.enc bs=1M count=X
      
    3. 暗号化デバイスの作成

      openssl enc -bf -d -in /path/to/key.enc 2>/dev/null \
          | cryptsetup create \
                  -c twofish-cbc-essiv:sha256 \
                  -s 256 \
                  -h plain \
                  encryptedfs /path/to/backing_file.enc
      

      openssl enc -bf -d標準入力からパスワードを要求し、暗号鍵の復号を試みます。cryptsetup create ... encryptedfs /path/to/backing_file.enc生成された暗号化されたDMデバイスencryptedfsは、以前に生成されたファイルから呼び出されます。-c暗号化されたパスワードを選択するための重要なオプションそして動作原理

    4. デバイスをゼロで埋めます。これにより、バックアップファイルに「ランダムゴミ」が効果的に配置され、ファイルの内容が何であるかが不明瞭になります。それ以外の場合は、ゼロ以外のブロックをスキャンして内容が記録されたことを知ることができます。 2)段階から始めてください。

      dd if=/dev/zero of=/dev/mapper/encryptedfs bs=1M
      
    5. ファイルシステムの作成

      mkfs.[favourite_filesystem] [tuning options] /dev/mapper/encryptedfs
      
    6. /etc/fstabすべてのタスクを直接実行するには、その行を入力するか、次のように入力します。/etc/crypttabシステムツールとの一種の統合が必要な場合。

  • ログイン/ログアウト時の自動(削除)インストールについては、以下を参照してください。pam_mount ドキュメント

おすすめ記事