безопасности Disk
Вы можете позволить протирать утилита сделать работу для вас.
Если вы используете ASP.NET для Mono/Linux, вы можете использовать команду wipe
через класс Process
(убедитесь, что установлен пакет очистки).
Если вы запустите Windows, подход будет таким же. Используйте утилиту wipe.exe
, которая выполняет жесткую очистку, когда вам нужно безопасно распоряжаться файлом.
Я люблю this сайт, который распространяет бесплатный wipe.exe, который не входит в стандартную установку Windows (слишком плохо).
Второй способ - реализовать Guttman algorithm, но я думаю, что дешевле использовать чужой код.
Имейте в виду, что стирание очень интенсивно в I/O, не ждите его завершения или вы можете резко замедлить работу приложения. Кроме того, на сильно загруженных веб-сайтах вы можете столкнуться с значительным замедлением.
безопасности памяти
SecureString
класс поможет вам не оставить никаких следов строки в памяти. Но когда вы работаете с файлами, вы фактически работаете с потоками. Я не уверен, беспокоюсь о содержимом энергозависимой памяти (даже если вы обрабатываете документы Wikileaks).
Вы должны сначала выполнить анализ угрозы , рассказывающий вам, какие основные угрозы для памяти. Вот несколько вопросов:
- Может ли кто-нибудь получить доступ к серверу с учетной записью администратора/пользователя с возможностью выполнения дампа памяти? (Обычные пользователи не могут читать вашу память, а .NET предотвращает переполнение буфера из-за неиспользуемых указателей)
- Может ли кто-нибудь физически получить доступ к серверу? Вы не доверяете своему хостинг-провайдеру достаточно? Вместо этого вы запускаете виртуальный сервер?
Если ответ не да вы не должны беспокоиться о безопасности памяти
свопа безопасности
Даже если вы работаете на Windows, позвольте мне назвать «своп» файл подкачки, или файл виртуальной памяти или что-то еще. Вы можете подумать об отключении его (убедитесь, что у вас много ресурсов), или, иначе, вы можете подумать об шифровании (но вы получите снижение производительности).
Но для того, чтобы кто-то мог сканировать ваш файл подкачки во время выполнения, он должен быть root или иметь физический доступ к серверу завершения.
Если данные слишком чувствительны, я хотел бы отключить обмен.
[Добавить] Я уверен, что вы уже использование SSL, чтобы загрузить файл, только в случае, если вы забыли некоторые принципы ...
+1 для четко заданного вопроса. djechelon ответ ударил по аспекту, вы должны более внимательно рассмотреть «доверие». Вы должны помнить, что всегда будет открытая площадь поверхности, и вы должны доверять кому-то. Если вы обеспокоены тем, что вам нужен физически защищенный выделенный сервер и выключатель kill (способ физического уничтожения данных), вам не придется слишком беспокоиться о внутренней механике. – Robert
Примечание: .Net - это управляемая среда выполнения, а временное хранилище данных является специфичным для реализации, и поэтому любая попытка стереть данные из запущенной системы будет бесконечной проблемой, поскольку любое обновление может изменить фактическую реализацию. – Robert