TrueCrypt는 더 이상 지원되지 않지만 dm-crypt 및 LUKS는 암호화된 데이터를 암호화하고 사용하는 훌륭한 오픈 소스 옵션입니다.

데이터 보안은 인터넷 사용자들 사이에서 가장 큰 관심사 중 하나가 되었습니다. 웹사이트에서 데이터 도난에 대한 뉴스가 매우 일반적이 되었지만 데이터를 보호하는 것은 웹사이트의 책임일 뿐만 아니라 최종 사용자로서 우리 자신의 보안을 위해 할 수 있는 일이 많습니다. 예를 들어, 강력한 암호를 사용하고, 컴퓨터에 있는 하드 드라이브를 암호화하고, 보안 연결을 사용하는 몇 가지 예를 들 수 있습니다. 특히, 하드 드라이브 암호화는 보안을 보장하는 좋은 방법입니다. 네트워크를 통해 데이터를 훔치려는 트로이 목마뿐만 아니라 물리적 공격으로부터도 사용자를 보호합니다.

올해 5월에는 디스크 암호화용으로 잘 알려진 오픈 소스 도구인 TrueCrypt 애플리케이션 개발이 중단되었습니다. 많은 분들이 알고 계시겠지만, 이것은 드라이브 암호화를 위한 매우 안정적인 도구 중 하나였습니다. 이 정도의 도구가 사라지는 것을 보는 것은 슬프지만 많은 구성 설정이 있는 디스크 암호화로 보안을 달성하는 데 도움이 될 수 있는 몇 가지 다른 오픈 소스 도구가 있다는 것은 오픈 소스 세계의 위대함입니다. Linux 플랫폼용 TrueCrypt의 대안으로 dm-crypt와 LUKS 중 두 가지를 살펴보겠습니다. dm-crypt와 LUKS에 대해 간단히 살펴보겠습니다.

어떤 암호화가 사용되는지, 암호화 모드, 해시 알고리즘, 기타 암호화 데이터를 나타내는 LUKS를 사용하는 장치에 대한 기본 정보입니다.

자원

01단계: Dm-crypt 고려

응용 프로그램 dm-crypt의 이름은 device mapper-crypt(장치 매핑 시 암호화)의 약자입니다. 이름에서 알 수 있듯이 블록 장치를 상위 수준 가상 블록 장치에 매핑하도록 설계된 Linux 커널 프레임워크인 장치 매핑을 기반으로 합니다. 장치를 매핑할 때 dm-cache(하이브리드 볼륨 생성), dm-verity(블록의 무결성을 확인하도록 설계, Chrome OS의 일부임) 및 매우 인기 있는 Docker와 같은 여러 커널 기능을 사용할 수 있습니다. 암호화 목적으로 dm-crypt는 Linux Kernel Crypto API 프레임워크를 사용합니다.

요약하자면 dm-crypt 응용 프로그램은 투명한 디스크 암호화를 제공하는 커널 수준 암호화 하위 시스템입니다. 즉, 디스크가 탑재된 직후 파일을 사용할 수 있습니다. 최종 사용자에게는 눈에 보이는 지연이 없습니다. dm-crypt를 사용하여 암호화하려면 대칭 암호, 암호 모드, 키(허용되는 모든 크기), IV 생성 모드 중 하나를 지정한 다음 /dev에 새 블록 장치를 생성하면 됩니다. 이제 이 장치에 쓸 때 암호화가 발생하고 읽을 때 암호가 해독됩니다. 평소와 같이 이 장치에 파일 시스템을 마운트하거나 dm-crypt 장치를 사용하여 RAID 또는 LVM 볼륨과 같은 다른 구성을 만들 수 있습니다. dm-crypt에 대한 매핑 테이블은 다음과 같이 설정됩니다.

여기서 start-sector의 값은 일반적으로 0이고, size의 값은 장치의 크기(섹터)이며, target name은 암호화된 장치에 부여하려는 이름입니다. 대상 매핑 ​​테이블은 다음 섹션으로 구성됩니다.

