Рано или поздно, занимаясь DIY-разработкой, проектированием IoT устройств и тому подобным творчеством (или работой), вы приходите к необходимости защищать свои устройства и их коммуникации от взлома, кражи и подделки хранимых и передаваемых данных. Особенно это актуально в популярной области «интернета вещей», где вся система является распределённой и между её частями, хабами, датчиками и прочими элементами, происходит постоянный обмен информацией.

Первое, что приходит в голову — это реализация криптографической защиты программными средствами, например, защита передаваемых данных при помощи связки SHA-256/AES. Для большинства современных микроконтроллеров существуют соответствующие библиотеки, которые успешно работают даже на таких слабых MCU как ATmega328.

Но когда вы глубже погружаетесь в тему, становится очевидным, что любая реализация криптографической защиты на основе внутренних механизмов микроконтроллеров (даже таких популярных как STM32) априори является паллиативной и ущербной, поскольку микроконтроллеры общего назначения не являются специализированными криптографическими устройствами со всеми вытекающими из этого последствиями.

Что же делать?

И тут на помощь приходят специализированные криптомикросхемы, созданные специально для реализации криптографических функций с максимальной защитой как от программного взлома, так и от различных хирургических методов воздействия, типа атак по питанию, травления кислотой или изменения битов при помощи УФ излучения.

Сегодня мы поговорим об одной из таких микросхем, ATSHA204A, которая является популярной и в среде профессиональных разработчиков, и в DIY-среде, например, используется в популярном проекте mySensors.

▍ Герой нашего обзора


Больше всего в ATSHA204A меня поражает несоответствие внешней формы (это «фитюлька», внешним видом маскирующаяся под 3-выводной SMD-транзистор) и грандиозность её внутреннего содержания — это просто «Звезда Смерти» какая-то — её даташит содержит около 100 страниц с описанием регистров, интерфейсов, алгоритмов и реализаций продвинутых криптофункций.



Если оценивать ATSHA204A по количеству вложенных в неё интеллектуальных ресурсов и содержащемуся в ней интеллектуальному потенциалу, то это огромный проект с огромным потенциалом для использования в современных электронных устройствах и системах (чего никак не скажешь по её внешнему виду).

Но прежде, чем говорить непосредственно о ATSHA204A, нам нужно, так сказать, окинуть единым взглядом всю проблематику рассматриваемой темы криптографической защиты на микроконтроллерах.
Предупреждение: в этой статье всё внимание уделено чипу ATSHA204A, все смежные темы затронуты только вскользь и многие моменты, например, криптографические модули, встроенные в микроконтроллеры общего назначения, вообще не упоминаются — если рассматривать подобные темы сколь-нибудь подробно, то пришлось бы писать не статью, а диссертацию по криптографии.

▍ Проблемы криптографии на микроконтроллерах


Рассматривать проблематику криптографической защиты на микроконтроллерах мы будем в основном на примерах IoT взаимодействия базовых устройств (хабов) и различных датчиков и актуаторов, как наиболее наглядных и простых для понимания.

Например, если вы используете для защиты беспроводной передачи данных секретный ключ, который храните в памяти микроконтроллера (а тем более в незащищённой отдельной микросхеме памяти), то при потере контроля над датчиком (установленным «в поле» и физически доступным третьим лицам, или просто продаваемым всем желающим) этот секретный ключ может быть тем или иным способом считан с устройства, что повлечёт за собой тяжёлые последствия для всей вашей экосистемы, вплоть до полной её неработоспособности, потому, что хакер сможет как подделывать сообщения в вашей сети, так и создавать (продавать) клонированные устройства.

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

Рассмотренный пример — это только капля в море возможных вариантов использования криптографии в микроконтроллерах и всего лишь один из бесчисленного количества векторов атак на защищённые устройства и протоколы передачи данных.

