암호화된 디스크 파일 시스템 호환성

암호화된 디스크 파일 시스템 호환성

내 Debian Linux 시스템에서는 설치 중에 디스크 암호화(일반 Debian 설치 중에 제공되는 암호화)를 사용하기로 결정했습니다. 시스템이 부팅될 때 암호를 입력해야 하며 그러면 "실제" 부팅이 시작됩니다.

누군가 이 암호화가 어떻게 수행되는지 설명할 수 있습니까? 파일 시스템 레이아웃 이전에 발생합니까, 아니면 이후에 발생합니까? 디스크 암호화를 위해 Linux에서 사용 가능한 모든 파일 시스템을 사용할 수 있습니까?

이것/etc/mtab/Linux에서 사용하는 것보다 더 복잡한 것은 디스크 암호화와 관련이 있다고 생각하지만 실제로는 확실하지 않습니다. 이것은 (내 생각에) 나와 관련된 콘텐츠입니다./etc/mtab:

/dev/sda1 /boot ext2 rw,relatime,errors=continue 0 
/dev/mapper/archon-root / ext4 rw,noatime,errors=remount-ro,user_xattr,commit=300,barrier=1,data=ordered 0 0
rootfs / rootfs rw 0 0

/boot가 ext2인 이유와 /가 ext-4인 이유를 정말로 이해하지 못합니다./dev/매퍼.

/boot 자체가 ext4를 사용할 수 있습니까?

ZFS를 사용할 수 있거나 사용 중이며 여전히 암호화를 제공합니까?

답변1

/boot암호화되지 않았습니다(BIOS는 이를 해독할 수 없습니다...). ext4일 수도 있지만 꼭 필요한 것은 아닙니다. 일반적으로 작성되지 않습니다. BIOS는 MBR에서 GRUB를 읽고 GRUB는 /boot에서 커널 및 initramfs의 나머지 부분을 읽습니다. initramfs는 비밀번호를 묻는 메시지를 표시합니다. (아마도 cryptsetupLUKS 헤더를 사용하고 있을 것입니다.)

암호화는 하나의 레이어에서 수행됩니다.다음과 같은파일 시스템. dm-crypt(cryptsetup에서 사용하는 저수준 커널 백엔드)라는 것을 사용하고 있습니다. 여기서 "dm"은 "Device Mapper"를 나타냅니다. 또한 커널 장치 매퍼 계층에 의해 구현되는 LVM을 사용하는 것 같습니다. 기본적으로 다음과 같은 스토리지 스택이 있습니다.

1. /dev/sda2              (guessing it's 2, could be any partition other than 1)
2. /dev/mapper/sda2_crypt (dm-crypt layer; used as a PV for VG archon)
3. LVM (volume group archon)
4. /dev/mapper/archon-root (logical volume in group archon)
5. ext4

명령을 사용하여 이러한 항목을 모두 찾을 수 있습니다 dmsetup. 예를 들어 dmsetup ls목록에 어떤 Device Mapper 장치가 있는지 알려줄 것입니다. dmsetup info일부 세부 사항이 제공되고 dmsetup table매핑 계층에서 수행되는 변환에 대한 기술적 세부 사항이 제공됩니다.

작동 방식은 dm-crypt 레이어(위의 #2)가 암호화를 수행하여 데이터를 "매핑"하는 것입니다. 따라서 /dev/mapper/sda2_crypt에 기록된 모든 내용은 /dev/sda2(실제 하드 드라이브)로 전달되기 전에 암호화됩니다. /dev/sda2에서 오는 모든 것은 /dev/mapper/sda2_crypt로 나가기 전에 해독됩니다.

따라서 모든 상위 계층은 이 암호화를 투명하게 사용합니다. 이를 사용하는 첫 번째 상위 계층은 LVM입니다. LVM을 사용하여 디스크를 논리 볼륨으로 나누고 있습니다. 루트 파일 시스템에 대해 (적어도) root라는 파일 시스템이 있습니다. 이는 일반 블록 장치이므로 다른 장치처럼 사용할 수 있습니다. 원시 데이터까지 포함하여 원하는 파일 시스템을 거기에 넣을 수 있습니다. 데이터는 암호화되어 전달됩니다.

알아야 할 사항(맨페이지 등 확인):

  • /etc/crypttab
  • LVM(일부 중요한 명령: lvs, pvs, lvcreate, lvextend)
  • cryptsetup

답변2

Debian 설정 및 기타 많은 배포판에서는 다음을 사용합니다.크립트 설정/LUKS전체 디스크 암호화.

전체 디스크 암호화는 온디스크 파티션을 암호화하고 암호화/암호 해독을 캡슐화하여 암호화된 파티션이 시스템의 나머지 부분에 일반 블록 수준 장치로 표시되도록 합니다. 그런 다음 블록 장치를 원하는 일반 파일 시스템(ext2/3/4, xfs, jfs, btrfs)으로 포맷할 수 있습니다.커널 3.2 이상). 파일 시스템은 암호화되지 않은 데이터를 정상적으로 디스크에 기록합니다. 그런 다음 LUKS 하위 시스템은 물리적 장치에 쓰기 전에 이 데이터를 암호화합니다. 역방향 읽기. 이는 파일 시스템, 애플리케이션 및 사용자에게 투명합니다. 실제로 그러한 디스크에 기록된 모든 내용은 암호화됩니다. 디스크를 외부에서 검사해 보면 임의의 정크가 있는 것을 볼 수 있습니다.

물리 분할은 /dev/mapper/<a unique name here>의 장치 에 매핑됩니다 /etc/crypttab. 귀하의 암호문은 다음과 같습니다:

archon-root     /dev/sda2     none

실제 파티션을 암호화하고 /dev/sda2암호화된 장치에 매핑합니다 /dev/mapper/archon-root. 그러면 당신의 /etc/fstab유언장이 설치될 것입니다매핑된장비 또는 기타 필요한 것 /dev/mapper/archon-root./

Solaris의 ZFS에는 내장된 암호화가 포함되어 있습니다. Linux에서는 그렇지 않습니다. zfs를 기대하고 있어요~해야 한다Cryptstup/LUKS 파티션에서 작동하지만 이것이 문제를 드러낼지는 모르겠습니다. 완전한 ZFS/ZRaid 보호를 받으려면 설정이 확실히 어려울 수 있습니다. 다른 파일 시스템은 이 설정에서 잘 작동합니다. 사실 그들은 그것을 전혀 모르고 있습니다. ZFS는 대부분의(btrfs 제외) 다른 파일 시스템보다 기본 디스크에 대해 훨씬 더 많은 작업을 수행합니다.

부팅 파티션은 ext4여야 합니다. 그러나 부팅 파티션은 부트로더(grub)에서 읽어야 하고 (내가 아는 한) 암호화 지원이 없기 때문에 Cryptsetup/LUKS를 사용하여 암호화할 수 없습니다. 커널이 로드되어 init 프로세스를 시작하면 암호화된 장치를 열 때 비밀번호를 묻는 메시지가 표시됩니다.

관련 정보