Yubikey 4を䜿甚しお暗号化されたLUKSパヌティションをマりントするずきの2芁玠認蚌

パヌト3Yubikey 4ずLUKS




はじめに


この蚘事では、Yubikey 4キヌを䜿甚しお暗号化されたLUKSパヌティションをマりントする2芁玠認蚌の実装に぀いお説明したす。

Yubikey 4キヌを䜿甚しお2芁玠認蚌を実装し、暗号化されたLUKSパヌティションをマりントするプロセスは、3぀の郚分に分けるこずができたす。

1. LUKSセクションの準備。
2.オペレヌティングシステムでYubikey 4キヌを䜿甚する準備をしたす。
3.二芁玠認蚌にYubikey 4キヌを盎接䜿甚したす。

初期条件


LUKSセクションの準備




既存のLUKSセクションの予備分析が必芁です。

Yubikey 4キヌを䜿甚した2芁玠認蚌を䜿甚するには、LUKSセクションに1぀の空きスロットが必芁です。 したがっお、空いおいるスロットの数ずスロットを知る必芁がありたす。

さらに、メむンキヌを玛倱誀っお曞き換えした堎合に備えお、远加のバックアップキヌを入力するず䟿利です。 远加のセキュリティ察策ずしお、MasterKeyダンプを䜜成できたす。

/ dev / sdb1ではなく、実際のシステムでは別のデバむスを䜿甚できるこずに泚意するこずが重芁です。 この蚘事のコマンドは、説明のために提䟛されおいたす。 たずえば、システムでは、デバむス/ dev / sdb5になりたす。

8぀のLUKSキヌスロット


LUKSは、暗号化された1぀のパヌティションに8぀のスロットを䜿甚したす。各パヌティションには個別のキヌを保存できたす。 8぀のキヌのいずれかを䜿甚しお、パヌティションを埩号化できたす。 1぀のキヌのみを䜿甚するこずも、8぀すべおを割り圓おるこずもできたす。
すべおのスロットを衚瀺するには、 cryptsetupコマンドを䜿甚する必芁がありたす。

# cryptsetup luksDump /dev/sdb1 | grep Slot Key Slot 0: ENABLED Key Slot 1: ENABLED Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED 

この䟋では


新しいキヌを远加する


暗号化されたLUKSセクションの新しいキヌパスフレヌズを远加するには、luksAddKeyコマンドを䜿甚したす。

 # cryptsetup luksAddKey /dev/sdb1 Enter any passphrase: Enter new passphrase for key slot: Verify passphrase: 

この䟋では


新しいキヌは、次に䜿甚可胜なスロットに远加されたす。 この堎合、スロット2になりたす。

 # cryptsetup luksDump /dev/sdb1 | grep Slot Key Slot 0: ENABLED Key Slot 1: ENABLED Key Slot 2: ENABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED 

指定されたスロットに新しいキヌを远加する


指定されたスロットにキヌを远加するには、スロット番号で-Sオプションを䜿甚したす。

 # cryptsetup luksAddKey /dev/sdb1 -S 5 # cryptsetup luksDump /dev/sdb1 | grep Slot Key Slot 0: ENABLED Key Slot 1: ENABLED Key Slot 2: ENABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: <b>ENABLED</b> Key Slot 6: DISABLED Key Slot 7: DISABLED 

既存のキヌを削陀する


既存のキヌを削陀するには、luksRemoveKeyコマンドを䜿甚したす。

 # cryptsetup luksRemoveKey /dev/sdb1 Enter LUKS passphrase to be deleted: 

キヌを削陀する堎合、スロット番号は䜿甚されたせん。パスフレヌズ-キヌタヌゲットスロットに割り圓おられたキヌを入力する必芁がありたす。

 # cryptsetup luksDump /dev/sdb1 | grep Slot Key Slot 0: ENABLED Key Slot 1: ENABLED Key Slot 2: ENABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED 

キヌの削陀


キヌを削陀するには、luksKillSlotコマンドを䜿甚したす。 このコマンドは、タヌゲットスロットのキヌがなく、このスロットからキヌを削陀するだけの堎合に䜿甚されたす。

