Сколько раз сертификаты экземпляров приложения должны быть проверены в OPC UA?
Требует разъяснения о количестве проверок экземпляров приложений (и клиент-сервер), начиная с открытия SecureChannel и заканчивая активацией сеанса в архитектуре безопасности OPC UA?
- Из книги "Унифицированная архитектура OPC", написанной Махнке, Лейтнером, Даммом, показано следующее изображение, где сертификаты экземпляров приложения проверены. (Рисунок 7.4 на странице № 214)
- Согласно спецификации Part 4 Services, раздел 6.1.5 - рисунок 22 показывает, что сертификаты экземпляра приложения снова проверяются при создании сеанса.
Почему эта разница между стандартом и концепцией, описанной в книге? Действительно ли необходимо повторно проверять сертификат экземпляра приложения во время создания сеанса? Я замечаю, что примеры Milo проверяются только один раз при открытии SecureChannel, если я не ошибаюсь.
2 ответа
Я думаю, что диаграмма неверна или устарела.
Валидация и проверка доверия должны происходить, когда клиент / сервер впервые видит сертификат, когда устанавливаются каналы.
В сервисе Create/Activate Session владение сертификатами подтверждается с помощью сигнатур, которыми обмениваются в запросах / ответах.
edit: чтобы суммировать комментарии, проверка должна происходить во время создания сеанса, только если используемый транспортный уровень не проверяет его там, но в случае Майло это всегда двоичный транспорт TCP, поэтому проверка во время создания сеанса избыточна.
Спецификация (OPC UA Spec. Part 4. 6.1 Security (v.1.03)) действительно определяет две фазы, которые принимают участие в проверке сертификата:
- Создание SecureChannel и
- Создание сеанса.
При создании SecureChannel сертификаты проверяются на подпись ЦС, дату выпуска и срок действия и списки отзыва. При создании сеанса можно выполнить полную проверку.
Основным отличием является то, что ApplicationDescription доступны на этапе CreateSession, и поэтому поле ApplicationUri сертификата может быть проверено только на этом этапе.