Помните, что компьютер может быть выключен в любое время. Затем кто-то, кому вы не любите, может загрузиться с живого компакт-диска Linux и изучить ваш диск на любом уровне детализации, не меняя ничего. Ни одна система, которая записывает открытый текст на диск, не может быть защищена от таких атак, и их нетрудно сделать.
Вы можете настроить функцию, которая будет многократно перезаписывать файл единицами и нулями, предпочтительно добавляя некоторую случайность, и настраивать ее на запуск в конце программы или при выходе. Это будет работать при условии отсутствия аппаратных или программных сбоев, сбоев питания или других прерываний, а также при условии, что файловая система выполняет запись только в те сектора, которые, по ее утверждению, используются (например, журналирование файловых систем может оставить части файла в другом месте). ).
Поэтому, если вы хотите обеспечить безопасность, вам нужно убедиться, что открытый текст не записан, а это также означает, что его нельзя записать в пространство подкачки или эквивалентное ему. Узнайте, как пометить память как отключаемую на всех платформах, для которых вы пишете. Убедитесь, что ключи дешифрования и тому подобное обрабатываются так же, как и открытый текст: никогда не записываются на диск ни при каких обстоятельствах и хранятся в неподключаемой памяти.
Тогда ваша система должна быть защищена от атак, за исключением взлома, прерывания вас и замораживания ваших чипов оперативной памяти перед отключением питания, чтобы они не потеряли свое содержимое перед передачей на экспертизу. Или органы власти, требующие вашего ключа, на законных основаниях (см. Здесь местные законы) или незаконно.
Мораль истории: реальная безопасность - это сложно.