나는 ~였다내 컴퓨터의 단일 디렉터리를 암호화하기 위해 ecryptfs를 사용하여 조사 중, 그러나 내가 알아차린 한 가지는 다음과 같이 언급한 바와 같이 낮은 수준의 암호화된 데이터 파일에서 암호화되지 않은 파일에 대한 타임스탬프 작업이 누출된다는 것입니다.홈 폴더를 완전히 숨기세요. ecryptfs가 올바른 선택인가요?이는 공격자가 파일을 식별하는 데 큰 도움이 될 수 있습니다.
각 데이터 파일에 고정 타임스탬프를 사용하는 등 이러한 타임스탬프를 숨기는 방법이 있습니까? 파일 크기도 공격자에게 도움이 될 수 있다는 것을 알고 있지만 그 정도는 감수할 수 있습니다. (음, 아니면 그럴 수 있습니까? 공격자가 암호화된 파일의 암호화되지 않은 버전에서 암호화된 파일의 정확한 크기를 고유하게 결정할 수 있습니까? 또 다른 질문이 있을 것 같습니다.) .
다음 명령을 사용하여 이를 재현할 수 있습니다.
export ECRYPTFS_DIR="$HOME/ecryptfs"
export ECRYPTFS_DATA_DIR="$HOME/.ecryptfs-data"
sudo mount -t ecryptfs \
-o key=passphrase,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=no,ecryptfs_enable_filename_crypto=yes \
"$ECRYPTFS_DATA_DIR" \
"$ECRYPTFS_DIR"
echo AAAA > ~/ecryptfs/aaaa
echo BBBB > ~/ecryptfs/bbbb
dd if=/dev/zero bs=1k count=1k > ~/ecryptfs/zzzz
sudo umount "$ECRYPTFS_DIR"
ls -l "$ECRYPTFS_DATA_DIR"
그러면 해당 파일에 대한 올바른 타임스탬프가 표시됩니다.
Ubuntu 20.04, Linux 커널 5.4에서 테스트되었습니다.
답변1
아니요, 타임스탬프를 숨길 수 없습니다. 타임스탬프 및 파일 크기와 같은 메타데이터(타임스탬프보다 개인정보를 침해할 가능성이 높음)를 숨기려면 전체 디스크(또는 전체 파티션) 암호화가 필요합니다.
touch
mtime(콘텐츠 수정 시간)을 강제로 다르게 하는 방법이 있을 수 있습니다( 실제로 다음을 사용하여 수동으로 수행할 수 있습니다).ctime(인덱스 노드 변경 시간). ctime은 파일이 어떤 방식으로든 마지막으로 수정된 시간입니다.