실제로 마스터 키와 메타 데이터를 올바르게 백업하기 만하면 암호화없이 거의 탄력적으로 복구 할 수 있습니다 .
메타 데이터 외에도 손상은 손상된 비트의 블록에만 영향을 미치며 대부분 16 비트입니다.
암호 및 Veracrypt / LUKS와 같은 키와 도구를 사용하여 대부분의 데이터 손상 상황에서는 암호화 된 디스크를 일상적으로 사용하는 것처럼 암호화되지 않은 디스크와 동일한 액세스 권한을 갖습니다. 암호화는 평소보다 추가 단계 (암호화 된 파티션 열기) 만 추가합니다. 따라서이 경우 암호화되지 않은 데이터처럼 작동합니다.
Veracrypt 또는 Luks를 사용하면 마스터 키를 디스크에 저장해야합니다.이 키는 암호로 암호화됩니다. 이 섹터를 손상 시키면 영구적 인 데이터 손실이 발생할 수 있습니다. 이는 마스터 키 백업 (크기가 몇 킬로바이트)으로 쉽게 해결할 수 있으며 두 소프트웨어로 쉽게 수행 할 수 있으며 모든 사람에게 권장됩니다.
비 메타 데이터에 대한 세부 사항
Veracrypt와 Luks는 현재 XTS를 사용합니다. 이 모드에서는 모든 블록에 대한 키가 계산됩니다. 간단히 말해서, 블록을 암호화 i
하려면 마스터 키와 블록 번호로 생성 된 키를 사용하십시오. 따라서 한 블록의 암호화는 다른 블록과 독립적입니다. 일부 정보가 손상되면 해당 블록으로 제한됩니다.
XTS에서는 블록을 하위 블록 (일반적으로 16 바이트)으로 나누고 키를 만들고 해당 하위 블록을 암호화합니다. 즉, 비트를 변경하면이 16 바이트 만 영향을받습니다.
테스트와 마찬가지로 Luks 볼륨에서 단일 비트를 변경하면 원본 파일의 16 바이트가 횡설수설로 바뀌지 만 나머지 496은 변경되지 않습니다. 7zip 파일에서는 스트림 방법을 사용하여 모든 바이트가 연결되므로 한 바이트 변경이 나머지 모든 바이트에 영향을 미칩니다. 여기에는 해당되지 않습니다.
암호화 된 데이터 만 비교하여 일반 텍스트를 변경할 때 언제 어디서나 16 바이트의 정밀도로 알 수 있듯이 일부는이 문제를 고려합니다.
이에 대한 더 흥미로운 정보는 다음 링크에서 찾을 수 있습니다.
/crypto/6185/what-is-a-tweakable-block-cipher
/security/39306/how-secure-is-ubuntus-default-full-disk-encryption
https://en.wikipedia.org/wiki/Disk_encryption_theory
마스터 키에 대한 세부 사항
럭스
LUKS는 파티션 (또는 디스크)의 시작 부분에 메타 데이터, 암호화 방법, 기타 매개 변수 및 8 개의 키 슬롯을 저장하는 몇 개의 섹터를 가지고 있습니다. 디스크 암호화 및 암호 해독을 위해 LUKS 컨테이너를 만들 때 생성되는 큰 난수 인 마스터 키를 사용합니다 . 암호를 저장하기 위해 암호를 통해 암호 해시 기능을 여러 번 반복하고 해당 슬롯에 대한 특정 키를 생성하여 암호로 마스터 키를 암호화합니다. 동일한 디스크에 대해 8 개의 서로 다른 암호를 가질 수 있습니다. 각 암호는 슬롯에서 다른 암호로 마스터 키를 암호화합니다. 암호를 변경하면 마스터 키를 암호화하고 모든 파티션을 변경하지 않는 것처럼 간단합니다.
따라서이 슬롯과 메타 데이터가 손상되면 실제로 해독하는 데 사용되는 마스터 키를 복구 할 수 없으므로 디스크의 모든 데이터가 손실됩니다. 이것은 모든 데이터를 빠르게 파괴하는 쉬운 방법입니다. 그러나 볼륨 헤더의 백업이 있으면 복구하기가 쉽습니다.
아래는 https://gitlab.com/cryptsetup/cryptsetup/wikis/FrequentlyAskedQuestions#6-backup-and-data-recovery 에서 추출한 백업에 대한 LUKS FAQ 사본입니다.
6.2 LUKS 헤더를 어떻게 백업합니까?
LUKS 파티션의 시작 부분에서 적절한 바이트 수만 복사 할 수 있지만 가장 좋은 방법은 cryptsetup의 "luksHeaderBackup"명령 옵션을 사용하는 것입니다. 이는 비표준 매개 변수가 LUKS 파티션 작성에 사용 된 경우 오류로부터 보호합니다. 예:
cryptsetup luksHeaderBackup --header-backup-file <file> <device>
복원하려면 inverse 명령, 즉
cryptsetup luksHeaderRestore --header-backup-file <file> <device>
복원 할 헤더가 확실하지 않으면 현재 헤더를 먼저 백업하십시오! 다음과 같이 분리 된 헤더에 --header 옵션을 사용하여 헤더 파일을 복원하지 않고 테스트 할 수도 있습니다.
cryptsetup --header <file> luksOpen <device> </dev/mapper/ -name>
그것이 키 슬롯을 잠금 해제하면 좋습니다. 장치를 다시 닫는 것을 잊지 마십시오.
상황에 따라 (손상된 헤더) 실패합니다. 그런 다음 다음 단계를 사용하십시오.
먼저 마스터 키 크기를 결정하십시오.
cryptsetup luksDump <device>
형태의 라인을 제공합니다
MK bits: <bits>
이전 기본값은 256이고 새 기본값은 512입니다. 256 비트는 총 헤더 크기가 1'052'672 바이트이고 512 비트는 2MiB 중 하나입니다. (항목 6.12 참조) luksDump가 실패하면 2MiB를 가정하지만 복원하면 파일 시스템의 첫 1M 정도를 복원 할 수도 있습니다. 헤더 크기를 결정할 수 없으면 파일 시스템을 변경하지 마십시오! 이를 통해 너무 큰 헤더 백업을 복원하는 것이 여전히 안전합니다.
둘째, 헤더를 파일로 덤프하십시오. 여러 가지 방법이 있으며 다음을 선호합니다.
head -c 1052672 <device> > header_backup.dmp
또는
head -c 2M <device> > header_backup.dmp
2MiB 헤더 용. 덤프 파일의 크기를 확인하십시오. 이러한 백업을 복원하려면 luksHeaderRestore를 시도하거나보다 기본적인 작업을 수행하십시오
cat header_backup.dmp > <device>
Veracrypt
Veracrypt는 LUKS와 유사합니다. Truecrypt와 함께 사용하지 않았지만 일반적인 아이디어는 유지됩니다.
Veracrypt에는 하나의 키 슬롯 만 있으므로 동시에 둘 이상의 암호를 가질 수 없습니다. 그러나 숨겨진 볼륨을 가질 수 있습니다. 파티션 (또는 디스크 또는 파일) 끝에 메타 데이터를 저장합니다. 숨겨진 볼륨에는 다른 마스터 키가 있으며 파티션의 끝을 겹친 공간으로 사용합니다. 백업해야한다는 생각은 동일합니다. 이 작업은 Tools -> Backup Volume Header
and 로 수행 할 수 있습니다 Tools -> Restore Volume Header
. 시스템 암호화를 사용하면 키 백업으로 부팅 가능한 디스크를 만들어 손상이 발생한 경우 Truecrypt 로더와 키를 복구했습니다. 그것은 무엇이든 암호화하기 전에 완료되며, 내가 아는 한 Veracrypt는 계속 같은 방식으로 수행합니다.
자세한 내용은이 링크를 참조하십시오 https://veracrypt.codeplex.com/wikipage?title=Program%20Menu
백업 키에 대한 보안 고려 사항
예를 들어, 유출 된 비밀번호가 있고 볼륨 비밀번호를 새롭고 강력하고 안전한 비밀번호로 변경하더라도 백업에 액세스 할 수있는 사람은 여전히 이전 비밀번호로 파일을 해독 할 수 있습니다. 백업은 기본적으로 (이전) 암호로 암호화 된 마스터 키입니다. 따라서 비밀번호를 변경할 때 새 백업을 만들고 이전 비밀번호를 파기해야합니다. 그리고 데이터를 영구적으로 파괴하는 것은 매우 까다로울 수 있습니다.
해당 비밀번호로 보유한 모든 백업에 대해 해당 비밀번호로 데이터를 해독 할 수있는 방법입니다. 예를 들어 회사와 같은 "Universal Password"를 사용하여 백업하고 다른 암호로 변경하는 등 Veracrypt에서 사용할 수 있습니다. 그래서 IT 부서. 누군가 비밀번호를 잊어 버린 경우에도 해당 볼륨에 대한 액세스를 복구 할 수 있습니다 (마스터 비밀번호라고 생각하지만 이전의 마스터 키와 혼동하지 마십시오).
최종 생각 (TL; DR)
마스터 키를 사용하여 특정 섹터를 손상시킬 가능성은 전체 디스크 장애가 발생할 가능성보다 적습니다. 따라서이 데이터가 중요한 경우 볼륨 헤더 (마스터 키) 대신 백업해야합니다.
또한 데이터 손상이 거의 발생하지 않아 (16 바이트) 대부분의 사용에 적합합니다.
따라서 파티션 또는 디스크 중간에 불량 블록이 있으면 해당 블록에만 영향을줍니다. 그리고 섹터의 몇 비트 오류는 해당 섹터로 제한되며 총 512 바이트 섹터에도 영향을 미치지 않습니다.
업데이트 (23/01/2017) : OP 의견을 기반으로 추가 정보를 추가하십시오.