logo
+7 (951) 999-89-94
428003, г. Чебоксары, ул. Федора Гладкова, д.9, оф.319

ATSHA204A — Спецификации

Несмотря на свой миниатюрный вид и всего 3 вывода (в варианте SOT23), микросхема ATSHA204A является очень высокотехнологичным устройством с широким и нетривиальным функционалом и сложной внутренней структурой. Даташит на ATSHA204A содержит около сотни страниц на которых компания Microchip расписывает устройство и приёмы работы с этой микросхемой.

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

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

В этом цикле статей мы попробуем разобраться с устройством ATSHA204A и приёмами её программирования. Начнём мы с ознакомления с характеристиками и внутренней структурой этой микросхемы.

Виды корпусов

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

Мы в своих экспериментах будем использовать вариант ATSHA204A в корпусе SOT23 с 3-я выводами. Достоинство этого варианта — очень небольшие размеры, позволяющие разместить криптомикросхему на любом, даже самом миниатюрном, датчике.

Интерфейс для связи с контроллером

ATSHA204A в различных вариантах исполнения имеют либо двухпроводной I2C, либо однопроводной SWI интерфейс для связи с микроконтроллером. Наиболее простой и подходящий для использования в IoT — это однопроводной интерфейс SWI. Его достоинство — используется всего один GPIO вывод микроконтроллера и требуются всего два элемента обвязки — резистор и конденсатор.

Двухпроводной вариант I2C

На схеме ниже представлен типовой вариант подключения микросхемы ATSHA204A к микроконтроллеру по двухпроводному интерфейсу I2C.

Однопроводной вариант SWI

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

Характеристики ATSHA204A

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

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

SHA-256

Как мы видим, ATSHA204A в первую очередь аппаратно реализует алгоритмы хеширования SHA-256 в вариантах с MAC (Message Authentication Code или «код проверки подлинности сообщения») и HMAC (Hash-based Message Authentication Code или «основанный на хеше код проверки подлинности сообщения»). Это базовый функционал микросхемы ATSHA204A, на котором строится вся её основная работа.

Организация памяти

Микросхема ATSHA204A содержит 2 вида памяти — энергонезависимую EEPROM и оперативную SRAM. Оперативная память используется для хранения ключей и данных в процессе работы микросхемы, а энергонезависимая EEPROM — для долговременного хранения ключей и различной секретной информации.

Всего EEPROM содержит 664 байта (5312 бит), разделённые на несколько зон.

Зона 1: Data. 512 байт (4096 бит), разбитые на 16 слотов по 32 байта. Доступ на чтение или чтение/запись этих слотов можно устанавливать программным способом при конфигурировании устройства. Эта зона используется для хранения ключей, конфигурационных данных, серийных номеров устройств и для т. п. целей.

Зона 2: Configuration. 88 байт (704 бита) — это зона конфигурационных данных ATSHA204A. Она содержит серийный номер и другие идентификационные данные микросхемы ATSHA204A, а также информацию о разрешении доступа для каждого слота данных и прочие настройки.

Зона 3: OTP (One Time Programmable). 64 байта (512 бит). Это зона, которая используется для хранения данных только для чтения или одноразовой установки. До блокировки зоны OTP биты могут быть свободно записаны с использованием стандартной процедуры записи.

Уникальный серийный номер

Микросхема ATSHA204A содержит уникальный 72-битный серийный номер. Гарантируется, что этот номер всегда будет разным у всех чипов ATSHA204A. Поскольку номер уникален, то он может использоваться для целей идентификации и в составе криптографических функций, например при вычислении хешей или шифрования.

Генератор случайных чисел (RNG)

ATSHA204A содержит высококачественный генератор RNG, который возвращает случайные 32-байтовые числа. Эти числа могут использоваться в пользовательских криптографических функциях, а также RNG используется самим чипом для работы аппаратных функций, встроенных в него.

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

ff ff 00 00 ff ff 00 00...

Физическая защита

