OPC UAはなぜ「安全に」通信が行えるのかOPC UA最新技術解説(3)(2/3 ページ)

» 2019年08月29日 11時00分 公開

通信スタックに主要なセキュリティ機能は実装済み

 OPC UAのセキュリティモデルは2階層から構成され、共通的な通信部分を対象にするコミュニケーション層と、ユーザーアプリケーションの仕様に依存するアプリケーション層でセキュリティ機能を分担しています。それぞれに異なる接続メカニズムを用意しているのが特徴です。

photo 図1 OPC UAのセキュリティアーキテクチャ(クリックで拡大)出典:日本OPC協議会

 コミュニケーション層では、セキュアチャネルというメカニズムを用いています。このセキュアチャネルによって、アプリケーション証明書を交換する認証処理と、暗号鍵を交換してメッセージの機密性や完全性を確保する暗号化や署名の処理を行います。これらの全てを通信スタック内部のセキュリティ層での処理として規定しています。つまり、コミュニケーション層により、まず安全な情報交換が行うための最低限の枠組みを定義しているということになります。

 アプリケーション層では、このコミュニケーション層のセキュアチャネルを活用し、この上で確立されるセッションで接続を行います。セッションを介して渡されるユーザートークンによる認証や認可のロジックを作り込み、安全にアプリケーションでもデータが活用できるという仕組みです。アプリケーション層では他にも監査証跡のイベント発行などの処理が期待されますが、それらの実装を支援する仕様をOPC UAで規定しており、その一部は通信スタックを利用します。

 つまり、通信スタックがセキュリティ機能の主要部分を提供するので、個々のアプリケーションは与えられた役割を果たす機能のみ実装すれば良いのです。1つのセキュアチャネル上には複数のセッションを確立することが可能です。そして、アプリケーション層が意識しないところでの暗号鍵の定期的な更新や、接続が切れた場合の再接続など、2階層の接続メカニズムの特徴を生かした処理を行うのです。さらにOPC UAは表1に挙げたような、通信スタックで対応可能なセキュア通信をサポートする仕様が規定されており、OPC Foundationが公開している通信スタックではそれらが実装されています。

 初期リリースでのOPC UA仕様はここで紹介したメカニズムを用いたクライアントサーバ形式の通信モデルのみがサポートされていました。次ページでは、その後に機能拡張されたさまざまな通信モデルでのセキュリティ対応について紹介します。

Copyright © ITmedia, Inc. All Rights Reserved.