Защита UART в IoT-устройствах: от обмена ключами RSA к шифрованию AES
С криптографическими блоками, встроенными в современные микроконтроллеры, разработчики теперь могут защитить каждый канал связи, даже устаревшие интерфейсы вроде UART, которые традиционно не имеют встроенной безопасности.
Громкие утечки данных в IoT-системах сделали очевидным, что предложение отличного продукта больше недостаточно — устройства должны обеспечивать сквозное шифрование, чтобы оставаться конкурентоспособными.
Хотя многие протоколы встраивают безопасность нативно, UART остается простым интерфейсом без ACK, который может быть прочитан или изменен, если известен бодрейт. Для защиты от подслушивания и инъекций конечные точки сами должны шифровать и аутентифицировать данные.
Симметричная и асимметричная безопасность
Криптографическая защита обычно делится на две категории: симметричные и асимметричные алгоритмы. Симметричные ключи — общие для отправителя и получателя — предлагают быстрое шифрование, но ключ должен быть безопасно обменян. Асимметричные пары ключей решают это, позволяя одной стороне зашифровать симметричный ключ публичным ключом; только владелец соответствующего приватного ключа может его расшифровать.
RSA — самая распространенная асимметричная схема для обмена ключами, в то время как AES — рабочая лошадка для шифрования данных благодаря своей эффективности и низкому ресурсному следу.
Публичное и приватное ключевое шифрование
Математическая сложность RSA обеспечивает сильную безопасность, но требует значительной вычислительной мощности, что может быть затратным в встроенных системах реального времени. Для большинства IoT-устройств гибридный подход — RSA для обмена AES-ключом, затем AES для массовых данных — обеспечивает лучший баланс скорости и безопасности.
На практике получатель генерирует пару ключей RSA и публикует свой публичный ключ. Отправитель создает случайный AES-ключ, шифрует его публичным ключом получателя и отправляет обратно. Получатель расшифровывает AES-ключ своим приватным ключом, и все последующие сообщения шифруются этим ключом.
Рис. 1: Безопасный обмен AES-ключом с использованием RSA. (Источник: Infineon)
Поскольку только намеченный получатель держит приватный ключ, злоумышленник не может восстановить AES-ключ даже при перехвате канала. Вся дальнейшая коммуникация затем защищена от подслушивания и подделки.
Прошивка против аппаратной реализации
Реализация криптографических алгоритмов чисто в прошивке ресурсоемка: она потребляет циклы CPU, увеличивает задержку и повышает потребление энергии. Современные MCU смягчают это с выделенными криптографическими ускорителями, которые разгружают тяжелые операции на специализированные аппаратные блоки, драматически снижая отпечаток и стоимость.
MCU PSoC 6 от Infineon примеряет этот подход. Его встроенный криптографический движок поддерживает AES, DES, TDES, RSA, SHA и CRC, позволяя разработчикам развертывать надежную безопасность без более мощного процессора.
Истинные случайные числа
Случайность критична для генерации ключей. Детерминированная прошивка может производить предсказуемые ключи, делая атаки полным перебором выполнимыми. Генератор истинных случайных чисел (TRNG), такой как шесть кольцевых осцилляторов в PSoC 6, вводит физический шум для генерации непредсказуемых ключей.
Для 16-байтового AES-ключа TRNG генерирует 128 случайных бит — давая 2^128 возможных ключей, далеко за пределами достижения грубой силы. Кроме того, регенерация ключа при каждой перезагрузке ограничивает окно воздействия для любого скомпрометированного ключа.
Обеспечение целостности и аутентичности
Отсутствие ACK в UART означает, что нет встроенной гарантии, что сообщение завершено или не повреждено. Для противодействия этому к каждому сообщению перед шифрованием добавляется криптографический хеш (SHA). Получатель, после расшифровки, пересчитывает хеш и сверяет его с полученным значением. Несовпадение указывает на подделку или ошибку передачи, вызывая отбраковку сообщения.
Рис. 2: Хеш обеспечивает целостность сообщения при безопасных обменах. (Источник: Infineon)
Для дополнительной аутентичности отправитель может подписать сообщение своим приватным ключом; получатель проверяет подпись с помощью публичного ключа отправителя, гарантируя, что сообщение исходит от легатимного источника.
Интегрируя RSA, AES, TRNG и SHA в криптографический блок MCU, разработчики могут защитить UART — традиционно незащищенный интерфейс — не жертвуя производительностью или стоимостью.
— Хариговинд А и Ракшит М Б, старшие инженеры по приложениям, Infineon Technologies
>> Эта статья изначально публиковалась на нашем партнерском сайте EDN.
Интернет вещей
- Как 5G трансформирует промышленный IoT: повышение автоматизации, надежности и связности
- Как IoT и 5G трансформируют современные рабочие места
- Глобальное влияние IoT: Драйв экономического роста, сохранения, здравоохранения и образования
- Как IoT трансформирует enterprise mobility для современного бизнеса
- 7 основных шагов для защиты вашей домашней IoT-сети
- Как построить прибыльную бизнес-модель IoT
- Защита миллиардов IoT-устройств с помощью киберустойчивости: план на будущее
- Восходящая угроза kill-chain атак на IoT-устройства — что бизнесу нужно знать
- Как IoT трансформирует безопасность на рабочем месте: мониторинг в реальном времени и снижение рисков
- Трансформация клиентского опыта с IoT: умные решения для превосходного удовлетворения