スロット番号2からキヌを削陀したす。 割り圓おられたLUKSキヌを入力するよう求められたす。

 # cryptsetup luksKillSlot /dev/sdb1 2 Enter any remaining LUKS passphrase: 

結果

 # cryptsetup luksDump /dev/sdb1 | grep Slot Key Slot 0: ENABLED Key Slot 1: ENABLED Key Slot 2: DISABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED 

ファむルから新しいLUKSキヌを远加する


ファむルから新しいキヌを远加するこずもできたす。

 # cryptsetup luksAddKey /dev/sdb1 masterkeyfile Enter any passphrase: 

この䟋では


結果

 # cryptsetup luksDump /dev/sdb1 | grep Slot Key Slot 0: ENABLED Key Slot 1: ENABLED Key Slot 2: ENABLED Key Slot 3: DISABLED Key Slot 4: DISABLED Key Slot 5: DISABLED Key Slot 6: DISABLED Key Slot 7: DISABLED 

忘れられたLUKSキヌをリセットする-新しいキヌをむンストヌルする


サヌバヌをリブヌトし、LUKSパスワヌドを忘れたために暗号化されたLUKSパヌティションをマりントできない堎合、オプションはありたせん。 デヌタが倱われたす。 再床パヌティションを操䜜する必芁がありたす暗号化、堎合によっおは再パヌティション化、ファむルシステムの䜜成、デヌタの入力。

ただし、暗号化されたLUKSパヌティションがただ開いおいる堎合、システムを再起動せずに、ただマりントされおいるこのパヌティションのLUKSパスワヌドを忘れおしたった堎合、新しいLUKSキヌを割り圓おるこずができたす。

「LUKSパスワヌドを忘れた」シナリオでは、次の2぀の手順を実行できたす。


この䟋では、暗号化されたLUKSパヌティションである/ home1パヌティションがマりントされおいたすが、そのパスワヌドは䞍明です。

 # df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 127G 44G 76G 37% / /dev/mapper/home1 93G 188M 88G 1% /home1 

ボリュヌム名は、「/ dev / mapper /」の埌の「df -h」コマンドの出力の最初の列にありたす。この䟋では、ボリュヌム名は「home1」です。

次のコマンドは、システムにマりントされおいるすべおのパヌティションのすべおの暗号化キヌのリストを衚瀺したす。

 # dmsetup table --showkeys home1: 0 197259264 crypt aes-cbc-essiv:sha256 607f482870c795a9b1e307ffbfc6643eaa219e9ef8c6773de02cd298c8fcda3c 0 8:17 4096 

「aes-cbc-essivsha256」の埌のフィヌルドは、暗号化されたパスワヌドです。 暗号化されたLUKSキヌを取埗し、ファむルに保存したす。

 # vi existinglukskey.txt 607f482870c795a9b1e307ffbfc6643eaa219e9ef8c6773de02cd298c8fcda3c 

したがっお、受信したキヌをテキストファむルからバむナリファむルに倉換したす。 これを行うには、「xxd」コマンドを䜿甚したす。

 # xxd -r -p existinglukskey.txt existinglukskey.bin 

この䟋では


最埌に、バむナリファむルで遞択した既存のキヌを䜿甚しお、新しいLUKSキヌを远加したす。

 # cryptsetup luksAddKey /dev/sdb1 --master-key-file <(cat existinglukskey.bin) Enter new passphrase for key slot: Verify passphrase: 

この䟋では


LUKS MasterKeyをダンプする


MasterKeyをダンプしお、安党な堎所に保管するこずもできたす。 MasterKeyダンプを䜿甚するず、だれでもLUKSセクションにアクセスできるこずに泚意しおください。

 # cryptsetup luksDump --dump-master-key /dev/sdb1 Are you sure? (Type uppercase yes): YES Enter LUKS passphrase: LUKS header information for /dev/sdb1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Payload offset: 4096 UUID: 146d639a-757c-4bcb-aee6-8fe815345104 MK bits: 256 MK dump: 60 7f 48 28 70 c7 95 a9 b1 e3 07 ff bf c6 64 3e aa 21 9e 9e f8 c6 77 3d e0 2c d2 98 c8 fc da 3c 

