Skip to Content

디스크 암호화

Warning

26.10 업그레이드 제한(2026-10-18 확인): TPM 지원 FDE 시스템은 릴리스 시 26.04에서 업그레이드할 수 없습니다. 일반 LUKS 및 Ubuntu TPM/FDE은 다른 관리 경로를 사용합니다. TPM/FDE에 일반 키 순환 또는 GRUB 편집 내용을 적용하지 마십시오. 26.10 알려진 문제을 참조하세요.

디스크 암호화는 데이터 보안을 보호하기 위한 중요한 수단입니다. 장치를 분실하거나 도난당한 경우에도 암호화된 데이터는 승인되지 않은 당사자가 읽을 수 없습니다. 이 문서에서는 Ubuntu 26.04의 다양한 디스크 암호화 옵션을 다룹니다.

Caution

암호화된 비밀번호는 데이터에 접근하기 위한 유일한 자격 증명입니다. 비밀번호를 잊어버리고 백업 키 파일이나 LUKS 헤더 백업이 없는 경우 암호화된 데이터는 영구적으로 복구할 수 없습니다. 비밀번호를 비밀번호 관리자에 저장하고 LUKS 헤더 백업을 안전한 외부 위치에 저장하세요.

LUKS 전체 디스크 암호화

LUKS(Linux Unified Key Setup)는 Linux용 표준 디스크 암호화 솔루션입니다.

설치 중 전체 디스크 암호화 활성화

Ubuntu 26.04 설치 중에 전체 디스크 암호화를 활성화하는 것이 가장 간단한 방법입니다.

  1. 설치 프로그램 시작
  2. “설치 유형” 단계에서 “고급 기능”을 선택하세요.
  3. “LVM 사용” 및 “보안을 위해 설치 암호화”를 선택하십시오.
  4. 암호화된 비밀번호를 설정하세요(반드시 기억하세요)
  5. 설치를 완료하세요

설치 후 디스크 잠금을 해제하려면 부팅할 때마다 암호화 비밀번호를 입력해야 합니다.

TPM 지원 전체 디스크 암호화(TPM 지원 FDE)

Ubuntu 26.04 데스크탑 설치 프로그램은 TPM 지원 전체 디스크 암호화를 지원합니다. 암호화 키는 마더보드의 TPM 2.0 칩에 봉인되어 보안 부팅 측정에 바인딩됩니다. 부팅 시 시스템 무결성이 손상되지 않은 경우 TPM는 매번 비밀번호를 요구하지 않고 자동으로 디스크 잠금을 해제하는 키를 해제합니다.

설치 중 활성화

  1. 설치 프로그램의 “설치 유형” 단계에서 전체 디스크 암호화를 활성화합니다.
  2. 사용 가능한 TPM 2.0이 감지되고 보안 부팅이 활성화된 경우 설치 프로그램은 “이 컴퓨터의 TPM로 잠금 해제” 옵션을 제공합니다.
  3. 설치 프로그램이 복구 키를 생성하여 오프라인으로 저장합니다. TPM이 디스크 잠금을 해제할 수 없는 경우의 유일한 대체 조치입니다.
Caution

TPM으로 봉인된 키는 부팅 측정에 바인딩됩니다. 마더보드 교체, TPM 지우기, 보안 부팅 비활성화 또는 주요 펌웨어 업데이트로 인해 TPM 잠금 해제가 거부될 수 있습니다. 이 경우 복구 키를 사용하여 수동으로 잠금을 해제해야 합니다. 그렇지 않으면 데이터에 액세스할 수 없습니다. 복구 키를 장치와 별도로 안전한 위치에 보관하세요.

Note

26.04.1부터 펌웨어를 자동으로 확인할 수 없는 하드웨어에서는 필수 TPM/FDE PIN을 비활성화할 수 있습니다. 공식 문서에서는 이로 인해 펌웨어 변조에 대한 보호 기능이 저하된다고 경고하므로 위협 모델에 따라 결정하세요.

Ubuntu 관리 TPM/FDE

Security Center를 통해 PIN, 암호 및 복구 키를 관리하세요. 일반 systemd-cryptenroll 재등록 명령은 Ubuntu 설치 프로그램 관리 TPM/FDE를 유지 관리하기 위한 지침이 아닙니다. 고정된 /dev/sda3 예를 사용하여 키 슬롯을 삭제하지 마십시오.

