#ssl #architecture #iot
#ssl #архитектура #iot
Вопрос:
Я не могу понять, в чем заключается реальное преимущество использования сертификата CA, когда речь идет о безопасной связи между серверами и устройствами IoT.
Я работаю на устройстве IoT, которое использует Ubuntu в качестве ОС, и я планировал использовать сертификат CA. Но что произойдет, если мои пользователи не обновляют прошивку своих устройств? теперь, когда срок действия сертификатов истекает через 1 год, и учитывая, что некоторые пользователи долгое время не обновляют свои устройства Интернета вещей… риск, с которым я столкнусь, заключается в том, что эти устройства не могут быть обновлены после истечения срока действия сертификата, поскольку они не могут взаимодействовать с моими серверами.
С самозаверяющим сертификатом я могу установить срок действия 45 лет, и в любом случае я буду уполномочен, и я могу отозвать или решить, когда пришло время выпустить новый сертификат или даже сертификат перекрестной подписи.
Я, очевидно, говорю только о связи между устройством и серверами… rest api для пользователей будет использовать сертификат CA по умолчанию.
Другой вариант, который я рассматриваю, — использовать сертификат CA для связи между устройством и серверами, а также добавить самозаверяющий сертификат, который я могу использовать в качестве резервной копии на случай истечения срока действия основного сертификата и необходимости загрузки устройством нового программного обеспечения (которое будет содержать новый сертификат). это жизнеспособное решение?
Должен ли я обрабатывать сертификаты таким образом ?! или, может быть, мне просто использовать корневое хранилище ОС и убедиться, что оно каким-то образом обновлено? (в данном случае … как?… единственный способ — выпустить обновление устройства firmare, я полагаю)
Комментарии:
1. Какие клиенты и серверы SSL используются? Ответ на этот вопрос может ограничить вашу гибкость. Сертификаты, самозаверяющие или иные, должны быть предоставлены, так на что похож процесс предоставления? Используете ли вы двустороннюю взаимную SSL-аутентификацию? Каким бы ни был ответ, если устройства не будут обновлены, после обнаружения уязвимостей эти устройства станут уязвимыми.
Ответ №1:
Сертификаты используются для аутентификации и шифрования. См. https://www.ssl.com/faqs/what-is-a-certificate-authority /
Если вы хотите убедиться, что данные, которые вы получаете, поступают с аутентифицированных устройств, тогда вы будете использовать сертификаты. Вы можете использовать сертификаты для шифрования каждого запроса. Но это потребует больших ресурсов. Или вы используете сертификаты для аутентификации и возвращаете токен JWT для дальнейшего запроса. (Так работает учетная запись службы в облаке.)
Ручное управление сертификатами очень быстро усложнится. Учетная запись службы является распространенным способом аутентификации приложений / устройств. Keycloak — это опция с открытым исходным кодом для поддержки учетных записей служб.
Вы должны хранить обновление устройства отдельно от аутентификации. Обновление устройства может произойти или не произойти на аутентифицированном устройстве. И ожидание истечения срока действия сертификата для обновления устройства звучит странно.
Комментарии:
1. В настоящее время я использую сертификаты для проверки подлинности каждого запроса