対称キーを使用してファイルを暗号化するとき、最も一般的なユーティリティ(gpg、mcryptなど)は、復号化中にキーの整合性を検証するために使用できる情報を暗号化されたメッセージに保存します。たとえば、復号化中に間違ったキーを入力すると、gpg は次を返します。
gpg:復号化失敗:無効なキー
ランダムな文字列を含むファイルを暗号化するとします。その後、標準ユーティリティで使用される主要な整合性チェックにより、脆弱性が追加されます。
キー/メッセージの整合性を確認するために情報や冗長性を保存しない一般的なユーティリティはあります(したがって、確認のために暗号化されたファイルを「復号化する」)どのキー提供)?
ベストアンサー1
私の交換でその他の回答、他のものを提案したいと思います。何か美しいです... DM-crypt。
一般的なdm-crypt(LUKSなし)はキーに関する情報を保存しません。代わりに、cryptsetup
通常のデバイスを開いて使用するためにパスワードを使用することをお勧めします。たとえば、見てみましょう。
[root:tmp]# fallocate -l 16M cryptfile
[root:tmp]# cryptsetup --key-file - open --type plain cryptfile cfile-open <<<"pa55w0rd"
注:cryptfile
サイズは512バイト以上でなければなりません。最小セクタサイズの施行が考えられますcryptsetup
。
この時点では、すべてのランダムなデータを/dev/mapper/cfile-open
。 Obscurityはセキュリティを追加し、ユーザーが書き込むデータの量を正確に記録します。 (これはデフォルトのチャンクがすでに半ランダムである場合にのみ実際に機能します。つまり、ファイルを完全に埋めようとしない場合は、代わりににまたはを使用してopenssl rand
作成する必要があります。)... Somewhereを使用してデバイスから書き込みを開始することもできます。途中で。dd if=/dev/urandom
fallocate
dd
それでは、もう少し簡単なことをしましょう。
[root:tmp]# cryptsetup status cfile-open
/dev/mapper/cfile-open is active.
type: PLAIN
cipher: aes-cbc-essiv:sha256
keysize: 256 bits
device: /dev/loop0
loop: /tmp/cryptfile
offset: 0 sectors
size: 32768 sectors
mode: read/write
[root:tmp]# b $((32768*512))
B KiB MiB GiB TiB PiB EiB
16777216 16384.0 16.00 .01 0 0 0
[root:tmp]# ll cryptfile
-rw-r--r--. 1 root root 16777216 Feb 21 00:28 cryptfile
[root:tmp]# openssl rand -out /dev/mapper/cfile-open $((32768*512))
[root:tmp]# hexdump -n 16 -C /dev/mapper/cfile-open
00000000 00 1d 2d 11 ac 38 c4 d3 cc 81 4f 32 de 64 01 ca |..-..8....O2.d..|
00000010
[root:tmp]# cryptsetup close cfile-open
この時点で、暗号化されたファイルを16MiBのランダムデータで埋めました。間違ったパスワードで再度開くと、何が起こるかを確認してください。正しいパスワードで再度開くと、元のデータがそのまま残っていることがわかります。
[root:tmp]# cryptsetup --key-file - open --type plain cryptfile cfile-open <<<"pass"
[root:tmp]# hexdump -n 16 -C /dev/mapper/cfile-open
00000000 89 97 91 26 b5 46 87 0c 67 87 d8 4a cf 78 e6 d8 |...&.F..g..J.x..|
00000010
[root:tmp]# cryptsetup close cfile-open
[root:tmp]# cryptsetup --key-file - open --type plain cryptfile cfile-open <<<"pa55w0rd"
[root:tmp]# hexdump -n 16 -C /dev/mapper/cfile-open
00000000 00 1d 2d 11 ac 38 c4 d3 cc 81 4f 32 de 64 01 ca |..-..8....O2.d..|
00000010
[root:tmp]#
楽しんでください。