Оценка безопасности устаревшей реализации SSL / TLS на устройстве IoT
Я провожу оценку безопасности связи устаревшего устройства IoT. Цель состоит в том, чтобы оценить и найти бреши в безопасности в текущем проекте / реализации.
Способ оценки - ручной, в первую очередь со ссылкой на существующий дизайн и код. Это только на стороне клиента на устройстве; а сервер - это облачный сервер. Устройство использует модуль GSM (SIMCom SIM900) и устанавливает соединение HTTPS с сервером через Интернет с помощью AT-команд GSM.
Основываясь на моем понимании SSL / TLS, я рассматриваю следующие параметры или критерии для этой оценки:
а. Версия протокола TLS
б. Используемые наборы шифров
c. управление сертификатами и ключами
d. Установленные на устройстве корневые центры сертификации
е. Встроенный аспект PKI для управления идентификацией устройств
f. Аппаратный криптографический аспект (SHE / TPM)
Правильно ли я это делаю? Хотя я думаю, что приведенный выше список параметров не относится к платформе HW / SW устройства; довольно общий. но думаю так и должно быть! Я имею в виду, что список параметров будет почти таким же; однако фактическая их оценка будет зависеть от требований безопасности и других аспектов, таких как размер устройства, его платформа и т. д.
Является ли список параметров оценки, который я рассматриваю, хорошим и адекватным?
Ответы
Это хорошее начало, но тщательная оценка потребует гораздо большего. Например:
Как клиент генерирует случайные числа? Использует ли он CSPRNG ? Или он использует слабый генератор случайных чисел, подобный тому, который использовался в ранних версиях Netscape Navigator , где пассивный злоумышленник мог угадывать случайные числа, сгенерированные для ключей сеанса, и, таким образом, расшифровывать зашифрованный текст, передаваемый по сети.
Утечка информации клиентом, когда он обнаруживает ошибку заполнения? Если это так, то он может быть подвержен атаке оракула , как в случае с игровым клиентом Steam .
Как клиент реализует ECDSA ? Создает ли клиент новый случайный k для каждой создаваемой подписи? В противном случае пассивный злоумышленник может вычислить закрытый ключ подписи после наблюдения за несколькими подписями, как в случае с Sony Playstation 3 .
Это всего лишь несколько примеров. Но, как видите, тонкие ошибки при реализации криптографии могут иметь катастрофические последствия. Вот почему криптографию так сложно понять.