Каков наилучший способ авторизации USB-ключа? - PullRequest
5 голосов
/ 13 апреля 2010

У нас есть автоматическое обновление для нашего программного обеспечения, которое устанавливается через USB-ключ (с автоматическим запуском). Если я хочу убедиться, что используются только авторизованные USB-ключи, как лучше?

Наш установщик уже подписан, иначе он не запустится. Но я больше хочу проверить ключ USB на наличие подписанного установщика, и, если его там нет, просто проигнорируйте или даже «извлеките» устройство USB.

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

Я только хочу отключить неавторизованные устройства хранения.

Спасибо за ваши идеи.

Ответы [ 3 ]

4 голосов
/ 13 апреля 2010

неавторизованных запоминающих устройств? Это зависит от того, насколько безопасно вы хотите, чтобы это было. Для наиболее безопасного уровня он будет состоять из:

  • специальная прошивка, записанная на флэш-накопитель для получения дополнительной «метаинформации» (читай: дорогостоящее изготовление флэш-дисков на заказ)
  • специальный драйвер Windows для чтения мета-информации с флешки
  • ваша программа обращается к этому драйверу устройства, чтобы подтвердить, что он авторизован.

Или до наименее безопасного уровня у вас есть следующие опции:

  • с использованием скрытого файла и специального ключа (возможно хэшированного времени последней модификации файловой системы или чего-то еще?) (Dd breakable)
  • падение ниже уровня файловой системы и воссоздание вашей собственной очень простой файловой системы .. (хотя большая безопасность благодаря неясности, и dd может сломать это)

Кроме того, для «наиболее безопасного» варианта вам действительно необходим более безопасный способ запуска программы, чем автозапуск и драйвер устройства (который может быть наполовину испечен, чтобы что-либо выглядело авторизованным). Почему вы хотите, чтобы он обновлялся только с авторизованной флешки?

2 голосов
/ 13 апреля 2010

Возможно, вы сможете прочитать серийный номер USB-накопителя (при условии, что у вас есть USB-накопители с серийными номерами; не все это делают). Затем ваше приложение может позвонить домой, чтобы получить последний список разрешенных серийных номеров, и проверить, есть ли совпадение.

0 голосов
/ 13 апреля 2010

Ответ Эрлза хорош, хотя я не думаю, что вам понадобится изготовление флэш-накопителей на заказ ... вам просто понадобятся флэш-накопители с уникальным зашифрованным идентификатором прошивки. Возможно, что-то в Kingston Data Traveler Line может помочь. (На самом деле я никогда не использовал одну из этих зашифрованных USB-флешек, поэтому я немного запутался в фактических деталях реализации).

...