Когда программы / библиотеки, такие как GPG и OpenSSL с конфиденциальными криптографическими данными, явно обнуляют память, это не имеет ничего общего с опасением, что память будет «переназначена» другим программам, которые могут читать данные.Это принципиально невозможно из-за того, как работают многопроцессорные / многопользовательские операционные системы.
Причины обнуления данных двояки:
Если код является библиотекой, вам нужнозащитить от неосторожной утечки информации вызывающей программой.Даже если память, которая содержала конфиденциальную информацию, не может быть переназначена другому процессу, освобожденная память может и будет повторно использоваться в том же процессе , пока она все еще работает с тем же образом программы (т.е. пока она нет называется exec*
).Неисправная программа может вызвать malloc
, а затем записать буфер на диск, не заполнив сначала весь выделенный объект, и в этом случае старая потенциально чувствительная информация может просочиться на диск.Подобные проблемы существуют в крупных реальных продуктах, таких как Microsoft Office (хотя они, возможно, уже исправлены).
Даже если код не библиотека, а автономныйПрограмма, вы можете обнулить конфиденциальные данные в памяти, прежде чем освободить их для целей паранойи.Если федералы разрушат вашу дверь и заберут ваш компьютер, они могут впоследствии проверить, что произошло на разделах подкачки.Если они будут осторожны в удалении, они могут даже изучить содержимое памяти.Если вы параноидально относитесь к физическим атакам, вы должны убедиться, что парольные фразы и т. Д. не существуют в любом месте оперативной памяти или на диске после их использования.Многие криптографические программы даже хотят иметь root-доступ, чтобы они могли mlockall
хранить свою память, чтобы не допустить того, чтобы что-либо было выгружено на диск (хотя, на мой взгляд, это глупо - торгует серьезный риск взлома root из-за ошибок в программном обеспечении для паранойи по поводуфизическая атака).
Если вы не беспокоитесь о физических атаках или если вы достаточно соприкасаетесь с реальностью, чтобы понять, что у физических злоумышленников, вероятно, есть лучшие способы получить вашу фразу-пароль, чем свопраздел криминалистики, то причина № 2, вероятно, в основном фальшивая, но большинство программ в любом случае решает эту проблему просто для того, чтобы довольствовать психом.: -)