データ送信処理装置及びデータ送信プログラム
【課題】権限の異なる複数の機能が混在したネットワーク機器の安全性を、複雑で無く、保持できるようにしたネットワーク機器を認証する。
【解決手段】本開示の一形態に係るデータ送信処理装置11は、パケット受信部111、処理方法判定部112、送出方法定義リスト記憶部113、送出元モジュール特定部114、データ変換部115、送信部116を有する。受信したデータを送出したモジュールを特定して、送出方法定義リスト記憶部113に記憶される送出方法定義リストを参照して処理方法を決定して、送出方法判定部112が通信可能と判断した場合は、データ等を送出する。
【解決手段】本開示の一形態に係るデータ送信処理装置11は、パケット受信部111、処理方法判定部112、送出方法定義リスト記憶部113、送出元モジュール特定部114、データ変換部115、送信部116を有する。受信したデータを送出したモジュールを特定して、送出方法定義リスト記憶部113に記憶される送出方法定義リストを参照して処理方法を決定して、送出方法判定部112が通信可能と判断した場合は、データ等を送出する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明の実施形態は、データを送信する技術に関する。
【背景技術】
【0002】
従来、通信回線で接続された複数の機器またはプログラム同士が通信を行う際の認証(Authentication)の形態としては、(A)通信機器が認証機能を持つ機器認証方式、(B)各モジュールが個別に認証機能を持つモジュール認証方式の2つが多く用いられている。
【0003】
まず、(A)の機器認証方式では単一の機器内に複数のモジュールが実装された場合であっても、認証の対象は1個体として扱う。インタネット・プロトコル(IP)の実装されたネットワーク・コンピュータでは、1つのIPアドレスを持つ機器1台を1個体と考え、機器に対応する秘密鍵により生成された認証子をIPパケットに付加して送信する。機器認証方式に属するものとしては、ネットワークインタフェース固有のID番号(MACアドレス)を用いた認証や、IPsec(Security Architecture for Internet Protocol)に代表される暗号技術に基く認証、さらにはそれを応用したVPN(Virtual Private Network)などが広く普及している。
【0004】
また、(B)のモジュール認証方式では、各モジュールが個別に認証用のIDまたは鍵を持ち、それらを用いた認証用アルゴリズムを実装することによってIPアドレス等とは関係無く通信相手との認証を行う。モジュール認証方式では、一般にいかなる認証方法でもプログラム実行できるため方式を限定することなくさまざまな暗号技術等を適用することができる。例えばSSH(Secure SHell)プロトコルなどが使われる。
【0005】
これら従来の認証方式は、機能が限定された産業用機器の通信や、汎用のPC(パーソナルコンピュータ)などによるインターネット・アプリケーションで利用されている。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】IP Authentication using Keyed MD5 (P. Metzger他 1995/8 IETF RFC1828)
【非特許文献2】IP Authentication Header (S. Kent BBN Technologies 2005/12 IETF RFC4302)
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、通信ネットワークの普及により利用形態が複雑化した機器を認証する場合において、従来のネットワーク機器の認証装置では、権限の異なる複数の機能が混在することにより、アプリケーションのデータ処理のミスなどを原因として送信部より誤送信を行い、本来の認証機能が有効に働かなかったり、あるいは、不正に入り込んだコンピュータ・ウイルスが送信部に不正なデータを送り込んだりすることを防ぐのは難しく、権限の異なる複数の機能が混在する機器の安全性を保つことが難しいという問題があった。
【0008】
また、これを防ぐために、権限の異なる複数の機能それぞれに独立した認証機能を持たせた場合においては、実装が複雑になり、機器のシステムの安全性を維持することが難しいという問題があった。
【0009】
そこで、この発明の一観点は、権限の異なる複数の機能が混在したネットワーク機器の安全性を、複雑で無く、保持できるようにしたネットワーク機器の認証方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本発明の一実施形態に係るデータ送信処理装置は、データをデータ受信部で受信し、データを送出したモジュールを送出元モジュール特定部で特定する。送出元モジュール毎に定義された、データ変換方法もしくは通信の可否を含む前記データの処理方法を示す送出方法定義リストを送出方法定義リスト記憶部に記憶しておき、処理方法判定部が送出元モジュール特定部によって特定された送出元モジュールに対応する処理方法を、送出方法定義リストを参照し決定する。処理方法判定部の決定した処理方法に前記データの変換方法が含まれる場合は、データ変換部はデータを変換し、処理方法判定部が通信可能と判断した場合は、送信部はデータまたは変換されたデータを送出する。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態にかかるシステム構成を示す図。
【図2】第1の実施形態にかかるシステムの動作概要を示す図。
【図3】第1の実施形態にかかる送出方法定義リストの例を示す図。
【図4】第1の実施形態にかかる受信データおよび送信データの例を示す図。
【図5】第2の実施形態にかかるシステム構成を示す図。
【図6】第3の実施形態にかかるシステム構成を示す図。
【図7】第4の実施形態にかかる送出方法定義リストの例を示す図。
【図8】第4の実施形態にかかる受信データおよび送信データの例を示す図。
【図9】第5の実施形態にかかるシステム構成の一部を示す図。
【図10】第6の実施形態にかかるプロセステーブル例を示す図。
【図11】第6の実施形態にかかる送出方法定義リストの例を示す図。
【図12】実施形態の発明が適用される場面例を示す図である。
【発明を実施するための形態】
【0012】
(第1の実施形態)
以下に図面を参照して、この発明にかかる第1の実施形態を詳細に説明する。
【0013】
図1は、本実施形態のデータ送信システムとそのシステムと連携する機器の構成を示す図であり、インタネット等の公衆ネットワークを介して接続された電力監視機器群の配置例とその機能ブロックを示している。
【0014】
本実施形態のデータ送信システムは、スマートメーター1、コントロール部データ受信サーバ2、電力量受信サーバ3を有する。本実施形態のデータ送信システムは、ディスプレイ4とHEMS5(Home Energy Management System:ホームサーバ)と接続されており、HEMS5は家電機器6と接続している。
【0015】
スマートメーター1は、一般家庭やビル、工場などの電力消費ポイント(需要家)に設けられた電力計(メータ)であり、ネットワークに接続する機能を有している。
【0016】
スマートメーター1は、電力測定部12、コントロール部13、パケット受信部111、処理方法判定部112、送出方法定義リスト記憶部113、送出元モジュール特定部114、データ変換部115、送信部116を有する。また、パケット受信部111、処理方法判定部112、送出元モジュール特定部114、送出方法定義リスト記憶部113、データ変換部115、送信部116を有する部分を送信処理部11(送信処理装置)とする。なお、スマートメーター1は、電力網の制御に関わるさまざまな機能モジュールを持つことができるが、本実施形態では説明を簡略化しており、他の機能モジュールを有していても良い。
【0017】
ここで、モジュールとは、ある1つの処理(処理単位)をいう。典型的にはコンピュータの1実行主体(プロセス)のことであるが、場合によってはプログラムの格納された1ファイル(exeファイル)や、実装された1機能(共有ライブラリやdllファイルなど)と考えても良い。また、ソフトウエアで実装されたプログラムでも良いし、ある機能を実装したハードウエアであっても良い。
【0018】
電力測定部12は、専ら使用電力量などの重要データを扱う。電力測定部12は、電力線に接続されており、電力線に接続され機器の電力量の測定をする。例えば、図1では家電機器6が電力線にされており、電力測定部12は家電機器6の電力量を測定するが、これに限られず、電力線に接続されている機器であれば、電力量を測定できる。また、電力測定部12は測定した電力量を含むデータ(パケット)を後述するコントロール部13、パケット受信部111に送信する。
【0019】
コントロール部13は、家庭内の家電機器6コントロールや消費電力の表示など雑多なデータを扱う。コントロール部13は、電力測定部12からのデータを受信する。コントロール部13は、家庭内に設置されたディスプレイ4への表示機能のコントロールや、家電機器6と連携したHEMS5とのデータ送受信を行ってHEMS5のコントロールを行っても良い。これらのデータのやり取りについては従来技術と何等変わるところが無いので、詳細な説明および図示は省略する。また、コントロール部13では、コントロール部13で扱うデータ(パケット)を後述するパケット受信部111に送信する。
【0020】
HEMS5は、コントロール部13と接続されているほかに、家電機器6と接続されている。HEMS5はHEMS5が保持する情報を利用して、家電機器6を制御したり、家電機器6から情報を入手しても良い。
【0021】
電力測定部12とコントロール部は基本的には独立のものであるが、システムによっては電力測定部12で計測したデータの一部をコントロール部13に渡して処理することも考えられる。
【0022】
パケット受信部111は、受信したデータ(パケット)を後述する処理方法判定部112に送信する。
【0023】
処理方法判定部112は、パケット受信部111からデータ(パケット)を受信すると、後述する送出元モジュール特定部114にデータ(パケット)を送信し、受信したデータ(パケット)の送出元モジュールの識別情報を入手する。ここで、送出元モジュールの識別情報とは、データ(パケット)を送出した元のモジュールを識別する情報であり、本実施形態の例では、電力測定部12またはコントロール部13のモジュールを示す名称などであるが、データ(パケット)を送出した元のモジュールを識別する情報であれば、これに限定されるものではない。
【0024】
処理方法判定部112は、データ(パケット)の送出元モジュールの識別情報と、送出方法定義リストに記載された処理方法に関する情報とを、送出元モジュールの識別情報をキーとして照らし合わせた上で、パケットの処理方法を確定する(送出元モジュールに対応する処理方法を、送出方法定義リストを参照し決定する)。そして、処理方法判定部112は、通信が許可されているものについてはデータ(パケット)を送出し、必要な場合は後述するデータ変換部115に処理方法(処理方法情報)や鍵も送出する。
【0025】
送出方法定義リスト記憶部113は、送出方法定義リストを記憶する。送出方法定義リストは、送出元モジュールの識別情報と通信の可否との対応付けた情報または送出元モジュールの識別情報とデータ変換方法とを対応付けた情報を有する(送出元モジュール毎に定義された、データ変換方法もしくは通信の可否を含む前記データの処理方法を示す情報を有する)。例えば、あるパケットの送出を許可し、またあるパケットは送出を禁止する情報である。また、送出を許可するパケットについては認証子を付加して送出したり、暗号化してから送出したりすることもあり、これらのデータ変換方法のルールを記述する。また、認証子の作成や暗号化にあたって必要な「鍵」も保持する。ここで、鍵とは一般的な暗号技術で使われる鍵一般のことを広く指し、秘密鍵であるか公開鍵であるかといったことは特に限定しない。図3は、送出方法定義リストの例を示す図である。図3の例では、Prog1、Prog2、Prog3、Miscについて送出方法が定義されている。以下に詳細を説明する。
【0026】
Prog1は、電力測定部12のプログラム・モジュールの名称である。
【0027】
通信は許可となっており、電力測定部12のプログラム・モジュールからのデータは通信を許可する。また、認証子はhmac−sha1となっており、転送時には hmac−sha1 アルゴリズムにより生成された認証子をパケットに付加する。
【0028】
hmac−sha1は、ハッシュ関数 sha1 に鍵を適用する方式 hmac を組み合わせた、良く知られた認証子生成方法であるので、その手順説明は省略する。また、hmac−sha1適用にあたっては、鍵である4f434e23f355 を用いる。実際には安全性の観点からより長い鍵を用いるのが普通であるが、説明文を簡略化するため短い鍵を表記している(以下同様)。
【0029】
また、暗号化はしないになっており、パケットの暗号化は行わない。ここで、鍵は、電力量受信サーバ3も同一の鍵を保持しているため、電力量受信サーバ3は鍵とhmac−sha1アルゴリズムを用いて演算した認証子がパケットに付加されている認証子の値と同一であることを以て、このパケットが、当該スマートメーター1の当該モジュール(電力測定部12)から送信されたパケットであるということを認証することができる。
【0030】
なお、この例ではProg1はパケットを暗号化しないものとして説明した。本実施例は、電力測定部12の測定したデータは盗聴されても構わないという立場だからである。言うまでもなく、必要に応じパケットを暗号化したり、誤ったサーバに送出されないようパケット・フィルタリングするような措置を施す方式も考えられるが、一般的な技術を利用するため本実施形態では特にそれを説明しない。
【0031】
一方、Prog2はコントロール部13のプログラム・モジュールの名称である。通信は許可となっており、コントロール部13からのデータは通信を許可する。また、認証子はhmac−md5となっており、転送時にはhmac−md5アルゴリズムにより生成された認証子をパケットに付加する。その際、鍵 である3a53f324fa47 を用いる。hmac−md5も良く知られた認証子生成方法であるのでその手順説明は省略する。さらに、暗号化アルゴリズムであるAESと、鍵 である3f233322434e を用いてパケットを暗号化する。暗号化の鍵の扱いについては本特許の核となる要件ではないため、実施形態概要を示した図1には図示を省略している。なお、暗号化の処理と、認証子の付加処理の順番については、特にどちらかでなければならないという制約は無く、システムに応じて暗号化を先に行っても良く、その場合には送出方法定義リストに記載する順番を逆にすれば良い。
【0032】
また、Prog3は一般ライブラリのプログラム・モジュールの1名称である。通信は拒否となっており、一般ライブラリからのパケットは通信を拒否することを示している。
【0033】
また、Misc は今までのリストに無かったプログラム・モジュールを示している。通信は拒否となっており、プログラム・モジュールの名称記載の無いものについては全て通信を拒否することを示している。
【0034】
このように図3の例では、各行毎に処理と処理方法を示す情報が記載されているが、他の方法で表現されても処理方法(処理内容)が特定できれば本例に限られない。
【0035】
送出元モジュール特定部114は、処理方法判定部112からデータ(パケット)を受信すると、パケットの識別情報とパケットの送出元モジュールの識別情報とが対応付けられたパケット送出元モジュール情報に基づいてパケットの送出元モジュールを特定する。そして、送信元モジュールの識別情報を処理方法判定部112に送出する。パケットの識別情報とはパケットを識別するための情報であり、単一の情報や複数の情報の組み合わせであっても良い。
【0036】
パケットの送出元モジュールを知る方法の例を示す。例えばパケット受信部111の受信するデータがIPv4のTCPパケットである場合、そのパケットはRFC791で規定されたIPv4(Internet Protocol version 4)およびRFC793で規定されたTCP(Transmission Control Protocol)の構造になっているので、そのデータを参照することにより、Destination Address(送信先IPアドレス)、Source Port(ソースポート番号)、Destination Port(宛先ポート番号)などの情報が判る。
【0037】
データ変換部115は、処理方法判定部112からデータ(パケット)と処理方法(処理方法情報)を受信すると、データ(パケット)に処理方法に従った変換処理を行う(処理方法判定部112の決定した処理方法に前記データの変換方法が含まれる場合は、前記データを変換する)。変換処理としては、暗号化や認証子の付加などを行う。そして、変換処理されたデータ(パケット)を送信部に送出する。例えば、図3の例では、データ(パケット)の送出元モジュールがProg1であった場合は、認証子をhmac−sha1で鍵4f434e23f355に基づいて生成する。そのため、図4のようにデータ(パケット)に認証子が追加された形に変換される。こういった認証子の追加には例えばIPの拡張データフィールドを用いることができ、IPsecなどの従来技術においても用いられている。
【0038】
送信部116は、データ変換部から変換処理されたデータ(パケット)を受信し、スマートメーター1の外部に送信する。本実施形態ではコントロール部データ受信サーバ2または電力量受信サーバ3に送信する。その際、電力測定部12からのデータ(パケット)は電力量受信サーバ3へ送り、コントロール部13からのデータ(パケット)はコントロール部データ受信サーバ2へ送るという切り替えが発生する。これは一般のIP(Internet Protocol)技術においてパケット内に書かれているDestination Address(送信先IPアドレス)を元に切り替えることが従来より行われており、本実施形態においても実施できる。
【0039】
実際のシステムでは、セキュリティを高めるためプログラム・モジュール毎に送信可能なサーバを限定したり、送信先によってデータ変換方法を変えるなどのバリエーションが考えられるが、一般にファイア・ウォールと呼ばれているパケット・フィルタリング技術の単純な組み合わせで容易に実現可能であるため、それらバリエーションについては例示を省略する。
【0040】
コントロール部データ受信サーバ2は、送信部よりデータ(パケット)を受信する。電力会社によって管理されていても良いし、電力制御とは全く関係のないインタネット・サービス提供者によって管理される場合もある。
【0041】
電力量受信サーバ3は、送信部よりデータ(パケット)を受信する。電力量受信サーバ3は、電力会社の管理する変電所内に置かれたり、またはそのデータの中継点に設置されたMDMS(Meter Data Management System)に置かれ、各スマートメーター1の動作を監視している。
【0042】
本実施形態の動作の概要を図2を利用して説明する。パケット受信部111がデータ(パケット)を受信し、受信したデータ(パケット)を処理方法判定部112に送信する(S101)。
【0043】
処理方法判定部112は送出元モジュールの特定を送出元モジュール特定部114に依頼する(S102)。
【0044】
送出元モジュール特定部114はデータ(パケット)を送出中のモジュールを特定して、送出元モジュールの識別情報を処理方法判定部112に送信する(S103)。
【0045】
処理方法判定部112は送出元モジュールの識別情報と送出方法定義リスト記憶部113に記憶されている送出方法定義リストを用いてデータ(パケット)の処理方法を決定し、データ(パケット)が送信可能であればデータ変換部にデータ(パケット)を送信する(S104)。
【0046】
データ変換部115はデータ(パケット)の変換が必要な場合は変換をし、変換の必要が無い場合はそのままのデータ(パケット)を送信部116に送信する(S105)。
【0047】
データ送信部はデータ(パケット)をスマートメーター外に送信する(S106)。
【0048】
本実施形態により権限の異なる複数の機能が混在したネットワーク機器の安全性を、複雑で無く、保持できるようにしたネットワーク機器の認証方法を提供することができる。
【0049】
(第2の実施形態)
本実施形態の一実施例を図5を用いて以下に説明する。
【0050】
上述の実施形態と同様の機能については、説明は省略し、図1とは異なるOSカーネル14、OSカーネル・メモリ15、送出元モジュール特定部、電力測定部12−2、コントロール部を中心に説明する。
【0051】
OSカーネル14とは、プロセス管理を行う一般的なオペレーティング・システム(OS)と考えて良いが、実装法によっては単にライブラリ関数を切り替えるためのコンピュータ・プログラムの場合もある。
【0052】
OSカーネル14は、動作している各モジュールを管理する。さらに、各モジュールがOSカーネルにパケット受信部に送信を要求したパケットの情報もカーネル・メモリ内に保持している。そのため、カーネル・メモリ内の情報を参照することで、そのパケットを送出要求しているモジュールが何であるかを知ることができる。
【0053】
本実施形態では、OSカーネル14は、電力測定部12−2やコントロール部から情報を入手する。具体的には、電力測定部12−2やコントロール部で動作している各モジュールを管理し、各モジュールが送信したデータ(パケット)の情報もカーネル・メモリ内に保持している。また、電力測定部12−2やコントロール部13−2に何らかの情報を送信しても良い。
【0054】
電力測定部12−2は、電力測定部12−2内で動作している各モジュールはデータ(パケット)をパケット受信部111に送信することをOSカーネル14に要求する。OSカーネル14は要求されたデータ(パケット)をパケット受信部111に送信する。また、OSカーネル14はカーネル・メモリ15に要求した電力測定部12−2のモジュールの識別情報と送信したデータ(パケット)との対応付けて記憶する。コントロール部13−2は、コントロール部内で動作している各モジュールはデータ(パケット)をパケット受信部111に送信することをOSカーネル14に要求する。また、OSカーネル14はカーネル・メモリ15に要求したコントロール部13−2のモジュールの識別情報と送信したデータ(パケット)との対応付けて記憶する。
【0055】
OSカーネル・メモリ15は、各モジュールが送信したパケットの情報を一定期間記憶している。具体的には、電力測定部12−2やコントロール部13−2で動作している各モジュールがOSカーネル14に送信要求して送信中のデータ(パケット)の情報を記憶する。これは、一般的なOSのメカニズムとして、TCPのセッション管理などの目的で、パケットを送信した後にも、通信が完了するまでパケットの情報を保持する必要があるからである。少なくともパケットがスマートメータから外部に送信される迄の間、このパケットの情報は保持される。なお、OSカーネル・メモリ15に記憶したパケットの情報をいかなるタイミングで消去するかという点に関しては一般的なOSのメカニズムを利用するものとし、詳細説明は省略する。
【0056】
送出元モジュール特定部114−2は、処理方法判定部112からデータ(パケット)を受信すると、OSカーネル・メモリ15の情報を参照して、送出元モジュールの識別情報を特定する。そして、送出元モジュールの識別情報を処理方法判定部へ送信する。例えば、netstatコマンド、psコマンド、proc file system、等の名称で広く使われている。さらには、それをユーザに解釈されやすく整形したコマンド類(Windows(登録商標)用のTCPViewなど)も使われている。また、送出元モジュール特定部114−2は、処理方法判定部112からデータ(パケット)を受信すると、データ(パケット)の識別情報などをOSカーネル14に送出し、OSカーネル14が受信したデータ(パケット)の識別情報に対応する送出元モジュールの識別情報を抽出し、送出元モジュール特定部114−2に送出しても良い。
【0057】
(第3の実施形態)
上述の実施形態では、スマートメーター1は1つのOSカーネル14−3により管理された複数の機能モジュール(プログラム・ライブラリ)を用いて構成されているものとしているが、OSカーネル14−3等の実装形態については、言うまでもなく、その部分の設計はいかなるものであっても良い。
【0058】
本実施形態では、図6に例示するように、スマートメーター1が仮想マシン技術によって構成されていた例を説明する。仮想マシン技術とは、1つの計算機の上で複数のOSを同時に動作させ、OSをあたかもプログラムの1つであるかの如く扱う技術である。仮想マシン技術を実装したソフトウエアの例として VMware、Virtual PC、Xen などが広く使われている。
【0059】
仮想マシン技術を用いての構成例では、スマートメーター1は仮想マシンホストによって管理される。仮想マシンホストは、ホストOSと呼ばれることもある。ここで動作するOSは、ゲストOSと呼ばれるものであり、図6の例では仮想マシンゲストOS(1)16と仮想マシンゲストOS(2)17が動作している。各ゲストOSは同一種類のOSであっても、異なる種類のOSであっても良い。例えば1つはWindows(登録商標) OSであり、他方は Linux OSであって良い。
【0060】
このような構成では、各仮想マシンゲストOSは、各仮想マシンゲストOS毎に定められた特定のモジュールはデータ(パケット)をパケット受信部111に送信することを仮想マシンゲストOSに要求する。そして、各仮想マシンゲストOSは、受け付けた要求とデータ(パケット)をOSカーネル14−3に送信する。
【0061】
例えば、仮想マシンゲストOS(1)16は電力測定部12−3からのデータ(パケット)とパケット受信部111への送信要求を入手し、入手したデータ(パケット)とパケット受信部111への送信要求をOSカーネル14−3に送信する。仮想マシンゲストOS(2)16はコントロール部13−3からのデータ(パケット)とパケット受信部111への送信要求を入手し、入手したデータ(パケット)とパケット受信部111への送信要求をOSカーネル14−3に送信する。また、電力測定部12−3は仮想マシンゲストOS(1)16に情報を送信してもよく、コントロール部13−3は仮想マシンゲストOS(2)17に情報を送信してもよい。
【0062】
OSカーネル14−3は、仮想マシンゲストOS(1)または仮想マシンゲストOS(2)からデータ(パケット)とパケット受信部111への送信要求を受信する。そして、受信したデータ(パケット)をパケット受信部111に送信する。また、OSカーネル14−3は、仮想マシンゲストOSの識別情報と仮想マシンゲストOSから受信したデータ(パケット)とを対応付けた情報をOSカーネル・メモリ15−3に記憶させる。また、必要に応じて仮想マシンゲストOSの識別情報と仮想マシンゲストOSから受信したデータ(パケット)とを対応付けた情報を読み出す。また、送出元モジュール特定部からの要求に応じて、読み出した情報を送出元モジュール特定部114−3に送出したり、または、データ(パケット)を受信した仮想マシンゲストOSを特定して送出元モジュール特定部に送出する。
【0063】
また、上記例ではOSカーネルがパケット受信部111にデータ(パケット)を送信しているが、各仮想マシンゲストOSがパケット受信部111にデータ(パケット)を送信しても良い。
【0064】
このような構成のスマートメーター1においては、各仮想マシンゲストOS毎に定義された送出方法を送出方法定義リストに記述し、送出元モジュール特定部114−3が特定したゲストOS情報を利用して、処理方法判定部112が送信データの処理方法を判定することで、各ゲストOSに割り当てられた機能に応じたデータ送信を行うことができるので、例えば要求される安全性の大きく異なるゲストOSが混在するスマートメーター1においても、個別に複雑な認証メカニズムを実装することなく適切なアクセス制限を実現することができる。特に、実装上の理由で、コンピュータ・ウイルスに感染しやすい危険なOSをゲストOSに用いたとしても、そのウイルスによる動作不具合は当該ゲストOSおよび、当該ゲストOSの通信する先のサーバに限定され、他のゲストOSおよび、他のゲストOSの通信する先のサーバに悪影響が及ぶことを防止することができる。
【0065】
(第4の実施形態)
本実施形態では、データ変換部115は、送出元モジュール特定部114または114−2または114−3によって特定された、モジュールの種別情報をデータに付加する実施例について説明する。データ変換部、送出方法定義リスト以外については、上述の実施形態や実施例と共通するため、説明は省略する。また、データ変換部が異なり、全体の構成は図1、4、5と同様であるため、図示も省略する。
【0066】
本実施形態の送出方法定義リスト記憶部に記憶される送出方法定義リストには、送出元モジュールを識別する送出元モジュール識別情報(以下送出元モジュールIDという)を付加することの指示が追加されている。例えば、図7は本実施形態の送出方法定義リストの例を示すものであり、本図を利用して説明する。図4ではProg1にhmac-sha1認証子を付加することが指示されているが、これに加え、Prog1というモジュールの送出元モジュールIDを付加した上で、さらにhmac-sha1認証子を計算することの指示が追加されている。Prog2についても同様である。
【0067】
データ変換部は、送出方法定義リストで送出元モジュールを識別する送出元モジュール識別情報を付加することの指示が追加されているため、図8のように元のデータに送出元モジュールIDを付加した上で、さらにhmac-sha1認証子を計算して付与する。
【0068】
認証子が付加されているため、仮にデータが暗号化されていない場合であっても、ネットワーク上で送出元モジュールIDが改ざんされるおそれは無い。
【0069】
こうすることにより、スマートメーター1より送出されるデータが、スマートメーター1内のどのプログラム・モジュールによって作られたものであるかという情報を、そのデータを受信するサーバに安全に伝達することができる。したがって、パケットの送出方法について送出方法定義リストのみの情報で固定的に定めるのではなく、そのデータを受信するサーバが、送出元モジュールIDも参考にして、サーバ側のポリシーに従い、柔軟に通信の可否を定めることができ、より柔軟なアクセス制御が実現できる。
【0070】
従来技術においてこれを実現するには、たった1台のスマートメーター1の認証のために認証の対象となるモジュールの数に相当する数多くの認証メカニズムを実装する必要があり煩雑であったが、本発明の方法によれば単にProg1という送出元モジュールIDを比較するだけで、個別の認証を行ったのと同等の効果が得られるため、単純な実装が可能である。
【0071】
(第5の実施形態)
本実施形態では、送出元モジュール特定部の別の実現方法として、特定したモジュールの持つソフトウエアのデジタル署名(または認証子、チェックサム)を検証することができる例について図9を用いて説明する。本実施形態では、図9のように特定が必要な送出元モジュールが送出したデータ(パケット)に予め該モジュールデータのデジタル署名を加えておきそれを署名検証用鍵で検証する。
【0072】
図9では送出元モジュール特定部、処理方法判定部、署名検証用鍵記憶部以外は上記実施形態と同様であるため、省略し、どの実施形態に組み合わせることができる。
【0073】
処理方法判定部112−4ではパケット受信部111−4(図示せず)が受信し、パケット受信部111−4が処理方法判定部112−4に送信したデジタル署名が付加されたデータ(パケット)を受信する。そして、受信したデータ(パケット)を署名検証用鍵で検証して、正当な署名であるかを確認する。
【0074】
正当な署名の付いているモジュールは正当と判断しても良いし、より正確にはプログラム名称等も含めたデジタル署名を付加しておき、その名称をチェックして正しければ送出元モジュールが正しいと判断するといった実装も可能である。
【0075】
また、この方法を用いることで、送出元モジュールの特定にあたって必ずしもOSが管理する情報(カーネル・メモリ15または15−3)を参照する必要が無くなる。OSの性質によっては、OSが管理する情報を参照するには困難が伴う場合があるため、本方式の方が優れている場合もある。
【0076】
なお、デジタル署名と呼ばれる技術は、通常公開鍵暗号方式を用いた署名を指すことが多いが、ここでは電子的な署名であれば何でも良く、例えば認証子を付加したり、単なるチェックサムを念のため付加しておくといったケースも考えられ、特に署名の方式を限定しない。
【0077】
OSが特定できる送出元モジュールが例えばそのプログラムのパス名であった場合、パス名はそのままに悪意のプログラム等にプログラムの中身が変更(差し替え)されていても判別できないが、本実施形態を用いることで誤った動作を未然に防ぐことができる。
【0078】
(第6の実施形態)
本実施形態では、送信元モジュール特定部は、特定したモジュールの持つソフトウエアが起動されるに至った経緯情報を特定する例について説明する。システム構成は上記実施形態と同様であるため、図は省略し、図1、4、5の送出元モジュール特定部114、114−2、114−3、114―4や、処理方法判定部112の変形例として説明し、他の構成要素については同様である。
【0079】
このような機能が必要となる背景について以下に記載する。一般に、OSにより管理されているプログラムは、1プログラムで1機能を実現するといった単独のものであることはまれであり、多くの場合、親プロセスから子プロセスが起動され、さらにその子プロセスが起動される、という流れによって機能が実現されている。従って、単に1プログラムの名称のみでアクセス制御を行うのみでは十分な安全性が確保できないケースも考えられる。
【0080】
例えば、通常 A→B→C→D という順番で起動されるプログラム D が正当なものであった場合、送信元モジュール特定部が送信元モジュールのみを特定するのであれば、E →D’ という順番で起動されたプログラム D’ も正当なものとして扱われてしまう。
【0081】
しかしこのように想定外の順番でプログラムが起動される場合、不安全な事態が発生している可能性が極めて高い。例えばプログラムEは電子メールをネットワークから受信するサーバであるとすると、サーバに不正侵入され実行権限を乗っ取られたために、プログラム E の権限(管理者権限など)でプログラム D が不正実行されていると考えられる。
【0082】
そのため、特定したモジュールの持つソフトウエアが起動されるに至った経緯情報を特定している。
【0083】
経緯情報を特定するために、OSカーネル14または14―3は、プログラム(プログラムモジュール)とそのプログラムが実行するプロセスの識別情報(プロセスID)とそのプロセスの親プロセスの識別情報(親プロセスID)を対応付けて把握する。この対応付けられた情報は、プロセステーブルという。プロセステーブルの例を図10に示す。
【0084】
例えば、図10の例では、A(sshd)→B(bash)→C(Data_Measure)→D(Data_send)という順番で起動されるプログラムがある場合を示す。OSカーネル14または14―3は最初にプログラム(init)を起動する。するとOSカーネル14または14―3ではプログラム(init)と、親プロセスはないため親プロセスIDは「−1」、プロセスIDは「1」として対応付けて把握する。
【0085】
次ぎに、プログラムA(sshd)が起動する。するとOSカーネル14または14―3ではプログラムA(プログラム識別情報はsshd)の親プロセスIDは「1」であり、自己のプロセスIDは「664」であるので、このプログラム識別情報sshdと親プロセスID「1」とプロセスID「664」も対応付けて把握する。
【0086】
次にプログラムB(bash)が起動する。するとOSカーネル14または14―3ではプログラムB(プログラム識別情報はbash)の親プロセスIDは「664」であり、自己のプロセスIDは「30638」であるので、このプログラム識別情報bashと親プロセスID「664」とプロセスID「30638」も対応付けて把握する。
【0087】
次にプログラムC(Data_Measure)が起動する。するとOSカーネル14または14―3ではプログラムC(プログラム識別情報はData_Measure)の親プロセスIDは「30638」であり、自己のプロセスIDは「30639」であるので、このプログラム識別情報bashと親プロセスID「30638」とプロセスID「30639」も対応付けて把握する。
【0088】
さらに、プログラムD(Data_send)が起動する。するとOSカーネル14または14―3ではプログラムD(プログラム識別情報はData_send)の親プロセスIDは「30639」であり、自己のプロセスIDは「32507」であるので、このプログラム識別情報bashと親プロセスID「30639」とプロセスID「32507」も対応付けて把握する。このようにOSカーネル14または14―3が管理するプロセステーブルによって、親プロセスのIDを参照し、順に親プロセスをたどることが可能である。
【0089】
送信元モジュール特定部114または114−2または114−3または114―4は、上記実施形態や実施例のように送出元モジュールを特定するとOSカーネル14または14―3が管理するプロセステーブルをOSカーネル14または14―3に要求して入手する。そして、入手したプロセステーブルを利用して、特定されたモジュールの親プロセスIDを参照してどのプログラムがどのプログラムから起動されているかの情報であるプログラム起動関係情報を抽出する。そして、プログラム起動関係情報を処理方法判定部に送信する。
【0090】
処理方法判定部112は、送信元モジュール特定部から受信したプログラム起動関係情報のうち最後に起動されているプログラムを特定し、特定したプログラムに関する送出方法定義リスト記憶部から処理方法定義リストを入手する。入手した処理方法定義リストとプログラム起動関係情報に基づいて、起動が正当なプログラムからなされたものであるか否かを判断する。不正なプログラムから起動されたと判断された場合は、処理方法判定部は、データ(パケット)の送出を中止する。
【0091】
図11は本実施形態の送出方法定義リストの例を示す。送出方法判定部112は送出方法定義リストを送出方法定義リスト記憶部113から読み出して、A→B→C→Dの順で起動されていれば、通信は可能である旨とデータ(パケット)と、図11で示される鍵でhmac-sha1アルゴリズムで認証子を生成し、暗号化はしないで送信する旨をデータ変換部115に送出する。
【0092】
本実施形態の発明によれば、権限の異なる複数の機能が混在したネットワーク機器において、各機能それぞれに独立した認証機能を持たせることなく、異なる権限を区別して実行する認証機能を実現することができる。
【0093】
モジュール毎に認証メカニズムを実装する必要が無いため、実装が単純になり、プログラミングのミス(バグ)が出にくく、使用メモリ量も最小限で済む。また、鍵管理を機器全体に対し一本化することができるためその手順を単純化することができる。
【0094】
また、鍵管理が一本化されているにもかかわらず、機器の中に正しく実装されていないモジュールが含まれていたとしても、その影響は不具合のあるモジュールの機能に限定することができ、システム全体の安全性が低下することが無い。さらには、秘密鍵をモジュール毎に管理する必要が無いため、他のモジュールから関係の無い秘密鍵が見えてしまい、鍵が漏洩したり誤ったデータ送信を行うといったリスクが無い。
【0095】
また、将来暗号解読技術が進んだ際においても、認証モジュールが一本化されているため、複数の認証モジュールを完全に置き換えるための膨大な確認作業を必要とせず、容易に認証機能の入れ替えを行い安全性を向上させることができるので、システム保守性の面でも有利になる。
【0096】
上記実施形態の発明によれば、例えば以下のような場面での適用が考えられる。
【0097】
図12は上記実施形態の発明が適用される場面例を示す図である。例えば、「スマートグリッド」と呼ばれる電力監視網(次世代電力網)においては、需要家(一般家庭等)に設置された監視端末(スマートメーター1−5)が、電力需給予測を変電所に送信するなどの重要で安全性の要求されるデータ通信を行う。それと同時に、監視端末(スマートメーター)は、ディスプレイ2−5への電力使用状況の表示や、エアコンなどの家電機器のコントロールなど、複雑でプログラムミスの起こりやすい各種アプリケーションを動かしたり、またはプログラムミスの起こりやすい外部のアプリケーションから受信したデータを元に動作することもあり、機器全体としての安全性を損なうことが危惧される。
【0098】
この種の複雑な機能を持つスマートメーター1−5を従来の(A)機器認証方式で実装した場合、スマートメーター1−5では電力線に接続された電力測定部の測定したデータを、遠隔地にあるコンセントレータ3−5等を経由してスマートグリッドの変電所、MDMS4−5(Metering Data Management System)等へ送信する。その際、送信部9−5にて認証処理(認証子の付加や暗号化など)を行うことによりセキュアな通信を行う。スマートメーター1−5からの通信データは必ず送信部9−5を通り、送信部9−5にて認証処理が確実に行われる。
【0099】
しかし、スマートメーター1−5内のコントロール部8−5は、ディスプレイ2−5への表示機能や、家電機器5−5と連携したHEMS6−5(Home Energy Management System:ホームサーバ)とのデータ送受信などを行う巨大なアプリケーションである。そのため、誤ったデータ処理や、HEMS6−5から受信した誤データなどが原因となり、送信部9−5が誤送信を行うミスが起こりやすい。その場合、通常、送信部9−5は誤送信か否かの判断はできないため、そのままスマートグリッドの通信網へ誤ったデータを送信し、それが元で地域の送配電システムを混乱させ、最悪、停電等の問題を引き起こす可能性がある。同様に、スマートメーター1−5に何等かの理由で不正に入り込んだコンピュータ・ウイルスが送信部9−5に不正なデータを送り込んだり、外部の攻撃者がネットワークを経由して送信部9−5に不正なデータを送り込んだりすることにより、送配電システムが混乱する恐れがある。
【0100】
また、スマートメーター1−5を従来の(B)モジュール認証方式で実装した場合、電力測定部7−5は独自に認証機能を持ち、秘密鍵を用いて認証子を付加するなどして、スマートグリッド網を通してMDMS4−5へ通信を行う。MDMS4−5は電力測定部7−5と同じ秘密鍵にて認証子を検証する。一方、コントロール部8−5は別途認証機能を持ち、家電制御等の複雑なデータをASP(Application Service Provider)へ送信する。MDMS4−5とASPはそれぞれ役割が異なり、認証機能も秘密鍵も個別に持っているため、例えばコントロール部8−5が誤って生成した不正なデータをMDMS4−5に送信してしまい、送配電網を混乱させるといった事故は起こらない。
【0101】
しかしながら、アクセス主体毎に認証の方法を分離することで安全性を高めるメリットがあるものの、同時にさまざまなデメリットもある。
【0102】
まず、モジュール毎に認証メカニズムを実装しなくてはならないため、実装が複雑になり、プログラミングのミス(バグ)が出やすくなったり、使用メモリ量が多くなったり、鍵管理の手順が複雑になったりする。また、正しく実装されていないモジュールがひとつでもあるとシステム全体の安全性が低下することにもなる。さらには、モジュール毎の秘密鍵は機器の中では特に守られていないため、他のモジュールから関係の無い秘密鍵が見えてしまい、鍵が漏洩したり誤ったデータ送信を行うリスクが無くならない。また、将来暗号解読技術が進んだ際に、認証モジュールを置き換えなければならないが、沢山の認証モジュールが複雑に組み込まれていると、完全に置き換えるためには膨大な確認作業が発生する。つまり、このような実装方法は、非常に手間がかかると同時に安全性の維持が難しく、望ましいものではない。
【0103】
上述のように、通信ネットワークの普及により利用形態が複雑化した機器を認証する場合において、従来のネットワーク機器の認証装置では、権限の異なる複数の機能が混在することにより、アプリケーションのデータ処理のミスなどを原因として送信部9−5より誤送信を行い、本来の認証機能が有効に働かなかったり、あるいは、不正に入り込んだコンピュータ・ウイルスが送信部9−5に不正なデータを送り込んだりすることを防ぐのは難しかった。
【0104】
また、これを防ぐために、権限の異なる複数の機能それぞれに独立した認証機能を持たせた場合においては、実装が複雑になり、プログラミングのミス(バグ)が出やすくなったり、鍵管理の手順が複雑になったりすることにより、システムの安全性を維持することが難しいという問題があった。
【0105】
この実施形態の発明は、権限の異なる複数の機能が混在したネットワーク機器を、非常に簡単な手順により、安全に実装することができるようにした、ネットワーク機器の認証方法を提供することができる。
【0106】
上記各実施形態では、認証子の生成、および暗号化に必要な鍵が送出方法定義リスト記憶部に記憶されているとしているが、送出方法定義リストの構成はこれに限定するものではない。例えば、データ変換部が鍵情報を持ち、送出方法定義リストには(鍵情報そのものではなく)どの鍵を使うべきかのインデックス番号のみを記載する、といった別の形態も考えられる。
【0107】
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0108】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0109】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行しても良い。
【0110】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0111】
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0112】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0113】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0114】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0115】
1・・・スマートメーター
2・・・コントロール部データ受信サーバ
3・・・電力量受信サーバ
4・・・ディスプレイ
5・・・HEMS
6・・・家電機器
11・・・データ送出処理部
12・・・電力測定部
13・・・コントロール部
111・・・パケット受信部
112・・・処理方法判定部
113・・・送出方法定義リスト記憶部
114・・・送出元モジュール特定部
115・・・データ変換部
116・・・送信部
【技術分野】
【0001】
この発明の実施形態は、データを送信する技術に関する。
【背景技術】
【0002】
従来、通信回線で接続された複数の機器またはプログラム同士が通信を行う際の認証(Authentication)の形態としては、(A)通信機器が認証機能を持つ機器認証方式、(B)各モジュールが個別に認証機能を持つモジュール認証方式の2つが多く用いられている。
【0003】
まず、(A)の機器認証方式では単一の機器内に複数のモジュールが実装された場合であっても、認証の対象は1個体として扱う。インタネット・プロトコル(IP)の実装されたネットワーク・コンピュータでは、1つのIPアドレスを持つ機器1台を1個体と考え、機器に対応する秘密鍵により生成された認証子をIPパケットに付加して送信する。機器認証方式に属するものとしては、ネットワークインタフェース固有のID番号(MACアドレス)を用いた認証や、IPsec(Security Architecture for Internet Protocol)に代表される暗号技術に基く認証、さらにはそれを応用したVPN(Virtual Private Network)などが広く普及している。
【0004】
また、(B)のモジュール認証方式では、各モジュールが個別に認証用のIDまたは鍵を持ち、それらを用いた認証用アルゴリズムを実装することによってIPアドレス等とは関係無く通信相手との認証を行う。モジュール認証方式では、一般にいかなる認証方法でもプログラム実行できるため方式を限定することなくさまざまな暗号技術等を適用することができる。例えばSSH(Secure SHell)プロトコルなどが使われる。
【0005】
これら従来の認証方式は、機能が限定された産業用機器の通信や、汎用のPC(パーソナルコンピュータ)などによるインターネット・アプリケーションで利用されている。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】IP Authentication using Keyed MD5 (P. Metzger他 1995/8 IETF RFC1828)
【非特許文献2】IP Authentication Header (S. Kent BBN Technologies 2005/12 IETF RFC4302)
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、通信ネットワークの普及により利用形態が複雑化した機器を認証する場合において、従来のネットワーク機器の認証装置では、権限の異なる複数の機能が混在することにより、アプリケーションのデータ処理のミスなどを原因として送信部より誤送信を行い、本来の認証機能が有効に働かなかったり、あるいは、不正に入り込んだコンピュータ・ウイルスが送信部に不正なデータを送り込んだりすることを防ぐのは難しく、権限の異なる複数の機能が混在する機器の安全性を保つことが難しいという問題があった。
【0008】
また、これを防ぐために、権限の異なる複数の機能それぞれに独立した認証機能を持たせた場合においては、実装が複雑になり、機器のシステムの安全性を維持することが難しいという問題があった。
【0009】
そこで、この発明の一観点は、権限の異なる複数の機能が混在したネットワーク機器の安全性を、複雑で無く、保持できるようにしたネットワーク機器の認証方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本発明の一実施形態に係るデータ送信処理装置は、データをデータ受信部で受信し、データを送出したモジュールを送出元モジュール特定部で特定する。送出元モジュール毎に定義された、データ変換方法もしくは通信の可否を含む前記データの処理方法を示す送出方法定義リストを送出方法定義リスト記憶部に記憶しておき、処理方法判定部が送出元モジュール特定部によって特定された送出元モジュールに対応する処理方法を、送出方法定義リストを参照し決定する。処理方法判定部の決定した処理方法に前記データの変換方法が含まれる場合は、データ変換部はデータを変換し、処理方法判定部が通信可能と判断した場合は、送信部はデータまたは変換されたデータを送出する。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態にかかるシステム構成を示す図。
【図2】第1の実施形態にかかるシステムの動作概要を示す図。
【図3】第1の実施形態にかかる送出方法定義リストの例を示す図。
【図4】第1の実施形態にかかる受信データおよび送信データの例を示す図。
【図5】第2の実施形態にかかるシステム構成を示す図。
【図6】第3の実施形態にかかるシステム構成を示す図。
【図7】第4の実施形態にかかる送出方法定義リストの例を示す図。
【図8】第4の実施形態にかかる受信データおよび送信データの例を示す図。
【図9】第5の実施形態にかかるシステム構成の一部を示す図。
【図10】第6の実施形態にかかるプロセステーブル例を示す図。
【図11】第6の実施形態にかかる送出方法定義リストの例を示す図。
【図12】実施形態の発明が適用される場面例を示す図である。
【発明を実施するための形態】
【0012】
(第1の実施形態)
以下に図面を参照して、この発明にかかる第1の実施形態を詳細に説明する。
【0013】
図1は、本実施形態のデータ送信システムとそのシステムと連携する機器の構成を示す図であり、インタネット等の公衆ネットワークを介して接続された電力監視機器群の配置例とその機能ブロックを示している。
【0014】
本実施形態のデータ送信システムは、スマートメーター1、コントロール部データ受信サーバ2、電力量受信サーバ3を有する。本実施形態のデータ送信システムは、ディスプレイ4とHEMS5(Home Energy Management System:ホームサーバ)と接続されており、HEMS5は家電機器6と接続している。
【0015】
スマートメーター1は、一般家庭やビル、工場などの電力消費ポイント(需要家)に設けられた電力計(メータ)であり、ネットワークに接続する機能を有している。
【0016】
スマートメーター1は、電力測定部12、コントロール部13、パケット受信部111、処理方法判定部112、送出方法定義リスト記憶部113、送出元モジュール特定部114、データ変換部115、送信部116を有する。また、パケット受信部111、処理方法判定部112、送出元モジュール特定部114、送出方法定義リスト記憶部113、データ変換部115、送信部116を有する部分を送信処理部11(送信処理装置)とする。なお、スマートメーター1は、電力網の制御に関わるさまざまな機能モジュールを持つことができるが、本実施形態では説明を簡略化しており、他の機能モジュールを有していても良い。
【0017】
ここで、モジュールとは、ある1つの処理(処理単位)をいう。典型的にはコンピュータの1実行主体(プロセス)のことであるが、場合によってはプログラムの格納された1ファイル(exeファイル)や、実装された1機能(共有ライブラリやdllファイルなど)と考えても良い。また、ソフトウエアで実装されたプログラムでも良いし、ある機能を実装したハードウエアであっても良い。
【0018】
電力測定部12は、専ら使用電力量などの重要データを扱う。電力測定部12は、電力線に接続されており、電力線に接続され機器の電力量の測定をする。例えば、図1では家電機器6が電力線にされており、電力測定部12は家電機器6の電力量を測定するが、これに限られず、電力線に接続されている機器であれば、電力量を測定できる。また、電力測定部12は測定した電力量を含むデータ(パケット)を後述するコントロール部13、パケット受信部111に送信する。
【0019】
コントロール部13は、家庭内の家電機器6コントロールや消費電力の表示など雑多なデータを扱う。コントロール部13は、電力測定部12からのデータを受信する。コントロール部13は、家庭内に設置されたディスプレイ4への表示機能のコントロールや、家電機器6と連携したHEMS5とのデータ送受信を行ってHEMS5のコントロールを行っても良い。これらのデータのやり取りについては従来技術と何等変わるところが無いので、詳細な説明および図示は省略する。また、コントロール部13では、コントロール部13で扱うデータ(パケット)を後述するパケット受信部111に送信する。
【0020】
HEMS5は、コントロール部13と接続されているほかに、家電機器6と接続されている。HEMS5はHEMS5が保持する情報を利用して、家電機器6を制御したり、家電機器6から情報を入手しても良い。
【0021】
電力測定部12とコントロール部は基本的には独立のものであるが、システムによっては電力測定部12で計測したデータの一部をコントロール部13に渡して処理することも考えられる。
【0022】
パケット受信部111は、受信したデータ(パケット)を後述する処理方法判定部112に送信する。
【0023】
処理方法判定部112は、パケット受信部111からデータ(パケット)を受信すると、後述する送出元モジュール特定部114にデータ(パケット)を送信し、受信したデータ(パケット)の送出元モジュールの識別情報を入手する。ここで、送出元モジュールの識別情報とは、データ(パケット)を送出した元のモジュールを識別する情報であり、本実施形態の例では、電力測定部12またはコントロール部13のモジュールを示す名称などであるが、データ(パケット)を送出した元のモジュールを識別する情報であれば、これに限定されるものではない。
【0024】
処理方法判定部112は、データ(パケット)の送出元モジュールの識別情報と、送出方法定義リストに記載された処理方法に関する情報とを、送出元モジュールの識別情報をキーとして照らし合わせた上で、パケットの処理方法を確定する(送出元モジュールに対応する処理方法を、送出方法定義リストを参照し決定する)。そして、処理方法判定部112は、通信が許可されているものについてはデータ(パケット)を送出し、必要な場合は後述するデータ変換部115に処理方法(処理方法情報)や鍵も送出する。
【0025】
送出方法定義リスト記憶部113は、送出方法定義リストを記憶する。送出方法定義リストは、送出元モジュールの識別情報と通信の可否との対応付けた情報または送出元モジュールの識別情報とデータ変換方法とを対応付けた情報を有する(送出元モジュール毎に定義された、データ変換方法もしくは通信の可否を含む前記データの処理方法を示す情報を有する)。例えば、あるパケットの送出を許可し、またあるパケットは送出を禁止する情報である。また、送出を許可するパケットについては認証子を付加して送出したり、暗号化してから送出したりすることもあり、これらのデータ変換方法のルールを記述する。また、認証子の作成や暗号化にあたって必要な「鍵」も保持する。ここで、鍵とは一般的な暗号技術で使われる鍵一般のことを広く指し、秘密鍵であるか公開鍵であるかといったことは特に限定しない。図3は、送出方法定義リストの例を示す図である。図3の例では、Prog1、Prog2、Prog3、Miscについて送出方法が定義されている。以下に詳細を説明する。
【0026】
Prog1は、電力測定部12のプログラム・モジュールの名称である。
【0027】
通信は許可となっており、電力測定部12のプログラム・モジュールからのデータは通信を許可する。また、認証子はhmac−sha1となっており、転送時には hmac−sha1 アルゴリズムにより生成された認証子をパケットに付加する。
【0028】
hmac−sha1は、ハッシュ関数 sha1 に鍵を適用する方式 hmac を組み合わせた、良く知られた認証子生成方法であるので、その手順説明は省略する。また、hmac−sha1適用にあたっては、鍵である4f434e23f355 を用いる。実際には安全性の観点からより長い鍵を用いるのが普通であるが、説明文を簡略化するため短い鍵を表記している(以下同様)。
【0029】
また、暗号化はしないになっており、パケットの暗号化は行わない。ここで、鍵は、電力量受信サーバ3も同一の鍵を保持しているため、電力量受信サーバ3は鍵とhmac−sha1アルゴリズムを用いて演算した認証子がパケットに付加されている認証子の値と同一であることを以て、このパケットが、当該スマートメーター1の当該モジュール(電力測定部12)から送信されたパケットであるということを認証することができる。
【0030】
なお、この例ではProg1はパケットを暗号化しないものとして説明した。本実施例は、電力測定部12の測定したデータは盗聴されても構わないという立場だからである。言うまでもなく、必要に応じパケットを暗号化したり、誤ったサーバに送出されないようパケット・フィルタリングするような措置を施す方式も考えられるが、一般的な技術を利用するため本実施形態では特にそれを説明しない。
【0031】
一方、Prog2はコントロール部13のプログラム・モジュールの名称である。通信は許可となっており、コントロール部13からのデータは通信を許可する。また、認証子はhmac−md5となっており、転送時にはhmac−md5アルゴリズムにより生成された認証子をパケットに付加する。その際、鍵 である3a53f324fa47 を用いる。hmac−md5も良く知られた認証子生成方法であるのでその手順説明は省略する。さらに、暗号化アルゴリズムであるAESと、鍵 である3f233322434e を用いてパケットを暗号化する。暗号化の鍵の扱いについては本特許の核となる要件ではないため、実施形態概要を示した図1には図示を省略している。なお、暗号化の処理と、認証子の付加処理の順番については、特にどちらかでなければならないという制約は無く、システムに応じて暗号化を先に行っても良く、その場合には送出方法定義リストに記載する順番を逆にすれば良い。
【0032】
また、Prog3は一般ライブラリのプログラム・モジュールの1名称である。通信は拒否となっており、一般ライブラリからのパケットは通信を拒否することを示している。
【0033】
また、Misc は今までのリストに無かったプログラム・モジュールを示している。通信は拒否となっており、プログラム・モジュールの名称記載の無いものについては全て通信を拒否することを示している。
【0034】
このように図3の例では、各行毎に処理と処理方法を示す情報が記載されているが、他の方法で表現されても処理方法(処理内容)が特定できれば本例に限られない。
【0035】
送出元モジュール特定部114は、処理方法判定部112からデータ(パケット)を受信すると、パケットの識別情報とパケットの送出元モジュールの識別情報とが対応付けられたパケット送出元モジュール情報に基づいてパケットの送出元モジュールを特定する。そして、送信元モジュールの識別情報を処理方法判定部112に送出する。パケットの識別情報とはパケットを識別するための情報であり、単一の情報や複数の情報の組み合わせであっても良い。
【0036】
パケットの送出元モジュールを知る方法の例を示す。例えばパケット受信部111の受信するデータがIPv4のTCPパケットである場合、そのパケットはRFC791で規定されたIPv4(Internet Protocol version 4)およびRFC793で規定されたTCP(Transmission Control Protocol)の構造になっているので、そのデータを参照することにより、Destination Address(送信先IPアドレス)、Source Port(ソースポート番号)、Destination Port(宛先ポート番号)などの情報が判る。
【0037】
データ変換部115は、処理方法判定部112からデータ(パケット)と処理方法(処理方法情報)を受信すると、データ(パケット)に処理方法に従った変換処理を行う(処理方法判定部112の決定した処理方法に前記データの変換方法が含まれる場合は、前記データを変換する)。変換処理としては、暗号化や認証子の付加などを行う。そして、変換処理されたデータ(パケット)を送信部に送出する。例えば、図3の例では、データ(パケット)の送出元モジュールがProg1であった場合は、認証子をhmac−sha1で鍵4f434e23f355に基づいて生成する。そのため、図4のようにデータ(パケット)に認証子が追加された形に変換される。こういった認証子の追加には例えばIPの拡張データフィールドを用いることができ、IPsecなどの従来技術においても用いられている。
【0038】
送信部116は、データ変換部から変換処理されたデータ(パケット)を受信し、スマートメーター1の外部に送信する。本実施形態ではコントロール部データ受信サーバ2または電力量受信サーバ3に送信する。その際、電力測定部12からのデータ(パケット)は電力量受信サーバ3へ送り、コントロール部13からのデータ(パケット)はコントロール部データ受信サーバ2へ送るという切り替えが発生する。これは一般のIP(Internet Protocol)技術においてパケット内に書かれているDestination Address(送信先IPアドレス)を元に切り替えることが従来より行われており、本実施形態においても実施できる。
【0039】
実際のシステムでは、セキュリティを高めるためプログラム・モジュール毎に送信可能なサーバを限定したり、送信先によってデータ変換方法を変えるなどのバリエーションが考えられるが、一般にファイア・ウォールと呼ばれているパケット・フィルタリング技術の単純な組み合わせで容易に実現可能であるため、それらバリエーションについては例示を省略する。
【0040】
コントロール部データ受信サーバ2は、送信部よりデータ(パケット)を受信する。電力会社によって管理されていても良いし、電力制御とは全く関係のないインタネット・サービス提供者によって管理される場合もある。
【0041】
電力量受信サーバ3は、送信部よりデータ(パケット)を受信する。電力量受信サーバ3は、電力会社の管理する変電所内に置かれたり、またはそのデータの中継点に設置されたMDMS(Meter Data Management System)に置かれ、各スマートメーター1の動作を監視している。
【0042】
本実施形態の動作の概要を図2を利用して説明する。パケット受信部111がデータ(パケット)を受信し、受信したデータ(パケット)を処理方法判定部112に送信する(S101)。
【0043】
処理方法判定部112は送出元モジュールの特定を送出元モジュール特定部114に依頼する(S102)。
【0044】
送出元モジュール特定部114はデータ(パケット)を送出中のモジュールを特定して、送出元モジュールの識別情報を処理方法判定部112に送信する(S103)。
【0045】
処理方法判定部112は送出元モジュールの識別情報と送出方法定義リスト記憶部113に記憶されている送出方法定義リストを用いてデータ(パケット)の処理方法を決定し、データ(パケット)が送信可能であればデータ変換部にデータ(パケット)を送信する(S104)。
【0046】
データ変換部115はデータ(パケット)の変換が必要な場合は変換をし、変換の必要が無い場合はそのままのデータ(パケット)を送信部116に送信する(S105)。
【0047】
データ送信部はデータ(パケット)をスマートメーター外に送信する(S106)。
【0048】
本実施形態により権限の異なる複数の機能が混在したネットワーク機器の安全性を、複雑で無く、保持できるようにしたネットワーク機器の認証方法を提供することができる。
【0049】
(第2の実施形態)
本実施形態の一実施例を図5を用いて以下に説明する。
【0050】
上述の実施形態と同様の機能については、説明は省略し、図1とは異なるOSカーネル14、OSカーネル・メモリ15、送出元モジュール特定部、電力測定部12−2、コントロール部を中心に説明する。
【0051】
OSカーネル14とは、プロセス管理を行う一般的なオペレーティング・システム(OS)と考えて良いが、実装法によっては単にライブラリ関数を切り替えるためのコンピュータ・プログラムの場合もある。
【0052】
OSカーネル14は、動作している各モジュールを管理する。さらに、各モジュールがOSカーネルにパケット受信部に送信を要求したパケットの情報もカーネル・メモリ内に保持している。そのため、カーネル・メモリ内の情報を参照することで、そのパケットを送出要求しているモジュールが何であるかを知ることができる。
【0053】
本実施形態では、OSカーネル14は、電力測定部12−2やコントロール部から情報を入手する。具体的には、電力測定部12−2やコントロール部で動作している各モジュールを管理し、各モジュールが送信したデータ(パケット)の情報もカーネル・メモリ内に保持している。また、電力測定部12−2やコントロール部13−2に何らかの情報を送信しても良い。
【0054】
電力測定部12−2は、電力測定部12−2内で動作している各モジュールはデータ(パケット)をパケット受信部111に送信することをOSカーネル14に要求する。OSカーネル14は要求されたデータ(パケット)をパケット受信部111に送信する。また、OSカーネル14はカーネル・メモリ15に要求した電力測定部12−2のモジュールの識別情報と送信したデータ(パケット)との対応付けて記憶する。コントロール部13−2は、コントロール部内で動作している各モジュールはデータ(パケット)をパケット受信部111に送信することをOSカーネル14に要求する。また、OSカーネル14はカーネル・メモリ15に要求したコントロール部13−2のモジュールの識別情報と送信したデータ(パケット)との対応付けて記憶する。
【0055】
OSカーネル・メモリ15は、各モジュールが送信したパケットの情報を一定期間記憶している。具体的には、電力測定部12−2やコントロール部13−2で動作している各モジュールがOSカーネル14に送信要求して送信中のデータ(パケット)の情報を記憶する。これは、一般的なOSのメカニズムとして、TCPのセッション管理などの目的で、パケットを送信した後にも、通信が完了するまでパケットの情報を保持する必要があるからである。少なくともパケットがスマートメータから外部に送信される迄の間、このパケットの情報は保持される。なお、OSカーネル・メモリ15に記憶したパケットの情報をいかなるタイミングで消去するかという点に関しては一般的なOSのメカニズムを利用するものとし、詳細説明は省略する。
【0056】
送出元モジュール特定部114−2は、処理方法判定部112からデータ(パケット)を受信すると、OSカーネル・メモリ15の情報を参照して、送出元モジュールの識別情報を特定する。そして、送出元モジュールの識別情報を処理方法判定部へ送信する。例えば、netstatコマンド、psコマンド、proc file system、等の名称で広く使われている。さらには、それをユーザに解釈されやすく整形したコマンド類(Windows(登録商標)用のTCPViewなど)も使われている。また、送出元モジュール特定部114−2は、処理方法判定部112からデータ(パケット)を受信すると、データ(パケット)の識別情報などをOSカーネル14に送出し、OSカーネル14が受信したデータ(パケット)の識別情報に対応する送出元モジュールの識別情報を抽出し、送出元モジュール特定部114−2に送出しても良い。
【0057】
(第3の実施形態)
上述の実施形態では、スマートメーター1は1つのOSカーネル14−3により管理された複数の機能モジュール(プログラム・ライブラリ)を用いて構成されているものとしているが、OSカーネル14−3等の実装形態については、言うまでもなく、その部分の設計はいかなるものであっても良い。
【0058】
本実施形態では、図6に例示するように、スマートメーター1が仮想マシン技術によって構成されていた例を説明する。仮想マシン技術とは、1つの計算機の上で複数のOSを同時に動作させ、OSをあたかもプログラムの1つであるかの如く扱う技術である。仮想マシン技術を実装したソフトウエアの例として VMware、Virtual PC、Xen などが広く使われている。
【0059】
仮想マシン技術を用いての構成例では、スマートメーター1は仮想マシンホストによって管理される。仮想マシンホストは、ホストOSと呼ばれることもある。ここで動作するOSは、ゲストOSと呼ばれるものであり、図6の例では仮想マシンゲストOS(1)16と仮想マシンゲストOS(2)17が動作している。各ゲストOSは同一種類のOSであっても、異なる種類のOSであっても良い。例えば1つはWindows(登録商標) OSであり、他方は Linux OSであって良い。
【0060】
このような構成では、各仮想マシンゲストOSは、各仮想マシンゲストOS毎に定められた特定のモジュールはデータ(パケット)をパケット受信部111に送信することを仮想マシンゲストOSに要求する。そして、各仮想マシンゲストOSは、受け付けた要求とデータ(パケット)をOSカーネル14−3に送信する。
【0061】
例えば、仮想マシンゲストOS(1)16は電力測定部12−3からのデータ(パケット)とパケット受信部111への送信要求を入手し、入手したデータ(パケット)とパケット受信部111への送信要求をOSカーネル14−3に送信する。仮想マシンゲストOS(2)16はコントロール部13−3からのデータ(パケット)とパケット受信部111への送信要求を入手し、入手したデータ(パケット)とパケット受信部111への送信要求をOSカーネル14−3に送信する。また、電力測定部12−3は仮想マシンゲストOS(1)16に情報を送信してもよく、コントロール部13−3は仮想マシンゲストOS(2)17に情報を送信してもよい。
【0062】
OSカーネル14−3は、仮想マシンゲストOS(1)または仮想マシンゲストOS(2)からデータ(パケット)とパケット受信部111への送信要求を受信する。そして、受信したデータ(パケット)をパケット受信部111に送信する。また、OSカーネル14−3は、仮想マシンゲストOSの識別情報と仮想マシンゲストOSから受信したデータ(パケット)とを対応付けた情報をOSカーネル・メモリ15−3に記憶させる。また、必要に応じて仮想マシンゲストOSの識別情報と仮想マシンゲストOSから受信したデータ(パケット)とを対応付けた情報を読み出す。また、送出元モジュール特定部からの要求に応じて、読み出した情報を送出元モジュール特定部114−3に送出したり、または、データ(パケット)を受信した仮想マシンゲストOSを特定して送出元モジュール特定部に送出する。
【0063】
また、上記例ではOSカーネルがパケット受信部111にデータ(パケット)を送信しているが、各仮想マシンゲストOSがパケット受信部111にデータ(パケット)を送信しても良い。
【0064】
このような構成のスマートメーター1においては、各仮想マシンゲストOS毎に定義された送出方法を送出方法定義リストに記述し、送出元モジュール特定部114−3が特定したゲストOS情報を利用して、処理方法判定部112が送信データの処理方法を判定することで、各ゲストOSに割り当てられた機能に応じたデータ送信を行うことができるので、例えば要求される安全性の大きく異なるゲストOSが混在するスマートメーター1においても、個別に複雑な認証メカニズムを実装することなく適切なアクセス制限を実現することができる。特に、実装上の理由で、コンピュータ・ウイルスに感染しやすい危険なOSをゲストOSに用いたとしても、そのウイルスによる動作不具合は当該ゲストOSおよび、当該ゲストOSの通信する先のサーバに限定され、他のゲストOSおよび、他のゲストOSの通信する先のサーバに悪影響が及ぶことを防止することができる。
【0065】
(第4の実施形態)
本実施形態では、データ変換部115は、送出元モジュール特定部114または114−2または114−3によって特定された、モジュールの種別情報をデータに付加する実施例について説明する。データ変換部、送出方法定義リスト以外については、上述の実施形態や実施例と共通するため、説明は省略する。また、データ変換部が異なり、全体の構成は図1、4、5と同様であるため、図示も省略する。
【0066】
本実施形態の送出方法定義リスト記憶部に記憶される送出方法定義リストには、送出元モジュールを識別する送出元モジュール識別情報(以下送出元モジュールIDという)を付加することの指示が追加されている。例えば、図7は本実施形態の送出方法定義リストの例を示すものであり、本図を利用して説明する。図4ではProg1にhmac-sha1認証子を付加することが指示されているが、これに加え、Prog1というモジュールの送出元モジュールIDを付加した上で、さらにhmac-sha1認証子を計算することの指示が追加されている。Prog2についても同様である。
【0067】
データ変換部は、送出方法定義リストで送出元モジュールを識別する送出元モジュール識別情報を付加することの指示が追加されているため、図8のように元のデータに送出元モジュールIDを付加した上で、さらにhmac-sha1認証子を計算して付与する。
【0068】
認証子が付加されているため、仮にデータが暗号化されていない場合であっても、ネットワーク上で送出元モジュールIDが改ざんされるおそれは無い。
【0069】
こうすることにより、スマートメーター1より送出されるデータが、スマートメーター1内のどのプログラム・モジュールによって作られたものであるかという情報を、そのデータを受信するサーバに安全に伝達することができる。したがって、パケットの送出方法について送出方法定義リストのみの情報で固定的に定めるのではなく、そのデータを受信するサーバが、送出元モジュールIDも参考にして、サーバ側のポリシーに従い、柔軟に通信の可否を定めることができ、より柔軟なアクセス制御が実現できる。
【0070】
従来技術においてこれを実現するには、たった1台のスマートメーター1の認証のために認証の対象となるモジュールの数に相当する数多くの認証メカニズムを実装する必要があり煩雑であったが、本発明の方法によれば単にProg1という送出元モジュールIDを比較するだけで、個別の認証を行ったのと同等の効果が得られるため、単純な実装が可能である。
【0071】
(第5の実施形態)
本実施形態では、送出元モジュール特定部の別の実現方法として、特定したモジュールの持つソフトウエアのデジタル署名(または認証子、チェックサム)を検証することができる例について図9を用いて説明する。本実施形態では、図9のように特定が必要な送出元モジュールが送出したデータ(パケット)に予め該モジュールデータのデジタル署名を加えておきそれを署名検証用鍵で検証する。
【0072】
図9では送出元モジュール特定部、処理方法判定部、署名検証用鍵記憶部以外は上記実施形態と同様であるため、省略し、どの実施形態に組み合わせることができる。
【0073】
処理方法判定部112−4ではパケット受信部111−4(図示せず)が受信し、パケット受信部111−4が処理方法判定部112−4に送信したデジタル署名が付加されたデータ(パケット)を受信する。そして、受信したデータ(パケット)を署名検証用鍵で検証して、正当な署名であるかを確認する。
【0074】
正当な署名の付いているモジュールは正当と判断しても良いし、より正確にはプログラム名称等も含めたデジタル署名を付加しておき、その名称をチェックして正しければ送出元モジュールが正しいと判断するといった実装も可能である。
【0075】
また、この方法を用いることで、送出元モジュールの特定にあたって必ずしもOSが管理する情報(カーネル・メモリ15または15−3)を参照する必要が無くなる。OSの性質によっては、OSが管理する情報を参照するには困難が伴う場合があるため、本方式の方が優れている場合もある。
【0076】
なお、デジタル署名と呼ばれる技術は、通常公開鍵暗号方式を用いた署名を指すことが多いが、ここでは電子的な署名であれば何でも良く、例えば認証子を付加したり、単なるチェックサムを念のため付加しておくといったケースも考えられ、特に署名の方式を限定しない。
【0077】
OSが特定できる送出元モジュールが例えばそのプログラムのパス名であった場合、パス名はそのままに悪意のプログラム等にプログラムの中身が変更(差し替え)されていても判別できないが、本実施形態を用いることで誤った動作を未然に防ぐことができる。
【0078】
(第6の実施形態)
本実施形態では、送信元モジュール特定部は、特定したモジュールの持つソフトウエアが起動されるに至った経緯情報を特定する例について説明する。システム構成は上記実施形態と同様であるため、図は省略し、図1、4、5の送出元モジュール特定部114、114−2、114−3、114―4や、処理方法判定部112の変形例として説明し、他の構成要素については同様である。
【0079】
このような機能が必要となる背景について以下に記載する。一般に、OSにより管理されているプログラムは、1プログラムで1機能を実現するといった単独のものであることはまれであり、多くの場合、親プロセスから子プロセスが起動され、さらにその子プロセスが起動される、という流れによって機能が実現されている。従って、単に1プログラムの名称のみでアクセス制御を行うのみでは十分な安全性が確保できないケースも考えられる。
【0080】
例えば、通常 A→B→C→D という順番で起動されるプログラム D が正当なものであった場合、送信元モジュール特定部が送信元モジュールのみを特定するのであれば、E →D’ という順番で起動されたプログラム D’ も正当なものとして扱われてしまう。
【0081】
しかしこのように想定外の順番でプログラムが起動される場合、不安全な事態が発生している可能性が極めて高い。例えばプログラムEは電子メールをネットワークから受信するサーバであるとすると、サーバに不正侵入され実行権限を乗っ取られたために、プログラム E の権限(管理者権限など)でプログラム D が不正実行されていると考えられる。
【0082】
そのため、特定したモジュールの持つソフトウエアが起動されるに至った経緯情報を特定している。
【0083】
経緯情報を特定するために、OSカーネル14または14―3は、プログラム(プログラムモジュール)とそのプログラムが実行するプロセスの識別情報(プロセスID)とそのプロセスの親プロセスの識別情報(親プロセスID)を対応付けて把握する。この対応付けられた情報は、プロセステーブルという。プロセステーブルの例を図10に示す。
【0084】
例えば、図10の例では、A(sshd)→B(bash)→C(Data_Measure)→D(Data_send)という順番で起動されるプログラムがある場合を示す。OSカーネル14または14―3は最初にプログラム(init)を起動する。するとOSカーネル14または14―3ではプログラム(init)と、親プロセスはないため親プロセスIDは「−1」、プロセスIDは「1」として対応付けて把握する。
【0085】
次ぎに、プログラムA(sshd)が起動する。するとOSカーネル14または14―3ではプログラムA(プログラム識別情報はsshd)の親プロセスIDは「1」であり、自己のプロセスIDは「664」であるので、このプログラム識別情報sshdと親プロセスID「1」とプロセスID「664」も対応付けて把握する。
【0086】
次にプログラムB(bash)が起動する。するとOSカーネル14または14―3ではプログラムB(プログラム識別情報はbash)の親プロセスIDは「664」であり、自己のプロセスIDは「30638」であるので、このプログラム識別情報bashと親プロセスID「664」とプロセスID「30638」も対応付けて把握する。
【0087】
次にプログラムC(Data_Measure)が起動する。するとOSカーネル14または14―3ではプログラムC(プログラム識別情報はData_Measure)の親プロセスIDは「30638」であり、自己のプロセスIDは「30639」であるので、このプログラム識別情報bashと親プロセスID「30638」とプロセスID「30639」も対応付けて把握する。
【0088】
さらに、プログラムD(Data_send)が起動する。するとOSカーネル14または14―3ではプログラムD(プログラム識別情報はData_send)の親プロセスIDは「30639」であり、自己のプロセスIDは「32507」であるので、このプログラム識別情報bashと親プロセスID「30639」とプロセスID「32507」も対応付けて把握する。このようにOSカーネル14または14―3が管理するプロセステーブルによって、親プロセスのIDを参照し、順に親プロセスをたどることが可能である。
【0089】
送信元モジュール特定部114または114−2または114−3または114―4は、上記実施形態や実施例のように送出元モジュールを特定するとOSカーネル14または14―3が管理するプロセステーブルをOSカーネル14または14―3に要求して入手する。そして、入手したプロセステーブルを利用して、特定されたモジュールの親プロセスIDを参照してどのプログラムがどのプログラムから起動されているかの情報であるプログラム起動関係情報を抽出する。そして、プログラム起動関係情報を処理方法判定部に送信する。
【0090】
処理方法判定部112は、送信元モジュール特定部から受信したプログラム起動関係情報のうち最後に起動されているプログラムを特定し、特定したプログラムに関する送出方法定義リスト記憶部から処理方法定義リストを入手する。入手した処理方法定義リストとプログラム起動関係情報に基づいて、起動が正当なプログラムからなされたものであるか否かを判断する。不正なプログラムから起動されたと判断された場合は、処理方法判定部は、データ(パケット)の送出を中止する。
【0091】
図11は本実施形態の送出方法定義リストの例を示す。送出方法判定部112は送出方法定義リストを送出方法定義リスト記憶部113から読み出して、A→B→C→Dの順で起動されていれば、通信は可能である旨とデータ(パケット)と、図11で示される鍵でhmac-sha1アルゴリズムで認証子を生成し、暗号化はしないで送信する旨をデータ変換部115に送出する。
【0092】
本実施形態の発明によれば、権限の異なる複数の機能が混在したネットワーク機器において、各機能それぞれに独立した認証機能を持たせることなく、異なる権限を区別して実行する認証機能を実現することができる。
【0093】
モジュール毎に認証メカニズムを実装する必要が無いため、実装が単純になり、プログラミングのミス(バグ)が出にくく、使用メモリ量も最小限で済む。また、鍵管理を機器全体に対し一本化することができるためその手順を単純化することができる。
【0094】
また、鍵管理が一本化されているにもかかわらず、機器の中に正しく実装されていないモジュールが含まれていたとしても、その影響は不具合のあるモジュールの機能に限定することができ、システム全体の安全性が低下することが無い。さらには、秘密鍵をモジュール毎に管理する必要が無いため、他のモジュールから関係の無い秘密鍵が見えてしまい、鍵が漏洩したり誤ったデータ送信を行うといったリスクが無い。
【0095】
また、将来暗号解読技術が進んだ際においても、認証モジュールが一本化されているため、複数の認証モジュールを完全に置き換えるための膨大な確認作業を必要とせず、容易に認証機能の入れ替えを行い安全性を向上させることができるので、システム保守性の面でも有利になる。
【0096】
上記実施形態の発明によれば、例えば以下のような場面での適用が考えられる。
【0097】
図12は上記実施形態の発明が適用される場面例を示す図である。例えば、「スマートグリッド」と呼ばれる電力監視網(次世代電力網)においては、需要家(一般家庭等)に設置された監視端末(スマートメーター1−5)が、電力需給予測を変電所に送信するなどの重要で安全性の要求されるデータ通信を行う。それと同時に、監視端末(スマートメーター)は、ディスプレイ2−5への電力使用状況の表示や、エアコンなどの家電機器のコントロールなど、複雑でプログラムミスの起こりやすい各種アプリケーションを動かしたり、またはプログラムミスの起こりやすい外部のアプリケーションから受信したデータを元に動作することもあり、機器全体としての安全性を損なうことが危惧される。
【0098】
この種の複雑な機能を持つスマートメーター1−5を従来の(A)機器認証方式で実装した場合、スマートメーター1−5では電力線に接続された電力測定部の測定したデータを、遠隔地にあるコンセントレータ3−5等を経由してスマートグリッドの変電所、MDMS4−5(Metering Data Management System)等へ送信する。その際、送信部9−5にて認証処理(認証子の付加や暗号化など)を行うことによりセキュアな通信を行う。スマートメーター1−5からの通信データは必ず送信部9−5を通り、送信部9−5にて認証処理が確実に行われる。
【0099】
しかし、スマートメーター1−5内のコントロール部8−5は、ディスプレイ2−5への表示機能や、家電機器5−5と連携したHEMS6−5(Home Energy Management System:ホームサーバ)とのデータ送受信などを行う巨大なアプリケーションである。そのため、誤ったデータ処理や、HEMS6−5から受信した誤データなどが原因となり、送信部9−5が誤送信を行うミスが起こりやすい。その場合、通常、送信部9−5は誤送信か否かの判断はできないため、そのままスマートグリッドの通信網へ誤ったデータを送信し、それが元で地域の送配電システムを混乱させ、最悪、停電等の問題を引き起こす可能性がある。同様に、スマートメーター1−5に何等かの理由で不正に入り込んだコンピュータ・ウイルスが送信部9−5に不正なデータを送り込んだり、外部の攻撃者がネットワークを経由して送信部9−5に不正なデータを送り込んだりすることにより、送配電システムが混乱する恐れがある。
【0100】
また、スマートメーター1−5を従来の(B)モジュール認証方式で実装した場合、電力測定部7−5は独自に認証機能を持ち、秘密鍵を用いて認証子を付加するなどして、スマートグリッド網を通してMDMS4−5へ通信を行う。MDMS4−5は電力測定部7−5と同じ秘密鍵にて認証子を検証する。一方、コントロール部8−5は別途認証機能を持ち、家電制御等の複雑なデータをASP(Application Service Provider)へ送信する。MDMS4−5とASPはそれぞれ役割が異なり、認証機能も秘密鍵も個別に持っているため、例えばコントロール部8−5が誤って生成した不正なデータをMDMS4−5に送信してしまい、送配電網を混乱させるといった事故は起こらない。
【0101】
しかしながら、アクセス主体毎に認証の方法を分離することで安全性を高めるメリットがあるものの、同時にさまざまなデメリットもある。
【0102】
まず、モジュール毎に認証メカニズムを実装しなくてはならないため、実装が複雑になり、プログラミングのミス(バグ)が出やすくなったり、使用メモリ量が多くなったり、鍵管理の手順が複雑になったりする。また、正しく実装されていないモジュールがひとつでもあるとシステム全体の安全性が低下することにもなる。さらには、モジュール毎の秘密鍵は機器の中では特に守られていないため、他のモジュールから関係の無い秘密鍵が見えてしまい、鍵が漏洩したり誤ったデータ送信を行うリスクが無くならない。また、将来暗号解読技術が進んだ際に、認証モジュールを置き換えなければならないが、沢山の認証モジュールが複雑に組み込まれていると、完全に置き換えるためには膨大な確認作業が発生する。つまり、このような実装方法は、非常に手間がかかると同時に安全性の維持が難しく、望ましいものではない。
【0103】
上述のように、通信ネットワークの普及により利用形態が複雑化した機器を認証する場合において、従来のネットワーク機器の認証装置では、権限の異なる複数の機能が混在することにより、アプリケーションのデータ処理のミスなどを原因として送信部9−5より誤送信を行い、本来の認証機能が有効に働かなかったり、あるいは、不正に入り込んだコンピュータ・ウイルスが送信部9−5に不正なデータを送り込んだりすることを防ぐのは難しかった。
【0104】
また、これを防ぐために、権限の異なる複数の機能それぞれに独立した認証機能を持たせた場合においては、実装が複雑になり、プログラミングのミス(バグ)が出やすくなったり、鍵管理の手順が複雑になったりすることにより、システムの安全性を維持することが難しいという問題があった。
【0105】
この実施形態の発明は、権限の異なる複数の機能が混在したネットワーク機器を、非常に簡単な手順により、安全に実装することができるようにした、ネットワーク機器の認証方法を提供することができる。
【0106】
上記各実施形態では、認証子の生成、および暗号化に必要な鍵が送出方法定義リスト記憶部に記憶されているとしているが、送出方法定義リストの構成はこれに限定するものではない。例えば、データ変換部が鍵情報を持ち、送出方法定義リストには(鍵情報そのものではなく)どの鍵を使うべきかのインデックス番号のみを記載する、といった別の形態も考えられる。
【0107】
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【0108】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【0109】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行しても良い。
【0110】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【0111】
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【0112】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【0113】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【0114】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0115】
1・・・スマートメーター
2・・・コントロール部データ受信サーバ
3・・・電力量受信サーバ
4・・・ディスプレイ
5・・・HEMS
6・・・家電機器
11・・・データ送出処理部
12・・・電力測定部
13・・・コントロール部
111・・・パケット受信部
112・・・処理方法判定部
113・・・送出方法定義リスト記憶部
114・・・送出元モジュール特定部
115・・・データ変換部
116・・・送信部
【特許請求の範囲】
【請求項1】
データを受信するデータ受信部と、
前記データを送出したモジュールを特定する送出元モジュール特定部と、
送出元モジュール毎に定義された、データ変換方法もしくは通信の可否を含む前記データの処理方法を示す送出方法定義リストを記憶する送出方法定義リスト記憶部と、
送出元モジュール特定部によって特定された送出元モジュールに対応する処理方法を、送出方法定義リストを参照し決定する、処理方法判定部と、
処理方法判定部の決定した処理方法に前記データの変換方法が含まれる場合は、前記データを変換するデータ変換部と、
処理方法判定部が通信可能と判断した場合は、前記データまたは変換されたデータを送出する送信部と
を有する、データ送信処理装置。
【請求項2】
前記データ変換部は、送出元モジュール特定部によって特定されたモジュールの識別情報をデータに付加することを特徴とする、請求項1記載のデータ送信処理装置。
【請求項3】
前記データ受信部は、さらに前記データを送出したモジュールのデジタル署名または認証子またはチェックサムを受信し、
前記送出元モジュール特定部は、特定したモジュールのデジタル署名または認証子またはチェックサムを検証して正しいモジュールであるか否かを確認することを特徴とする、請求項2記載のデータ送信処理装置。
【請求項4】
前記送信元モジュール特定部は、特定したモジュールが起動されるに至った経緯情報を検出することを特徴とする、請求項3記載のデータ送信処理装置。
【請求項5】
コンピュータに
データを受信するデータ受信部、
前記データを送出したモジュールを特定する送出元モジュール特定部、
送出元モジュール毎に定義された、データ変換方法もしくは通信の可否を含む前記データの処理方法を示す送出方法定義リストを記憶する送出方法定義リスト記憶部、
送出元モジュール特定部によって特定された送出元モジュールに対応する処理方法を、送出方法定義リストを参照し決定する、処理方法判定部、
処理方法判定部の決定した処理方法に前記データの変換方法が含まれる場合は、前記データを変換するデータ変換部、
処理方法判定部が通信可能と判断した場合は、前記データまたは変換されたデータを送出する送信部
を実現させるためのデータ送信処理プログラム。
【請求項1】
データを受信するデータ受信部と、
前記データを送出したモジュールを特定する送出元モジュール特定部と、
送出元モジュール毎に定義された、データ変換方法もしくは通信の可否を含む前記データの処理方法を示す送出方法定義リストを記憶する送出方法定義リスト記憶部と、
送出元モジュール特定部によって特定された送出元モジュールに対応する処理方法を、送出方法定義リストを参照し決定する、処理方法判定部と、
処理方法判定部の決定した処理方法に前記データの変換方法が含まれる場合は、前記データを変換するデータ変換部と、
処理方法判定部が通信可能と判断した場合は、前記データまたは変換されたデータを送出する送信部と
を有する、データ送信処理装置。
【請求項2】
前記データ変換部は、送出元モジュール特定部によって特定されたモジュールの識別情報をデータに付加することを特徴とする、請求項1記載のデータ送信処理装置。
【請求項3】
前記データ受信部は、さらに前記データを送出したモジュールのデジタル署名または認証子またはチェックサムを受信し、
前記送出元モジュール特定部は、特定したモジュールのデジタル署名または認証子またはチェックサムを検証して正しいモジュールであるか否かを確認することを特徴とする、請求項2記載のデータ送信処理装置。
【請求項4】
前記送信元モジュール特定部は、特定したモジュールが起動されるに至った経緯情報を検出することを特徴とする、請求項3記載のデータ送信処理装置。
【請求項5】
コンピュータに
データを受信するデータ受信部、
前記データを送出したモジュールを特定する送出元モジュール特定部、
送出元モジュール毎に定義された、データ変換方法もしくは通信の可否を含む前記データの処理方法を示す送出方法定義リストを記憶する送出方法定義リスト記憶部、
送出元モジュール特定部によって特定された送出元モジュールに対応する処理方法を、送出方法定義リストを参照し決定する、処理方法判定部、
処理方法判定部の決定した処理方法に前記データの変換方法が含まれる場合は、前記データを変換するデータ変換部、
処理方法判定部が通信可能と判断した場合は、前記データまたは変換されたデータを送出する送信部
を実現させるためのデータ送信処理プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−48576(P2012−48576A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2010−191339(P2010−191339)
【出願日】平成22年8月27日(2010.8.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願日】平成22年8月27日(2010.8.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]