부팅 디스크를 암호화할 수 있지만 시스템 부팅 시 사용자에게 비밀번호를 입력하지 않아도 됩니까? 외딴 지역에 머리가 없는 상자가 몇 개 있는데 안전하게 폐기될 것이라고 보장할 수 없습니다.
누군가가 디스크 드라이브를 꺼내서 다른 장치에 연결하고 그 안에 무엇이 있는지 볼 수 없도록 하고 싶지만 동시에 시스템은 사용자 개입 없이 (재)시작할 수 있어야 합니다.
암호화에 대한 경험이 거의 없지만 UEFI에 키를 저장하는 것을 고려하고 있지만 그런 것이 가능한지에 대한 정보를 찾을 수 없습니다.
Ubuntu 18.04 LTS를 사용하고 있지만 필요한 경우 업그레이드할 수 있습니다.
답변1
디스크 드라이브를 지정된 호스트에 바인딩하고 암호를 수동으로 입력하지 않고도 암호를 해독할 수 있도록 하려면 일반적으로 호스트의 TPM(Trusted Platform Module) 등에 암호화 키를 저장하거나 바인딩해야 합니다. 이러한 설정을 사용하면 디스크가 호스트에서 제거되면 디스크의 암호를 해독할 수 없습니다.
네트워크가 신뢰할 수 있는 경우 또 다른 가능한 해결책은 암호화 키를 네트워크(엄격히 말하면 네트워크에 있는 일종의 키 서버)에 바인딩하는 것입니다. 이와 같은 설정을 사용하면 호스트가 올바른 네트워크에 있지 않으면 디스크를 해독할 수 없습니다.
둘 다 다음에서 지원됩니다.U자형 클립. U자형 클립은 TPM2 또는당나라키 바인딩의 경우 Shamir 비밀 공유를 사용하여 여러 키 소스를 결합할 수도 있습니다. 두 경우 모두 프로세스 중 특정 시점에 액세스할 수 없는 키를 사용하여 기밀성이 보장됩니다. TPM에 저장된 키는 TPM에서 추출할 수 없으며 네트워크의 다른 위치에 있는 호스트에 저장된 키에서도 추출할 수 없습니다. 열쇠.
다음과 같은 다른 도구가 존재합니다.TPM-LUKS.
답변2
USB 플래시 드라이브에 암호화 키를 저장합니다.
키가 표준 파일 시스템의 바이너리 파일이기 때문에 TPM 솔루션만큼 안전하지는 않지만 드라이브를 컴퓨터의 나머지 부분과 분리하는 것이 목표라면 충분합니다.
/etc/crypttab
안타깝게도 플래시 드라이브가 이미 마운트되어 있어야 하기 때문에 세 번째 열을 사용할 수 없습니다 . fstab
암호화된 파티션에 있기 때문에 사용할 수 없습니다. 즉, 닭고기와 달걀 문제가 발생합니다. 하지만 키보드 스크립트( 참조 man crypttab
) 를 사용할 수 있어야 합니다 .initramfs 후크.
어떤 방법을 선택하든 부팅 프로세스의 첫 번째 단계(커널 + initramfs)는 암호화되지 않은 상태로 유지되어야 합니다. 슈퍼 비밀 커널 패치(Exm GPL Exm;) ) 또는 initramfs에 민감한 콘텐츠를 저장하세요. 따라서 암호화 키는 initramfs에 내장되어 있으므로 키 스크립트나 후크에 직접 저장하지 마십시오.
답변3
디스크에서 운영 체제를 분리합니다. NET에서 RAM으로 운영 체제를 로드합니다. 디스크 키와 함께 운영 체제를 보내드립니다. 컴퓨터를 켜면 네트워크(PXE)를 통해 운영 체제를 찾습니다. 누군가 운영 체제 없이 컴퓨터를 종료하면 컴퓨터가 해킹되었음을 알게 됩니다.
https://superuser.com/questions/484849/is-it-possible-to-boot-from-internet
답변4
선택적으로 initramfs에 dropbear(최소 SSH 서버)를 설치한 다음 SSH를 통해 연결하고 암호화 키를 제공할 때까지 기다리는 dropbear 지원 모드로 부팅할 수 있습니다.
확인하다이 예제 블로그 게시물.