есть ли какие-либо проблемы с безопасностью, которые можно ожидать, когда клиент mqtt не предоставляет сертификат открытого ключа во время установления связи TLS?

Я создаю небольшую iot-подобную систему, в которой устройства (клиенты) mqtt отправляют и получают важную информацию или команды, связанные с безопасностью.

Я должен знать, что соединение TLS может быть построено опционально без аутентификации клиента через сертификат PK на стороне клиента.

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

Думаю, именно поэтому у многих брокеров mqtt есть возможность настроить включение / выключение аутентификации клиента во время установления связи TLS.

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

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


person Big Square    schedule 08.01.2020    source источник


Ответы (2)


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

person Steffen Ullrich    schedule 08.01.2020
comment
можете ли вы сообщить мне о государственной услуге, которую я могу выбрать? - person Big Square; 14.01.2020
comment
@BigSquare: Думаю, вы не поняли, что я пытался сказать. Я не говорю о конкретной общедоступной службе, которую вы можете выбрать, но что в некоторых случаях сервер MQTT не заботится о том, какой клиент подключен (например, если услуга предлагается для произвольных клиентов), в то время как в других случаях важно, чтобы только аутентифицированные клиенты могут подключаться. - person Steffen Ullrich; 14.01.2020

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

  1. С какой моделью угроз вы работаете? Например, Кого вы пытаетесь не допустить в систему и почему, каковы последствия подключения клиента Rouge?
  2. Сколько вы готовы потратить? Если вы собираетесь развернуть сертификат клиента или даже уникальное имя пользователя / пароль для каждого устройства, как оно будет защищено? Поддерживает ли оборудование, которое вы собираетесь использовать, безопасный анклав / секретное хранилище оборудования? Это означает, насколько сложно злоумышленнику извлечь имя пользователя / пароль клиента или секретный ключ с устройства?
  3. Какие еще меры безопасности у вас есть? Есть ли у вас списки контроля доступа, чтобы защитить, какие темы клиент может публиковать / подписываться? Есть ли у вас мониторинг для обнаружения вредоносных действий со стороны клиентов, чтобы их можно было отключить и заблокировать?
person hardillb    schedule 08.01.2020
comment
хорошо. вы просите слишком глубоко. Как бы то ни было, какие бы компоненты безопасности ни были в MCU, мы не можем сказать, что это безопасно. Исходя из этого, мы не можем использовать MCU в качестве основной системы клиента MQTT, который обрабатывает важную для безопасности информацию. - person Big Square; 14.01.2020