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


28

전체 디스크 암호화 (la TrueCrypt )를 지원하는 Linux 부트 로더가 있습니까? GRUB2에 암호화 지원을 추가하는 작업이 있었지만 아직 준비가되지 않은 것 같습니다. 다른 옵션이 있습니까?

(난 정말 전체 디스크 암호화가 여기에 포함하여 참조하고 있습니다 /boot)

대부분의 답변 /boot은 암호화되지 않은 설정에 대해 설명 하고 일부는 암호화되지 않은 이유를 설명하려고 시도합니다 /boot.

왜 실제로 / boot를 암호화해야하는지에 대한 논의없이, GRUB2의 수정 된 버전을 기반으로 필요한 내용을 정확하게 설명하는 기사가 있습니다.

이것의 문제점은 이러한 수정 사항이 현재 GRUB2 코드베이스에서 지원되지 않는다는 것입니다 (또는 어쩌면 내가 간과하고 있습니다).


네, 훌륭한 하우투는 여기에 있습니다 : wiki.archlinux.org/index.php/...
에발

답변:


20

GRUB2의 현재 버전은 LUKS 파티션을로드하고 해독하는 기능을 자체적으로 지원하지 않는다고 생각합니다 (일부 암호가 포함되어 있지만 암호 지원에만 사용된다고 생각합니다). 실험 개발 브랜치를 확인할 수는 없지만 GRUB 페이지에는 원하는 작업을 구현하려는 일부 작업에 대한 힌트가 있습니다.

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

그러나 보안상의 이유로 전체 디스크를 암호화하려는 경우 암호화되지 않은 부트 로더 (예 : TrueCrypt, BitLocker 또는 수정 된 GRUB)는 암호화되지 않은 /boot파티션 (위의 설명에서 JV에서 언급 한 것)보다 더 많은 보호 기능을 제공하지 않습니다. . 컴퓨터에 실제로 액세스 할 수있는 사람이라면 누구나 쉽게 사용자 정의 버전으로 교체 할 수 있습니다. xercestech.com의 기사에서도 언급했습니다.

분명히, 이것이 공격자가 부트 로더를 자신의 것으로 바꾸거나 부트 프로세스를 리디렉션하여 자신의 코드를 부팅하는 경우 시스템이 오프라인 공격에 덜 취약하게되는 것은 아닙니다. 시스템이 여전히 손상 될 수 있습니다.

전체 디스크 암호화를위한 모든 소프트웨어 기반 제품은 암호화되지 않은 부팅 로더 또는 암호화되지 않은 부팅 / 사전 부팅 파티션을 사용하더라도이 취약점이 있습니다. BitLocker와 같은 TPM (Trusted Platform Module) 칩을 지원하는 제품도 하드웨어를 수정하지 않고 루팅 할 수 있습니다.

더 나은 방법은 다음과 같습니다.

  1. BIOS 수준 (마더 보드 또는 디스크 어댑터 또는 외부 하드웨어 [스마트 카드], TPM 칩 유무에 관계없이)에서 암호를 해독하거나
  2. /boot스마트 카드 나 USB 스틱과 같은 이동식 장치에 PBA (사전 부팅 인증) 코드 ( 이 경우 파티션 )를 가지고 다니십시오 .

두 번째 방법으로 http://lfde.org/ 에서 Linux LFDE (Linux Full Disk Encryption) 프로젝트를 확인할 수 있습니다.이 스크립트는 /boot파티션을 외부 USB 드라이브 로 이동 하여 키를 암호화하여 설치 후 스크립트를 제공합니다. GPG 및 USB에 저장. 이런 식으로 부팅 경로의 약한 부분 (암호화되지 않은 /boot파티션)은 항상 당신과 함께합니다 (암호 해독 코드와 키에 물리적으로 액세스 할 수있는 유일한 사람이됩니다). ( 참고 :이 사이트는 없어졌고 저자의 블로그도 사라졌지 만 https://github.com/mv-code/lfde 에서 이전 파일을 찾을 수 있습니다 . 최근 개발은 6 년 전에 수행되었습니다.) 더 가벼운 대안으로, OS를 설치하는 동안 암호화되지 않은 부팅 파티션을 USB 스틱에 설치할 수 있습니다.

