(57)【要約】【課題】機器の不正な利用を排除できる認証システムおよび認証方法を提供する。【解決手段】機器と接続し作業を行うためのコンピュータに対して、前記機器が認証情報要求を送信し、コンピュータは、受信した認証情報要求に、ソフトウェアの正当性を示すデータである構成証明データを添付して認証センタに送信する。認証センタは、構成証明データを参照して、コンピュータのハードウェアならびにソフトウェアが正当なものであることを確認し、認証情報を生成する。認証情報は、コンピュータを経由して機器に送信され、機器は、当該認証情報が正当なものであった場合に、前記コンピュータとの接続を許可する。【選択図】図８
2014048800.tif 000002
【特許請求の範囲】
【請求項１】
機器と、機器と接続し通信を行うためのコンピュータと、認証センタと、からなり、機器がコンピュータに接続する際に、コンピュータに対する認証を行う認証システムであって、
前記機器が、
前記コンピュータに対して認証情報を要求するためのデータである認証情報要求を送信する認証情報要求送信手段と、
前記コンピュータから前記認証情報要求に対応する認証情報を受信する認証情報受信手段と、
前記受信した認証情報の正当性を確認する認証情報確認手段と、
前記認証情報が正当なものである場合に、前記コンピュータとの接続を許可する許可手段と、を有し、
前記コンピュータが、
前記機器と通信を行うためのソフトウェアを記憶するソフトウェア記憶手段と、
前記ソフトウェアの正当性を示すデータである構成証明データを生成する構成証明生成手段と、
前記機器から認証情報要求を受信し、当該認証情報要求と、前記構成証明データを前記認証センタに送信する構成証明送信手段と、
前記認証センタから認証情報を受信し、前記機器に転送する認証情報転送手段と、を有し、
前記認証センタが、
前記コンピュータから送信された前記認証情報要求および前記構成証明データを受信する構成証明受信手段と、
前記構成証明データの正当性および前記構成証明データによって示された前記ソフトウェアの正当性を確認する構成証明確認手段と、
前記構成証明データおよび前記ソフトウェアが共に正当なものである場合に、前記認証情報要求に対応する認証情報を生成して、前記コンピュータに送信する認証情報送信手段と、を有する、
認証システム。
【請求項２】
前記コンピュータは、当該コンピュータに固有な第一の秘密鍵を記憶する第一の秘密鍵記憶手段をさらに有し、
前記認証センタは、コンピュータに固有な第一の公開鍵を記憶する第一の公開鍵記憶手段をさらに有し、
前記コンピュータが有する構成証明送信手段は、前記構成証明データに、前記第一の秘密鍵を用いて生成した電子署名を加えて送信し、
前記認証センタが有する構成証明確認手段は、前記電子署名を、前記コンピュータに対応する第一の公開鍵を用いて検証することで、前記構成証明データの正当性を確認する、
請求項１に記載の認証システム。
【請求項３】
前記コンピュータが有する第一の秘密鍵記憶手段および前記構成証明生成手段は、耐タンパ性デバイスによって実現される、
請求項２に記載の認証システム。
【請求項４】
前記認証センタは、当該認証センタに固有な第二の秘密鍵を記憶する第二の秘密鍵記憶手段をさらに有し、
前記機器は、前記認証センタに対応する第二の公開鍵を記憶する第二の公開鍵記憶手段をさらに有し、
前記認証センタが有する認証情報送信手段は、受信した認証情報要求に、前記コンピュ
ータに対応する第一の公開鍵を加えて認証情報を生成し、前記第二の秘密鍵を用いて生成した電子署名を加えて送信し、
前記機器が有する認証情報確認手段は、受信した前記電子署名を、前記第二の公開鍵を用いて検証することで、前記認証情報の正当性を確認する、
請求項２または３のいずれかに記載の認証システム。
【請求項５】
前記機器が有する認証情報要求送信手段が送信する認証情報要求は、擬似乱数を含み、
前記認証センタが有する認証情報送信手段は、取得した認証情報要求に含まれる前記擬似乱数を、生成する認証情報に含ませ、
前記機器が有する認証情報確認手段は、前記認証情報に前記擬似乱数が含まれる場合に、前記認証情報を正当なものであると判断する、
請求項４に記載の認証システム。
【請求項６】
前記コンピュータは、前記機器へ送信するコマンドを生成し、前記第一の秘密鍵を用いて生成した電子署名を加えて前記機器へ送信するコマンド送信手段をさらに有し、
前記機器は、前記コンピュータからコマンドおよび電子署名を受信し、前記電子署名を、前記認証情報受信手段が受信した前記認証情報に含まれる前記第一の公開鍵を用いて検証することで、前記コマンドの正当性を確認し、正当なものである場合に、当該コマンドを処理するコマンド処理手段をさらに有する、
請求項４または５に記載の認証システム。
【請求項７】
機器と、機器と接続し通信を行うためのコンピュータと、認証センタと、を用い、コンピュータが機器に接続する際に、コンピュータに対する認証を行う認証方法であって、
前記機器が、前記コンピュータに対して、認証情報を要求するためのデータである認証情報要求を送信し、
前記コンピュータが、前記コンピュータに記憶されたソフトウェアの正当性を示すデータである構成証明データを生成し、前記機器から受信した前記認証情報要求と、前記構成証明データを、前記認証センタに送信し、
前記認証センタが、受信した前記構成証明データの正当性および前記構成証明データによって示された前記ソフトウェアの正当性を確認し、前記構成証明データおよび前記ソフトウェアが共に正当なものである場合に、前記前記認証情報要求に対応する認証情報を生成して、前記コンピュータを介して前記機器に送信し、
前記機器が、前記認証情報の正当性を確認し、前記認証情報が正当なものである場合に、前記コンピュータとの接続を許可する
ことを特徴とする、認証方法。
【請求項８】
機器と接続し通信を行うためのコンピュータであって、
前記機器と通信を行うためのソフトウェアを記憶するソフトウェア記憶手段と、
前記ソフトウェアの正当性を示すデータである構成証明データを生成する構成証明生成手段と、
前記機器から、認証情報を要求するためのデータである認証情報要求を受信し、前記認証情報要求と、前記構成証明データを、認証情報を発行するための認証センタに送信する構成証明送信手段と、
前記認証センタから、前記認証情報要求に対応する認証情報を受信し、前記機器に転送する認証情報転送手段と、
を有するコンピュータ。
【請求項９】
機器と接続し通信を行うためのコンピュータから、前記コンピュータが有するソフトウェアの正当性を示すデータである構成証明データと、認証情報を要求するためのデータである認証情報要求とを受信する構成証明受信手段と、
前記構成証明データの正当性および前記構成証明データによって示された前記ソフトウェアの正当性を確認する構成証明確認手段と、
前記構成証明データおよび前記ソフトウェアが共に正当なものである場合に、前記認証情報要求に対応する認証情報を生成して、前記コンピュータに送信する認証情報送信手段と、
を有する認証センタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器の不正利用を排除できる認証システムおよび認証方法に関する。
【背景技術】
【０００２】
近年、ソフトウェアの高度化にともない、携帯電話や車載コンピュータなどの組込み機器に、デバッグ機能や更新機能などの保守のための機能を搭載することが一般的になっている。デバッグ機能は、開発時に機器の動作を検証する目的や、故障した機器の解析を行うために使用される。また、更新機能は、不具合の修正や機能向上などのためのソフトウェア、およびハードウェアに近いファームウェアの更新に使用される。
【０００３】
これらの保守機能は、一般の利用者は使用しない機能であるため、利用者がアクセスできないように制限がかけられている場合が多い。特に、車載コンピュータは、自動車の制御を受け持つという性質上、パラメータの安易な変更が故障や事故につながる可能性がある。そのため、保守機能にアクセスするためには専用の機器（以下、保守装置と称する）を必要とし、一般の利用者が容易に触れることができない構造をとっている。
【０００４】
しかし、保守装置が本来ある場所から持ち出され、外部に流出すると、悪意のある利用者によって保守機能が不正に利用される恐れがある。
これを防ぐための技術として、例えば特許文献１に記載の発明がある。特許文献１には、機器にＧＰＳ（Global Positioning System）装置を搭載し、取得した現在位置を、あ
らかじめ記憶してあるエリアと照合することで、設定されたエリア外での機器の起動を禁止させる技術が記載されている。当該発明によると、仮に保守装置が本来ある場所から盗難などにより持ち出された場合でも、設定されたエリアの外に出ると使用することができなくなるため、保守装置の不正な使用を防止することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２１５９５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の発明は、保守拠点が多い場合に管理コストがかかるという問題がある。例えば、保守拠点が多く、当該保守拠点情報が頻繁に更新される場合、全ての保守装置に最新の保守拠点情報を記憶させなければならない。自動車のように、修理工場などの保守拠点が数多く存在する場合、その全てをリスト化して保持させるか、保守装置ごとに異なる保守拠点情報を記録しなければならないため、管理のためのコストがかかる。
【０００７】
また、当該発明は、ハードウェアの移動を検知するものであるため、ソフトウェアの流出に対応することができないという問題がある。例えば、保守装置がパーソナルコンピュータをベースとしたものであった場合、保守用のプログラムが流出した場合、当該プログラムのみで保守機能へのアクセスが可能になり、不正な利用を止めることができない。この問題を解決するためには、通信を行うためのソフトウェアが流出、あるいは通信内容が解析され偽のソフトウェアを作成された場合であっても、使用されるコンピュータが正当なものでなければ機器が接続を拒否するような認証システムを構築する必要がある。
【０００８】
本発明は上記の問題点を考慮してなされたものであり、機器の不正な利用を排除できる認証システムおよび認証方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る認証システムは、機器と、機器と接続し通信を行うためのコンピュータと、認証センタと、からなり、機器がコンピュータに接続する際に、コンピュータに対する認証を行う認証システムである。
【００１０】
前記機器は、前記コンピュータに対して認証情報を要求するためのデータである認証情報要求を送信する認証情報要求送信手段と、前記コンピュータから前記認証情報要求に対応する認証情報を受信する認証情報受信手段と、前記受信した認証情報の正当性を確認する認証情報確認手段と、前記認証情報が正当なものである場合に、前記コンピュータとの接続を許可する許可手段と、を有する。
また、前記コンピュータは、前記機器と通信を行うためのソフトウェアを記憶するソフトウェア記憶手段と、前記ソフトウェアの正当性を示すデータである構成証明データを生成する構成証明生成手段と、前記機器から認証情報要求を受信し、当該認証情報要求と、前記構成証明データを前記認証センタに送信する構成証明送信手段と、前記認証センタから認証情報を受信し、前記機器に転送する認証情報転送手段と、を有する。
また、前記認証センタは、前記コンピュータから送信された前記認証情報要求および前記構成証明データを受信する構成証明受信手段と、前記構成証明データの正当性および前記構成証明データによって示された前記ソフトウェアの正当性を確認する構成証明確認手段と、前記構成証明データおよび前記ソフトウェアが共に正当なものである場合に、前記認証情報要求に対応する認証情報を生成して、前記コンピュータに送信する認証情報送信手段と、を有する。
【００１１】
本発明における機器は、接続されたコンピュータに対して、当該コンピュータに記憶されたソフトウェアが正当なものであることを示す認証情報を要求する。そしてコンピュータは、要求された認証情報を認証サーバから取得する。コンピュータはこの際、自己が記憶しているソフトウェアに基づいて構成証明データを生成し、認証センタに送信する。構成証明データとは、自己が記憶している対象ソフトウェアが正当なものであることを他者に示すためのデータであり、例えば記憶されたソフトウェアのハッシュ値などである。対象ソフトウェアとは、機器との通信を行うための通信ソフトウェアを含んでいれば、その範囲はどのように定めてもよい。例えば、当該通信ソフトウェアのみであってもよいし、オペレーティングシステムのライブラリやカーネルを含んだものであってもよい。また、ディスク装置に記憶されたソフトウェア全てであってもよい。認証センタは、当該構成証明データによって、コンピュータに記憶されたソフトウェアが正当なものであるかを判断し、正当なものであった場合にのみ、認証情報を生成する。生成された認証情報は、コンピュータを経由して機器に送信される。
このように構成することにより、仮に攻撃者が正規の通信ソフトウェアのプロトコルを解析し、攻撃用の通信ソフトウェアを作成した場合であっても、正規のソフトウェアとは構成証明データが異なるため、認証センタから認証情報を受け取ることができない。機器は、認証情報が無い限りコンピュータとの接続を行わないため、不正な接続による保守機能の起動を防止することができる。また、構成証明データの生成対象を、通信ソフトウェアだけでなく、オペレーティングシステムのカーネルやライブラリまで含むようにすれば、正規の通信ソフトウェアを不正にコピーするケースにも対応することができる。すなわち、攻撃に用いるコンピュータのカーネルやライブラリなどが、正当なコンピュータと少しでも異なれば認証情報を得ることが出来ないため、同様に機器との不正な接続を防止することができる。
【００１２】
また、前記コンピュータは、当該コンピュータに固有な第一の秘密鍵を記憶する第一の秘密鍵記憶手段をさらに有し、前記認証センタは、コンピュータに固有な第一の公開鍵を記憶する第一の公開鍵記憶手段をさらに有し、前記コンピュータが有する構成証明送信手
段は、前記構成証明データに、前記第一の秘密鍵を用いて生成した電子署名を加えて送信し、前記認証センタが有する構成証明確認手段は、前記電子署名を、前記コンピュータに対応する第一の公開鍵を用いて検証することで、前記構成証明データの正当性を確認することを特徴としてもよい。
【００１３】
コンピュータから認証センタに送信される構成証明データに、コンピュータが生成した電子署名を添えることにより、認証センタは、送信された構成証明データが改変されておらず、また発信元が正しいことを確認することができる。仮に攻撃者が、不正に入手した正規の通信ソフトウェアをコンピュータにインストールしたとしても、第一の秘密鍵が無い限り電子署名を作成することができないため、認証情報を得ることができず、同様に機器との不正な接続を防止することができる。
【００１４】
また、前記コンピュータが有する第一の秘密鍵記憶手段および前記構成証明生成手段は、耐タンパ性デバイスによって実現されることを特徴としてもよい。
【００１５】
耐タンパ性デバイスとは、情報の外部への取り出しや、情報の改変に対する防御力を持ったデバイスである。耐タンパデバイスには、例えばＴＰＭを用いることができる。ＴＰＭ（Trusted Platform Module）とは、ＴＣＧ(Trusted Computing Group)にて標準化された、耐タンパ性を持つセキュリティチップであり、秘密鍵の記憶、ハッシュの生成、電子署名の生成などを単体で行うことができる。ＴＰＭに記憶された秘密鍵には、外部からアクセスすることができないため、秘密鍵の流出を防止することができる。また、ＴＰＭの内部で行われるハッシュや電子署名の生成には、外部から関与することができないため、構成証明データの改ざんや、不正な電子署名の生成を行うことができない。また、秘密鍵を記憶したメモリは、物理的に取り出そうとすると自己破壊が起こるため、ハードウェアと切り離すこともできない。すなわち、コンピュータのハードウェアが正当なものでない限り、認証センタから認証情報を受け取ることができなくなる。
【００１６】
また、前記認証センタは、当該認証センタに固有な第二の秘密鍵を記憶する第二の秘密鍵記憶手段をさらに有し、前記機器は、前記認証センタに対応する第二の公開鍵を記憶する第二の公開鍵記憶手段をさらに有し、前記認証センタが有する認証情報送信手段は、受信した認証情報要求に、前記コンピュータに対応する第一の公開鍵を加えて認証情報を生成し、前記第二の秘密鍵を用いて生成した電子署名を加えて送信し、前記機器が有する認証情報確認手段は、受信した前記電子署名を、前記第二の公開鍵を用いて検証することで、前記認証情報の正当性を確認することを特徴としてもよい。
【００１７】
認証センタから機器へ送信される認証情報に、認証センタが生成した電子署名を添えることにより、機器は、送信された認証情報が改変されておらず、また発信元が正しいことを確認することができる。すなわち、攻撃者が認証情報を偽造して機器に送信しても、これを検知することができる。
また、認証センタから機器に送信される認証情報には、コンピュータの公開鍵である第一の公開鍵を含ませることができる。これにより機器は、コンピュータを認証した後、コンピュータとセキュアな通信を行うことができる。
【００１８】
また、前記機器が有する認証情報要求送信手段が送信する認証情報要求は、擬似乱数を含み、前記認証センタが有する認証情報送信手段は、取得した認証情報要求に含まれる前記擬似乱数を、生成する認証情報に含ませ、前記機器が有する認証情報確認手段は、前記認証情報に前記擬似乱数が含まれる場合に、前記認証情報を正当なものであると判断することを特徴としてもよい。
【００１９】
すなわち、機器は、受信した認証情報に自己が生成した擬似乱数が含まれていれば、当
該認証情報が認証センタによって生成されたものであることを確認することができる。擬似乱数は前記機器および前記コンピュータが接続する毎に変化するため、攻撃者が通信内容を傍受してもリプレイ攻撃を行うことができないという効果が得られる。
【００２０】
また、前記コンピュータは、前記機器へ送信するコマンドを生成し、前記第一の秘密鍵を用いて生成した電子署名を加えて前記機器へ送信するコマンド送信手段をさらに有し、前記機器は、前記コンピュータからコマンドを受信し、前記電子署名を、前記認証情報受信手段が受信した前記認証情報に含まれる前記第一の公開鍵を用いて検証することで、前記コマンドの正当性を確認し、正当なものである場合に、当該コマンドを処理するコマンド処理手段をさらに有することを特徴としてもよい。
【００２１】
認証情報に含まれる第一の公開鍵は、認証済みのコンピュータに対応するものである。すなわち、コンピュータが第一の秘密鍵で電子署名を作成し、機器が第一の公開鍵で当該電子署名を検証することによって、機器は、コマンドの送信元が正当なコンピュータであることを確認することができる。
【発明の効果】
【００２２】
本発明によれば、機器の不正な利用を排除できる認証システムおよび認証方法を提供することができる。
【図面の簡単な説明】
【００２３】
【図１】第一の実施形態に係る、車両のシステム構成図である。
【図２】第一の実施形態に係る、コンピュータのシステム構成図である。
【図３】第一の実施形態に係る、認証サーバのシステム構成図である。
【図４】ツール公開鍵記憶部に記憶されるツール公開鍵の例である。
【図５】ハンドシェイク時における、車両の処理フローチャートである。
【図６】ハンドシェイク時における、コンピュータの処理フローチャートである。
【図７】ハンドシェイク時における、認証サーバの処理フローチャートである。
【図８】ハンドシェイク時における、データの流れを説明する図である。
【図９】車両、コンピュータ、認証サーバ間で送受信されるデータの構造を説明する図である。
【図１０】コマンド送信時における、コンピュータおよび車両の処理フローチャートである。
【図１１】コマンド送信時における、データの流れを説明する図である。
【図１２】第一の実施形態の変形例に係る、ツール公開鍵記憶部に記憶されるツール公開鍵の例である。
【図１３】第二の実施形態における、構成証明の対象範囲を説明する図である。
【発明を実施するための形態】
【００２４】
（第一の実施形態）
第一の実施形態における認証システムの概要について説明する。第一の実施形態は、車両と、コンピュータと、認証サーバからなる認証システムである。車両が本発明における機器であり、認証サーバが本発明における認証センタである。また、コンピュータは、車両に搭載されたＥＣＵに対してデータ解析やプログラムの更新を行うためのソフトウェアが動作するパーソナルコンピュータである。当該ソフトウェアを、本実施形態では通信ソフトウェアと称する。
【００２５】
第一の実施形態における車両は、接続されたコンピュータに対して、認証情報要求、すなわち当該コンピュータが正当なものであることの証明を要求するデータを送信する。本実施形態においては、認証情報要求は擬似乱数であり、これをナンスと称する。
また、コンピュータは、構成証明データを生成して、電子署名を添付したうえで、受信したナンスとともに認証サーバに送信する。構成証明データとは、コンピュータが有するソフトウェアの正当性を示すデータであり、本実施形態では、コンピュータが記憶しているソフトウェア全体のハッシュ値である。認証サーバは、電子署名を検証することで、構成証明データが正当なものであること（すなわち正当なコンピュータから送信され、かつ偽造されたものでないこと）を確認し、構成証明データに含まれるハッシュ値が正しいかを検証することで、コンピュータに記憶されたソフトウェアが偽造または改ざんされたものでないことを確認する。
【００２６】
コンピュータ、およびコンピュータに記憶されたソフトウェアが正当なものであった場合、認証サーバは、認証情報を生成する。認証情報とは、本実施形態では、受信したナンスに、当該コンピュータの公開鍵を追加したものである。この認証情報は、電子署名とともにコンピュータを介して車両へ送信される。車両は、受信した電子署名を検証することで、認証情報が正当なものであること（すなわち正当な認証サーバから送信され、かつ偽造されたものでないこと）を確認することができる。また、車両は、認証情報に含まれるナンスが、送信したナンスと一致していることを確認する。これにより、受信した認証情報が、自己が送信した要求に対応して認証サーバが発行したものであること（すなわちリプレイ攻撃ではないこと）を確認することができる。
【００２７】
そして、受信した認証情報が正当なものであり、かつ、認証情報に含まれているナンスが送信したナンスと一致していれば、車両は、コンピュータとの接続を許可する。このように構成することで、車両は、接続されたコンピュータおよびソフトウェアが正当なものである場合にのみ、当該コンピュータとの通信を許可できるようになり、保守機能への不正なアクセスを防ぐことができる。
【００２８】
<システム構成>
以上に説明した機能を実現するための実施形態の詳細について説明する。
第一の実施形態に係る認証システムの構成を、図１〜３を参照しながら説明する。図１は車両１０のシステム構成図、図２はコンピュータ２０のシステム構成図、図３は認証サーバ３０のシステム構成図である。
【００２９】
まず、車両１０について説明する。車両１０は、車両制御用のＥＣＵを複数搭載した自動車である。車両１０には、エンジン、パワートレイン、ブレーキ、車両制御など機能別に複数のＥＣＵが備わっている。各ＥＣＵは、車内ネットワークを通してコンピュータ２０と接続することによって、プログラムの更新やデータの解析などを行うことができる。なお、図１には、コンピュータ２０との通信に関する手段のみを図示し、ＥＣＵは図示していない。
【００３０】
ナンス生成部１１は、コンピュータ２０との接続を行った際に、擬似乱数であるナンスを生成する手段である。生成されるナンスが、本発明における認証情報要求である。
通信部１２は、コンピュータ２０と通信を行う手段である。具体的には、ナンス生成部１１が生成したナンスをコンピュータ２０に送信し、コンピュータ２０から、ナンスに対応する認証情報を受信する手段である。自動車には、ＯＢＤ２と呼ばれる規格の通信ポートが装備されており、通信部１２は当該ポートを利用してコンピュータ２０との有線接続を行う。
【００３１】
センタ公開鍵記憶部１３は、認証サーバに対応する公開鍵であるセンタ公開鍵（本発明における第二の公開鍵）を記憶する手段である。本システムを利用する全ての車両が同一のセンタ公開鍵を記憶している。
認証情報検証部１４は、コンピュータから送信された認証情報の正当性を検証する手段
である。具体的には、認証情報に添付された電子署名を検証することで、当該認証情報が、認証サーバ３０によって生成されたものであることを確認する。また、認証情報検証部１４は、受信した認証情報が、自己が送信したナンスに対応するものであることを確認する機能も有している。
また、コマンド実行部１５は、ＥＣＵに対する保守コマンドを実行する手段である。コンピュータ２０から受信した保守コマンドを、車内ネットワークを通して対象のＥＣＵに送信することで、データの解析やプログラムの更新などを行う。
以上の手段は、演算処理装置（ＣＰＵ）と記憶装置（ＲＯＭ）を有する組込みコンピュータによって実現されてもよいし、専用に設計された電子回路によって実現されてもよい。
【００３２】
コンピュータ２０は、車両１０に搭載されたＥＣＵと通信を行うための通信ソフトウェアが動作する、汎用のパーソナルコンピュータである。
通信部２１は、前述したＯＢＤ２規格のコネクタを有する通信手段である。例えば、ＰＣＩｅ、ＥｘｐｒｅｓｓＣａｒｄ（登録商標）といった拡張バスに装着されるインタフェースカードなどによって実現される。
通信部２２は、認証サーバ３０との通信を行う手段であり、携帯電話網やマルチチャネルアクセス無線を利用する通信モジュールなどによって実現される。
コマンド生成部２３は、車両１０に搭載されたＥＣＵに対する保守コマンドを生成する手段である。ディスプレイやキーボードといった入出力手段（不図示）を通して、利用者から操作を受け付け、保守のためのコマンドを生成する。
【００３３】
符号２００は、ＴＰＭによって保護された領域を表す。ＴＰＭとは、前述したように、コンピュータに内蔵され、暗号演算に関する各種の機能を有するワンチップモジュールである。当該モジュールは、コンピュータのメインボードに直接装着されている。
【００３４】
ＴＰＭ制御部２０１は、ＴＰＭが有する機能を制御するための手段である。本実施形態では、ソフトウェアの構成証明データの生成、および公開鍵暗号を用いた電子署名の生成を行う動作を制御する。また、ＴＰＭ制御部２０１は、コンピュータ２０に固有な秘密鍵であるツール秘密鍵（本発明における第一の秘密鍵）を記憶している。ツール秘密鍵は、ソフトウェアおよびハードウェア的に保護された不揮発性メモリに記憶されており、電子署名の生成等に使用することはできるが、外部からのアクセス、物理的なメモリの取り出し等を行うことはできない。
また、構成証明実施部２０２は、構成証明データを生成する手段である。具体的には、コンピュータ２０にインストールされたソフトウェアのハッシュ値を、ＳＨＡ−１、ＳＨＡ−２５６などのアルゴリズムによって計算する手段である。当該計算したハッシュ値が、本発明における構成証明データである。構成証明データを生成する具体的な例については後述する。
【００３５】
コンピュータ２０では、以上の手段が、演算処理装置（ＣＰＵ）、記憶装置（ＲＯＭ）、ＴＰＭ、およびその他のハードウェアによって実現される。
【００３６】
認証サーバ３０は、コンピュータ２０と通信を行うサーバ装置である。
通信部３１は、通信部２２と同様に、データを送受信する手段である。本実施形態では、コンピュータ２０から構成証明データおよびナンスを受信し、コンピュータ２０に認証情報を送信する。
ツール公開鍵記憶部３２は、コンピュータ２０に対応する公開鍵であるツール公開鍵（本発明における第一の公開鍵）を記憶する手段である。ツール公開鍵は、コンピュータの個体ごとに異なり、認証サーバ３０は、通信を行うコンピュータに対応するツール公開鍵を全て記憶している。図４は、ツール公開鍵記憶部３２に記憶されたツール公開鍵の例で
ある。コンピュータ２０の識別子と、対応する公開鍵が記憶されている。
【００３７】
構成証明検証部３３は、コンピュータ２０から送信された構成証明データの正当性を確認する手段である。具体的には、構成証明データに添付された電子署名を検証することで、その発信元を確認し、構成証明データの内容を検証することで、コンピュータ２０に記憶されているソフトウェアが正当なものであることを確認する。
認証情報生成部３４は、車両に送信する認証情報を生成する手段である。具体的には、コンピュータ２０に対応したツール公開鍵をツール公開鍵記憶部３２から取得し、コンピュータ２０から受信したナンスに追加する。ナンスにツール公開鍵を追加したものが、本発明における認証情報である。
【００３８】
センタ秘密鍵記憶部３５は、認証サーバ３０に固有な秘密鍵であるセンタ秘密鍵（本発明における第二の秘密鍵）を記憶する手段である。
電子署名生成部３６は、認証情報生成部３４が生成した認証情報に電子署名を追加する手段である。具体的には、認証情報のハッシュを生成し、生成したハッシュを、センタ秘密鍵記憶部３５に記憶された秘密鍵を用いて暗号化し、認証情報に追加する。
以上の構成は、演算処理装置（ＣＰＵ）と記憶装置（ＲＯＭ）を有するコンピュータによって構成されることが望ましいが、専用に設計されたハードウェアによって実現されてもよい。
【００３９】
<ハンドシェイク処理>
車両１０とコンピュータ２０が接続された際に、車両が、接続されたコンピュータを認証し、ハンドシェイクを行う動作について説明する。図５は車両１０の処理フローチャート、図６はコンピュータ２０の処理フローチャート、図７は認証サーバ３０の処理フローチャートである。また、図８は、ハンドシェイク処理における車両、コンピュータ、認証サーバ間のデータフローを示す図である。
【００４０】
車両１０が、コンピュータ２０との接続を検知すると、ナンス生成部１１が、擬似乱数であるナンスを生成する（Ｓ１１）。生成されたナンスは、通信部１２、通信部２１を通してコンピュータ２０へと送信される（Ｓ１２）。送信するナンスは平文でよく、暗号化する必要はない。
コンピュータ２０が行う処理の説明（図６）に移る。コンピュータ２０は、車両１０との接続を検知すると、通信部２１を通してナンスの受信を試みる（Ｓ２１）。このとき、一定時間以内にナンスが受信できなければ、接続失敗として処理を終了させる（Ｓ２１−Ｎｏ）。ナンスを受信した場合、ＴＰＭ制御部２０１が、構成証明実施部２０２を通してコンピュータの構成証明を実施し、構成証明データを生成する（Ｓ２２）。
【００４１】
ステップＳ２２で行う構成証明について詳しく説明する。
ＴＰＭは、プラットフォーム構成の計測に用いるＰＣＲ（プラットフォーム構成レジスタ：Platform Configuration Register）と呼ばれるレジスタを有している。ＰＣＲには
、正当なプラットフォームに対するハッシュ値が書き込まれている。ＰＣＲはハードウェアによって保護されており、利用者が任意の値に書き換えることはできない。すなわち、ＰＣＲに記録されたハッシュ値と、プラットフォームの構成から得られたハッシュ値を得ることで、プラットフォームの改ざんを検知することができる。この、双方のハッシュ値が本発明における構成証明データである。構成証明データには、ＴＰＭに記憶されている秘密鍵（すなわちツール秘密鍵）を用いて電子署名が付加される。この動作は構成証明（Attestation）と呼ばれ、ＴＰＭが標準で有している機能である。ＴＰＭによって生成さ
れ、電子署名が付加された構成証明データは、外部から手を加えることはできないため、第三者がこれを検証することで、プラットフォームの正当性を確認することができる。
第一の実施形態では、検証を行う対象のプラットフォームとは、コンピュータ２０に記
憶されている全てのソフトウェアを指す。すなわち、通信ソフトウェア、その他のアプリケーション、システムライブラリ、オペレーティングシステムのカーネル等を含む。
【００４２】
ステップＳ２２の処理によって、構成証明データおよび電子署名が生成されると、ＴＰＭ制御部２０１は、当該データを、ステップＳ２１によって受信したナンスに付加し、通信部２２を通して認証サーバ３０へ送信する（Ｓ２３）。ナンスは、送信した認証情報要求と、受信した認証情報とが対応していることを確認するための情報であるため、ナンスに対する電子署名は生成しなくてもよい。図９（ａ）は、認証サーバ３０に送信されるデータの構造を表したものである。
【００４３】
認証サーバ３０が行う処理の説明（図７）に移る。認証サーバ３０は、通信部３１を通してデータを受信すると、コンピュータ２０に対応するツール公開鍵を、ツール公開鍵記憶部３２から取得する（Ｓ３１）。前述したように、ツール公開鍵記憶部３２には、図４のような形式で、各コンピュータに対応するツール公開鍵が記憶されており、受信した電子署名に対応するツール公開鍵を検索して取得することができる。
【００４４】
そして、構成証明検証部３３が、構成証明データに添付された電子署名を検証する（Ｓ３２）。具体的には、受信データに含まれる電子署名を、取得したツール公開鍵を用いて復号し、受信データから得られるハッシュ値と一致するかを確認する。電子署名の検証が成功すれば、受信した構成証明データが、当該ツール公開鍵に対応するコンピュータ２０から送信されたものであり、改ざんされていないことが確認できる。電子署名の検証に失敗した場合、認証サーバ３０は動作を終了する（Ｓ３２−Ｎｏ）。
【００４５】
続いて、構成証明データに含まれる二つのハッシュ値（正当なソフトウェアにおけるハッシュ値、および取得したソフトウェアのハッシュ値）を確認し、両者が一致しているかを確認する（Ｓ３３）。これらが一致すれば、コンピュータ２０に記憶されているソフトウェアが正当なものであることが確認できる（Ｓ３３−Ｙｅｓ）。ハッシュ値が一致しない場合、認証サーバ３０は動作を終了する（Ｓ３３−Ｎｏ）。
すなわち、ステップＳ３２およびＳ３３の結果がともにＹｅｓであれば、コンピュータ２０が正当なハードウェアであり、かつ、コンピュータ２０に記憶されているソフトウェアも正当なものであることが確認できる。
【００４６】
コンピュータの正当性が確認されると、認証情報生成部３４が、受信したナンスに対象コンピュータ２０のツール公開鍵を追加し、電子署名生成部３６へ送信する。そして、電子署名生成部３６が、センタ秘密鍵記憶部３５から取得したセンタ秘密鍵を用いて電子署名を生成し、追加する（Ｓ３４）。生成されるデータの構造は図９（ｂ）のようになる。
次に、電子署名生成部３６が、生成した認証情報を、通信部３１を通してコンピュータ２０へ送信する（Ｓ３５）。
【００４７】
コンピュータが行う処理の説明（図６）に戻り、ステップＳ２４から説明を続ける。コンピュータ２０は、認証サーバから応答があった場合（Ｓ２４−Ｙｅｓ）、認証情報を受信し（Ｓ２５）、当該認証情報を、通信部２１を通して車両１０へ送信する（Ｓ２６）。認証サーバからの応答がタイムアウトした場合（Ｓ２４−Ｎｏ）は、処理を終了させる。
【００４８】
車両が行う処理の説明（図５）に戻り、ステップＳ１３から説明を続ける。車両１０が認証情報を受信すると（Ｓ１３−Ｙｅｓ）、認証情報検証部１４が、認証情報に含まれる電子署名を、センタ公開鍵記憶部１３に記憶されているセンタ公開鍵を用いて復号し、電子署名の検証を行う（Ｓ１４）。認証情報が得られなかった場合（Ｓ１３−Ｎｏ）は、処理を終了させる。電子署名の検証が成功（Ｓ１４−Ｙｅｓ）した場合、認証情報に含まれるツール公開鍵が、認証サーバ３０から送信されたものであり、改ざんされていないこと
が確認できるため、ステップＳ１５へ遷移する。電子署名の検証に失敗（Ｓ１４−Ｎｏ）した場合、処理を終了させる。
【００４９】
次に、認証情報検証部１４が、ステップＳ１１で生成したナンスの値と、受信した認証情報に含まれるナンスの値が同一であることを確認する（Ｓ１５）。受信したナンスの値が同一でない場合、リプレイ攻撃の可能性が疑われるため、処理を終了させる（Ｓ１５−Ｎｏ）。ナンスの値が同一であった場合（Ｓ１５−Ｙｅｓ）、ツール公開鍵が正当なものであることが確認できるため、当該ツール公開鍵を一時的に記憶し、コンピュータ２０に対して、接続許可応答を送信する。
【００５０】
コンピュータが行う処理の説明（図６）に戻り、ステップＳ２７から説明を続ける。車両１０からコンピュータ２０に対して接続許可応答が送信されると（Ｓ２７−Ｙｅｓ）、通信パラメータを交換したのちにハンドシェイクが終了する。接続許可応答がなかった場合（Ｓ２７−Ｎｏ）、コンピュータ２０は動作を終了させる。なお、一時的に記憶したツール公開鍵は、コンピュータとの接続を解除した際に消去される。
【００５１】
<コマンド処理>
以上、車両１０がコンピュータ２０を認証する処理について説明した。次に、コンピュータ２０が車両１０に対してコマンドを送信し、車両が当該コマンドを処理する動作について説明する。コマンドとは保守作業用のコマンドであり、例えばＥＣＵに記憶されたプログラムの書き換えコマンドや、デバッグモードへの切り替えコマンドなどである。
図１０は、車両１０およびコンピュータ２０が行う処理のフローチャートである。ステップＳ４１とＳ４２が、コンピュータ２０が行う処理であり、ステップＳ５１からＳ５４が、車両１０が行う処理である。
【００５２】
まず、コマンド生成部２３が、車両１０に送信するコマンドを生成する。生成されたコマンドは、ＴＰＭ制御部２０１へ送信され、ツール秘密鍵を用いて生成された電子署名が添付される（Ｓ４１）。次に、通信部２１が、生成したコマンドと電子署名を車両に送信する（Ｓ４２）。送信されるデータの構造は図９（ｃ）のようになる。
【００５３】
ステップＳ５１では、通信部１１が、コンピュータから送信されたメッセージを受信する。
続いて、ステップＳ５２では、認証情報検証部１４が、受信したメッセージに含まれる電子署名に対応するツール公開鍵を取得済みであるか確認する。ここで、対応するツール公開鍵で取得済みである場合（Ｓ５２−Ｙｅｓ）、当該ツール公開鍵を用いて電子署名の検証を行う（Ｓ５３）。そして、電子署名の検証に成功した場合（Ｓ５３−Ｙｅｓ）、受信したコマンドをコマンド実行部１５へ送信し、実行する。対応するツール公開鍵を取得していなかった場合（Ｓ５２−Ｎｏ）や、電子署名の検証に失敗した場合（Ｓ５３−Ｎｏ）、コマンドを拒否する旨の応答を返し、処理を終了させる。
【００５４】
<第一の実施形態の効果>
以上に示したように、本実施形態では、車両から要求を受けたコンピュータが構成証明データを生成し、認証サーバがコンピュータを認証するという構成をとる。構成証明の生成にはＴＰＭを利用するため、攻撃者は認証サーバに対して偽りの情報を送信することができない。また、認証サーバと車両との通信には公開鍵暗号を用い、毎回異なるナンスを利用するため、攻撃者は認証サーバを偽ることも、リプレイ攻撃をすることもできない。すなわち、正当なハードウェアと正当なソフトウェアが揃わない限り、車両との通信を行うことが出来ないため、どちらかが流出した場合であっても、不正利用されるおそれがない。
【００５５】
（第一の実施形態の変形例）
第一の実施形態では、コンピュータのハードウェアと、コンピュータが記憶するソフトウェアがともに正当なものでない限り、認証サーバが認証情報を生成しない。しかし、盗難などによって双方が流出した場合、第一の実施形態では対応することができない。本変形例は、ハードウェアおよびソフトウェアの双方が流出した場合であっても対応することができる実施形態例である。
【００５６】
本変形例では、ツール公開鍵記憶部３２が記憶するツール公開鍵に、図１２のような無効フラグを設定する。当該無効フラグは通常「０」であり、該当するコンピュータ２０の使用を停止したい場合に「１」に設定する。
そして、ステップＳ３２の処理において、無効フラグが設定されているコンピュータに対しては、添付された電子署名が不正なものであるという判断を行う。このようにすることで、万一コンピュータが盗難などによって流出した場合であっても、容易に当該コンピュータから送信される要求を無効にすることができ、セキュリティ性を高めることができる。
【００５７】
（第二の実施形態）
第一の実施形態では、コンピュータ２０に記憶されている全てのソフトウェアを構成証明の対象とした。しかし、ＴＰＭが有しているプロセッサは、コンピュータに用いられている演算処理装置と比較すると低速であり、構成証明の対象が多くなると処理に時間がかかるという欠点がある。第二の実施形態は、構成証明の対象を絞ることで、ステップＳ２２の処理時間を短縮する実施形態である。
【００５８】
図１３は、構成証明の対象となるソフトウェアの範囲を示す図である。点線で示した範囲が、それぞれの形態における構成証明の対象範囲である。第一の実施形態では、構成証明の対象は、コンピュータに記憶されている全てのソフトウェアであるため、その範囲は図１３（ａ）のようになる。
これに対し、通信ソフトウェアのみが正当であることを確認できればよい場合、構成証明の対象を図１３（ｂ）のように設定することができる。また、通信ソフトウェアに加えて、システムライブラリ、およびカーネルの正当性まで確認したい場合、構成証明の対象を図１３（ｃ）のように設定すればよい。
【００５９】
また、ソフトウェアの改ざんを検出するソフトウェアを利用してもよい。第二の実施形態では、記憶されたソフトウェアの変更を監視するソフトウェアを、オブザーバと称する。
図１３（ｄ）に示したオブザーバとは、ユーザアプリケーションの変更を検出するアプリケーションである。オブザーバは、実行を許可するアプリケーションのリストを保持し、アプリケーションが変更もしくは改ざんされた場合、即時検出することができる。アプリケーションの実行ファイルが変更されたことを検知する技術は公知であり、例えばホワイトリスト方式のアンチウイルスソフトに用いられている。そして、構成証明の対象を、オブザーバ、システムライブラリ、およびカーネルとすることで、コンピュータ２０に記憶されている全てのソフトウェアについて変更を検知することができる。すなわち、図１３（ａ）の範囲に対して構成証明を実施するのと同じ効果が得られる。もちろん、構成証明の対象をオブザーバのみとしてもよい。
【００６０】
第一の実施形態では、構成証明データの生成に時間がかかるという欠点があったが、第二の実施形態によると、短時間で構成証明データの生成を完了させることができる。
【００６１】
（変形例）
上記の実施形態はあくまでも一例であって、本発明はその要旨を逸脱しない範囲内で適
宜変更して実施しうる。例えば、各実施形態では、ナンスに擬似乱数を使用しているが、現在時刻など他のものを用いてもよい。また、認証サーバがコンピュータの認証を許可しない場合、無応答ではなく、無効な認証情報を返すようにしてもよい。
【００６２】
また、各実施形態では、ＴＰＭによる構成証明を実施しているが、コンピュータがツール秘密鍵を記憶し、記憶したソフトウェアのハッシュ値を生成することができれば、必ずしもＴＰＭを用いる必要は無い。例えば、任意のセキュアデバイスを用いてもよい。また、各実施形態では、ＴＰＭによって構成証明を実施しているため、認証サーバは、正当なソフトウェアのハッシュ値に関する情報は持っていないが、他の方法によってハッシュ値を生成する場合、認証サーバに正当なソフトウェアのハッシュ値を記憶させ、認証サーバにて比較をするようにしてもよい。この他にも、ソフトウェアの正当性は、ハッシュ値以外によって確認してもよい。
【００６３】
また、各実施形態では、認証サーバがツール公開鍵を、車両がセンタ公開鍵を保持し、コンピュータと認証サーバ、認証サーバと車両との間で電子署名による認証を行っているが、通信相手が正当であることを確認することができれば、他の方法を用いてもよい。例えば公開鍵証明書などを用い、その都度公開鍵を伝送してもよい。
【符号の説明】
【００６４】
１０  車両
１１  ナンス生成部
１２，２１，２２，３１  通信部
１３  センタ公開鍵記憶部
１４  認証情報検証部
１５  コマンド実行部
２０  コンピュータ
２３  コマンド生成部
２００  ＴＰＭモジュール
２０１  ＴＰＭ制御部
２０２  構成証明実施部
３０  認証サーバ
３２  ツール公開鍵記憶部
３３  構成証明を検証部
３４  認証情報生成部
３５  センタ秘密鍵記憶部
３６  電子署名生成部
【図１】
2014048800.tif 000003
【図２】
2014048800.tif 000004
【図３】
2014048800.tif 000005
【図４】
2014048800.tif 000006
【図５】
2014048800.tif 000007
【図６】
2014048800.tif 000008
【図７】
2014048800.tif 000009
【図８】
2014048800.tif 000010
【図９】
2014048800.tif 000011
【図１０】
2014048800.tif 000012
【図１１】
2014048800.tif 000013
【図１２】
2014048800.tif 000014
【図１３】
2014048800.tif 000015