IEEE 1667
IEEE 1667 («Стандартный протокол аутентификации при подключении съемных устройств хранения данных») является опубликованным и поддерживаемым IEEE, в котором описаны различные способы аутентификации съемных устройств хранения данных, такие как USB флэш-диски, когда они подключаются к компьютеру..
Поскольку спецификация носит универсальный характер, это означает, что решения с поддержкой IEEE 1667 будут платформенно-независимыми.
Реализации
Windows 7 и Windows Server 2008 R2 поддерживает новый стандарт IEEE 1667, который Microsoft называет «Enhanced Storage».
Ссылки
Полезное
Смотреть что такое «IEEE 1667» в других словарях:
IEEE 1667 — ( Standard Protocol for Authentication in Host Attachments of Transient Storage Devices ) is a standard that describes various methods for authenticating transient storage devices such as USB flash drives when they are inserted into a… … Wikipedia
IEEE Standards Association — The Institute of Electrical and Electronics Engineers Standards Association (IEEE SA) is a leading developer of global industry standards in a broad range of industries, including:* Power and Energy * Biomedical and Healthcare * Information… … Wikipedia
IEEE-488 — англ. Standard Digital Interface for Programmable Instrumentation кабель IEEE 488 с соед … Википедия
IEEE 802 — группа стандартов семейства IEEE, касающихся локальных вычислительных сетей (LAN) и сетей мегаполисов (MAN). В частности, стандарты IEEE 802 ограничены сетями с пакетами переменной длины. Число 802 являлось следующим свободным номером для… … Википедия
IEEE 1394 — Interface Тип Последовательная связь История Разработчик Apple Computer (сейчас Apple, Inc.) Разработано 1995 Производитель Разнооб … Википедия
IEEE 802.11n-2009 — is an amendment to the IEEE 802.11 2007 wireless networking standard to improve network throughput over the two previous standards 802.11a and 802.11g with a significant increase in the maximum net data rate from 54 Mbit/s to 600 Mbit/s (slightly … Wikipedia
IEEE 802.2 — is the IEEE 802 standard defining Logical Link Control (LLC), which is the upper portion of the data link layer of the OSI Model. The LLC sublayer presents a uniform interface to the user of the data link service, usually the network layer.… … Wikipedia
IEEE 802.1Q — is the networking standard that supports Virtual LANs (VLANs) on an Ethernet network. The standard defines a system of VLAN tagging for Ethernet frames and the accompanying procedures to be used by bridges and switches in handling such frames.… … Wikipedia
IEEE 802.15.4 — стандарт, который определяет физический слой и управление доступом к среде для беспроводных персональных сетей с низким уровнем скорости. Стандарт поддерживается рабочей группой IEEE 802.15. Является базовой основой для протоколов ZigBee,… … Википедия
IEEE P1363 — IEEE P1363 проект Института инженеров по электротехнике и электронике (англ. Institute of Electrical and Electronics Engineers, IEEE) по стандартизации криптосистем с открытым ключом. Целью проекта было объединение опыта разработчиков… … Википедия
Защита данных с технологией IEEE 1667 в Phison флешках
Автором проекта USBDev, лично тестировались флешки на таких контроллерах, как: Phison PS2251-38 и PS2251-61.
Предположительно, функцию IEEE1667 поддерживают ещё такие чипы, как: PS2251-33 и PS2251-50.
В свою очередь, более современные контроллеры, среди которых как USB2.0, так и USB3.0 модели, отказываются работать с ней. При этом, например, модели PS2267 и PS2268, хотя и предлагают задать пароль, но в конечном итоге выдают ошибку – Не удается установить пароль.
Полнофункционально, с флешками на технологии Enhanced Storage, можно работать в операционной системе Windows 7. Для других ОС, рекомендую использовать стороннюю утилиту – Silicon Power IEEE1667-SWITCH.
Помимо использования совместимой флешки, нужно ещё задать несколько дополнительных опций, при перепрошивке флешки. Первым делом настройте утилиту Phison MPALL согласно следующей ИНСТРУКЦИИ.
Далее зайдите в расширенный режим редактирования настроек MPALL, выбором пунктов Advance Setting и Load Last Setting. Последнее, необходимо, чтобы заданные ранее параметры не сбросились.
Режим флешки, в обязательном порядке, переключаем с классического MODE3 на MODE8.
Поперву может показаться, что всё прекрасно работает и в обычном MODE3. Но в таком случае, пароль легко сбрасывается, даже встроенными средствами винды.
А именно при выполнении стандартной функции сброса пароля, данные на флешки не затираются, а остаются неприкасаемыми, несмотря на вывод предупреждения и якобы завершения процедуры отчистки.
На странице Other Setting активируем галочку IEEE 1667.
Сохраняем настройки и прошиваем флешку.
WIN7, при первом же подключении, спросит, будете ли вы создавать пароль.
Если вы согласитесь, то вам предоставляется задать пароль и фразу-подсказку, на случай провалов в памяти.
На других системах, с этим же самым, вам может помочь свободная сторонняя утилита IEEE1667-SWITCH.
В Windows 7, при подключении флешки, автоматически всплывёт окно, куда и следует ввести пароль.
Опять же, на иных ОС, можно использовать уже известную нам утилиту SP IEEE1667-SWITCH.
Запускаем, нажимаем кнопку Enable, выбираем UnLock и вводим пароль.
Сброс, подразумевает попутное уничтожение данных расположенных на флеш-диске, что обусловлено вопросом конфиденциальности. На выходе будем иметь тот же IEEE1667-носитель, только уже с удаленным паролем, а, следовательно, возможностью установить новый.
Чтобы стала видима кнопка ‘Сброс устройства‘, достаточно попытаться авторизоваться с неверным паролем.
Далее появятся всплывающие предупреждения о том, что в результате, вся информация будет удалена.
После получения согласия, будет выполнено сброс устройства Enhanced Storage.
По завершению процедуры, система попросит отформатировать диск. Форматируй-неформатируй, а данные уже не восстановить, во всяком случае средствами, доступными для простых смертных.
В программе от Silicon-Power, всё делаем по аналогии. Забиваем левый пароль.
Нажимаем кнопку Reset device.
Definitions
A standard protocol for secure authentication and creation of trust between a secure host and a directly attached Transient Storage Device (TSD), such as a USB flash drive, portable hard drive, or cellular phone.»
1667 authentication silo
A 1667 silo whose function provides either authentication of host to device, device to host, or both.
1667 standard authentication silo
A standard certificate or password authentication silo defined in the base 1667 specification for which Microsoft is shipping drivers.
1667 USB Flash Device (UFD)
USB flash device implementing the 1667 command set according to the IEEE 1667 specification.
Third-party authentication silo
Silo not defined in the base set of 1667 specified standard authentication silos implementing the authentication function.
Silo not contained in the set of 1667 specified standard silos. The function is proprietary and not documented in the IEEE 1667 base standard. Sometimes referred to as an «unknown» silo.
Addressable command target (ACT)
Independent unit of access that accepts 1667 commands and optionally provides access to user data (see Logical Unit). According to the 1667 specification, an ACT is not required to provide a user data access function. A 1667 device may implement one or more ACTs.
(As it relates to IEEE 1667) the act of verifying the veracity of the identity claimed by either the host or the device. In the password authentication case, a secret password established by the user of the device is the credential that serves this purpose. In the certificate authentication case, possession of the private key must be proven by successfully decrypting a random stream of bytes encrypted with the paired public key.
Indication that concomitant access to the governed resource is authorized after a device or host identity has been authenticated. Host-to-device authentication governs authorized access to the user data portion of the associated ACT, whereas successful device-to-host authentication authorizes the connected data channel between the device and the host.
Certificate silo (Cert Silo)
Authentication silo that uses certificates and associated public-private key pairs as the basis for authentication.
Legacy mass storage (or Legacy UFD)
A USB mass storage (or USB flash device) not implementing the 1667 command set.
Independent unit of access for user data contained on a device that is exposed as a single disk on the host system. A LUN is synonymous with a data-bearing 1667 ACT currently in the authorized state.
Some UFDs are multi-LUN-capable.
Password silo (PW Silo)
Authentication silo using pass-phrase matching as the basis for authentication.
Removable media bit (RMB)
A bit contained in the device response to the SCSI INQUIRY command (0x12) that indicates whether the media is removable (RMB=1) or fixed (RMB=0). Not to be confused with the Removable field of the DEVICE_CAPABILITIES used to indicate whether a PDO represents a hot-pluggable device, RMB refers to a property of the media rather than the device itself. Media for which RMB=1 is treated differently by the system than show media with RMB=0.
Independent functional unit that responds to 1667 commands. To each ACT one or more silos may be attached. A 1667 silo command may be addressed to a particular ACT index and silo index.
IEEE 1588 Precision Time Protocol (PTP)
Введение
«Протокол точного времени» описан стандартом IEEE 1588. Существует 2 версии стандарта. Первая версия вышла в 2002 году, затем стандарт был пересмотрен в 2008 и на свет вышел протокол PTPv2. Обратная совместимость не была сохранена.
Я работаю со второй версией протокола, в ней множество улучшений по сравнению с первой (точность, стабильность, как нам сообщает wiki). Не буду приводить сравнения с NTP, одно только упоминание о точности синхронизации, а точность PTP достигает действительно десятков наносекунд при «железной» поддержке, говорит о преимуществе перед NTP.
«Железная» поддержка протокола в разных устройствах может быть реализована по-разному. На самом деле минимум, требующийся для реализации PTP – умение «железки» проставлять таймштамп момента получения сообщения на порт. Проставленное время будет использовано для вычисления ошибки.
Почему часы расстраиваются?
Ошибки могут появиться отовсюду. Начнем с того, что генераторы частоты в устройствах разные и очень мала вероятность того, что два разных устройства будут работать идеально такт в такт. Тут же можно приписать постоянно меняющиеся условия окружающей среды, влияющие на генерируемую частоту.
Чего мы добиваемся?
Разница чисто программной реализации и реализации с «железной поддержкой»
Чисто программная реализация не позволит добиться обещаемой точности. Время, прошедшее с момента получения сообщения (точнее получения сигнала на прием сообщения в устройстве) до перехода на точку входа в прерывание или на callback не может быть строго определенным. «Умные железки» с поддержкой PTP умеют проставлять эти таймштампы самостоятельно (например, чипы от Micrel, как раз для KSZ8463MLI я пишу драйвер).
Помимо таймштампов к «железной» поддержке также можно отнести умение настраивать кварцевый генератор (чтобы выровнять частоту с мастером), либо возможность подстройки часов (каждый такт увеличивать значение часов на X нс). Об этом ниже.
Перейдём к стандарту IEEE 1588
Стандарт описан аж на 289 страницах. Рассмотрим минимум, необходимый для реализации протокола. PTP является клиент-серверным протоколом синхронизации, т.е. для реализации протокола требуется как минимум 2 устройства. Итак, Master-устройство — атомные часы, а Slave устройство – часы, которые необходимо заставить работать точно.
Язык обмена
Announce message – сообщение анонса, содержит информацию, отправляемую мастером всем Slave устройствам. Slave устройство с помощью этого сообщения может выбрать лучшего мастера (для этого существует BMC (Best Master Clock)) алгоритм. BMC не так интересен. Этот алгоритм можно легко найти в стандарте. Выбор идет по таким полям сообщения как точность, дисперсия, класс, приоритет и т.п. Перейдём к другим сообщениям.
Sync/Follow Up, DelayResp, PDelayResp/PDelayFollowUp – отправляются мастером, ниже рассмотрим их поподробнее.
DelayReq, PDelayReq – запросы Slave устройств.
Как видим, Slave устройство не многословно, Master предоставляет всю практически всю информацию сам. Отправка осуществляется на Multicast (при желании можно использовать Unicast режим) адреса, строго определенные в стандарте. Для PDelay сообщений имеется отдельный адрес (01-80-C2-00-00-0E для Ethernet и 224.0.0.107 для UDP). Остальные сообщения отсылаются на 01-1B-19-00-00-00 или 224.0.1.129. Пакеты отличаются полями ClockIdentity (идентификатор часов) и SequenceId (идентификатор пакета).
Сеанс работы
С помощью такого сеанса обмена, который показан выше, можно добиться успеха только в случае, если кварц генерирует идеально одинаковые частоты для синхронизируемых устройств. На деле же получается что частота часов разная, т.е. на одном устройстве за 1 секунду значение часов увеличится на 1 секунду, а на другом, например, на 1.000001 секунду. Отсюда появляется расхождение часов.
В стандарте описан пример вычисления отношения времени, прошедшего на Master и на Slave за определенный интервал. Это отношение будет являться коэффициентом для частоты Slave устройства. Но при этом есть указание, что подстройка может осуществляться различными способами. Рассмотрим два из них:
Для второго способа требуется вычисление ∆t. ∆t – величина, которая будет складываться со значением времени каждый определенный интервал. На рисунке можно заметить, что в то время как на мастере прошло 22 – 15 = 7 секунд, на Slave прошло 75+(87-75)/2 –(30+ (37-30)/2) = 47.5
Частота – частота процессора, например, 25МГц — цикл процессора длится 1/(25*10 6 ) = 40нс.
В зависимости от возможностей устройства выбирается наиболее подходящий способ.
Чтобы перейти к следующему разделу, выразим смещение немного по-другому:
Режимы работы PTP
Ошибка времени доставки
Стандарт описывает реализацию протокола в различных типах сетей. Я использовал Ethernet сеть, и получал сообщения на Ethernet уровне. В таких сетях время доставки пакета постоянно меняется (особенно заметно, когда работаешь с наносекундной точностью). Для того чтобы отфильтровать эти значения применяются различные фильтры.















