ext4 암호화 파일 복사

ext4 암호화 파일 복사

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 디렉토리를 삭제할 수도 있습니다. 루트 디렉터리에 암호화된 파일(내용)이 있게 됩니다(암호화하면 안 됨). 파일 시스템은 파일이 암호화되었다는 사실만 알고 있습니다. (실제로는 그렇게 하지 않는 것이 좋습니다.)


어쨌든 복사본을 만들어야 한다면 우회적인 방법으로 할 수 있을 것 같습니다.

  1. 전체 파일 시스템의 원시 dd 복사본 만들기
  2. 파일 시스템 UUID 변경
  3. 원하지 않는 파일 삭제

e4crypt그렇지 않으면 암호화된 디렉터리와 메타데이터를 하나의 ext4 파일 시스템에서 다른 파일 시스템으로 복사하는 방법을 아는 전문 도구가 필요할 것 같지만 OR을 사용하여 이 작업을 수행할 수 있는 방법을 찾지 못했습니다 debugfs.


debugfsls -r특히 암호화된 파일 이름을 완벽하게 표시하는 것 외에는 정책/암호화 관련 기능이 부족한 것 같습니다 . \x1e\x5c\x8d\xe2\xb7\xb5\xa0N\xee\xfa\xde\xa66\x8axY이는 일반적으로 표시되는 ASCII 표현이 ls인쇄 가능하도록 인코딩된다는 의미입니다.

실제 파일 이름[파일 시스템에 채워지고 실제로 저장됨]은 임의의 16바이트이지만 기존에서는 ls22개의 ASCII 문자로 표시합니다. 무작위 바이트로 저장해야 하는 경우 이러한 파일을 기존 방식으로 복사하면 ASCII 문자 표현으로 저장되는 파일이 생성됩니다. 따라서 이것은 확실히 많은 수준에서 실패할 것입니다.


너무 길어요.이를 수행할 수 있는 방법이 있다면 나는 그것을 모릅니다 :-}

관련 정보