감사합니다


1
BIOS 수준에서 암호를 해독하는 것은 실제로 매우 좋은 해결책이 될 것입니다 (이것은 옵션으로 간주했습니다).

1
작동하는 구현을 모르지만 EFI / UEFI에는 공통 부트 로더를 대체하기 위해 사용자 지정 EFI 부팅 관리자를 포함하는 옵션이 있습니다. 데이터를 해독하기 위해 암호 해독 계층을 추가 할 수도 있습니다 (물론 EFI 플랫폼이 필요합니다) ). 또는 CoreBoot와 관련된 일부 프로젝트 (ADLO, SeaBIOS, OpenBIOS 등)를 수정하도록 할 수 있습니다. 그냥 아이디어.

4
암호화되지 않은 / boot 파티션 사용의 약점에 대한 자세한 내용을 추가하려면 (하지만 암호화되지 않은 부팅 로더에도 적용됨) twopointfouristan.wordpress.com/2011/04/17/… (부팅 수정 방법 ) 마운트 패스 프레이즈와 암호화 된 파티션의 다른 파일을 검색하려면 10 분 동안 물리적으로 액세스해야합니다

1
@MV .: 감사합니다. 나는 그것을 직접 테스트하고 /bootGRUB2와 함께 암호화 된 파티션 을 사용하는 더 자세한 단계로 여기에 답변을 추가 할 수 있습니다 .
Peque

1
@ 에이 바 : 아니오, 관련이 있지만 (LUPM을 TPM과 함께 사용) lfde.org (이제 에어로 클럽 관련 사이트)에서 이전에 호스팅 한 프로젝트와는 다릅니다.
MV.

4

초기 RAM 디스크 및 / boot 폴더가 암호화를 사용하지 않도록하십시오.

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

"이것은 핵이다"라고 주장하기 전에-리눅스 배포판이 오늘날 기본적으로 이런 방식으로 부팅된다. 이를 통해 시스템은 파일 시스템에서로드해야하는 모듈을 사용하여 루트 FS를 부트 및로드 할 수 있습니다. (닭고기와 달걀 문제의 일종). 예를 들어, 루트 파일 시스템이 하드웨어 RAID 볼륨에 있고 루트 FS를 마운트하기 전에 드라이버를로드해야하는 경우가 있습니다.


3

게시 한 링크를 검토했습니다. 부팅 파티션이 없지만 하드 디스크에는 여전히 악의적 인 하녀 공격을 통해 액세스 및 손상 될 수있는 암호화되지 않은 부팅 로더가 있습니다. 하드 디스크에 암호화되지 않은 데이터가없는 비슷한 설정을 살펴 보았지만 지금까지 이동식 드라이브에서 부트 로더를 실행하는 것으로 나타났습니다.


예, 여전히 암호화되지 않은 부트 로더가 있습니다. 이것은 나에게 허용됩니다.

사악한 하녀가 부트 로더를 감염시켜 사용자를 속이는 가짜 암호 프롬프트를 표시 한 다음 암호화되지 않은 트로이 목마 커널을로드하면됩니다. 커널을 암호화하면 부트 로더를 암호화하지 않고도 거의 얻을 수 없습니다.
Skaperen

1

나는 그들 대부분이 믿습니다. 필요한 것은 암호화 된 HD로 OS를 설치하는 방법에 대한 지침입니다.

우분투 에는 암호화 된 파티션, LMVP, 폴더 등을 만드는 데 도움이되는 멋진 페이지가 있습니다.


