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