Специализированные крипто-микросхемы, наподобие рассматриваемой ATSHA204A, призваны решить эти проблемы и дать возможность разработчикам создавать действительно надёжно защищённые устройства. Эти микросхемы специально проектируются с учётом попыток их вскрытия изощрёнными способами (высоко) профессиональными хакерами. На самих способах мы здесь останавливаться не будем, их существует вагон и маленькая тележка — от использования электронного микроскопа до статистических методов взлома и анализа спектра излучения чипа при осуществлении крипто-операций.

Самих крипто-микросхем существует тоже огромное количество на любой вкус и реализацию любых крипто-протоколов и крипто-алгоритмов. Наша ATSHA204A взята в качестве примера в силу её популярности и относительной дешевизны, а также в силу её актуальности для DIY и IoT.

Ну последнее, что хотелось бы сказать в этом кратком вступлении, это то, что нужно понимать, что даже если в составе в вашего устройства присутствует специализированный крипточип, то уязвимыми по-прежнему остаются как коммуникации этого чипа с микроконтроллером, так и сам микроконтроллер, который принимает те или иные решения. Это нужно понимать и учитывать в своих разработках.

▍ ATSHA204A


Теперь давайте перейдём к рассмотрению непосредственно самого чипа ATSHA204A, его устройства, функций и назначения. Выпускается эта микросхема компанией Microchip, статус на официальном сайте — «In Production», то есть она выпускается и актуальна.

Сам производитель так презентует своё устройство (сокращённый и вольный перевод):
ATSHA204A — это решение для быстрой, безопасной и экономичной симметричной аутентификации, обеспечивающее гибкую и настраиваемую пользователем защиту для широкого спектра моделей аутентификации, при этом использование ATSHA204A не требует экспертных знаний в криптографии.

Чип аппаратно реализует алгоритм хеширования SHA-256 и различные функции на его основе, имеет встроенную EEPROM память размером 4,5 кб и обеспечивает надежную аутентификацию с использованием безопасного хранения ключей и данных.

Миниатюрные размеры и однопроводной интерфейс подключения делают ATSHA204A идеальным выбором для портативных электронных устройств.

ATSHA204A позволяет вынести исполнение крипто-алгоритмов и хранение ключей за пределы микроконтроллера. Дизайн чипа специально разработан для противостояния попыткам его вскрыть программно или физически.
Ну что же, в целом посыл производителя понятен, теперь попробуем поподробнее разобраться с тем, что представляет собой ATSHA204A, как с ней работать и как мы можем использовать её в своих разработках.

▍ Основные характеристики ATSHA204A


  • Аппаратная реализация алгоритма SHA-256 с MAC и HMAC
  • Аппаратное защищённое хранилище ключей и данных
  • Работа с 256-битными ключами
  • Уникальный 72-битный серийный номер
  • Внутренний RNG (High-quality Random Number Generator)
  • 4,5 кб встроенной EEPROM памяти
  • OTP (One Time Programmable) область 512 бит
  • I2C интерфейс и однопроводное подключение
  • Защита от вскрытия и клонирования
  • Напряжение питания от 2 до 5,5 В
  • Напряжение логики от 1,8 до 5,5 В
  • Потребление тока в спящем режиме: 150 нА
  • Диапазон температур: -40-85 °C

Тут можно отметить, что ATSHA204A подходит для работы с большинством современных микроконтроллеров, а ток потребления в спящем режиме менее 150 нА позволяет использовать чип даже в энергоэффективных батарейных датчиках.

Также можно сказать, что ATSHA204A содержит весь комплекс вспомогательных блоков, это и качественный RNG генератор и уникальный серийный номер и область с возможностью одноразовой записи и прочие сопутствующие возможности.

▍ Типовые примеры применения ATSHA204A


ATSHA204A может применяться везде, где требуется безопасная аутентификация, контроль целостности передаваемой информации, а также безопасное хранение ключей и данных:

  • Безопасная загрузка и контроль программного обеспечения
  • Контроль целостности системы и подключаемых модулей
  • Безопасная сетевая аутентификация
  • Контроль целостности передаваемой информации
  • Безопасное хранение (важных, конфигурационных) данных
  • Проверка и контроль паролей пользователей
  • И прочие аналогичные направления использования