Микросхема ATSHA204A специально разработана с учётом защиты от физических воздействий по взлому системы. Специальные меры безопасности включают:

  • Шифрование внутренней памяти
  • Защищенные режимы работы
  • Защита от сбоев
  • Обнаружение изменения напряжения

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

Логические сигналы и напряжение питания генерируются внутри микросхемы, предотвращая внешнюю атаку на эти две подсистемы ATSHA204A.

Напряжение питания

Питание микросхемы универсально — она может питаться от источника с напряжением от 2 до 5,5 вольт, а логические сигналы могут быть от 1,8 до 5,5 вольт. Это позволяет без каких-либо проблем использовать ATSHA204A практически с любыми современными микроконтроллерами.

Энергосберегающий режим

Минимальное потребление тока микросхемы ATSHA204A в режиме сна составляет менее 150 нА, что позволяет использовать её, например, в батарейных сенсорах, работающих годами без необходимости замены батарей.

Логика работы с ATSHA204A

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

Этап 0: планирование системы

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

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

На этом этапе вы должны определить все необходимые действия, например:

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

Этап 1: запись данных

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

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

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

Этап 2: конфигурация ATSHA204A

После того, как вы прошили в ATSHA204A необходимые данные и ключи, нужно сконфигурировать саму микросхему ATSHA204A. В этот этап входят:

  • Конфигурация регистров ATSHA204A
  • Определение прав на чтение и чтение/запись слотов Data зоны с секретными ключами и данными
  • Конфигурация и внесение данных в OTP зону микросхемы ATSHA204A
  • Прочие конфигурационные действия

Этап 3: блокировка (Lock) ATSHA204A

После записи всех необходимых данных и ключей и конфигурации самой микросхемы ATSHA204A, её необходимо заблокировать (Lock). Это делается для обеспечения безопасности и перевода микросхемы в рабочий режим использования. Блокируется как сама микросхема ATSHA204A, так и её OTP зона. Что важно понимать: без блокировки многие функции ATSHA204A не работают. Например, генератор случайных чисел RNG без блокировки выдаёт вместо случайных чисел тестовую последовательность, неприменимую в реальной работе защиты.

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

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

Заключение

В этой статье мы рассмотрели устройство, основные характеристики и принципы работы с криптомикросхемой ATSHA204A производства компании Microchip. На самом деле это только вершина айсберга под названием ATSHA204A и невозможно 100 страниц даташита и университетский курс по криптографии вместить в одну обзорную статью. Здесь мы постарались дать общий взгляд на возможности и внутреннюю организацию чипа ATSHA204A.

В следующей статье мы попробуем познакомиться с приёмами программирования ATSHA204A в среде Arduino IDE и разберём работу функций её специализированной библиотеки.

Ссылки по теме

Работа с SHA-256

ATSHA204 - Обзор

ATSHA204 - Библиотека и примеры

ATSHA204A - Чтение зоны конфигурации 1

ATSHA204A - Чтение зоны конфигурации 2

ATSHA204A - Чтение зоны конфигурации 3

ATSHA204A - Запись конфигурации 1

ATSHA204A - Запись конфигурации 2

ATSHA204A - Запись конфигурации 3

ATSHA204A - Запись конфигурации 4

ATSHA204A - Config Lock

ATSHA204A - Работа в режиме Config Lock

ATSHA204A - Работа с зонами памяти

ATSHA204A - Запись зоны OTP

ATSHA204A - Data Lock

ATSHA204A - Чтение Data и OTP зон памяти

ATSHA204A - Команда MAC

ATSHA204A - Аутентификация. Базовый блок

ATSHA204A - Аутентификация. Датчик

ATSHA204A - Криптография и команды

ATSHA204A - Команда CheckMac

ATSHA204A - Команда Nonce

ATSHA204A - Команда GenDig

ATSHA204A - Команда HMAC

ATSHA204A - Команда DeriveKey

ATSHA204A - Команда DeriveKey

ATSHA204A - nRF24 аутентификация. База

ATSHA204A - nRF24 аутентификация. Датчик

ATSHA204A - LoRa аутентификация. База

ATSHA204A - LoRa аутентификация. Датчик