Что касается создания и уничтожения конфиденциальных данных в системах linux / unix

В современных файловых системах (и на современных SSD) нет гарантии, что если вы напишете файл с помощью традиционной утилиты (например, dd), данные будут перезаписаны на месте и заблокированы журналированные резервные копии. В результате данные могут быть восстановлены. Итак, после небольшого исследования я решил, что установка временных рампов (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 уничтожает данные, содержащиеся в нем?

Q2: Если данные не гарантированно уничтожены, существует ли какой-либо возможный способ восстановления указанных данных (или я просто параноик)?

Q3: Если данные могут быть восстановлены,

 # dd if=/dev/zero of=/mnt/tmp/ram/[filename] 

надлежащим образом уничтожить данные или не может гарантировать, что ramfs не будет перезаписывать файлы на месте?

Ограничения. Систему нельзя принудительно перезагружать до / во время / после этих операций.

В случае, если вам любопытно, «конфиденциальные данные» в этом случае являются несогласованными, неподтвержденными именами пользователей + паролями для базы данных pam. «Защищенные данные» – это база данных соленой / хешированной, которая попадает на основной диск. Я не хочу, чтобы чувствительные данные касались диска (поскольку я использую ext3 – который не может гарантировать, что данные будут невосстановимы, если не очистить весь раздел, насколько я понимаю).

Если вы знаете лучший способ сделать это, пожалуйста, просветите меня, спасибо.

Q1: Да

Q2: Невозможно восстановить данные. Тем не менее, если вы хотите быть экстремальными, вы можете сделать это так:

  1. Создайте пространство в ram: mkdir ram mount -t ramfs -o size=1000M ramfs ram/
  2. Создайте случайно заполненный файл, который мы зашифруем в этом пространстве RAM. Заполняясь случайными данными, невозможно установить границы между случайными и зашифрованными данными. dd if=/dev/urandom of=ram/test bs=1M count=512
  3. Setup encription cryptsetup -y luksFormat ram/test cryptsetup luksOpen ram/test encypted
  4. Форматируйте и монтируйте новое безопасное пространство: mkfs.ext4 /dev/mapper/encypted mkdir securedir mount /dev/mapper/encypted securedir/
  5. Umont secureir /, а затем ram /, чтобы потерять данные до конца времени. umount securedir/ umount ram/