“전체 디스크 암호화를 지원하는 개인정보 중심 VPS”를 검색하면 대개 요금 페이지의 체크박스 하나로 끝납니다. 그 체크박스는 진짜지만, 그걸로 얻는 것은 마케팅이 암시하는 것보다 좁습니다. 무언가를 암호화하기 전에 누구로부터 데이터를 보호하려는지 분명히 해 두면 도움이 됩니다. 중요한 한 가지 경우에서 디스크 암호화는 아무것도 해 주지 않기 때문입니다.
VPS 암호화가 보호하는 것과 보호하지 못하는 것
VPS는 다른 사람의 하드웨어에서 돌아가는 가상 머신입니다. 실행 중에는 디스크가 잠금 해제되어 있고 암호화 키가 VM의 메모리에 있습니다. 호스트 머신은 원칙적으로 그 메모리를 읽을 수 있습니다. 따라서 다음과 같습니다.
암호화가 도움이 되는 경우:
- 디스크 이미지나 스냅샷의 복사본이 있어서는 안 될 곳으로 흘러갔을 때.
- 하드웨어 교체 후 오래된 디스크가 폐기될 때.
- 누군가 실행 중인 서버에는 접근하지 못하지만 스토리지나 백업에는 접근했을 때.
암호화가 도움이 되지 않는 경우:
- 실행 중인 호스트를 제어하는 사람.
- 서버에서 셸을 얻은 공격자. 그에게 디스크는 이미 잠금 해제되어 있습니다.
- 서버가 켜져 있는 동안 전달된 법적 요청.
그렇다고 암호화를 건너뛸 이유는 아닙니다. 알맞은 용도로 쓰고, 투명 인간이 된 것처럼 착각하지 말라는 이유입니다.
왜 루트 디스크 전체를 암호화하지 않나요?
할 수는 있지만, 그러면 재부팅할 때마다 암호 문구 입력에서 멈춥니다. 웹 콘솔로 잠금을 풀거나, initramfs에 SSH 서버(dropbear)를 넣어 원격으로 풀어야 합니다. 이제 커널 업데이트마다 여러분이 자리에 있어야 하고, 무인 재부팅은 여러분이 로그인할 때까지의 중단을 뜻합니다. 대부분의 사람에게 더 나은 절충안은 시스템 디스크는 평소대로 두고, 민감한 데이터는 부팅 후 잠금을 푸는 암호화 볼륨에 두는 것입니다.
명령 5개로 만드는 암호화 금고
파일 안의 LUKS 컨테이너는 추가 디스크 없이 어떤 VPS에서든 동작합니다.
apt install -y cryptsetup
fallocate -l 10G /srv/vault.img
cryptsetup luksFormat /srv/vault.img # set a strong passphrase
cryptsetup open /srv/vault.img vault
mkfs.ext4 /dev/mapper/vault
마운트해서 사용합니다.
mkdir -p /mnt/vault && mount /dev/mapper/vault /mnt/vault
재부팅 후에는 다시 열 때까지 금고가 잠긴 상태로 유지됩니다.
cryptsetup open /srv/vault.img vault && mount /dev/mapper/vault /mnt/vault
예비 키로 두 번째 암호 문구를 추가하고(cryptsetup luksAddKey /srv/vault.img), 둘 다 비밀번호 관리자에 보관하세요. 둘 다 잃으면 데이터는 영원히 사라집니다. 어떤 지원 요청으로도 되찾을 수 없습니다.
민감한 서비스(데이터베이스 디렉터리, 문서 저장소, 비밀번호 관리자의 데이터 폴더)가 /mnt/vault를 사용하도록 하고, 금고가 마운트된 뒤에만 시작되게 하세요.
대개 더 나은 방법: 디스크가 아니라 데이터를 암호화하기
디스크 암호화는 디스크에서 끝납니다. 다른 곳으로 복사하는 데이터(백업, 내보내기, 동기화)는 그것까지 암호화하지 않는 한 암호화되지 않은 채로 이동합니다. 데이터를 따라가는 보호가 대개 더 가치 있습니다.
- 백업: restic은 업로드 전에 클라이언트 측에서 모든 것을 암호화합니다.
- 파일:
age -p secrets.tar > secrets.tar.age로 암호 문구를 써서 암호화합니다. - 앱 안의 비밀 정보: 앱 자체의 암호화를 쓰세요(여러 비밀번호 관리자, Nextcloud의 서버 측 암호화, 데이터베이스 열 암호화).
EQVPS에서는 어떻게 하나요
저희는 신분증을 요구하지 않고, 여러분의 데이터를 팔지 않으며, warrant canary를 공개합니다. Managed Backups는 호스트를 떠나기 전에 암호화되고 스토리지에서도 암호화된 상태를 유지하지만, 저희 키를 씁니다. 저희가 복원할 수 없는 백업은 백업이 아니기 때문입니다. 여러분 외에는 아무도 읽을 수 없는 데이터가 필요하다면, 디스크에 닿기 전에 직접 암호화하세요. 이는 저희를 포함한 어떤 서버에서든 마찬가지입니다.
정리
유출된 스냅샷에서 보고 싶지 않은 모든 것은 데이터 볼륨을 암호화해서 두세요. 백업은 원천에서 암호화하세요. 그리고 체크박스 하나 때문에 실행 중인 가상 서버가 금고라고 믿지 마세요. 여러분이 가진 가장 강력한 개인정보 보호 도구는 필요 없는 데이터를 아예 보관하지 않는 것입니다.
댓글
아직 댓글이 없습니다. 첫 번째가 되세요.