커널 명령줄에서 암호화 키를 가져오는 대신 initramfs 없이 수행할 수 있는 전체 디스크 암호화 체계가 있습니까? 공격자가 부트로더 파일만 읽을 수 있기 때문에 이것이 안전하지 않다는 것을 알고 있지만 이 장치의 부팅 프로세스로 인해 부팅할 때마다 명령줄을 수동으로 입력해야 합니다.
나는 이 arm64 장치에 대해 자체 커널을 컴파일했으므로 사용자 정의 커널 구성 옵션은 나에게 문제가 되지 않습니다.
답변1
아니요.
글쎄, 일반적으로 FDE는 하드웨어(Linux가 아님)에 있어야 합니다. 그렇지 않으면 커널은 어디에서 왔는지입니다. 이 문제를 해결했다고 가정합니다(아마도 덜 일반적인 부팅 프로세스에 대한 제안과 관련이 있을 수 있음)...
명령줄 옵션을 통해 해독된 블록 장치에서는 루트 파일 시스템을 마운트할 수 없습니다. ecryptfs를 루트로 마운트하는 것도 불가능합니다. ecryptfs를 마운트하기 전에 ecryptfs에 대한 백업 파일 시스템을 설정해야 합니다...
(기술적으로는 해킹 옵션이 있습니다 rootdelay=
. 그러나 두 개의 rootf를 나란히 마운트하는 부팅 옵션이 없으며 어떤 방식으로든 블록 장치의 암호를 해독하는 부팅 옵션도 없습니다.)
일반적으로 /proc/cmdline
모든 사용자 공간 프로세스에서 읽을 수 있으므로 Linux는 여기에 키를 넣는 것을 권장하지 않습니다. 이러한 아이디어를 FDE의 암묵적인 보안 요구 사항과 조화시키는 것은 어려운 일이지만 아마도 인위적인 상황이 있을 수 있습니다.
선택한 방식으로 스토리지 스택을 구축할 수 있는 사용자 공간 코드 덩어리를 커널에 전달하려는 것 같습니다. 커널 개발자조차도 승인하지 않는 방식입니다 :-). 시작 시 이 Blob을 전달할 수 있습니다. 또는 커널에 빌드하도록 선택할 수도 있습니다. 이를 초기 ramfs 또는 간단히 initramfs라고 부를 수 있습니다. 좋은 소식! 누군가 이미 이 커널 기능을 구현해 주었습니다.
이 질문은 왜 9글자 단어를 말할 수 없는지 설명하지 않습니다. 사용자 정의 컴파일을 수행하고 있으므로 언제든지 원하는 이름으로 패치할 수 있습니다. :-P.
(이것은 보다 일반적인 옵션입니다. 기술적으로 귀하의 경우 암호화되지 않은 파티션을 사용하여 동일한 코드를 저장할 수 있지만 일반적으로 덜 편리합니다.)
배포판의 initramfs만큼 클 필요는 없습니다. 예를 들어, 빠른 검색을 통해 이것이 합리적인 출발점이 되는 것으로 나타났습니다.
https://gist.github.com/packz/4077532
initramfs에 필요한 모듈만 활성화하는 사용자 정의 비지박스를 구축할 수 있습니다. 정적 링크가 얼마나 잘 작동하는지에 따라 다르지만 initramfs가 커널보다 작았으면 좋겠습니다.
답변2
예.
이제 새로운 커널 매개변수 "dm-mod.create="를 사용할 수 있습니다. 여기에서 젠투에 대한 간략한 설명을 찾았습니다:https://forums.gentoo.org/viewtopic-t-1110764-highlight-.html
여기Linux 커널 문서에서 자세한 내용이 포함된 페이지를 찾을 수 있습니다.dm-mod.create