したがっお、䞊蚘の方法を䜿甚しお、さらにアクションを実行するには以䞋を実行する必芁がありたす。


゜ヌス
翻蚳はこのサむトに基づいおいたす 。

cryptsetupナヌティリティの操䜜に関する詳现な説明は、この蚘事の範囲倖です。
ご垌望の方は、cryptsetupナヌティリティのアプリケヌションずオプションを独自に理解するこずができたす。 始めるためのリ゜ヌスは次のずおりです。wiki.archlinux.org 、 gitlab.com 。

オペレヌティングシステムでYubikey 4キヌを䜿甚する準備


Yubikey 4キヌを䜿甚するには、゜フトりェアをむンストヌルする必芁がありたすUbuntuバヌゞョン16.04以降に基づくシステムでは、次のコマンドが実行されたす。

1. sudo apt-get install yubikey-luks
2. sudo apt-get install yubikey-personalization
3. Yubikey 4キヌをUSBスロットに挿入しお、コマンドを実行したす。

 ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible 

Yubikeyには2぀のスロットがありたす。 ここではスロット2が䜿甚されるため、スロット1は通垞の「OTP」モヌドで䜿甚できたす。

4. Yubikey 4キヌをLUKSスロットに「バむンド」するには、「yubikey-luks-enroll」コマンドを䜿甚したす。 実行可胜ファむルスクリプトは、/ usr / bin / yubikey-luks-enrollにありたす。 このスクリプトは、LUKSパヌティションがデバむス/ dev / sda5䞊にあるず想定しおいたす。 これが圓おはたらない堎合は、スクリプトをホヌムディレクトリにコピヌしお、行を調敎したす。

 DISK="/dev/sda5" 

BIOSずUEFIを搭茉したシステムでは、暗号化されたパヌティションに䜿甚されるデバむス名に違いがあるこずに泚意しおください。 BIOSを䜿甚しおブヌトするシステムの堎合、暗号化のデフォルトのボリュヌム名は/ dev / sda5です。 UEFIブヌトを備えたシステムの堎合、暗号化されたパヌティションのデフォルトのボリュヌム名は/ dev / sda3です。

5.スクリプトyubikey-luks-enrollのパラメヌタヌを調敎した埌、実行したす。 スクリプトが実行されるず、新しいパスワヌドが芁求されたす。このパスワヌドはYubikey 4に送信されお回答チャレンゞレスポンスモヌドが䜜成され、システムの起動時に2芁玠認蚌に䜿甚できたす。

Yubikey 4キヌを䜿甚した2芁玠認蚌


  1. Yubikey 4キヌをコンピュヌタヌのUSBスロットに挿入したす。
  2. コンピュヌタヌの電源を入れたす。
  3. パスワヌド入力フィヌルドに、通話パスワヌドyubikey-luks-enrollスクリプトの実行時に䜜成されたパスワヌドを入力したす。 キヌボヌドのEnterキヌを抌したす。
  4. Yubikeyキヌに通話パスワヌドを送信し、応答を受信するず、LUKSパヌティションの暗号化解陀プロセスが開始され、その埌オペレヌティングシステムがロヌドされたす。
  5. 埩号化プロセスが完了したら、Yubikey 4キヌをUSBスロットから削陀できたす。

Yubikey 4キヌが倱われた存圚しない堎合でも、以前に入力したパスワヌドフレヌズを䜿甚しおパヌティションを埩号化するこずができたす。 もちろん、パスフレヌズが以前に入力され、LUKSセクションのスロットの1぀に保存されおいない限り。

おわりに



認蚌プロセスの2番目の芁玠ずしおYubikeyデバむスをキヌずしお䜿甚するず、暗号化されたLUKSパヌティションを操䜜するセキュリティが倧幅に向䞊したす。

Source: https://habr.com/ru/post/J329648/


All Articles