(57)【特許請求の範囲】
【請求項１】
第１の装置及び第２の装置を含むセキュリティシステムであって、
前記第１の装置は、
前記第１の装置上で動作するプログラムのうち監視対象とする第１のプログラムのコードをスキャンして改ざんを検証するコードスキャン機能、前記第１のプログラム内部のコードを変更させながら前記第１のプログラムに同一の機能を提供させる再構成機能、並びに、前記第１のプログラムに所定の秘密の番号通信ルーチンを事前に埋め込んだ上で前記第１のプログラムの動作中に前記秘密の番号通信ルーチンで生成される秘密の番号を用いた通信を行うことで前記第１のプログラムを認証する秘密の番号通信機能により、前記第１のプログラムを保護する第１保護部と、
前記第１のプログラムにより前記第１のプログラムの出力データが暗号化された暗号化データを復号化する第１復号部と、
復号化された出力データを暗号化して該出力データの暗号化データを前記第１の装置とは異なる第２の装置へ伝送させる第１暗号部とを有し、
前記第２の装置は、
伝送された出力データの暗号化データを復号化する第２復号部と、
復号化された出力データを暗号化して該出力データの暗号化データを前記第２の装置上で動作するプログラムのうち監視対象とする第２のプログラムへ出力する第２暗号部と、
前記第２のプログラムのコードをスキャンして改ざんを検証するコードスキャン機能、前記第２のプログラム内部のコードを変更させながら前記第２のプログラムに同一の機能を提供させる再構成機能、並びに、前記第２のプログラムに所定の秘密の番号通信ルーチンを事前に埋め込んだ上で前記第２のプログラムの動作中に前記秘密の番号通信ルーチンで生成される秘密の番号を用いた通信を行うことで前記第２のプログラムを認証する秘密の番号通信機能により、前記第２のプログラムを保護する第２保護部と、を有する
ことを特徴とするセキュリティシステム。
【請求項２】
前記第１暗号部は、前記第１復号部により復号された出力データの改ざん検証情報が付加された出力データを暗号化し、
前記第２復号部は、伝送された出力データの暗号化データを復号化した上で当該出力データの改ざんの有無を検証し、
前記第２暗号部は、前記出力データに改ざんがないと検証された場合に、前記第２復号部により復号化された出力データの暗号化を実行することを特徴とする請求項１に記載のセキュリティシステム。
【請求項３】
前記第１の装置は、内部に格納された情報を外部から参照できない構造を有する第１のモジュールを当該第１の装置が有するプロセッサ及びメモリとは独立した状態で具備すると共に、前記第２の装置は、内部に格納された情報を外部から参照できない構造を有する第２のモジュールを当該第２の装置が有するプロセッサ及びメモリとは独立した状態で具備し、
前記第１のモジュールは、前記第１保護部、前記第１復号部及び前記第１暗号部を有すると共に、前記第２のモジュールは、前記第２保護部、前記第２復号部及び前記第２暗号部を有することを特徴とする請求項１に記載のセキュリティシステム。
【請求項４】
前記第１の装置及び前記第２の装置は、
前記第１のモジュール及び前記第２のモジュールの間の通信を所定の間隔で実行する通信処理部を有し、
前記第１復号部または前記第１暗号部は、前記第１のモジュール及び前記第２のモジュールの間で通信が途絶していない場合に処理の実行が許可され、
前記第２復号部または前記第２暗号部は、前記第１のモジュール及び前記第２のモジュールの間で通信が途絶していない場合に処理の実行が許可されることを特徴とする請求項３に記載のセキュリティシステム。
【請求項５】
前記第１の装置または前記第２の装置は、
前記第１のモジュールまたは前記第２のモジュールに接続された第１表示部を有することを特徴とする請求項３に記載のセキュリティシステム。
【請求項６】
前記第２の装置は、
前記第２の装置のプロセッサ及びメモリに接続された第２表示部と、
前記第２復号部により復号化された出力データが画像である場合、前記画像のフレーム間で前記第２表示部に表示させる画像に埋め込む標示の頻度をランダムにして前記画像に標示を埋め込むと共に、前記画像に標示が埋め込まれるタイミングと同期させて前記第１表示部の表示内容を制御することを特徴とする請求項５に記載のセキュリティシステム。
【請求項７】
前記第１の装置は、
前記第１の装置が有するプロセッサ及びメモリとは独立した状態で外部からの覗き見や改ざんが困難である耐タンパ性の構造を持つ第１のモジュールを有し、
前記第１のモジュールは、前記第１保護部、前記第１復号部及び前記第１暗号部を有し、
前記第１のプログラムは、前記第１の装置が有するプロセッサ上により実行されると共に、前記第１のプログラムを実行する第１実行部は、前記第１保護部及び前記第１復号部に接続されることを特徴とする請求項１に記載のセキュリティシステム。
【請求項８】
前記第１の装置は、
前記第１の装置が有するプロセッサ及びメモリとは独立した状態で外部からの覗き見や改ざんが困難である耐タンパ性の構造を持つ第１のモジュールを有し、
前記第１のモジュールは、前記第１保護部、前記第１復号部及び前記第１暗号部を有し、
前記第２の装置は、
前記第２の装置が有するプロセッサ及びメモリとは独立した状態で外部からの覗き見や改ざんが困難である耐タンパ性の構造を持つ第２のモジュールを有し、
前記第２のモジュールは、前記第２復号部、前記第２暗号部及び前記第２保護部を有し、
前記第１のプログラムの出力データが暗号化された暗号化データは、前記第１のモジュールを介して前記第１の装置及び前記第２の装置の間の伝送路へ出力され、前記第２のモジュールを介して前記第２の装置に受信されることを特徴とする請求項１に記載のセキュリティシステム。
【請求項９】
第１の装置が、
前記第１の装置上で動作するプログラムのうち監視対象とする第１のプログラムのコードをスキャンして改ざんを検証するコードスキャン機能、前記第１のプログラム内部のコードを変更させながら前記第１のプログラムに同一の機能を提供させる再構成機能、並びに、前記第１のプログラムに所定の秘密の番号通信ルーチンを事前に埋め込んだ上で前記第１のプログラムの動作中に前記秘密の番号通信ルーチンで生成される秘密の番号を用いた通信を行うことで前記第１のプログラムを認証する秘密の番号通信機能により、前記第１のプログラムを保護し、
前記第１のプログラムにより前記第１のプログラムの出力データが暗号化された暗号化データを復号化し、
復号化された出力データを暗号化し、
暗号化された出力データの暗号化データを前記第１の装置とは異なる第２の装置へ伝送し、
前記第２の装置が、
伝送された出力データの暗号化データを復号化し、
復号化された出力データを暗号化して該出力データの暗号化データを前記第２の装置上で動作するプログラムのうち監視対象とする第２のプログラムへ出力し、
前記第２のプログラムのコードをスキャンして改ざんを検証するコードスキャン機能、前記第２のプログラム内部のコードを変更させながら前記第２のプログラムに同一の機能を提供させる再構成機能、並びに、前記第２のプログラムに所定の秘密の番号通信ルーチンを事前に埋め込んだ上で前記第２のプログラムの動作中に前記秘密の番号通信ルーチンで生成される秘密の番号を用いた通信を行うことで前記第２のプログラムを認証する秘密の番号通信機能により、前記第２のプログラムを保護する
ことを特徴とするコンピュータ機器間の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティシステム及びコンピュータ機器間の通信方法に関する。
【背景技術】
【０００２】
インターネット機器の広がりと共に、インターネット接続あるいはインターネット接続技術を流用したシステムが普及している。１つの理由として、インターネット関連技術の普及が目覚ましく、大量生産されたインターネット関連技術を流用することで安価にシステムを組むことができる点が挙げられる。【０００３】
一方、多数の違法侵入、違法アクセス制御などが発生しており、これらに対抗するためのセキュリティシステムが構築されている。これらのセキュリティシステムを構築する場合にも、上記の理由からインターネット技術を流用する場合が多い。【０００４】
一般に、各種のコンピュータウィルスからコンピュータ機器を保護するために、ウィルス対策ソフトなどがシステムに含まれるコンピュータ機器にインストールされる場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１１８２６５号公報
【特許文献２】特開２００９−２０５６２７号公報
【特許文献３】特開２０１２−２３４３６２号公報
【特許文献４】特開２０１２−３８２２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、インターネット関連技術は、大量生産されているので、その仕様が多数の人間によって認識されている。このため、これらのインターネット関連技術で構築されたセキュリティシステムは、上記のウィルス対策ソフトなどの対策を講じたとしても、セキュリティが破られる可能性が依然として残る。そして、複数のコンピュータ機器によりシステムが構築される場合、一部のコンピュータ機器がウィルスに感染すると、その悪影響がシステムの各所に派生することもある。【０００７】
１つの側面では、クラッキングによる悪影響がシステムの各所に派生するのを抑制できるセキュリティシステム及びコンピュータ機器間の通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
一態様のセキュリティシステムは、第１の装置及び第２の装置を含むセキュリティシステムであって、前記第１の装置は、前記第１の装置上で動作するプログラムのうち監視対象とする第１のプログラムを保護する第１保護部と、前記第１のプログラムからの出力データが暗号化された暗号化データを復号化する第１復号部と、復号化された出力データを暗号化して該出力データの暗号化データを前記第１の装置とは異なる第２の装置へ伝送させる第１暗号部とを有し、前記第２の装置は、前記第２の装置上で動作するプログラムのうち監視対象とする第２のプログラムを保護する第２保護部と、伝送された出力データの暗号化データを復号化する第２復号部と、復号化された出力データを暗号化して該出力データの暗号化データを前記第２のプログラムへ出力する第２暗号部とを有する。
【発明の効果】
【０００９】
クラッキングによる悪影響がシステムの各所に派生するのを抑制できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係る監視カメラシステムの構成例を示す図である。
【図２】図２は、実施例１に係る監視カメラシステムで実行される通信の一例を示す図である。
【図３】図３は、実施例１に係る監視カメラシステムに含まれるコンピュータ機器の機能的構成を示すブロック図である。
【図４】図４は、実施例１に係る監視カメラシステムの処理の流れを示すシーケンス図である。
【図５】図５は、応用例に係るＰＣの機能的構成を示すブロック図である。
【図６】図６は、応用例に係るＰＣの機能的構成を示すブロック図である。
【図７】図７は、生存確認機能の動作例の一例を示す図である。
【図８】図８は、多重化の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して本願に係るセキュリティシステム及びコンピュータ機器間の通信方法について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１２】
［システム構成］
図１は、実施例１に係る監視カメラシステムの構成例を示す図である。図１には、セキュリティシステムの一例として、監視カメラシステム１が例示されている。図１に示す監視カメラシステム１には、パーソナルコンピュータ（ＰＣ：Personal  Computer）１１０、監視カメラ１２０、カードリーダ１３０、入室資格チェックサーバ１４０、入室資格データベース１５０及び扉コントローラ１６０などのコンピュータ機器が収容される。なお、以下では、ＰＣ１１０、監視カメラ１２０、カードリーダ１３０、入室資格チェックサーバ１４０、入室資格データベース１５０及び扉コントローラ１６０を総称する場合に「コンピュータ機器１００」と記載する場合がある。【００１３】
図２は、実施例１に係る監視カメラシステムで実行される通信の一例を示す図である。例えば、カードリーダ１３０によりカードに記録されたＩＤが読み取られるとともに、カードリーダ１３０に付設された入力部、例えばテンキーなどを介してパスワードが入力された場合、図２に示す（イ）の通り、ＩＤ及びパスワードがカードリーダ１３０から入室資格チェックサーバ１４０へ送信される。【００１４】
続いて、入室資格チェックサーバ１４０は、図２に示す（ロ）の通り、カードリーダ１３０から受信したＩＤに対応するパスワードを入室資格データベース１５０へ問い合わせる。一方、入室資格データベース１５０は、図２に示す（ハ）の通り、入室資格チェックサーバ１４０から問合せがあったＩＤに対応するパスワードを入室資格チェックサーバ１４０へ返信する。【００１５】
その後、入室資格チェックサーバ１４０は、カードリーダ１３０から受信したパスワードと、入室資格データベース１５０から返信されたパスワードとを照合し、両者のパスワードが一致するか否かを判定する。【００１６】
そして、入室資格チェックサーバ１４０は、両者のパスワードが一致する場合、図２の（ニ）の通り、扉６１の開扉を扉コントローラ１６０へ指示する。続いて、扉コントローラ１６０は、図２の（ヘ）の通り、入室資格チェックサーバ１４０からの指示にしたがってモータ６０を駆動させることにより、扉６１を開扉する。なお、両者のパスワードが一致しない場合には、入室資格チェックサーバ１４０から扉コントローラ１６０へ開扉の指示は送信されない。【００１７】
上記の（ニ）が実行されるタイミングで、入室資格チェックサーバ１４０は、図２の（ホ）の通り、パスワードの照合結果をＰＣ１１０へ送信する。その上で、ＰＣ１１０には、パスワードの照合結果、例えば「ＯＫ」または「ＮＧ」などがＰＣ１１０のディスプレイに表示される。【００１８】
このＰＣ１１０では、上記の（イ）〜（ヘ）とは並行して、監視カメラ１２０により所定のフレームレートで扉６１の周辺部が撮像された画像を受信し、当該画像がＰＣ１１０のディスプレイに表示される。このため、ＰＣ１１０のディスプレイを閲覧する保守担当者の判断により、ＰＣ１１０の入力部を介して開扉の中止や閉扉の操作を受け付けた場合、ＰＣ１１０から扉コントローラ１６０へ開扉の中止指示を行ったり、閉扉の指示を行ったりすることもできる。【００１９】
この監視カメラシステム１に含まれる各コンピュータ機器１００は、中央処理装置、いわゆるＣＰＵ（Central  Processing  Unit）１１１、１２１、１３１、１４１、１５１及び１６１や主記憶装置、いわゆるメモリ１１３、１２３、１３３、１４３、１５３及び１６３などを含んで構成される。そして、各コンピュータ機器のＣＰＵは、図示しないＲＯＭ（Read  Only  Memory）または補助記憶装置等から読み出された各種のプログラムをメモリ上に展開することにより、各種の処理を実行する。なお、ここでは、各コンピュータ機器がＣＰＵ及びメモリを有する場合を例示したが、一部のコンピュータ機器がＣＰＵやメモリを有さずともかまわない。また、各コンピュータ機器のＣＰＵは、必ずしも中央処理装置として実装されずともよく、ＭＰＵ（Micro  Processing  Unit）として実装されることとしてもかまわない。【００２０】
これらコンピュータ機器１００には、汎用のＯＳ（Operating  System）が実装されると共に、各コンピュータ機器１００の間は、一例として、イーサネット（登録商標）により接続される。このように、コンピュータ機器１００に汎用のＯＳを実装すると共に監視カメラシステム１の各コンピュータ機器１００の通信をイーサネットにより実現することにより、安価にシステムを構築することができる。なお、ここでは、各コンピュータ機器１００に汎用のＯＳを実装する場合を例示したが、セキュリティを向上させる観点から専用のＯＳを実装することとしてもかまわない。また、ここでは、各コンピュータ機器１００がイーサネットにより接続される場合を例示したが、一部または全部のコンピュータ機器１００がインターネットにより接続されることとしてもかまわない。【００２１】
ここで、ＣＰＵ、メモリ及びＯＳが汎用のタイプで構築されるコンピュータ機器１００は、その内部構造が周知であるので、クラッキングされる可能性が依然として残る。かかるクラッキングの経路の一例として、仮に監視カメラシステム１がインターネット接続されていた場合には、インターネット経由でウィルスが入って来る可能性がある。また、クラッキングの経路はこれに限らず、ＵＳＢ（Universal  Serial  Bus）メモリなどからウィルスが入って来る可能性もある。【００２２】
例えば、全体制御用のＰＣ１１０がクラッキングされると、ＰＣ１１０が違法制御され、以下のような不具合が出る可能性がある。【００２３】
１）「扉コントローラ１６０」が制御する「扉」が常に「開」の状態にされる
２）「監視カメラ１２０」の映像が偽の映像に置き換えられる
３）不法侵入を「監視カメラ１２０」や「カードリーダ１３０」などで検知しても警報が鳴らない、或いは扉６１が開く【００２４】
また、監視カメラ１２０がクラッキングされると偽の映像が全体制御用のＰＣ１１０に入力される可能性がある。また、扉コントローラ１６０がクラッキングされると全体制御用のＰＣ１１０が扉６１の閉扉を指示しても扉６１が開状態のままになる可能性がある。さらに、カードリーダ１３０がクラッキングされると、偽のセンシング情報、すなわちＩＤとパスワードが入室資格チェックサーバ１４０へ入力される可能性がある。この他のコンピュータ機器１００がクラッキングされた場合にも、監視カメラシステム１としての機能が損なわれる可能性がある。【００２５】
さらに、コンピュータ機器１００がクラッキングされる他にも、イーサネット回線がクラッキングされると、情報の盗難、偽情報により、監視カメラシステム１としての機能が損なわれる可能性がある。【００２６】
このようなクラッキングを抑制するために、各コンピュータ機器１００には、外部からの覗き見や改ざんが困難である耐タンパ性の構造を持つＴＲＭ（Tamper  Resistant  Module）１１５、１２５、１３５、１４５、１５５及び１６５が実装される。【００２７】
例えば、各ＴＲＭは、ＴＲＭの内部解析や改ざんを物理的および論理的に防衛するための構造を有し、コンピュータ機器のＣＰＵやメモリとＰＣＩ（Peripheral  Component  Interconnect）バスを介して接続されるワンチップのＬＳＩ（Large  Scale  Integration）として実装される。具体的には、各ＴＲＭは、内部に強固で粘着力が高いコーティングが施されており、その表面が剥がされると内部の回路が破壊されたり、ダミーの配線が配されていたりする。なお、ここでは、コンピュータ機器のＣＰＵやメモリとＰＣＩバスを介して接続される場合を想定するが、ＴＲＭはシステムボード上に実装されることとしてもよく、また、ＴＲＭはＵＳＢ経由で接続されることとしてもかまわない。【００２８】
ここで、各ＴＲＭは、コンピュータ機器１００上で動作するプログラムの監視を実行するが、必ずしも全てのプログラムの保護を実施する訳ではない。すなわち、各ＴＲＭは、コンピュータ機器１００上で動作するＯＳを始め、ファームウェア、ミドルウェアやアプリケーションプログラムなどのプログラムのうち、特定の監視対象とするプログラムに絞って保護を行う。なお、以下では、ＴＲＭが監視対象とするプログラムのことを「監視対象プログラム」と記載する場合がある。【００２９】
かかる監視対象プログラムの一例として、監視カメラシステム１に関する機能を担うプログラムが挙げられる。例えば、監視カメラシステム１の全体制御を行うＰＣ１１０の場合、ＰＣ１１０の制御下にあるコンピュータ機器１００、例えば監視カメラ１２０、カードリーダ１３０、入室資格チェックサーバ１４０、入室資格データベース１５０及び扉コントローラ１６０などを遠隔制御するプログラムに絞って保護することができる。【００３０】
このように、監視対象プログラムが保護されたからと言って必ずしも監視カメラシステム１としての機能を維持できるとは限らない。なぜなら、監視対象プログラムそのものがセキュアな状態であったとしても、監視対象プログラムにより出力された出力データまでが安全であるとは限らないからである。【００３１】
例えば、コンピュータ機器１００で動作するＯＳ、アプリケーションプログラムやイーサネットコントローラなどがクラッキングされた場合、監視対象プログラムによりデータが出力された時点で監視対象プログラムが出力する出力データがマルウェア等により改ざんされるおそれがある。さらには、コンピュータ機器１００間で出力データが伝送される場合、出力データが伝送される伝送路上でクラッキングを受ける可能性も残る。その上、伝送先のコンピュータ機器１００上で動作する監視対象プログラム以外のプログラムがクラッキングされた場合にも、伝送先のコンピュータ機器１００で出力データが受信された時点で出力データが改ざんされるおそれがある。【００３２】
これらのことから、各ＴＲＭは、コンピュータ機器１００で通信が実行される場合、監視対象プログラムから伝送路へデータが出力されるまでの区間（Ａ）と、コンピュータ機器１００間の伝送路の区間（Ｂ）と、伝送路から受信された出力データが伝送先のコンピュータ機器１００で動作する監視対象プログラムへ出力されるまでの区間（Ｃ）との間で、事前に互いのＴＲＭにしか分からない方法で暗号化することにより、ＴＲＭ及びＴＲＭにより保護された監視対象プログラム以外のプログラムに出力データが平文のまま晒されない状態でコンピュータ機器１００間の通信を実施する。【００３３】
［ＰＣ１１０の機能的構成］
図３は、実施例１に係る監視カメラシステム１に含まれるコンピュータ機器１００の機能的構成を示すブロック図である。図３には、監視カメラシステム１に含まれるコンピュータ機器１００のうちＰＣ１１０及び扉コントローラ１６０が抜粋して図示されている。さらに、図３に示す各ＴＲＭには、ＰＣ１１０のＣＰＵ１１１上で動作する監視対象プログラムからの出力データが扉コントローラ１６０のＣＰＵ１６１上で動作する監視対象プログラムへ伝送される場合に用いられる最小限の機能部が示されているが、必ずしも図３に示す機能構成に限定されない。例えば、通信方向が逆である場合などにはＰＣ１１０及び扉コントローラ１６０の間で各ＴＲＭが有する機能部を入れ替えることにより、同様の通信が実現できる。【００３４】
図３に示すように、ＰＣ１１０は、ＣＰＵ１１１を有すると共に、ＣＰＵ１１１にＰＣＩバスを介して接続されたＴＲＭ１１５のＣＰＵ１１７を有する。以下では、両者のＣＰＵを区別する観点から、ＰＣ１１０のＣＰＵ１１１のことを「ＰＣ  ＣＰＵ１１１」と記載すると共に、ＴＲＭ１１５のＣＰＵ１１７のことを「ＴＲＭ  ＣＰＵ１１７」と記載する場合がある。なお、図３では、ＰＣ  ＣＰＵ１１１及びＴＲＭ  ＣＰＵ１１７以外の機能部の図示が省略されているが、既存のコンピュータが有する機能部を有していてもかまわない。例えば、ＰＣ１１０は、ネットワークインターフェースカードにより実現される通信Ｉ／Ｆ（InterFace）部、各種の指示入力を行う入力デバイスや各種の情報表示を行う表示デバイスなどを具備していてもかまわない。【００３５】
ＰＣ  ＣＰＵ１１１は、図示しないＲＯＭ（Read  Only  Memory）または補助記憶装置等から読み出された各種のプログラムを図１に示したメモリ１１３上のワークエリアに展開することにより、下記の処理部を仮想的に実現する。例えば、ＰＣ  ＣＰＵ１１１は、ＯＳ実行部１１１Ａと、アプリ実行部１１１Ｂと、通信処理部１１１Ｃと、監視対象プログラム実行部１１１Ｄとを有する。【００３６】
このうち、ＯＳ実行部１１１Ａは、ＯＳの実行を制御する処理部である。また、アプリ実行部１１１Ｂは、アプリケーションプログラムの実行を制御する処理部である。さらに、通信処理部１１１Ｃは、イーサネットコントローラの実行を制御する処理部である。これらの処理部で実行されるソフトウェアは、図３に示す例で監視対象プログラムに該当しない。【００３７】
監視対象プログラム実行部１１１Ｄは、監視対象プログラムの実行を制御する処理部である。【００３８】
上記の監視対象プログラムの一例として、ＰＣ１１０の制御下にある監視カメラ１２０、カードリーダ１３０、入室資格チェックサーバ１４０、入室資格データベース１５０及び扉コントローラ１６０のうち少なくとも１つのコンピュータ機器１００を遠隔制御するプログラムが挙げられる。ここでは、一例として、監視対象プログラムが扉コントローラ１６０の遠隔制御を行うプログラムである場合を想定して以下の説明を行う。【００３９】
ＴＲＭ  ＣＰＵ１１７は、図示しないＴＲＭ１１５内のＲＯＭまたは補助記憶装置等から読み出されたセキュリティプログラムを図示しないＴＲＭ１１５内のメモリのワークエリアに展開することにより、下記の処理部を仮想的に実現する。【００４０】
例えば、ＴＲＭ  ＣＰＵ１１７は、保護部１１７Ａと、第１復号部１１７Ｂと、第１検証部１１７Ｃと、第１付加部１１７Ｄと、第１暗号部１１７Ｅとを有する。なお、第１復号部１１７Ｂ、第１付加部１１７Ｄ及び第１暗号部１１７Ｅは、ソフトウェアとして実装することもできるし、回路などのハードウェアとして実装することもできる。【００４１】
保護部１１７Ａは、ＰＣ  ＣＰＵ１１１上で動作するプログラムのうち監視対象プログラムを保護する処理部である。例えば、特開２００８−１１８２６５号公報、特開２００９−２０５６２７号公報、特開２０１２−２３４３６２号公報や特開２０１２−３８２２２号公報などの文献に記載の技術を用いることができる。ここでは、上記の文献に記載の技術を用いる場合を例示するが、プログラムを保護する技術であれば他の公知技術を用いることもできる。【００４２】
一実施形態として、保護部１１７Ａは、コードスキャン（Code  scan）、再構成（Reconstruction）、秘密の番号通信（Secret  number）の機能が存在する。これらの機能は、外から覗き見や改ざんが困難なＴＲＭ１１５に存在するので、機能を解析したり、改ざんするのは、困難である。例えば、上記のコードスキャン機能が解析され、事前に監視対象プログラムのどの部分のコードをスキャンするか分かってしまうと、偽のコードスキャン結果を事前に用意され、監視対象プログラムが改ざんされているのに、改ざんされていないような結果が出る可能性がある。また、上記の再構成は、監視対象プログラムを外から見た機能は同じでも内部のプログラムコードを変更し、クラッカーによるプログラム解析を困難にする技術である。この再構成機能が解析されると事前にクラッカーに再構成の方法が漏えいし、解析されてしまう可能性がある。また、上記の秘密の番号通信は、監視対象プログラムに秘密の番号通信ルーチンを事前に保護部１１７Ａが埋め込み、プログラムが実動作中に「秘密の番号通信」を行い、監視対象プログラムと保護部１１７Ａの間で認証を行う手法である。例えば、保護部１１７Ａからある番号を監視対象プログラムに出力し、それに監視対象プログラムが応答する。その応答が正規の応答であるかどうかにより、監視対象プログラムの正当性を保護部１１７Ａが判断する。保護部１１７Ａは、所定の回おきに異なる秘密の番号ルーチンを監視対象プログラムに埋め込むのでクラッカーによるこのルーチンのクラッキングは困難である。これもＴＲＭ１１５内部を覗き見され、秘密の番号ルーチンを事前予測されるとクラッキングされる可能性がある。これらのことから、ＴＲＭ１１５内に上記のコードスキャン、再構成および秘密の番号通信などの機能を埋め込み、外部から覗き見ができないようにすることで監視対象プログラムへのクラッキングを困難にできる。さらに、ＴＲＭ１１５を耐タンパ性構造とすることにより、改ざんも困難となり、コードスキャン機能を無効化されたり、再構成機能を無効化されたり、秘密の番号通信機能を無効化されたりする危険を抑制できる。【００４３】
このように保護された監視対象プログラムは、上記の再構成によりクラッキングの前提であるプログラムコードの解析が困難であり、たとえプログラムコードを解析し、プログラムコードを改ざんしても、上記のコードスキャン機能で改ざんが検出される。また、上記の秘密の番号通信機能により、監視対象プログラムの認証が可能になる。【００４４】
また、保護部１１７Ａは、監視対象プログラムに上記の「番号通信ルーチン」を埋め込むと共に「毎回異なる秘密の鍵」を埋め込むことも可能である。この鍵を利用し、監視対象プログラムとＴＲＭ１１５の間で他のプログラムから覗かれることなくデータを授受することができる。このような機能は、監視対象プログラムから暗号化された出力データを受け取り、復号し、改ざんされていないか確認するのに使える。監視対象プログラムが監視対象プログラムにより出力される出力データに改ざん検出情報、例えば出力データのハッシュ値を付加した上で「毎回違う秘密の鍵」で暗号化してＴＲＭ１１５に送れば、他の守られていないプログラムは、監視対象プログラムからの出力データを覗き見することも改ざんすることも困難である。この機能は、ＴＲＭ１１５から保護された監視対象プログラムに対し、他のプログラムから覗き見や改ざんができない形でデータを送信するのにも用いることができる。このように、上記の番号通信ルーチンを用いることにより、保護部１１７Ａ及び監視対象プログラムの間で鍵の共有を行うことができる。【００４５】
第１復号部１１７Ｂは、監視対象プログラムにより出力される出力データの暗号化データを復号化する処理部である。【００４６】
これを説明すると、ＰＣ１１０から他のコンピュータ機器１００へ出力データが送信される場合、コンピュータ機器１００間における監視対象プログラムの出力データの通信が開始される。例えば、ＰＣ１１０上で動作する監視対象プログラムが扉コントローラ１６０上で動作する監視対象プログラムに対し、扉６１の開扉または閉扉を指示する場合が挙げられる。なお、ここでは、あくまで一例として、ＰＣ１１０上で動作する監視対象プログラムが扉コントローラ１６０上で動作する監視対象プログラムに対し、扉６１の開扉または閉扉を指示する場合を例示するが、この例に限定されない。すなわち、図２を用いて上述した（イ）〜（ヘ）などを含む各種の場面においてコンピュータ機器１００間で同様の通信が行われることは言うまでもない。【００４７】
このような通信のトリガが発生した場合、監視対象プログラムにより、監視対象プログラムが出力する出力データに改ざん検証情報、例えば出力データのハッシュ値を改ざん検証情報として付加した上で出力データ及び改ざん検証情報が暗号化される。このとき、出力データの暗号化には、一例として、上記の番号通信ルーチンにしたがって監視対象プログラム及び第１復号部１１７Ｂの間で授受された鍵を用いることができる。また、暗号化方式の一例として、ＡＥＳ（Advanced  Encryption  Standard）暗号やＮＥＳＳＩＥ（New  European  Schemes  for  Signature,  Integrity,  and  Encryption）暗号などを適用することができる。その上で、監視対象プログラム実行部１１１Ｄから第１復号部１１７Ｂへ出力データの暗号化データが出力される。このようにしてＰＣ  ＣＰＵ１１１上で動作する監視対象プログラムから出力データの暗号化データを受け付けた場合、第１復号部１１７Ｂは、出力データの暗号化データを復号化し、出力データ及び改ざん検証情報を第１検証部１１７Ｃへ出力する。【００４８】
第１検証部１１７Ｃは、出力データの暗号化データから復号化された改ざん検証情報を用いて、出力データの改ざんの有無を検証する処理部である。【００４９】
一実施形態として、第１検証部１１７Ｃは、第１復号部１１７Ｂにより復号化された改ざん検証情報と、第１復号部１１７Ｂにより復号化された出力データからハッシュ関数を用いて算出した出力データのハッシュ値とを比較する。このとき、改ざん検証情報及び出力データのハッシュ値が互いに一致する場合、監視対象プログラムからの出力データがＰＣ  ＣＰＵ１１１上で動作する他のプログラムにより改ざんされていないと推定できる。この場合、第１検証部１１７Ｃは、監視対象プログラムからの出力データを第１付加部１１７Ｄへ出力する。なお、出力データの改ざんが検出された場合には、第１付加部１１７Ｄへの出力を中止したり、図示しない表示デバイスを介して通知を行うこともできる。【００５０】
第１付加部１１７Ｄは、第１復号部１１７Ｂにより復号化された出力データに出力データの改ざん検証情報を付加する処理部である。【００５１】
一実施形態として、第１付加部１１７Ｄは、第１検証部１１７Ｃにより出力データの改ざんがないと検証された場合、ハッシュ関数を用いて、第１復号部１１７Ｂにより復号化された出力データのハッシュ値を算出する。これによって、出力データのダイジェストを生成する。これを電子署名とし、第１付加部１１７Ｄは、第１復号部１１７Ｂにより復号化された出力データに電子署名を改ざん検証情報として付加する。【００５２】
第１暗号部１１７Ｅは、第１付加部１１７Ｄにより改ざん検証情報が付加された出力データを暗号化する処理部である。【００５３】
一実施形態として、第１暗号部１１７Ｅは、上記の番号通信ルーチンと同様のルーチンにしたがって出力データの伝送先のコンピュータ機器１００上のＴＲＭとの間で授受された鍵を用いて、第１付加部１１７Ｄにより改ざん検証情報が付加された出力データを暗号化する。かかる暗号化には、一例として、上記の監視対象プログラムと同様、ＡＥＳ暗号やＮＥＳＳＩＥ暗号などを適用することができる。その上で、第１暗号部１１７Ｅは、出力データの暗号化データをＰＣ  ＣＰＵ１１１上の通信処理部１１１Ｃへ出力する。【００５４】
かかる出力データの暗号化データを受け付けた通信処理部１１１Ｃは、第１暗号部１１７Ｅから受け付けた出力データの暗号化データを分割した上でイーサネット形式に変換し、イーサネット上に送り出す。【００５５】
これら監視対象プログラム実行部１１１Ｄ、第１復号部１１７Ｂ、第１検証部１１７Ｃ、第１付加部１１７Ｄ及び第１暗号部１１７Ｅの一連の処理により、上記の区間（Ａ）、すなわち監視対象プログラムから伝送路へデータが出力されるまでの区間で出力データが改ざんされるのを抑制できる。【００５６】
さらに、通信処理部１１１Ｃは、クラッキングを受ける可能性は残るが、扱っているデータが暗号化され且つ電子署名されているので、有意な改ざんを行うことができない。加えて、イーサネット回線上でも出力データは改ざんされる可能性があるが、暗号化され且つ電子署名されているので、有意な改ざんは困難である。よって、上記の区間（Ｂ）、すなわちコンピュータ機器１００間の伝送路の区間で有意な改ざんが行われるのも抑制できる。【００５７】
［扉コントローラ１６０の機能的構成］
図３に示すように、扉コントローラ１６０は、ＣＰＵ１６１を有すると共に、ＣＰＵ１６１にＰＣＩバスを介して接続されたＴＲＭ１６５のＣＰＵ１６７を有する。以下では、両者のＣＰＵを区別する観点から、扉コントローラ１６０のＣＰＵ１６１のことを「扉  ＣＰＵ１６１」と記載すると共に、ＴＲＭ１６５のＣＰＵ１６７のことを「ＴＲＭ  ＣＰＵ１６７」と記載する場合がある。なお、図３では、扉  ＣＰＵ１６１及びＴＲＭ  ＣＰＵ１６７以外の機能部の図示が省略されているが、既存のコンピュータが有する機能部を有していてもかまわない。例えば、図２に示したモータ６０などの駆動部やディップスイッチなどの入力デバイスなどを具備していてもかまわない。【００５８】
扉  ＣＰＵ１６１は、図示しないＲＯＭまたは補助記憶装置等から読み出された各種のプログラムを図１に示したメモリ１６３上のワークエリアに展開することにより、下記の処理部を仮想的に実現する。例えば、扉  ＣＰＵ１６１は、ＯＳ実行部１６１Ａと、アプリ実行部１６１Ｂと、通信処理部１６１Ｃと、監視対象プログラム実行部１６１Ｄとを有する。【００５９】
このうち、ＯＳ実行部１６１Ａは、ＯＳの実行を制御する処理部である。また、アプリ実行部１６１Ｂは、アプリケーションプログラムの実行を制御する処理部である。さらに、通信処理部１６１Ｃは、イーサネットコントローラの実行を制御する処理部である。これらの処理部で実行されるソフトウェアは、図３に示す例で監視対象プログラムに該当しない。【００６０】
監視対象プログラム実行部１６１Ｄは、監視対象プログラムの実行を制御する処理部である。上記の監視対象プログラムの一例として、扉  ＣＰＵ１６１の制御下にある扉６１の開閉を制御するプログラムなどが挙げられる。ここでは、一例として、監視対象プログラムが扉６１の開扉または閉扉の制御を行うプログラムである場合を想定して以下の説明を行う。【００６１】
ＴＲＭ  ＣＰＵ１６７は、図示しないＴＲＭ１６５内のＲＯＭまたは補助記憶装置等から読み出されたセキュリティプログラムを図示しないＴＲＭ１６５内のメモリのワークエリアに展開することにより、下記の処理部を仮想的に実現する。【００６２】
例えば、ＴＲＭ  ＣＰＵ１６７は、保護部１６７Ａと、第２復号部１６７Ｂと、第２検証部１６７Ｃと、第２付加部１６７Ｄと、第２暗号部１６７Ｅとを有する。なお、第２復号部１６７Ｂ、第２付加部１６７Ｄ及び第２暗号部１６７Ｅは、ソフトウェアとして実装することもできるし、回路などのハードウェアとして実装することもできる。【００６３】
保護部１６７Ａは、扉  ＣＰＵ１６１上で動作するプログラムのうち監視対象プログラムを保護する処理部である。かかる監視対象プログラムの保護方法については、上記の保護部１１７Ａと同様であるので、その説明は省略する。【００６４】
第２復号部１６７Ｂは、通信処理部１６１Ｃにより受信された出力データの暗号化データを復号化する処理部である。【００６５】
一実施形態として、第２復号部１６７Ｂは、上記の番号通信ルーチンと同様のルーチンなどにしたがって出力データの伝送元のコンピュータ機器１００、例えばＰＣ１１０上のＴＲＭ１１５との間でＰＫＩ（Public  Key  Infrastructure）などの公開鍵、秘密鍵アルゴリズムなどに基づく相互通信により上記暗号化データを復号化する鍵情報などを互いに授受しており、このようにして授受された公開鍵等を用いて、通信処理部１６１Ｃにより受信された出力データの暗号化データを復号化し、出力データ及び改ざん検証情報を第２検証部１６７Ｃへ出力する。【００６６】
第２検証部１６７Ｃは、第２復号部１６７Ｂにより出力データの暗号化データから復号化された改ざん検証情報を用いて、出力データの改ざんの有無を検証する処理部である。【００６７】
一実施形態として、第２検証部１６７Ｃは、第２復号部１６７Ｂにより復号化された改ざん検証情報と、第２復号部１６７Ｂにより復号化された出力データからハッシュ関数を用いて算出した出力データのハッシュ値とを比較する。このとき、改ざん検証情報及び出力データのハッシュ値が一致する場合、監視対象プログラムからの出力データがイーサネット上及び扉  ＣＰＵ１６１上で動作する他のプログラムにより改ざんされていないと推定できる。この場合、第２検証部１６７Ｃは、監視対象プログラムからの出力データを第２付加部１６７Ｄへ出力する。なお、出力データの改ざんが検出された場合には、第２付加部１６７Ｄへの出力を中止したり、図示しない表示デバイスを介して通知を行うこともできる。【００６８】
第２付加部１６７Ｄは、第２復号部１６７Ｂにより復号化された出力データに出力データの改ざん検証情報を付加する処理部である。【００６９】
一実施形態として、第２付加部１６７Ｄは、第２検証部１６７Ｃにより出力データの改ざんがないと検証された場合、ハッシュ関数を用いて、第２復号部１６７Ｂにより復号化された出力データのハッシュ値を算出する。これによって、出力データのダイジェストを生成する。これを電子署名とし、第２付加部１６７Ｄは、第２復号部１６７Ｂにより復号化された出力データに電子署名を改ざん検証情報として付加する。【００７０】
第２暗号部１６７Ｅは、第２付加部１６７Ｄにより改ざん検証情報が付加された出力データを暗号化する処理部である。【００７１】
一実施形態として、第２暗号部１６７Ｅは、上記の番号通信ルーチンと同様のルーチンなどにしたがって監視対象プログラム実行部１６１Ｄで実行される監視対象プログラムとの間で授受された鍵を用いて、第２付加部１６７Ｄにより改ざん検証情報が付加された出力データを暗号化する。かかる暗号化には、一例として、ＡＥＳ暗号やＮＥＳＳＩＥ暗号などの任意のアルゴリズムを適用することができる。その上で、第２暗号部１６７Ｅは、出力データの暗号化データを扉  ＣＰＵ１６１上で動作する監視対象プログラムへ出力する。【００７２】
このように第２暗号部１６７Ｅから監視対象プログラムへ出力データが出力された場合、監視対象プログラムにより出力データが復号化された上で電子署名の改ざん検証が実行される。そして、出力データに改ざんがないことが確認された場合、伝送元のコンピュータ機器１００の監視対象プログラムからの出力データに対応する処理が扉コントローラ１６０の監視対象プログラムにより実行される。この場合、ＰＣ１１０の監視対象プログラムから指示された開扉また閉扉の指示にしたがって扉コントローラ１６０の監視対象プログラムにより扉６１が開扉または閉扉される。【００７３】
これら第２復号部１６７Ｂ、第２検証部１６７Ｃ、第２付加部１６７Ｄ及び第２暗号部１６７Ｅ及び監視対象プログラム実行部１６１Ｄの一連の処理により、上記の区間（Ｃ）、すなわち伝送路から受信された出力データが伝送先のコンピュータ機器１００で動作する監視対象プログラムへ出力されるまでの区間で出力データが改ざんされるのを抑制できる。つまり、区間（Ａ）〜（Ｃ）の各区間にわたって出力データの有意な改ざんを抑制できるので、監視対象プログラムを保護すると共に、監視対象プログラム以外のプログラム、例えばＯＳやアプリケーションプログラムがクラッキングされたとしても、その悪影響がシステムの各所に派生するのを抑制できる。【００７４】
このように、監視カメラシステム１では、当該情報の有意な改ざんは不可能であるが、無為の改ざんは可能である。無為の改ざんを確実に検出するために、例えば、ＰＣ１１０や扉コントローラ１６０のＴＲＭの各々にタイマを設け、一定期間内に正当な通信（ＴＲＭ内のＰＫＩなどの公開鍵、秘密鍵アルゴリズムなどに基づく相互通信など）が確認できない場合は、無為な改ざんの可能性をシステム管理者に警告するなどの処理をオプションとして実施することにより、更なるセキュリティ強化を図ることも可能である。【００７５】
［処理の流れ］
図４は、実施例１に係る監視カメラシステム１の処理の流れを示すシーケンス図である。図４には、一例として、ＰＣ１１０上で動作する監視対象プログラムが出力するデータが扉コントローラ１６０上で動作する監視対象プログラムへ伝送される場合のシーケンスが示されている。この処理は、ＰＣ１１０から扉コントローラ１６０へ出力データが送信される場合に開始される。【００７６】
図４に示すように、ＰＣ  ＣＰＵ１１１上で動作する監視対象プログラムは、当該監視対象プログラムが出力する出力データに出力データのハッシュ値を改ざん検証情報として付加する（ステップＳ１０１）。続いて、ＰＣ  ＣＰＵ１１１上で動作する監視対象プログラムは、ステップＳ１０１で改ざん検証情報が付加された出力データを暗号化する（ステップＳ１０２）。【００７７】
その後、ＰＣ  ＣＰＵ１１１上で動作する監視対象プログラムは、ステップＳ１０２で暗号化された出力データの暗号化データを第１復号部１１７Ｂへ出力する（ステップＳ１０３）。【００７８】
これを受けて、第１復号部１１７Ｂは、ステップＳ１０３で監視対象プログラムから出力された出力データの暗号化データを復号化し（ステップＳ１０４）、出力データ及び改ざん検証情報を第１検証部１１７Ｃへ出力する。【００７９】
そして、第１検証部１１７Ｃは、ステップＳ１０４で出力データの暗号化データから復号化された改ざん検証情報を用いて、ステップＳ１０４で復号化された出力データの改ざんの有無を検証する（ステップＳ１０５）。【００８０】
かかる改ざん検証で出力データに改ざんがないことが検証された後、第１付加部１１７Ｄは、ステップＳ１０４で復号化された出力データに出力データの改ざん検証情報を改めて付加する（ステップＳ１０６）。【００８１】
そして、第１暗号部１１７Ｅは、ステップＳ１０６で改ざん検証情報が付加された出力データを暗号化し（ステップＳ１０７）、出力データの暗号化データをＰＣ  ＣＰＵ１１１上の通信処理部１１１Ｃへ出力する。【００８２】
続いて、ＰＣ  ＣＰＵ１１１の通信処理部１１１Ｃは、ステップＳ１０７で暗号化された出力データの暗号化データを分割した上でイーサネット形式に変換し、イーサネット上に送り出すことにより、出力データの暗号化データを扉コントローラ１６０へ伝送する（ステップＳ１０８）。【００８３】
一方、ＴＲＭ  ＣＰＵ１６７の第２復号部１６７Ｂは、ステップＳ１０８の伝送で通信処理部１６１Ｃにより受信された出力データの暗号化データを復号化する（ステップＳ１０９）。続いて、第２検証部１６７Ｃは、ステップＳ１０９で出力データの暗号化データから復号化された改ざん検証情報を用いて、ステップＳ１０９で復号化された出力データの改ざんの有無を検証する（ステップＳ１１０）。【００８４】
かかる改ざん検証で出力データに改ざんがないことが検証された後、第２付加部１６７Ｄは、ステップＳ１０９で復号化された出力データに出力データの改ざん検証情報を改めて付加する（ステップＳ１１１）。【００８５】
そして、第２暗号部１６７Ｅは、ステップＳ１１１で改ざん検証情報が付加された出力データを暗号化し（ステップＳ１１２）、出力データの暗号化データを扉  ＣＰＵ１６１上で動作する監視対象プログラムへ出力する（ステップＳ１１３）。【００８６】
その後、扉  ＣＰＵ１６１上で動作する監視対象プログラムは、第２暗号部１６７Ｅから受け付けた出力データの暗号化データを復号化し（ステップＳ１１４）、改ざん検証情報を用いて、ステップＳ１１４の復号化で得られた出力データの改ざんの有無を検証する（ステップＳ１１５）。そして、扉  ＣＰＵ１６１上で動作する監視対象プログラムは、出力データに改ざんがないことが確認された場合、伝送元のコンピュータ機器１００の監視対象プログラムからの出力データに対応する処理、例えば扉６１の開閉制御を実行し（ステップＳ１１６）、処理を終了する。【００８７】
［効果の一側面］
上述してきたように、本実施例に係る監視カメラシステム１は、異なるコンピュータ機器１００で動作する監視対象プログラム間の通信を行う場合に、監視対象プログラムを保護すると共に、伝送元の監視対象プログラムから伝送路へデータが出力されるまでの区間と、伝送路から受信された出力データが伝送先の監視対象プログラムへ出力されるまでの区間とを暗号化して通信する。それ故、本実施例に係る監視カメラシステム１では、区間（Ａ）〜（Ｃ）の各区間にわたって出力データの有意な改ざんを抑制できる。したがって、本実施例に係る監視カメラシステム１によれば、監視対象プログラムへのクラッキングを抑制すると共に、クラッキングによる悪影響がシステムの各所に派生するのを抑制できる。
【実施例２】
【００８８】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。【００８９】
［出力データの送受信］
上記の実施例１では、ＰＣ  ＣＰＵ１１１上で動作する監視対象プログラムからの出力データが扉  ＣＰＵ１６１上で動作する監視対象プログラムへ伝送される場合に用いられる最小限の機能部をＰＣ１１０及び扉コントローラ１６０の機能部として例示したがこれに限定されない。例えば、ＴＲＭ  ＣＰＵ１１７は、ＣＰＵ１１１上で動作する監視対象プログラムからの出力データを送信するだけでなく、他のコンピュータ機器１００から送信された監視対象プログラムからの出力データを受信することもできる。【００９０】
図５は、応用例に係るＰＣの機能的構成を示すブロック図である。以下では、図３に示した機能と同様の機能を発揮する機能部には図３に示した符号と同一の符号を付し、その説明は省略することとする。例えば、他のコンピュータ機器１００から送信された監視対象プログラムからの出力データを受信する場合、ＴＲＭ  ＣＰＵ１１７は、図５に示すように、図３に示した扉コントローラ１６０の第２復号部１６７Ｂと、第２検証部１６７Ｃと、第２付加部１６７Ｄと、第２暗号部１６７Ｅと同様の機能を発揮する第２復号部１１７ｂ、第２検証部１１７ｃ、第２付加部１１７ｄ及び第２暗号部１１７ｅを具備することにより、他のコンピュータ機器１００から送信された監視対象プログラムからの出力データを受信することができる。【００９１】
［ＴＲＭへの直接接続］
各コンピュータ機器１００では、コンピュータ機器１００が有するＣＰＵと接続されるデバイスを通じて、必ずしもデータの入出力を行わずともかまわない。例えば、システム管理者等への警告信号は、それ自体がクラッキングされる可能性があるので、各コンピュータ機器１００のＴＲＭに直接接続された表示デバイス、例えばＬＥＤ（Light  Emitting  Diode）ランプを通じて通知を行うこともできる。【００９２】
図６は、応用例に係るＰＣ２１０の機能的構成を示すブロック図である。図６に示すように、ＰＣ２１０には、ＴＲＭ１１５に直接接続されたＬＥＤ２１２が設けられている。このように、ＰＣ  ＣＰＵ１１１の制御下におかずにＴＲＭ１１５が直接制御できる直接接続されたＬＥＤ２１２の点灯や点滅などの制御により、警告信号などの通知を発する精度を高めることができる。図６の例では、１つのＬＥＤが接続される場合を例示したが、複数のＬＥＤをＴＲＭ１１５に接続することもできる。例えば、青色に発光する第１のＬＥＤと、赤色に発光する第２のＬＥＤとをＴＲＭ１１５に接続しておき、各コンピュータ機器１００がクラッキングを受けていない間は第１のＬＥＤを点灯させると共に第２のＬＥＤを消灯し、各コンピュータ機器１００がクラッキングを受けた場合には、第１のＬＥＤを消灯させると共に第２のＬＥＤを点灯または点滅することにより、警告を発することができる。さらに、赤、青、緑など３つ以上のＬＥＤを設け、青が正常状態、赤が定期交信異常状態、緑は監視対象プログラムがクラッキングされた可能性がある状態などに区分してシステム管理者等へ警告することもできる。【００９３】
［コンテンツ出力］
例えば、ＴＲＭ１１５は、他のコンピュータ機器１００上で動作する監視対象プログラムから受信された出力データが制御命令またはコンテンツであるかを判定し、出力データがコンテンツである場合、コンテンツに所定のデータを埋め込むことができる。【００９４】
ここで、一例として、図６に示すディスプレイ２１４に対し、監視カメラ１２０により撮像された画像がコンテンツの一例として表示される場合を想定する。この場合、図６に示す埋込部２１７は、第２検証部１１７ｃにより復号後の画像に改ざんがないことが検出される度に、当該画像から標示を埋め込む対象とする領域、例えば画像の余白部もしくは端部などの領域をランダムに検出し、ランダムに検出された領域に所定の標示、例えば赤丸などの図形や文字列などを埋め込む。このとき、埋込部２１７は、画像のフレーム間で画像に埋め込む標示の頻度をランダムにして画像に標示を埋め込む。例えば、埋込部２１７は、所定の区間、例えば小数点を含む０〜３の乱数を発生させるソフトウェアや乱数発生器などを用いて、乱数が発生される度に当該乱数に対応する期間にわたって画像に標示を埋め込み、その後に発生された乱数に対応する期間にわたって画像への標示の埋め込みを中止するという処理を繰り返す。これと共に、埋込部２１７は、画像に標示が埋め込まれるタイミングと同期させてＬＥＤ２１２を点灯させる。【００９５】
これによって、ＬＥＤ２１２で点灯される発光と、ディスプレイ２１４に表示された標示とが同期しているかどうかを見比べることにより、閲覧者はディスプレイ２１４に表示されている映像がＴＲＭ  ＣＰＵ１１７により復号された映像であるかどうかを確認できる。さらに、表示間隔がランダムであり、表示場所もランダムであるため、表示される直前のデータを解析して、別の映像に標示を埋め込んでリアルタイムで表示させることを困難にできる。【００９６】
なお、ここでは、ＰＣ２１０のＴＲＭ  ＣＰＵ１１７が標示を埋め込む場合を例示したが、監視カメラ１２０のＴＲＭ１２５のＣＰＵが標示を埋め込むこととしてもかまわない。この場合、画像のメタ情報などに標示の有無を付加させておくことにより、ＰＣ２１０のＴＲＭ  ＣＰＵ１１７で標示に同期させてＬＥＤ２１２を点灯させることができる。【００９７】
［生存確認機能］
各ＴＲＭ間で互いを暗号化通信により認証するＴＲＭ用のソフトウェアを各ＴＲＭのファームウェア等に実装することにより、各コンピュータ機器１００のＴＲＭの間で生存確認を実行することができる。【００９８】
かかる生存確認の手順について説明すると、各コンピュータ機器１００のＴＲＭは、相互認証用に公開暗号鍵方式の公開鍵を生成する。例えば、ＴＲＭ  Ｔ１からＴＲＭ  ＴＮまでのＮ台のＴＲＭが存在するとしたとき、システム管理者により使用される管理端末は、ＴＲＭ  Ｔ１が生成する公開鍵Ｐ１、ＴＲＭ  Ｔ２が生成する公開鍵Ｐ２、・・・、ＴＲＭ  ＴＮが生成する公開鍵ＰＮを収集する。なお、ＴＲＭ  Ｔｉには、図１に示したＰＣ１１０のＴＲＭ１１５、監視カメラ１２０のＴＲＭ１２５、カードリーダ１３０のＴＲＭ１３５、入室資格チェックサーバ１４０のＴＲＭ１４５、入室資格データベース１５０のＴＲＭ１５５や扉コントローラ１６０のＴＲＭ１６５などの任意のＴＲＭが該当する。【００９９】
続いて、管理端末は、相互認証を実施するために、Ｎ台のＴＲＭの公開鍵のＮ個の組（Ｐ１、Ｐ２、・・・、ＰＮ）を各々のＴＲＭ  Ｔｉへ配信する。これを受けて、各々のＴＲＭ  Ｔｉは、Ｎ台のＴＲＭの公開鍵のＮ個の組（Ｐ１、Ｐ２、・・・、ＰＮ）のうちＴＲＭ  Ｔｉに対応する公開鍵と各々のＴＲＭ  Ｔ１〜  ＴＮの相互認証グループを識別する番号Ｇを合わせたデータとの間で求めたハッシュ値を、個々の公開鍵を使って暗号化したデータＣ１、Ｃ２、・・・、ＣＮを管理端末へ返送する。【０１００】
その後、管理端末は、各ＣｉをＴｉに送付すると共に、各Ｔｉが組み込まれているコンピュータ機器１００のアドレス、例えばＩＰアドレスを各Ｔｉから収集して各Ｔｉへ送付する。そして、各々のＴＲＭ  Ｔｉは、公開鍵Ｐｉに対応する秘密鍵ｐｉで復号し、各ＴＲＭ  Ｔｉの内部メモリに保持する。その上で、各々のＴＲＭ  Ｔｉは、各々のコンピュータ機器１００のＣＰＵに相互認証用の通信プロセスＭｉを立ち上げさせる。【０１０１】
以上のような手順の下、ＴＲＭ  Ｔｉにより起動された相互認証用の通信プロセスＭｉは、他の相互認証用の通信プロセスのうち相互認証用の通信プロセスＭｉ＋１との間でＩＰ通信を行う。なお、相互認証用の通信プロセスＭＮは、相互認証用の通信プロセスＭ１へメッセージを送信する。【０１０２】
その後、相互認証用の通信プロセスＭｉは、一定時間ごとにＴＲＭ  Ｔｉを呼びだし、送付用メッセージを受け取る。このとき、各ＴＲＭ  Ｔｉは、ＴＲＭ  Ｔｉの内部メモリに保持されたグループ識別番号Ｇ、その時の時刻ｔを含む通信文にハッシュを追加し、ＴＲＭ  Ｔｉ＋１の公開鍵Ｐｉ＋１で暗号化した送付用メッセージを渡す。このとき、ＴＲＭ  Ｔｉの監視対象プログラムのうちいずれかが改変されるか、あるいは動作を停止したことを検出した場合には、問題が発生したことを知らせるメッセージを渡す。【０１０３】
一方、相互認証用の通信プロセスＭｉ＋１は、相互認証用の通信プロセスＭｉから受け取ったメッセージを自分の秘密鍵ｐｉ＋１で復号し、内容が改変されていないことを確認する。内容が間違っている場合や相互認証用の通信プロセスＭｉからメッセージが一定時間届かない場合には、ＬＥＤ２１２を点灯させることにより、警告を行う。【０１０４】
図７は、生存確認機能の動作例の一例を示す図である。図７には、ＴＲＭ  Ｔ１〜ＴＲＭ  Ｔ３までの３つのＴＲＭ間で生存確認を行う場合におけるコンピュータ機器のメモリとＴＲＭのメモリに展開されたプロセスが例示されている。図７に示すように、各ＴＲＭ  Ｔ１〜ＴＲＭ  Ｔ３は、他のＴＲＭの公開鍵、グループ識別番号などはＴＲＭの内部メモリに格納されているのであって、コンピュータ機器１００側のＣＰＵで動作する相互認証用の通信プロセスＭ１〜Ｍ３からは秘匿されている。したがって、相互認証用の通信プロセスＭ１が相互認証用の通信プロセスＭｉ＋１へ送信するメッセージを偽造させる事態を抑制できる。【０１０５】
［システムの多重化］
上記の実施例１では、１つの機能につき１つのコンピュータ機器を設ける場合を例示したが、監視カメラシステム１には、１つの機能につき複数のコンピュータ機器を設置することにより多重化することもできる。【０１０６】
図８は、多重化の一例を示す図である。図８の例では、扉コントローラ１６０が３重化され、入室資格チェックサーバ１４０が４重化され、ＰＣ１１０が２重化されると共に、入室資格データベース１５０が２重化される場合の監視カメラシステム１の配備例が示されている。このような多重化が実施される場合にも、上記の生存確認機能を実施することができる。【０１０７】
図８に示すように、多重化が実施されている場合には、図８に示すデータを次のように格納することができる。すなわち、Ｐ１１、Ｐ１２、Ｐ１３、セパレータ、Ｐ２１、Ｐ２２、Ｐ２３、Ｐ２４、セパレータ、Ｐ３１、Ｐ３２、セパレータ、Ｐ４１、Ｐ４２、終了記号として格納できる。その上で、上記の「生存確認機能」の項で説明したのと同様に暗号化して配信すれば、各々のＴＲＭは、上記のデータを入手できる。【０１０８】
ここで、各々のＴＲＭが搭載されたコンピュータ機器１００の相互認証用の通信プロセスＭは、同一機能のコンピュータ機器１００において自分よりも優先順位が高いコンピュータ機器１００が動作している限りは動作しない。例えば、Ｔ１２は、Ｔ１１が動作していれば動作しないし、また、Ｔ１３は、Ｔ１１またはＴ１２のいずれかが動作していれば動作しない。【０１０９】
一方、自分よりも優先順位が高いコンピュータ機器１００が動作していない場合は、自分の予備全員と、自分の次の番号全員にメッセージを送る。例えば、Ｔ１１の場合、Ｔ１２、Ｔ１３と共にＴ２１、Ｔ２２、Ｔ２３、Ｔ２４にメッセージを送る。メッセージが送信されたＴＲＭの相互認証用の通信プロセスＭは、送られた情報によって、自分が動作しなければならないかを確認する。【０１１０】
また、各ＴＲＭは、自分が管理しているアプリケーションが改変されたか動作を停止した場合には、自分が停止することを自分の予備たちに通知する。また、自分の次の番号全員に交代することを知らせる。その後、自分のマシンを再起動する。再起動後、可能であれば自分が作業を引き継ぐ。【０１１１】
各ＴＲＭは、自分の前の番号の一部が停止したとき、あるいは、自分番号の一部が動作しなくなったときに黄色い警告ランプをつけて、ユーザに警告する。各ＴＲＭは、自分の前の番号の全員が停止したとき、あるいは、自分の前の番号からのメッセージが一定時間来なくなったことを確認すると赤い警告ランプをつけて、ユーザに警告する。【０１１２】
このようにしてコンピュータ機器１００が多重化された場合でも、生存確認機能を実現できる。【０１１３】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【符号の説明】
【０１１４】
１      監視カメラシステム
１１０      ＰＣ
１１１      ＣＰＵ
１１１Ａ    ＯＳ実行部
１１１Ｂ    アプリ実行部
１１１Ｃ    通信処理部
１１１Ｄ    監視対象プログラム実行部
１１３      メモリ
１１５      ＴＲＭ
１１７      ＣＰＵ
１１７Ａ    保護部
１１７Ｂ    第１復号部
１１７Ｃ    第１検証部
１１７Ｄ    第１付加部
１１７Ｅ    第１暗号部
１２０      監視カメラ
１２１      ＣＰＵ
１２３      メモリ
１２５      ＴＲＭ
１３０      カードリーダ
１３１      ＣＰＵ
１３３      メモリ
１３５      ＴＲＭ
１４０      入室資格チェックサーバ
１４１      ＣＰＵ
１４３      メモリ
１４５      ＴＲＭ
１５０      入室資格データベース
１５１      ＣＰＵ
１５３      メモリ
１５５      ＴＲＭ
１６０      扉コントローラ
１６１      ＣＰＵ
１６１Ａ    ＯＳ実行部
１６１Ｂ    アプリ実行部
１６１Ｃ    通信処理部
１６１Ｄ    監視対象プログラム実行部
１６３      メモリ
１６５      ＴＲＭ
１６７      ＣＰＵ
１６７Ｂ    第２復号部
１６７Ｃ    第２検証部
１６７Ｄ    第２付加部
１６７Ｅ    第２暗号部
【図１】
0006547756.tif 000002
【図２】
0006547756.tif 000003
【図３】
0006547756.tif 000004
【図４】
0006547756.tif 000005
【図５】
0006547756.tif 000006
【図６】
0006547756.tif 000007
【図７】
0006547756.tif 000008
【図８】
0006547756.tif 000009