IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

<>
  • 特許-制御システムおよびその制御方法 図1
  • 特許-制御システムおよびその制御方法 図2
  • 特許-制御システムおよびその制御方法 図3
  • 特許-制御システムおよびその制御方法 図4
  • 特許-制御システムおよびその制御方法 図5
  • 特許-制御システムおよびその制御方法 図6
  • 特許-制御システムおよびその制御方法 図7
  • 特許-制御システムおよびその制御方法 図8
  • 特許-制御システムおよびその制御方法 図9
  • 特許-制御システムおよびその制御方法 図10
  • 特許-制御システムおよびその制御方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】制御システムおよびその制御方法
(51)【国際特許分類】
   G06F 21/44 20130101AFI20241008BHJP
   G06F 21/31 20130101ALI20241008BHJP
   G06F 21/62 20130101ALI20241008BHJP
   H04L 9/08 20060101ALI20241008BHJP
【FI】
G06F21/44
G06F21/31
G06F21/62
H04L9/08 B
H04L9/08 E
【請求項の数】 12
(21)【出願番号】P 2021038923
(22)【出願日】2021-03-11
(65)【公開番号】P2022138824
(43)【公開日】2022-09-26
【審査請求日】2024-01-16
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】北村 安宏
(72)【発明者】
【氏名】五十嵐 久則
(72)【発明者】
【氏名】岡村 弘太郎
【審査官】岸野 徹
(56)【参考文献】
【文献】特開2019-096149(JP,A)
【文献】特開2021-012573(JP,A)
【文献】特開2020-166317(JP,A)
【文献】特開2007-156886(JP,A)
【文献】特開2020-136863(JP,A)
【文献】特開2020-120367(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/44
G06F 21/62
G06F 21/31
H04L 9/08
(57)【特許請求の範囲】
【請求項1】
制御ユニットと、
通信ユニットとを備え、
前記制御ユニットと、前記通信ユニットとは着脱可能に構成され、
前記制御ユニットは、
共通鍵を用いて、前記制御ユニットに接続された前記通信ユニットを認証し、
認証の結果、前記通信ユニットが前記共通鍵を有することが確認できたことに基づいて、前記通信ユニットに前記制御ユニット内のデータへのアクセスを許可する、制御システム。
【請求項2】
前記共通鍵を配布する装置をさらに備え、
前記装置は、
前記共通鍵の配布命令を受け付け、
前記共通鍵の配布命令を入力したユーザの認証処理が成功したことに基づいて、前記制御ユニットと前記通信ユニットとに前記共通鍵を送信する、請求項1に記載の制御システム。
【請求項3】
前記制御ユニットは、前記通信ユニットが新しい通信ユニットに交換された場合に、新しい共通鍵を生成して、前記新しい共通鍵を前記新しい通信ユニットに送信し、
前記新しい共通鍵を前記新しい通信ユニットに送信することは、
前記新しい共通鍵の生成命令の入力を受け付けることと、
前記共通鍵の生成命令を入力したユーザの認証処理が成功したことに基づいて、前記新しい通信ユニットに生成した前記新しい共通鍵を送信することとを含む、請求項1または2に記載の制御システム。
【請求項4】
前記制御ユニットは、
バスを介して前記新しい通信ユニットに接続されており、
前記バスを介して、前記新しい通信ユニットに前記共通鍵を配布する、請求項3に記載の制御システム。
【請求項5】
前記制御ユニットは、
前記新しい通信ユニットへの交換時に、前記バスを介して、前記通信ユニットの設定を前記通信ユニットから受信し、
前記共通鍵の配布後に、前記バスを介して、前記通信ユニットの設定を前記新しい通信ユニットに送信する、請求項4に記載の制御システム。
【請求項6】
前記通信ユニットは、前記新しい通信ユニットへの交換時に、前記通信ユニットの設定を着脱可能な記憶媒体に保存し、
前記新しい通信ユニットは、前記新しい共通鍵を取得した後に、前記着脱可能な記憶媒体から前記通信ユニットの設定を読み込む、請求項3~5のいずれかに記載の制御システム。
【請求項7】
制御ユニットと、通信ユニットとが着脱可能に構成された制御システムの制御方法であって、
共通鍵を用いて、前記制御ユニットに接続された前記通信ユニットを認証するステップと、
認証の結果、前記通信ユニットが前記共通鍵を有することが確認できたことに基づいて、前記通信ユニットに前記制御ユニット内のデータへのアクセスを許可するステップとを含む、制御方法。
【請求項8】
前記通信ユニットの認証前に、前記共通鍵の配布命令を受け付けるステップと、
前記共通鍵の配布命令を入力したユーザの認証処理が成功したことに基づいて、前記制御ユニットと前記通信ユニットとに前記共通鍵を送信するステップとをさらに含む、請求項7に記載の制御方法。
【請求項9】
前記通信ユニットの認証後に、前記通信ユニットが新しい通信ユニットに交換されたことに基づいて、新しい共通鍵を生成して、前記新しい共通鍵を前記新しい通信ユニットに送信するステップをさらに含み、
前記新しい共通鍵を前記新しい通信ユニットに送信するステップは、
前記新しい共通鍵の生成命令の入力を受け付けるステップと、
前記共通鍵の生成命令を入力したユーザの認証処理が成功したことに基づいて、前記新しい通信ユニットに生成した前記新しい共通鍵を送信するステップとを含む、請求項7または8に記載の制御方法。
【請求項10】
前記新しい共通鍵は、バスを介して、前記制御ユニットから前記新しい通信ユニットに配布される、請求項9に記載の制御方法。
【請求項11】
前記新しい通信ユニットへの交換時に、前記バスを介して、前記通信ユニットの設定を前記通信ユニットから前記制御ユニットに送信するステップと、
前記共通鍵の配布後に、前記バスを介して、前記通信ユニットの設定を前記制御ユニットから前記新しい通信ユニットに送信するステップとをさらに含む、請求項10に記載の制御方法。
【請求項12】
前記新しい通信ユニットへの交換時に、前記通信ユニットの設定を着脱可能な記憶媒体に保存するステップと、
前記新しい共通鍵を取得した後に、前記通信ユニットの設定を前記着脱可能な記憶媒体から前記新しい通信ユニットに読み込むステップとをさらに含む、請求項9~11のいずれかに記載の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御システムに関し、より特定的には、制御システムに含まれる機器の認証に関する。
【背景技術】
【0002】
FA(Factory Automation)の制御装置をインターネットまたはクラウド端末に接続する環境が提供されている。この環境では、工場外の端末またはネットワークに制御装置を接続することに関して、ノウハウ流出を含む各種インシデントへの対処を含むセキュリティ対策が実施されている。
【0003】
制御システムのセキュリティに関し、例えば、特開2019-096149号公報(特許文献1)は、「制御対象に応じて作成されたプログラムを実行するプログラム実行部と、制御装置に対する外部からのアクセスにおいてセキュリティ事象が発生したか否かを判断する検知部と、セキュリティ事象が発生したと検知されると、当該発生したセキュリティ事象に応じた通知先へ通知する通知部とを含む。セキュリティ事象は、予め定められた規則に適合しない事象を含む」制御装置を開示している([要約]参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2019-096149号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示された技術によると、制御装置に接続される機器の信頼性を検証できない。したがって、制御装置に接続される機器の信頼性を検証するための技術が必要とされている。
【0006】
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、制御装置に接続される機器の信頼性を検証するための技術を提供することにある。
【課題を解決するための手段】
【0007】
本開示の一例に従えば、制御システムが提供される。制御システムは、制御ユニットと、通信ユニットとを備える。制御ユニットと、通信ユニットとは着脱可能に構成される。制御ユニットは、共通鍵を用いて、制御ユニットに接続された通信ユニットを認証し、認証の結果、通信ユニットが共通鍵を有することが確認できたことに基づいて、通信ユニットに制御ユニット内のデータへのアクセスを許可する。
【0008】
この開示によれば、制御システムは、通信ユニットの信頼性の検証を完了した状態で、通信ユニットに制御ユニット内のデータへのアクセスを許可することができる。
【0009】
上記の開示において、制御システムは、共通鍵を配布する装置をさらに備える。装置は、共通鍵の配布命令を受け付け、共通鍵の配布命令を入力したユーザの認証処理が成功したことに基づいて、制御ユニットと通信ユニットとに共通鍵を送信する。
【0010】
この開示によれば、制御システムは、装置において共通鍵を生成して、当該共通鍵を制御ユニットおよび通信ユニットに配布し得る。
【0011】
上記の開示において、制御ユニットは、通信ユニットが新しい通信ユニットに交換された場合に、新しい共通鍵を生成して、新しい共通鍵を新しい通信ユニットに送信する。新しい共通鍵を新しい通信ユニットに送信することは、新しい共通鍵の生成命令の入力を受け付けることと、共通鍵の生成命令を入力したユーザの認証処理が成功したことに基づいて、通信ユニットに生成した新しい共通鍵を送信することとを含む。
【0012】
この開示によれば、制御システムは、通信ユニットが交換されたことに基づいて、制御ユニットで新しい共通鍵を生成し、当該共通鍵を通信ユニットに送信し得る。
【0013】
上記の開示において、制御ユニットは、バスを介して新しい通信ユニットに接続されており、バスを介して、新しい通信ユニットに共通鍵を配布する。
【0014】
この開示によれば、制御ユニットは、安全性の高いバスを介して、新しい通信ユニットに共通鍵を配布し得る。
【0015】
上記の開示において、制御ユニットは、新しい通信ユニットへの交換時に、バスを介して、通信ユニットの設定を通信ユニットから受信し、共通鍵の配布後に、バスを介して、通信ユニットの設定を新しい通信ユニットに送信する。
【0016】
この開示によれば、制御ユニットは、新しい通信ユニットに、交換前の通信ユニットの設定を引き継ぐことができる。
【0017】
上記の開示において、通信ユニットは、新しい通信ユニットへの交換時に、通信ユニットの設定を着脱可能な記憶媒体に保存する。新しい通信ユニットは、新しい共通鍵を取得した後に、着脱可能な記憶媒体から通信ユニットの設定を読み込む。
【0018】
この開示によれば、新しい通信ユニットは、共通鍵の取得後に、交換前の通信ユニットの設定を引き継ぐことができる。
【0019】
本開示の別の例に従えば、制御システムの制御方法が提供される。制御方法は、共通鍵を用いて、制御ユニットに接続された通信ユニットを認証するステップと、認証の結果、通信ユニットが共通鍵を有することが確認できたことに基づいて、通信ユニットに制御ユニット内のデータへのアクセスを許可するステップとを含む。
【0020】
この開示によれば、通信ユニットの信頼性の検証を完了した状態で、通信ユニットに制御ユニット内のデータへのアクセスを許可することができる。
【0021】
上記の開示において、制御方法は、共通鍵の配布命令を受け付けるステップと、共通鍵の配布命令を入力したユーザの認証処理が成功したことに基づいて、制御ユニットと通信ユニットとに共通鍵を送信するステップとをさらに含む。
【0022】
この開示によれば、共通鍵を生成して、当該共通鍵を制御ユニットおよび通信ユニットに配布し得る。
【0023】
上記の開示において、制御方法は、通信ユニットが新しい通信ユニットに交換されたことに基づいて、新しい共通鍵を生成して、新しい共通鍵を新しい通信ユニットに送信するステップをさらに含む。新しい共通鍵を新しい通信ユニットに送信するステップは、新しい共通鍵の生成命令の入力を受け付けるステップと、共通鍵の生成命令を入力したユーザの認証処理が成功したことに基づいて、通信ユニットに生成した新しい共通鍵を送信するステップとを含む。
【0024】
この開示によれば、通信ユニットが交換されたことに基づいて、新しい共通鍵を生成し、当該共通鍵を通信ユニットに送信し得る。
【0025】
上記の開示において、新しい共通鍵は、バスを介して、制御ユニットから新しい通信ユニットに配布される。
【0026】
この開示によれば、安全性の高いバスを介して、新しい通信ユニットに共通鍵を配布し得る。
【0027】
上記の開示において、制御方法は、新しい通信ユニットへの交換時に、バスを介して、通信ユニットの設定を通信ユニットから制御ユニットに送信するステップと、共通鍵の配布後に、バスを介して、通信ユニットの設定を制御ユニットから新しい通信ユニットに送信するステップとをさらに含む。
【0028】
この開示によれば、新しい通信ユニットに、交換前の通信ユニットの設定を引き継ぐことができる。
【0029】
上記の開示において、制御方法は、新しい通信ユニットへの交換時に、通信ユニットの設定を着脱可能な記憶媒体に保存するステップと、新しい共通鍵を取得した後に、通信ユニットの設定を着脱可能な記憶媒体から新しい通信ユニットに読み込むステップとをさらに含む。
【0030】
この開示によれば、新しい通信ユニットは、共通鍵の取得後に、交換前の通信ユニットの設定を引き継ぐことができる。
【発明の効果】
【0031】
ある実施の形態に従うと、制御装置に接続される機器の信頼性を検証することが可能である。
【0032】
この開示内容の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本開示に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0033】
図1】ある実施の形態に従う制御システム1を備えるネットワークシステム100の全体構成を模式的に示す図である。
図2】セキュリティユニット210の交換時に起こり得る問題の一例を示す図である。
図3】制御ユニット200によるセキュリティユニット210の認証方法の一例を示す図である。
図4】ある実施の形態に従う制御システム1の構成例を示す外観図である。
図5】ある実施の形態に従う制御システム1を構成する制御ユニット200のハードウェア構成例を示す模式図である。
図6】ある実施の形態に従う制御システム1を構成するセキュリティユニット210のハードウェア構成例を示す模式図である。
図7】ある実施の形態に従う制御システム1に接続され得るサポート装置110のハードウェア構成例を示す模式図である。
図8】セットアップ時における共通鍵の配布手順および当該共通鍵による認証の手順の一例を示す図である。
図9】セキュリティユニット210の交換時における共通鍵の配布手順および当該共通鍵による認証の手順の一例を示す図である。
図10】セットアップ時における共通鍵の配布手順および当該共通鍵による認証の手順の一例を示すフローチャートである。
図11】セキュリティユニット210の交換時における共通鍵の配布手順および当該共通鍵による認証の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0034】
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<A.適用例>
まず、図1図3を参照して、本実施の形態に従う技術が適用される場面について説明する。これ以降の説明における制御システム1のようなシステムは、1または複数の装置から構成されてもよい。また、当該システムは、装置の一部または他の装置と連携するものであってもよい。
【0035】
図1は、本実施の形態に従う制御システム1を備えるネットワークシステム100の全体構成を模式的に示す図である。
【0036】
ネットワークシステム100は、構成として、制御システム1、サーバ装置120、表示装置140およびゲートウェイ(GW: Gateway)130を備える。これらの構成は、ネットワーク150を介して、相互に接続され得る。また、ネットワーク150は、ゲートウェイ130を介して、外部ネットワークであるインターネットに接続されている。ある局面において、ネットワーク150は、一般的なネットワークプロトコルであるイーサネット(登録商標)またはEtherNet/IP(登録商標)により実現されてもよい。
【0037】
制御システム1は、フィールドネットワーク160を介して、フィールドの設備および装置、ならびに、それらに配置されている各種デバイス(センサまたはアクチュエータ等)を含む制御対象170に接続されている。
【0038】
フィールドネットワーク160は、データの到達時間が保証される、定周期通信を行うバスまたはネットワークを採用することが好ましい。ある局面において、フィールドネットワーク160は、このような定周期通信を行うバスまたはネットワークとして、EtherCAT(登録商標)により実現されてもよい。
【0039】
サポート装置110は、ユーザが制御システム1を運用するのを支援する支援ツールを提供する。また、サポート装置110は、制御システム1にプログラムをインストールする機能を備えていてもよい。ある局面において、サポート装置110は、パーソナルコンピュータ、タブレット、スマートフォン、またはその他の任意の情報処理装置であってもよい。
【0040】
一例として、サポート装置110は、USB(Universal Serial Bus)により、着脱可能に制御システム1に接続される。このUSB通信には、通信のセキュリティを確保するために、ユーザ認証を行なうための通信プロトコルが採用され得る。他の例として、サポート装置110は、ネットワーク150を介して制御システム1と通信してもよい。
【0041】
サーバ装置120は、一例として、データベースシステム、製造実行システム(MES:Manufacturing Execution System)等である。製造実行システムは、制御対象の製造装置または設備からの情報を取得して、生産全体を監視および管理し、例えば、オーダ情報、品質情報、出荷情報その他の生産に関する情報等を扱うこともできる。また、他の例として、サーバ装置120は、情報系サービス(制御対象から各種情報を取得して、マクロ的またはミクロ的な分析等を行う処理)を提供する装置であってもよい。
【0042】
表示装置140は、ユーザからの操作を受けて、制御システム1に対してユーザ操作に応じたコマンド等を出力するとともに、制御システム1での演算結果等をグラフィカルに表示する。ある局面において、表示装置140は、液晶ディスプレイまたは有機EL(Electro-Luminescence)ディスプレイ等の任意の出力装置を備えていてもよい。また、表示装置140は、タッチパネルまたはスイッチ等の任意の入力装置を備えていてもよい。
【0043】
ゲートウェイ130は、ネットワーク150と外部ネットワーク(インターネット)との間のプロトコル変換と、ファイヤウォールとしての処理とを実行する。
【0044】
図1に示す構成において、制御システム1は、一例として、制御ユニット200と、セキュリティユニット210とを含み得る(図4参照)。制御ユニット200は、PLC(プログラムブルコントローラ)等であってもよく、制御プログラムを実行することで、制御対象を制御する。また、セキュリティユニット210は、制御システム1の、より特定的には制御ユニット200のセキュリティに関する設定を格納する。このセキュリティの設定には、制御プログラムの意図しない複製、すなわち不正な複製を防止するための設定が含まれる。セキュリティユニット210は、制御システム1と、他の機器(ネットワーク150上の機器、またはインターネット上の機器)との通信を監視することで、制御ユニット200内の情報資産等を保護し得る。セキュリティユニット210は、制御システム1にセキュアな通信機能を提供するので、通信ユニットであるとも言える。
【0045】
セキュリティユニット210は、制御ユニット200と着脱可能に構成されている。そのため、ユーザは、セキュリティユニット210が故障した場合に、故障したセキュリティユニット210を制御ユニット200から分離して、新しいセキュリティユニット210を制御ユニット200に接続することができる。しかしながら、悪意ある人物がセキュリティユニット210を制御ユニット200に接続した場合、制御ユニット200内の情報資産が盗まれる可能性がある。そこで、本実施の形態に従う制御ユニット200は、共通鍵を用いて、セキュリティユニット210を認証する。制御ユニット200は、当該共通鍵を用いた認証により、セキュリティユニット210自体の正当性を検証してから、セキュリティユニット210との通信を開始する。こうすることで、本実施の形態に従う制御ユニット200は、悪意ある人物がセキュリティユニット210を制御ユニット200に接続した場合でも制御ユニット200内の情報資産を保護することができる。
【0046】
図2は、セキュリティユニット210の交換時に起こり得る問題の一例を示す図である。図2に示す例では、セキュリティユニット210Aが、セキュリティユニット210Bに交換されている。セキュリティユニット210Aは、正規のセキュリティユニットであり、正しいACL(Access Control List)テーブルを格納する。セキュリティユニット210Bは、悪意ある人物が用意した非正規のセキュリティユニットであり、空のACLテーブルを格納する。
【0047】
非正規のセキュリティユニット210Bが制御ユニット200に接続された場合、非正規のセキュリティユニット210BのACLテーブルは空であるため、セキュリティユニット210Bは、ネットワーク150から制御ユニット200へのアクセスを全て許可する。そのため、悪意ある人物は、ネットワーク150を介して、制御ユニット200内の情報資産250に自由にアクセスすることができるようになる。このような情報資産250の漏洩を防止するために、制御ユニット200は、データの送受信の開始前に、制御ユニット200に接続されるセキュリティユニット210を認証することが望ましい。
【0048】
図3は、制御ユニット200によるセキュリティユニット210の認証方法の一例を示す図である。本実施の形態に従う制御ユニット200は、共通鍵を用いて、セキュリティユニット210を認証する。共通鍵認証においては、共通鍵の配布方法が重要になる。共通鍵の配布は、主に、制御システム1のセットアップ時、およびセキュリティユニット210の交換時の2つのタイミングで実行される。
【0049】
まず、第1のタイミング(制御システム1のセットアップ時)における、共通鍵の配布手順について説明する。制御システム1のセットアップ時、ユーザは、一例として、サポート装置110を用いて、制御ユニット200と、セキュリティユニット210とに共通鍵390を配布する。サポート装置110は、パスワード認証または生態認証等の任意の認証手段により、サポート装置110を操作するユーザが共通鍵390を配布する権限を有するか否かを判断する。サポート装置110は、サポート装置110を操作するユーザが共通鍵390を配布する権限を有すると判断した場合にのみ、共通鍵390の配布処理を実行する。ある局面において、ユーザの認証処理は、共通鍵390の配布要求を受け付けた後であってもよい。他の局面において、ユーザの認証処理は、共通鍵390の配布要求を受け付ける前であってもよい。
【0050】
サポート装置110は、任意の通信手段により、制御ユニット200とセキュリティユニット210とに共通鍵390を配布し得る。ある局面において、サポート装置110は、USBインターフェイス等を介して、制御ユニット200とセキュリティユニット210とに共通鍵390を配布してもよい。他の局面において、サポート装置110は、ネットワーク150を介して、制御ユニット200とセキュリティユニット210とに共通鍵390を配布してもよい。また、サポート装置110は、ネットワーク150を介して、複数の制御システム1(複数の制御ユニット200およびセキュリティユニット210)の各々に共通鍵を配布してもよい。なお、各制御システム1に配布される共通鍵は各々異なる共通鍵である。
【0051】
制御システム1の起動後、制御ユニット200およびセキュリティユニット210は、配布された共通鍵390を用いて、相互認証を実行する。制御ユニット200は、認証が成功したことに基づいて、セキュリティユニット210との通信を開始する。ある局面において、制御ユニット200は、通信を行う毎に、共通鍵390を用いた認証処理を実行してもよい。他の局面において、制御ユニット200は、セキュリティユニット210の着脱を検知した場合に、共通鍵390を用いた認証処理を実行してもよい。
【0052】
上記のように、制御システム1のセットアップ時に、共通鍵390を生成する権限を持つユーザが、サポート装置110を用いて、制御ユニット200およびセキュリティユニット210に共通鍵390を配布する。その結果、制御ユニット200は、信頼性を検証されたセキュリティユニット210と接続された状態で稼働を開始することができる。
【0053】
次に、第2のタイミング(セキュリティユニット210の交換時)における、共通鍵の配布手順について説明する。工場等では、制御システム1に含まれる各ユニットの故障時に、ツールを用いずに容易に故障したユニットを交換できることが求められる。本実施の形態に従う制御ユニット200は、制御ユニット200に接続されるユニットの交換時の容易さと、セキュリティとを両立するために、以下に説明する共通鍵生成機能を有する。
【0054】
セキュリティユニット210が制御ユニット200から分離され、新しいセキュリティユニット210が制御ユニット200に接続されたとする。この場合、ユーザは、一例として、表示装置140のタッチパネル等に、共通鍵生成命令を入力し得る。表示装置140は、共通鍵生成命令を制御ユニット200に送信する。ある局面において、ユーザは、表示装置140の代わりに、サポート装置110等の任意の情報処理装置を使用してもよい。
【0055】
制御ユニット200は、パスワード認証または生態認証等の任意の認証手段により、表示装置140を操作するユーザが共通鍵390を配布する権限を有するか否かを判断する。一例として、ユーザは、表示装置140等からパスワードまたは生体情報等を入力し得る。制御ユニット200は、表示装置140を操作するユーザが共通鍵390を配布する権限を有すると判断した場合にのみ(ユーザの権限を表す変数370=TRUEの場合等)、共通鍵生成プログラム380を用いて、新しい共通鍵390を生成する。なお、共通鍵生成プログラム380は、ハードウェアとして実現されてもよい。
【0056】
ある局面において、ユーザの認証処理は、共通鍵生成命令を受け付けた後に行なわれてもよい。他の局面において、ユーザの認証処理は、共通鍵生成命令を受け付ける前に行なわれてもよい。制御ユニット200は、新しい共通鍵390を生成した後に、バスを介して、当該新しい共通鍵390をセキュリティユニット210に送信する。制御ユニット200は、配布した新しい共通鍵390を用いて、新しいセキュリティユニット210を認証する。
【0057】
上記のように、第1のタイミングおよび第2のタイミングのいずれにおいても、共通鍵390を配布する権限を持つユーザが、制御ユニット200およびセキュリティユニット210の両方に共通鍵390を配布する。これにより、制御ユニット200およびセキュリティユニット210は、共通鍵390による認証の完了後にのみデータを送受信できるようになる。言い換えれば、セキュリティユニット210は、セキュリティユニット210が共通鍵390を持つことが確認できた後にのみ、制御ユニット200内のデータ(情報資産250)にアクセスできる。その結果、制御ユニット200は、情報資産250の情報漏洩を防止し得る。
【0058】
<B.ハードウェア構成>
次に、図4図7を参照して、本実施の形態に従う主な装置またはシステム(制御システム1、制御ユニット200、セキュリティユニット210、および、サポート装置110)のハードウェア構成について説明する。
【0059】
(a.制御システム1の外観)
図4は、本実施の形態に従う制御システム1の構成例を示す外観図である。制御システム1は、制御ユニット200、セキュリティユニット210、セーフティユニット220、1または複数の機能ユニット230、および電源ユニット240を含む。
【0060】
制御ユニット200とセキュリティユニット210とは、PCI Expressのバス等を介して相互に接続される。また、制御ユニット200、セーフティユニット220、1または複数の機能ユニット230、および電源ユニット240は、内部バスを介して相互に接続されている。
【0061】
制御ユニット200は、制御プログラムを実行することで、制御対象を制御する。制御プログラムは、制御対象である設備および装置、ならびに、それらに配置されている各種デバイス(センサまたはアクチュエータ等)との間で信号を遣り取りするIOリフレッシュ、制御演算処理等のプログラムを含む。具体的には、IOリフレッシュは、制御ユニット200において算出される指令値を制御対象へ出力、あるいは、制御対象からの入力値を収集する。制御演算処理は、例えば、IOリフレッシュにより収集した入力値に基づいた指令値または制御量を算出する。このような機能を備える制御プログラムは、制御対象の要求仕様に従ってユーザまたは開発会社が作成するプログラムを含む「ユーザプログラム」の一例でもある。
【0062】
セキュリティユニット210は、制御システム1の、より特定的には制御ユニット200のセキュリティを設定する。このセキュリティの設定(ACLテーブル)は、制御プログラムの意図しない複製、すなわち不正な複製を防止するための設定を含む。
【0063】
セーフティユニット220は、制御ユニット200とは独立して、制御対象に関するセーフティ機能を実現するための制御演算を実行する。機能ユニット230は、制御システム1による様々な制御対象に対する制御を実現するための各種機能を提供する。
【0064】
機能ユニット230は、典型的には、I/Oユニット、セーフティI/Oユニット、通信ユニット、モーションコントローラユニット、温度調整ユニット、パルスカウンタユニット等を包含し得る。I/Oユニットとしては、例えば、デジタル入力(DI)ユニット、デジタル出力(DO)ユニット、アナログ出力(AI)ユニット、アナログ出力(AO)ユニット、パルスキャッチ入力ユニット、および、複数の種類を混合させた複合ユニット等が挙げられる。セーフティI/Oユニットは、セーフティ制御に係るI/O処理を担当する。電源ユニット240は、制御システム1を構成する各ユニットに対して、所定電圧の電源を供給する。
【0065】
(b.制御ユニット200のハードウェア構成)
次に、本実施の形態に従う制御システム1が含む制御ユニット200のハードウェア構成例について説明する。
【0066】
図5は、本実施の形態に従う制御システム1を構成する制御ユニット200のハードウェア構成例を示す模式図である。図5を参照して、制御ユニット200は、主たるコンポーネントとして、CPU(Central Processing Unit)またはGPU(Graphical Processing Unit)等のプロセッサ501、チップセット502、二次記憶装置503、主記憶装置504、通信コントローラ505、USBコントローラ514、メモリカードインターフェイス513、ネットワークコントローラ510,511,512、内部バスコントローラ509、インジケータ506、およびスイッチインターフェイス507を含む。
【0067】
プロセッサ501は、二次記憶装置503に格納された各種プログラムを読み出して、当該各種プログラムを主記憶装置504に展開して実行することで、制御演算およびサービス処理を含む各種の処理を実現する。チップセット502は、プロセッサ501と各コンポーネントとの間のデータの遣り取りを仲介することで、制御ユニット200全体としての処理を実現する。
【0068】
主記憶装置504は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)等の揮発性記憶装置を備える。これら揮発性記憶装置の少なくとも一部は、復号済み制御プログラム526を格納するための揮発性記憶領域525を構成する。
【0069】
二次記憶装置503は、典型的には、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)、ROM(Read Only Memory)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)等の不揮発性記憶装置を備える。これら不揮発性記憶装置の少なくとも一部は、暗号化済み制御プログラム524を格納するための不揮発性記憶領域523を構成する。
【0070】
二次記憶装置503は、さらに、OS(Operating System)を含むシステムプログラム520、サービスプログラム521、および、共通鍵生成プログラム380等を格納する。システムプログラム520は、復号済み制御プログラム526およびサービスプログラム521等のユーザプログラムが動作するためのプログラム実行環境を提供する。共通鍵生成プログラム380は、制御ユニット200に接続される機器に配布するための共通鍵を生成する。
【0071】
プロセッサ501は、共通鍵生成命令の入力を受け付けた(または受信した)ことに基づいて、パスワード認証または生態認証等の任意の認証手段により、共通鍵生成命令を入力した(または送信した)ユーザが共通鍵を生成する権限を有するか否かを判断する。プロセッサ501は、共通鍵生成命令を入力した(または送信した)ユーザが共通鍵を生成する権限を有すると判断した場合にのみ、共通鍵生成プログラム380を用いて、新しい共通鍵を生成する。ある局面において、ユーザの認証処理は、共通鍵生成命令を受け付けた後に行なわれてもよい。他の局面において、ユーザの認証処理は、共通鍵生成命令を受け付ける前に行なわれてもよい。
【0072】
プロセッサ501は、生成された共通鍵を二次記憶装置503に格納する。また、プロセッサ501は、バス530を介して、生成された共通鍵をセキュリティユニット210に送信する。さらに、プロセッサ501は、セキュリティユニット210との相互認証時に当該共通鍵を使用する。ある局面において、制御ユニット200は、セキュリティユニット210以外にも、セーフティユニット220、および機能ユニット230等の制御ユニット200に接続される任意の機器に共通鍵を配布してもよい。また、プロセッサ501は、サポート装置110等から共通鍵を受信した場合も、当該受信した共通鍵を二次記憶装置503に格納する。
【0073】
通信コントローラ505は、バス530を介して、セキュリティユニット210とデータを送受信する。通信コントローラ505は、例えば、PCI Express等のバスに対応した通信チップにより実現され得る。
【0074】
インジケータ506は、制御ユニット200の動作状態等を通知するものであり、ユニット表面に配置された1または複数のLED(Light Emitting Diode)等で構成される。スイッチインターフェイス507は、一例として、ディップスイッチ508に接続されており、当該ディップスイッチ508のONまたはOFFの信号をプロセッサ501に出力する。
【0075】
内部バスコントローラ509は、制御システム1を構成するセーフティユニット220と、1または複数の機能ユニット230との間で、内部バスを介してデータを送受信する。この内部バスには、メーカ固有の通信プロトコルを用いてもよいし、いずれかの産業用ネットワークプロトコルと同一あるいは準拠した通信プロトコルを用いてもよい。
【0076】
ネットワークコントローラ510,511,512の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ510,511,512は、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)等の産業用ネットワークプロトコルを採用してもよい。
【0077】
メモリカードインターフェイス513は、SDカード等のメモリカード540を着脱可能に構成されており、メモリカード540に対してユーザプログラムまたは各種設定等のデータを書込み、あるいは、メモリカード540から当該プログラムまたは各種設定等のデータを読出すことが可能になっている。USBコントローラ514は、USB接続を介して、サポート装置110を含む任意の情報処理装置とデータを送受信し得る。ある局面において、制御ユニット200は、メモリカードインターフェイス513以外にも、任意の記憶媒体を接続可能な外部機器インターフェイスを備えていてもよい。
【0078】
図5は、プロセッサ501がプログラムを実行することで必要な機能が提供される構成例を示しているが、これらの提供される機能の一部または全部は、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)等)を用いて実装されてもよい。あるいは、制御ユニット200の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0079】
(c.セキュリティユニット210のハードウェア構成)
次に、本実施の形態に従う制御システム1が含むセキュリティユニット210のハードウェア構成例について説明する。
【0080】
図6は、本実施の形態に従う制御システム1を構成するセキュリティユニット210のハードウェア構成例を示す模式図である。セキュリティユニット210は、主たるコンポーネントとして、CPUまたはGPU等のプロセッサ601、チップセット604、揮発性記憶領域を含む主記憶装置606、不揮発性記憶領域633を含む二次記憶装置608、通信コントローラ620、USBコントローラ612、メモリカードインターフェイス614、ネットワークコントローラ616,618、およびインジケータ624を含む。主記憶装置606および二次記憶装置608は、それぞれ、制御ユニット200の主記憶装置504および二次記憶装置503と同様に構成することができるので、それらの説明を繰返さない。
【0081】
プロセッサ601は、二次記憶装置608に格納された各種プログラムを読み出して、主記憶装置606に展開して実行することで、各種機能を実現する。また、プロセッサ601は、制御ユニット200またはサポート装置110等から受信した共通鍵を二次記憶装置608に格納する。さらに、プロセッサ601は、制御ユニット200との相互認証時に当該共通鍵を使用する。
【0082】
チップセット604は、プロセッサ601と各コンポーネントとの間のデータの遣り取りを仲介することで、セキュリティユニット210全体としての処理を実現する。チップセット604は、基板上に装着された各種のチップを備える。基板上に装着されるチップの1つは、鍵690を格納するセキュアチップ605である。当該鍵690は、暗号化処理プログラム631および復号化処理プログラム632によって使用される。
【0083】
二次記憶装置608には、OSを含むシステムプログラム635に加えて、システムプログラム635が提供する実行環境上で動作する各種の処理プログラムが格納される。各種の処理プログラムは、簡易暗号化済み制御プログラムを復号する簡易復号化処理プログラム630、鍵690で制御プログラムを暗号化する暗号化処理プログラム631、および暗号化済み制御プログラムを復号する復号化処理プログラム632を含む。
【0084】
通信コントローラ620は、制御ユニット200との間のデータの遣り取りを担当する。通信コントローラ620は、制御ユニット200の通信コントローラ505と同様に、例えば、バス530に適用されるPCI Express等に対応する通信チップにより実現され得る。
【0085】
USBコントローラ612は、USB接続を介してサポート装置110を含む任意の情報処理装置との間のデータの遣り取りを担当する。
【0086】
メモリカードインターフェイス614は、SDカード等のメモリカード640を脱着可能に構成されており、メモリカード640に対してプログラムまたは各種設定等のデータを書込み、あるいは、メモリカード640からプログラムまたは各種設定等のデータを読出すことが可能になっている。セキュリティユニット210は、メモリカードインターフェイス614以外にも、任意の記憶媒体を接続可能な外部機器インターフェイスを備えていてもよい。
【0087】
ネットワークコントローラ616,618の各々は、ネットワークを介した任意のデバイスとの間のデータの遣り取りを担当する。ネットワークコントローラ616,618は、イーサネット等の汎用的なネットワークプロトコルを採用してもよい。
【0088】
インジケータ624は、セキュリティユニット210の動作状態等を通知するものであり、ユニット表面に配置された1または複数のLED等で構成される。
【0089】
図6は、プロセッサ601がプログラムを実行することで必要な機能が提供される構成例を示しているが、これらの提供される機能の一部または全部は、専用のハードウェア回路(例えば、ASICまたはFPGA等)を用いて実装されてもよい。あるいは、セキュリティユニット210の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
【0090】
(d.サポート装置110のハードウェア構成)
次に、本実施の形態に従う制御システム1に接続され得るサポート装置110のハードウェア構成例について説明する。
【0091】
図7は、本実施の形態に従う制御システム1に接続され得るサポート装置110のハードウェア構成例を示す模式図である。サポート装置110は、一例として、汎用的なアーキテクチャに従う装置(パーソナルコンコンピュータまたはタブレット等)を用いて実現され得る。
【0092】
サポート装置110は、CPUまたはGPU等のプロセッサ701、主記憶装置702、入力部703、出力部704、二次記憶装置705、光学ドライブ706、および通信インターフェイス707を含む。これらのコンポーネントは、プロセッサバス710を介して接続されている。主記憶装置702および二次記憶装置705は、それぞれ、制御ユニット200の主記憶装置504および二次記憶装置503と同様に構成することができるので、それらの説明を繰返さない。
【0093】
プロセッサ701は、二次記憶装置705に格納されたプログラム(一例として、OS724およびサポートプログラム723)を読出して、主記憶装置702に展開して実行することで、各種処理を実現する。
【0094】
二次記憶装置705は、基本的な機能を実現するためのOS724に加えて、サポート装置110としての機能を提供するためのサポートプログラム723を格納する。サポート装置110(実質的にはプロセッサ701)は、サポートプログラム723を実行することで、サポート装置110が提供する各種サポートツールの機能を実現する。当該サポートツールは、サポート装置110におけるプログラムの開発環境を提供する。
【0095】
また、二次記憶装置705は、サポートツールを用いて作成された制御プログラム720と、共通鍵生成プログラム721とを格納する。制御プログラム720は、制御ユニット200で実行されるプログラムのソースコードであってもよい。また、制御プログラム720は、制御ユニット200で実行されるプログラムの実行ファイルを含んでいてもよい。
【0096】
共通鍵生成プログラム721は、制御ユニット200およびセキュリティユニット210に配布するための共通鍵を生成する。プロセッサ701は、共通鍵生成命令の入力を受け付けたことに基づいて、パスワード認証または生態認証等の任意の認証手段により、共通鍵生成命令を入力したユーザが共通鍵を配布する権限を有するか否かを判断する。プロセッサ701は、共通鍵生成命令を入力したユーザが共通鍵を配布する権限を有すると判断した場合にのみ、共通鍵を生成する。ある局面において、ユーザの認証処理は、共通鍵生成命令を受け付けた後に行なわれてもよい。他の局面において、ユーザの認証処理は、共通鍵生成命令を受け付ける前に行なわれてもよい。プロセッサ701は、任意の通信手段により、制御ユニット200とセキュリティユニット210とに共通鍵を配布し得る。
【0097】
また、ある局面において、二次記憶装置705は、暗号化済み制御プログラムを格納してもよい。さらに、二次記憶装置705は、制御プログラム720の暗号化のための鍵、および暗号化処理を実行する暗号化処理プログラムを格納してもよい。また、二次記憶装置705は、暗号化処理プログラムよりも簡易で高速な暗号化処理を実行する簡易暗号化処理プログラムを格納してもよい。プロセッサ701は、簡易暗号化処理プログラムを実行することで、簡易暗号化済み制御プログラムを生成し得る。
【0098】
入力部703は、キーボードまたはマウス等で構成され、ユーザの操作を受け付ける。ある局面において、入力部703は、さらに、カメラ、マイク、およびその他の生体情報を取得する任意のデバイスを含んでいてもよい。他の局面において、これらのデバイスは、通信インターフェイス707を介してサポート装置110に接続されてもよい。出力部704は、ディスプレイ、各種インジケータ、プリンタ等で構成され、プロセッサ701からの処理結果等を出力する。
【0099】
サポート装置110は、光学ドライブ706を有する。光学ドライブ706は、記録媒体750(例えば、DVD(Digital Versatile Disc)等の光学記録媒体)から、その中に格納されたプログラムを読み取り、当該プログラムを二次記憶装置705等にインストールする。
【0100】
通信インターフェイス707は、USBまたはイーサネット等の任意の通信媒体を介して、制御システム1が備える制御ユニット200またはセキュリティユニット210と、データを送受信し得る。
【0101】
サポート装置110で実行されるサポートプログラム723等は、コンピュータ読取可能な記録媒体750を介してインストールされてもよいが、ネットワーク上のサーバ装置等からダウンロードする形でインストールされてもよい。また、本実施の形態に従うサポート装置110が提供する機能は、OSが提供するモジュールの一部を利用する形で実現され得る。
【0102】
図7は、プロセッサ701がプログラムを実行することで、サポート装置110として必要な機能が提供される構成例を示しているが、これらの提供される機能の一部または全部は、専用のハードウェア回路(例えば、ASICまたはFPGA等)を用いて実装されてもよい。また、本実施の形態では、制御システム1の稼動中に、サポート装置110が、制御システム1から取り外されていてもよい。
【0103】
<C.共通鍵の配布手順および共通鍵による認証手順>
次に、図8図11を参照して、共通鍵の配布手順おおよび当該配布された共通鍵を用いた認証手順の詳細について説明する。
【0104】
図8は、セットアップ時における共通鍵の配布手順および当該共通鍵による認証の手順の一例を示す図である。図8に示す例は、図3を参照して説明した制御システム1のセットアップ時(第1のタイミング)での共通鍵390の配布処理および共通鍵390を用いた認証処理に対応する。
【0105】
第1のステップにおいて、サポート装置110は、ユーザから共通鍵生成命令(または共通鍵配布命令)の実行要求を受け付ける。ある局面において、サポート装置110は、入力部703を介して、共通鍵生成命令の入力を受け付けてもよい。他の局面において、サポート装置110は、通信インターフェイス707を介して、共通鍵生成命令を受信してもよい。
【0106】
第2のステップにおいて、サポート装置110は、パスワード認証または生態認証等の任意の認証手段により、共通鍵生成命令を入力したユーザが共通鍵390を配布する権限を有するか否かを判断する。ある局面において、当該認証処理は、共通鍵生成命令の実行要求を受け付ける前に実行されてもよいし、共通鍵生成命令の実行要求を受け付けた後に実行されてもよい。サポート装置110は、認証処理において、入力部703を介して、パスワードまたは生体情報等の入力を受け付けてもよい。
【0107】
第3のステップにおいて、サポート装置110は、認証処理が成功したことに基づいて、共通鍵生成プログラム721を用いて、共通鍵390を生成する。ある局面において、セットアップ時に多数の機器に共通鍵390をインストールする必要がある場合、サポート装置110は、複数の共通鍵390を生成してもよい。例えば、サポート装置110は、制御システム1A(制御ユニット200Aおよびセキュリティユニット210A)用の共通鍵390Aと、制御システム1B(制御ユニット200Bおよびセキュリティユニット210B)用の共通鍵390Bとを生成してもよい。
【0108】
第4のステップにおいて、サポート装置110は、制御ユニット200およびセキュリティユニット210に生成した共通鍵390を配布する。ある局面において、セットアップ時に多数の機器に共通鍵390をインストールする必要がある場合、サポート装置110は、ネットワーク150を介して、各機器に共通鍵390を一斉配布してもよい。他の局面において、サポート装置110は、セキュリティユニット210以外にも、セーフティユニット220および機能ユニット230等の任意の機器に共通鍵390を配布してもよい。この場合、制御ユニット200は、共通鍵390を用いて、セーフティユニット220および機能ユニット230等の任意の機器とも相互認証を実行し得る。なお、制御ユニット200は、個別の共通鍵を用いて、各ユニットと相互認証を実行し得る。
【0109】
第5のステップにおいて、制御ユニット200は、ダウンロードした(配布された)共通鍵390を二次記憶装置503に格納する。セキュリティユニット210は、ダウンロードした(配布された)共通鍵390を二次記憶装置608に格納する。
【0110】
第6のステップにおいて、制御ユニット200およびセキュリティユニット210は、共通鍵390を用いて、相互に認証する。制御ユニット200は、相互認証に成功したことに基づいて、セキュリティユニット210が制御ユニット200内の情報資産にアクセスすることを許可する。
【0111】
上記のように、制御システム1のセットアップ時に、共通鍵390を生成する権限を持つユーザが、サポート装置110を用いて、制御ユニット200およびセキュリティユニット210に共通鍵390を配布する。その結果、制御ユニット200は、信頼性を検証されたセキュリティユニット210と接続された状態で稼働を開始することができる。
【0112】
図9は、セキュリティユニット210の交換時における共通鍵の配布手順および当該共通鍵による認証の手順の一例を示す図である。図9に示す例は、図3を参照して説明したセキュリティユニット210の交換時(第2のタイミング)での共通鍵の配布処理および共通鍵を用いた認証処理に対応する。図9に示す例では、故障等の原因により、セキュリティユニット210Aは、セキュリティユニット210Bに交換される。
【0113】
第1のステップにおいて、セキュリティユニット210Aは、セキュリティユニット210Aの設定のバックアップ処理を実行する。ある局面において、セキュリティユニット210Aは、制御ユニット200、サポート装置110または表示装置140等からバックアップ処理の要求を受け付けたことに基づいて、バックアップ処理を実行してもよい。他の局面において、セキュリティユニット210Aは、筐体に備え付けられたスイッチ等が押されたことに基づいて、バックアップ処理を実行してもよい。
【0114】
なお、バックアップ処理の一例として、セキュリティユニット210Aは、バス530を介して、セキュリティユニット210Aの設定を制御ユニット200に送信してもよい。バックアップ処理の他の例として、セキュリティユニット210Aは、メモリカードインターフェイス614を介して、セキュリティユニット210Aの設定をメモリカード640に保存してもよい。ある局面において、セキュリティユニット210Aは、SDカードまたはUSBメモリ等の任意の記憶媒体にセキュリティユニット210Aの設定を保存してもよい。
【0115】
第2のステップにおいて、ユーザは、セキュリティユニット210Aを制御ユニット200から取り外す。次に、ユーザは、セキュリティユニット210Bを制御ユニット200に接続する。この時点では、セキュリティユニット210Bは、共通鍵390を有していない。そのため、制御ユニット200は、セキュリティユニット210Bによる制御ユニット200内の情報資産へのアクセスを許可しない。
【0116】
第3のステップにおいて、ユーザは、表示装置140またはサポート装置110等の任意の情報処理装置を介して、新しい共通鍵990を生成するための共通鍵生成命令を制御ユニット200に送信する。
【0117】
第4のステップにおいて、制御ユニット200は、パスワード認証または生態認証等の任意の認証手段により、共通鍵生成命令を入力したユーザが新しい共通鍵990を配布する権限を有するか否かを判断する。ある局面において、当該認証処理は、共通鍵生成命令の実行要求を受け付ける前に実行されてもよいし、共通鍵生成命令の実行要求を受け付けた後に実行されてもよい。また、他の局面において、制御ユニット200は、認証処理において、表示装置140またはサポート装置110等の任意の情報処理装置を介して、パスワードまたは生体情報等の入力を受け付けてもよい。
【0118】
第5のステップにおいて、制御ユニット200は、認証処理が成功したことに基づいて、共通鍵生成プログラム380を用いて、新しい共通鍵990を生成する。
【0119】
第6のステップにおいて、制御ユニット200は、新しい共通鍵990を二次記憶装置503に格納する。また、制御ユニット200は、バス530を介して、新しい共通鍵990をセキュリティユニット210Bに送信する。
【0120】
第7のステップにおいて、制御ユニット200およびセキュリティユニット210は、共通鍵390を用いて、相互に認証する。制御ユニット200は、相互認証に成功したことに基づいて、セキュリティユニット210が制御ユニット200内の情報資産にアクセスすることを許可する。
【0121】
第8のステップにおいて、セキュリティユニット210Bは、セキュリティユニット210Aの設定を引き継ぐ。セキュリティユニット210Aの設定が制御ユニット200に送信されていた場合、制御ユニット200は、バス530を介して、セキュリティユニット210Aの設定をセキュリティユニット210Bに送信する。セキュリティユニット210Bは、制御ユニット200から受信した設定を読み込んで使用する。
【0122】
また、セキュリティユニット210Aの設定がメモリカード640等の記憶媒体に格納されている場合、セキュリティユニット210Bは、メモリカードインターフェイス614を介して、メモリカード640に保存されている設定を読み込んで使用する。ある局面において、セキュリティユニット210Bは、SDカードまたはUSBメモリ等の任意の記憶媒体から設定を読み込んで使用してもよい。
【0123】
上記のように、セキュリティユニット210の交換時に、制御ユニット200は、共通鍵990を生成する権限を持つユーザによる共通鍵生成命令に基づいて、新しい共通鍵990を生成する。さらに、制御ユニット200は、安全性の高いバス530を介して、セキュリティユニット210Bに新しい共通鍵990を配布する。バス530には、制御ユニット200およびセキュリティユニット210のみが接続されている。そのため、バス530を介した新しい共通鍵990の配布中に、悪意ある人物が共通鍵990を盗み出すことは困難である。このように、制御ユニット200は、安全に共通鍵を生成および配布することで、不正なユーザによるセキュリティユニット210の交換を抑制し、かつ、容易かつ安全なセキュリティユニット210の交換を可能にする。
【0124】
図10は、セットアップ時における共通鍵の配布手順および当該共通鍵による認証の手順の一例を示すフローチャートである。図10に示す処理は、サポート装置110によって実行される。ある局面において、プロセッサ701は、図10の処理を行うためのプログラムを二次記憶装置705から主記憶装置702に読み込んで、当該プログラムを実行してもよい。また、他の局面において、当該処理の一部または全部は、当該処理を実行するように構成された回路素子の組み合わせとしても実現され得る。
【0125】
ステップS1010において、プロセッサ701は、終了要求があるまでステップS1020以降の処理を繰り返し実行する。ステップS1020において、プロセッサ701は、共通鍵配布要求(共通鍵生成要求)を受け付けたか否かを判定する。ある局面において、プロセッサ701は、入力部703または通信インターフェイス707のいずれかを介して、共通鍵配布要求を受け付けてもよい。プロセッサ701は、共通鍵配布要求を受け付けたと判定した場合(ステップS1020にてYES)、制御をステップS1030に移す。そうでない場合(ステップS1020にてNO)、プロセッサ701は、制御をステップS1010に移す。
【0126】
ステップS1030において、プロセッサ701は、共通鍵配布要求を入力したユーザの認証処理を実行する。ある局面において、プロセッサ701は、ステップS1030の処理をステップS1020の処理の前に実行してもよい。他の局面において、プロセッサ701は、パスワードまたは生体情報等の任意の手段を用いて認証処理を実行し得る。
【0127】
ステップS1040において、プロセッサ701は、認証処理の結果に基づいて、共通鍵配布要求を入力したユーザが共通鍵を配布する権限を有するか否かを判定する。プロセッサ701は、共通鍵配布要求を入力したユーザが共通鍵を配布する権限を有すると判定した場合(ステップS1040にてYES)、制御をステップS1050に移す。そうでない場合(ステップS1040にてNO)、プロセッサ701は、制御をステップS1060に移す。
【0128】
ステップS1050において、プロセッサ701は、共通鍵を生成して、制御ユニット200およびセキュリティユニット210に当該共通鍵を配布する。制御ユニット200およびセキュリティユニット210は、当該配布された共通鍵を用いて、相互認証を実行する。ステップS1060において、プロセッサ701は、共通鍵の生成を拒否する(共通鍵を生成しない)。より具体的には、プロセッサ701は、共通鍵生成処理を実行せず、表示装置140等に共通鍵を作成しないことを通知するメッセージ等を送信する。
【0129】
ステップS1070において、プロセッサ701は、終了要求があったか否かを判定する。プロセッサ701は、終了要求があったと判定した場合(ステップS1070にてYES)、処理を終了する。そうでない場合(ステップS1070にてNO)、プロセッサ701は、制御をステップS1010に移す。
【0130】
図11は、セキュリティユニット210の交換時における共通鍵の配布手順および当該共通鍵による認証の手順の一例を示すフローチャートである。図11に示される処理は、制御ユニット200によって実行される。ある局面において、プロセッサ501は、図10の処理を行うためのプログラムを二次記憶装置503から主記憶装置504に読み込んで、当該プログラムを実行してもよい。また、他の局面において、当該処理の一部または全部は、当該処理を実行するように構成された回路素子の組み合わせとしても実現され得る。
【0131】
ステップS1110において、プロセッサ501は、終了要求があるまでステップS1120以降の処理を繰り返し実行する。ステップS1120において、プロセッサ501は、表示装置140およびサポート装置110等を介して、共通鍵生成要求を受け付けたか否かを判定する。プロセッサ501は、共通鍵生成要求を受け付けたと判定した場合(ステップS1120にてYES)、制御をステップS1130に移す。そうでない場合(ステップS1120にてNO)、プロセッサ701は、制御をステップS1110に移す。
【0132】
ステップS1130において、プロセッサ501は、共通鍵生成要求を入力したユーザの認証処理を実行する。ある局面において、プロセッサ501は、ステップS1130の処理をステップS1120の処理の前に実行してもよい。他の局面において、プロセッサ501は、表示装置140およびサポート装置110等を介して、パスワードまたは生体情報等の任意の手段を用いて認証処理を実行し得る。
【0133】
ステップS1140において、プロセッサ501は、認証処理の結果に基づいて、共通鍵生成要求を入力したユーザが共通鍵を生成する権限を有するか否かを判定する。プロセッサ501は、共通鍵生成要求を入力したユーザが共通鍵を生成する権限を有すると判定した場合(ステップS1140にてYES)、制御をステップS1150に移す。そうでない場合(ステップS1140にてNO)、プロセッサ501は、制御をステップS1170に移す。
【0134】
ステップS1150において、プロセッサ501は、共通鍵を生成する。ステップS1160において、プロセッサ501は、生成した共通鍵を二次記憶装置503に格納すると共に、バス530を介して、セキュリティユニット210に当該共通鍵を配布する。制御ユニット200およびセキュリティユニット210は、当該共通鍵を用いて、相互認証を実行する。ステップS1170において、プロセッサ501は、共通鍵の生成を拒否する(共通鍵を生成しない)。
【0135】
ステップS1180において、プロセッサ501は、終了要求があったか否かを判定する。プロセッサ501は、終了要求があったと判定した場合(ステップS1180にてYES)、処理を終了する。そうでない場合(ステップS1180にてNO)、プロセッサ501は、制御をステップS1110に移す。
【0136】
以上説明したように、本実施の形態に従う技術において、制御システム1のセットアップ時に、共通鍵を生成する権限を持つユーザが、サポート装置110を用いて、制御ユニット200およびセキュリティユニット210に共通鍵を配布する。その結果、制御ユニット200は、信頼性を検証されたセキュリティユニット210と接続された状態で稼働を開始することができる。
【0137】
また、セキュリティユニット210の交換時に、制御ユニット200は、新しい共通鍵を生成する権限を持つユーザによる共通鍵生成命令に基づいて、新しい共通鍵を生成する。さらに、制御ユニット200は、安全性の高いバス530を介して、交換された後のセキュリティユニット210に新しい共通鍵を配布する。こうすることで、制御ユニット200は、不正なユーザによるセキュリティユニット210の交換を抑制し、かつ、容易かつ安全なセキュリティユニット210の交換を可能にする。
【0138】
<D.付記>
以上のように、本実施の形態は以下のような開示を含む。
(構成1)
制御ユニット(200)と、
通信ユニット(210)とを備え、
上記制御ユニット(200)と、上記通信ユニット(210)とは着脱可能に構成され、
上記制御ユニット(200)は、
共通鍵を用いて、上記制御ユニット(200)に接続された上記通信ユニット(210)を認証し、
認証の結果、上記通信ユニット(210)が上記共通鍵を有することが確認できたことに基づいて、上記通信ユニット(210)に上記制御ユニット(200)内のデータへのアクセスを許可する、制御システム(1)。
(構成2)
上記共通鍵を配布する装置(110)をさらに備え、
上記装置(110)は、
上記共通鍵の配布命令を受け付け、
上記共通鍵の配布命令を入力したユーザの認証処理が成功したことに基づいて、上記制御ユニット(200)と上記通信ユニット(210)とに上記共通鍵を送信する、構成1の制御システム(1)。
(構成3)
上記制御ユニット(200)は、上記通信ユニット(210)が新しい通信ユニット(210)に交換された場合に、新しい共通鍵を生成して、上記新しい共通鍵を上記新しい通信ユニット(210)に送信し、
上記新しい共通鍵を上記新しい通信ユニット(210)に送信することは、
上記新しい共通鍵の生成命令の入力を受け付けることと、
上記共通鍵の生成命令を入力したユーザの認証処理が成功したことに基づいて、上記通信ユニット(210)に生成した上記新しい共通鍵を送信することとを含む、構成1または2の制御システム(1)。
(構成4)
上記制御ユニット(200)は、
バス(530)を介して上記新しい通信ユニット(210)に接続されており、
上記バス(530)を介して、上記新しい通信ユニット(210)に上記共通鍵を配布する、構成3の制御システム(1)。
(構成5)
上記制御ユニット(200)は、
上記新しい通信ユニット(210)への交換時に、上記バス(530)を介して、上記通信ユニット(210)の設定を上記通信ユニット(210)から受信し、
上記共通鍵の配布後に、上記バス(530)を介して、上記通信ユニット(210)の設定を上記新しい通信ユニット(210)に送信する、構成4の制御システム(1)。
(構成6)
上記通信ユニット(210)は、上記新しい通信ユニット(210)への交換時に、上記通信ユニット(210)の設定を着脱可能な記憶媒体に保存し、
上記新しい通信ユニット(210)は、上記新しい共通鍵を取得した後に、上記着脱可能な記憶媒体から上記通信ユニット(210)の設定を読み込む、構成3~5のいずれかの制御システム(1)。
(構成7)
制御ユニット(200)と、通信ユニット(210)とが着脱可能に構成された制御システム(1)の制御方法であって、
共通鍵を用いて、上記制御ユニット(200)に接続された上記通信ユニット(210)を認証するステップと、
認証の結果、上記通信ユニット(210)が上記共通鍵を有することが確認できたことに基づいて、上記通信ユニット(210)に上記制御ユニット(200)内のデータへのアクセスを許可するステップとを含む、制御方法。
(構成8)
上記共通鍵の配布命令を受け付けるステップと、
上記共通鍵の配布命令を入力したユーザの認証処理が成功したことに基づいて、上記制御ユニット(200)と上記通信ユニット(210)とに上記共通鍵を送信するステップとをさらに含む、構成7の制御方法。
(構成9)
上記通信ユニット(210)が新しい通信ユニット(210)に交換されたことに基づいて、新しい共通鍵を生成して、上記新しい共通鍵を上記新しい通信ユニット(210)に送信するステップをさらに含み、
上記新しい共通鍵を上記新しい通信ユニット(210)に送信するステップは、
上記新しい共通鍵の生成命令の入力を受け付けるステップと、
上記共通鍵の生成命令を入力したユーザの認証処理が成功したことに基づいて、上記通信ユニット(210)に生成した上記新しい共通鍵を送信するステップとを含む、構成7または8の制御方法。
(構成10)
上記新しい共通鍵は、バス(530)を介して、上記制御ユニット(200)から上記新しい通信ユニット(210)に配布される、構成9の制御方法。
(構成11)
上記新しい通信ユニット(210)への交換時に、上記バス(530)を介して、上記通信ユニット(210)の設定を上記通信ユニット(210)から上記制御ユニット(200)に送信するステップと、
上記共通鍵の配布後に、上記バス(530)を介して、上記通信ユニット(210)の設定を上記制御ユニット(200)から上記新しい通信ユニット(210)に送信するステップとをさらに含む、構成10の制御方法。
(構成12)
上記新しい通信ユニット(210)への交換時に、上記通信ユニット(210)の設定を着脱可能な記憶媒体に保存するステップと、
上記新しい共通鍵を取得した後に、上記通信ユニット(210)の設定を上記着脱可能な記憶媒体から上記新しい通信ユニット(210)に読み込むステップとをさらに含む、構成9~11のいずれかの制御方法。
【0139】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【0140】
1 制御システム、100 ネットワークシステム、110 サポート装置、120 サーバ装置、130 ゲートウェイ、140 表示装置、150 ネットワーク、160 フィールドネットワーク、170 制御対象、200 制御ユニット、210 セキュリティユニット、220 セーフティユニット、230 機能ユニット、240 電源ユニット、250 情報資産、370 変数、380,721 共通鍵生成プログラム、390,990 共通鍵、501,601,701 プロセッサ、502,604 チップセット、503,608,705 二次記憶装置、504,606,702 主記憶装置、505,620 通信コントローラ、506,624 インジケータ、507 スイッチインターフェイス、508 ディップスイッチ、509 内部バスコントローラ、510,511,512,616,618 ネットワークコントローラ、513,614 メモリカードインターフェイス、514,612 USBコントローラ、520,635 システムプログラム、521 サービスプログラム、523,633 不揮発性記憶領域、524 暗号化済み制御プログラム、525 揮発性記憶領域、526 復号済み制御プログラム、530 バス、540,640 メモリカード、605 セキュアチップ、630 簡易復号化処理プログラム、631 暗号化処理プログラム、632 復号化処理プログラム、690 鍵、703 入力部、704 出力部、706 光学ドライブ、707 通信インターフェイス、710 プロセッサバス、720 制御プログラム、723 サポートプログラム、724 OS、750 記録媒体。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11