JP6480291B2 - 通信装置、送信装置及び受信装置 - Google Patents

通信装置、送信装置及び受信装置 Download PDF

Info

Publication number
JP6480291B2
JP6480291B2 JP2015168751A JP2015168751A JP6480291B2 JP 6480291 B2 JP6480291 B2 JP 6480291B2 JP 2015168751 A JP2015168751 A JP 2015168751A JP 2015168751 A JP2015168751 A JP 2015168751A JP 6480291 B2 JP6480291 B2 JP 6480291B2
Authority
JP
Japan
Prior art keywords
self
frame data
unit
communication
communication frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015168751A
Other languages
English (en)
Other versions
JP2017046268A (ja
JP2017046268A5 (ja
Inventor
辰幸 大谷
辰幸 大谷
崇 小林
崇 小林
俊樹 清水
俊樹 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2015168751A priority Critical patent/JP6480291B2/ja
Publication of JP2017046268A publication Critical patent/JP2017046268A/ja
Publication of JP2017046268A5 publication Critical patent/JP2017046268A5/ja
Application granted granted Critical
Publication of JP6480291B2 publication Critical patent/JP6480291B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、例えば、プラント等の制御システムにおけるセキュアな制御通信を行うために好適な通信装置、送信装置及び受信装置に関する。
近年、制御分野では、IoT(Internet Of Things)に代表される、情報と制御を融合したプラント制御ソリューションが世界的に注目されるようになっている。昨今では特にFA(Factory Automation)やPA(Process Automation)分野において、本プラント制御ソリューションの適用が拡大しつつある。
プラント制御ソリューションに用いられる技術は、プラント制御の稼動効率、及び生産効率を飛躍的に向上させると考えられる。一方で、情報系のネットワークを経由することで、プラント外部とプラント制御システムが従来以上に密接に結合するため、ネットワークにおいて新たなセキュリティホールの発生が懸念される。
従来、情報処理分野では、悪意ある第三者からのセキュリティ攻撃に対して、AES(Advanced Encryption Standard)等に代表される暗号化技術を用いて財産となる情報を保護する技術が用いられていた。
例えば、特許文献1には、通信装置間の認証方法として、計時情報に基づいて生成された乱数から共通鍵を使ってフレームを出力する方法が開示されている。
特開2007−221204号公報
ところで、制御システムで用いられるネットワークには、刻々と変動する物理現象を数値化したプロセス入出力値が制御通信データとして伝送されることが大半であるため、情報処理システムとは異なり、データの秘匿が必ずしも要求されない。例えば、バルブの開閉情報は、データの秘匿性が高くない。一方、制御伝送では、各通信装置がリアルタイムでデータを送受信できることが必須である。
しかし、特許文献1に開示された技術は、数学的に解読困難な形態に情報(乱数)をエンコード及びデコードすることでセキュリティを実現するため、計算機の処理に多くの時間を要する。その結果、特許文献1に開示されたような暗号化技術をリアルタイム性が重視される制御システムにそのまま流用することは困難であった。また、特許文献1に開示された技術では、攻撃者がデータフレームを取得してなりすましを行うような攻撃がされたとしても、特許文献1には有効な対策が開示されていなかった。
本発明はこのような状況に鑑みて成されたものであり、リアルタイム性を損なうことなく安全にデータを通信することを目的とする。
本発明に係る通信装置は、電子署名生成部と送信ポートとを有する送信部と、受信ポートと情報抽出部と判定部とを有する受信部を備える。
送信部の電子署名生成部は、制御装置から受信する制御通信データ(自)に基づいて生成される第1のチェックコード(自)、通信フレームデータ(自)の送信順を示す第1のシーケンス番号(自)及び乱数(自)を、それぞれ所定単位で分離し、所定の順序で並び替えたビット数列集合からなるブロック(自)をエンコーダにより変換した電子署名(自)を生成する。
送信ポートは、電子署名(自)を制御通信データ(自)に付加した通信フレームデータ(自)を他の通信装置に送信する。
電子署名生成部は、
第1の計時カウンタ情報(自)を生成する第1の計時カウンタ情報生成部と、
制御通信データ(自)から第1のチェックコード(自)を生成する第1のチェックコード生成部と、
通信フレームデータ(自)が送信される度にインクリメントされる第1のシーケンス番号(自)を生成するシーケンス番号生成部と、
乱数(自)を生成する乱数生成部と、
第1の計時カウンタ情報(自)、第1のチェックコード(自)、第1のシーケンス番号(自)、及び乱数(自)からそれぞれ単ビット単位、又は複数ビット単位で分離した単位固定長のビットを並べ替えてブロック(自)を生成するブロック生成部と、
ブロック生成部により第1の計時カウンタ情報(自)、第1のチェックコード(自)、第1のシーケンス番号(自)、及び乱数(自)が少なくとも1ビット以上格納されたブロック(自)をエンコーダにより変換して電子署名(自)を生成する符号化部と、を有する。
受信部の受信ポートは、他の通信装置から受信した通信フレームデータ(他)から電子署名(他)を取り出す。
情報抽出部は、電子署名(他)をデコーダにより逆変換したブロック(他)から、少なくとも1ビット以上含まれる第1のチェックコード(他)、第1のシーケンス番号(他)及び乱数(他)所定の順序で抽出する。
判定部は、抽出された第1のチェックコード(他)と通信フレームデータ(他)の制御通信データ(他)から生成した第2のチェックコード(他)を比較した結果と、抽出された第1のシーケンス番号(他)と、前周期の通信フレームデータ(他)に付加された第2のシーケンス番号(他)とを比較した結果とに基づいて、通信フレームデータ(他)を正常と判定した場合に、制御装置による制御通信データ(他)の取り込みを許可する。
情報抽出部は、
通信フレームデータ(他)から取出された電子署名(他)をデコーダにより逆変換して、ブロック(他)に復号する復号部と、
ブロック(他)から抽出した単位固定長のビットを所定の順序で並べ替えて、第1のチェックコード(他)、第1のシーケンス番号(他)、及び乱数(他)を取り出すビット抽出部と、
通信フレームデータ(他)の制御通信データに基づいて第2のチェックコード(他)を生成する第2のチェックコード生成部と、
前周期の通信フレームデータ(他)から取り出された第1のシーケンス番号を記憶するシーケンス番号記憶部と、
現周期の通信フレームデータ(他)から抽出された第1の計時カウンタ情報(他)を記憶する第1の計時カウンタ情報記憶部と、
前周期の通信フレームデータ(他)から抽出された第1の計時カウンタ情報(他)を記憶する第2の計時カウンタ情報記憶部と、を有する。
判定部は、
通信フレームデータ(他)から抽出された第1のチェックコード(他)と、通信フレームデータ(他)の制御通信データ(他)から生成された第2のチェックコード(他)との相違を判定するチェックコード判定部と、
現周期の通信フレームデータ(他)から抽出された通信フレームデータ(他)の送信順を示す第1のシーケンス番号(他)と、シーケンス番号記憶部に記憶された、前周期の通信フレームデータ(他)から抽出された第2のシーケンス番号(他)との相違を判定するシーケンス番号判定部と、
第1の計時カウンタ情報記憶部に記憶される現周期の第1の計時カウンタ情報(他)と、第2の計時カウンタ情報記憶部にシフトされた前周期の第1の計時カウンタ情報(他)との差分が第1の誤差の範囲内であるかを判定する周期間差分判定部と、
チェックコード判定部、シーケンス番号判定部及び周期間差分判定部の判定結果が正常であれば、制御装置による制御通信データ(他)の取り込みを許可し、判定結果が異常であれば、通信フレームデータ(他)を破棄する認証判定部と、を有する。
本発明によれば、通信フレームデータに付加される電子署名には乱数が含まれており、受信部は通信フレームデータに対する改ざん等を速やかに検出することが可能である。このため、不正な通信フレームデータを検出した場合には、この通信フレームデータを破棄する等の対応により有効な制御通信データだけを取り込むことが可能となる。
上記した以外の課題、構成及び効果は、以下の実施の形態例の説明により明らかにされる。
本発明の第1の実施の形態例に係る通信システムのシステム構成図である。 本発明の第1の実施の形態例に係る2つの通信装置の概略構成図である。 本発明の第1の実施の形態例に係る送信部の内部構成例を示すブロック図である。 本発明の第1の実施の形態例に係る通信フレームデータの構成図である。 本発明の第1の実施の形態例に係る送信部の各信号路における信号の流れを示すタイムチャートである。 本発明の第1の実施の形態例に係る受信部の内部構成例を示すブロック図である。 本発明の第1の実施の形態例に係る認証判定回路の状態遷移の例を示す説明図である。 本発明の第2の実施の形態例に係る認証判定回路の状態遷移の例を示す説明図である。 本発明の実施の形態の変形例に係る通信システムのシステム構成図である。
以下、本発明を実施するための形態例について、添付図面を参照して説明する。本明細書及び図面において、実質的に同一の機能又は構成を有する構成要素については、同一の符号を付することにより重複する説明を省略する。
[1.第1の実施の形態例]
図1は、通信システム1のシステム構成図である。
通信システム1は、ネットワークNに接続された複数の通信装置2A〜2Mを備える。通信装置2A〜2Mは、互いに通信することが可能である。図1の例では、通信装置2AがネットワークNを介して通信装置2Bに通信フレームデータを送信する様子と、通信装置2AがネットワークNを介して通信装置2Eから通信フレームデータを受信する様子が示されている。図1では、ネットワークNとしてリング型ネットワークの接続形態とした例を示すが、ネットワークNは他の接続形態としてもよい。
図2は、2つの通信装置2A、2Bの概略構成図である。
通信装置2Aは、他の通信装置に対して通信フレームデータを送信したり、他の通信装置から通信フレームデータを受信したりする機能を有している。
通信装置2Aは、制御装置3と、送信部4と、受信部5を備える。
通信装置2Aの制御装置3は、通信装置2Bに制御通信データを含む通信フレームデータを送信部4に出力し、受信部5が通信装置2Bから受信した制御通信データを受け取る。
通信装置2Aの送信部4は、制御装置3から入力した通信フレームデータを所定の処理により暗号化し、ネットワークNを介して通信装置2Bに通信フレームデータを送信する。この制御通信データには、例えばプラントの機器を制御するための命令、プラントからのプロセス入出力値が含まれる。
通信装置2Aの受信部5は、通信装置2Bより受信した暗号化された通信フレームデータを復号し、復号された通信フレームデータをチェックした結果が正常であれば制御装置3に制御通信データを出力する。
通信装置2Bは、通信装置2Aと同様に、制御装置3と、送信部4と、受信部5を備える。
通信装置2Bの制御装置3は、制御通信データを含む通信フレームデータを送信部4に出力し、受信部5が通信装置2Aから受信した制御通信データを受け取る。
通信装置2Bの送信部4は、制御装置3から入力した通信フレームデータを所定の処理により暗号化し、ネットワークNを介して通信装置2Aに通信フレームデータを送信する。
通信装置2Bの受信部5は、通信装置2Aより受信した暗号化された通信フレームデータを復号し、復号された通信フレームデータをチェックした結果が正常であれば制御装置3に制御通信データを出力する。
次に、送信部4、受信部5の構成例及び動作例について説明する。始めに、送信部について説明する。
図3は、送信部4の内部構成例を示すブロック図である。
送信部4は、通信装置2Aの構成要素のうち、電子署名を生成する回路(電子署名生成部6)と、電子署名を通信フレームデータに付加して送信する回路(送信ポート12)とを抽出したものである。
始めに、送信部4の各部の構成を説明する。
送信部4は、フレーム送信制御回路11、送信ポート12、計時カウンタ回路13、チェックコード生成回路14、フレームシーケンス番号生成回路15、乱数生成器16、ブロック生成部17、マルチプレクサ18、変換テーブル19、PS変換回路20を備える。本実施の形態例では、送信部4内の送信ポート12を除く各構成要素をまとめて電子署名生成部6と呼ぶ。
フレーム送信制御回路11は、制御装置3から信号路d1を通じて、制御通信データを含む通信フレームデータを取り込む。そして、フレーム送信制御回路11は、計時カウンタ回路13、チェックコード生成回路14、フレームシーケンス番号生成回路15、乱数生成器16、ブロック生成部17、マルチプレクサ18、PS変換回路20に所定の信号を送信し、各部の制御を行う。
ここで、通信フレームデータの構成について説明する。
図4は、通信フレームデータの構成例を示すフレームフォーマットである。
本実施の形態例に係る通信フレームデータは、ヘッダ情報(通信ヘッダf1、IPヘッダf2、UDPヘッダf3)、制御装置3から受け取る制御通信データf4、電子署名f5、FCS(Frame Check Sequence)f6の各フィールドで構成される。ヘッダ情報は、送信される各通信フレームデータに共通して設けられるものであり、フレーム送信制御回路11によって生成される。また、通信フレームデータ内における電子署名f5の実装場所は限定されない。この電子署名f5には、符号化された計時カウンタ情報f11、チェックコードf12、シーケンス番号f13及び乱数f14が含まれる。以下の説明では、通信ヘッダf1、IPヘッダf2、UDPヘッダf3、制御通信データf4をまとめて「フレーム情報」と呼ぶ場合がある。
チェックコードf12は、ヘッダ情報と制御通信データf4をチェック範囲として生成される。このようなチェック範囲としたのは、チェックコードの目的は、制御通信データに改ざんがなされたことを検出するためである。
FCS f6は、フレーム情報と電子署名f5をチェック範囲として生成される。このようなチェック範囲としたのは、FCSの目的が、通信フレームデータのデータ化けを検出することであり、電子署名f5のデータ化けもその対象に含まれるからである。
以下の説明において、電子署名f5、FCS f6が付されていない状態のヘッダ情報及び制御通信データf4についても通信フレームデータと呼ぶ場合がある。
再び図3の説明を続ける。
電子署名生成部6は、制御装置3から受信する制御通信データf4に基づいて生成されるチェックコードf12、通信フレームデータの送信順を示すシーケンス番号f13、及び乱数f14を、それぞれ所定単位で分離する。そして、これらの情報を所定の順序で並び替えたビット数列集合からなるブロックd8〜d10を変換テーブル19により変換した電子署名f5を生成する。
計時カウンタ回路13は、計時動作により送信部4における計時カウンタ情報f11を生成し、信号路d4に出力する。計時カウンタ回路13が生成する計時カウンタ情報f11は、他の通信装置が計時する計時カウンタ情報に同期させたものである。後述する図6に示す計時カウンタ回路37が他の通信装置との間で同期したことをもって、計時カウンタ回路37に計時カウンタ回路13を同期させることが可能である。
チェックコード生成回路14(第1のチェックコード生成部の一例)は、フレーム送信制御回路11から受け取ったヘッダ情報と制御通信データf4によりチェックコードf12を生成し、信号路d5に出力する。
フレームシーケンス番号生成回路15(シーケンス番号生成部の一例)は、通信フレームデータの送信順を示すシーケンス番号f13を生成し、信号路d6に出力する。このシーケンス番号f13は、前周期に送信された通信フレームデータのシーケンス番号(n−1)を“1”だけインクリメントした値(n)となる。
乱数生成器16(乱数生成部の一例)は、乱数f14を生成し、信号路d7に出力する。本実施の形態例に係る電子署名符号化方法は、乱数f14を用いて実現される。乱数生成器16が乱数を生成する方法として、例えば、M系列(LFSR)や、Xorshiftによる擬似乱数の生成方法が用いられる。他には、例えば、特許第4982750号公報に記載されるようなフリップフロップのメタスタビリティを利用したリングオシレータ型の真性乱数に準じる生成方法を用いてもよく、一つの方法に限定されない。ただし、電子署名符号化方法は、通信フレームデータの送信に際して、高速性を阻害せず、安価であるものが採用される。
ブロック生成部17は、計時カウンタ情報f11、チェックコードf12、シーケンス番号f13、及び乱数f14から単ビット単位、又は複数ビット単位で分離した単位固定長のビットを抽出する。そして、ブロック生成部17は、分離した単位固定長のビットを並び替えてまとめたビット数列集合からなる複数のブロックd8〜d10を生成する。
マルチプレクサ18(選択回路の一例)は、ブロック生成部17によって生成された複数のブロックd8〜d10のいずれかを順に選択して変換テーブル19に出力する。
変換テーブル19(エンコーダの一例)は、マルチプレクサ18から順に入力する複数のブロックd8〜d10を変換して符号化する。
PS(Parallel/Serial)変換回路20は、符号化されたビット数列集合をシリアルデータに変換して電子署名f5を生成し、この電子署名f5を送信ポート12に出力する。
このようにマルチプレクサ18、変換テーブル19、PS変換回路20は、複数のブロックd8〜d10を変換テーブル19により変換して電子署名f5を生成する符号化部21として用いられる。
送信ポート12は、フレーム送信制御回路11から受け取った通信フレームデータ(ヘッダ情報及び制御通信データf4)に、電子署名f5と、送信ポート12が生成したFCS f6とを付加する。そして、送信ポート12は、ネットワークNを通じて通信装置2Bに通信フレームデータを送信する。
次に、送信部4の各部の動作について、図5のタイムチャートに即して説明する。
図5は、送信部4の各信号路における信号の流れを示すタイムチャートである。
通信装置2Aの通信フレームデータの送信処理は、制御装置3から送信部4になされる送信要求を契機として開始される。
フレーム送信制御回路11は、通信フレームデータの信号路d1経由で通信フレームデータを取り込みながら(図5A)、チェックコード生成回路14にチェックコード生成制御信号d3を発行する(図5B)。チェックコード生成回路14は、チェックコード生成制御信号d3を受けると、フレーム情報に基づいてチェックコードf12を生成する(図4、図5D)。
なお、チェックコード生成回路14は、回路リソースが少なくて済むCRC(Cyclic Redundancy Check)を用いて、チェックコードf12を生成するが、CRC以外の方法によりチェックコードf12を生成してもよい。チェックコードf12の生成、及びチェック範囲は、図4に示す通り、通信ヘッダf1から制御通信データf4までを対象とする。
チェックコード生成回路14がチェックコードf12を生成している間、フレーム送信制御回路11は、送信ポート12に対してネットワークNにフレーム情報を送信させる(図5K)。
送信ポート12がフレーム情報を送信した後、送信ポート12への制御通信データf4の入力が完了するタイミングになると、フレーム送信制御回路11は、フレームシーケンス番号のインクリメント及びラッチ制御信号d2を発行する(図5C)。フレームシーケンス番号生成回路15は、フレームシーケンス番号のインクリメント及びラッチ制御信号d2が入力したタイミングで、現在のフレームシーケンス番号を“1”だけインクリメントする(図5F)。そして、フレームシーケンス番号生成回路15は、インクリメントされたフレームシーケンス番号を、フレームシーケンス番号の信号路d6に送出する。
計時カウンタ回路13が計時する動作は常時行われる(図5E)。このため、計時カウンタ情報の信号路d4には、計時カウンタ回路13が計時した計時カウンタ情報が常に流れている。同様に乱数生成器16が乱数を生成する動作についても常時行われる(図5G)。このため、乱数情報の信号路d7には、乱数生成器16が生成した乱数が常に流れている。
また、通信要求が発生し、フレームシーケンス番号のインクリメント及びラッチ制御信号d2が発行されると、ブロック生成部17は、信号路d4〜d7を流れる計時カウンタ情報、チェックコード、フレームシーケンス番号、乱数を取得する。そして、ブロック生成部17は、これらの情報を、それぞれ1ビット以上の単位で分離する。さらに、ブロック生成部17は、分離した計時カウンタ情報、チェックコード、フレームシーケンス番号、乱数を並べ替えたビット数列を生成し、このビット数列から任意長としたビット数列集合からなる複数のブロックd8〜d10に分割する。
複数のブロックd8〜d10には、それぞれ計時カウンタ情報、チェックコード、フレームシーケンス番号、乱数が共に1ビット以上格納されていることを要件とする。この要件を満足できるのであれば、ブロックのビット長の長さに上限も下限もない。1ブロックあたりの乱数のビット数が多いほど、後述する符号化コードの不規則変化の複雑性が増す。
複数のブロックd8〜d10は、各々に計時カウンタ情報の信号路d4の任意の1ビット、チェックコードの信号路d5の任意の1ビット、フレームシーケンス番号の信号路d6の任意の1ビット、及び乱数情報の信号路d7の3ビット(計6ビット)で構成される。
複数のブロックd8〜d10を構成する任意のビットは、送信側、受信側で同じ配置にしなければ、非可逆なコードとなり復号できなくなる。可逆性が保てるのであれば、任意のビットを複数個所のブロックに使っても良い。複数のブロックd8〜d10が不規則に変化できるパターンが多くなるほど、ネットワークNで観測される符号化コードの発生パターンも増し、通信フレームデータの暗号化強度をより高めることができる。
続いて、フレーム送信制御回路11は、複数のブロックd8〜d10の選択制御信号d12を活性化させる(図5H)。これによりフレームシーケンス番号生成回路15は、フレームシーケンス番号のインクリメント及びラッチ制御信号d2に従い、N個の複数のブロックd8〜d10の現状態をラッチする。
そして、マルチプレクサ18は、入力する複数のブロックd8〜d10の順番を切替えて、変換テーブル19に複数のブロックd8〜d10を出力する。変換テーブル19により、複数のブロックd8〜d10がそれぞれ符号化される。符号化された複数のブロックd8〜d10は、選択された符号化コードの信号路d14を通じて、変換テーブル19からPS変換回路20に出力される(図5I)。
変換テーブル19は、いわゆる「共通鍵」の扱いとなる。変換テーブル19の入力と出力の関係は、数学的な規則性を持たせる必要はなく、不規則な値で構わない。ただし、変換テーブル19によって変換されるデータは可逆性を持たせる必要がある。すなわち、変換テーブル19から出力されたデータは、逆変換により、元の入力データを復元できることが必要となる。このような変換テーブル19をRAM(Random Access Memory)やフラッシュROM(Read Only Memory)等の書き換え可能な記憶部に記憶させておくことで、定期的な内容変更に対応可能とする。これにより、変換テーブル19の情報が外部に漏えいした場合であっても、変換テーブル19を迅速に切り替えることによって外部からの攻撃によるデータの損失を必要最小限に抑えることが可能となる。
次に、フレーム送信制御回路11は、符号化コードのパラレルシリアル変換制御信号d13を活性化させる(図5J)。PS変換回路20は、符号化された各複数のブロックd8〜d10をパラレルデータからシリアルデータに変換する。シリアルデータに変換された各複数のブロックd8〜d10は、電子署名f5として送信ポート12に逐次送られる。また、電子署名f5は、フレーム送信制御回路11にも送られ、フレーム送信制御回路11によりFCS f6が生成される。
送信ポート12は、シリアルデータに変換された各複数のブロックd8〜d10を、フレーム送信制御回路11から受信した通信フレームデータの末尾に電子署名f5として付加する。次に、送信ポート12は、通信フレームデータのフレーム情報及び電子署名f5をチェック範囲としてフレーム送信制御回路11により生成されたFCS f6を電子署名f5の末尾に付加する。そして、送信ポート12は、電子署名f5とFCS f6が付加された通信フレームデータを、ネットワークNを介して宛先の通信装置2Bに送信する。
次に、通信装置2Bの受信部5の構成例及び動作例について説明する。
図6は、受信部5の内部構成例を示すブロック図である。
受信部5は、通信装置2Bの構成要素のうち、受信した通信フレームデータから電子署名f5を取り出す回路(受信ポート31)と、電子署名f5を復号して各情報を抽出する回路(情報抽出部7)と、情報を判定する回路(判定部8)とを抽出したものである。電子署名f5を復号することにより、通信フレームデータから、計時カウンタ情報f11、チェックコードf12、シーケンス番号f13、乱数f14が抽出される。
この受信部5は、受信ポート31、フレーム受信制御回路32、SP(Serial/Parallel)変換回路33、逆変換テーブル34、デマルチプレクサ35、ビット抽出部36を備える。また、受信部5は、計時カウンタ回路37、チェックコード生成回路39、シーケンス番号前周期記憶回路41、第1記憶回路43、第2記憶回路44を備える。本実施の形態例では、これらの回路をまとめて情報抽出部7と呼ぶ。
また、受信部5は、第1判定回路38、第2判定回路40、第3判定回路42、第4判定回路45、認証判定回路46を備える。本実施の形態例では、第1判定回路38、第2判定回路40、第3判定回路42、第4判定回路45、認証判定回路46をまとめて判定部8と呼ぶ。
受信ポート31は、通信装置2Aが送信した通信フレームデータを、ネットワークNを介して受信し、フレーム受信制御回路32に通信フレームデータを出力すると共に、通信フレームデータから取り出した電子署名f5をSP変換回路33に出力する。
フレーム受信制御回路32は、信号路d21を通じて、受信ポート31が受信した通信フレームデータを制御装置3に送信する。そして、フレーム受信制御回路32は、SP変換回路33、逆変換テーブル34、デマルチプレクサ35、ビット抽出部36、計時カウンタ回路37、チェックコード生成回路39、判定回路に所定のデータ、信号を送信し、各部の制御を行う。
情報抽出部7は、電子署名f5を逆変換テーブル34により逆変換したブロックd27〜d29から、送信部4の電子署名生成部6が並び替えた所定の順序でチェックコードf12、シーケンス番号f13、及び乱数f14を抽出する。
このとき、SP変換回路33は、受信ポート31から入力する電子署名f5をパラレルデータに変換する。
逆変換テーブル34(デコーダの一例)は、パラレルデータに変換された電子署名f5を復号する。
デマルチプレクサ35(分配回路の一例)は、逆変換テーブル34によって復号された電子署名f5を、ビット数列集合からなる複数のブロックd27〜d29に分配する。
このようにSP変換回路33、逆変換テーブル34、デマルチプレクサ35は、電子署名f5を逆変換テーブル34により逆変換して複数のブロックd27〜d29に復号する復号部30として用いられる。
ビット抽出部36は、ブロックd27〜d29からそれぞれ単位固定長とした1ビット以上の任意ビットを抽出し、この任意ビットを所定の順序で並べ替えて、計時カウンタ情報f11、チェックコードf12、シーケンス番号f13、及び乱数f14を取り出す。取り出された計時カウンタ情報f11、チェックコードf12、シーケンス番号f13、及び乱数f14は、それぞれ信号路d30,d31,d32,d33に出力される。
そして、判定部8は、計時カウンタ情報、チェックコード、シーケンス番号の比較結果に基づいて、通信フレームデータを正常と判定した場合に、制御装置3による制御通信データの取り込みを許可する。具体的には、判定部8は、以下のような比較を行う。
計時カウンタ回路37(第2の計時カウンタ情報生成部の一例)は、計時動作によって生成した計時カウンタ情報(第2の計時カウンタ情報の一例)を第1判定回路38に出力する。
第1判定回路38(現周期差分判定部の一例)は、自身が計時する計時カウンタ情報と、他の通信装置によって計時された計時カウンタ情報とを比較する。例えば、第1判定回路38は、計時カウンタ回路37によって生成された計時カウンタ情報と、ビット抽出部36によってブロックd27〜d29から抽出された計時カウンタ情報f11との差が所定の誤差(第2の誤差の一例)の範囲内にあるか否かを判定する。そして、第1判定回路38は、判定結果を認証判定回路46に出力する。
チェックコード生成回路39(第2のチェックコード生成部の一例)は、受信ポート31が受信した通信フレームデータのフレーム情報に基づいて生成したチェックコード(第2のチェックコードの一例)を第2判定回路40に出力する。
第2判定回路40(チェックコード判定部の一例)は、通信フレームデータのチェックコードの改ざん有無を判定する。例えば、第2判定回路40は、チェックコード生成回路39によって生成されたチェックコードと、ビット抽出部36によってブロックd27〜d29から抽出されたチェックコードf12との相違を判定し、判定結果を認証判定回路46に出力する。
シーケンス番号前周期記憶回路41(シーケンス番号記憶部の一例)は、前周期の受信処理で電子署名f5から復号された前周期のシーケンス番号f13を記憶しており、前周期のシーケンス番号f13を第3判定回路42に出力する。
第3判定回路42(シーケンス番号判定部の一例)は、前周期と現周期の通信フレームデータに付加されたシーケンス番号の一致又は不一致を判定する。例えば、第3判定回路42は、シーケンス番号前周期記憶回路41に記憶された前周期の通信フレームデータから抽出されたシーケンス番号f13と、ビット抽出部36によって現周期の通信フレームデータから抽出されたシーケンス番号f13との相違を判定する。そして、第3判定回路42は、判定結果を認証判定回路46に出力する。
第1記憶回路43(第1の計時カウンタ情報記憶部の一例)は、現周期の通信フレームデータから抽出された計時カウンタ情報f11を記憶する。
第2記憶回路44(第2の計時カウンタ情報記憶部の一例)は、前周期の通信フレームデータから抽出された計時カウンタ情報f11を記憶する。
第1記憶回路43に格納された前周期の計時カウンタ情報f11は、受信ポート31が次の通信フレームデータを受信した際に、第2記憶回路44にシフトして格納される。そして、第1記憶回路43には、ブロックd27〜d29から抽出された現周期の計時カウンタ情報f11が格納される。
第4判定回路45(周期間差分判定部の一例)は、前周期と現周期の計時カウンタ情報f11の差分が許容誤差(第1の誤差の一例)の範囲内であるか否かを判定する。例えば、第4判定回路45は、第1記憶回路43に記憶される現周期の計時カウンタ情報f11と、第2記憶回路44にシフトされた前周期の計時カウンタ情報f11との差分が許容誤差の範囲内であるかを判定し、判定結果を認証判定回路46に出力する。
認証判定回路46(認証判定部の一例)は、第1判定回路38、第2判定回路40、第3判定回路42、第4判定回路45から入力した判定結果に基づいて、電子署名f5を認証し、制御通信データf4の取り込み許可又は不許可の判定を行う。認証判定回路46は、許可判定した場合には、制御装置3による制御通信データf4の取り込みを許可し、制御通信データf4の取り込みを不許可判定した場合には、通信フレームデータを破棄する。認証判定回路46が行う電子署名f5の認証処理の詳細な例は、図7にて後述する。そして、認証判定回路46は、判定結果を制御装置3に出力する。制御装置3は、この判定結果に基づいて、通信フレームデータから制御通信データを取り込む。
正規の通信装置2Aが送信した通信フレームデータであることを判定部8が認証するためには、以下の3つの要件(1)〜(3)を全て満たすことが必要である。
(1)受信部5は、通信フレームデータから抽出した計時カウンタ情報f11と、自身の計時カウンタ回路37が計時した計時カウンタ情報とを比較して計時カウンタ情報の差分を求め、この差分が予め決められた許容誤差の範囲内であること。
(2)通信フレームデータから抽出したチェックコードf12と、受信した通信フレームデータのフレーム情報に基づいて演算したチェックコードの内容が一致していること。
(3)現周期のシーケンス番号f13が、前周期の通信フレームデータに付されたシーケンス番号f13と同一でないこと。
なお、ビット抽出部36によって抽出された乱数f14は、ネットワークN上の暗号強度を高める目的で実装したデコイ(囮)であるため、破棄される。
以下、受信部5が行う通信フレームデータの受信処理の例について説明する。
フレーム受信制御回路32は、受信ポート31が通信フレームデータを受信開始したことを契機として、通信フレームデータの受信処理を開始し、チェックコード生成回路39に対してチェックコード生成制御信号d23を発行する。チェックコード生成回路39は、チェックコード生成制御信号d23を受けると、フレーム受信制御回路32から信号路d21を通じて受け取った通信フレームデータのフレーム情報に基づいてチェックコードf12を生成する。そして、フレーム受信制御回路32は、制御通信データf4の入力が完了するタイミングになると、チェックコード生成制御信号d23を取り下げ、チェックコード生成回路39によるチェックコードf12の生成を完了させる。
続いて、受信ポート31に電子署名f5が入力すると、この電子署名f5がフレーム受信制御回路32とSP変換回路33に出力される。フレーム受信制御回路32は、符合化コードのシリアルパラレル変換制御信号d24を活性化させると、SP変換回路33が符号化コード(電子署名f5)をパラレルデータに変換する。そして、SP変換回路33は、パラレルデータに変換された符号化コードを逆変換テーブル34(デコーダの一例)に逐次入力する。逆変換テーブル34に入力するパラレルデータ化された符号化コードは、ビット数列集合に復号される。
符号化コードがビット数列集合に復号されると、フレーム受信制御回路32は、ビット数列集合をブロックに振り分けるための振り分け制御信号d25を活性化させる。デマルチプレクサ35(振り分け回路の一例)に振り分け制御信号d25を供給する。デマルチプレクサ35は、復号されたビット数列集合をN個の複数のブロックd27〜d29に振り分けて格納する。
複数のブロックd27〜d29へのビット数列集合の格納が完了すると、フレーム受信制御回路32は、ビット抽出部36にビット抽出信号d26を発行し、判定回路に認証判定実施信号d22を発行する。ビット抽出部36は、ビット抽出信号d26に従い、複数のブロックd27〜d29から、計時カウンタ情報f11、チェックコードf12、シーケンス番号f13に対応する任意ビットを信号路d30,d31,d32を通じて抽出する。なお、信号路d33を通じて抽出される乱数f14に対応するビットは破棄される。
また、フレーム受信制御回路32から認証判定実施信号d22を受けた判定回路は、以下の判定処理を実施する。これらの判定処理の結果に応じて後述する図7に示すように認証判定回路46の状態が遷移する。
次に、通信装置2B(自装置)と、通信装置2A(他装置)との間で行われる、計時カウンタ回路37が生成する計時カウンタ情報の同期方法について説明する。
本発明の実施の形態では、通信装置2A、2B間で同期が行われていない、いわゆる同期未完の状態では、電子署名による認証を行うことができない。
しかし、計時カウンタ情報を同期するために用いられる情報を転送する通信フレームデータ自体にも電子署名認証が行えないと、計時カウンタ情報を同期するために用いられる情報が攻撃者によってなりすまされるセキュリティリスクがある。このため、計時カウンタ情報を同期するために用いられる情報についても電子署名認証を実施する必要がある。そこで、本実施の形態例において、同期が外れている同期未完状態の受信部5は、以下に示す判定方式により電子署名f15を認証する。
この判定方式の前提として、計時カウンタ情報のマスタとなる通信装置(例えば、通信装置2A)は、予め決められた一定の任意周期で通信フレームデータを送出する必要がある。送出される通信フレームデータは、同期専用のものでも、通常の通信フレームデータを流用したものでも構わない。
同期未完状態の受信部5は、通信装置2Aから通信フレームデータを受信すると、SP変換回路33、逆変換テーブル34、デマルチプレクサ35、ビット抽出部36を介して復号された計時カウンタ情報f11を抽出する。同じく通信フレームデータから抽出されたチェックコードf12が第2判定回路40によって判定され、シーケンス番号f13が第3判定回路42によって判定された後、計時カウンタ情報f11が第1記憶回路43に一旦格納される。
次に、受信部5は、通信装置2Aから現周期(n+1周期)の通信フレームデータを受信すると再び復号処理を実施し、現周期目の通信フレームデータから計時カウンタ情報f11を抽出し、チェックコードf12及びシーケンス番号f13のチェックを実施する。情報抽出部7は、以下の第1及び第2要件を満たす場合に、現周期(n+1周期)の計時カウンタ情報f11を第1記憶回路43に記憶し、第1記憶回路43に記憶されていた前周期(n周期)の計時カウンタ情報f11を第2記憶回路44にシフトして格納する。第1要件は、通信フレームデータから抽出されたチェックコードf12と、通信フレームデータのフレーム情報から生成されたチェックコードが一致することである。第2要件は、通信フレームデータから抽出されたシーケンス番号f13と、シーケンス番号前周期記憶回路41に記憶された前周期のシーケンス番号f13とが異なっていることである。
そして、第4判定回路45は、第1記憶回路43と第2記憶回路44にそれぞれ格納された前周期と現周期の計時カウンタ情報f11の差分をフレーム送信間隔時間の許容誤差(第1の誤差の一例)の範囲と比較する。第4判定回路45は、この差分がフレーム送信間隔時間の許容誤差の範囲内に収まっていれば、計時カウンタ回路37を他の通信装置の計時カウンタ回路と同期しても良いと判断する。そして、計時カウンタ回路37は、第1記憶回路43に記憶される現周期の計時カウンタ情報f11を自身に複写することで、計時カウンタ情報f11に、計時カウンタ回路37が計時する計時カウンタ情報を同期することが可能となる。
図7は、認証判定回路46の状態遷移の例を示す説明図である。
上述したように受信部5の計時カウンタ回路37は、マスタとなる通信装置との間で同期未完状態(非同期状態)と、同期状態の2つの状態を遷移する。そして、認証判定回路46は、計時カウンタ回路37が同期未完状態であれば、計時カウンタ回路37が同期未完状態から同期状態に遷移するまでに2段階の認証ステップ(第1及び第2の認証ステップ)を必要とする。
このように認証判定回路46が2段階の認証ステップを要するのは以下の理由による。
制御通信では、
ネットワークNに生じた一過性ノイズ等の外乱に通信フレームデータが晒されることにより、通信フレームデータの一部が一時的に欠損する現象(不確実性)が発生する場合がある。不確実性が発生すると、一過性ノイズによる前周期のフレーム欠損が原因となって、本来は正常に判定できるはずの現周期の通信フレームデータをも認証判定回路46が破棄する可能性がある。このように現周期の通信フレームデータを破棄する動作は、通信における一過性のエラー耐性を不必要に弱めることに他ならず、通信フレームデータを連続して送受信することができなくなるため許容できない。よって、受信部5は、計時カウンタ回路37が同期未完状態であれば、第1記憶回路43と第2記憶回路44を用いてマスタとなる通信装置との間で計時カウンタ回路37が生成する計時カウンタ情報を同期する同期処理を実施する。この同期処理において、受信部5の認証判定回路46は、2段階の認証ステップを採用する。第1の認証ステップは、第2判定回路40と第3判定回路42がいずれもOK判定であり、第4判定回路45がNG判定であれば、認証判定回路46の状態を認証未判定53から認証中間判定OK51に遷移することを認証する処理である。第2の認証ステップは、第2判定回路40、第3判定回路42、第4判定回路45がいずれもOK判定であれば、認証判定回路46の状態を認証未判定53から認証判定OK52に遷移することを認証する処理である。
以下に、マスタとなる他の通信装置によって生成される計時カウンタ情報と、受信部5の計時カウンタ回路37が生成する計時カウンタ情報との同期がされていない同期未完状態において、認証判定回路46が同期状態に遷移する状態遷移について説明する。
本実施の形態例において認証判定回路46の状態は、計時カウンタ同期未完状態50と計時カウンタ同期状態60に分けられる。計時カウンタ同期未完状態50では、認証判定回路46が、認証中間判定OK51、認証判定OK52、認証未判定53、認証判定NG54の各状態を遷移する。また、計時カウンタ同期状態60では、認証判定回路46が、認証判定OK61、認証未判定62、認証未判定63の各状態を遷移する。
まず、計時カウンタ情報が同期未完である初期状態の認証未判定53から説明を始める。認証未判定53は、計時カウンタ同期未完状態50の中にあり、この時点では、計時カウンタ回路37が生成する計時カウンタ情報の許容誤差判定を行う第1判定回路38は機能していない。
第2判定回路40は、信号路d31を通じて入力する、復号されたチェックコードf12と、チェックコード生成回路39が通信フレームデータから生成したチェックコードとを比較し、チェックコードが一致しているか否かを判定する(第2判定処理)。第2判定回路40は認証判定回路46に対して、チェックコードが一致していればOK判定を出力し、不一致であればNG判定を出力する。チェックコードが不一致であるとは、攻撃者によってフレーム情報が書き替えられた可能性があることを意味する。
第3判定回路42は、信号路d32を通じて入力する、復号された現周期のシーケンス番号f13と、シーケンス番号前周期記憶回路41に記憶された前周期のシーケンス番号f13とを比較する。そして、第3判定回路42は、これらのシーケンス番号が不一致であるか否かを判定する(第3判定処理)。第3判定回路42は認証判定回路46に対して、シーケンス番号が不一致であればOK判定を出力し、一致していればNG判定を出力する。シーケンス番号が一致するとは、攻撃者がネットワークN上で通信フレームデータを窃取し、複写した可能性がある通信フレームデータを受信したことを意味する。
第4判定回路45は、信号路d30を通じて入力する、第1記憶回路43に記憶された計時カウンタ情報と、第2記憶回路44に記憶された計時カウンタ情報との差分が許容誤差範囲内であるかを判定する(第4判定処理)。第4判定回路45は認証判定回路46に対して、計時カウンタ情報の差分が許容誤差の範囲内であればOK判定を出力し、範囲外であればNG判定を出力する。計時カウンタ情報の差分が許容誤差の範囲外であるとは、受信した通信フレームデータは定周期に受信したものではなく、制御通信データを利用できないことを意味する。なお、初期状態では、第1記憶回路43に計時カウンタ情報が格納されるものの、第2記憶回路44には何も格納されていないため、第4判定回路45はNG判定を出力する。
第2判定回路40と第3判定回路42がそれぞれチェックコードとシーケンス番号の判定結果をOK判定とし、第4判定回路45が計時カウンタ情報をNGと判定したならば、認証判定回路46の状態は、認証未判定53から認証中間判定OK51に遷移する(第1の認証ステップ)。第2判定回路40又は第3判定回路42にてチェックコード又はシーケンス番号のいずれかをNGと判定したならば、認証判定回路46の状態は認証判定NG54に遷移する。このとき、認証判定回路46は、受信した通信フレームデータを破棄する。
認証中間判定OK51に遷移した後、認証判定回路46は認証判定報告信号d34を第1記憶回路43と第2記憶回路44に出力する。認証判定報告信号d34が入力すると、第1記憶回路43に格納されていた計時カウンタ情報が第2記憶回路44にシフトされる。
計時カウンタ情報がシフトされた後、受信した通信フレームデータは破棄され、認証判定回路46の状態は再び認証未判定53に戻る。
認証判定回路46の状態が認証判定NG54であれば、第1記憶回路43に格納されていた計時カウンタ情報は第2記憶回路44にシフトしない。この理由は、第2判定回路40又は第3判定回路42のいずれかがNGと判定したということは、受信した通信フレームデータが悪意ある第三者(攻撃者)によって送信されたことが明確であるからである。このため、受信した通信フレームデータに格納された計時カウンタ情報で第2記憶回路44を上書きしてはならず、受信した通信フレームデータは破棄された後、認証判定回路46の状態が認証未判定53に戻る。
受信部5が次の周期の通信フレームデータを受信した際にも、現周期で通信フレームデータを受信したときと同様の受信処理が行われる。これにより、第4判定回路45は、第1記憶回路43に新たに格納された現周期の計時カウンタ情報と、第2記憶回路44にシフトして記憶される前周期の計時カウンタ情報との差分を比較することが可能となる。
そして、第4判定回路45は、計時カウンタ情報の差分が許容誤差範囲内であれば、認証判定回路46にOK判定を出力する。同時に第2判定回路40、第3判定回路42もそれぞれ認証判定回路46にOK判定を出力すれば、認証判定回路46の状態は、認証未判定53から認証判定OK52に遷移する(第2の認証ステップ)。そして、認証判定回路46は、制御装置3に対して認証判定報告信号d34をOK出力する。これにより、制御装置3は、フレーム受信制御回路32から通信フレームデータの制御通信データf4を取り込むことができる。
なお、認証判定報告信号d34は、計時カウンタ回路37にも入力される。これにより、計時カウンタ回路37が計時する計時カウンタ情報は、受信した通信フレームデータから抽出された計時カウンタ情報f11の値で書き換えられる。これにより、送信側の通信装置2Aと、受信側の通信装置2Bは、計時カウンタ情報の同期を完了する。
通信フレームデータの受信処理と、計時カウンタ情報の同期処理が完了すると、認証判定回路46の状態は、計時カウンタ同期状態60の中の認証未判定62に遷移する。以降の受信処理では、第4判定回路45ではなく第1判定回路38が動作し、認証処理を引き継ぐことになる。
第1判定回路38では、信号路d30を通じて入力する、受信した通信フレームデータから復号された計時カウンタ情報f11と、計時カウンタ回路37が出力する計時カウンタ情報とを比較し、計時カウンタ情報の誤差が許容誤差範囲内であるかを判定する。
フレーム受信制御回路32により認証判定実施信号d22が発行されたタイミングで、第1判定回路38、第2判定回路40、第3判定回路42の全ての判定結果がOKであれば、認証判定回路46の状態は、認証未判定62から認証判定OK61に遷移する。そして、認証判定回路46は、制御装置3に認証判定報告信号d34をOK出力することで、通信フレームデータの受信処理と計時カウンタ回路37の同期処理を同時に行う。また、制御装置3は、フレーム受信制御回路32から通信フレームデータの制御通信データf4を取り込むことができる。
第1判定回路38、第2判定回路40、第3判定回路42の判定結果に一つでもNGがあると、認証判定回路46の状態は、認証未判定62において認証判定NG63に遷移し、認証判定回路46は受信した通信フレームデータを破棄する。
正常な通信が継続している限り、計時カウンタ回路37は定期的に認証判定報告信号d34を認証判定回路46から受信し、計時カウンタ情報の同期を行う。しかし、計時カウンタ情報のズレが許容できなくなるほど、認証判定報告信号d34の受信が滞ると、計時カウンタ回路37は計時カウンタ同期タイムアウト発生信号d35を認証判定回路46に出力する。計時カウンタ回路37から計時カウンタ同期タイムアウト発生信号d35を受けると、認証判定回路46の状態は、認証未判定62から計時カウンタ同期未完状態50の認証未判定53に遷移する。これにより再び計時カウンタ情報の同期処理が行われることとなる。
以上説明した第1の実施の形態例に係る通信システム1によれば、通信フレームデータを送信する度に、乱数f14を用いて電子署名f5を生成する。この乱数f14は、通信フレームデータの制御通信データf4とは何の関連もないため、ネットワークN上に出現する電子署名f5の内容が不規則に変化する。このため、第三者の盗聴による電子署名f5の解読を困難とすることができる。
また、攻撃者が通信フレームデータをキャプチャし、なりすましによってキャプチャした通信フレームデータを通信装置に連続発行して制御システムの動作を停滞させるリスクに対応可能である。この場合、通信フレームデータに格納された電子署名f5内の計時カウンタがフリーズ状態で受信部5に受信され続ける。このため、受信部5は、計時カウンタ情報を比較処理することにより、フリーズ状態の計時カウンタ情報を許容誤差の範囲外と判定し、通信フレームデータを破棄することができる。
また、攻撃者が計時カウンタ情報の許容誤差範囲の時間内で高速に通信フレームデータをキャプチャし、電子署名f5だけをそのままにして、制御通信データf4を改ざんする場合がある。この場合であっても、受信部5はチェックコードf12が不一致であることにより、通信フレームデータを破棄することができる。
また、高速に動作する攻撃者が、過負荷状態にする目的で時間局所的にキャプチャした通信フレームデータを連続発行した場合には、シーケンス番号f13がインクリメントされずにフリーズして見えるため、シーケンス番号チェックにより、通信フレームデータを破棄することができる。
以上の認証処理は、FCSチェックを通過した通信フレームデータに対して実施される。このため、認証破棄される通信フレームデータを検知するということは、人為的に不正介入した第三者が存在している可能性があると判断することができる。
よって、システム管理者は、認証破棄状態の検知が単位時間あたりに頻発するようであればセキュリティ攻撃を受けているとみなす。そして、攻撃を受けていると疑われる通信装置2A〜2Mのいずれかを制御システムからの切り離し、それに準ずる縮退運転、運転系の切替え、又は制御システム自体を一旦停止する、等の保全措置を講じることができる。
また、本実施の形態例は、シンプル、かつ小規模なハードリソースで実現可能であり、FPGA(Field Programmable Gate Array)等に容易に実装できる。本実施の形態例に係る機能をソフトウェアにより実装することも可能であるが、ハードウェアであれば、通常のフレーム処理と認証処理を並列に実施できるため、時間的なオーバヘッドが皆無となる。また、ハードウェアで実現する際、認証判定回路46の機能をOSI参照モデルでいうレイヤ2以下で実装可能なため、過負荷攻撃があったとしてもレイヤ3以上の処理が圧迫されることがない、といった特徴をもつ。
また、電子文書に署名を付加する方式として、ISO/IEC18014で標準化された電子文書のタイムスタンプサービスを用いたものがある。このサービスでは、TSA(Time-Stamping Authority)が電子文書のハッシュ値とタイムスタンプを結合させたタイムスタンプトークンを生成し、発行することで電子文書作成日付の信頼性を保証することができる。このサービスでは電子署名f5を生成するために「計時」を用いる点で本実施の形態例に係る動作と類似しているが、本実施の形態例に係る受信部5では受信したデータの有効期限を認証判定条件に設けている点が異なる。つまり、電子署名f5の効力に、時間局在性を持たせている点が本発明の特徴である。例えば、電子署名f5に符号化された計時カウンタ情報f11が含まれることにより、計時カウンタ情報f11の許容範囲外となるタイミングで受信した通信フレームデータは破棄される。これにより古い制御通信データを含む通信フレームデータを制御装置3が取り込むことがなくなり、制御装置3が誤った処理を行わなくなる。
また、本実施の形態例に係る認証処理は、制御システムの直接的なリスクである「制御停止、停滞」、及び「制御の暴走」を防止することをセキュリティ要件として掲げる。そして、本認証処理は、リアルタイム性を損なうことなく悪意ある第三者からの「過負荷アクセス攻撃」、「偽装アクセス攻撃(データ改ざん)」から制御システムを保護することが可能となる。また、フレーム情報に対して、乱数によってランダマイズされた計時情報付きの電子署名f5を付加することで、制御システムを保護することが可能となる。
なお、送受信に際して通信フレームデータに秘匿を要する任意のデータがある場合、任意のデータのみを暗号化対象に含めれば、データの一部だけを暗号化する「部分暗号」に本実施の形態例に係る方法を応用可能である。このとき、送信部4の電子署名生成部6は、制御通信データf4の一部を電子署名f5に含ませることで、制御通信データf4の一部をも暗号化対象とする。そして、受信部5の判定部8は、電子署名f5を復号して得た制御通信データf4の一部を通信フレームデータの判定に用いないようにする。これにより秘匿を要するデータだけを暗号化し、復号することが可能となる。
[2.第2の実施の形態例]
次に、本発明の第2の実施の形態例に係る受信部5の動作例について説明する。
図8は、第2の実施の形態例に係る認証判定回路46の状態遷移の例を示す説明図である。ここでは、計時カウンタ情報の同期を考慮しない方法について説明する。
この場合、送信部4は、計時カウンタ回路13を備えていない。ブロック生成部17は、チェックコードf12、シーケンス番号f13、及び乱数f14からそれぞれ単ビット単位、又は複数ビット単位で分離した単位固定長のビットを並べ替えてブロックd8〜d10を生成する。そして、符号化部21は、ブロックd8〜d10に基づいて、電子署名f5を生成する。
また、受信部5は、計時カウンタ回路37、第1判定回路38を備えていない。このため、情報抽出部7は、第2判定回路40、第3判定回路42、第4判定回路45により所定の判定を行い、認証判定回路46は、これらの判定回路の判定結果に基づいて状態が遷移し、通信フレームデータに対する処理を行う。
認証判定回路46の状態は、認証中間判定OK71、認証判定OK72、認証未判定73、認証判定NGの各状態を遷移する。初期状態である認証未判定73から認証中間判定OK71、認証判定OK72、認証判定NG74に遷移する条件は、図7に示した認証未判定53から認証中間判定OK51、認証判定OK52、認証判定NG54に遷移する条件と同じである。
ただし、図8では計時カウンタ情報の同期状態60に該当する状態がなく、代わりに認証判定OK72から認証未判定73に遷移する遷移条件が追加された点が異なる。この遷移条件は、フレーム受信処理と、第1記憶回路43の前周期の計時カウンタ情報f11を、第2記憶回路44にシフトする処理が完了した時である。以降、他の通信装置から通信フレームデータを受信する通信間隔時間が、第4判定回路45が判定する許容誤差範囲内であれば、認証判定回路46は、認証未判定73と認証判定OK72の状態遷移を繰り返す。
このように計時カウンタ情報の許容誤差の範囲を広くしても支障がないと運用者が判断できるのであれば、通信装置間の同期をとることなく、通信フレームデータの送受信に必要とされるセキュリティを実現することが可能となる。
本実施の形態例によれば、計時カウンタ回路37及び第1判定回路38の実装が不要となるため、受信部5を構成するハードウェアの実装が簡素化されて製造コストを低減することができる。
なお、本実施の形態例において、先述した一過性ノイズによるフレーム欠損の影響を第4判定回路45にて予め考慮しておく必要がある。具体的には許容誤差を大きくしなければならなくなる点である。例えば、通信フレームデータの受信間隔がTミリ秒とする。一過性のノイズがないときは、第1記憶回路43と第2記憶回路44に格納された計時カウンタ情報の差分は常にTミリ秒程度となるため、第4判定回路45には、Tミリ秒に多少のマージンを加えた値でよい。しかし、一過性ノイズがN回連続する可能性があると想定した場合には、この許容誤差をN×Tミリ秒にマージンを加えた値にしなくてはならず、電子署名f5の有効期限である時間局在性が弱くなることにつながる。この点に注意すれば、本実施の形態例においても十分に実用性が高いと言える。
[3.変形例]
なお、上述した第1及び第2の実施の形態例に係る送信部4及び受信部5は、それぞれ送信機能だけを有する送信装置、受信機能だけを有する受信装置として用いてもよい。
図9は、通信システム1Aのシステム構成図を示す。
通信システム1Aは、送信装置9と受信装置10を備えており、送信装置9から受信装置10に通信フレームデータを片方向に送受信する。
送信装置9は、制御装置3と送信部4を備え、ネットワークNを介して受信装置10に通信フレームデータを送信する。
受信装置10は、制御装置3と受信部5を備え、ネットワークNを介して送信装置9から通信フレームデータを受信する。
このような構成とした通信システム1Aであっても、通信フレームデータを安全に送受信することが可能である。
また、電子署名生成部6は、複数の変換テーブル19を有し、電子署名f5を生成するために用いられた変換テーブル19に関する情報を電子署名f5に付加する。そして、情報抽出部7は、複数の逆変換テーブル34を有し、電子署名f5に付加された変換テーブル19に関する情報に基づいて選択した逆変換テーブル34を用いて電子署名f5を復号する。このように複数の変換テーブル19と、複数の逆変換テーブル34を用いることにより、一つの変換テーブル19、逆変換テーブル34の情報が外部に流出したとしても、直ちに他の変換テーブル19、逆変換テーブル34に切替えて処理を継続することができる。
また、本発明は上述した実施の形態例に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
例えば、上述した実施の形態例は本発明を分かりやすく説明するために装置及びシステムの構成を詳細且つ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態例の構成の一部を他の実施の形態例の構成に置き換えることは可能であり、さらにはある実施の形態例の構成に他の実施の形態例の構成を加えることも可能である。また、各実施の形態例の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1…通信システム、2A〜2M…通信装置、3…制御装置、4…送信部、5…受信部、6…電子署名生成部、7…情報抽出部、8…判定部、12…送信ポート、21…符号化部、30…復号部、31…受信ポート

Claims (9)

  1. 他の通信装置に対して通信フレームデータ(自)を送信する送信部と、
    前記他の通信装置から通信フレームデータ(他)を受信する受信部と、を備え、
    前記送信部は、
    制御装置から受信する制御通信データ(自)に基づいて生成される第1のチェックコード(自)、前記通信フレームデータ(自)の送信順を示す第1のシーケンス番号(自)、及び乱数(自)を、それぞれ所定単位で分離し、所定の順序で並び替えたビット数列集合からなるブロック(自)、可逆な変換テーブルであるエンコーダにより変換した電子署名(自)を生成する電子署名生成部と、
    前記電子署名(自)を前記制御通信データ(自)に付加した前記通信フレームデータ(自)を他の通信装置に送信する送信ポートと、を備え
    前記電子署名生成部は、
    第1の計時カウンタ情報(自)を生成する第1の計時カウンタ情報生成部と、
    前記制御通信データ(自)から前記第1のチェックコード(自)を生成する第1のチェックコード生成部と、
    前記通信フレームデータ(自)が送信される度にインクリメントされる前記第1のシーケンス番号(自)を生成するシーケンス番号生成部と、
    前記乱数(自)を生成する乱数生成部と、
    前記第1の計時カウンタ情報(自)、前記第1のチェックコード(自)、前記第1のシーケンス番号(自)、及び前記乱数(自)からそれぞれ単ビット単位、又は複数ビット単位で分離した単位固定長のビットを並べ替えて前記ブロック(自)を生成するブロック生成部と、
    前記ブロック生成部により前記第1の計時カウンタ情報(自)、前記第1のチェックコード(自)、前記第1のシーケンス番号(自)、及び前記乱数(自)が少なくとも1ビット以上格納された前記ブロック(自)を前記エンコーダにより変換して前記電子署名(自)を生成する符号化部と、を有し、
    前記受信部は、
    前記他の通信装置から受信した前記通信フレームデータ(他)から、前記通信フレームデータ(他)に付加された電子署名(他)を取り出す受信ポートと、
    前記電子署名(他)、可逆な逆変換テーブルであるデコーダにより逆変換したブロック(他)に少なくとも1ビット以上含まれる第1のチェックコード(他)、第1のシーケンス番号(他)、及び乱(他)、前記ブロック(他)から前記所定の順序で並び替えて抽出する情報抽出部と、
    前記ブロック(他)から抽出された前記第1のチェックコード(他)と前記通信フレームデータ(他)の制御通信データ(他)から生成された第2のチェックコード(他)を比較した結果と、前記ブロック(他)から抽出された前記第1のシーケンス番号(他)と、前周期の前記通信フレームデータ(他)に付加された第2のシーケンス番号(他)とを比較した結果とに基づいて、前記通信フレームデータ(他)を正常と判定した場合に、前記制御装置による前記制御通信データ(他)の取り込みを許可する判定部と、を備え、
    前記情報抽出部は、
    前記通信フレームデータ(他)から取出された前記電子署名(他)を前記デコーダにより逆変換して、前記ブロック(他)に復号する復号部と、
    前記ブロック(他)から抽出した単位固定長のビットを前記所定の順序で並べ替えて、前記第1のチェックコード(他)、前記第1のシーケンス番号(他)、及び前記乱数(他)を取り出すビット抽出部と、
    前記通信フレームデータ(他)の前記制御通信データに基づいて前記第2のチェックコード(他)を生成する第2のチェックコード生成部と、
    前周期の前記通信フレームデータ(他)から取り出された前記第1のシーケンス番号を記憶するシーケンス番号記憶部と、
    現周期の前記通信フレームデータ(他)から抽出された第1の計時カウンタ情報(他)を記憶する第1の計時カウンタ情報記憶部と、
    前周期の前記通信フレームデータ(他)から抽出された前記第1の計時カウンタ情報(他)を記憶する第2の計時カウンタ情報記憶部と、を有し、
    前記判定部は、
    前記通信フレームデータ(他)から抽出された第1のチェックコード(他)と、前記通信フレームデータ(他)の前記制御通信データ(他)から生成された第2のチェックコード(他)との相違を判定するチェックコード判定部と、
    現周期の前記通信フレームデータ(他)から抽出された前記通信フレームデータ(他)の送信順を示す第1のシーケンス番号(他)と、前記シーケンス番号記憶部に記憶された、前周期の前記通信フレームデータ(他)から抽出された前記第2のシーケンス番号(他)との相違を判定するシーケンス番号判定部と、
    前記第1の計時カウンタ情報記憶部に記憶される現周期の前記第1の計時カウンタ情報(他)と、前記第2の計時カウンタ情報記憶部にシフトされた前周期の前記第1の計時カウンタ情報(他)との差分が第1の誤差の範囲内であるかを判定する周期間差分判定部と、
    前記チェックコード判定部、前記シーケンス番号判定部及び前記周期間差分判定部の判定結果が正常であれば、前記制御装置による前記制御通信データ(他)の取り込みを許可し、前記判定結果が異常であれば、前記通信フレームデータ(他)を破棄する認証判定部と、を有する
    通信装置。
  2. 前記電子署名生成部は、複数の前記エンコーダを有し、前記電子署名(自)を生成するために用いられた前記エンコーダに関する情報を前記電子署名(自)に付加する
    請求項に記載の通信装置。
  3. 前記情報抽出部は、第2の計時カウンタ情報(他)を生成する第2の計時カウンタ情報生成部を備え、
    前記判定部は、前記通信フレームデータ(他)から抽出された前記第1の計時カウンタ情報(他)と、前記第2の計時カウンタ情報(他)との差が第2の誤差範囲内にあるか否かを判定する現周期差分判定部を備え、
    前記認証判定部は、前記現周期差分判定部、前記チェックコード判定部及び前記シーケンス番号判定部の判定結果に基づいて前記通信フレームデータ(他)に対する処理を行う
    請求項1又は2に記載の通信装置。
  4. 前記第1のチェックコード(他)及び前記第2のチェックコード(他)が一致し、かつ前記第1のシーケンス番号(他)及び前記第2のシーケンス番号(他)が異なっている場合に、前記情報抽出部は、前記第1の計時カウンタ情報記憶部に記憶される前周期の前記第1の計時カウンタ情報(他)を前記第2の計時カウンタ情報記憶部にシフトし、現周期の前記第1の計時カウンタ情報(他)を前記第1の計時カウンタ情報記憶部に記憶する
    請求項に記載の通信装置。
  5. マスタとなる前記他の通信装置によって生成された前記第1の計時カウンタ情報(他)と、前記第2の計時カウンタ情報(他)との同期がされていない同期未完状態であり、
    前記第1の計時カウンタ情報記憶部に記憶される現周期の前記第1の計時カウンタ情報(他)と、前記第2の計時カウンタ情報記憶部にシフトされた前周期の前記第1の計時カウンタ情報(他)との差分が前記第1の誤差の範囲内である場合に、
    前記第2の計時カウンタ情報生成部は、前記第1の計時カウンタ情報記憶部に記憶される現周期の前記第1の計時カウンタ情報(他)を自身に複写することで、前記第1の計時カウンタ情報(他)に前記第2の計時カウンタ情報(他)を同期させる
    請求項に記載の通信装置。
  6. 前記情報抽出部は、複数の前記デコーダを有し、前記電子署名(他)に付加された前記エンコーダに関する情報に基づいて選択した前記デコーダを用いて前記電子署名(他)を復号する
    請求項に記載の通信装置。
  7. 前記電子署名生成部は、前記制御通信データ(自)の一部を含めて生成された前記電子署名(自)を符号化し、
    前記判定部は、前記電子署名(他)を復号して得た前記制御通信データ(他)の一部を前記通信フレームデータ(他)の判定に用いない
    請求項1に記載の通信装置。
  8. 制御装置から受信する制御通信データ(自)に基づいて生成される第1のチェックコード(自)、通信フレームデータ(自)の送信順を示す第1のシーケンス番号(自)及び乱数(自)を、それぞれ所定単位で分離し、所定の順序で並び替えたビット数列集合からなるブロック(自)をエンコーダにより変換した電子署名(自)を生成する電子署名生成部と、
    前記電子署名(自)を前記制御通信データ(自)に付加した前記通信フレームデータ(自)を他の通信装置に送信する送信ポートと、を備え
    前記電子署名生成部は、
    第1の計時カウンタ情報(自)を生成する第1の計時カウンタ情報生成部と、
    前記制御通信データ(自)から前記第1のチェックコード(自)を生成する第1のチェックコード生成部と、
    前記通信フレームデータ(自)が送信される度にインクリメントされる前記第1のシーケンス番号(自)を生成するシーケンス番号生成部と、
    前記乱数(自)を生成する乱数生成部と、
    前記第1の計時カウンタ情報(自)、前記第1のチェックコード(自)、前記第1のシーケンス番号(自)、及び前記乱数(自)からそれぞれ単ビット単位、又は複数ビット単位で分離した単位固定長のビットを並べ替えて前記ブロック(自)を生成するブロック生成部と、
    前記ブロック生成部により前記第1の計時カウンタ情報(自)、前記第1のチェックコード(自)、前記第1のシーケンス番号(自)、及び前記乱数(自)が少なくとも1ビット以上格納された前記ブロック(自)を前記エンコーダにより変換して前記電子署名(自)を生成する符号化部と、を有する
    送信装置。
  9. 他の通信装置によって送信された通信フレームデータ(他)を受信し、前記通信フレームデータ(他)から電子署名(他)を取り出す受信ポートと、
    前記電子署名(他)、可逆な逆変換テーブルであるデコーダにより逆変換したブロック(他)に少なくとも1ビット以上含まれる第1のチェックコード(他)、第1のシーケンス番号(他)及び乱数(他)、前記ブロック(他)から所定の順序で並び替えて抽出する情報抽出部と、
    前記ブロック(他)から抽出された前記第1のチェックコード(他)と前記通信フレームデータ(他)の制御通信データ(他)から生成された第2のチェックコード(他)を比較した結果と、前記ブロック(他)から抽出された前記第1のシーケンス番号(他)と、前周期の前記通信フレームデータ(他)に付加された第2のシーケンス番号(他)とを比較した結果とに基づいて、前記通信フレームデータ(他)を正常と判定した場合に、制御装置による前記制御通信データ(他)の取り込みを許可する判定部と、を備え
    前記情報抽出部は、
    前記通信フレームデータ(他)から取出された前記電子署名(他)を前記デコーダにより逆変換して、前記ブロック(他)に復号する復号部と、
    前記ブロック(他)から抽出した単位固定長のビットを前記所定の順序で並べ替えて、前記第1のチェックコード(他)、前記第1のシーケンス番号(他)、及び前記乱数(他)を取り出すビット抽出部と、
    前記通信フレームデータ(他)の前記制御通信データに基づいて前記第2のチェックコード(他)を生成する第2のチェックコード生成部と、
    前周期の前記通信フレームデータ(他)から取り出された前記第1のシーケンス番号を記憶するシーケンス番号記憶部と、
    現周期の前記通信フレームデータ(他)から抽出された第1の計時カウンタ情報(他)を記憶する第1の計時カウンタ情報記憶部と、
    前周期の前記通信フレームデータ(他)から抽出された前記第1の計時カウンタ情報(他)を記憶する第2の計時カウンタ情報記憶部と、を有し、
    前記判定部は、
    前記通信フレームデータ(他)から抽出された第1のチェックコード(他)と、前記通信フレームデータ(他)の前記制御通信データ(他)から生成された第2のチェックコード(他)との相違を判定するチェックコード判定部と、
    現周期の前記通信フレームデータ(他)から抽出された前記通信フレームデータ(他)の送信順を示す第1のシーケンス番号(他)と、前記シーケンス番号記憶部に記憶された、前周期の前記通信フレームデータ(他)から抽出された前記第2のシーケンス番号(他)との相違を判定するシーケンス番号判定部と、
    前記第1の計時カウンタ情報記憶部に記憶される現周期の前記第1の計時カウンタ情報(他)と、前記第2の計時カウンタ情報記憶部にシフトされた前周期の前記第1の計時カウンタ情報(他)との差分が第1の誤差の範囲内であるかを判定する周期間差分判定部と、
    前記チェックコード判定部、前記シーケンス番号判定部及び前記周期間差分判定部の判定結果が正常であれば、前記制御装置による前記制御通信データ(他)の取り込みを許可し、前記判定結果が異常であれば、前記通信フレームデータ(他)を破棄する認証判定部と、を有する
    受信装置。
JP2015168751A 2015-08-28 2015-08-28 通信装置、送信装置及び受信装置 Active JP6480291B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015168751A JP6480291B2 (ja) 2015-08-28 2015-08-28 通信装置、送信装置及び受信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015168751A JP6480291B2 (ja) 2015-08-28 2015-08-28 通信装置、送信装置及び受信装置

Publications (3)

Publication Number Publication Date
JP2017046268A JP2017046268A (ja) 2017-03-02
JP2017046268A5 JP2017046268A5 (ja) 2017-10-19
JP6480291B2 true JP6480291B2 (ja) 2019-03-06

Family

ID=58212227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015168751A Active JP6480291B2 (ja) 2015-08-28 2015-08-28 通信装置、送信装置及び受信装置

Country Status (1)

Country Link
JP (1) JP6480291B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02177742A (ja) * 1988-12-28 1990-07-10 Fujitsu Ltd 通信秘匿方式
CA2349519C (en) * 1998-10-30 2011-08-09 Science Applications International Corporation An agile network protocol for secure communications with assured system availability
CN101536398B (zh) * 2006-11-17 2012-11-07 耶德托公司 用于白盒实现的加密方法
JP5919205B2 (ja) * 2013-01-28 2016-05-18 日立オートモティブシステムズ株式会社 ネットワーク装置およびデータ送受信システム
JP6126980B2 (ja) * 2013-12-12 2017-05-10 日立オートモティブシステムズ株式会社 ネットワーク装置およびネットワークシステム

Also Published As

Publication number Publication date
JP2017046268A (ja) 2017-03-02

Similar Documents

Publication Publication Date Title
CN103581173B (zh) 一种基于工业以太网的数据安全传输方法、***及装置
CN101631080B (zh) 基于epa协议的工业以太网交换机和报文转发方法
Khurana et al. Design principles for power grid cyber-infrastructure authentication protocols
US8520839B2 (en) Data transmitter with a secure and efficient signature
US7464171B2 (en) Effective protection of computer data traffic in constrained resource scenarios
CN105009507A (zh) 借助于物理不可克隆函数创建从加密密钥中推导的密钥
US20100180123A1 (en) Procedure and architecture for the protection of real time data
Wu et al. Leaked-state-forgery attack against the authenticated encryption algorithm ALE
CN113824705B (zh) 一种Modbus TCP协议的安全加固方法
WO2012140144A1 (en) Method and system for improving the synchronization of stream ciphers
Musa et al. Secure security model implementation for security services and related attacks base on end-to-end, application layer and data link layer security
Cherifi et al. A practical implementation of unconditional security for the IEC 60780-5-101 SCADA protocol
US9515989B1 (en) Methods and apparatus for silent alarm channels using one-time passcode authentication tokens
Zou et al. The study of secure CAN communication for automotive applications
Jin et al. Snapshotter: Lightweight intrusion detection and prevention system for industrial control systems
Pérez-Resa et al. Chaotic encryption applied to optical Ethernet in industrial control systems
Essa et al. Cyber physical sensors system security: threats, vulnerabilities, and solutions
CN102255727A (zh) 改进的基于用户自定义算法环境的防攻击智能卡认证方法
Kornaros et al. Trustnet: ensuring normal-world and trusted-world can-bus networking
JP6480291B2 (ja) 通信装置、送信装置及び受信装置
CN109886011B (zh) 一种安全防护方法和装置
US20150220755A1 (en) Solution for security, safe and time integrity communications in automotive environments
Ozturk et al. SCADA security: challenges and solutions
Castiglione et al. Towards a lawfully secure and privacy preserving video surveillance system
Jin Cryptographic Solutions for Cyber-Physical System Security

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170908

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190207

R150 Certificate of patent or registration of utility model

Ref document number: 6480291

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150