Криптографические основы надежной защиты устройств IoT
Примечание редактора: Обеспечение безопасности Интернета вещей необходимо для сохранения целостности потоков данных, прошивки и корпоративных ресурсов, к которым они подключены. Безопасность IoT — это многофакторная задача, требующая системного подхода к выявлению угроз и внедрению эффективных мер защиты.
Адаптировано из книги «Интернет вещей для архитекторов» Перри Ли.
Глава 12. Безопасность IoT
Автор: Перри Ли
Криптография
Шифрование и конфиденциальность незыблемы для развертываний IoT. Они защищают коммуникации, прошивку и процессы аутентификации. На практике используются три основные криптографические примитива:
- Симметричное шифрование — один и тот же ключ шифрует и расшифровывает данные. Распространенные алгоритмы: RC5, DES, 3DES и стандарт индустрии AES.
- Асимметричное шифрование (открытый ключ) — публичный ключ шифрует данные, а только владелец соответствующего приватного ключа может их расшифровать. Эта асимметричная схема также обеспечивает аутентификацию и неотрекаемость. Широко используемые протоколы, такие как эллиптическая криптография (ECC), PGP, RSA, TLS и S/MIME, опираются на эту модель.
- Криптографические хеш-функции — односторонние функции, отображающие произвольные данные в дайджест фиксированного размера. К этой категории относятся MD5, SHA-1, SHA-2 и SHA-3. Хеши лежат в основе цифровых подписей, кодов аутентификации сообщений (MAC) и безопасной проверки прошивки. При хешировании небольших входных данных, таких как пароли, добавляется «соль» для увеличения энтропии; это форма функции генерации ключей (KDF).
нажмите для увеличения
Элементы криптографии. Симметричное шифрование требует одинаковых ключей для шифрования и дешифрования, асимметричное использует пары открытый/закрытый ключ. Хеш-функции обеспечивают односторонние проверки целостности.
Симметричная криптография
В симметричном шифровании открытый текст — это входные данные в chiaro, а зашифрованный текст — выходные зашифрованные данные. Стандарт AES (Advanced Encryption Standard) является глобальным эталоном, вытеснив старые алгоритмы DES. AES соответствует FIPS 197 и ISO/IEC 18033-3, работает с блоками 128 бит и ключами 128, 192 или 256 бит. Более длинные ключи обеспечивают более высокую безопасность ценой дополнительных тактов CPU: ключи 128 бит требуют 10 раундов, 192 бит — 12 раундов, 256 бит — 14 раундов.
// Псевдокод шифра AES-128
// Вход: 128-битный открытый текст
// Выход: 128-битный шифротекст
// w: 44 32-битных слова (расширенный ключ)
state = in
w = KeyExpansion(key) // Фаза расширения ключа
AddRoundKey(state, w[0, Nb-1]) // Начальный раунд
for round = 1 to Nr-1
SubBytes(state) // Нелинейная подстановка
ShiftRows(state) // Перестановка строк
MixColumns(state) // Смешивание столбцов
AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])
end for
SubBytes(state) // Финальный раунд
ShiftRows(state)
AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])
out = state
Прокрутите или перетащите угол окна для расширения. ↑
Блочные шифры, такие как AES, обрабатывают данные фиксированными блоками и полагаются на режим работы для расширения алгоритма на более длинные сообщения. Вектор инициализации (IV) гарантирует, что идентичные блоки открытого текста дают разные блоки шифротекста, предотвращая анализ закономерностей. Основные режимы:
- Electronic Codebook (ECB) — простейший режим; каждый блок шифруется независимо. Идентичные блоки дают идентичный шифротекст, поэтому ECB не подходит для большинства приложений.
- Cipher Block Chaining (CBC) — каждый блок открытого текста XOR-ится с предыдущим блоком шифротекста перед шифрованием, обеспечивая диффузию.
- Cipher Feedback (CFB) — потокоподобный режим, подающий предыдущий выход шифра на следующий шаг. CFB не параллелится, но позволяет восстанавливаться после потери блоков.
- Output Feedback (OFB) — похож на CFB, но генерирует ключевой поток, который XOR-ится с открытым текстом, позволяя использовать коды исправления ошибок.
- Counter (CTR) — преобразует блочный шифр в потоковый, используя пару nonce-счетчик, обеспечивая параллельное шифрование и высокую производительность.
- CBC-MAC — добавляет код аутентификации сообщения к CBC, обеспечивая проверку целостности и аутентификацию источника.
Эти режимы появились в конце 1970-х и были стандартизированы NIST в FIPS 81. Они обеспечивают конфиденциальность, но не предотвращают подделку. Сочетание аутентификации с шифрованием привело к режимам аутентифицированного шифрования, таким как AES-CCM (Counter with CBC-MAC). CCM является неотъемлемым для протоколов Zigbee, Bluetooth Low Energy, TLS 1.2 (после обмена ключами), IPsec и Wi-Fi WPA2.
AES-CCM сочетает CTR для эффективной дешифровки потока шифротекста и CBC для генерации тега аутентификации. Тег сравнивается с ожидаемым значением, вычисленным из расшифрованной полезной нагрузки; несовпадение указывает на возможное вмешательство.
нажмите для увеличения
Режим AES-CCM.
В полностью связанной сетке из n узлов двунаправленная коммуникация требует n(n-1)/2 уникальных ключей, что масштабируется квадратично (O(n²)). Поэтому эффективные стратегии управления ключами критически важны для крупных развертываний IoT.
Интернет вещей
- Защита промышленного IoT: практическая дорожная карта
- Защита вашей IoT-экосистемы: экспертные стратегии против ransomware и киберугроз
- IoT-безопасность — кто несет ответственность?
- Подъём IoT: Почему безопасность должна быть встроена с первого дня
- Безопасность IoT: преодоление барьеров внедрения
- Защита IoT-устройств с помощью технологии десепшена (deception technology)
- Автоматизация и IoT: революция в логистике и безопасности здравоохранения
- Безопасность раскрывает полный потенциал IoT
- 12 ключевых инсайтов по безопасности ИоТ за 2023 год
- Машинное зрение: драйвер Индустрии 4.0 и Промышленного IoT