О микросхеме DS28E01
DS28E01-100 — это микросхема 1-Wire® с уникальным 64-разрядным регистрационным номером в ПЗУ и мощным механизмом аутентификации, обеспечивающая безопасный метод установления корня доверия во встроенных системах. Она работает по протоколу 1-Wire, который позволяет обмениваться данными с микроконтроллером, используя только один вывод данных. Устройство поддерживает напряжение питания от 1,8 В до 5,5 В и широкий диапазон температур от -40 °C до +85 °C.
Описание функций
- Низкое энергопотребление;
- Безопасный механизм аутентификации;
- Протокол связи 1-Wire;
- Криптографическая аутентификация;
- 64-разрядный уникальный регистрационный номер ПЗУ;
- Уникальный 64-разрядный идентификатор ПЗУ, нанесенный лазером на заводе;
- Последовательный интерфейс 1-Wire с надежными функциями безопасности;
- Встроенный высокоточный датчик температуры;
- Встроенный мониторинг напряжения;
- Автоматическая проверка целостности данных;
- Выход с открытым стоком для управления светодиодами и другими устройствами;
- Поддержка режима overdrive для более быстрой связи;
- Встроенная самопроверка для сред разработки и производства.
Параметр производительности
- 64 байта пользовательской EEPROM;
- 256-битная аутентификация SHA-2 по интерфейсу 1-Wire;
- 2 Кб защищенной памяти;
- Протокол связи 1-Wire;
- 3-контактный корпус SOT-23;
- Диапазон рабочего напряжения от 1,8 В до 5,5 В;
- Диапазон рабочих температур от -40 °C до +85 °C.
Конфигурация контактов
DS28E01-100 имеет 3-контактный корпус SOT-23 со следующей конфигурацией выводов:
1 — GND (заземление)
2 — DQ (вывод данных)
3 — Vcc (напряжение питания)
Блок-схема
DS28E01-100 состоит из следующих функциональных блоков:
1-Wire интерфейс
64-разрядная ПЗУ
Мощный механизм
аутентификации Сброс при включении питания и генератор Монитор
напряжения питания
Защита от записи и управление циклом записи
Приложения
Системы защиты от
несанкционированного доступа; контроль доступа и безопасное хранение;
безопасная идентификация и аутентификация;
безопасная загрузка и обновление прошивки во встроенных системах.
Поддерживаемый чип серии DALLAS
Ниже представлены доступные модели чипов Dallas для дешифрования:
- DS1205
- DS1920
- DS1820
- DS1954
- DS1955
- DS1961
- DS1963L
- DS1963S
- DS1971
- Цифровой селективный вызов 1982
- Цифровой датчик температуры
- DS1990A
- DS1991
- DS1994
- DS1995
- DS1992
- Цифровой селективный вызов 1985
- Цифровой селектор 1986
- DS1993
- DS1996
- DS2405
- DS2406
- Двухступенчатый 2430A
- DS2431
- DS2432
- DS2433
- DS2436
- Цифровой сигнальный процессор 2002
- Цифровой сигнальный процессор 2503
- Цифровой сигнальный процессор 2505
- Двухэтажный дом с шестью спальнями
Как работает DS28E01?
Чип DS28E01 использует модуль шифрования SHA-160 для защиты данных, участвующих в алгоритме. 55 байт данных состоят из 8-байтового ключа, 5-байтового случайного числа, заданного пользователем, 32 байт содержимого EEPROM, 7-байтового ROMID, 2-байтового фиксированного значения (0xFF) и 1-байтового адреса EEPROM TA1.
Микроконтроллер может проверить безопасность микросхемы, прочитав 20-байтовое хеш-значение, зашифрованное с помощью SHA, и сравнив его с хеш-значением, рассчитанным микроконтроллером с помощью того же алгоритма. Чтобы микроконтроллер выполнил ту же операцию шифрования, он должен сгенерировать точное 55-байтовое сообщение, которое находится внутри микросхемы.
8-байтовый ключ генерируется и записывается микроконтроллером, 5-байтовое случайное число записывается в блокнот перед тем, как чип выполнит SHA, 32 байта данных EEPROM возвращаются чипом перед считыванием 20-байтового хеш-значения, 7-байтовый ROMID может быть прочитан в любое время, 2-байтовое фиксированное значение можно получить из руководства, а 1-байтовый TA1 записывается микроконтроллером.
Как разблокировать фишки Далласа?
Разблокировка чипов Dallas может быть осуществлена двумя способами. Первый способ заключается в разборке и декомпиляции кода основного управляющего чипа для поиска зашифрованного проверочного кода и его обходе или модификации оперативной памяти. Этот способ очень эффективен, но также сложен и требует знаний в области ассемблера, архитектуры чипов, шифровальных чипов и инструментов разработки. Однако он не является коммерчески целесообразным, поскольку результат взлома неопределен, а заказчик должен оплатить процесс взлома до получения расшифрованного машинного кода.
Второй метод заключается в моделировании формы сигнала связи во время процесса проверки. Для медленных протоколов связи для моделирования можно использовать одночиповый микрокомпьютер, а для высокоскоростных протоколов необходимо использовать CPLD. Этот метод предполагает генерацию одного и того же случайного числа каждый раз.
Как использовать DS28E01?
Шаг № 1: Инициализация ключа DS28E01
Ключ инициализации используется только на заводе-изготовителе перед выпуском продукта и требует однократного использования.
Процедура:
1. Считайте ROMID чипа.
2. Сгенерируйте уникальный 64-битный ключ с помощью определенного алгоритма, чтобы ключи, сгенерированные каждой материнской платой, были разными.
3. Запишите ключ во временную область хранения чипа и считайте его обратно, чтобы проверить правильность записи.
4. Выполните команду загрузки ключа чипа, чтобы чип сохранил 64-битный ключ из временной области хранения в область хранения ключей.
5. Готово.
Шаг № 2: Проверьте ключ DS28E01
Проверка ключа осуществляется в приложении продукта: при каждом запуске продукта проверяется правильность ключа DS28E01.
Если проверка прошла успешно, продукт работает в обычном режиме, а если проверка не прошла, продукт не будет работать должным образом.
Процедура:
1. Считать ROMID чипа.
2. С помощью того же алгоритма, что и в процессе инициализации, сгенерировать 64-битный ключ.
3. Записать 8-байтовое случайное число во временную область памяти чипа (используется только 5 байтов) и считать его обратно для проверки.
4. Отправьте зашифрованную команду аутентификации на чип, который может прочитать обратно 32 байта данных EEPROM и 20 байт хеш-значения.
5. Используя прочитанные выше данные, сгенерируйте 55-байтовое дайджест-сообщение и выполните операцию SHA1.
6. Сравните, совпадает ли рассчитанное вами хеш-значение с хеш-значением, прочитанным обратно с чипа.