이 읽기 전용 명령으로 저장소 레이아웃을 검사합니다. TPM/FDE이 활성화되었는지 확인하지 않습니다.

lsblk -f

키 관리는 공식 하드웨어 기반 암호화 문서 를 따르세요. 아래 LUKS 검사는 독립적으로 관리되는 일반 LUKS 볼륨에만 적용됩니다. 장치 이름을 검증된 실제 장치로 바꿉니다.

암호화 상태 확인

# View LUKS devices sudo dmsetup status # View LUKS details sudo cryptsetup luksDump /dev/sda3 # View encrypted volume status sudo cryptsetup status luks-volume-name # View block devices and encryption relationships lsblk -f

외부 저장 장치 암호화

LUKS로 USB 드라이브 암호화

# Confirm the device name (very important -- avoid encrypting the wrong device) lsblk # Encrypt the partition (this will erase all data!) sudo cryptsetup luksFormat /dev/sdb1 # Confirm by typing YES (uppercase), then set a password # Open the encrypted partition sudo cryptsetup luksOpen /dev/sdb1 encrypted_usb # Format sudo mkfs.ext4 /dev/mapper/encrypted_usb # Mount sudo mkdir -p /mnt/encrypted sudo mount /dev/mapper/encrypted_usb /mnt/encrypted # Unmount when done sudo umount /mnt/encrypted sudo cryptsetup luksClose encrypted_usb

암호화된 USB 장치의 일상적인 사용

GNOME 데스크탑 환경에서는 암호화된 USB 장치를 연결하면 비밀번호 프롬프트가 자동으로 나타납니다. 명령줄 작업:

# Open the encrypted device sudo cryptsetup luksOpen /dev/sdb1 encrypted_usb # Mount sudo mount /dev/mapper/encrypted_usb /mnt/encrypted # ... use ... # Unmount and close sudo umount /mnt/encrypted sudo cryptsetup luksClose encrypted_usb

LUKS 키 관리

키 추가

Ubuntu 26.04은 기본적으로 최대 32개의 키 슬롯을 지원하는 LUKS2를 사용합니다(LUKS1은 8, 0-7만 지원).

# Add a new password sudo cryptsetup luksAddKey /dev/sda3 # You must first enter an existing password, then enter the new one # Add a key file sudo dd if=/dev/urandom of=/root/luks-keyfile bs=4096 count=1 sudo chmod 600 /root/luks-keyfile sudo cryptsetup luksAddKey /dev/sda3 /root/luks-keyfile

키 제거

# Remove a specific key slot sudo cryptsetup luksKillSlot /dev/sda3 1 # Remove a specific password (enter the password to remove) sudo cryptsetup luksRemoveKey /dev/sda3

키 슬롯 상태 보기

sudo cryptsetup luksDump /dev/sda3 | grep "Key Slot" # Example output: # Key Slot 0: ENABLED # Key Slot 1: ENABLED # Key Slot 2: DISABLED # ...

비밀번호 변경

# Change an existing password sudo cryptsetup luksChangeKey /dev/sda3 # Enter the old password first, then enter the new one

키 파일을 사용한 자동 잠금 해제

데이터 파티션에 대한 자동 잠금 해제 구성

시스템 디스크가 이미 암호화된 경우 시스템 디스크가 잠금 해제된 후 키 파일을 사용하여 데이터 파티션을 자동으로 잠금 해제할 수 있습니다.

# Generate a key file sudo dd if=/dev/urandom of=/root/.luks-data-key bs=4096 count=1 sudo chmod 400 /root/.luks-data-key # Add the key file to the LUKS device sudo cryptsetup luksAddKey /dev/sdb1 /root/.luks-data-key # Get the UUID sudo blkid /dev/sdb1 # Configure /etc/crypttab sudo nano /etc/crypttab

/etc/crypttab에 추가:

# <name> <device> <key file> <options> data_encrypted UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /root/.luks-data-key luks

/etc/fstab에 마운트 구성을 추가합니다.

/dev/mapper/data_encrypted /mnt/data ext4 defaults 0 2
# Test the configuration sudo cryptdisks_start data_encrypted sudo mount /mnt/data