2
Ubuntu를 포함한 대부분의 Linux 배포에는 파티션 암호화 지원이 포함되어 있지만 암호화되지 않은 경우 / boot가 필요합니다. 내가 찾고있는 것은 완전히 암호화 된 디스크를 처리 할 수있는 부트 로더입니다.

1
부트 로더의 적어도 일부는 암호화를 해제해야합니다. 그렇지 않으면 CPU가이를 실행할 수 없습니다. / boot를 암호화되지 않은 상태로 두는 데 특별한 문제가 있습니까?

2
부트 로더와 / boot는 서로 다릅니다. 완전히 암호화 된 디스크를 부팅 할 수있는 것보다 부팅 로더를 찾고 있습니다. TrueCrypt는 Windows에서는 가능하지만 Linux에서는 불가능합니다.

차이점은 Windows 부트 로더는 mbr 자체에 포함되어 있고 Linux에서는 mbr이 필요한 / boot 파일에 연결한다는 것입니다.
JV

1
"사전 부팅 인증은 부팅 드라이브의 첫 번째 트랙에있는 TrueCrypt 부팅 로더에 의해 처리됩니다."Windows에서는 미니 / 부팅을 만듭니다. 다시 말하지만, grub 자체는 / boot에 포함되어 있으며 mbr은 512 바이트에 불과하며 해독 알고리즘을 저장하기에 충분하지 않습니다. 그러나 하드 드라이브의 일부는 암호화되지 않은 상태로 제공되어야합니다. 완전히 다른 파티션의 부트 로더에서 암호화 된 파티션에 대해 grub을 시작할 수는 있지만 심각한 지저분한 코드가 필요할 것입니다.
JV

0

아뇨.

/ boot를 정말로 암호화해야합니까? 나는 의심하지 않는다. 나머지 파일 시스템은 / boot의 initramfs에 상주하고 그에 따라 프롬프트를 표시하는 일반 Linux 소프트웨어로 암호화 할 수 있습니다.


2
예, / boot를 암호화해야합니다. 부트 로더 자체를 제외한 모든 것이 암호화되어야합니다.

전체 디스크 암호화를 지원하는 부트 로더가 없다고 생각하는 이유를 설명하십시오.
this.josh

@Grodriguez : / boot를 부트 로더의 일부로 생각하면 모든 것이 암호화됩니다-런타임에 사용 된 모든 바이너리, 모든 사용자 데이터 등
MarkR

2
다른 답변에 대한 의견에서 언급했듯이 : 나는 항상 암호화되지 않은 "무언가"가 있어야 함을 알고 있습니다. / boot 파티션 대신 부트 로더 (MBR + 부트 섹터)가되어야합니다. .

0

불가능한 일을 요구 하고 구현숨기는 Windows 솔루션과 비교 하지만 실제로 Linux와 동일한 작업을 수행하는 것 같습니다.

내가 생각할 수있는 가장 가까운 솔루션은 보안 암호와 암호화를 구현하는 하드 드라이브를 사용하는 것입니다. 일부 Thinkpad 랩탑은 이러한 하드웨어 솔루션을 사용합니다.


2
죄송합니다. 왜 이것이 "불가능"해야하는지 모르겠습니다. 내 질문에 링크 된 기사는 그것이 가능하다는 것을 증명합니다. 개념 증명은 GRUB 2의 수정 된 버전을 사용하여 구현되었습니다. 암호화되지 않은 "무언가"가 항상 있어야한다는 것을 알고 있습니다. 대신이 "무언가"가 부트 로더 (MBR + 부트 섹터)가 되기만하면됩니다. / boot 파티션

@Grodriguez : 귀하의 요구 사항은 이해가되지 않습니다. 다른 OS 내에서 가상 머신을 사용할 때 요구 사항이 충족됩니까? 그렇다면 OS 1을 부팅하고 드라이브를 해독하고 VM을 시작하십시오.
잔 Lynx

2
내가 링크 한 기사를 읽으려고 했습니까? 요구 사항을 이해하지 못한다고해서 "이해가되지 않는다"는 의미는 아닙니다. 나는 이것에 대한 정당한 이유가 있습니다.

