OPC UAのセキュリティ

OPC UAのセキュリティの概略は、下の図の通りです。OPC UAはSecure Channelを使用することで、OPC UA ServerとClient間で、交換するメッセージのセキュリティを保証します。アプリケーションは、Sessionが確立するときに1回だけアプリケーション認証を受けます。アプリケーション認証は証明書を使用することが一般的です。(図はOPC Foundationの仕様書より抜粋)

OPC UAのセキュリティの定義

実際に、プラスチック成型機の情報モデルのEUROMAP77で、セキュリティはどのように定義されているか見てみましょう。セキュリティの最低要件は下記の通り規定されています。

Security Policy:Basic 256(暗号化のProfile)
Security Mode:sign(メッセージのセキュリティ指定)
ユーザー認証:user name and password(ユーザの認証方法)
アプリケーション認証:自己署名の証明書

EUROMAP77のセキュリティの要件を理解するには、OPC UAのセキュリティの4つのカテゴリーを理解しなければなりません。

Security Policy

Security Policyは暗号の強度を定義します。Security Policyを決定する暗号化のProfileはEmpress iData OPC UA Serverではコンフィグファイル(uaserver.config.xml)内に以下のURLを記述することで定義できます。

http://opcfoundation.org/UA/SecurityPolicy#None
http://opcfoundation.org/UA/SecurityPolicy#Basic128Rsa15
http://opcfoundation.org/UA/SecurityPolicy#Basic256
http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256

Security Mode

Security Modeはメッセージのセキュリティを指定します。Nodeのひとつ、ひとつをAccessRestrictions Attributeで指定することも可能ですし、Server全体をNamespaceMetadataのDefaultAccessRestrictionsで一括で指定することも可能です。OPC UAでは「None」、「Sign」、「SignAndEncrypt」のSecurity Modeの選択が可能です。 Security Modeの「None」は、SecirityProfileがhttp://opcfoundation.org/UA/SecurityPolicy#Noneでのみ使用できます。 「Sign」または「SignAndEncrypt」の選択はCSMS(産業用オートメーションの制御システムを対象としたサイバーセキュリティのマネジメントシステム)に依存し、データの機密性が要求されないアプリケーションの場合は「Sign」で十分です。

ユーザ認証

Clientはユーザー認証のためにUserNameIdentityTokenを使用します。UserNameIdentityTokenは、単純なuser nameとpasswordでユーザーの資格情報をクライアントがセッションサービスを用いサーバーに渡します。 サーバーはこの資格情報を使用しユーザーを認証します。ユーザー認証によりOPC UAアプリケーションはどのユーザーがどのデータにアクセスでき、どの操作を許可するか、またはどのロールを使用するかを決定します。

アプリケーション認証

OPC UAはアプリケーション認証を使用し、ServerとClientが互いに識別できる機能を提供します。証明書の受信者は、証明書を信頼しているかどうかをチェックし、このチェックに基づいて、送信者からの要求または応答メッセージを受け入れるか拒否するかを決定します。OPC UAアプリケーションはセキュアチャネルの確立中に交換される証明書を使用します。

4つのカテゴリーを理解することで、OPC UAのセキュリティは理解できます。