Перейти к содержанию
    

USB-флешка с аппаратной защитой от стирания избранных файлов

Коллеги, просьба высказать свои мнения по поводу следующей задачи.

 

Требуется реализовать/создать USB-флешку с аппаратной защитой от стирания избранных файлов.

 

Например, на флешке 16 Гб есть файл размером 8 Гб, который не может быть удален никаким образом (форматирование, специальные низкоуровневые программы и т . д.) или удален только методом доступным производителю, остальное свободное пространство может использоваться без каких либо ограничений как пространство на обычной флешке. Флешка должна работать на любых устройствах с любыми ОС, которые поддерживают обычные флешки.

 

В задаче есть два подвараинта:

 

1) Данные файла размещаются на флешке в процессе её производства (вплоть до того, что данные размещаются на дешевой памяти без возможности перезаписи) и выпускаются миллионными тиражами. В этом случае при использовании одного физического USB-устройства есть смысл сделать для пользователя два диска - один строго с емкостью нестираемого файла(внешне выглядит это как на финализированных CD), другой - независимое дисковое пространство обычной флешки;

2) Флешки выпускаются универсальными, с возможностью записи нестираемого файла с помощью специальной программы.

 

Предполагаю, что существуют стандартные USB-контроллеры флеш-памяти(и может быть даже широко применяемые), которые могут это делать , но реально ли найти полный комплект документации к ним ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Mass Storage устройство работает на уровне секторов, а не на уровне файловой системы. Поэтому достаточно запрограммировать устройство так, чтобы при попытке стирания или записи секторов вашего "нестираемого" файла девайс возвращал код ошибки WRITE_PROTECTED.

Некоторая "лёгкая" кривизна этого решения заключается в том, что диск нельзя будет отформатировать в другую ФС, скажем, EXT3. Точнее сказать, оно будет разрушительным для устройства - форматирование начнётся, часть FAT таблиц будет уничтожена, а когда форматирование дойдёт до залоченных секторов - будет ошибка и останов форматирования.

Наиболее прямое решение - это аппаратно разбить диск на 2 раздела, запретив модификацию таблицы разделов. Один из разделов целиком сделать Read-Only и записывать туда файлы только какой-нибудь спецутилитой своим, отдельным от MS, набором команд.

Ещё вариант - сделать не Mass Storage, а MTP устройство, которое оперирует уже не секторами, а файлами, и может как угодно манипулировать файлами без ведома хоста - добавлять, стирать, запрещать стирание и т. п. Хост получает только уведомления об этом. Поэтому вновь появившийся из мозгов устройства файл будет тут же виден в проводнике хост-компьютера. Также ничто не мешает тупо игнорировать команды стирания определённых файлов.

Недостаток только в том, что встроенная поддержка MTP устройств началась, если не ошибаюсь, только с Windows 7, а в Win XP нужно отдельно доустанавливать драйвер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И сдается мне, что на MTP устройство ничего нельзя записать с хоста - только чтение и стирание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...

 

Реально сделать свою флешку с заданными требованиями. Возьмите Cypress или любой другой USB2,3 контроллер и NAND MLC чип нужного объема. Сейчас это даже проще, технологии наработаны по минитюаризации дизайна. Начните с Cypress у них есть готовый референс и исходники софта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Реально сделать свою флешку с заданными требованиями. Возьмите Cypress или любой другой USB2,3 контроллер и NAND MLC чип нужного объема. Сейчас это даже проще, технологии наработаны по минитюаризации дизайна. Начните с Cypress у них есть готовый референс и исходники софта.

 

Спасибо, а какой именно референс дизайн Вы имеете в виду ?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, а какой именно референс дизайн Вы имеете в виду ?

Вот ссылка на FX2LP Develpoment Kit http://www.cypress.com/?rID=14321 там есть все на USB2.0

Предполагаю, что тоже самое есть на USB3.0 не проверял, попробуйте найти самостоятельно.

Для скачивания требуется бесплатная регистрация, думаю для Вас это не препятствие

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подвариант 1 умеют некоторые контроллеры флешек. Т.е. вставленная флешка в системе будет видна как два устройства - CD и просто флешка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подвариант 1 умеют некоторые контроллеры флешек. Т.е. вставленная флешка в системе будет видна как два устройства - CD и просто флешка.

только при желании флешку можно переразбить (и соответственно все удалить) фирменной утилитой производителя контроллера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

который не может быть удален никаким образом (форматирование, специальные низкоуровневые программы и т . д.)

Да, этому пункту не соответствует.

Но по большому счету по этому пункту пройдет только однократно программируемая память.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но по большому счету по этому пункту пройдет только однократно программируемая память.

Как вариант, однократно устанавливаемый резистор на nWP NAND.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но в таком случае нужно два корпуса памяти.

Конечно. Зато это будет обычная NAND.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но по большому счету по этому пункту пройдет только однократно программируемая память.

 

 

Почему же.

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

Большинство пользователей не будут иметь возможность "перепрошить" контроллер, даже если и будут иметь документацию на него.

Или смогут, если извлекут микросхему памяти и подключат к своему устройству, но это уже случай не попадающий под заданное ограничение.

Подразумевается, что стереть файл нельзя только через USB без дополнительных аппаратных средств.

 

Подвариант 1 умеют некоторые контроллеры флешек. Т.е. вставленная флешка в системе будет видна как два устройства - CD и просто флешка.

 

Можете назвать конкретные модели доступные сейчас для покупки ?

 

 

Как вариант, однократно устанавливаемый резистор на nWP NAND.

 

В общем-то подходящий вариант. Главный минус даже не в том, что такую защиту легко обойти выпаиванием резистора, а в том, что очень уж это негибкое решение. Хочется иметь возможность задавать объем нестираемого файла каким угодно. Например, 90% или 10% от общего объёма флешки.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В компании "Цифровые решения" занимаются подобными проектами, сайт dsol.ru

Например, делали такой проект. Он по близкой теме и позволяет оценить компетенции разработчиков.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть варианты с доступом по паролю, ключу, ко всей флешке не рассматриваются?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...