ext4 암호화를 사용하고 있습니다. https://wiki.archlinux.org/index.php/Ext4#Using_file-based_encryption
디렉터리를 해독하기 전에 그 안에 암호화된 파일 이름이 많이 있는 것을 볼 수 있습니다.
다른 컴퓨터에서 해독할 수 있도록 암호화된 파일을 복사하고 싶습니다.
ecryptfs를 사용하면 이 작업을 수행할 수 있습니다. ext4 암호화로 이를 어떻게 수행합니까?
답변1
암호화되고 패딩된 파일 이름을 볼 수 있지만 파일 내용을 읽을 수는 없습니다. 따라서 암호화되지 않은 파일을 복사하려고 하면 다음과 같은 오류가 발생합니다.
cp: cannot open 'vault/YgI8PdDi8wY33ksRNQJSvB' for reading: Required key not available
그래서 당신은 이것을 해서는 안 됩니다. 실용적인 대답은 암호를 해독한 다음 복사하는 것입니다. 암호화된 위치를 대상 디렉터리로 선택한 경우 복사본이 다시 암호화됩니다. rsync/ssh를 사용하는 네트워크를 통한 전송도 암호화됩니다. 따라서 대부분의 작업은 작동하므로 클라우드에 저장하는 것만으로는 불가능할 것입니다. 파일 시스템별 암호화는 파일 시스템 외부에서는 작동하지 않습니다.
읽기 장벽을 우회하는 것만으로는 충분하지 않습니다. 모든 메타데이터가 일반 파일인 ecryptfs와 달리 ext4 암호화에는 파일 시스템 자체에 숨겨져 있고 사용자에게 표시되지 않는 메타데이터가 포함되므로 쉽게 복사할 수 없습니다.
내가 찾은 가장 가까운 것은 일반 텍스트의 실제 키를 알지 못해도 기존 키로 디렉터리를 암호화할 수 있는 입니다 e4crypt get_policy
. e4crypt set_policy
그러나 파일이 아닌 빈 디렉토리에서만 작동합니다.
또한 Vault 디렉토리를 암호화하고 파일로 채운 다음 해당 파일을 루트 디렉토리에 하드링크한 다음 Vault 디렉토리를 삭제할 수도 있습니다. 루트 디렉터리에 암호화된 파일(내용)이 있게 됩니다(암호화할 수 없다고 가정됨). 파일 시스템은 파일이 암호화되었다는 것만 알고 있습니다. (실제로는 권장하지 않습니다.)
어쨌든 복사본을 만들어야 한다면 우회적인 방법으로 할 수 있을 것 같습니다.
- 전체 파일 시스템의 원시 dd 복사본 만들기
- 파일 시스템 UUID 변경
- 원하지 않는 파일을 삭제하세요
그렇지 않으면 암호화된 디렉터리와 메타데이터를 하나의 ext4 파일 시스템에서 다른 파일 시스템으로 복제하는 방법을 아는 전문 도구가 필요할 것 같지만 e4crypt
또는 debugfs
.
debugfs
ls -r
특히 암호화된 파일 이름을 완벽하게 표시하는 것을 제외하고는 정책/암호화 관련 기능이 없는 것 같습니다. \x1e\x5c\x8d\xe2\xb7\xb5\xa0N\xee\xfa\xde\xa66\x8axY
즉, 일반 쇼의 ASCII 표현이 ls
인쇄 가능한 방식으로 인코딩된다는 의미입니다.
실제 파일 이름은 임의의 16바이트로 [파일 시스템에 추가되어 실제로 저장되지만] 일반에서는 ls
대신 22개의 ASCII 문자로 표시됩니다. 이러한 파일을 전통적인 방식으로 복사하면 실제로 임의 바이트로 저장해야 할 때 ASCII 문자 표현으로 저장된 파일이 생성됩니다. 그래서 그것은 너무 많은 레이어에서 실패할 수밖에 없습니다.
tl;dr그것을 할 수 있는 방법이 있다면 나는 그것에 대해 모른다 :-}