Linux 부트로더는 전체 디스크 암호화를 지원합니까?

Linux 부트로더는 전체 디스크 암호화를 지원합니까?

전체 디스크 암호화(a la)를 지원하는 Linux 부트로더가 있습니까?진정한 비밀). 누군가 GRUB2에 암호화 지원을 추가하는 작업을 하고 있다는 것을 알고 있지만 아직 준비가 되지 않은 것 같습니다. 다른 옵션이 있나요?

(여기서 실제로 의미하는 것은 전체 디스크 암호화 - 포함 /boot)

대부분의 답변은 암호화되지 않은 설정을 설명 /boot하고 일부 답변은 암호화 /boot되지 않은 것이 왜 좋은지 설명하려고 합니다.

실제로 암호화하기 위해 /boot가 필요한 이유를 설명하지 않고 다음은 필요한 사항을 정확하게 설명하는 GRUB2의 수정된 버전을 기반으로 한 기사입니다.

문제는 이러한 수정 사항이 현재 GRUB2 코드베이스에서 지원되지 않는 것 같다는 것입니다(또는 제가 간과하고 있는 것일 수도 있습니다).

답변1

GRUB2의 현재 버전은 기본적으로 LUKS 파티션 마운트 및 암호 해독을 지원하지 않는 것 같습니다(일부 비밀번호가 포함되어 있지만 비밀번호 지원에만 사용되는 것 같습니다). 실험적인 개발 브랜치를 확인할 수는 없지만 GRUB 페이지에 몇 가지 힌트가 있으며 원하는 작업을 달성하기 위한 일부 작업이 계획되어 있습니다.

업데이트됨(2015년): 최신 버전의 GRUB2(2.00)에는 이미 LUKS 및 GELI 암호화 파티션에 액세스하는 코드가 포함되어 있습니다. (OP에서 제공하는 xercesch.com 링크에는 첫 번째 패치가 언급되어 있지만 이제 최신 버전에 통합되었습니다.)

그러나 보안상의 이유로 전체 디스크를 암호화하려는 경우 암호화되지 않은 부트로더(예: TrueCrypt, BitLocker 또는 수정된 GRUB)는 다음과 같이 /boot암호화되지 않은 파티션(예: 위의 JV)보다 더 많은 보호 기능을 제공하지 않는다는 점에 유의하세요. 댓글에 명시되어 있습니다). 컴퓨터에 물리적으로 접근할 수 있는 사람이라면 누구나 컴퓨터를 맞춤형 버전으로 쉽게 교체할 수 있습니다. 이는 귀하가 링크한 xercestech.com 기사에서도 언급되었습니다.

분명히 말하면, 이것이 어떤 방식으로든 시스템이 오프라인 공격에 덜 취약해지는 것은 아닙니다. 공격자가 부트로더를 자체 부트로더로 교체하거나 자체 코드를 부팅하도록 부팅 프로세스를 리디렉션하는 경우 시스템이 여전히 손상될 수 있습니다.

이 취약점은 암호화되지 않은 부트 로더 또는 암호화되지 않은 부팅/사전 부팅 파티션을 사용하는지 여부에 관계없이 모든 소프트웨어 기반 전체 디스크 암호화 제품에 존재합니다. BitLocker와 같이 TPM(신뢰할 수 있는 플랫폼 모듈) 칩을 지원하는 제품도 하드웨어를 수정하지 않고도 루팅할 수 있습니다.

더 나은 접근 방식은 다음과 같습니다.

  1. BIOS 수준에서 암호 해독(TPM 칩 유무에 관계없이 마더보드, 디스크 어댑터 또는 외부 하드웨어[스마트 카드]) 또는
  2. /boot스마트 카드나 USB 스틱과 같은 이동식 장치에 PBA(Preboot Authorization) 코드(이 경우 파티션)를 휴대하세요.

두 번째 접근 방식을 취하려면 다음 위치에서 Linux 전체 디스크 암호화(LFDE) 프로젝트를 확인하세요.http://lfde.org//bootGPG 암호화 키를 사용하고 이를 USB에도 저장하여 파티션을 외부 USB 드라이브로 이동하는 설치 후 스크립트를 제공합니다 . 이렇게 하면 부팅 경로의 약한 부분(암호화되지 않은 /boot파티션)이 항상 사용자와 함께 있게 됩니다(해독 코드 및 키에 물리적으로 접근할 수 있는 유일한 사람은 사용자가 됩니다). (노트: 홈페이지가 없어졌고, 작가님의 블로그도 사라졌으나, 예전 파일은 다음에서 찾으실 수 있습니다.https://github.com/mv-code/lfde마지막 개발은 6년 전에 이루어졌습니다.) 더 간단한 대안으로 운영 체제를 설치할 때 USB 스틱에 암호화되지 않은 부팅 파티션을 설치할 수 있습니다.

안녕하세요, MV

답변2

초기 RAMdisk 및 /boot 폴더를 암호화되지 않은 상태로 만드세요.

그러면 "실제" 루트 파일 시스템으로 전환하기 위한 드라이버와 지원이 포함된 "최소" 커널이 실행됩니다.암호화되었습니다.

"이건 해킹이다"라고 주장하기 전에 기억하세요. 현재 대부분의 Linux 배포판은 기본적으로 이 방식으로 부팅됩니다. 이를 통해 시스템이 파일 시스템에서 로드해야 하는 모듈을 사용하여 루트 파일 시스템을 부팅하고 로드할 수 있습니다. (닭고기나 달걀 문제와 약간 비슷합니다). 예를 들어 루트 파일 시스템이 하드웨어 RAID 볼륨에 있고 루트 FS를 마운트하기 전에 해당 드라이버를 로드해야 하는 경우입니다.

답변3

귀하가 게시한 링크를 살펴보았습니다. 비록 부팅 파티션은 없지만 하드 드라이브에는 여전히 암호화되지 않은 부트 로더가 있어 악의적인 하녀 공격을 통해 액세스하고 손상시킬 수 있습니다. 나는 하드 드라이브에 암호화되지 않은 데이터가 없는 유사한 설정을 작업해 왔지만 지금까지는 이동식 드라이브에서 부트로더를 실행하는 방법만 생각해 냈습니다.

답변4

아니, 내 생각에는 그렇지 않다.

암호화/부팅이 정말로 필요합니까? 나는 그렇지 않다고 생각한다. 파일 시스템의 나머지 부분은 /boot의 initramfs에 상주하고 이에 따라 사용자에게 메시지를 표시하는 일반 Linux 소프트웨어로 암호화할 수 있습니다.

관련 정보