Windows Mobile — безопасная очистка устройства

Мне нужно обеспечить безопасную функцию очистки в Windows Mobile со следующими деталями:

  1. Все файлы на устройстве должны быть зашифрованы надежным ключом (сделано).
  2. Пользователь не должен иметь возможность просматривать файлы в проводнике.
  3. Устройство не должно показывать используемое дисковое пространство для зашифрованных файлов.
  4. Мое приложение должно иметь возможность получить (восстановить) файлы обратно (путем расшифровки) в том же месте, используя тот же ключ, который использовался для шифрования.

person Let me Ask    schedule 09.12.2010    source источник
comment
Итак, вы хотите назвать свой инструмент Безопасная очистка устройства, но вместо того, чтобы надежно стереть данные с диска, вы на самом деле сохраните их скрытыми от пользователя, чтобы он поверил, что его устройство надежно очищено. но он все равно будет содержать все данные (хоть и зашифрованные)? Звучит немного двусмысленно...   -  person Hans Olsson    schedule 09.12.2010
comment
Это звучит довольно на уровне ОС. Что ты пишешь - драйвер файловой системы? В С#?   -  person Rup    schedule 09.12.2010
comment
Я разрабатываю приложение, в котором пользователь может удаленно стереть устройство, если оно потеряно. Но, если устройство на самом деле не потеряно (может быть, он его куда-то положил и не может найти) и найдено через какое-то время, он должен иметь возможность восстановить его обратно с помощью ключа шифрования. Если устройство действительно потеряно, данные не должны быть восстановлены.   -  person Let me Ask    schedule 09.12.2010


Ответы (1)


Идя на риск отцовства - это не может быть сделано хорошо.

C# не имеет никакого доступа к базовым структурам флэш-памяти, практически невозможно стереть содержимое твердотельной памяти из интерфейсов файловой системы по следующим причинам:

  • Выравнивание износа — твердотельный контроллер/файловая система записывает зашифрованный файл в другое место, чем исходное, тем самым не удаляя его.
  • Даже если вы заставите файловую систему перезаписывать данные, очень мало гарантий, что она действительно это сделает — шаблоны стирания флэш-памяти таковы, что контроллер, вероятно, переместит весь сектор (достаточно часто — все 128 кбит) и пометит старый как пустой, чтобы ограничить перезапись - флэш-память легко повреждается при записи, и контроллеры делают все возможное, чтобы данные записывались равномерно. по памяти.

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

То же самое касается (3.) — это невозможно сделать из пользовательского пространства.

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

person qdot    schedule 09.12.2010
comment
Спасибо за ответ. Из вашего ответа я делаю вывод, что для пункта 2) я должен написать драйверы файлового фильтра. 3) Невозможно использовать какой-либо API или любой язык. 4) Еще не ответил, я думаю. - person Let me Ask; 09.12.2010
comment
На самом деле - просто расшифруйте зашифрованные файлы, если вы используете драйверы файлового фильтра, то следующим шагом должно быть просто отключение файлового фильтра. - person qdot; 09.12.2010
comment
Пункт 3? Это, вероятно, невозможно без драйверов ядра - в основном вам нужно, чтобы система обманывала, поскольку пространство, указанное как пустое, не может использоваться для записи файлов. - person qdot; 12.12.2010