▍ Корпусное исполнение


Микросхемы ATSHA204A выпускаются в нескольких вариантах исполнения корпуса и разработчик без труда может подобрать для себя нужный вариант:



В DIY и для нас в этом обзоре наиболее интересен вариант с тремя выводами SOT23 (GND, VCC, SDA). Кроме того, этот вариант предназначен для применения в однопроводной схеме, что позволяет экономить (всегда) дефицитные выводы микроконтроллера.

▍ Типовая схема


Типовая схема включения для однопроводного варианта представлена на иллюстрации ниже:



Как вы видите, проще уже некуда — нужен только один конденсатор и один резистор. Вывод #1 (SDA) подключается к одному из GPIO микроконтроллера. И это всё. Как я уже заметил выше, микроконтроллер может быть практически любой: ATmega328, ESP8266, STM32 и т. д. — чипу ATSHA204A всё равно с каким микроконтроллером взаимодействовать.

▍ Области памяти


Кроме оперативной SRAM памяти ATSHA204A содержит три специализированные области (зоны) EEPROM памяти общим объёмом в 5312 бит (664 байта):

1. Data Zone. Эта зона состоит из 32-байтных слотов и используется для (безопасного) хранения любых ваших данных и/или секретных ключей. Регламент доступа (то есть что и как можно читать из этой области или писать в эту область) устанавливается при начальном программировании т. н. «конфигурационной зоны» ATSHA204A. Всего Data Zone содержит 16 слотов общим объёмом 4096 бит (512 байт).

2. Configuration Zone. Это, образно говоря, «доска» из 704 бит (88 байт) на которой записаны все правила работы вашего конкретного экземпляра ATSHA204A. Перед началом использования крипточипа вы должны по определённым правилам выставить все конфигурационные биты ATSHA204A в этой зоне. От этого будет зависеть что и как будет делать ваш экземпляр микросхемы. Также эта зона содержит некоторые (неизменяемые) заводские установки, например, серийный номер, дату выпуска и т. п. данные.

3. OTP (One Time Programmable) Zone. Это своего рода «одноразовый шифроблокнот» — в эту область при начальной конфигурации и до процедуры т. н. «блокировки» можно записывать необходимые данные, а затем их можно будет только считывать по определённым правилам.


Microchip CryptoAuthentication Xplained-Pro Starter Kit для разработки крипто-приложений и программирования крипто-чипов, в том числе и ATSHA204A. Но вы не волнуйтесь, покупать этот кит совершенно не обязательно — для программирования ATSHA204A вполне достаточно вашей любимой Arduino.

▍ Типовой план работы с ATSHA204A


Несмотря на спартанский внешний вид и простоту подключения, ATSHA204A относится к категории устройств с которыми «без стакана» и двух высших образований в computer science не разберёшься, поэтому давайте попробуем разобрать типовой план работы с этим крипточипом.

Здесь хочется обратить ваше внимание на один подводный камень, который неочевиден при первом знакомстве с ATSHA204A — это т. н. блокировка чипа (LOCK). Смысл этой операции заключается в том, что поведение микросхемы до блокировки и после отличается коренным образом. Например, до блокировки вы можете изменять (записывать) некоторые данные, а после — нет. Другой пример: до блокировки встроенный RNG генератор не работает и выдаёт одну и ту же последовательность и т. д.

«Засада» же заключается в том, что если вы что-то упустили на этапе планирования криптоархитектуры вашей системы и произвели блокировку микросхемы — то вам останется только выпаивать её из платы и выбрасывать в мусорное ведро. Или выпаивать ATSHA204A из плат всей партии в 100 000 устройств. (Так что запасайтесь микросхемами.)

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

Итак:

  • 0-й этап. Много думаем и создаём криптоархитектуру системы.
  • 1-й этап. Записываем данные и ключи в Data и OTP зоны.
  • 2-й этап. Записываем биты установок и правил в Configuration Zone.
  • 3-й этап. Производим блокировку (LOCK) ATSHA204A
  • 4-й этап. Далее — по обстоятельствам (тестируем, выбрасываем или запускаем в серию).

