問題タブ [luks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - マルチスレッドで安全なcryptsetupバックエンド?
キーが正しいかどうかを簡単にテストするために、常にスレッドセーフであるか、スレッドセーフな方法で簡単に使用できる (または、できれば最小限の労力で変更できる) cryptsetup の暗号化バックエンドはありますか?
背景と私が試したこと:
まず、cryptsetup のソースを変更して、pthread を使用して複数のキーを簡単にテストできるかどうかをテストしました。これはクラッシュしました。最初は gcrypt を使用していたと思います。最終的に、cryptsetup の安定版ソースで利用可能なすべてのバックエンドを試したところ、openssl と nettle がクラッシュを回避しているように見えることがわかりました。
ただし、私のテストは完全ではなく、(具体的にはイラクサで) クラッシュしませんが、スレッドを使用すると正しく動作しないようです。単一のスレッドを使用する場合は常に機能しますが、スレッドの数を増やすと、暗黙のうちに正しいキーを見つけることができなくなる可能性が高くなります。
これは、LUKS デバイスに対する総当たり攻撃用です。pbkdf がクロールまで遅くなることは承知しています。また、KDF が存在しなくても、AES のキー スペースを使い果たすことはできないことも認識しています。これは、ネットワーク分散およびマルチスレッド方式で作成する楽しみのためだけです。
cryptsetup (libdevmapper.c) のソースで気付きました:
ただし、単に正しく使用していない可能性があります。
各ワーカー スレッドがこれを行います。ワーカー スレッドが起動する前に crypt_init() と crypt_load() を 1 回だけ呼び出し、構造体 crypt_device の独自のコピーを渡します。vk は試行ごとにローカルに作成されます。キーは、ミューテックスによるアクセス制御を使用してワードリストから簡単にフェッチされます。各スレッドがこれらの関数 (crypt_init と crypt_load) を毎回呼び出すと、クラッシュしやすくなることがわかりました。
dmcrypt を使用するコードを削除して書き直そうとするのは完全に間違っていますか? LUKS_endec_template() では、ループ デバイスを crypto デバイスに接続し、最終的に open() に与える dm デバイスを作成し、それから read_blockwise() に fd を与えます。私の考えは、キーを確認する以外にデバイスを実際に使用する必要がないため、単純にそのすべてをスキップすることでした。ただし、単純に暗号化デバイスを直接開く (そして read_blockwise() に渡す) だけでは機能しません。
linux - (Yocto / OpenEmbedded) systemd の libcryptsetup を有効にする
起動時にcrypttabを介してドライブを復号化するために、systemdのlibcryptsetupモジュールを有効にしようとしています。systemd-cryptsetup-generator が systemd (216) ビルドにないため、crypttab が存在しないようです。
PACKAGECONFIG で「cryptsetup」オプションを指定してみました?? ステートメントと --enable-libcryptsetup をビルドの引数として指定しますが、ビットベイクが使用する構成スクリプトによってオプションが無効になっています ( enable ステートメントの後に自動的に --disable-cryptsetup を追加します)
これは、構成が欠落している依存関係を検出したためだと思われるため、systemd レシピが cryptsetup レシピに依存することを指定しようとしましたが、レシピ ループで終了しました (cryptsetup は systemd に依存する lvm2 に依存するため、systemd が構築される前に cryptsetup はビルドできません)。建てられた)。
誰か提案がありますか、または同様の問題が発生しましたか? ありがとう!
c - dm-crypt を使用してマップされた暗号化デバイスで fsync を実行しますか?
dm-crypt について質問があります。
これが私の状況です。Linux で cryptsetup コマンドを使用して、暗号化されたパーティションをマップ (仮想デバイスで暗号化) しています。open() 関数を使用して、マップされた仮想デバイスを C プログラムで開いています。
fsync() 関数を使用すると、すべての情報が暗号化されたパーティションに書き込まれるか、または dm-crypt ドライバーにバッファーがあるかを確認できますか?
docker - device-mapper と luks を備えた docker
docker コンテナを luks デバイスに保存しようとしていますが、以下のコマンドを使用しても機能しません。
また、luks ファイルをボリューム データとして使用する (そしておそらく開く) docker コンテナーを用意しようとしていますが、それをコンテナーにバインドする方法がわかりません。
私は次のことをしました:
キーを作成しました
ext4でフォーマット
私のdocker.serviceは次のようになります:
/etc/sysconfig/dockerは次のようになります。
systemctl の出力は次のとおりです。
linux - サブパーティションを持つ luks コンテナを閉じる方法
たとえば、これは /dev/sda1 として /dev/sda1 として 1 つのパーティションを作成し、LUKS コンテナーに変換され、さらに 2 つのサブパーティションに分割されます。
そうしようとすると、返されます: device-mapper: remove ioctl on test_encrypted failed: Device or resource busy
, then Device test_encrypted is still in use
.
サブパーティショニングは機能しますが、partprobe がサブパーティションについてカーネルに報告すると、それを閉じることができなくなります。
linux - 暗号化されたパーティションの自動マウント
私のUbuntuには暗号化されたパーティションがあります(cryptsetupで暗号化されています)。
現在、パーティションをマウントします
そして言い換えを促します。
この行をスクリプトに入れ、次のように (毎日のバックアップを行うために) パーティションを自動的にマウントする方法はありますか?
またはそれ以上:
encryption - Mandos を使用して複数の LUKS デバイスを自動復号化する
Mandos をいじって、暗号化されたルート デバイスを自動的に開きました。暗号化された btrfs raid 1 (sda1 および sdb1: LUKS) をセットアップしたかったのです。最初のデバイスは正しく復号化されますが、2 番目のデバイスは開かれません。これを行う方法はありますか?