Безопасность
А.1 Введение
Данное приложение предоставляется только в качестве справочного материала и является ненормативным. Тем не менее, по настоятельной рекомендации, приведенной в настоящем стандарте, в реализациях Сервера, использующих протокол TLS, использовался ТСР-порт 8883 (название службы IANA: secure-mqtt).
Существует ряд угроз, которые следует учитывать разработчикам, например:
- устройства могут быть дефектны;
- данные, хранящиеся у Клиентов и на Серверах, могут быть доступны;
- поведение протокола может иметь побочные эффекты (например, "временные атаки");
- атаки, вызывающие отказ в обслуживании (DoS);
- связь может быть перехвачена, изменена, перенаправлена или раскрыта;
- в поток данных могут быть внедрены поддельные управляющие пакеты.
Решения MQTT часто развертываются во враждебных средах связи. В таких случаях реализациям часто необходимо предусмотреть механизмы для:
- идентификации пользователей и устройств;
- авторизации доступа к ресурсам Сервера;
- целостности управляющих пакетов MQTT и данных приложения, содержащихся в них;
- конфиденциальности управляющих пакетов MQTT и данных приложения, содержащихся в них.
В качестве транспортного протокола MQTT занимается только передачей сообщений, и ответственность за обеспечение безопасности лежит на разработчике. Для этого обычно применяется протокол TLS [3].
В дополнение к техническим проблемам безопасности также могут существовать географические (например, "зона безопасности" США-Европа [25]), отраслевые (например, PCI DSS [16]) и регулятивные (например, Sarbanes-Oxley [24]).
А.2 Решения MQTT: безопасность и сертификация
Реализация может потребовать соответствия определенным отраслевым стандартам безопасности, таким как NIST Cyber Security Framework (Инфраструктура кибербезопасности [13], PCI-DSS [16]), FIPS-140-2 [9] и NSA Suite В [15].
Руководство по использованию MQTT в рамках NIST Cyber Security Framework [13] можно найти в дополнительных публикациях MQTT, MQTT и NIST Framework for Improving Critical Infrastructure Cybersecurity (Структура для улучшения критической инфраструктуры кибербезопасности) [12]. Использование проверенных в отрасли, независимо проверенных и сертифицированных технологий поможет соответствовать требованиям.
А.3 Упрощенная криптография и ограниченные устройства
Широко применяется Улучшенный стандарт шифрования (AES) [7] и Стандарт шифрования данных (DES) [8].
ISO 29192 [11] дает рекомендации в отношении криптографических примитивов, специально настроенных для работы на устройствах "низкого уровня" с ограниченными вычислительными мощностями.
А.4 Замечания по реализации
При внедрении или использовании MQTT необходимо учитывать многие проблемы безопасности. Следующий раздел не следует рассматривать как прямое руководство.
Реализация может выполнять все или некоторые из приведенных ниже требований:
А.4.1 Идентификация Клиентов Сервером