홈 디렉토리 암호화

홈 디렉토리 암호화에 fscrypt 사용

Ubuntu 26.04은 디렉터리 수준 암호화를 위해 fscrypt를 권장합니다.

# Install fscrypt sudo apt install fscrypt libpam-fscrypt # Initialize fscrypt (on the filesystem) sudo fscrypt setup sudo fscrypt setup /home # Encrypt a new user's home directory sudo fscrypt encrypt /home/newuser --user=newuser

기존 디렉터리에 대한 암호화 활성화

# Create an encrypted directory mkdir ~/Private fscrypt encrypt ~/Private # Choose a protection method (password, PAM login, etc.) # PAM login protection is recommended -- auto-unlocks on login # Lock the directory fscrypt lock ~/Private # Unlock the directory fscrypt unlock ~/Private # Check encryption status fscrypt status ~/Private

스왑 암호화

무작위 키로 스왑 암호화

# Edit /etc/crypttab sudo nano /etc/crypttab

추가하다:

cryptswap /dev/sdXN /dev/urandom swap,cipher=aes-xts-plain64,size=256

/etc/fstab 업데이트:

/dev/mapper/cryptswap none swap sw 0 0

스왑 파일 사용(LUKS 암호화 디스크에서)

시스템이 이미 LUKS 전체 디스크 암호화를 사용하는 경우 스왑 파일은 이미 암호화로 보호됩니다.

# Create a swap file sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # Persist echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

LUKS 성능 최적화

암호화 성능 확인

# View current encryption algorithm sudo cryptsetup luksDump /dev/sda3 | grep "Cipher" # Benchmark encryption performance sudo cryptsetup benchmark # Example output: # PBKDF2-sha1 1200000 iterations per second # PBKDF2-sha256 800000 iterations per second # Algorithm | Key | Encryption | Decryption # aes-cbc 128b 1200.0 MiB/s 3500.0 MiB/s # aes-cbc 256b 900.0 MiB/s 2800.0 MiB/s # aes-xts 256b 2500.0 MiB/s 2600.0 MiB/s # aes-xts 512b 2100.0 MiB/s 2200.0 MiB/s

최적화 옵션

# Use AES-NI hardware acceleration (most modern CPUs support it) grep aes /proc/cpuinfo # Specify high-performance parameters when creating an encrypted partition sudo cryptsetup luksFormat --type luks2 --cipher aes-xts-plain64 --key-size 512 --hash sha256 /dev/sdb1

암호화 헤더 백업

LUKS 헤더가 손상되면 데이터가 완전히 손실될 수 있습니다. 항상 백업하세요:

# Back up the LUKS header sudo cryptsetup luksHeaderBackup /dev/sda3 --header-backup-file /safe/location/luks-header-backup # Restore the LUKS header (for data recovery) sudo cryptsetup luksHeaderRestore /dev/sda3 --header-backup-file /safe/location/luks-header-backup

LUKS 헤더 백업을 안전한 외부 위치(예: 금고에 있는 USB 장치)에 저장하세요.

긴급 데이터 삭제

암호화된 데이터를 긴급하게 파기해야 하는 경우:

# Wipe the LUKS header (data will be permanently unrecoverable!) sudo cryptsetup luksErase /dev/sda3 # Or overwrite the LUKS header area sudo dd if=/dev/urandom of=/dev/sda3 bs=1M count=2

모든 데이터를 삭제하는 것이 아니라 암호화 키만 파기하면 되므로 이 작업은 몇 초 밖에 걸리지 않습니다.

문제 해결

비밀번호를 잊어버린 경우

LUKS 비밀번호를 잊어버리셨고, 백업키 파일이 없는 경우에는 데이터를 복구하실 수 없습니다. 예방 조치:

  • 비밀번호 관리자에 암호화 비밀번호를 저장하세요.
  • 여러 키 슬롯을 백업으로 설정
  • LUKS 헤더 백업

부팅 시 잠금을 해제할 수 없음

# Boot from a Live USB # Open the encrypted partition sudo cryptsetup luksOpen /dev/sda3 recovery # Mount sudo mount /dev/mapper/recovery /mnt # Check and repair sudo fsck /dev/mapper/recovery # When done sudo umount /mnt sudo cryptsetup luksClose recovery