이 기사는 단락 3에서 상황을 개선시키지 않는다는 것을 분명히합니다. 따라서 나머지 부분을 따라가는 것이 의미가 없으며, 작동 방식보다는 설정 방법에 중점을 둡니다. 내가 당신의 커널 또는 전체 / 부팅을 내 자신의 (악의 하녀 역할을 할 때) 대체했다는 것을 생각하십시오.
Skaperen

0

그 대답은 기사에서 암시합니다. "이것은 이제 다음을 지원하도록 패치 된 차세대 GRUB2 부트 로더의 확장을 통해 가능합니다." " GRUB2 또는 분기 된 GRUB2 소스와 함께 제공해야하는 패치 또는 확장이있는 것 같습니다.


0

Grub2 버전 2.02 ~ beta3는 Grub2 버전 2.02 ~ beta2가 할 수없는 많은 것을 할 수 있습니다.

  1. Super Grub 2 디스크를 사용하여 부팅
  2. 'c'키를 입력하여 명령 행으로 이동하십시오.
  3. 원하는 암호화 된 파티션을 마운트하는 명령을 입력하십시오
    • 인스 모크 루크 스
    • cryptomount (hd0, #) // 여기서 #은 암호화 된 파티션을 나타냅니다.
  4. 암호를 입력하고 일부 명령을 더 입력하십시오
    • 멀티 부트 (crypto0) /grub/i386-pc/core.img
    • 신병

그것은 암호화 된 파티션 안에있는 또 다른 Grub2를로드 할 것이고, 악의적 인 공격은 여기에 아무런 영향을 미치지 않습니다 ... 나는 CD에서 부팅하고 (읽기 전용 매체) 암호화 된 파티션을 마운트합니다 (암호가없는 사람은 어떻게 감히 할 수 있습니까? 암호화 된 파티션 내부에서 부팅하고 자체 메뉴 등으로 Grub2를로드하십시오.

참고 : 이러한 Grub 2.02 ~ beta3 부팅 (Super Grub 2 CD 사용)은 USB 스틱, USB HDD 등에있을 수 있습니다.

경고 : Grub2 버전 2.02 ~ beta2는 cryptomount 명령과 관련된 일부 버그 (Grub2 버전 2.02 ~ beta3에서 수정 된 것으로 보임)가 있기 때문에 동일하지 않습니다 ...

내가 이야기하는 베타 2 버그는 다음과 같습니다.

  1. 실제로 암호화 된 파티션을 마운트하지 않으므로 (crypto0) / *에 액세스 할 수 없습니다
  2. 암호화 된 파티션이 둘 이상인 경우 cryptomount -a하나의 암호 구만 사용하여 사용
  3. cryptomount를 한 번 실행 한 후에는 다시 실행됩니다.

베타 3 :

  1. 실제로 암호화 된 파티션을 마운트하고 동시에 둘 이상이 마운트 된 경우 (crypto0) / * 또는 (crypto1) / * 등을 통해 파일에 액세스 할 수 있습니다
  2. 각 암호문을 요청합니다 (암호화 된 파티션 당 하나씩)
  3. 필요에 따라 여러 번 실행할 수 있으며, 하나씩 마운트 할 수 있습니다.

참고 사항 : 재부팅하거나 다른 또는 동일한 grub2 / 다른 부트 로더 등을 부팅하는 것을 제외하고는 마운트 해제 방법을 알지 못했습니다.

이것이 문제를 명확히하는 데 도움이되기를 바랍니다 .Grub2 버전 2.02 ~ 베타 3이 LiveCD에 통합되어 자체적으로 컴파일 할 필요없이 설치할 수 있기를 바랍니다.

PD : Super Grub 2 디스크를 사용하면 Grub2 버전 2.02 ~ Beta3을 MBR / 부팅 파티션 등에 설치할 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.