dm-crypt はLinux カーネルバージョン 2.6以降およびDragonFly BSDの透過的なブロックデバイス暗号化 サブシステムです。デバイスマッパー(dm) インフラストラクチャの一部であり、カーネルのCrypto APIの暗号化ルーチンを使用します。前身のcryptoloopとは異なり、dm-crypt は透かし攻撃を回避するためにXTS、LRW、ESSIVなどの高度な動作モードをサポートするように設計されています。[1]さらに、dm-crypt は cryptoloop の信頼性の問題にも対処しています。[2]
dm-crypt はデバイス マッパー ターゲットとして実装されており、他のデバイス マッパー変換の上にスタックできます。したがって、ディスク全体 (リムーバブル メディアを含む)、パーティション、ソフトウェア RAIDボリューム、論理ボリューム、およびファイルを暗号化できます。ブロック デバイスとして表示され、ファイル システム、スワップ、またはLVM 物理ボリュームとして使用できます。
一部のLinuxディストリビューションは、ルートファイルシステム上でのdm-cryptの使用をサポートしています。これらのディストリビューションは、initrdを使用して、通常のブートプロセスの前に、コンソールでパスフレーズを入力するか、スマートカードを挿入するようにユーザーに要求します。 [3]
フロントエンド
dm-crypt デバイス マッパー ターゲットは完全にカーネル空間に存在し、ブロック デバイスの暗号化のみに関係します 。データ自体は解釈しません。暗号化されたボリュームの作成とアクティブ化、および認証の管理には、ユーザー空間の フロントエンドに依存します。現在、少なくとも 2 つのフロントエンドが利用可能です:cryptsetupおよびcryptmount。
暗号セットアップ
| 原作者 | ヤナ・サウト、クレメンス・フルーヴィルト、ミラン・ブロズ[4] |
|---|---|
| 安定版リリース | 2.7.5 [5]
/ 2024年9月3日[5] |
| リポジトリ | https://gitlab.com/cryptsetup/cryptsetup |
| 書かれた | C |
| オペレーティング·システム | Unixライク |
| プラットフォーム | x86、x86-64、ARMv8、ARMv7、ppc64le、MIPS |
| サイズ | 7MB |
| 利用可能 | 16言語[6] |
言語リスト 英語、ポルトガル語、中国語(簡体字)、チェコ語、デンマーク語、オランダ語、フィンランド語、フランス語、ドイツ語、イタリア語、日本語、ポーランド語、ロシア語、スペイン語、スウェーデン語、ウクライナ語 | |
| タイプ | ディスク暗号化ソフトウェア |
| ライセンス | GPLv2 [7] サブライブラリ: LGPLv2.1+ [8] |
| Webサイト | gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt |
デフォルトでは、コマンドcryptsetupライン インターフェイスは暗号化されたボリュームにヘッダーを書き込まないため、必要最低限の機能しか提供しません。暗号化設定はディスクをマウントするたびに指定する必要があり (通常は自動スクリプトで使用されます)、ボリュームごとに使用できるキーは1 つだけです。対称暗号化キーは、指定されたパスフレーズから直接導出されます。
cryptsetup には「ソルト」がないため、このモードではLinux Unified Key Setup (LUKS) を使用する場合よりも安全性が低くなります。[9]ただし、cryptsetup はシンプルなため、スマート カード認証 などのサードパーティ ソフトウェアと組み合わせると便利です。
cryptsetupまた、LUKSオンディスクフォーマットを扱うためのコマンドも提供しています。このフォーマットは、キー管理やキーストレッチング(PBKDF2を使用)などの追加機能を提供し、再起動後も暗号化されたボリューム構成を記憶します。[3] [10]
クリプトマウント
このcryptmountインターフェースは、「cryptsetup」ツールの代替手段であり、デバイスがスーパーユーザーによって構成された後は、スーパーユーザー権限を必要とせずに、任意のユーザーが必要に応じて dm-crypt ファイルシステムをマウントおよびアンマウントできるようにします。
特徴
dm-crypt のようなディスク暗号化 (ボリューム暗号化) ソフトウェアは、抽象ブロック デバイスの透過的な暗号化のみを扱うため、柔軟性に優れています。つまり、オペレーティング システムでサポートされているディスク バックアップファイル システムやスワップ領域の暗号化に使用できます。ファイル システムによって実装された書き込みバリアは保持されます。 [11] [12]暗号化されたボリュームは、ディスク パーティション、論理ボリューム、ディスク全体、およびファイルバックアップディスク イメージ(losetup ユーティリティでループ デバイスを使用) に保存できます。dm-crypt は、 RAIDボリュームとLVM物理ボリュームを暗号化するように構成することもできます。
dm-cryptは、initrdを介してブート前認証を提供するように構成することもできます。これにより、ブートローダ、カーネル、initrdイメージ自体を除くコンピュータ上のすべてのデータが暗号化されます。[3]
他のディスク暗号化ソフトウェアのように、予測可能な初期化ベクトルで暗号ブロック連鎖(CBC) モードを使用すると、ディスクは透かし攻撃に対して脆弱になります。つまり、攻撃者はディスク上に特別に細工されたデータが存在することを検出できます。先行バージョンでこの問題に対処するため、dm-crypt には、より複雑なディスク暗号化固有の操作モードの規定が含まれていました。[1] ESSIV (暗号化ソルトセクター初期化ベクトル)のサポートは、Linux カーネルバージョン 2.6.10 で、 LRW は2.6.20 で、XTS は2.6.24 で導入されました。ワイドブロックディスク暗号化アルゴリズムのAdiantumは 5.0 で追加され、その AES ベースの類似アルゴリズムである HCTR2 は 6.0 で追加されました。
Linux Crypto API には、最も一般的なブロック暗号とハッシュ関数のサポートが含まれており、これらはすべて dm-crypt で使用できます。
暗号化された FS のサポートには、LUKS (バージョン 1 および 2) ボリューム、loop-AES、TrueCrypt / VeraCrypt (Linux カーネル 3.13 以降)、[13] [14] [15]、およびBitLocker暗号化 NTFS (cryptsetup 2.3.0 以降) が含まれます。[16] TrueCrypt/VeraCrypt (TCRYPT) および BitLocker (BITLK) のサポートには、カーネル ユーザー空間暗号 API が必要です。[17]
互換性
dm-crypt および LUKS で暗号化されたディスクは、現在廃止されたFreeOTFE (旧称 DoxBox、LibreCrypt) を使用して MS Windows でアクセスおよび使用できます。ただし、使用するファイルシステムが Windows でサポートされている必要があります (例: FAT /FAT32/ NTFS )。暗号化されたext2およびext3ファイルシステムは、Ext2Fsdまたはいわゆる「Ext2 Installable File System for Windows」を使用してサポートされます。 [18] FreeOTFE もそれらをサポートしています。
Cryptsetup/LUKSと必要なインフラストラクチャは、DragonFly BSDオペレーティングシステムにも実装されています。[19]
参照
参考文献
- ^ ab Fruhwirth, Clemens (2005年7月18日). 「ハードディスク暗号化の新しい方法」(PDF) .ウィーン工科大学. 2024年8月22日閲覧。
- ^ Peters, Mike. 「dm-crypt と 2.6 シリーズカーネルを使用したパーティションの暗号化」Linux.com。2012 年 7 月 11 日時点のオリジナルよりアーカイブ。2024年8 月 22 日閲覧。
- ^ abc W. Michael Petullo (2007-01-18). 「Fedora のディスク暗号化: 過去、現在、そして未来」。Red Hat Magazine。2008-10-10 にオリジナルからアーカイブ。2007-04-20に取得。
- ^ 「AUTHORS」. GitLab . 2019年9月7日閲覧。
- ^ ab "docs · master · cryptsetup / cryptsetup". GitLab . 2024年10月10日閲覧。
- ^ 「cryptsetup テキストドメイン」。翻訳プロジェクト。2019年9 月 7 日閲覧。
- ^ 「COPYING」. GitLab . 2019年9月7日閲覧。
- ^ 「COPYING.LGPL」。GitLab 。 2019年9月7日閲覧。
- ^ 「cryptsetup FAQ」.
- ^ Clemens Fruhwirth (2004-07-15). 「TKS1 – アンチフォレンジック、2 レベル、反復キー設定スキーム」(PDF)。ドラフト。2006 年 12 月 12 日閲覧。
- ^ Milan Broz (2012-04-24). 「[dm-crypt] dm-crypt はジャーナリングファイルシステムのトランザクション保証をサポートしていますか?」 saout.de . 2014-07-08に閲覧。
- ^ Mikulas Patocka (2009-06-22). 「kernel/git/torvalds/linux.git」. Linuxカーネルソースツリー. kernel.org . 2014-07-08閲覧。
- ^ 「dm-crypt: Linux カーネルデバイスマッパー暗号ターゲット - IV ジェネレーター」。cryptsetup。2014 年 1 月 11 日。2015年 4 月 5 日閲覧。
- ^ 「dm-crypt: Linux カーネルデバイスマッパー暗号ターゲット」。2015年 4 月 5 日閲覧。
- ^ 「[dm-devel] [PATCH 2/2] dm-crypt: 古い CBC TCRYPT コンテナに TCW IV モードを追加」。redhat.com。2014年 6 月 17 日閲覧。
- ^ Trefny、Vojtech (2020 年 1 月 25 日)。Linux での BitLocker ディスク暗号化(PDF)。DevConf CZ。
- ^ – Linuxプログラマーズマニュアル– 管理および特権コマンド
- ^ 「Ext2 IFS For Windows」。fs-driver.org 。 2015年2月15日閲覧。
- ^ Alex Hornung (2010-07-23). 「注意: マスター上の dm、lvm、cryptsetup、initrd」
外部リンク
- 公式dm-crypt、cryptsetup-luks、cryptmountウェブサイト
- dm-crypt と LUKS に関するすべてが 1 つのページにまとめられています (archive.org 上)。これは、dm-crypt/LUKS を理論から始めて、その使用方法に関する多くの実用的な例で説明するページです。
