일반 사용자로서 사용자 공간에서 cryptsetup 암호화

일반 사용자로서 사용자 공간에서 cryptsetup 암호화

콘텐츠가 압축되고 암호화되어 설치 가능한 패키지 형식을 만드는 것은 내 책임입니다.

나는 이것을 cryptsetup 원시 장치에 내장된 squashfs로 모델링했습니다.

아아, cryptsetup을 설정하려면 루트 액세스가 필요하기 때문에 jenkins와 같은 빌드 서버에서 이러한 패키지를 빌드할 수 없습니다. Docker 컨테이너 내부에서 동일한 작업을 수행하는 경우에도 Docker가 장치 매퍼에 투명하지 않기 때문에 작동하지 않습니다.

따라서 다음과 같은 옵션이 있습니다.

  1. 빌드 서버에서 squashfs를 생성하고 "수동으로" cryptsetup 레이어를 완료하세요.
  2. 어떻게 든 커널 개입없이 cryptsetup 암호화를 수행합니다.

1.은 프로세스에 또 다른 단계를 추가하므로 2와 같은 작업을 선호합니다.

더 쉽게 이해하려면 다음을 수행하세요.

현재 나는 다음과 같은 일을하고 있습니다

mksquashfs <sources> tempfile -noappend
<determine the size of tempfile>
<create "outfile" file with said size> 
cryptsetup open -q -d keyfile outfile <my-dm-device>
mksquashfs <sources> /dev/mapper/<my-dm-device> -noappend
cryptsetup close <my-dm-device>

나는 그것을 단순화하고 싶다

mksquashfs <sources> tempfile -noappend
user_space_crypt_create -q -d keyfile tempfile outfile

여기서 user_space_crypt_create는 암호화되지 않은 임시 파일을 (원시) 암호화된 출력 파일로 변환합니다. 이 파일은 나중에 cryptsetup을 통해 대상 시스템에 설치할 수 있습니다.

그런 것이 존재하나요?

관련 정보