[<#opt_params> ]

02단계: LUKS를 고려하여

이전 단계에서 보았듯이 dm-crypt 애플리케이션은 자체적으로 데이터를 암호화/복호화할 수 있습니다. 그러나 몇 가지 단점이 있습니다. dm-crypt를 직접 사용하는 경우 디스크에 메타데이터를 생성하지 않으며 다른 Linux 배포판 간의 호환성을 보장하려는 경우 큰 문제가 될 수 있습니다. 또한 dm-crypt 응용 프로그램은 여러 키 사용을 지원하지 않지만 실제로는 여러 키를 사용하는 것이 매우 중요합니다.

이러한 이유로 LUKS(Linux Unified Key Setup) 방법론이 탄생했습니다. LUKS는 Linux의 하드 디스크 암호화 표준이며 표준화를 통해 배포판 간의 호환성이 허용됩니다. 여러 키와 암호도 지원됩니다. 이 표준화의 일부로 LUKS 헤더가 암호화된 데이터에 추가되고 이 헤더에는 구성에 필요한 모든 정보가 포함됩니다. 데이터가 포함된 이러한 헤더가 있으면 사용자는 다른 배포로 쉽게 전환할 수 있습니다. dm-crypt 프로젝트는 현재 디스크 암호화를 설정하는 기본 방법으로 LUKS를 사용할 것을 권장합니다. cryptsetup 유틸리티를 설치하는 방법과 LUKS 기반 볼륨을 만드는 데 사용하는 방법을 살펴보겠습니다.

03단계:설치

dm-crypt가 사용하는 커널 수준 기능은 이미 모든 Linux 배포판에서 사용할 수 있습니다. 우리는 그들에 대한 인터페이스만 필요합니다. 우리는 dm-crypt, LUKS 표준 및 좋은 오래된 TrueCrypt 응용 프로그램을 사용하여 볼륨을 생성할 수 있는 cryptsetup 유틸리티를 사용할 것입니다. Debian/Ubuntu 배포판에 cryptsetup을 설치하려면 다음 명령을 사용할 수 있습니다.

$ sudo apt-get 업데이트 $ sudo apt-get 설치 cryptsetup

첫 번째 명령은 로켓 인덱스 파일을 저장소의 내용과 동기화합니다. 사용 가능한 모든 패키지의 최신 버전에 대한 정보를 가져옵니다. 두 번째 명령은 컴퓨터에 cryptsetup 패키지를 다운로드하여 설치합니다. RHEL/Fedora/CentOS 배포판을 사용하는 경우 yum 명령을 사용하여 cryptsetup 유틸리티를 설치할 수 있습니다.

$ yum 설치 cryptsetup-luks

04단계:대상 파일 생성

cryptsetup 유틸리티가 성공적으로 설치되었으므로 LUKS 컨테이너를 저장할 대상 파일을 만들어야 합니다. 이러한 파일을 만드는 방법에는 여러 가지가 있지만 파일을 만들 때는 다음과 같은 여러 조건을 충족해야 합니다.

  • 파일은 디스크의 다른 위치에 있는 여러 부분으로 구성되어서는 안 됩니다. 즉, 파일을 만들 때 충분한 양의 메모리를 즉시 할당해야 합니다.
  • 암호화에 사용된 데이터의 위치를 ​​아무도 알 수 없도록 전체 파일을 임의의 데이터로 채워야 합니다.

위의 조건을 만족하는 파일을 생성할 때 dd 명령이 도움이 될 수 있지만 상대적으로 느리게 작동합니다. 입력으로 지정된 특수 장치 파일 /dev/random과 출력으로 지정할 대상 파일과 함께 사용하기만 하면 됩니다. 예제 명령은 다음과 같습니다.

$ dd if=/dev/random of=/home/nitish/basefile bs=1M count=128

그러면 /home/nitish 디렉토리에 basefile이라는 128MB 파일이 생성됩니다. 그러나 이 명령을 완료하는 데 시간이 오래 걸릴 수 있습니다. 우리 전문가가 사용한 시스템에서는 한 시간이 걸렸습니다.

05단계: dm-crypt LUKS 생성

대상 파일을 생성한 후 이 파일에 LUKS 섹션을 생성해야 합니다. 이 섹션은 모든 데이터 암호화가 구축되는 기본 계층 역할을 합니다. 또한 이 섹션의 헤더(LUKS 헤더)에는 다른 장치와의 호환성에 필요한 모든 정보가 포함되어 있습니다. LUKS 파티션을 생성하려면 cryptsetup 명령을 사용하십시오.

$ cryptsetup -y luksFormat /home/nitish/basefile

기본 파일 내의 데이터가 영구적으로 삭제된다는 데 동의한 후 암호를 입력한 다음 확인하면 LUKS 파티션이 생성됩니다. 다음 파일 명령으로 확인할 수 있습니다.

$파일베이스파일

여기에 입력하는 구문은 데이터를 해독하는 데 사용됩니다. 잊어 버리면 암호화 된 파티션의 모든 데이터가 거의 확실하게 손실되므로 암기하고 안전한 장소에 저장하는 것이 매우 중요합니다.

06단계:파일 시스템 생성 및 마운트

이전 단계에서 만든 LUKS 컨테이너를 이제 파일로 사용할 수 있습니다. 이 예에서 이것은 /home/nitish/basefile입니다. cryptsetup 유틸리티를 사용하면 LUKS 컨테이너를 독립 장치로 열 수 있습니다. 이렇게 하려면 먼저 컨테이너 파일을 장치 이름에 매핑한 다음 장치를 마운트합니다. 표시 명령은 다음과 같습니다.

이전 단계에서 생성한 암호를 성공적으로 입력하면 LUKS 컨테이너가 volume1에 매핑됩니다. 실제로 일어나는 일은 파일이 로컬 루프백 장치로 열리므로 시스템의 나머지 부분이 이제 파일을 실제 장치인 것처럼 취급할 수 있다는 것입니다.

07단계:파일 시스템 - 계속

LUKS 컨테이너 파일은 이제 시스템에서 일반 장치로 사용할 수 있습니다. 정상적인 작업에 사용하려면 먼저 포맷하고 파일 시스템을 만들어야 합니다. 시스템에서 지원되는 모든 파일 시스템을 사용할 수 있습니다. 내 예에서는 Linux 시스템용 최신 파일 시스템인 ext4를 사용했습니다.

$ mkfs.ext4 -j /dev/mapper/volume1

장치가 성공적으로 포맷되면 다음 단계는 장치를 마운트하는 것입니다. 먼저 /mnt(상식적 의미)에서 마운트 지점을 만들어야 합니다.

$ mkdir /mnt/files

이제 다음을 마운트합니다.

상호 확인하려면 df –h 명령을 사용하십시오. 마운트된 장치 목록의 끝에 "/dev/mapper/volume1" 장치가 표시됩니다. LUKS 헤더가 이미 장치에서 일부 공간을 차지하고 있음을 알 수 있습니다.

이 단계 덕분에 이제 ext4 파일 시스템과 함께 LUKS 장치를 사용할 수 있습니다. 이 파일 저장 장치를 사용하기만 하면 됩니다. 이 장치에 쓰는 모든 내용은 암호화되고 이 장치에서 읽는 모든 내용은 해독되어 사용자에게 표시됩니다.

08단계:암호화된 디스크 사용

우리는 이 결과를 얻기 위해 몇 가지 단계를 수행했으며 모든 작동 방식이 명확하지 않은 경우 한 번만 수행해야 하는 작업(설치에 필요함)과 수행해야 하는 작업에 대해 혼동할 가능성이 큽니다. 암호화를 사용할 때 정기적으로. 다음 시나리오를 고려해 보겠습니다. 위의 모든 단계를 성공적으로 완료한 다음 컴퓨터를 끕니다. 다음 날 컴퓨터를 시작할 때 탑재된 장치를 찾을 수 없습니다. 어디로 갔습니까? 이 모든 것을 처리하려면 시스템을 시작한 후 LUKS 컨테이너를 마운트하고 컴퓨터를 중지하기 전에 마운트 해제해야 한다는 점을 염두에 두어야 합니다.

LUKS 파일에 액세스하려면 컴퓨터를 켤 때마다 다음 단계를 수행한 다음 컴퓨터를 끄기 전에 파일을 안전하게 닫습니다.

LUKS 파일(예: /home/nitish/basefile)을 열고 암호를 입력하십시오. 명령은 다음과 같습니다.

$ cryptsetup luksOpen /home/nitish/basefile volume1

파일이 열리면 마운트합니다(자동으로 마운트되지 않는 경우).

$ 마운트 /dev/mapper/volume1 /mnt/files

이제 탑재된 장치를 일반 디스크로 사용하고 데이터를 읽거나 쓸 수 있습니다.

완료되면 다음과 같이 장치를 마운트 해제합니다.

$ umount /mnt/files

성공적으로 마운트 해제한 후 LUKS 파일을 닫습니다.

$ cryptsetup luks볼륨1 닫기

09단계:지원

LUKS 컨테이너에 저장된 대부분의 데이터 손실은 LUKS 헤더 또는 키 슬롯의 손상으로 인해 발생합니다. 실수로 헤더 메모리를 덮어써도 LUKS 헤더가 손상될 수 있다는 사실 외에도 실제 상황에서는 완전한 하드 디스크 장애가 발생할 수도 있습니다. 이러한 문제로부터 자신을 보호하는 가장 좋은 방법은 백업입니다. 어떤 백업 옵션을 사용할 수 있는지 알아보겠습니다.

LUKS 헤더 파일을 백업하려면 다음 명령에서 luksHeaderBackup 매개변수를 지정하십시오.

$ sudo cryptsetup luksHeaderBackup /home/nitish/basefile --header-backup-file /home/nitish/backupfile

또는 백업에서 파일을 복원하려면 다음 명령에 luksHeaderRestore 매개변수를 지정합니다.

$ sudo cryptsetup luksHeaderRestore /home/nitish/basefile --header-backup-file /home/nitish/backupfile

isLuks 매개변수를 사용하여 LUKS 헤더 파일을 확인하고 처리 중인 파일이 실제 LUKS 장치에 해당하는지 확인할 수 있습니다.

$ sudo cryptsetup -v isLuks /home/nitish/basefile

우리는 이미 LUKS 헤더 파일을 백업하는 방법을 보았지만 LUKS 헤더를 백업하는 것은 전체 디스크 오류로부터 실제로 보호되지 않으므로 다음 cat 명령을 사용하여 전체 파티션을 백업해야 합니다.

$ 고양이 /home/nitish/basefile > basefile.img

10단계:다양한 설정

dm-crypt LUKS 암호화를 사용할 때 유용할 수 있는 몇 가지 다른 설정이 있습니다. 그것들을 살펴보겠습니다.

LUKS 헤더를 덤프하기 위해 cryptsetup 명령에 luksDump 옵션이 있습니다. 사용 중인 장치의 LUKS 헤더 파일의 스냅샷을 찍을 수 있습니다. 예제 명령은 다음과 같습니다.

$ cryptsetup luksDump /home/nitish/basefile

이 기사의 시작 부분에서 LUKS가 여러 키를 지원한다고 언급했습니다. 새 키 슬롯( 참고 사항: 키 슬롯 - 턴키 위치):

$ cryptsetup luksAddKey --키 슬롯 1 /home/nitish/basefile

이 명령은 현재 암호(키 슬롯 0에 있는 키)를 입력한 후에만 키 슬롯 번호 1에 키를 추가합니다. 총 8개의 키 슬롯이 있으며 모든 키를 사용하여 데이터를 해독할 수 있습니다. 두 번째 키를 추가한 후 헤더를 덤프하면 두 번째 키 슬롯이 채워진 것을 볼 수 있습니다.

다음과 같이 키 슬롯을 제거할 수 있습니다.

$ cryptsetup luksRemoveKey /home/nitish/basefile

이렇게 하면 슬롯 번호가 가장 높은 키 슬롯이 제거됩니다. 모든 슬롯을 삭제하지 않도록 주의하십시오. 그렇지 않으면 데이터가 영구적으로 손실됩니다.

세메넨코 V.

Ubuntu 운영 체제를 설치할 때 데이터 암호화 설정에 대해 생각하지 않을 수 있습니다. 또는 홈 디렉토리를 암호화하지 않고 시스템에 사용자를 추가하는 상황이 있을 수 있습니다. 그러나 이제 마음이 바뀌었고 이 디렉토리의 보호를 구성하기로 결정했습니다. 즉, 귀하(또는 컴퓨터의 다른 사용자)는 현재 존재하지 않는 기능을 원합니다...

Ubuntu에서 암호화된 파티션 만들기

이미 설치된 Ubuntu Linux 시스템에 암호화 기능을 어떻게 추가할 수 있습니까?

다행히도 구현하기가 상당히 쉽습니다. 이렇게 하려면 다음 세 가지 기본 단계를 따르십시오.

  • 홈 디렉토리의 암호화된 사본을 생성하십시오.
  • 암호화되지 않은 원래 홈 디렉토리를 삭제합니다.
  • 스왑 파티션을 암호화합니다(Ubuntu 시스템을 설치할 때 또는 이 가이드를 단계별로 따를 때 한 번만 수행됨).

이 문서의 단계는 완전히 업데이트된 Ubuntu Precise 12.04 시스템에서 수행되었습니다.

훈련

Ubuntu Linux의 현재 버그로 인해 로그인 그래픽이 사용자의 암호화된 홈 폴더에 있으면 로그인할 수 없습니다. 사용자가 기본 모양을 변경한 경우 사용자의 홈 폴더에도 없는지 확인하십시오.

사용자 홈 디렉터리의 암호화된 복사본을 만드는 것은 안전한 절차입니다. 그러나 이를 구현하려면 일정량의 하드 디스크 공간이 필요하다는 점에 유의할 필요가 있습니다. 공간이 너무 적은 것으로 판명되면 데이터를 백업한 다음 데이터에서 모든 대용량 파일(예: 영화)을 삭제하고 암호화가 완료된 후 이 백업에서 복원해야 합니다. 일반적으로 가능한 문제를 방지하기 위해 모든 데이터를 백업하는 것이 좋습니다.

선호하는 패키지 관리자를 사용하여 encrypt-utils 프로그램을 설치하십시오.

암호화

이 튜토리얼에서는 작업할 사용자 이름으로 paddy의 로그인을 사용합니다. 홈 디렉토리가 암호화될 사용자의 이름으로 대체해야 합니다.

Ubuntu Linux를 재부팅하고 "복구 모드"로 이동합니다. 조언 - 시스템이 부팅되는 동안 Shift 키를 길게 눌러 Grub 메뉴를 엽니다. 일반적으로 "복구 모드"(복구 모드) 행은 이 부트로더 목록의 맨 위에서 두 번째에 있습니다.

복구 모드 메뉴에서 "삭제"를 선택하여 루트 계정에 대한 명령줄 프롬프트를 표시합니다.

이 문서의 시작 부분에서 언급한 프로그래밍 오류를 수정하려면 다음 두 명령을 입력하십시오.

마운트 --옵션 다시 마운트, rw /
마운트 --모두

이제 우리는 패디 사용자의 홈 디렉토리의 암호화된 복사본을 만들 수 있습니다. 이렇게 하려면 아래 명령을 입력합니다. 동시에 이 유틸리티는 작업을 완료하기 위해 암호를 요구하므로 자신의 암호를 기억하는 데 어려움을 겪습니다.

암호화 프로세스가 완료되면 몇 가지 경고가 표시됩니다. 당신은 그들을 무시할 수 있습니다. 그러나 이 명령으로 생성된 임시 폴더의 경로를 기억해야 합니다. 그 모양은 다음과 같을 것입니다. /home/paddy.ChPzzxqD

이 경우 마지막 8자(점 뒤)는 임의의 집합입니다. 이 디렉토리는 나중에 논의될 다음 "완료" 또는 "초기 상태로 돌아가기" 단계에서 필요합니다.

Ubuntu Linux 시스템을 재부팅하십시오. 이렇게 하려면 다음 명령을 입력하십시오. 지금 재시작 해

명령을 입력하고 실행한 후 몇 초가 걸릴 수 있으므로 인내심을 가지십시오.

완성

매번 그랬던 것처럼 일반적인 방법으로 Ubuntu 시스템에 로그인합니다. 모든 것이 이전과 같이 작동하는지 확인하십시오.

문제가 있는 경우 즉시 "원래 상태로 되돌리기" 항목으로 이동할 수 있습니다.

시스템의 모든 것이 제대로 작동하면 마지막 단계를 완료하십시오.

터미널을 열고 명령을 입력하여 임시 디렉토리를 삭제하십시오. 이렇게 하려면 홈 디렉터리가 암호화될 때 생성된 임시 폴더의 경로를 기억해야 합니다.

sudo rm -R /home/paddy.ChPzzxqD

"준비" 단계에서 삭제한 데이터(있는 경우)를 복원합니다.

터미널을 다시 열고 스왑 파티션을 암호화하는 명령을 입력합니다. 이전에 홈 디렉터리 암호화가 구성된 사용자가 있는 경우 이 단계를 건너뛸 수 있습니다. sudo ecryptfs-setup-swap

다시 재부팅하십시오.

원래 상태로 돌아가기

암호화 프로세스가 실패한 경우 이전 단계를 다시 반복해야 합니다.

명령 실행:

마운트 --옵션 다시 마운트, rw /
마운트 --모두
ecryptfs-migrate-home --사용자 패디

그런 다음 명령을 입력하여 암호화 과정에서 생성된 임시 폴더의 내용을 봅니다. 이렇게하려면 경로를 다시 기억해야합니다. 오류가 발생하지 않아야 합니다. 그렇다면 도움이 필요합니다.

ls -l /home/paddy.ChPzzxqD

이제 세 가지 명령을 실행하여 재설정 프로세스를 완료하십시오.

CD / 홈
rm -R 패디 .ecryptfs/paddy
mv paddy.ChPzzxqD

다시 재부팅하십시오.

위의 단계가 도움이 되었기를 바랍니다. 해결할 수 없는 문제가 있는 경우 내 Ubuntu 포럼 스레드에 요청을 게시할 수 있습니다.

암호화 시 절전 모드

대부분의 사용자는 이전 작업(이 기사의 앞부분에서 설명)을 수행한 후 Ubuntu 운영 체제가 최대 절전 모드로 전환되지 않는 이유와 이 기능을 복원하는 방법에 대해 궁금해합니다. 그 이유는 구성된 암호화 때문입니다. 홈 디렉토리 암호화를 구성한 경우 스왑 파티션도 암호화되지만 임의의 키로 암호화됩니다. 시스템을 최대 절전 모드로 전환하면 RAM 데이터가 스왑 파티션에 저장되고 임의 키로 암호화됩니다. 최대 절전 모드에서 시스템을 복원할 때 스왑 파티션을 암호화하는 데 사용된 키가 이미 복구 불가능하게 손실되어 시스템에서 이 파티션을 읽을 수 없습니다. 따라서 데이터를 검색할 수 없으며 이전 상태로 돌아갈 수 없습니다.

시스템에 파티션 암호화가 구성되어 있지 않은 경우 Ubuntu에서 최대 절전 모드를 복원하는 것은 쉽습니다. 이렇게 하려면 다음 명령을 실행하기만 하면 됩니다. ls -l /home/paddy.ChPzzxqD
rm -R 패디 .ecryptfs/paddy

그러나 사용자의 홈 파티션과 스왑 파티션이 시스템에서 암호화된 경우 스왑 파티션의 암호화를 임의의 키로 대체하는 것이 아니라 미리 선택된 암호로 대체해야 합니다.

그러나 컴퓨터의 각 사용자는 시스템 부팅 시 이 암호를 알아야 합니다.

일반 Ubuntu 12.04 시스템과 VirtualBox 가상 머신에 설치된 Ubuntu 시스템 모두에서 이 방법을 시도했습니다. 후자의 경우 절전 모드에서 복원할 때 화면 표시에 문제가 있었습니다. 그러나 일반 시스템에서는 모든 것이 잘 작동했습니다.

훈련

터미널에 다음 명령을 입력합니다. sudo cryptsetup 상태 crypt 교환 1

결과적으로 다음과 같은 장치를 나타내는 줄이 표시됩니다. /dev/sda1

또는 /dev/sdb5

이 장치는 시스템의 스왑 파티션입니다. 나중에 필요하므로 기억하십시오.

시스템을 변경할 때마다 데이터의 전체 백업을 수행하는 것이 좋습니다. 우리의 경우에도 유용할 것입니다.

취침 설정

다음 명령을 입력합니다. /dev/sdXN을 "준비" 섹션에서 생성한 스왑 파티션으로 바꾸십시오. 명령을 입력할 때 지정된 순서를 엄격히 준수해야 합니다.

sudo 스왑오프 /dev/mapper/cryptswap1
sudo cryptsetup luks닫기 /dev/mapper/cryptswap1
sudo cryptsetup luksFormat 암호 aes cbc essiv:sha256 암호 키 크기 확인 256 /dev/sdXN

경고!
========
이것은 /dev/sda1의 데이터를 취소할 수 없도록 덮어씁니다.
확실합니까? (대문자 yes 입력): YES
LUKS 암호 입력:
암호 확인:
sudo cryptsetup luksOpen /dev/sdXN cryptswap1

/dev/sda1 장치의 암호를 입력하고 오타를 방지하기 위해 반복합니다.

sudo mk 교환/dev/mapper/crypt 교환 1
sudo 스와폰 모두
스와폰의

마지막 명령은 장치 파일 이름 /dev/crypt swap 1 을 표시합니다.

원하는 편집기에서 구성 파일 /etc/crypttab을 엽니다. crypt swap 1 행을 다음으로 교체하십시오(/dev/sdXN을 스왑 장치로 변경하는 것을 잊지 마십시오). cryptswap1 /dev/sdXN 없음 루크

이제 /usr/share/initramfstools/scripts/local-top/cryptroot 파일을 편집하십시오. 그 안에 있는 줄을 찾으십시오(보통 번호는 288이지만 변경될 수 있음). "cryptsetup: 알 수 없는 장치 매핑 설정 오류" 메시지

다음 빈 줄(FSTYPE=" 이전)로 이동하고 새 줄을 삽입합니다(/dev/sdXN 장치를 교체하는 것을 잊지 마십시오). /sbin/cryptsetup luksOpen /dev/sdXN crypt 교환 1

/etc/acpi/hibetnate.sh 파일을 편집하십시오. 첫 번째 빈 줄에 값을 붙여넣습니다. DEVICE="/dev/mapper/crypt 교환 1"

/etc/initramfstools/conf.d/resume 파일을 편집합니다. 기존 줄을 다음으로 바꿉니다. 이력서=/dev/mapper/crypt 교환 1

그런 다음 /etc/polkit1/localauthoriyt/50-local.d/com.ubuntu.enable-hibernate.pkla 파일을 편집하십시오. 파일이 처음에는 존재하지 않으므로 먼저 만들어야 합니다. 그런 다음 라인을 추가하십시오.
ID=unixuser:*
액션=org.freedesktop.upower.hibernate
ResultActive=예

마지막으로 터미널을 열고 다음 명령을 입력합니다. sudo 업데이트 initramfs u k all

재부팅

절전 모드 사용

다음에 Ubuntu Linux를 시작하면 스왑 파티션에 대한 새 암호를 묻습니다. 그것을 입력하면 추가 일반 로그인 프로세스가 계속됩니다.

하드 드라이브의 데이터를 암호화하는 데는 여러 가지 이유가 있지만 데이터 보안 비용으로 인해 시스템 성능이 저하됩니다. 이 문서의 목적은 다른 방법으로 암호화된 디스크로 작업할 때의 성능을 비교하는 것입니다.

그 차이를 더 극적으로 만들기 위해 우리는 초현대식이 아닌 평범한 차를 선택했습니다. 일반적인 500GB 기계식 하드 드라이브, 2.2GHz의 듀얼 코어 AMD, 4GB RAM, 64비트 Windows 7 SP 1. 테스트 중에 바이러스 백신 또는 기타 프로그램이 실행되지 않으므로 결과에 영향을 미치지 않습니다.

성능을 평가하기 위해 CrystalDiskMark를 선택했습니다. 테스트한 암호화 도구의 경우 BitLocker, TrueCrypt, VeraCrypt, CipherShed, Symantec Endpoint Encryption 및 CyberSafe Top Secret을 선택했습니다.

비트로커

Microsoft Windows에 내장된 표준 디스크 암호화 도구입니다. 많은 사람들이 타사 프로그램을 설치하지 않고 단순히 사용합니다. 사실, 모든 것이 이미 시스템에 있다면 왜? 한편으로는 맞습니다. 반면에 코드는 닫혀 있으며 FBI 및 기타 관심 있는 사람들을 위한 백도어가 남아 있지 않다는 확신이 없습니다.

디스크는 키 길이가 128비트 또는 256비트인 AES 알고리즘을 사용하여 암호화됩니다. 키는 신뢰할 수 있는 플랫폼 모듈, 컴퓨터 자체 또는 플래시 드라이브에 저장할 수 있습니다.

TPM을 사용하는 경우 컴퓨터가 부팅될 때 TPM에서 즉시 또는 인증 후에 키를 얻을 수 있습니다. USB 플래시 드라이브의 키를 사용하거나 키보드에서 PIN 코드를 입력하여 로그인할 수 있습니다. 이러한 방법을 조합하면 TPM, TPM 및 USB, TPM 및 PIN, 또는 한 번에 세 가지 모두와 같이 액세스를 제한하는 많은 옵션이 제공됩니다.

BitLocker에는 두 가지 뚜렷한 이점이 있습니다. 첫째, 그룹 정책을 통해 제어할 수 있습니다. 둘째, 물리적 드라이브가 아닌 볼륨을 암호화합니다. 이를 통해 다른 암호화 도구로는 할 수 없는 여러 드라이브 어레이를 암호화할 수 있습니다. BitLocker는 또한 가장 발전된 TruCrypt 포크인 VeraCrypt도 자랑할 수 없는 GPT(GUID 파티션 테이블)를 지원합니다. 시스템 GPT 디스크를 암호화하려면 먼저 MBR 형식으로 변환해야 합니다. BitLocker의 경우 이것은 필요하지 않습니다.

일반적으로 폐쇄 소스라는 단 하나의 단점이 있습니다. 집안의 비밀을 숨기고 있다면 BitLocker가 좋습니다. 디스크가 국가적으로 중요한 문서로 가득 차 있으면 다른 것을 찾는 것이 좋습니다.

BitLocker 및 TrueCrypt를 해독할 수 있습니까?

Google에 문의하면 BitLocker, TrueCrypt 및 PGP 드라이브를 해독하는 데 적합한 흥미로운 Elcomsoft Forensic Disk Decryptor 프로그램을 찾을 수 있습니다. 이 기사의 프레임워크에서 테스트하지는 않겠지만 Elcomsoft의 다른 유틸리티인 Advanced EFS Data Recovery에 대한 인상을 공유하겠습니다. EFS 폴더 복호화에 탁월했지만 사용자 비밀번호가 설정되지 않은 조건이었다. 암호를 1234 이상으로 설정하면 프로그램이 무력한 것으로 판명되었습니다. 어쨌든 암호 111로 사용자 소유의 암호화된 EFS 폴더의 암호를 해독하는 데 실패했습니다. Forensic Disk Decryptor 제품도 상황은 비슷하지 않을까 생각합니다.

트루크립트

이것은 2012년에 중단된 전설적인 디스크 암호화 프로그램입니다. TrueCrypt에 일어난 이야기는 여전히 어둠에 싸여 있으며 개발자가 왜 그의 아이디어 지원을 중단하기로 결정했는지 아무도 모릅니다.

퍼즐을 맞추는 데 도움이 되지 않는 정보는 극히 일부뿐입니다. 그래서 2013년에 TrueCrypt의 독립 감사를 위한 기금 마련이 시작되었습니다. 그 이유는 TrueCrypt 암호화 도구의 의도적인 약화에 대해 Edward Snowden으로부터 받은 정보였습니다. 감사를 위해 60,000달러 이상이 수집되었습니다. 2015년 4월 초에 작업이 완료되었지만 애플리케이션 아키텍처에서 심각한 오류, 취약성 또는 기타 심각한 결함이 확인되지 않았습니다.

감사가 종료되자마자 TrueCrypt는 다시 스캔들의 중심에 있었습니다. ESET 전문가는 truecrypt.ru에서 다운로드한 러시아어 버전의 TrueCrypt 7.1a에 맬웨어가 포함되어 있다는 보고서를 게시했습니다. 또한 truecrypt.ru 사이트 자체가 명령 센터로 사용되어 명령이 감염된 컴퓨터로 전송되었습니다. 일반적으로 조심하고 어디에서나 프로그램을 다운로드하지 마십시오.

TrueCrypt의 이점에는 이제 안정성에 대해 독립적으로 감사되는 오픈 소스와 Windows 동적 볼륨에 대한 지원이 포함됩니다. 단점: 프로그램이 더 이상 개발되지 않았으며 개발자는 UEFI/GPT 지원을 구현할 시간이 없었습니다. 그러나 목표가 하나의 비시스템 드라이브를 암호화하는 것이라면 문제가 되지 않습니다.

AES만 지원하는 BitLocker와 달리 TrueCrypt에는 Serpent와 Twofish도 있습니다. 암호화 키, 솔트 및 헤더 키를 생성하기 위해 프로그램에서 HMAC-RIPEMD-160, HMAC-Whirlpool, HMAC-SHA-512의 세 가지 해시 기능 중 하나를 선택할 수 있습니다. 그러나 TrueCrypt에 대해 이미 많이 작성되었으므로 반복하지 않겠습니다.

베라크립트

가장 진보된 TrueCrypt 클론. TrueCrypt 형식의 암호화 및 가상 디스크를 지원하는 TrueCrypt 모드에서 작업할 수 있지만 고유한 형식이 있습니다. CipherShed와 달리 VeraCrypt는 TrueCrypt와 같은 컴퓨터에 동시에 설치할 수 있습니다.

정보

은퇴한 TrueCrypt는 풍부한 유산을 남겼습니다. VeraCrypt, CipherShed 및 DiskCryptor를 시작으로 많은 포크가 있습니다.

TrueCrypt는 1000번의 반복을 사용하여 시스템 파티션을 암호화할 키를 생성하는 반면 VeraCrypt는 327,661번의 반복을 사용합니다. 표준(비시스템) 파티션의 경우 VeraCrypt는 RIPEMD-160 해시 함수에 대해 655,331번의 반복을 사용하고 SHA-2 및 Whirlpool에 대해 500,000번의 반복을 사용합니다. 이렇게 하면 암호화된 파티션이 무차별 대입 공격에 훨씬 더 강해 지지만 이러한 파티션으로 작업하는 성능도 크게 저하됩니다. 얼마나, 우리는 곧 알게 될 것입니다.

VeraCrypt의 장점 중에는 오픈 소스 코드와 TrueCrypt에 비해 독점적이고 더 안전한 가상 및 암호화된 디스크 형식이 있습니다. 단점은 선조의 경우와 동일합니다. UEFI / GPT에 대한 지원이 부족합니다. 시스템 GPT 디스크를 암호화하는 것은 여전히 ​​불가능하지만 개발자는 이 문제에 대해 작업 중이며 곧 이러한 암호화를 사용할 수 있을 것이라고 주장합니다. 그러나 그들은 2014년부터 2년 동안 이 작업을 수행해 왔으며 GPT 지원이 포함된 릴리스가 언제 있는지, 그리고 전혀 될 것인지 여부는 아직 알려지지 않았습니다.

사이퍼셰드

TrueCrypt의 또 다른 클론. VeraCrypt와 달리 원래 TrueCrypt 형식을 사용하므로 TrueCrypt에 가까운 성능을 기대할 수 있습니다.

장점과 단점은 동일하지만 TrueCrypt와 CipherShed를 같은 컴퓨터에 설치할 수 없다는 점이 단점에 추가될 수 있습니다. 또한 TrueCrypt가 이미 설치된 시스템에 CipherShed를 설치하려고 하면 설치 프로그램이 이전 프로그램을 제거하도록 제안하지만 작업을 수행하지 못합니다.

시만텍 엔드포인트 암호화

2010년 시만텍은 PGPdisk 프로그램에 대한 권리를 인수했습니다. 그 결과 PGP Desktop과 같은 제품이 탄생했고, 이후에는 Endpoint Encryption이 출시되었습니다. 그것이 우리가 고려할 것입니다. 물론 이 프로그램은 독점이며 소스 코드는 닫혀 있으며 하나의 라이선스 비용은 64유로입니다. 그러나 GPT에 대한 지원이 있지만 Windows 8부터 시작됩니다.

즉, GPT 지원이 필요하고 시스템 파티션을 암호화하려는 경우 BitLocker와 Endpoint Encryption의 두 가지 독점 솔루션 중에서 선택해야 합니다. 물론 가정 사용자가 Endpoint Encryption을 설치할 가능성은 거의 없습니다. 문제는 설치하려면 에이전트와 SEE(Symantec Endpoint Encryption) 관리 서버가 필요한 Symantec Drive Encryption이 필요하고 서버가 IIS 6.0도 설치하려고 한다는 것입니다. 하나의 디스크 암호화 프로그램에 너무 좋은 것 아닙니까? 우리는 성능을 측정하기 위해 이 모든 과정을 거쳤습니다.

진실의 순간

그래서 우리는 가장 흥미로운 테스트, 즉 테스트를 진행합니다. 첫 번째 단계는 암호화 없이 디스크의 성능을 확인하는 것입니다. 우리의 "피해자"는 NTFS로 포맷된 28GB 하드 디스크 파티션(SSD가 아닌 일반)이 될 것입니다.

CrystalDiskMark를 열고 패스 수, 임시 파일 크기(모든 테스트에서 1Gbps 사용) 및 디스크 자체를 선택합니다. 통과 횟수가 실제로 결과에 영향을 미치지 않는다는 점은 주목할 가치가 있습니다. 첫 번째 스크린샷은 5번의 패스로 암호화하지 않은 디스크의 성능을 측정한 결과를 보여주고, 두 번째는 3번의 패스로 디스크의 성능을 측정한 결과를 보여줍니다. 보시다시피 결과는 거의 동일하므로 중점적으로 살펴보겠습니다. 세 번의 패스.


CrystalDiskMark 결과는 다음과 같이 해석되어야 합니다.

  • Seq Q32T1 - 순차 쓰기/순차 읽기 테스트, 대기열 수 - 32, 스레드 - 1;
  • 4K Q32T1 - 랜덤 쓰기/랜덤 읽기 테스트(블록 크기 4KB, 큐 수 - 32, 스레드 - 1);
  • Seq - 순차 쓰기/순차 읽기 테스트;
  • 4K - 랜덤 쓰기/랜덤 읽기 테스트(블록 크기 4KB);

BitLocker부터 시작하겠습니다. 28GB 파티션을 암호화하는 데 19분이 걸렸습니다.

기사의 계속은 구독자에게만 제공됩니다.

옵션 1. 사이트의 모든 기사를 읽으려면 "Hacker"를 구독하십시오.

구독하면 지정된 기간 동안 이 기사를 포함한 사이트의 모든 유료 자료를 읽을 수 있습니다. 우리는 은행 카드, 전자 화폐 및 이동 통신 사업자의 계좌에서 이체로 지불을 수락합니다.

컴퓨터의 개인 정보 및 보안 요구 사항은 전적으로 컴퓨터에 저장된 데이터의 특성에 따라 결정됩니다. 컴퓨터가 엔터테인먼트 스테이션 역할을 하고 사랑하는 고양이의 사진이 있는 몇 개의 장난감과 아빠 외에는 아무것도 없는 경우와 영업 비밀인 하드 드라이브에 데이터가 있는 경우에는 완전히 다른 문제입니다. 잠재적으로 경쟁업체의 관심을 끌 수 있습니다.

첫 번째 "방어선"은 컴퓨터를 켤 때마다 요청되는 시스템에 들어가기 위한 암호입니다.


다음 보호 수준은 파일 시스템 수준의 액세스 권한입니다. 권한이 없는 사용자는 파일에 액세스하려고 할 때 오류가 발생합니다.


그러나 설명된 방법에는 매우 중요한 한 가지 단점이 있습니다. 둘 다 운영 체제 수준에서 작동하며 컴퓨터에 약간의 시간과 물리적 액세스 권한이 있는 경우 비교적 쉽게 우회할 수 있습니다(예: USB 플래시 드라이브에서 부팅하여 관리 암호를 재설정하거나 파일 권한을 변경할 수 있음). 데이터의 보안과 기밀성에 대한 완전한 확신은 암호화의 성과를 사용하고 신뢰할 수 있는 경우에만 얻을 수 있습니다. 아래에서는 그러한 보호의 두 가지 방법을 고려합니다.

오늘 고려되는 첫 번째 방법은 Microsoft의 기본 제공 암호화 보호입니다. BitLocker라고 하는 암호화는 Windows 8에서 처음 등장했습니다. 별도의 폴더나 파일을 보호하는 데는 작동하지 않으며 전체 드라이브의 암호화만 사용할 수 있습니다. 특히 이것은 시스템 디스크를 암호화하는 것이 불가능하고(시스템이 부팅할 수 없음) "내 문서"와 같은 시스템 라이브러리에 중요한 데이터를 저장하는 것도 불가능하다는 사실을 의미합니다(기본적으로 시스템 파티션에 있음).
기본 제공 암호화를 활성화하려면 다음을 수행하십시오.

디스크크립터

오늘 검토된 두 번째 암호화 유틸리티는 무료 오픈 소스 솔루션인 DiskCryptor입니다. 사용하려면 아래 지침을 따르십시오.

BitLocker 메커니즘과 비교하여 이 유틸리티의 확실한 이점은 Windows 8 이전에 출시된 시스템에서 사용할 수 있다는 것입니다(단종된 Windows XP도 지원됨). 그러나 DiskCryptor에는 몇 가지 중요한 단점도 있습니다.

  • 암호화된 정보에 대한 액세스를 복원할 수 있는 방법이 없습니다(비밀번호를 잊어버린 경우 데이터 손실이 보장됨).
  • 비밀번호로만 잠금 해제가 지원되며 스마트 카드 또는 생체 인식 센서의 사용은 불가능합니다.
  • 아마도 DiskCryptor 사용의 가장 큰 단점은 시스템에 대한 관리 액세스 권한이 있는 공격자가 표준 수단을 사용하여 디스크를 포맷할 수 있다는 것입니다. 예, 그는 데이터에 액세스할 수 없지만 귀하도 데이터를 잃게 됩니다.

요약하면 Windows 8부터 시작하는 컴퓨터에 OS가 설치되어 있으면 기본 제공 기능을 사용하는 것이 좋습니다.

이 문서는 보관되어 더 이상 유지되지 않습니다.

BitLocker 드라이브 암호화 이해

대상: Windows Server 2008, Windows Server 2008 R2, Windows Vista

BitLocker 드라이브 암호화는 Windows Server 2008 R2 및 Windows 7의 일부 버전에서 사용할 수 있는 데이터 보호 기능입니다. 운영 체제에 BitLocker를 통합하면 분실, 도난 또는 부적절하게 폐기된 컴퓨터를 보호하여 데이터 도난 또는 취약성 위협에 대처할 수 있습니다.

분실 또는 도난당한 컴퓨터의 데이터는 소프트웨어를 해킹하거나 컴퓨터의 하드 드라이브를 다른 컴퓨터에 연결하여 무단 액세스에 취약합니다. BitLocker 암호화는 데이터에 대한 무단 액세스를 방지하여 파일 및 시스템 보안을 강화합니다. BitLocker 암호화는 BitLocker 암호화로 보호된 컴퓨터를 폐기하거나 재사용할 때 데이터에 액세스할 수 없도록 유지하는 데도 도움이 됩니다.

BitLocker 암호화는 TPM(신뢰할 수 있는 플랫폼 모듈) 버전 1.2와 함께 사용할 때 최대한의 보호를 제공합니다. TPM은 제조업체가 많은 최신 컴퓨터에 설치한 하드웨어 구성 요소입니다. BitLocker 암호화와 함께 작동하여 사용자 데이터를 보호하고 시스템이 종료되는 동안 컴퓨터가 변조되지 않았는지 확인합니다.

TPM 1.2가 설치되지 않은 컴퓨터에서 BitLocker 암호화는 Windows 운영 체제 드라이브를 암호화하는 데 계속 사용할 수 있습니다. 그러나 이 구현에서는 사용자가 USB 시작 키를 삽입하여 컴퓨터를 시작하거나 깨워야 하며 TPM을 사용한 BitLocker 암호화에서 제공하는 시작 전 시스템 무결성 검사를 제공하지 않습니다.

TPM 외에도 BitLocker 암호화는 사용자가 개인 식별 번호(PIN)를 입력하거나 시작 키가 포함된 USB 플래시 드라이브와 같은 이동식 장치를 삽입할 때까지 정상적인 시작 프로세스를 차단하는 기능을 제공합니다. 이러한 추가 보안 조치는 다단계 인증을 제공하고 올바른 PIN 또는 시작 키가 제공될 때까지 컴퓨터가 시작되거나 절전 모드에서 깨어나지 않도록 합니다.

시스템 무결성 확인

BitLocker 암호화는 TPM을 사용하여 부팅 구성 요소 및 부팅 구성 데이터의 무결성을 확인할 수 있습니다. 이렇게 하면 BitLocker 암호화를 사용할 때 이러한 구성 요소가 변조되지 않고 암호화된 드라이브가 원본 컴퓨터에 설치된 경우에만 암호화된 드라이브를 사용할 수 있습니다.

BitLocker 암호화는 다음 단계를 통해 시작 프로세스의 무결성을 보장하는 데 도움이 됩니다.

  • 루트 파일 및 부팅 초기 단계에서 사용된 파일의 무결성을 검사하는 방법을 제공하고 이러한 파일에 예를 들어 부트 섹터 바이러스 또는 부트 구성 요소 편집에 의해 만들어질 수 있는 악의적인 변경이 없는지 확인합니다. 도구.
  • 컴퓨터가 오프라인일 때 소프트웨어 공격에 대한 보호 기능이 향상되었습니다. 시스템을 시작할 수 있는 대체 소프트웨어는 Windows 운영 체제 드라이브의 암호화 키에 액세스할 수 없습니다.
  • 파일 교체 시 시스템 잠금. 제어된 파일이 교체된 경우 시스템이 시작되지 않습니다. 이렇게 하면 시스템을 정상적으로 시작할 수 없으므로 교체에 대해 사용자에게 알립니다. 시스템 잠금이 발생하는 경우 BitLocker 암호화는 손쉬운 복구 프로세스를 제공합니다.

    하드웨어, 펌웨어 및 소프트웨어 요구 사항

    BitLocker를 사용하려면 컴퓨터가 특정 요구 사항을 충족해야 합니다.

    • BitLocker 암호화에서 TPM에서 제공하는 시스템 무결성 검사 기능을 사용하려면 컴퓨터에 TPM 버전 1.2가 설치되어 있어야 합니다. 컴퓨터에 TPM이 설치되어 있지 않으면 BitLocker 암호화를 활성화할 때 USB 플래시 드라이브와 같은 이동식 장치에 시작 키를 저장해야 합니다.
    • TPM이 장착된 컴퓨터에는 TCG(신뢰할 수 있는 컴퓨팅 그룹) 사양을 준수하는 BIOS도 있어야 합니다. BIOS는 사전 부팅 작업에 대한 신뢰 체인을 만들고 TCG에서 정의한 신뢰 수준 측정의 정적 루트에 대한 지원을 포함해야 합니다. TPM 모듈이 없는 컴퓨터의 경우 TCG 사양을 준수하는 BIOS가 필요하지 않습니다.
    • 시스템 BIOS(TPM 및 비TPM 컴퓨터 모두)는 사전 운영 체제 환경의 USB 플래시 드라이브에서 작은 파일 읽기를 포함하여 USB 대용량 저장 장치 클래스를 지원해야 합니다. USB에 대한 자세한 내용은 USB 웹 사이트(http://go.microsoft.com/fwlink/?LinkId=83120)에서 USB 대용량 저장 장치 사양 및 UFI 대용량 저장 명령을 참조하십시오.
    • 하드 디스크는 최소 2개의 디스크로 분할되어야 합니다.
      • 운영 체제 드라이브(또는 부팅 드라이브)에는 운영 체제와 운영 체제가 실행하는 데 필요한 파일이 포함되어 있으며 NTFS 파일 시스템으로 포맷해야 합니다.
      • 시스템 디스크에는 BIOS가 플랫폼을 로드한 후 Windows를 부팅하는 데 필요한 파일이 들어 있습니다. 이 드라이브에는 BitLocker 암호화가 활성화되어 있지 않습니다. BitLocker 암호화가 작동하려면 시스템 드라이브가 암호화되지 않아야 하고 운영 체제 볼륨이 아니어야 하며 NTFS 파일 시스템으로 포맷해야 합니다. 시스템 드라이브의 크기는 1.5GB 이상이어야 합니다.

    설치 및 초기화

    BitLocker 암호화는 운영 체제 설치의 일부로 자동으로 설치됩니다. 그러나 BitLocker 암호화는 제어판에서 실행하거나 파일 탐색기에서 드라이브를 마우스 오른쪽 버튼으로 클릭하여 시작할 수 있는 BitLocker 설정 마법사를 사용하여 활성화할 때까지 사용할 수 없습니다.

    운영 체제를 설치하고 초기 설정한 후 언제든지 관리자는 BitLocker 설정 마법사를 사용하여 BitLocker 암호화를 초기화할 수 있습니다. 초기화 프로세스는 두 단계로 구성됩니다.

    1. TPM이 있는 컴퓨터에서 제어판 구성 요소인 TPM 설치 마법사를 사용하여 TPM을 초기화합니다. BitLocker 드라이브 암호화, 또는 모듈을 초기화하도록 설계된 스크립트를 실행합니다.
    2. BitLocker 암호화를 설정합니다. 제어판에서 BitLocker 암호화 구성 마법사를 열면 설치 과정을 안내하고 고급 인증 설정을 구성할 수 있는 옵션이 제공됩니다.

    BitLocker 암호화를 초기화할 때 로컬 관리자도 복구 암호와 복구 키를 만들어야 합니다. 복구 암호 또는 복구 키가 없으면 BitLocker로 암호화된 드라이브에 문제가 있는 경우 암호화된 드라이브의 모든 데이터에 액세스하지 못할 수 있습니다.

    BitLocker 암호화 구성 및 배포에 대한 자세한 내용은 Windows BitLocker 드라이브 암호화 연습(http://go.microsoft.com/fwlink/?LinkID=140225)을 참조하십시오.

    기업 구현

    BitLocker 암호화는 조직의 기존 AD DS(Active Directory 도메인 서비스) 인프라를 사용하여 오프사이트에 복구 키를 저장할 수 있습니다. BitLocker 암호화는 스크립팅 가능한 WMI 인터페이스를 통해 구성 및 관리, 확장성 및 관리를 위한 마법사를 제공합니다. 또한 BitLocker 암호화는 부팅 프로세스에 내장된 복구 콘솔을 제공하여 사용자나 헬프 데스크 직원이 잠긴 컴퓨터에 다시 액세스할 수 있도록 합니다.

    BitLocker 암호화 스크립팅에 대한 자세한 내용은 Win32_EncryptableVolume(http://go.microsoft.com/fwlink/?LinkId=85983)을 참조하십시오.

    컴퓨터 재활용 및 재사용

    주석

    일반적인 믿음과 달리 대부분의 최신 컴퓨터에 사용되는 DRAM 메모리는 몇 초 또는 몇 분 동안 정전 후에도 데이터를 유지하며, 이는 상온에서 발생하며 마더보드에서 칩을 제거하더라도 발생합니다. 이 시간은 RAM을 완전히 덤프하기에 충분합니다. 우리는 이 현상을 통해 시스템에 물리적으로 접근할 수 있는 공격자가 암호화 키에 대한 데이터를 보호하기 위한 OS 기능을 우회할 수 있음을 보여줄 것입니다. 특수 장치나 재료를 사용하지 않고 알려진 하드 드라이브 암호화 시스템에 대한 성공적인 공격을 위해 재부팅을 사용하는 방법을 보여줍니다. 잔존 보유의 정도와 확률을 실험적으로 결정하고 간단한 트릭을 사용하여 데이터를 가져올 수 있는 시간을 크게 늘릴 수 있음을 보여줍니다. 메모리 덤프에서 암호화 키를 찾고 누락된 비트와 관련된 오류를 수정하기 위한 새로운 방법도 제안됩니다. 우리는 또한 이러한 위험을 줄이는 여러 가지 방법에 대해 이야기할 것이지만 간단한 해결책을 모릅니다.

    소개

    대부분의 전문가들은 정전 후 컴퓨터 RAM의 데이터가 거의 즉시 지워진다고 가정하거나 특수 장비를 사용하지 않고 잔여 데이터를 검색하기가 극히 어렵다고 생각합니다. 우리는 이러한 가정이 잘못되었음을 보여줄 것입니다. 기존의 DRAM 메모리는 상온에서도 몇 초에 걸쳐 점차적으로 데이터가 손실되며, 메모리 칩을 마더보드에서 제거하더라도 칩을 저온에서 보관하면 몇 분 또는 몇 시간 동안 데이터가 남아 있습니다. 컴퓨터에 대한 단기 물리적 액세스가 필요한 간단한 방법을 사용하여 잔여 데이터를 복구할 수 있습니다.

    DRAM의 잔류 효과를 사용하여 메모리에 저장된 암호화 키를 복구할 수 있는 여러 공격을 보여줍니다. 이는 하드 드라이브 암호화 시스템에 의존하는 랩톱 사용자에게 실질적인 위협이 됩니다. 실제로 공격자가 랩톱을 훔치면 암호화된 디스크가 연결된 순간 랩톱 자체가 잠겨 있거나 절전 모드에 있더라도 콘텐츠에 액세스하는 공격 중 하나를 수행할 수 있습니다. BitLocker, TrueCrypt 및 FileVault와 같은 여러 인기 있는 암호화 시스템을 성공적으로 공격하여 이를 시연합니다. 이러한 공격은 다른 암호화 시스템에 대해서도 성공해야 합니다.

    우리는 하드 드라이브 암호화 시스템에 노력을 집중했지만 공격자의 컴퓨터에 물리적으로 액세스하는 경우 RAM에 저장된 모든 중요한 정보가 공격 대상이 될 수 있습니다. 다른 많은 보안 시스템이 취약할 수 있습니다. 예를 들어, 우리는 Mac OS X이 우리가 검색할 수 있는 메모리에 계정 암호를 남겨두는 것을 발견했고 Apache의 개인 RSA 키도 공격했습니다.

    정보 보안 및 반도체 물리학 커뮤니티의 일부 구성원은 이미 DRAM 잔류 효과를 알고 있었지만 이에 대한 정보는 거의 없었습니다. 결과적으로 보안 시스템을 설계, 개발 또는 사용하는 많은 사람들은 이 현상과 공격자가 얼마나 쉽게 악용할 수 있는지에 대해 생소합니다. 우리가 아는 한, 이것은 정보 보안에 대한 이러한 현상의 의미를 조사한 첫 번째 세부 작업입니다.

    암호화된 드라이브에 대한 공격

    하드 드라이브 암호화는 데이터 도난을 방지하는 잘 알려진 방법입니다. 많은 사람들은 공격자가 컴퓨터에 물리적으로 액세스한 경우에도 하드 드라이브 암호화 시스템이 데이터를 보호할 것이라고 믿습니다(실제로 이러한 시스템이 필요함, ed.). 2002년에 통과된 캘리포니아 법률은 데이터가 암호화되지 않은 경우에만 개인 데이터의 가능한 공개를 보고하도록 요구하고 있습니다. 데이터 암호화는 충분한 보호 조치로 간주됩니다. 법률에 특정 기술 솔루션이 설명되어 있지는 않지만 많은 전문가들은 하드 드라이브 또는 파티션 암호화 시스템의 사용을 권장하며 이는 보호를 위한 충분한 조치로 간주됩니다. 우리 연구 결과에 따르면 디스크 암호화에 대한 믿음은 근거가 없습니다. 가장 고도로 숙련된 공격자는 아니지만 데이터가 있는 랩톱이 켜져 있거나 절전 모드에 있는 동안 도난당한 경우 널리 사용되는 많은 암호화 시스템을 우회할 수 있습니다. 그리고 랩톱의 데이터는 암호화된 드라이브에 있는 경우에도 읽을 수 있으므로 하드 드라이브 암호화 시스템을 사용하는 것만으로는 충분하지 않습니다.

    우리는 알려진 하드 드라이브 암호화 시스템에 대해 여러 유형의 공격을 사용했습니다. 암호화된 디스크 설치 및 감지된 암호화 키의 정확성 검증에 가장 많은 시간이 소요되었습니다. RAM 이미지를 얻고 키를 검색하는 데 몇 분 밖에 걸리지 않았으며 완전히 자동화되었습니다. 대부분의 하드 드라이브 암호화 시스템이 이러한 공격에 취약하다고 믿을 만한 이유가 있습니다.

    비트로커

    BitLocker는 Windows Vista의 일부 버전에 포함된 시스템입니다. 파일 시스템과 하드 디스크 드라이버 간의 드라이버 역할을 하여 요청 시 선택한 섹터를 암호화 및 해독합니다. 암호화에 사용되는 키는 암호화된 디스크가 마운트 해제되어 있는 한 RAM에 있습니다.

    하드 드라이브의 각 섹터를 암호화하기 위해 BitLocker는 AES 알고리즘에서 생성된 동일한 키 쌍인 섹터 암호화 키와 CBC(암호화 블록 체인) 모드에서 작동하는 암호화 키를 사용합니다. 이 두 키는 차례로 마스터 키로 암호화됩니다. 섹터를 암호화하기 위해 섹터 암호화 키로 섹터 오프셋 바이트를 암호화하여 생성한 세션 키로 이진 평문 추가 절차를 수행합니다. 그런 다음 수신된 데이터는 Microsoft에서 개발한 Elephant 알고리즘을 사용하는 두 가지 혼합 기능으로 처리됩니다. 이러한 키가 없는 기능은 암호의 모든 비트에 대한 변경 수를 늘리고 그에 따라 암호화된 섹터 데이터의 불확실성을 높이는 데 사용됩니다. 마지막 단계에서 데이터는 적절한 암호화 키를 사용하여 CBC 모드에서 AES 알고리즘으로 암호화됩니다. 초기화 벡터는 CBC 모드에서 사용되는 암호화 키로 섹터 오프셋 바이트를 암호화하여 결정됩니다.

    BitUnlocker라는 완전 자동화된 데모 공격을 구현했습니다. 이것은 Linux OS가 있는 외부 USB 드라이브와 BitLocker 암호화 드라이브를 Linux OS에 연결할 수 있도록 하는 SYSLINUX 및 FUSE 드라이버를 기반으로 하는 수정된 부트로더를 사용합니다. Windows Vista를 실행하는 테스트 컴퓨터에서 전원이 꺼지고 USB 하드 드라이브가 연결되어 부팅되었습니다. 그 후 BitUnlocker는 자동으로 RAM을 외부 드라이브에 덤프하고, keyfind 프로그램을 사용하여 가능한 키를 검색하고, 모든 적절한 옵션(섹터 암호화 키와 CBC 모드 키 쌍)을 시도하고, 성공하면 암호화된 드라이브를 연결했습니다. 디스크가 연결되자마자 다른 디스크와 마찬가지로 작업이 가능해졌습니다. 2GB RAM이 장착된 최신 랩톱에서 프로세스는 약 25분이 걸렸습니다.

    이 공격은 소프트웨어의 리버스 엔지니어링 없이 수행할 수 있게 되었습니다. Microsoft 설명서에는 섹터 암호화 키와 CBC 모드 키의 역할을 충분히 이해하고 전체 프로세스를 구현하는 자체 프로그램을 만들 수 있도록 BitLocker 시스템이 설명되어 있습니다.

    BitLocker와 이 클래스의 다른 프로그램 간의 주요 차이점은 암호화된 드라이브의 연결이 끊겼을 때 키가 저장되는 방식입니다. 기본적으로 기본 모드에서 BitLocker는 많은 최신 PC에 있는 TPM 모듈을 통해서만 마스터 키를 보호합니다. 많이 사용되는 것으로 보이는 이 방법은 PC가 부팅될 때 키가 자동으로 로드되기 때문에 컴퓨터가 오랫동안 꺼져 있어도 암호화 키를 얻을 수 있기 때문에 우리 공격에 특히 취약합니다. 인증 데이터를 입력하지 않고 RAM에 (로그인 창까지).

    분명히 Microsoft 전문가는 이 문제에 익숙하므로 키가 TPM뿐만 아니라 암호 또는 외부 USB 드라이브의 키로 보호되는 개선된 모드에서 BitLocker를 구성하는 것이 좋습니다. 그러나 이 모드에서도 공격자가 PC가 실행되는 동안 PC에 물리적으로 액세스하면 시스템이 취약합니다(잠겨 있거나 절전 모드일 수도 있습니다(상태 - 이 경우 방금 꺼졌거나 최대 절전 모드는 영향을 받지 않은 것으로 간주됩니다). 이 공격에 의해).

    파일 볼트

    Apple의 FileVault 시스템은 부분적으로 연구되고 역설계되었습니다. Mac OS X 10.4에서 FileVault는 CBC 모드에서 128비트 AES 키를 사용합니다. 사용자 암호가 입력되면 AES 키와 두 번째 K2 키가 포함된 헤더가 해독되어 초기화 벡터를 계산하는 데 사용됩니다. Ith 디스크 블록의 초기화 벡터는 HMAC-SHA1 K2(I)로 계산됩니다.

    EFI 프로그램을 사용하여 RAM 이미지를 캡처하여 FileVault 암호화 드라이브가 연결된 Macintosh 컴퓨터(Intel 프로세서 기반)에서 데이터를 검색했습니다. 그런 다음 키 찾기 프로그램은 오류 없이 자동으로 FileVault AES 키를 찾았습니다.

    초기화 벡터 없이 수신된 AES 키를 사용하면 각 디스크 블록(첫 번째 AES 블록을 제외한 모든 것)의 4096바이트 중 4080바이트를 해독할 수 있습니다. 초기화 벡터도 덤프에 있는지 확인했습니다. 데이터가 아직 손상되지 않았다고 가정하면 공격자는 덤프의 모든 160비트 문자열을 하나씩 시도하고 블록의 해독된 첫 번째 부분에 바이너리를 추가할 때 가능한 일반 텍스트를 형성할 수 있는지 확인하여 벡터를 결정할 수 있습니다. . vilefault, AES 키 및 초기화 벡터와 같은 프로그램을 함께 사용하면 암호화된 디스크를 완전히 해독할 수 있습니다.

    FileVault를 조사하는 동안 우리는 Mac OS X 10.4 및 10.5가 이 공격에 취약한 메모리에 사용자 암호의 여러 복사본을 남겨두는 것을 발견했습니다. 계정 암호는 키를 보호하는 데 자주 사용되며, 키를 사용하여 FileVault 암호화 드라이브의 암호를 보호할 수 있습니다.

    트루크립트

    TrueCrypt는 Windows, MacOS 및 Linux에서 실행되는 인기 있는 오픈 소스 암호화 시스템입니다. AES, Serpent 및 Twofish를 포함한 많은 알고리즘을 지원합니다. 버전 4에서는 모든 알고리즘이 LRW 모드에서 작동했습니다. 현재 5번째 버전에서는 XTS 모드를 사용합니다. TrueCrypt는 사용자가 입력한 암호에서 파생된 다른 키로 암호화된 각 드라이브의 파티션 헤더에 암호화 키와 조정 키를 저장합니다.

    Linux OS에서 실행되는 TrueCrypt 4.3a 및 5.0a를 테스트했습니다. 256비트 AES 키로 암호화된 디스크를 연결한 다음 전원을 끄고 자체 메모리 덤프 소프트웨어를 사용하여 부팅했습니다. 두 경우 모두 keyfind는 256비트 손상되지 않은 암호화 키를 찾았습니다. 또한 TrueCrypt 5.0.a의 경우 keyfind가 XTS 모드 트윅 키를 복구할 수 있었습니다.

    TrueCrypt 4에서 만든 디스크의 암호를 해독하려면 LRW 모드 키를 조정해야 합니다. 우리는 시스템이 키 AES 키 스케줄 전에 4단어로 저장한다는 것을 발견했습니다. 덤프에서 LRW 키가 손상되지 않았습니다. (오류가 발생한 경우에도 키를 복구할 수 있습니다.)

    Dm-crypt

    버전 2.6부터 Linux 커널에는 디스크 암호화 하위 시스템인 dm-crypt에 대한 지원이 내장되어 있습니다. Dm-crypt는 많은 알고리즘과 모드를 사용하지만 기본적으로 키 기반이 아닌 초기화 벡터가 있는 CBC 모드에서 128비트 AES 암호를 사용합니다.

    cryptsetup 유틸리티의 LUKS(Linux Unified Key Setup) 분기와 2.6.20 커널을 사용하여 생성된 dm-crypt 파티션을 테스트했습니다. 디스크는 CBC 모드에서 AES를 사용하여 암호화되었습니다. 잠시 전원을 끄고 수정된 PXE 부트로더를 사용하여 메모리 덤프를 수행했습니다. 키 찾기 프로그램이 오류 없이 복구된 유효한 128비트 AES 키를 찾았습니다. 복구한 후 공격자는 cryptsetup 유틸리티를 수정하여 dm-crypt 암호화 파티션을 해독하고 마운트하여 필요한 형식의 키를 수락할 수 있습니다.

    보호 방법 및 제한 사항

    사용된 암호화 키를 어딘가에 저장해야 하기 때문에 RAM에 대한 공격에 대한 보호 구현은 간단하지 않습니다. 공격자가 PC에 물리적으로 접근하기 전에 키를 파괴하거나 숨기고, 주 메모리 덤프 소프트웨어가 실행되는 것을 방지하고, RAM 칩을 물리적으로 보호하고, 가능하다면 RAM의 데이터 보존 기간을 줄이는 데 집중할 것을 제안합니다.

    메모리 덮어쓰기

    우선, 가능하면 RAM에 키를 저장하지 않는 것이 필요합니다. 키 정보를 더 이상 사용하지 않을 때 덮어쓰고 데이터가 스왑 파일에 복사되는 것을 방지해야 합니다. 메모리는 OS 또는 추가 라이브러리를 통해 미리 지워야 합니다. 당연히 이러한 조치는 현재 사용 중인 키를 보호하지 못합니다. 암호화된 디스크나 보안 웹 서버에 사용되는 것과 같은 메모리에 저장해야 하기 때문입니다.

    또한 부팅 과정에서 RAM을 지워야 합니다. 일부 PC는 OS를 부팅하기 전에 지우기 POST 요청(Power-on Self-Test)을 사용하여 부팅 시 RAM을 지우도록 구성할 수 있습니다. 공격자가 이 요청의 실행을 막을 수 없다면 이 PC에서 중요한 정보로 메모리 덤프를 만들 수 없습니다. 그러나 그는 여전히 RAM 칩을 꺼내 필요한 BIOS 설정이 있는 다른 PC에 삽입할 기회가 있습니다.

    네트워크 또는 이동식 미디어에서 다운로드 제한

    우리의 공격 중 많은 부분이 네트워크 부팅 또는 이동식 미디어를 사용하여 구현되었습니다. 이러한 소스에서 부팅하려면 관리자 암호가 필요하도록 PC를 구성해야 합니다. 그러나 시스템이 기본 하드 드라이브에서만 부팅하도록 구성되어 있더라도 공격자는 하드 드라이브 자체를 변경하거나 대부분의 경우 컴퓨터의 NVRAM을 재설정하여 원래 BIOS 설정으로 되돌릴 수 있습니다.

    안전한 수면

    연구 결과에 따르면 단순히 PC 데스크탑을 잠그는 것(즉, OS는 계속 작동하지만 상호 작용을 시작하려면 암호를 입력해야 함)이 RAM의 내용을 보호하지 못한다는 것을 보여주었습니다. 슬립 모드는 공격자가 슬립 모드에서 복귀를 활성화한 다음 랩톱을 다시 시작하고 메모리 덤프를 만들 수 있기 때문에 슬립 모드에서 복귀할 때 PC가 차단되더라도 효과가 없습니다. 최대 절전 모드(RAM의 내용이 하드 디스크에 복사됨)도 소외된 미디어의 주요 정보를 사용하여 정상 작동을 복원하는 경우를 제외하고는 도움이 되지 않습니다.

    대부분의 하드 드라이브 암호화 시스템에서 사용자는 PC를 종료하여 자신을 보호할 수 있습니다. (TPM 모듈의 기본 모드인 Bitlocker 시스템은 PC를 켤 때 디스크가 자동으로 연결되기 때문에 취약한 상태로 남아 있습니다.) 메모리의 내용은 전원을 끈 후에도 잠시 동안 유지될 수 있으므로 몇 분 동안 워크스테이션을 모니터링하는 것이 좋습니다. 그 효과에도 불구하고, 이 조치는 워크스테이션의 긴 로딩으로 인해 매우 불편합니다.

    최대 절전 모드는 다음과 같은 방법으로 보호할 수 있습니다. 워크스테이션을 "깨우기" 위해 암호 또는 기타 비밀이 필요하고 이 암호에서 파생된 키로 메모리 내용을 암호화합니다. 공격자가 메모리를 덤프한 다음 무차별 대입으로 암호를 추측할 수 있으므로 암호는 강력해야 합니다. 전체 메모리를 암호화할 수 없는 경우 키 정보가 포함된 영역만 암호화하면 됩니다. 일부 시스템은 이러한 유형의 보호된 절전 모드로 들어가도록 구성될 수 있지만 이는 일반적으로 기본 설정이 아닙니다.

    사전 계산 거부

    우리의 연구에 따르면 사전 계산을 사용하여 암호화 작업의 속도를 높이면 주요 정보가 더 취약해집니다. 사전 계산은 메모리에 키 데이터에 대한 중복 정보가 있다는 사실로 이어지며, 이를 통해 오류가 있는 경우에도 공격자가 키를 복구할 수 있습니다. 예를 들어, 섹션 5에서 설명한 것처럼 AES 및 DES 알고리즘의 반복 키에 대한 정보는 공격자에게 매우 중복되고 유용합니다.

    사전 계산을 거부하면 잠재적으로 복잡한 계산을 반복해야 하므로 성능이 저하됩니다. 그러나 예를 들어 미리 계산된 값을 일정 기간 동안 캐시하고 이 기간 동안 사용하지 않으면 수신된 데이터를 지울 수 있습니다. 이 접근 방식은 보안과 시스템 성능 간의 절충안을 나타냅니다.

    키 확장

    키 복구를 방지하는 또 다른 방법은 메모리에 저장된 키 정보를 다양한 오류로 인해 키 복구가 더 어렵게 만드는 방식으로 변경하는 것입니다. 이 방법은 이론적으로 고려되었으며, 거의 모든 출력이 발견된 경우에도 입력이 숨겨진 상태로 유지되는 공개에 저항하는 함수가 표시되며 이는 단방향 함수의 작동과 매우 유사합니다.

    실제로 현재 사용 중이 아니지만 나중에 필요할 256비트 AES 키 K가 있다고 상상해 보십시오. 덮어쓸 수는 없지만 복구 시도에 저항하도록 만들고 싶습니다. 이를 달성하는 한 가지 방법은 큰 B비트 데이터 영역을 할당하고 무작위 데이터 R로 채운 다음 다음 변환 K + H(R)(이진 합계, ed.)의 결과를 메모리에 저장하는 것입니다. 여기서 H SHA-256과 같은 해시 함수입니다.

    이제 전기가 꺼져 있다고 상상해보십시오. 이것은 이 영역의 d 비트가 변경되도록 할 것입니다. 해시 함수가 강력하면 키 K를 복구하려고 할 때 공격자는 B 영역의 어느 비트가 변경되었을 수 있는지 추측할 수 있을 뿐이며 이 중 절반이 변경되었을 수 있습니다. d 비트가 변경된 경우 공격자는 크기(B/2+d)/d의 영역을 검색하여 R의 올바른 값을 찾은 다음 키 K를 복구해야 합니다. 영역 B가 크면 , 이러한 검색은 d가 상대적으로 작더라도 매우 길 수 있습니다.

    이론적으로 모든 키를 이러한 방식으로 저장할 수 있으며 필요할 때만 각 키를 계산하고 필요하지 않을 때 삭제합니다. 따라서 위의 방법을 적용하여 메모리에 키를 저장할 수 있습니다.

    물리적 보호

    우리의 공격 중 일부는 메모리 칩에 대한 물리적 액세스에 의존했습니다. 이러한 공격은 물리적 메모리 보호를 통해 방지할 수 있습니다. 예를 들어, 메모리 모듈은 닫힌 PC 케이스에 보관하거나 제거하거나 액세스하려는 시도를 방지하기 위해 에폭시로 밀봉됩니다. 또한 저온이나 케이스 개봉 시도에 대한 대응으로 메모리 덮어쓰기를 구현하는 것도 가능하다. 이 방법을 사용하려면 독립 전원 공급 시스템이 있는 센서를 설치해야 합니다. 이러한 방법 중 다수는 변조 방지 하드웨어(예: IBM 4758 보조 프로세서)를 포함하며 워크스테이션 비용을 크게 증가시킬 수 있습니다. 반면에 마더보드에 납땜된 메모리를 사용하면 훨씬 저렴합니다.

    건축의 변화

    PC 아키텍처를 변경할 수 있습니다. 이미 사용한 PC에서는 불가능하지만 새 PC를 보호할 수 있습니다.

    첫 번째 접근 방식은 모든 데이터를 더 빨리 지우는 방식으로 DRAM 모듈을 설계하는 것입니다. 가능한 한 빨리 데이터를 지우려는 목표가 메모리 새로 고침 기간 사이에 데이터를 잃지 않는다는 다른 목표와 충돌하기 때문에 이는 까다로울 수 있습니다.

    또 다른 접근 방식은 시작, 다시 시작 및 종료 시 저장소에서 모든 정보를 지우도록 보장하는 키 저장소 하드웨어를 추가하는 것입니다. 따라서 사전 계산과 관련된 취약성은 남아 있지만 여러 키를 저장할 수 있는 안전한 장소를 확보하게 됩니다.

    다른 전문가들은 메모리의 내용이 영구적으로 암호화되는 아키텍처를 제안했습니다. 이 외에도 재부팅 및 정전 시 키 ​​지우기를 구현하는 경우 이 방법을 사용하면 앞에서 설명한 공격에 대해 충분한 보호를 제공할 수 있습니다.

    신뢰할 수 있는 컴퓨팅

    예를 들어 TPM 모듈의 형태로 "신뢰할 수 있는 컴퓨팅"이라는 개념에 해당하는 하드웨어는 일부 PC에서 이미 사용되고 있습니다. 일부 공격에 대한 보호의 유용성에도 불구하고 현재 형태에서는 그러한 장비가 우리가 설명한 공격을 방지하는 데 도움이 되지 않습니다.

    사용된 TPM 모듈은 전체 암호화를 구현하지 않습니다. 대신, 그들은 부팅 프로세스를 관찰하여 키를 RAM으로 부팅하는 것이 안전한지 여부를 결정합니다. 소프트웨어에서 키를 사용해야 하는 경우 다음 기술을 구현할 수 있습니다. 사용 가능한 형식의 키는 부팅 프로세스가 예상 시나리오에 따라 진행될 때까지 RAM에 저장되지 않습니다. 그러나 키가 RAM에 있는 즉시 우리 공격의 대상이 됩니다. TPM 모듈은 키가 메모리에 로드되는 것을 방지할 수 있지만 메모리에서 읽는 것을 방지하지는 않습니다.

    결론

    일반적인 믿음과 달리 DRAM 모듈은 비활성화된 상태에서 비교적 오랜 시간 동안 데이터를 저장합니다. 우리의 실험에 따르면 이 현상으로 인해 OS가 내용을 보호하려는 시도에도 불구하고 RAM에서 암호화 키와 같은 중요한 데이터를 얻을 수 있도록 하는 전체 유형의 공격을 구현할 수 있습니다. 우리가 설명하는 공격은 실제로 실현 가능하며 인기 있는 암호화 시스템에 대한 공격의 예가 이를 증명합니다.

    그러나 다른 유형의 소프트웨어도 취약합니다. DRM(디지털 권한 관리) 시스템은 메모리에 저장된 대칭 키를 사용하는 경우가 많으며 설명된 방법을 사용하여 얻을 수도 있습니다. 앞에서 살펴본 것처럼 SSL 지원 웹 서버는 SSL 세션을 생성하는 데 필요한 개인 키를 메모리에 저장하기 때문에 취약합니다. 주요 정보를 검색하는 우리의 방법은 암호, 계좌 번호 및 RAM에 저장된 기타 중요한 정보를 찾는 데 효과적일 것입니다.

    발견된 취약점을 쉽게 제거할 수 있는 방법은 없는 것 같습니다. 소프트웨어를 변경하면 효과가 없을 가능성이 큽니다. 하드웨어 변경이 도움이 되지만 시간과 리소스 비용이 많이 듭니다. 현재 형태의 "신뢰할 수 있는 컴퓨팅" 기술도 메모리에 있는 키를 보호할 수 없기 때문에 그다지 효과적이지 않습니다.

    이러한 공격에 취약한 모드에서 자주 작동하는 랩톱이 이러한 위험에 가장 많이 노출되어 있다고 생각합니다. 이러한 위험의 존재는 디스크 암호화가 일반적으로 생각하는 것보다 덜 중요한 데이터를 보호한다는 것을 보여줍니다.

    결과적으로 DRAM 메모리를 최신 PC의 신뢰할 수 없는 구성 요소로 간주하고 중요한 기밀 정보 처리를 피해야 할 수 있습니다.


저자: 패디 랜다우
발행일: 2012년 9월
번역: Semenenko V.
번역 발행일: 2012년 11월 13일

Ubuntu 운영 체제를 설치할 때 데이터 암호화 설정에 대해 생각하지 않을 수 있습니다. 또는 홈 디렉토리를 암호화하지 않고 시스템에 사용자를 추가하는 상황이 있을 수 있습니다. 그러나 이제 마음이 바뀌었고 이 디렉토리의 보호를 구성하기로 결정했습니다. 즉, 귀하(또는 컴퓨터의 다른 사용자)는 현재 존재하지 않는 기능을 원합니다...

Ubuntu에서 암호화된 파티션 만들기

이미 설치된 Ubuntu Linux 시스템에 암호화 기능을 어떻게 추가할 수 있습니까?

다행히도 구현하기가 상당히 쉽습니다. 이렇게 하려면 다음 세 가지 기본 단계를 따르십시오.

  • 홈 디렉토리의 암호화된 사본을 생성하십시오.
  • 암호화되지 않은 원래 홈 디렉토리를 삭제합니다.
  • 스왑 파티션을 암호화합니다(Ubuntu 시스템을 설치할 때 또는 이 가이드를 단계별로 따를 때 한 번만 수행됨).

이 문서의 단계는 완전히 업데이트된 Ubuntu Precise 12.04 시스템에서 수행되었습니다.

훈련

Ubuntu Linux의 현재 버그로 인해 로그인 그래픽이 사용자의 암호화된 홈 폴더에 있으면 로그인할 수 없습니다. 사용자가 기본 모양을 변경한 경우 사용자의 홈 폴더에도 없는지 확인하십시오.

사용자 홈 디렉터리의 암호화된 복사본을 만드는 것은 안전한 절차입니다. 그러나 이를 구현하려면 일정량의 하드 디스크 공간이 필요하다는 점에 유의할 필요가 있습니다. 공간이 너무 적은 것으로 판명되면 데이터를 백업한 다음 데이터에서 모든 대용량 파일(예: 영화)을 삭제하고 암호화가 완료된 후 이 백업에서 복원해야 합니다. 일반적으로 가능한 문제를 방지하기 위해 모든 데이터를 백업하는 것이 좋습니다.

선호하는 패키지 관리자를 사용하여 encrypt-utils 프로그램을 설치하십시오.

암호화

이 튜토리얼에서는 작업할 사용자 이름으로 paddy의 로그인을 사용합니다. 홈 디렉토리가 암호화될 사용자의 이름으로 대체해야 합니다.

Ubuntu Linux를 재부팅하고 "복구 모드"로 이동합니다. 조언 - 시스템이 부팅되는 동안 Shift 키를 길게 눌러 Grub 메뉴를 엽니다. 일반적으로 "복구 모드"(복구 모드) 행은 이 부트로더 목록의 맨 위에서 두 번째에 있습니다.

복구 모드 메뉴에서 "삭제"를 선택하여 루트 계정에 대한 명령줄 프롬프트를 표시합니다.

이 문서의 시작 부분에서 언급한 프로그래밍 오류를 수정하려면 다음 두 명령을 입력하십시오.

마운트 --옵션 remount,rw / 마운트 --all

이제 우리는 패디 사용자의 홈 디렉토리의 암호화된 복사본을 만들 수 있습니다. 이렇게 하려면 아래 명령을 입력합니다. 동시에 이 유틸리티는 작업을 완료하기 위해 암호를 요구하므로 자신의 암호를 기억하는 데 어려움을 겪습니다.

cryptfs-migrate-home --사용자 패디

암호화 프로세스가 완료되면 몇 가지 경고가 표시됩니다. 무시해도 됩니다. 그러나 이 명령으로 생성된 임시 폴더의 경로를 기억해야 합니다. 그 모양은 다음과 같을 것입니다.

/home/paddy.ChPzzxqD

이 경우 마지막 8자(점 뒤)는 임의의 집합입니다. 이 디렉토리는 나중에 논의될 다음 "완료" 또는 "초기 상태로 돌아가기" 단계에서 필요합니다.

Ubuntu Linux 시스템을 재부팅하십시오. 이렇게 하려면 다음 명령을 입력하십시오.

지금 재시작 해

명령을 입력하고 실행한 후 몇 초가 걸릴 수 있으므로 인내심을 가지십시오.

완성

매번 그랬던 것처럼 일반적인 방법으로 Ubuntu 시스템에 로그인합니다. 모든 것이 이전과 같이 작동하는지 확인하십시오.

문제가 있는 경우 즉시 "원래 상태로 되돌리기" 항목으로 이동할 수 있습니다.

시스템의 모든 것이 제대로 작동하면 마지막 단계를 완료하십시오.

터미널을 열고 명령을 입력하여 임시 디렉토리를 삭제하십시오. 이렇게 하려면 홈 디렉터리가 암호화될 때 생성된 임시 폴더의 경로를 기억해야 합니다.

Sudo rm -R /home/paddy.ChPzzxqD

"준비" 단계에서 삭제한 데이터(있는 경우)를 복원합니다.

터미널을 다시 열고 스왑 파티션을 암호화하는 명령을 입력합니다. 이전에 홈 디렉터리 암호화가 구성된 사용자가 있는 경우 이 단계를 건너뛸 수 있습니다.

sudo ecryptfs-setup-swap

다시 재부팅하십시오.

원래 상태로 돌아가기

암호화 프로세스가 실패한 경우 이전 단계를 다시 반복해야 합니다.

명령 실행:

마운트 --options remount,rw / 마운트 --all ecryptfs-migrate-home --user 패디

그런 다음 명령을 입력하여 암호화 과정에서 생성된 임시 폴더의 내용을 봅니다. 이렇게하려면 경로를 다시 기억해야합니다. 오류가 발생하지 않아야 합니다. 그렇다면 도움이 필요합니다.

ls -l /home/paddy.ChPzzxqD

이제 세 가지 명령을 실행하여 재설정 프로세스를 완료하십시오.

Cd /home rm -R 패디 .ecryptfs/paddy mv paddy.ChPzzxqD

다시 재부팅하십시오.

위의 단계가 도움이 되었기를 바랍니다. 해결할 수 없는 문제가 있는 경우 내 Ubuntu 포럼 스레드에 요청을 게시할 수 있습니다.

암호화 시 절전 모드

대부분의 사용자는 이전 작업(이 기사의 앞부분에서 설명)을 수행한 후 Ubuntu 운영 체제가 최대 절전 모드로 전환되지 않는 이유와 이 기능을 복원하는 방법에 대해 궁금해합니다. 그 이유는 구성된 암호화 때문입니다. 홈 디렉토리 암호화를 구성한 경우 스왑 파티션도 암호화되지만 임의의 키로 암호화됩니다. 시스템을 최대 절전 모드로 전환하면 RAM 데이터가 스왑 파티션에 저장되고 임의 키로 암호화됩니다. 최대 절전 모드에서 시스템을 복원할 때 스왑 파티션을 암호화하는 데 사용된 키가 이미 복구 불가능하게 손실되어 시스템에서 이 파티션을 읽을 수 없습니다. 따라서 데이터를 검색할 수 없으며 이전 상태로 돌아갈 수 없습니다.

시스템에 파티션 암호화가 구성되어 있지 않은 경우 Ubuntu에서 최대 절전 모드를 복원하는 것은 쉽습니다. 이렇게 하려면 다음 명령을 실행하기만 하면 됩니다.

ls -l /home/paddy.ChPzzxqD rm -R 패디 .ecryptfs/paddy

그러나 사용자의 홈 파티션과 스왑 파티션이 시스템에서 암호화된 경우 스왑 파티션의 암호화를 임의의 키로 대체하는 것이 아니라 미리 선택된 암호로 대체해야 합니다.

그러나 컴퓨터의 각 사용자는 시스템 부팅 시 이 암호를 알아야 합니다.

일반 Ubuntu 12.04 시스템과 VirtualBox 가상 머신에 설치된 Ubuntu 시스템 모두에서 이 방법을 시도했습니다. 후자의 경우 절전 모드에서 복원할 때 화면 표시에 문제가 있었습니다. 그러나 일반 시스템에서는 모든 것이 잘 작동했습니다.

훈련

터미널에 다음 명령을 입력합니다.

sudo cryptsetup 상태 크립트 스왑 1

결과적으로 다음과 같이 장치가 지정되는 줄이 표시됩니다.

/dev/sda1

/dev/sdb5

이 장치는 시스템의 스왑 파티션입니다. 나중에 필요하므로 기억하십시오.

시스템을 변경할 때마다 데이터의 전체 백업을 수행하는 것이 좋습니다. 우리의 경우에도 유용할 것입니다.

취침 설정

다음 명령을 입력합니다. /dev/sdXN을 "준비" 섹션에서 생성한 스왑 파티션으로 바꾸십시오. 명령을 입력할 때 지정된 순서를 엄격히 준수해야 합니다.

sudo swapoff /dev/mapper/cryptswap1 sudo cryptsetup luksClose /dev/mapper/cryptswap1 sudo cryptsetup luksFormat cipher aes cbc essiv:sha256 확인 암호 키 크기 256 /dev/sdXN 경고! ======== 이것은 /dev/sda1의 데이터를 취소할 수 없도록 덮어씁니다. 확실합니까? (대문자 yes 입력): 예 LUKS 암호 입력: 암호 확인: sudo cryptsetup luksOpen /dev/sdXN cryptswap1

/dev/sda1 장치의 암호를 입력하고 오타를 방지하기 위해 반복합니다.

sudo mk swap /dev/mapper/crypt swap 1 sudo swapon --all swapon -s

마지막 명령은 장치 파일 이름 /dev/crypt swap 1 을 표시합니다.

원하는 편집기에서 구성 파일 /etc/crypttab을 엽니다. crypt swap 1 행을 다음으로 교체하십시오(/dev/sdXN을 스왑 장치로 변경하는 것을 잊지 마십시오).

Cryptswap1 /dev/sdXN 없음 luks

이제 /usr/share/initramfstools/scripts/local-top/cryptroot 파일을 편집하십시오. 그 안에 있는 줄을 찾으십시오(보통 번호는 288이지만 변경될 수 있음).

"cryptsetup: 알 수 없는 장치 매핑 설정 오류" 메시지

다음 빈 줄(FSTYPE=" 이전)로 이동하고 새 줄을 삽입합니다(/dev/sdXN 장치를 교체하는 것을 잊지 마십시오).

/sbin/cryptsetup luksOpen /dev/sdXN 크립트 스왑 1

/etc/acpi/hibetnate.sh 파일을 편집하십시오. 첫 번째 빈 줄에 값을 붙여넣습니다.

DEVICE="/dev/mapper/crypt 스왑 1"

/etc/initramfstools/conf.d/resume 파일을 편집합니다. 기존 줄을 다음으로 바꿉니다.

RESUME=/dev/mapper/crypt 스왑 1

그런 다음 /etc/polkit1/localauthoriyt/50-local.d/com.ubuntu.enable-hibernate.pkla 파일을 편집하십시오. 파일이 처음에는 존재하지 않으므로 먼저 만들어야 합니다. 그런 다음 라인을 추가하십시오.

ID=unixuser:* Action=org.freedesktop.upower.hibernate ResultActive=예

마지막으로 터미널을 열고 다음 명령을 입력합니다.

Sudo 업데이트 initramfs u k all

재부팅

절전 모드 사용

다음에 Ubuntu Linux를 시작하면 스왑 파티션에 대한 새 암호를 묻습니다. 그것을 입력하면 추가 일반 로그인 프로세스가 계속됩니다.

갑자기 암호를 잊어버린 경우 무언가를 입력하십시오. 후에 세 번의 실패시스템은 어쨌든 로그인 프로세스를 계속하지만 스왑 파티션을 마운트하지 않습니다. 새 키워드를 얻으려면 이 문서에 설명된 단계별 지침을 다시 따르세요.

이제 Ubuntu Linux 종료 메뉴에서 "최대 절전 모드" 모드를 찾아 사용할 수 있습니다. 명령줄에서 절전 모드로 전환하려면 터미널에 다음 명령을 입력하기만 하면 됩니다.

클라우드 드라이브를 사용하는 사용자는 Linux 배포판의 암호화에 점점 더 관심을 갖고 있습니다. 흥미로운 "클라우드 암호화" 프로그램을 소개하겠습니다.

순전히 이론적으로 클라우드 스토리지에 저장하는 파일이 기술적으로 특정 상황에서 몇 분 만에 공개될 수 있다고 생각한 적이 있습니까? 개인적으로, 나는 편집증이 거의 없기 때문에 "이미 ZOG에 의해 무리를 이루고 있는" 사람들을 위해 이 정보를 독점적으로 게시하지 않습니다. 왜냐하면 오래된 농담이 말했듯이 "당신이 편집증적이지 않다면 이것이 당신은 박해를 받고 있지 않습니다.” 그러니 나를 따르라. 친구들.

Linux는 다양한 방법과 다양한 수준에서 디스크 암호화를 구현합니다. 전체 디스크를 암호화하는 방법은 수백 가지가 있습니다. 저같은 멍뭉이도 알 수 있는 제가 좋아하는 프로그램의 작품만 보여드릴게요. 이 앱은 크립토메이터.

나는 그것에 대해 무엇을 좋아했는지 :

  • Google Drive, Yandex Disk, OneDrive, Mail.ru Cloud, Dropbox, ownCloud, Nextcloud 및 일반적으로 로컬 디렉토리와 동기화할 수 있는 모든 클라우드 스토리지 서비스와 완벽하고 즉각적으로 작동합니다.
  • 백도어 및 기타 사항을 확인할 수 있는 가능성을 나타내는 오픈 소스 응용 프로그램입니다.
  • 256비트 길이로 AES 암호화를 수행합니다.
  • 백도어가 없음을 의미하는 오픈 소스;
  • 파일 이름을 암호화하고 폴더 구조를 난독화합니다.
  • 로컬에서 사용할 수 있으며 인터넷 연결이 필요하지 않습니다.

실제로 암호화는 로컬 컴퓨터에서 수행된 다음 클라우드와 동기화되므로 누군가 클라우드 스토리지에 액세스하더라도 abracadabra 이름과 동일한 콘텐츠를 가진 파일 및 폴더 집합이 표시됩니다.

내가 이 애플리케이션을 좋아하는 이유는 두 가지입니다. 첫 번째는 가상 하드 디스크와 같은 암호화된 컨테이너를 연결하는 흥미롭고 편리한 구현입니다. USB 드라이브 연결 유형으로 구현됩니다. 두 번째는 크로스 플랫폼이며, 크립토메이터는 Linux, Windows 및 Mac OS에서 사용할 수 있습니다. 즉, 집에 Linux, 직장에 Mac OS, 여가 시간에 Windows가 있는 경우 Cryptomator를 설치하고 암호를 입력하기만 하면 클라우드 암호화 파일에 쉽게 액세스할 수 있습니다.

Cryptomator 설치 - Linux에서 파일 및 폴더를 암호화하는 응용 프로그램

Ubuntu 및 파생 제품에 설치하려면 터미널을 입력하십시오.

# 저장소 추가 sudo add-apt-repository ppa:sebastian-stenzel/cryptomator #update rep 패키지 목록 sudo apt-get update # Cryptomator를 직접 설치 sudo apt-get install cryptomator

Arch Linux 및 그 파생 제품에 설치하는 것이 그 어느 때보다 쉽습니다.

Yaourt -S cryptomator # 나는 pacaur에 대해 쓰지 않을 것이므로 명확합니다.

Fedora, Centos 및 기타 rpm 배포판에서의 설치는 단순히 바이너리 rpm 패키지를 다운로드하여 실제로 설치하는 것으로 완료됩니다.
rpm 패키지 다운로드

크립토메이터 사용

새로운 저장소를 만드는 방법은 다음과 같습니다.


암호화된 디렉토리가 생성될 디렉토리 선택

이 디렉토리는 로컬 또는 클라우드 스토리지의 동기화된 디렉토리일 수 있습니다.


우리는 미래에 암호화된 저장소를 연결하는 데 사용할 강력한 키를 만듭니다.


그 후에는 새로 생성된 키를 입력하는 일만 남고 암호화된 파티션이 마운트됩니다.


위의 스크린샷에서 536.9MB 파일이 포함된 패키지를 마운트된 cipher 폴더에 던졌고 1분 만에 이 작은 파일 묶음을 해결했습니다.