최신 파일 시스템(및 최신 SSD)에서 기존 유틸리티(예: dd)를 사용하여 파일에 쓰는 경우 데이터가 제자리에 덮어쓰여지고 로그 백업이 손상된다는 보장이 없습니다. 따라서 데이터 복구가 가능합니다. 그래서 몇 가지 연구 끝에 임시 ramfs(스왑 가능성으로 인해 tmpfs는 제외됨)를 마운트하는 것이 좋은 방법이라고 생각했습니다.
# mkdir -p /mnt/tmp/ram
# mount -t ramfs -o size=[size, but ramfs grows as needed] ramfs /mnt/tmp/ram
# [create the sensitive data, secure it, copy out secured data]
# umount /mnt/tmp/ram
Q1: ramfs를 제거하면 ramfs에 포함된 데이터가 삭제됩니까?
Q2: 데이터가 파기된다는 보장이 없다면 해당 데이터를 복구할 수 있는 가능한 방법이 있습니까? 아니면 제가 편집증적인 것인가요?
Q3: 데이터를 복구할 수 있는 경우
# dd if=/dev/zero of=/mnt/tmp/ram/[filename]
데이터가 올바르게 파괴되었습니까? 아니면 ramfs가 파일 덮어쓰기를 보장하지 않습니까?
제한사항: 시스템강제로 다시 시작할 수 없습니다.이 작업 전/중/후.
궁금하신 경우를 대비해 이 예에서 "민감한 데이터"는 솔트 처리되지 않은 해시 처리되지 않은 사용자 이름 + pam 데이터베이스의 비밀번호입니다. "보안 데이터"는 궁극적으로 메인 드라이브에 저장될 솔트/해시된 데이터베이스입니다. 나는 민감한 데이터가 드라이브에 닿는 것을 원하지 않습니다. (저는 ext3을 사용하고 있기 때문에 전체 파티션을 지우지 않고는 데이터를 복구할 수 없다는 것을 보장하지 않습니다.)
더 좋은 방법 아시는 분 계시면 알려주시면 감사하겠습니다.
답변1
질문 1: 예
Q2: 데이터를 복구할 수 없습니다. 그러나 조금 극단적으로 가고 싶다면 이렇게 할 수 있습니다 :)
- 메모리에 공간을 만듭니다.
mkdir ram mount -t ramfs -o size=1000M ramfs ram/
- 무작위로 채워진 파일을 생성하고 해당 RAM 공간에서 암호화합니다. 무작위 데이터로 가득 차 있기 때문에 무작위 데이터와 암호화된 데이터 사이의 경계를 설정하는 것은 불가능합니다.
dd if=/dev/urandom of=ram/test bs=1M count=512
- 암호화 설정
cryptsetup -y luksFormat ram/test cryptsetup luksOpen ram/test encypted
- 새 안전 공간을 포맷하고 마운트합니다.
mkfs.ext4 /dev/mapper/encypted mkdir securedir mount /dev/mapper/encypted securedir/
- Umont secureir/ 그리고 ram/을 실행하여 시간이 끝날 때까지 데이터를 공개합니다.
umount securedir/ umount ram/