백업 할 디렉토리 트리의 xz
압축 된 tar
아카이브 를 작성하는 백업 서버 가 있습니다. 이러한 tar 아카이브는 split
용량 이 큰 (다중 TB), 조각 (2.5TB)으로 구성 될 수 있으며 각 조각은 LTO-6 테이프에 기록되며 테이프는 오프 사이트로 이동합니다.
이제 암호화를 추가하고 싶습니다. 공개-개인 키 암호화 및 하나 이상의 수신자 (관리자 공개 키)를 사용하여 분할하기 전에 tar 아카이브를 GPG로 암호화 할 수 있습니다.
그러나 복구의 경우 파일이 너무 커서 다른 곳으로 압축을 풀 수 없으므로 적어도 한 명의 관리자가 자신의 개인 키를 백업 서버에 넣어야합니다.
GPG는 세션 키가있는 AES와 같은 대칭 암호를 사용하는 하이브리드 암호화 체계를 사용하며 해당 세션 키만 수신자를 위해 공개-개인 키를 암호화합니다.
관리자 가 개인 키를 백업 서버에 넣지 않고 복구 할 파일의 암호 해독을위한 세션 키를 제공 할 수있는 방법이 있습니까?
물론 바퀴를 재발 명 할 수 있습니다.
- 백업 할 각 파일마다 백업 서버에서 임의의 세션 키를 만듭니다.
- GPG 대칭 암호화를 사용하여 파일 암호화
- GPG 비대칭 암호화를 사용하여 각 수신자의 세션 키를 암호화
그러나 “표준”또는 내장 또는 모범 사례를 통해 달성 할 수 있습니까?
답변
--show-session-key
및 --override-session-key
옵션을 사용하면 가능합니다 .
먼저 암호화 된 파일의 시작이 필요합니다. 암호화 된 세션 키가 저장되는 곳입니다.
root@qwerty:~/gpg# head -c 1024k bigfile.gpg > head.gpg
그런 다음 워크 스테이션에 복사하고 세션 키를 검색하십시오.
PS C:\Users\redacted\Downloads> gpg --show-session-key .\head.gpg
gpg: encrypted with 2048-bit RSA key, ID DC21D645, created 2016-02-01
"admin <admin@domain.tld>"
gpg: session key: '9:926EC16DF1248A1C4401F5AD5D86C63C1BD4BF351ECEFB121C57EC209DE3933D'
이제 세션 키를 사용하여 파일을 해독 할 수 있습니다
root@qwerty:~/gpg# gpg -d -o bigfile --override-session-key 9:926EC16DF1248A1C4401F5AD5D86C63C1BD4BF351ECEFB121C57EC209DE3933D bigfile.gpg
gpg: encrypted with 2048-bit RSA key, ID DC21D645, created 2016-02-01
"admin <admin@domain.tld>"
답변
대부분의 질문에 대한 답변이 된 것처럼 보이지만 관리자 팀이 개인 키가 로컬 제어로 끝나는 것을 조심 sshfs
한다면 ssh 세션을 통해 원격 백업을 마운트하는 것이 좋습니다.
각 원격 관리자 시스템에 apt를 통해 설치
sudo apt-get install sshfs
관리자의 ssh 구성이 아래와 같다고 가정합니다.
# configuration for ssh login to remote server
Host Remote
Hostname Remote.web.domain
User admin
IdentityFile ~/.ssh/private.key
그런 다음 관리자는 다음과 같이 마운트에 사용할 수 있습니다
# make a mount point
mkdir -p /mnt/remote
# mount remote directory to local file system
sshfs Remote:/path/to/encrypted/dir /mnt/remote
검사 후 원격 관리자를 마운트 해제하려면 다음을 사용할 수 있습니다.
fusermount -u /mnt/remote
sshfs 사용에 대한 좋은 점은 원격 서버에서 GnuPG 및 ssh의 공개 키만 필요하고 관련 개인 키는 소유 한 시스템에 남아 있다는 것입니다. 두 번째로 좋은 점은 대부분의 파일 정보를 읽거나 액세스 할 때까지 관련 파일 시스템에 남아 있다는 것입니다.
여전히 로그 또는 디렉토리의 자동 암호화를 촉진 할 수있는 도구를 찾고 있다면 나중에 내가 푸시 한 개념 도구의 교수 확인 할 수 있습니다 GitHub의 (특히 시나리오 네 작성된 sshsf
행복하게 거의 모든 암호화합니다 약간의 정의에있는 사용) GnuPG를 통한 데이터. 그러나 실험적이며 일부 기능으로 인해 잘못 사용하면 데이터가 손상 될 수 있습니다. 소스 코드는 ~ 1600 ~ 줄보다 적으므로 주말 이내에 감사 할 수 있습니다.
암호화 된 디렉토리에 대한 액세스 만 허용하고이 방식으로 사용되는 관리자 키에 대해 대화식 쉘을 사용하지 않도록 chroot 사용자로 원격 서버의 ssh 구성을 설정하여 추가 보안을 수행 할 수 있습니다.
답변
비밀 키를 하드 디스크에 보관하려면 램 디스크를 작성하고 (필요한가?) 필요에 따라 서버의 안전한 비 서버 위치에서 비밀 키를로드 할 수 있습니다. 암호 해독에 사용하고 완료되면 / dev / random으로 덮어 씁니다. 비밀은 어쨌든 GPG에서 사용하기 위해 RAM에 들어가야합니다.
RAM에서도 서버에 비밀 키를 둘 수 없다면 기술적으로 불가능합니다. 암호를 해독하려면 GPG에 비밀 키가 있어야합니다.
램 디스크 정보 : /unix/66329/creating-a-ram-disk-on-linux