Python을 실행하여 Luks 전체 디스크 암호화 잠금 해제

Python을 실행하여 Luks 전체 디스크 암호화 잠금 해제

우분투 14.04에서 Luks를 사용하여 전체 디스크 암호화를 사용하고 싶습니다. 그러나 나는 내 자신의 Python 스크립트를 사용하여 장치 부팅 중에 암호 해독 키를 생성하는 기능을 수행하고 싶습니다. 그런 다음 암호 해독을 위해 lukes로 보냅니다.

이상적으로는 "파이썬 스크립트의 결과" + "사용자가 암호 해독 키를 입력합니다"를 원합니다. 그런 다음 장치가 암호를 해독할 수 있도록 lukes에 전달됩니다. 그런 다음 Python에서 자체 기능을 구현하여 장치의 암호 해독을 허용하는 '두 번째 요소'를 만들 수 있습니다.

나는 주변을 검색했지만 실제로 내 질문에 대한 답을 찾지 못했습니다. 도움을 주거나 조언을 해줄 수 있나요?

감사합니다.

답변1

루트 파일 시스템에 전체 디스크 암호화를 사용하는 경우 일반적으로 부팅 시 Python 인터프리터를 초기에 사용할 수 없다는 문제를 해결해야 합니다. 예를 들어 여러 가지 /usr/bin/python2.7필수 항목을 저장하려면 암호화되지 않은 추가 디스크 공간이 몇 메가바이트 필요하며 이 작업을 수행하려면 /usr/lib/python2.7몇 가지 수정 사항을 개발해야 합니다 ./boot/initrd

부팅 프로세스는 /scripts/local-top/cryptrootinitrd 루트에서 호출됩니다. 이는 일반적으로 도구를 호출합니다 plymouth ask-for-password --prompt. 이는 그래픽 사용자 인터페이스가 시작되기 전에 사용자에게 암호를 묻는 데 사용됩니다. 이 암호는 차례로 cryptsetup으로 연결됩니다.

여전히 이 접근 방식을 계속 사용하려면 스크립트를 직접 해킹하는 대신 구성 디렉터리에 있는 구성 파일을 사용하여 /etc/initramfs-tools/고유한 새 값을 구성할 수 있거나 사용해야 합니다 . 이렇게 하면 나중에 OS 배포 업데이트를 설치하는 것이 덜 번거로워집니다.cryptkeyscript/usr/share/initramfs-tools/scripts/local-top/cryptroot

자세한 내용은 initramfs-tools, cryptsetup 및 plymouth 패키지 문서를 참조하고 cryptroot위에서 언급한 셸 스크립트를 살펴보세요.

관련 정보