▍ Заключение


Для начальной статьи, наверное, достаточно. Здесь я дал общее представление о том, что такое ATSHA204A и как её можно использовать. В первую статью не вошёл разбор криптофункций и сценариев аутентификации (для чего, собственно, и создавалась ATSHA204A). Этому можно будет посвятить последующие статьи цикла.

Вообще, сама по себе ATSHA204A неисчерпаема как атом, а в сочетании с микроконтроллерами и криптографией — это материал для написания десятков, если не сотен статей (и всегда останется что-то, что ещё можно дополнить).

Комментарии (40)


  1. j_wayne
    29.12.2021 12:39

    Так что запасайтесь микросхемами.

    Забавно звучит, вкупе с прогнозом поставок в середине 2022 и начале 2023г на mouser :)


    1. nixtonixto
      29.12.2021 12:46
      +1

      В директе в наличии 200 тыс штук в соик и дфн. Маузер — всего лишь реселлер.


      1. j_wayne
        29.12.2021 13:05

        Спасибо, не знал, что они напрямую продают. А вы не знаете, как у них с мелкими партиями?


        1. nixtonixto
          29.12.2021 13:33
          +1

          От 1 шт, но выйдет слишком дорогая доставка. И растамаживать приходится. Попробуйте через питерскую Гамму, у них могут быть в наличии или привезут под заказ.


          1. j_wayne
            29.12.2021 14:11

            Спасибо. Я не в России


            1. nochkin
              31.12.2021 06:47

              В том же DigiKey есть в SOIC и UDFN.


    1. smart_alex Автор
      29.12.2021 12:50

      Ну, там речь шла именно об ATSHA204A с её специфической процедурой неотменяемой блокировки — если чего-то не учли — чип остаётся только выбросить на помойку (а что-то не учесть очень легко из-за сложности криптографии и конфигурации ATSHA204A).

      А с учётом дефицита и роста цен на чипы, возможно имеет смысл закупить их побольше, если планируете какой-то проект.


  1. nixtonixto
    29.12.2021 12:40
    +3

    Под IoT лучше подходит STSAFA110 — у неё есть поддержка TLS и вшит заводской CA сертификат. И есть много примеров под STM32, которые в IoT гораздо популярней PIC.


    1. Z2K
      29.12.2021 12:51

      А что лучше всего для аппаратного токена?


      1. makkarpov
        29.12.2021 14:49

        Что-нибудь, совместимое со стандартом JavaCard. J3H145, например, но найти такие микросхемы именно в формате микросхем (а не карточки) - это надо потрудиться. Второй вариант - защищенный МК общего назначения.


  1. j_wayne
    29.12.2021 13:10
    +2

    Простите за дилетантский вопрос, но по большому счету получается, что это все, грубо говоря, чтобы использовать один ключ на партию -> снижение расходов?

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


    1. smart_alex Автор
      29.12.2021 13:19
      +2

      Дело в том, что ATSHA204A — это что-то вроде универсального криптографического комбайна — она позволяет как безопасно хранить ключи и данные (и регламентировать доступ к ним), так и работать с ними на основе SHA-256 в различных сценариях.

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


    1. m0tral
      30.12.2021 06:36

      Сами по себе ключи можно в прошивке фиксануть, нужно именно данные/код туда писать, тем более что там OTP, и делать это грамотно, так как флеш и RAM процессора основные зоны уязвимости.


  1. Sergei2405
    29.12.2021 13:51

    А как осуществляется обмен по I2С без сигнала SCL в трехногом корпусе ? И какие скорость щифрования у микросхмы ?


    1. smart_alex Автор
      29.12.2021 14:00

      Обмен осуществляется по однопроводному SWI интерфейсу, у SparkFun есть соответствующая библиотека для Ардуино SparkFun_ATSHA204_Arduino_Library (там можно посмотреть все подробности реализации).

      Специально скорость работы я не замерял, но учитывая, что это аппаратная реализация, то со скоростью проблем не должно быть (можно подробнее посмотреть в даташите).

      (Всё это я подробно разберу в последующих статьях цикла.)


  1. acc0unt
    29.12.2021 14:19
    +3

    Чипы такого типа мне всегда казались решением в поисках проблемы.

    Без возможности вынести в защищённый чип хотя бы часть рабочей логики вся эта защита упирается в то, что для вмешательства в работу одиночного устройства достаточно проломить намного менее защищённый МК, который фактически и выполняет все операции. А если у вас на конечном устройстве что-то реально вкусное для атакующего, вроде симметричного ключа, который один на все устройства - то у вас во-первых всё очень плохо с архитектурой, а во-вторых мы упираемся в то, что в этом мире ломается всё. Вопрос в затраченных атакующим на этот взлом усилиях.


    1. smart_alex Автор
      29.12.2021 14:29
      +1

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

      «Один ключ на все устройства» — это только гипотетический пример (и об этом тоже специально упомянуто в статье).


    1. out-of-range
      29.12.2021 15:42

      Тут всё зависит от задачи. Например, для удалённой аутентификации каких-либо мелких устройств без возможности организовать TLS-канал, вполне достаточно внутренней логики SHA256/HMAC - т.к. запрос каждый раз разный, ломать микроконтроллер нет смысла. А если симметричный ключ прописан в рядом стоящий МК, то и криптостойкость системы тут определяется криптостойкостью МК.


  1. out-of-range
    29.12.2021 14:30

    В качестве аппаратного хранилища секретов лучше присмотреться к АТЕСС608 - там и защита канала с микроконтроллером, и ECDH/ECDSA, и более продуманная система аутентификации со счётчиками (например, можно организовать ограниченное число попыток ввода пин-кода для разблокировки нужного ключа, с ATSHA204 такое не сделаешь).


    1. smart_alex Автор
      29.12.2021 14:32

      с ATSHA204 такое не сделаешь

      А вы хорошо знакомы с ATSHA204? Там же есть аппаратные ячейки с конфигурацией только на уменьшение значений.


      1. out-of-range
        29.12.2021 14:40

        Насколько я помню, они там одноразовые, т.е. например после второй попытки ввода "сбросить" лимит уже нельзя, а в 608 лимит можно задать в отдельном слоте и обновлять после успешной аутентификации.


        1. smart_alex Автор
          29.12.2021 14:46

          Да, тут вы правы — OTP ячейки одноразовые и подходят скорее для того, чтобы что-то «заблокировать» окончательно.

          Точно не скажу, но насколько я помню, в ATSHA204A есть и возможность произвольно изменять значения битов некоторых слотов.


  1. Alex-111
    29.12.2021 17:43
    +1

    Из статьи не понятно, как это может быть лучше с точки зрения безопасности: данные между чипом и МК передаются в открытом виде. Можно какой-то пример? Пока вижу выигрыш только в оффлоаде функций шифрования.

     


    1. smart_alex Автор
      29.12.2021 20:40

      В дальнейших статьях будет сначала разбор устройства (зон, слотов и регистров) ATSHA204A, а затем описание функций и пример аутентификации удалённого устройства (датчика) при помощи ключей и алгоритмов ATSHA204A.


    1. CAJAX
      31.12.2021 11:14

      Raspberry pi ставит этот чип на свои picamera для проверки, что это не китайский клон.


  1. ionicman
    29.12.2021 20:12
    +1

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

    Хранилище ключей? Так взламают мк или отснифают передачу между ними - канал-то не шифруется.

    Логику в нее не перенести.

    Транспорт через нее не сделать - вот эта фича была бы самой классной.

    Как аутстафф рандомного генератора и криптофункций? А зачем? Скорость разве что, но, обычно, она не сильно важна в ИОТ.

    Можно реальный пример применения данной микросхемы?


    1. smart_alex Автор
      29.12.2021 20:41

      Смысл и в безопасном хранении ключей и данных и в настраиваемых правилах и в качественном RNG и в OTP зоне и во множестве SHA-ассоциированных функций и т. д. Вот что пишет об этом сам производитель:

      The Microchip SHA-based CryptoAuthentication crypto element devices have been architected to provide flexible user-configured security to enable a wide range of authentication models. Secure Hash Algorithm (SHA) algorithms are widely used in most cryptographic systems and remain an important component in most modern authentication protocols. CryptoAuthentication devices in the SHA mode include client and host security capabilities that offload key storage and algorithm execution from the microcontroller, significantly reducing system cost and complexity.

      Проблема взлома самого микроконтроллера остаётся, её никто не отменял, но в сочетании с ATSHA204A система будет надёжнее в любом случае.


      1. zxcvbv
        29.12.2021 22:06
        +2

        Смысл и в безопасном хранении ключей и данных и в настраиваемых правилах и в качественном RNG и в OTP зоне и во множестве SHA-ассоциированных функций и т. д.

        Едва ли не всё, что вы перечислили, есть даже в каком-нибудь бюджетном STM32G0С1 из коробки. AES есть, RNG есть, OTP есть, ну и всякие PCROP'ы, тамперы и прочие форсбуты тоже имеются. Так ли часто даже всего этого ансамбля не хватает для IoT - вопрос автору.

        Проблема взлома самого микроконтроллера остаётся, её никто не отменял, но в сочетании с ATSHA204A система будет надёжнее в любом случае.

        Но надежнее ли, чем когда ядро и криптомодуль находятся под одной крышкой МК, и, как минимум, сниф коммуникации между ними уже осложняется на порядок.


        1. smart_alex Автор
          30.12.2021 06:53

          Едва ли не всё, что вы перечислили, есть даже в каком-нибудь бюджетном STM32G0С1

          Тут есть 2 момента: во-первых, я не всё перечислил, что есть в ATSHA204A :) , а во-вторых, ATSHA204A — это универсальное решение, которое может использоваться с любыми микроконтроллерами, даже теми у которых нет встроенных развитых криптографических модулей.

          Но спорить не буду — я не проводил специального исследования на тему «STM32 vs ATSHA204A», возможно свет на этот вопрос прольёт компетентное хабр-сообщество.


        1. ariz0na
          30.12.2021 13:26

          Крипто функции есть во многих микроконтроллерах, но не везде есть NIST RNG, защищенное храниение ключей, тамперы, Active shield across multiple layers, механизмы предотвращения атак по "сторонним" каналам, и пр. Ширпотребовские МК как правило не имеют механизмов предотвращения Microprobe, Timing, Emissions, nvalid command, Power cycling, clock glitches и др. атак. Если погуглить, то найдете сервисы по предоставлению прошивки из МК, но вскрыть чип, например из банковской карты, .. видимо стоит совсем других денег и дешевле осуществить "звонок из фин.мониторинга банка" или применить "терморектальный криптоанализ".


    1. ProLimit
      30.12.2021 11:08

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

      А дальше - используй ключ, например для подписи запросов. Создавай случайные сессии с RNG, подписывай SHA. Защита в том, что даже если у нас есть точная копия устройства и возможность модификации прошивки, без крипточипа доступ к внешним серсвисам невозможен (например, обновление прошивки). Но как его использовать, если нужно надежно защитить именно саму прошивку - не знаю, надеюсь будут еще примеры в следующих статьях.


    1. ariz0na
      30.12.2021 11:11
      +2

      Между МК и крипто-чипом не передаются ключи, поэтому снифить там нечего.

      ATSHA204A - в основном предназначена для аутентификации расходников, аксессуаров и т.п.

      Типовой пример. Путь "принтер" (П) хочет распознать свой "картридж" (К).

      В (П) и (К) стоят ATSHA204A с прописанным Secure Key.

      По запросу МК в (П) генерируется случайное число (Challenge), отсылает его в (К).

      в (К) на основе Challenge и SecureKey вычисляется Hash, который отсылается обратно в (П).

      (П) в свою очередь так же вычисляет Hash и сравнивает с Hash из (К).

      Микроконтроллер в (П) получает ответ - совпал Hash или нет.

      В данном случае в протоколе нет передачи "чувствительной" информации. из Крипто чипа после Lock нет возможности считать ключи.

      Вы можете взломать МК в конкретном "Принтере", и заставить (П) принимать любые (К). Но подделать (К), для того чтобы они подходили к любым (П) - это уже challenge ))

      Для более сложных use cases есть ATECC506(608).


      1. ionicman
        30.12.2021 11:57

        А в картридже вычислением хэша от challenge и securekey не мк занимается? Т.е. мк скармливает пришедшее в данный микрочип, он вычисляет хэш и отдаёт его мк, и таким образом securekey мк не знает?


        1. ariz0na
          30.12.2021 12:10
          +4

          Да. Более того, МК в картридже вообще не нужен. Подобные крипто-элементы выпускаются в 3-х выводном корпусе (см. картинку в статье, 3 Lead Contact), он как бы не для монтажа на плату, а для интергации в корпус "расходника". Т.е. в этом случае команды передает МК из "принтера" и верифицирует расходник.

          Для расходников еще можно установить счетчик, с каждым обращением счетчик уменьшается и при ==0 расходник блокируется. Например если расходник это картридж с лекарством на N доз. Исчерпали расходник - перезалить лекарство/чернила/etc. уже нельзя, ресурс картриджа/чипа исчерпан.


          1. ionicman
            30.12.2021 12:29

            Спасибо за реальный юзкейс, наверное примерно такое стоило добавить в статью.


  1. b_t
    30.12.2021 00:00

    Кроме того, этот вариант предназначен для применения в однопроводной схеме, что позволяет экономить (всегда) дефицитные выводы микроконтроллера.

    I2C часто и так используется для других микросхем, тогда однопроводное подкючение превращается в проблему - для однопроводного подключения надо писать работу этого интерфейса, а для I2C всегда(или почти всегда) есть аппаратная реализация.

    Спасобо за статью, жду продолжения!


  1. hedgeov
    30.12.2021 03:28

    Очень интересно продолжение: сейчас как раз начинаю разработку IoT для транспорта, где надо будет уделить дополнительное внимание аутентификации модулей системы и информационной безопасности каналов связи. Хочется понять, насколько специализированные криптомикросхемы полезнее того, что предоставляеют криптомодули контроллеров stm32 и nrf52.


  1. NicolyaLS
    30.12.2021 06:35

    Спасибо за информацию о микросхеме. В самом начале чтения ощущалось лёгкое дежавю: где-то я такое уже видел… Точно! DS1961s. Читаю дальше и прихожу восторг — это даже не следующий этап развития, а небо и земля: «Больше! Дальше! Выше!». Уделывает «дедушку» по всем параметрам


  1. woooody
    31.12.2021 18:13

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

    В варианте с принтером/картриджем это означает, что если кто-то расковыряет ключ, то читай всё пропало.

    Для более рельной истории с IoT всё же лучше чтоб криптомодуль умел работать с ассиметричным шифрованием. Тогда Private Key в каждом устройстве уникальный, сертификат подписан приватным ключом, который есть только у производителя девайсов. И даже если кто-то расковыряет один из девайсов и достанет оттуда все ключи, просто отзываем этот сертификат и клонов уже не получится наделать.


  1. alexkarnaukhov
    01.01.2022 06:52

    Мне кажется самый главный вопрос: это технология на которой сделаны OTP. Если там antifuse, которые сложно считать всякими электронными микроскопами, то вот и причина ставить это микруху: часто в чипах OTP идет на обычных пережигаемых перемычках, которые прекрасно видно в электронный микроскоп.

    Но быстро пробежав по даташиту я чето вообще не увидел какой-то инфы по поводу антифьюз там или нет.