Понимание безопасности OPC-UA с использованием Eclipse Milo

Я новичок в этом мире OPC-UA и Eclipse Milo. Я не понимаю, как здесь работает безопасность, Обсуждая пример клиента, предоставленный eclipse-milo

Я вижу несколько свойств безопасности, используемых для подключения к серверу OPCUA:

SecurityPolicy, MessageSecurityMode, clientCertificate, clientKeyPair, setIdentityProvider,

  1. Как указанные выше конфигурации связаны друг с другом?

Я пытался запустить client-examples -> BrowseNodeExample. В этом примере выполняется внутренний сервер ExampleServer. ExampleServer настроен для работы с Anonymous и UsernamePassword Provider. Он также обязан принимать SecurityPolicy.None, Basic128Rsa15, Basic256, Basic256Sha256 с MessageSecurityMode как SignandEncrypt, за исключением SecurityPolicy.None, где MessageSecurityMode тоже None.

  1. Проблема в том, что с AnonymousProvider я мог подключиться к серверу со всеми парами SecurtiyPolicy и MessageSecurityMode, упомянутыми выше (без предоставленных клиентских сертификатов). Но я не смог сделать то же самое для UsernameProvider, для UsernameProvider только пара SecurityPolicy MessageSecurityMode с None работает успешно. Все остальные пары генерируют исключительную ситуацию с ошибкой проверки безопасности (если предоставлен сертификат), в противном случае доступ пользователя запрещен (если сертификат клиента не предоставлен). Как заставить это работать?

Наконец, было бы очень хорошо, если бы кто-нибудь мог указать мне на правильную пользовательскую документацию для Eclipse Milo. Поскольку я не видел никакой документации, кроме примеров кодов, и они не документированы.


person aalbatross    schedule 25.09.2017    source источник


Ответы (1)


SecurityPolicy и MessageSecurityMode идут рука об руку. Политика безопасности определяет набор алгоритмов, которые будут использоваться для подписей и шифрования, если таковые имеются. Режим безопасности сообщений определяет, будут ли сообщения подписаны, подписаны и зашифрованы, или ни то, ни другое в случае, если безопасность не используется.

clientCertificate и clientKeyPair необходимо настроить, если вы планируете использовать безопасность. В конце концов, вы не можете использовать шифрование или подписи, если у вас нет сертификата и закрытого ключа.

IdentityProvider используется для предоставления учетных данных, идентифицирующих пользователя сеанса, если таковые имеются.

Когда ExampleServer запускается, он регистрирует, что использует временный каталог безопасности, примерно так: security temp dir: /var/folders/z5/n2r_tpbn5wd_2kf6jh5kn9_40000gn/T/security. Когда клиент подключается с использованием любого типа безопасности, его сертификат изначально не пользуется доверием сервера, что приводит к Bad_SecurityChecksFailed ошибкам, которые вы видите. Внутри этого каталога вы найдете папку rejected, в которой хранятся отклоненные клиентские сертификаты. Если вы переместите сертификат (ы) в папку trusted, клиент сможет подключиться с использованием средств безопасности.

person Kevin Herron    schedule 27.09.2017