В WinAPI есть функция SecureZeroMemory (), которая предназначена для стирания памяти, используемой для хранения паролей / ключей шифрования / подобных вещей, когда буфер больше не нужен. Он отличается от ZeroMemory () тем, что его вызов не будет оптимизирован компилятором.
Действительно ли так необходимо стереть память, используемую для хранения конфиденциальных данных? Действительно ли это делает приложение более безопасным?
Я понимаю, что данные могут быть записаны в файл подкачки или в файл гибернации, и что другие процессы могут считывать память моей программы. Но то же самое может произойти с данными, когда они все еще используются. Почему использовать, а затем стереть лучше, чем просто использовать ?