LUKS: 어떤 키웨이가 어떤 암호문과 일치하는지 확인

LUKS: 어떤 키웨이가 어떤 암호문과 일치하는지 확인

LUKS 암호화 디스크가 있습니다. 3개의 키홈이 있고 그 중 2개의 전송 단계를 알고 있습니다.

어떤 키웨이에 대한 비밀번호를 알고 있는지 어떻게 확인하나요?

답변1

쉬운 방법은 --debug장치를 잠금 해제할 때 사용하려는 키웨이를 인쇄하는 것입니다. 따라서 두 개의 암호를 사용하면 luksOpen어떤 암호가 어떤 키웨이에 "속해 있는지" 확인하기 위해 두 번만 실행하면 됩니다.

세 번째 키홈에 대한 비밀번호를 제공하는 예:

$ sudo cryptsetup open /dev/sde a --debug
...
# Trying to open LUKS2 keyslot 0.
...
# Verifying key from keyslot 0, digest 0.
# Digest 0 (pbkdf2) verify failed with -1.
# Trying to open LUKS2 keyslot 1.
...
# Digest 0 (pbkdf2) verify failed with -1.
# Trying to open LUKS2 keyslot 2.
...
Key slot 2 unlocked.

스크립트에서 이를 확인하려면 알고 있는 각 암호 문구의 각 키 슬롯에 대해 with 및 루프를 사용할 수 있습니다. 잘못된 --key-slot <num>암호 luksOpen문구로 잘못된 키 슬롯을 잠금 해제하면 실패합니다. --test-passphrase정확하거나 실제로 장치를 잠금 해제하지 않고). 이는 동일한 비밀번호를 가진 두 개의 키 슬롯이 있는 경우에도 도움이 되지만 --debug위의 예에서는 이를 알 수 없습니다.

따라서 다음과 같은 것이 트릭을 수행해야 합니다.

for i in {0..2}; do
   for pass in "a" "b" "c"; do
      echo $pass | cryptsetup open /dev/sde a -q --test-passphrase --key-slot $i >/dev/null 2>&1
      ret=$?
      [ $ret -eq 0 ] && echo "$pass is passphrase for keyslot $i" && break
      done
done
a is passphrase for keyslot 0
b is passphrase for keyslot 1
c is passphrase for keyslot 2

관련 정보