루트가 아닌 사용자로 LUKS 볼륨을 여시겠습니까?

루트가 아닌 사용자로 LUKS 볼륨을 여시겠습니까?

cryptsetup정보를 저장하기 위해 LUKS 파일 기반 장치를 만들고 있습니다 .

# create a file as a container
dd if=/dev/zero of=zulu.bin bs=1024 count=102400
# create a key
dd if=/dev/urandom bs=1 count=8192 2>/dev/null | \
  base64 | \
  cut -b 1-8192 | \
  tr -d '\n' | \
  gpg2 --output zulu-key.gpg -aser DEADBEEF
# format the file-based "device"
gpg2 --decrypt zulu-key.gpg | \
  cryptsetup luksFormat --iter-time=10000 --hash sha256 \
    --cipher aes-cbc-essiv:sha256 --key-size 256 --key-file - \
    zulu.bin

여기에는 이상적이지 않은 것들이 많이 있습니다. 즉, 블록 장치 암호화는 암호화 인증 등을 제공하지 않습니다.

어쨌든 루트가 아닌 사용자로는 장치를 열 수 없습니다.

$ gpg2 --decrypt zulu-key.gpg | \
    cryptsetup open -d - zulu.bin zulu
Cannot initialize device-mapper, running as non-root user.

나에게 본질적으로 필요한 것은 암호화되어 있지만 파일에 저장되는 전체 파일 시스템입니다. 권한을 높이지 않고도 이 암호화된 파일 시스템을 마음대로 열고 닫을 수 있어야 합니다.

나는 단순히 tmpfs나 ramfs를 생성하고 단순히 dd"장치"를 GnuPG에 직접 연결하는 것을 고려했습니다. 그런 다음 GnuPG의 암호화, 인증 및 부인 방지 기능을 얻을 수 있었지만 그것이 가능한지 확실하지 않습니다.

임의 크기의 파일 시스템을 GnuPG를 통해 암호화된 파일로 할당하는 잘 알려진 방법이 있습니까? RAM에서 연 다음 암호화를 위해 다시 GnuPG로 파이프하여 장치를 다시 오프라인으로 전환할 수 있습니까? 일반 사용자로서 FUSE를 사용하여 이 작업을 수행할 수 있습니까?


내 사용 사례는 해당 파일 시스템에 파일을 쓰는 프로그램이 암호화에 대해 전혀 알 필요가 없도록 임의 크기의 암호화된 파일 시스템이 필요하고 장치가 "닫혀" 있고 암호 텍스트가 디스크에 파일로 기록될 때 암호화를 처리하는 것입니다. .

답변1

홈 폴더에 빈 이미지와 폴더를 만듭니다.

cd
dd if=/dev/zero of=zulu.bin bs=1024 count=102400
mkdir myvault

다음을 추가하십시오 /etc/cryptmount/cmtab.

LUKS {
    keyformat=luks
    dev=/home/user/zulu.bin  keyfile=/home/user/zulu.bin
    dir=/home/user/myvault/       fstype=ext2
}

root다음 명령을 실행합니다.

cryptmount --generate-key 32 LUKS
cryptmount --prepare LUKS
mke2fs /dev/mapper/LUKS
cryptmount --release LUKS

이제 사용자는 다음을 입력하여 이미지를 설치할 수 있습니다.

cryptmount LUKS

입력하여 제거합니다.

cryptmount -u LUKS

chown//를 사용하면 다른 사용자를 차단할 수 chgrp있습니다 .chmodmyvault

GPG2를 여기에 가져오는 방법을 잘 모르겠지만 cryptmount맨페이지 에 따르면 cmtab키 파일과 비밀번호를 파일에 지정할 수 있습니다.

관련 정보