(57)【要約】【課題】サイバー攻撃を抑制してセキュリティを向上することができるコンピュータプログラム、デバイス及び抑制方法を提供する。【解決手段】コンピュータプログラムは、ノーマル実行環境から仮想的に分離され、ノーマル実行環境よりも安全なセキュア実行環境で所要の処理を実行させるため、コンピュータに、第１ノーマル実行環境で実行され、通信ネットワークを介して接続される外部装置との通信を制御する通信制御モジュールから認証情報及び所定のコマンドを取得する処理と、取得した認証情報が正当である場合、通信制御モジュール以外の制御モジュールに所定のコマンドを出力する処理とを実行させる。【選択図】図１
2019061538.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で所要の処理を実行させるためのコンピュータプログラムであって、
コンピュータに、
第１ノーマル実行環境で実行され、通信ネットワークを介して接続される外部装置との通信を制御する通信制御モジュールから認証情報及び所定のコマンドを取得する処理と、
取得した認証情報が正当である場合、前記通信制御モジュール以外の制御モジュールに前記所定のコマンドを出力する処理と
を実行させるコンピュータプログラム。
【請求項２】
コンピュータに、
取得した認証情報が正当でない場合、前記所定のコマンドの出力を中止する処理を実行させる請求項１に記載のコンピュータプログラム。
【請求項３】
コンピュータに、
取得した認証情報が正当でない場合、前記第１ノーマル実行環境で実行されるＯＳを再起動させる処理を実行させる請求項１又は請求項２に記載のコンピュータプログラム。
【請求項４】
コンピュータに、
前記セキュア実行環境で実行され、センサ部からのセンサデータの取得を制御するセンサ制御モジュールに前記所定のコマンドを出力する処理を実行させる請求項１から請求項３のいずれか一項に記載のコンピュータプログラム。
【請求項５】
コンピュータに、
前記セキュア実行環境で実行され、アクチュエータを制御するアクチュエータ制御モジュールに前記所定のコマンドを出力する処理を実行させる請求項１から請求項３のいずれか一項に記載のコンピュータプログラム。
【請求項６】
コンピュータに、
前記セキュア実行環境によって前記第１ノーマル実行環境から分離された第２ノーマル実行環境で実行され、センサ部からのセンサデータの取得を制御するセンサ制御モジュールに前記所定のコマンドを出力する処理を実行させる請求項１から請求項３のいずれか一項に記載のコンピュータプログラム。
【請求項７】
コンピュータに、
前記セキュア実行環境によって前記第１ノーマル実行環境から分離された第２ノーマル実行環境で実行され、アクチュエータを制御するアクチュエータ制御モジュールに前記所定のコマンドを出力する処理を実行させる請求項１から請求項３のいずれか一項に記載のコンピュータプログラム。
【請求項８】
コンピュータに、
前記センサ制御モジュールから取得したセンサデータを暗号化する処理、又は前記センサデータの改ざん検知処理の少なくとも一方の処理と、
暗号化又は改ざん検知処理されたセンサデータを前記第１ノーマル実行環境内のメモリに格納する処理と
を実行させる請求項４又は請求項６に記載のコンピュータプログラム。
【請求項９】
コンピュータに、
前記アクチュエータ制御モジュールから取得したアクチュエータデータを暗号化する処理、又は前記アクチュエータデータの改ざん検知処理の少なくとも一方の処理と、
暗号化又は改ざん検知処理されたアクチュエータデータを前記第１ノーマル実行環境内のメモリに格納する処理と
を実行させる請求項５又は請求項７に記載のコンピュータプログラム。
【請求項１０】
コンピュータに、
前記通信制御モジュールが出力する、認証情報を暗号化した情報を取得する処理と、
取得した情報を所定の鍵で復号して得られた認証情報及び前記セキュア実行環境内のセキュアメモリに記憶した認証情報に基づいて、認証情報が正当であるか否かを判定する処理と
を実行させる請求項１から請求項９のいずれか一項に記載のコンピュータプログラム。
【請求項１１】
コンピュータに、
前記通信制御モジュールが出力する、所定のセッション鍵を暗号化したセッション鍵情報を取得する処理と、
取得したセッション鍵情報を所定の秘密鍵で復号してセッション鍵を取得する処理と、
前記通信制御モジュールが出力する、前記所定のセッション鍵で所定のコマンドを暗号化した情報を取得する処理と、
取得した情報を取得したセッション鍵で復号して前記所定のコマンドを取得する処理と
を実行させる請求項１から請求項１０のいずれか一項に記載のコンピュータプログラム。
【請求項１２】
ノーマル実行環境及び該ノーマル実行環境よりも安全なセキュア実行環境を仮想的に分離して実行環境を提供する仮想化モジュールを備え、請求項１から請求項１１のいずれか一項に記載のコンピュータプログラムを前記セキュア実行環境にインストール可能とするデバイス。
【請求項１３】
通信ネットワークからのサイバー攻撃の抑制方法であって、
ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で動作するセキュアモジュールは、
前記ノーマル実行環境で実行され、通信ネットワークを介して接続される外部装置との通信を制御する通信制御モジュールから認証情報及び所定のコマンドを取得し、
取得した認証情報が正当である場合、前記通信制御モジュール以外の制御モジュールに前記所定のコマンドを出力する抑制方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラム、デバイス及び抑制方法に関する。
【背景技術】
【０００２】
ＩｏＴ（Internet of Things）では、多種多様なデバイスがネットワークに接続されることで新たな付加価値を生み出している。このようなデバイスに対するセキュリティ上の攻撃には多種多様な手法が存在し、より安全なセキュリティ対策が検討されている。
【０００３】
例えば、従来手法として、強制アクセス制御又は最小特権の機能を実現したトラステッドＯＳやセキュアＯＳが知られている。また、特許文献１には、ハードウェアが提供する強制アクセス制御又は権限分割の機能をハイパーバイザーで制御し、外界からの攻撃を防止するための安全な実行環境を提供する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６１３０６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、トラステッドＯＳやセキュアＯＳは、通常のＯＳと互換性が少なく、トラステッドＯＳやセキュアＯＳ上で動作するアプリケーションの開発コストが高く、また通常のＯＳ上で動作する従来のソフトウェア資産を活用することが困難である。一方で、サイバー攻撃の多くは、ネットワークの脆弱性をつくものであり、一度侵入を許すと、デバイスが異常な動作をし、あるいはデータが利用できなくなる等の事態が生じる。
【０００６】
本発明は、斯かる事情に鑑みてなされたものであり、サイバー攻撃を抑制してセキュリティを向上することができるコンピュータプログラム、デバイス及び抑制方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の実施の形態に係るコンピュータプログラムは、コンピュータに、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で所要の処理を実行させるためのコンピュータプログラムであって、コンピュータに、第１ノーマル実行環境で実行され、通信ネットワークを介して接続される外部装置との通信を制御する通信制御モジュールから認証情報及び所定のコマンドを取得する処理と、取得した認証情報が正当である場合、前記通信制御モジュール以外の制御モジュールに前記所定のコマンドを出力する処理とを実行させる。
【０００８】
本発明の実施の形態に係るデバイスは、ノーマル実行環境及び該ノーマル実行環境よりも安全なセキュア実行環境を仮想的に分離して実行環境を提供する仮想化モジュールを備え、本発明の実施の形態に係るコンピュータプログラムを前記セキュア実行環境にインストール可能とする。
【０００９】
本発明の実施の形態に係る抑制方法は、通信ネットワークからのサイバー攻撃の抑制方法であって、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で動作するセキュアモジュールは、前記ノーマル実行環境で実行され、通信ネットワークを介して接続される外部装置との通信を制御する通信制御モジュールから認証情報及び所定のコマンドを取得し、取得した認証情報が正当である場合、前記通信制御モジュール以外の制御モジュールに前記所定のコマンドを出力する。
【発明の効果】
【００１０】
本発明によれば、サイバー攻撃を抑制してセキュリティを向上することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態のデバイスの構成の第１実施例を示すブロック図である。
【図２】本実施の形態のデバイス及びセンサデータの一例を示す説明図である。
【図３】本実施の形態の認証モジュールによる認証情報が正当である場合の動作の一例を示す説明図である。
【図４】本実施の形態の認証モジュールによる認証情報が正当でない場合の動作の一例を示す説明図である。
【図５】本実施の形態の認証モジュールによるセッション鍵を使用した動作の一例を示す説明図である。
【図６】本実施の形態の認証モジュールによるサイバー攻撃の抑制処理の手順の一例を示すフローチャートである。
【図７】本実施の形態のデバイスの構成の第２実施例を示すブロック図である。
【図８】本実施の形態のデバイスの構成の第３実施例を示すブロック図である。
【図９】本実施の形態のデバイスの構成の第４実施例を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面に基づいて説明する。図１は本実施の形態のデバイス１００の構成の第１実施例を示すブロック図である。デバイス１００は、「モノのインターネット」（ＩｏＴ）でいうところの「モノ」に該当するデバイス（電子デバイスとも称する）を含む。デバイス１００は、例えば、単一のＳｏＣ（System on a Chip）で構成され、一個の半導体チップ上にシステムの動作に必要な機能の多く、あるいは全ての機能を一体化して実装している。
【００１３】
デバイス１００は、ネットワーク１を介して外部装置２００に接続されている。外部装置２００は、メモリ２０１を備える。メモリ２０１には、認証情報及び鍵が格納されている。
【００１４】
デバイス１００は、ネットワーク通信部５２、センサ部５３などを備える。ネットワーク通信部５２は、デバイス１００をネットワーク１に接続する機能を有し、ネットワーク１を介して外部装置２００との間で情報の送受信を行うことができる。
【００１５】
デバイス１００では、仮想化技術を実現するハイパーバイザー５１によって、仮想的に分離された複数の実行環境が提供されている。図１では、二つの実行環境が図示されている。一の実行環境は、ノーマル領域１０（ノーマル実行環境、ノーマルドメインとも称する）であり、他の実行環境は、セキュア領域３０（セキュア実行環境、セキュアドメインとも称する）である。
【００１６】
すなわち、ハイパーバイザー５１は、ＣＰＵ５０上で動作し、ノーマル領域１０の仮想コンピュータ及びセキュア領域３０の仮想コンピュータをデバイス１００上で構築している。なお、ハイパーバイザー５１の機能の一部をハードウェア化し、プロセッサコアなどに組み込み高速化を図ることができる。この場合、プロセッサコアには、例えば、ＴｒｕｓｔＺｏｎｅ（登録商標）と称される技術を搭載することができる。ノーマル領域１０とセキュア領域３０との間では、メモリ空間、入出力装置などが分離されている。
【００１７】
ノーマル領域１０は、広く一般的に利用されているＯＳの実行環境であり、セキュア領域３０へのアクセスが制限される以外、特段の機能制約がない実行環境である。
【００１８】
セキュア領域３０は、例えば、セキュリティ機能を隔離する目的で、同一のＳｏＣ上でノーマル領域１０とは別に提供される独立した実行環境である。セキュア領域３０は、ノーマル領域１０からのアクセスが制限されている。
【００１９】
上述のように、ノーマル領域１０からセキュア領域３０にはアクセスできないように制限されるので、ノーマル領域１０からセキュア領域３０で実行する処理を呼び出すためには、ハイパーバイザー５１を経由しなければならない。
【００２０】
ノーマル領域１０には、リッチＯＳ１１、メモリ１２、通信制御モジュール１３、ネットワークドライバ１４などが存在する。なお、図示していないが、ノーマル領域１０には、アプリケーションなども存在する。
【００２１】
セキュア領域３０には、セキュアＯＳ３１、セキュアメモリ３２、コンピュータプログラムとしての認証モジュール３３、センサ制御モジュール３４、センサドライバ３５などが存在する。
【００２２】
センサ制御モジュール３４は、センサドライバ３５を介してセンサ部５３の動作を制御する。例えば、センサ制御モジュール３４は、センサデータを取得するためのコマンドを取得した場合、センサドライバ３５を介してセンサ部５３にセンサデータを取得するように動作制御する。
【００２３】
通信制御モジュール１３は、ネットワークドライバ１４を介してネットワーク通信部５２が行う処理を制御することにより、外部装置２００との間で情報の送受信を行う。
【００２４】
外部装置２００は、認証情報及びセンサ部５３の動作指令を行うコマンドをネットワーク通信部５２に送信する。この場合、外部装置２００は、認証情報を鍵（例えば、公開鍵、共通鍵）で暗号化した情報（データ）をネットワーク通信部５２に送信する。なお、外部装置２００は、認証情報だけでなく、コマンドを暗号化して送信することもできる。通信制御モジュール１３は、認証情報を暗号化した情報及びコマンドを取得することができる。
【００２５】
また、外部装置２００は、セッション鍵を生成し、生成したセッション鍵を鍵（例えば、公開鍵）で暗号化した情報（データ）をネットワーク通信部５２に送信することができる。この場合、通信制御モジュール１３は、受信した情報（データ）をそのまま認証モジュール３３に送信する。認証モジュール３３は、受信した情報を鍵（例えば、秘密鍵）で復号してセッション鍵を取得することができる。セッション鍵が共有（鍵交換完了）された後は、外部装置２００からは認証情報、コマンドをセッション鍵で暗号化して送信することができ、認証モジュール３３（デバイス１００）は、センサデータなどをセッション鍵で暗号化して送信することができる。
【００２６】
通信制御モジュール１３は、外部装置２００から暗号化された認証情報及びコマンドを取得すると、取得した暗号化された認証情報及びコマンドを認証モジュール３３に出力する。
【００２７】
セキュアメモリ３２には、外部装置２００を認証するための認証情報及び鍵（例えば、秘密鍵、共通鍵）が格納されている。
【００２８】
認証モジュール３３は、取得した情報を所定の鍵（例えば、秘密鍵、共通鍵）で復号して認証情報を取得すると、取得した認証情報とセキュアメモリ３２に格納した認証情報とを照合する。両方の認証情報が一致する場合、通信制御モジュール１３から取得した認証情報は正当であると判定することができる。また、両方の認証情報が一致しない場合、通信制御モジュール１３から取得した認証情報は正当でないと判定することができる。これにより、ネットワークから侵入するサイバー攻撃を防止することができる。
【００２９】
認証モジュール３３は、通信制御モジュール１３から取得した認証情報が正当である場合、通信制御モジュール１３から取得したコマンドを通信制御モジュール１３以外の制御モジュール（図１の例では、センサ制御モジュール３４）に出力する。
【００３０】
上述の構成により、セキュア領域３０で実行される認証モジュール３３が外部装置２００の認証を行うので、ノーマル領域１０内に侵入したサイバー攻撃をセキュア領域３０で阻止することができ、サイバー攻撃を抑制してセキュリティを向上することができる。また、ノーマル領域１０で実行される通信制御モジュール１３を用いることにより、通常のＯＳ上で動作する従来のソフトウェア資産を活用することができる。
【００３１】
認証モジュール３３は、取得した認証情報が正当でない場合、センサ制御モジュール３４に対する所定のコマンドの出力を中止する。仮に、ネットワークに接続されたノーマル領域１０内にサイバー攻撃が侵入したとしても、認証モジュール３３がコマンドの出力を中止するので、コマンドの実行を阻止してデバイス１００の異常動作を抑制することができる。また、コマンドの実行により得られるデータ等の奪取を防止できる。
【００３２】
また、認証モジュール３３は、取得した認証情報が正当でない場合、ノーマル領域１０で実行されるリッチＯＳ１１を再起動させることもできる。リッチＯＳ１１の再起動を行うことにより、改ざんされたファイルの初期化、不正なファイルの除去などを行うことができ、ノーマル領域１０内の通信制御モジュール１３を含むアプリケーション、リッチＯＳ１１等の必要な修復を行うことができる。
【００３３】
また、センサ制御モジュール３４は、セキュア領域３０内で実行されるので、サイバー攻撃に晒されることを防止でき、センサ部５３の不正制御、あるいはセンサデータの奪取を防止できる。
【００３４】
センサ制御モジュール３４は、センサ部５３で取得したセンサデータをセキュアメモリ３２に記憶することができる。
【００３５】
図２は本実施の形態のデバイス１００及びセンサデータの一例を示す説明図である。デバイス１００が、例えば、ＩＰカメラである場合、センサ部５３は、カメラモジュールであり、センサデータは、映像データとなる。デバイス１００が、例えば、ＧＰＳトラッカーである場合、センサ部５３は、ＧＰＳモジュールであり、センサデータは、位置データとなる。また、センサデータの保護には、例えば、暗号化、改ざん検知などの処理を行うことができる。なお、デバイス１００は、ＩＰカメラ、ＧＰＳトラッカーに限定されない。
【００３６】
認証モジュール３３は、暗号化処理、改ざん検知処理などを行うことができる。改ざん検知処理は、例えば、署名（デジタル）、メッセージ認証などを含む。署名は、公開鍵暗号方式の秘密鍵を用いて、メッセージのダイジェスト（例えば、ハッシュ値など）を暗号化し、メッセージとともに送信する。メッセージ認証は、共通鍵暗号方式の共通鍵を用いて、メッセージからＭＡＣ（メッセージ認証コード）を生成し、メッセージとともに送信する。
【００３７】
認証モジュール３３は、センサ制御モジュール３４から取得したセンサデータを暗号化する処理、又はセンサデータの改ざん検知する処理の少なくとも一方の処理を行う。センサ制御モジュール３４が、センサデータをセキュアメモリ３２に記憶する場合には、認証モジュール３３は、セキュアメモリ３２から読み出したセンサデータを暗号化する処理、又はセンサデータの改ざん検知する処理の少なくとも一方の処理を行う。暗号化及び改ざん検知の処理は、例えば、セキュアメモリ３２に格納した鍵を使用することができる。
【００３８】
認証モジュール３３は、暗号化したセンサデータ又は改ざん検知処理を施したセンサデータをノーマル領域１０内のメモリ１２に格納する。
【００３９】
通信制御モジュール１３は、メモリ１２に格納された、暗号化又は改ざん検知処理されたセンサデータを外部装置２００に送信することができる。なお、外部装置２００のメモリ２０１に格納される認証情報及び鍵と、セキュアメモリ３２に格納される認証情報及び鍵とは、製造段階での埋め込み、あるいは出荷後のリモートでの埋め込みによって対応付けることができる。
【００４０】
上述の構成により、センサデータの奪取又は改変などを防止することができる。
【００４１】
次に、認証モジュール３３の動作について具体的に説明する。
【００４２】
図３は本実施の形態の認証モジュール３３による認証情報が正当である場合の動作の一例を示す説明図である。以下、ステップＰ１からＰ１０について説明する。
【００４３】
ステップＰ１では、外部装置２００は、認証情報及びコマンドを送信する。なお、認証情報及びコマンドは、メモリ２０１に格納した鍵（例えば、公開鍵、共通鍵）を使用して暗号化することができる。
【００４４】
ステップＰ２では、通信制御モジュール１３は、認証情報及びコマンドを取得し、取得した認証情報及びコマンドを認証モジュール３３に送信（出力）する。
【００４５】
ステップＰ３では、認証モジュール３３は、取得した認証情報を照合する。なお、認証情報及びコマンドは、セキュアメモリ３２に格納した鍵（例えば、秘密鍵、共通鍵）を使用して復号することができる。
【００４６】
ステップＰ４では、認証モジュール３３は、取得した認証情報とセキュアメモリ３２に格納した認証情報とが一致する場合、認証情報は正当であるとして、取得したコマンドをセンサ制御モジュール３４に送信する。
【００４７】
ステップＰ５では、センサ制御モジュール３４は、取得したコマンドに基づいてセンサデータを取得する。認証情報が正当であると判定された場合、所定のコマンドをセンサ制御モジュール３４に出力するので、コマンドに基づく動作、例えば、センサ部５３でのセンサデータの検出又は取得等を行うことができる。
【００４８】
ステップＰ６では、センサ制御モジュール３４は、取得したセンサデータをセキュアメモリ３２に格納する。
【００４９】
ステップＰ７では、認証モジュール３３は、セキュアメモリ３２からセンサデータを読み出し、読み出したセンサデータを暗号化する。なお、暗号化に代えて、あるいは暗号化に加えてセンサデータの改ざん検知処理を行ってもよい。
【００５０】
ステップＰ８では、認証モジュール３３は、暗号化したセンサデータをメモリ１２に格納する。
【００５１】
ステップＰ９では、通信制御モジュール１３は、メモリ１２から暗号化されたセンサデータを読み出し、読み出した暗号化されたセンサデータを外部装置２００に送信する。
【００５２】
ステップＰ１０では、外部装置２００は、暗号化されたセンサデータを取得し、復号してセンサデータを取得する。
【００５３】
図４は本実施の形態の認証モジュール３３による認証情報が正当でない場合の動作の一例を示す説明図である。以下、ステップＰ１１からＰ１４について説明する。
【００５４】
ステップＰ１１では、外部装置２００は、認証情報及びコマンドを送信する。
【００５５】
ステップＰ１２では、通信制御モジュール１３は、認証情報及びコマンドを取得し、取得した認証情報及びコマンドを認証モジュール３３に送信（出力）する。
【００５６】
ステップＰ１３では、認証モジュール３３は、取得した認証情報を照合する。
【００５７】
ステップＰ１４では、認証モジュール３３は、取得した認証情報とセキュアメモリ３２に格納した認証情報とが一致しない場合、認証情報は正当でないとして、取得したコマンドの送信を中止する。これにより、センサ（センサ部５３）の不正制御、あるいはセンサデータの奪取を防止することができる。
【００５８】
図５は本実施の形態の認証モジュール３３によるセッション鍵を使用した動作の一例を示す説明図である。以下、ステップＰ２１からＰ２６について説明する。
【００５９】
ステップＰ２１では、外部装置２００は、セッション鍵を生成する。
【００６０】
ステップＰ２２では、外部装置２００は、セッション鍵を公開鍵で暗号化したデータを通信制御モジュール１３に送信する。
【００６１】
ステップＰ２３では、通信制御モジュール１３は、受信したデータを認証モジュール３３に送信する。
【００６２】
ステップＰ２４では、認証モジュール３３は、受信したデータを秘密鍵で復号してセッション鍵を取得する。なお、秘密鍵は、セキュアメモリ３２に予め格納しておくことができる。これにより、外部装置２００とデバイス１００（認証モジュール３３）とは、お互いに共通のセッション鍵を有することができ、以後の通信に使用することができる。
【００６３】
ステップＰ２５では、外部装置２００は、認証情報及びコマンドをセッション鍵で暗号化したデータを通信制御モジュール１３に送信する。
【００６４】
ステップＰ２６では、通信制御モジュール１３は、受信したデータを認証モジュール３３に送信する。
【００６５】
ステップＰ２７では、認証モジュール３３は、受信したデータをセッション鍵で復号して認証情報及びコマンドを取得する。
【００６６】
ステップＰ２８では、認証モジュール３３は、取得した認証情報を照合する。以降の動作は、図３又は図４の動作と同様である。すなわち、外部装置２００は、認証情報、コマンドをセッション鍵で暗号化してデバイス１００に送信する。認証モジュール３３（デバイス１００）は、センサデータなどをセッション鍵で暗号化して外部装置２００に送信することができる。
【００６７】
セキュア領域３０に保存された鍵が公開鍵暗号方式の秘密鍵である場合、大容量のセンサデータ（例えば、映像データなど）に対して秘密鍵で暗号化すると、暗号化及び復号処理に要する時間は、共通鍵暗号化方式に比べて非常に長くなる。セッション鍵を用いることにより、暗号化及び復号処理に要する時間を短縮することができる。特に、処理能力が比較的小さいデバイス１００では、暗号化及び復号処理の時間の短縮は、デバイス１００の動作を適切に維持する上で好ましい。
【００６８】
図６は本実施の形態の認証モジュール３３によるサイバー攻撃の抑制処理の手順の一例を示すフローチャートである。認証モジュール３３は、セッション鍵が暗号化されたデータを通信制御モジュール１３から受信し（Ｓ１１）、受信したデータを秘密鍵で復号してセッション鍵を取得する（Ｓ１２）。
【００６９】
認証モジュール３３は、認証情報、コマンドが暗号化されたデータを通信制御モジュール１３から受信し（Ｓ１３）、受信したデータをセッション鍵で復号して認証情報、コマンドを取得する（Ｓ１４）。認証モジュール３３は、取得した認証情報を照合する（Ｓ１５）。
【００７０】
認証モジュール３３は、取得した認証情報とセキュアメモリ３２に格納した認証情報とが一致するか否かを判定し（Ｓ１６）、認証情報が一致する場合（Ｓ１６でＹＥＳ）、認証情報が正当であるとして、取得したコマンドをセンサ制御モジュール３４に送信する（Ｓ１７）。
【００７１】
認証モジュール３３は、センサデータがセキュアメモリ３２に格納されたか否かを判定し（Ｓ１８）、センサデータがセキュアメモリ３２に格納されていない場合（Ｓ１８でＮＯ）、ステップＳ１８の処理を続ける。センサデータがセキュアメモリ３２に格納された場合（Ｓ１８でＹＥＳ）、認証モジュール３３は、セキュアメモリ３２からセンサデータを読み出し、読み出したセンサデータを暗号化、あるいはセンサデータの改ざん検知処理を行う（Ｓ１９）。なお、暗号化と改ざん検知処理の付与の両方の処理を行うこともできる。
【００７２】
認証モジュール３３は、暗号化されたセンサデータ又は改ざん検知処理されたセンサデータをメモリ１２に格納し（Ｓ２０）、処理を終了する。認証情報が一致しない場合（Ｓ１６でＮＯ）、認証情報が正当でないとして、認証モジュール３３は、コマンドの送信を中止し（Ｓ２１）、処理を終了する。
【００７３】
図７は本実施の形態のデバイス１００の構成の第２実施例を示すブロック図である。図１に例示した第１実施例との相違点は、センサ制御モジュール３４、センサドライバ３５及びセンサ部５３に代えて、アクチュエータ制御モジュール３７、アクチュエータドライバ３６、アクチュエータ５４を備える点である。アクチュエータ５４は、例えば、ロボットアーム等に用いられる。アクチュエータ制御モジュール３７は、センサ制御モジュール３４と同様にセキュア領域３０で実行される。
【００７４】
第２実施例では、認証モジュール３３は、認証情報が正当であると判定された場合、所定のコマンドをアクチュエータ制御モジュール３７に出力するので、コマンドに基づく動作、例えば、アクチュエータ５４の動作制御等を行うことができる。
【００７５】
また、第１実施例と同様に、認証モジュール３３は、暗号化したアクチュエータデータ又は改ざん検知処理したアクチュエータデータをメモリ１２に格納する。メモリ１２に格納された、暗号化又は改ざん検知処理されたアクチュエータデータは、通信制御モジュール１３によって外部装置２００に送信することができる。
【００７６】
これにより、アクチュエータデータの奪取又は改変などを防止することができる。
【００７７】
図８は本実施の形態のデバイス１００の構成の第３実施例を示すブロック図である。図１に例示した第１実施例との相違点は、第１のノーマル領域１０に加えて、第２のノーマル領域２０を備え、ノーマル領域２０には、リッチＯＳ２１、メモリ２２、センサ制御モジュール２３、センサドライバ２４などが存在する。リッチＯＳ２１、メモリ２２、センサ制御モジュール２３、センサドライバ２４は、リッチＯＳ１１、メモリ１２、センサ制御モジュール３４、センサドライバ３５と同様の機能を有する。
【００７８】
センサ制御モジュール２３は、ノーマル領域２０で実行される。ノーマル領域２０は、セキュア領域３０によってノーマル領域１０から分離された実行環境である。すなわち、ノーマル領域１０とノーマル領域２０とは仮想的に分離されており、ノーマル領域１０とノーマル領域２０との間の処理は、セキュア領域３０によって管理される。
【００７９】
認証モジュール３３は、認証情報が正当であると判定された場合、所定のコマンドをセンサ制御モジュール２３に出力するので、コマンドに基づく動作、例えば、センサ部５３でのセンサデータの検出又は取得等を行うことができる。
【００８０】
センサ制御モジュール２３は、取得したセンサデータをメモリ２２に格納することができる。この場合、認証モジュール３３は、メモリ２２からセンサデータを読み出すことができる。
【００８１】
また、ノーマル領域２０で実行されるセンサ制御モジュール２３は、ノーマル領域１０内に侵入したサイバー攻撃に対して、セキュア領域３０によって保護されるので、センサ部５３の不正制御、あるいはセンサデータの奪取を防止できる。
【００８２】
図９は本実施の形態のデバイス１００の構成の第４実施例を示すブロック図である。図７に例示した第２実施例との相違点は、第１のノーマル領域１０に加えて、第２のノーマル領域２０を備え、ノーマル領域２０には、リッチＯＳ２１、メモリ２２、アクチュエータ制御モジュール２５、アクチュエータドライバ２６などが存在する。リッチＯＳ２１、メモリ２２、アクチュエータ制御モジュール２５、アクチュエータドライバ２６は、リッチＯＳ１１、メモリ１２、アクチュエータ制御モジュール３７、アクチュエータドライバ３６と同様の機能を有する。
【００８３】
アクチュエータ制御モジュール２５は、ノーマル領域２０で実行される。ノーマル領域２０は、セキュア領域３０によってノーマル領域１０から分離された実行環境である。すなわち、ノーマル領域１０とノーマル領域２０とは仮想的に分離されており、ノーマル領域１０とノーマル領域２０との間の処理は、セキュア領域３０によって管理される。
【００８４】
認証モジュール３３は、認証情報が正当であると判定された場合、所定のコマンドをアクチュエータ制御モジュール２５に出力するので、コマンドに基づく動作、例えば、アクチュエータ５４の動作制御等を行うことができる。
【００８５】
アクチュエータ制御モジュール２５は、取得したアクチュエータデータをメモリ２２に格納することができる。この場合、認証モジュール３３は、メモリ２２からアクチュエータデータを読み出すことができる。
【００８６】
また、ノーマル領域２０で実行されるアクチュエータ制御モジュール２５は、ノーマル領域１０内に侵入したサイバー攻撃に対して、セキュア領域３０によって保護されるので、アクチュエータ５４の不正動作を防止できる。
【００８７】
上述のように、本実施の形態によれば、ネットワークに接続されたノーマル領域にサイバー攻撃が侵入しても、センサ部又はアクチュエータ等の不正制御、センサデータ又はアクチュエータデータ等の奪取を防止することができる。また、ノーマル領域内のリッチＯＳ、通信制御モジュール、センサ制御モジュール、アクチュエータ制御モジュール、その他のアプリケーション等は従来のソフトウェア資産を活用できるため開発コストが不要又は低減することができコストを低減することができる。
【００８８】
本実施の形態に係るコンピュータプログラムは、コンピュータに、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で所要の処理を実行させるためのコンピュータプログラムであって、コンピュータに、第１ノーマル実行環境で実行され、通信ネットワークを介して接続される外部装置との通信を制御する通信制御モジュールから認証情報及び所定のコマンドを取得する処理と、取得した認証情報が正当である場合、前記通信制御モジュール以外の制御モジュールに前記所定のコマンドを出力する処理とを実行させる。
【００８９】
本実施の形態に係るデバイスは、ノーマル実行環境及び該ノーマル実行環境よりも安全なセキュア実行環境を仮想的に分離して実行環境を提供する仮想化モジュールを備え、本実施の形態に係るコンピュータプログラムを前記セキュア実行環境にインストール可能とする。
【００９０】
本実施の形態に係る抑制方法は、通信ネットワークからのサイバー攻撃の抑制方法であって、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で動作するセキュアモジュールは、前記ノーマル実行環境で実行され、通信ネットワークを介して接続される外部装置との通信を制御する通信制御モジュールから認証情報及び所定のコマンドを取得し、取得した認証情報が正当である場合、前記通信制御モジュール以外の制御モジュールに前記所定のコマンドを出力する。
【００９１】
デバイスには、例えば、ハイパーバイザーなどの仮想化技術を用いたモジュールによって仮想的に分離された複数の実行環境が提供されている。一の実行環境は、ノーマル実行環境（ノーマルドメインとも称する）であり、リッチＯＳ、通信制御モジュールなどが動作するものである。なお、ノーマル実行環境は一つに限定されず、複数でもよい。他の実行環境は、セキュア実行環境（セキュアドメインとも称する）であり、ノーマル実行環境と分離され、セキュリティ上より安全な実行環境である。本実施の形態のコンピュータプログラムは、認証モジュールであり、セキュア実行環境で動作する。
【００９２】
通信制御モジュールは、第１ノーマル実行環境で実行され、通信ネットワークを介して接続される外部装置との通信を制御する。
【００９３】
認証モジュールは、通信制御モジュールから認証情報及び所定のコマンドを取得する。認証情報は、デバイスが、外部装置を認証するための情報であり、通信制御モジュールが外部装置から認証情報を取得すると、取得した認証情報を認証モジュールに出力する。所定のコマンドは、外部装置がデバイスに対して行う指令であり、通信制御モジュールが外部装置からコマンドを取得すると、取得したコマンドを認証モジュールに出力する。
【００９４】
認証モジュールは、取得した認証情報が正当である場合、通信制御モジュール以外の制御モジュールに所定のコマンドを出力する。認証モジュールは、取得した認証情報と予め記憶された認証情報とを照合し、両方の認証情報が一致するか否かを判定する。認証情報が一致する場合、認証情報が正当であると判定する。通信制御モジュール以外の制御モジュールは、コマンドに基づく処理を制御するモジュールである。
【００９５】
上述の構成により、セキュア実行環境で動作する認証モジュールが外部装置の認証を行うので、第１ノーマル実行環境内に侵入したサイバー攻撃をセキュア実行環境で阻止することができ、サイバー攻撃を抑制してセキュリティを向上することができる。また、第１ノーマル実行環境で動作する通信制御モジュールを用いることにより、通常のＯＳ上で動作する従来のソフトウェア資産を活用することができる。
【００９６】
本実施の形態に係るコンピュータプログラムは、コンピュータに、取得した認証情報が正当でない場合、前記所定のコマンドの出力を中止する処理を実行させる。
【００９７】
認証モジュールは、取得した認証情報が正当でない場合、所定のコマンドの出力を中止する。仮に、ネットワークに接続された第１ノーマル実行環境内にサイバー攻撃が侵入したとしても、コマンドの出力を中止するので、コマンドの実行を阻止してデバイスの異常動作を抑制することができる。また、コマンドの実行により得られるデータ等の奪取を防止できる。
【００９８】
本実施の形態に係るコンピュータプログラムは、コンピュータに、取得した認証情報が正当でない場合、前記第１ノーマル実行環境で実行されるＯＳを再起動させる処理を実行させる。
【００９９】
認証モジュールは、取得した認証情報が正当でない場合、第１ノーマル実行環境で実行されるＯＳを再起動させる。ＯＳの再起動を行うことにより、改ざんされたファイルの初期化、不正なファイルの除去などを行うことができ、第１ノーマル実行環境内の通信制御モジュールを含むアプリケーション、ＯＳ等を修復することができる。
【０１００】
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記セキュア実行環境で実行され、センサ部からのセンサデータの取得を制御するセンサ制御モジュールに前記所定のコマンドを出力する処理を実行させる。
【０１０１】
認証モジュールは、セキュア実行環境で実行され、センサ部からのセンサデータの取得を制御するセンサ制御モジュールに所定のコマンドを出力する。認証情報が正当であると判定された場合、所定のコマンドをセンサ制御モジュールに出力するので、コマンドに基づく動作、例えば、センサ部でのセンサデータの検出又は取得等を行うことができる。
【０１０２】
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記セキュア実行環境で実行され、アクチュエータを制御するアクチュエータ制御モジュールに前記所定のコマンドを出力する処理を実行させる。
【０１０３】
認証モジュールは、セキュア実行環境で実行され、アクチュエータを制御するアクチュエータ制御モジュールに所定のコマンドを出力する。認証情報が正当であると判定された場合、所定のコマンドをアクチュエータ制御モジュールに出力するので、コマンドに基づく動作、例えば、アクチュエータの動作制御等を行うことができる。
【０１０４】
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記セキュア実行環境によって前記第１ノーマル実行環境から分離された第２ノーマル実行環境で実行され、センサ部からのセンサデータの取得を制御するセンサ制御モジュールに前記所定のコマンドを出力する処理を実行させる。
【０１０５】
センサ制御モジュールは、第２ノーマル実行環境で実行される。第２ノーマル実行環境は、セキュア実行環境によって第１ノーマル実行環境から分離された実行環境である。すなわち、第１ノーマル実行環境と第２ノーマル実行環境とは仮想的に分離されており、第１ノーマル実行環境と第２ノーマル実行環境との間の処理は、セキュア実行環境によって管理される。
【０１０６】
認証モジュールは、認証情報が正当であると判定された場合、所定のコマンドを、第２ノーマル実行環境で実行されるセンサ制御モジュールに出力するので、コマンドに基づく動作、例えば、センサ部でのセンサデータの検出又は取得等を行うことができる。
【０１０７】
また、第２ノーマル実行環境で実行されるセンサ制御モジュールは、第１ノーマル実行環境内に侵入したサイバー攻撃に対して、セキュア実行環境によって保護されるので、センサ部の不正制御、あるいはセンサデータの奪取を防止できる。
【０１０８】
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記セキュア実行環境によって前記第１ノーマル実行環境から分離された第２ノーマル実行環境で実行され、アクチュエータを制御するアクチュエータ制御モジュールに前記所定のコマンドを出力する処理を実行させる。
【０１０９】
アクチュエータ制御モジュールは、第２ノーマル実行環境で実行される。第２ノーマル実行環境は、セキュア実行環境によって第１ノーマル実行環境から分離された実行環境である。すなわち、第１ノーマル実行環境と第２ノーマル実行環境とは仮想的に分離されており、第１ノーマル実行環境と第２ノーマル実行環境との間の処理は、セキュア実行環境によって管理される。
【０１１０】
認証モジュールは、認証情報が正当であると判定された場合、所定のコマンドを、第２ノーマル実行環境で実行されるアクチュエータ制御モジュールに出力するので、コマンドに基づく動作、例えば、アクチュエータの動作制御等を行うことができる。
【０１１１】
また、第２ノーマル実行環境で実行されるアクチュエータ制御モジュールは、第１ノーマル実行環境内に侵入したサイバー攻撃に対して、セキュア実行環境によって保護されるので、アクチュエータの不正動作を防止できる。
【０１１２】
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記センサ制御モジュールから取得したセンサデータを暗号化する処理、又は前記センサデータの改ざん検知処理の少なくとも一方の処理と、暗号化又は改ざん検知処理を施したセンサデータを前記第１ノーマル実行環境内のメモリに格納する処理とを実行させる。
【０１１３】
認証モジュールは、センサ制御モジュールから取得したセンサデータを暗号化する処理、又はセンサデータの改ざん検知処理の少なくとも一方の処理を行う。暗号化及び改ざん検知処理は、例えば、セキュア実行環境内のセキュアメモリに格納した鍵を使用することができる。
【０１１４】
認証モジュールは、暗号化したセンサデータ又は改ざん検知処理を施したセンサデータを第１ノーマル実行環境内のメモリに格納する。メモリに格納された、暗号化又は改ざん検知処理されたセンサデータは、通信制御モジュールによって外部装置に送信することができる。
【０１１５】
上述の構成により、センサデータの奪取又は改変などを防止することができる。
【０１１６】
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記アクチュエータ制御モジュールから取得したアクチュエータデータを暗号化する処理、又は前記アクチュエータデータの改ざん検知処理の少なくとも一方の処理と、暗号化又は改ざん検知処理されたアクチュエータデータを前記第１ノーマル実行環境内のメモリに格納する処理とを実行させる。
【０１１７】
認証モジュールは、暗号化したアクチュエータデータ又は改ざん検知処理されたアクチュエータデータを第１第１ノーマル実行環境内のメモリに格納する。メモリに格納された、暗号化又は改ざん検知処理されたアクチュエータデータは、通信制御モジュールによって外部装置に送信することができる。
【０１１８】
上述の構成により、アクチュエータデータの奪取又は改変などを防止することができる。
【０１１９】
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記通信制御モジュールが出力する、認証情報を暗号化した情報を取得する処理と、取得した情報を所定の鍵で復号して得られた認証情報及び前記セキュア実行環境内のセキュアメモリに記憶した認証情報に基づいて、認証情報が正当であるか否かを判定する処理とを実行させる。
【０１２０】
認証モジュールは、通信制御モジュールが認証情報を暗号化した情報を出力すると、当該情報を取得する。外部装置内のメモリには、予め認証情報、暗号化のための鍵が記憶されている。外部装置は、認証情報を鍵で暗号化した情報（データ）を通信制御モジュールに送信する。通信制御モジュールは、外部装置から認証情報を暗号化した情報を取得することができる。
【０１２１】
認証モジュールは、取得した情報を所定の鍵で復号して認証情報を取得すると、取得した認証情報とセキュア実行環境内のセキュアメモリに記憶した認証情報とを照合する。両方の認証情報が一致する場合、通信制御モジュールから取得した認証情報は正当であると判定することができる。また、両方の認証情報が一致しない場合、通信制御モジュールから取得した認証情報は正当でないと判定することができる。これにより、ネットワークから侵入するサイバー攻撃を防止することができる。
【０１２２】
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記通信制御モジュールが出力する、所定のセッション鍵を暗号化したセッション鍵情報を取得する処理と、取得したセッション鍵情報を所定の秘密鍵で復号してセッション鍵を取得する処理と、前記通信制御モジュールが出力する、前記所定のセッション鍵で所定のコマンドを暗号化した情報を取得する処理と、取得した情報を取得したセッション鍵で復号して前記所定のコマンドを取得する処理とを実行させる。
【０１２３】
認証モジュールは、通信制御モジュールが所定のセッション鍵を暗号化したセッション鍵情報を出力すると、当該セッション鍵情報を取得する。セッション鍵の暗号化は、ノーマル実行環境内のメモリに予め記憶された鍵（例えば、公開鍵）を用いることができる。
【０１２４】
認証モジュールは、取得したセッション鍵情報を所定の秘密鍵で復号してセッション鍵を取得する。これにより、認証モジュールと通信制御モジュールとは、お互いに共通のセッション鍵を有することができ、以後の通信に使用することができる。
【０１２５】
認証モジュールは、通信制御モジュールが所定のセッション鍵で所定のコマンドを暗号化した情報を出力すると、当該情報を取得する。認証モジュールは、取得した情報を取得したセッション鍵で復号して所定のコマンドを取得する。
【０１２６】
これにより、所定のコマンドがセッション鍵で保護される。セッション鍵を用いることにより、公開鍵暗号方式に比べて暗号化及び復号処理に要する時間を短縮することができる。
【符号の説明】
【０１２７】
１  ネットワーク
１０、２０  ノーマル領域
１１、２１  リッチＯＳ
１２、２２  メモリ
１３  通信制御モジュール
１４  ネットワークドライバ
２３、３４  センサ制御モジュール
２４、３５  センサドライバ
２５、３７  アクチュエータ制御モジュール
２６、３６  アクチュエータドライバ
３０  セキュア領域
３１  セキュアＯＳ
３２  セキュアメモリ
３３  認証モジュール
５０  ＣＰＵ
５１  ハイパーバイザー
５２  ネットワーク通信部
５３  センサ部
５４  アクチュエータ
１００  デバイス
２００  外部装置
２０１  メモリ
【図１】
2019061538.tif 000003
【図２】
2019061538.tif 000004
【図３】
2019061538.tif 000005
【図４】
2019061538.tif 000006
【図５】
2019061538.tif 000007
【図６】
2019061538.tif 000008
【図７】
2019061538.tif 000009
【図８】
2019061538.tif 000010
【図９】
2019061538.tif 000011