Dm-crypt/ko

dm-crypt는 리눅스 커널 암호화 API 프레임워크와 장치 매퍼 하위 시스템을 활용한 디스크 암호화 시스템입니다. 관리자는 dm-crypt로 전체 디스크, 논리 볼륨 파티션, 단일 파일을 암호화할 수 있습니다.

dm-crypt 하위 시스템은 암호화 데이터 접근에 다중키를 허용하며, 키를 다루기도 하는(키 변경, 암호 추가 등)리눅스 통합 키 설정(LUKS) 구조를 지원합니다. dm-crypt에서 비 LUKS 설정도 지원하지만, 이 글에서는 유연성, 관리성, 커뮤니티 규모의 광범위한 지원을 위한 LUKS 기능에 중점을 두었습니다.

설정
dm-crypt를 활용할 수 있기 전 준비해야 할 두가지 사항이 있습니다:


 * 1) 커널 설정
 * 2)  꾸러미 설치

커널 설정
dm-crypt를 사용하려면 설정해야 할 몇가지 사항이 있습니다.

먼저 device mapper 기반 구조 지원과 crypt target을 커널에 포함해야합니다:

다음, 관리자가 암호화 기능을 사용하려면 리눅스 커널에서 암호화 API 모음을 지원해야 합니다. "Cryptographic API" 섹션에서 찾아볼 수 있습니다:

마찬가지로 루트 파일 시스템을 암호화 했다면, 루트 파일 시스템을 마운트하기 전 루트 파일 시스템을 해독할 램 파일 시스템을 만들어야 합니다. 따라서, initramfs 지원도 필요합니다:

Cryptsetup 설치
꾸러미는 암호화 저장소를 열고 닫으며 이 저장소와 관련있는 암호문 또는 키를 관리하는 명령을 제공합니다.

키 파일 또는 암호문
암호화 저장소를 시작하려면, 관리자가 암호화 키를 사용하는 방법을 결정해야합니다. 에서는 암호문 또는 키 파일을 사용하는 선택 방안이 있습니다. 키 파일을 사용하는 경우에는 어떤 파일이라도 상관 없지만 제대로 보호한 임의 데이터(키 파일로의 접근은 암호화 데이터에 접근을 의미하는 것으로 가정)가 담겨있는 파일을 사용하시는 것이 좋습니다.

키 파일을 만든다면 명령을 사용할 수 있습니다:

다음 단락에서는 암호문, 키 파일 두 가지 경우에 대해 모든 명령 과정을 보여드리겠습니다. 물론 둘 중 한가지 방식만 필요합니다.

암호화 저장소 플랫폼 만들기
암호화 저장소 플랫폼(디스크, 파티션, 파일 등이 될 수 있음)을 만들려면 luksFormat 옵션과 함께 명령을 사용하십시오.

예를 들어, 암호화 데이터가 담긴 저장소 매체 를 취하려면:

암호문 대신 키 파일을 사용하려면:

는 에게 실제 암호화 키를 사용할 키 길이를 알려줍니다(암호문 또는 키 파일과는 달리, 실제 암호화 키에 접근할 때 사용합니다).

암호화 저장소 열기
암호화 저장소(공개 해독 방식으로 실제 데이터에 접근할 수 있게 함)를 열려면, luksOpen 명령을 사용하십시오.

키 파일을 사용한다면 명령은 다음과 같습니다:

명령 처리가 끝나면 새  장치 파일을 사용할 수 있습니다. 이 장치 파일은 일반 저장소 위치와 같이 마운트할 수 있습니다:

암호화 저장소 닫기
암호화 저장소(공개 해독 방식으로 실제 데이터에 더이상 접근할 수 없게 함)를 닫으려면, luksClose 명령을 사용하십시오:

물론 해당 장치를 더 이상 사용하고 있지 않은지 확인하십시오.

LUKS 키 다루기
LUKS 는 실제 암호화 키에 접근할 때 사용합니다. (암호화) 파티션, 디스크, 파일의 헤더에 저장합니다.

슬롯 감청
luksDump 명령으로, 암호화 파티션, 디스크, 파일의 정보를 나타낼 수 있습니다. 이 정보에는 슬롯을 포함합니다:

위 예제에서, 두 슬롯을 사용했습니다. luksDump는 어떤 민감한 내용도 보여주지 않습니다. LUKS 헤더의 일부만 보여줍니다. luksDump를 호출한다고 해서 해독키를 보여주는건 아닙니다.

키 파일 또는 암호문 추가
암호화 저장소에 접근할 추가 키 파일 또는 암호문을 추가하려면, luksAccKey 옵션을 사용하십시오:

키 파일로 키 잠금을 해제하려면(그래도 암호문에 추가한다면):

키 파일(를 말함)을 추가했다면:

또는 메인키를 잠금 해제할 때 첫번째 키 파일을 사용한다면:

키 파일 또는 암호문 제거
luksRemoveKey 옵션으로 키 파일 또는 암호문을 제거할 수 있습니다(따라서 이들 요소를 더이상 저장소 해독 목적으로 사용할 수 없습니다):

또는 키 파일을 제거하려면:

데이터를 접근하는데 있어 최소한 한가지 방식은 두어야합니다. 사용할 암호문 또는 키 파일을 제거하면 다시 복구할 수 없습니다.

슬롯 비우기
암호문 또는 키 파일을 알 수 없는 경우를 가정하면 슬롯을 비워둘 수 있습니다. 물론 어떤 슬롯에 암호문 또는 키 파일을 저장했는지 우선 알고 있어야 합니다.

이를 테면 슬롯 2 번을 비워보겠숩니다(슬롯 번호가 0번부터 시작하므로 세번째 슬롯입니다):

이 명령은 계속하기 전 유효한 암호문을 요구합니다. 대신 사용할 키 파일을 전달할 수 있습니다:

추가 자료

 * 젠투 위키의 DM-Crypt LUKS 에서는 젠투 리눅스 설치 과정에서 암호화 파일 시스템에 접근할 때 더욱 정교한 방식의 접근 방법을 설명합니다