(57)【要約】【課題】  コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上させる。【解決手段】  ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出システムであって、ソフトウェアを認定し、対応する認定情報を作成する認定機関装置（２０）と、認定されたソフトウェアをインストール可能なユーザ端末（３０）と、ユーザ端末にインストールされたソフトウェアに関し、認定機関装置により作成された認定情報に基づいて、定期的又は不定期的に改ざんの有無を監査する監査機関装置（４０）とを備えている。このように、認定機関装置により作成された認定情報に基づいて、監査機関装置がソフトウェアの改ざんの有無を監査する構成としたので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上できる。【選択図】  図１
2005084989.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出システムであって、
前記ソフトウェアを認定し、対応する認定情報を作成する認定機関装置と、
前記認定されたソフトウェアをインストール可能なユーザ端末と、
前記ユーザ端末にインストールされたソフトウェアに関し、前記認定機関装置により作成された認定情報に基づいて、定期的又は不定期的に改ざんの有無を監査する監査機関装置と、
を備えたことを特徴とするソフトウェア改ざん検出システム。
【請求項２】
ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出方法であって、
予めソフトウェアを認定し、対応する認定情報を作成する工程と、
前記認定されたソフトウェアを配布する工程と、
前記配布されたソフトウェアをユーザ端末がインストールする工程と、
前記ユーザ端末にインストールされたソフトウェアに関し、前記作成された認定情報に基づいて、定期的又は不定期的に改ざんの有無を監査する工程と、
を備えたことを特徴とするソフトウェア改ざん検出方法。
【請求項３】
認定機関装置が認定情報を作成したソフトウェアに関し、監査機関装置が改ざんを検出するためのソフトウェア改ざん検出プログラムであって、
前記監査機関装置のコンピュータを、
前記認定機関装置から認定情報を受けたとき、この認定情報をメモリに書込む手段、
前記ソフトウェアの監査用情報を送信させるための監査プログラムを、前記ソフトウェアをインストールしたユーザ端末に送信する手段、
前記ユーザ端末から受信した監査用情報を前記メモリ内の認定情報に基づいて検証する手段、
として機能させるためのソフトウェア改ざん検出プログラム。
【請求項４】
請求項３に記載のソフトウェア改ざん検出プログラムにおいて、
前記認定情報は、前記ソフトウェアに施したデジタル署名を含む署名情報であり、
前記監査用情報は、前記ソフトウェア及び対応する署名情報であり、
前記検証する手段は、前記認定情報における署名情報から得られる公開鍵証明書に基づいて、前記監査用情報に含まれるデジタル署名を検証する手段であることを特徴とするソフトウェア改ざん検出プログラム。
【請求項５】
請求項３に記載のソフトウェア改ざん検出プログラムにおいて、
前記監査用情報は、前記ソフトウェアに対するハッシュ演算により算出される第１ハッシュ値を含んでおり、
前記認定情報は、前記第１ハッシュ値及び所定の秘密鍵に対するハッシュ演算により算出される第２ハッシュ値を含んでおり、
前記検証する手段は、前記監査用情報における第１ハッシュ値と、前記認定情報の作成時に用いた所定の秘密鍵とに基づいてハッシュ演算を実行し、得られた第２ハッシュ値と前記認定情報内の第２ハッシュ値とを照合する手段であることを特徴とするソフトウェア改ざん検出プログラム。
【請求項６】
請求項３乃至請求項５のいずれか１項に記載のソフトウェア改ざん検出プログラムにおいて、
前記監査装置のコンピュータを、
前記検証した結果を前記ユーザ端末に通知する手段、
として機能させるためのソフトウェア改ざん検出プログラム。
【請求項７】
監査機関装置からユーザ端末に提供されて用いられ、認定機関装置により認定情報が作成されたソフトウェアの改ざんを検出するためのソフトウェア改ざん検出プログラムであって、
前記ユーザ端末のコンピュータを、
前記ユーザ端末のメモリ内の該当するソフトウェアを前記認定情報に基づいて監査する手段、
として機能させるためのソフトウェア改ざん検出プログラム。
【請求項８】
請求項７に記載のソフトウェア改ざん検出プログラムにおいて、
前記認定情報は、前記ソフトウェアに施したデジタル署名を含む署名情報であり、
前記監査する手段は、前記メモリから当該ソフトウェアに対応する署名情報を検索し、得られた署名情報に含まれるデジタル署名を、前記認定情報における署名情報から得られる公開鍵証明書に基づいて検証する手段であることを特徴とするソフトウェア改ざん検出プログラム。
【請求項９】
請求項７に記載のソフトウェア改ざん検出プログラムにおいて、
前記認定情報は、前記ソフトウェアに対するハッシュ演算により算出される第１ハッシュ値を含んでおり、
前記監査する手段は、前記メモリ内のソフトウェアからハッシュ演算により算出した第１ハッシュ値と、前記認定情報内の第１ハッシュ値とを照合する手段であることを特徴とするソフトウェア改ざん検出プログラム。
【請求項１０】
設定機関装置により認定情報が作成されたソフトウェアを用いてユーザ端末がサーバ装置にアクセスした際に、前記サーバ装置から監査要求を受けた監査機関装置が前記ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出プログラムであって、
前記監査機関装置のコンピュータを、
前記サーバ装置から受けた監査要求に基づいて、前記ソフトウェアの監査用情報を送信させるための監査プログラムを前記ユーザ端末に送信する手段、
前記ユーザ端末から受信した監査用情報を前記メモリ内の認定情報に基づいて検証する手段、
前記検証した結果を前記サーバ装置に通知する手段、
として機能させるためのソフトウェア改ざん検出プログラム。
【請求項１１】
請求項１０に記載のソフトウェア改ざん検出プログラムにおいて、
前記認定情報は、前記ソフトウェアに施したデジタル署名を含む署名情報であり、
前記監査用情報は、前記ソフトウェア及び対応する署名情報であり、
前記検証する手段は、前記認定情報における署名情報から得られる公開鍵証明書に基づいて、前記監査用情報に含まれるデジタル署名を検証する手段であることを特徴とするソフトウェア改ざん検出プログラム。
【請求項１２】
請求項１０に記載のソフトウェア改ざん検出プログラムにおいて、
前記監査用情報は、前記ソフトウェアに対するハッシュ演算により算出される第１ハッシュ値を含んでおり、
前記認定情報は、前記第１ハッシュ値及び所定の秘密鍵に対するハッシュ演算により算出される第２ハッシュ値を含んでおり、
前記検証する手段は、前記監査用情報における第１ハッシュ値と、前記認定情報の作成時に用いた所定の秘密鍵とに基づいてハッシュ演算を実行し、得られた第２ハッシュ値と前記認定情報内の第２ハッシュ値とを照合する手段であることを特徴とするソフトウェア改ざん検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出システム、方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータにインストールされたプログラムやそれに付随するパラメータ（以下、ソフトウェアという）は、ユーザの故意・過失、又はコンピュータウィルスなどにより、改ざんされる可能性が常にある。特に、各家庭のコンピュータは、専門の管理者が管理する企業等のコンピュータに比べ、改ざんされる可能性が高いと考えられる。
【０００３】
一方、今後の社会においては、電子商取引や電子政府などの発展に伴い、コンピュータ上の種々のソフトウェアによる処理が社会的にも重要になってくる。このため、本発明者の考察によれば、各コンピュータにインストールされたソフトウェアの改ざんの有無を検出し、ソフトウェアの正当性を保証する仕組みが必要になると予想される。
【０００４】
係るソフトウェア改ざん検出方法としては、一般に、コンピュータ起動時にＯＳ、ＯＳローダ、その他の被検査ファイルの改ざんの有無を検査する技術が知られている（例えば、特許文献１参照。）。
【特許文献１】特開平１０−３３３９０２号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、以上のようなソフトウェアの改ざん検出方法では、コンピュータ起動時にのみ改ざんを検知するので、コンピュータ起動後の検出が不可能となっている。例えば常時起動されているコンピュータに対しては、改ざんを検出することができない。このため、改ざんの検出が不正確なものとなっている。
【０００６】
更に、ソフトウェアの改ざん検出処理は、ユーザのコンピュータ起動時にそのコンピュータ上で行なうので、必ずしも改ざん検出結果の正当性が保証される訳ではない。例えばクライアント（ユーザ）／サーバシステムの場合、アクセスされたサーバがユーザに改ざん検出結果を要求した際に、ユーザが故意・過失に関わらず、改ざんされていない旨を示す起動時又は虚偽の改ざん検出結果を回答する可能性が常に残る。すなわち、クライアント・サーバシステムの場合、サーバは、アクセスしてきたクライアントのプログラムが改ざんされていても検出できない。
【０００７】
本発明は上記実情を考慮してなされたもので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上し得るソフトウェア改ざん検出システム、方法及びプログラムを提供することを目的とする。
【０００８】
また、本発明の他の目的は、クライアント・サーバシステムの場合に、サーバがクライアントのプログラムの改ざんを検出し得るソフトウェア改ざん検出プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
第１の発明は、ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出システムであって、前記ソフトウェアを認定し、対応する認定情報を作成する認定機関装置と、前記認定されたソフトウェアをインストール可能なユーザ端末と、前記ユーザ端末にインストールされたソフトウェアに関し、前記認定機関装置により作成された認定情報に基づいて、定期的又は不定期的に改ざんの有無を監査する監査機関装置と、を備えたソフトウェア改ざん検出システムである。
【００１０】
第１の発明によれば、監査機関装置が、認定機関装置により作成された認定情報に基づいて、定期的又は不定期にソフトウェアの改ざんの有無を監査するので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上させることができる。
【００１１】
ここで、第１の発明は、各装置の集合体を「システム」として名称を表現したが、これに限らず、各装置の集合体又は各装置個別に「装置」、「方法」、「コンピュータ読取り可能な記憶媒体」又は「プログラム」等といった任意の名称で表現しても良いことは言うまでもない。このことは第１の発明に限らず、他の発明でも同様である。なお、次の第２及び第３の発明は、各装置個別のプログラムとして述べる。
【００１２】
第２の発明は、監査機関装置からユーザ端末に提供されて用いられ、認定機関装置により認定情報が作成されたソフトウェアの改ざんを検出するためのソフトウェア改ざん検出プログラムであって、前記ユーザ端末のコンピュータを、前記ユーザ端末のメモリ内の該当するソフトウェアを前記認定情報に基づいて監査する手段、として機能させるためのソフトウェア改ざん検出プログラムである。
【００１３】
第２の発明によれば、ユーザ端末が、監査機関装置から提供されたソフトウェア改ざん検出プログラムを用い、認定機関装置により作成された認定情報に基づいて、該当するソフトウェアを監査するので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、ソフトウェアの改ざん検出の正確性を向上させることができる。
【００１４】
第３の発明は、設定機関装置により認定情報が作成されたソフトウェアを用いてユーザ端末がサーバ装置にアクセスした際に、前記サーバ装置から監査要求を受けた監査機関装置が前記ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出プログラムであって、前記監査機関装置のコンピュータを、前記サーバ装置から受けた監査要求に基づいて、前記ソフトウェアの監査用情報を送信させるための監査プログラムを前記ユーザ端末に送信する手段、前記ユーザ端末から受信した監査用情報を前記メモリ内の認定情報に基づいて検証する手段、前記検証した結果を前記サーバ装置に通知する手段、として機能させるためのソフトウェア改ざん検出プログラムである。
【００１５】
第３の発明によれば、ユーザ端末からアクセスされたサーバ装置が、ユーザ端末のソフトウェアに対する監査要求を監査機関装置に送り、監査機関装置が、ソフトウェアの監査用情報を検証した結果をサーバ装置に通知するので、クライアント・サーバシステムの場合に、サーバがクライアントのプログラムの改ざんを検出することができる。
【発明の効果】
【００１６】
以上説明したように本発明によれば、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上できる。また、クライアント・サーバシステムの場合に、サーバがクライアントのプログラムの改ざんを検出できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の各実施形態について図面を参照して説明する。  
（第１の実施形態）
図１は本発明の第１の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。このソフトウェア改ざん検出システムは、開発者装置１０、認定機関装置２０、ユーザ端末３０及び監査機関装置４０から構成されている。
【００１８】
ここで、開発者装置１０は、ソフトウェア開発者の操作により、認定を受ける際に、プログラム又はパラメータ（以下、ソフトウェアという）を認定機関装置２０に送付する機能と、認定機関装置２０により署名情報（認定情報）が作成されたプログラム又はパラメータ（以下、署名付ソフトウェアという）をユーザに販売又は配布する機能とをもっている。販売又は配布の形態は、ネットワークを介した形態又は記憶媒体に格納した形態のいずれとしても良い。
【００１９】
なお、署名付ソフトウェアが署名付プログラムの場合、図２に示すように、プログラムと署名情報とは同一ファイルに保存されて配布される。また、署名付ソフトウェアが署名付パラメータの場合、図３に示すように、パラメータと署名情報とが別ファイルに保存されて配布される。署名情報は、認定機関を示す情報（認定機関名など）、署名に用いた秘密鍵のバージョンを示す情報（秘密鍵のシリアル番号）、及びデジタル署名などを含んでいる。
【００２０】
認定機関装置２０は、開発者装置１０から送信されたソフトウェアを認定するものであり、ここではデジタル署名により認定するため、署名機能２１、秘密鍵及び公開鍵証明書を備えている。
【００２１】
詳しくは、認定機関装置２０は、ソフトウェアを認定する際に、秘密鍵に基づいてソフトウエアに署名処理を施し、対応する認定情報としての署名情報を作成する署名機能２１と、この署名情報を含む署名付ソフトウェアを開発者装置１０及び監査機関装置４０に送信する機能と、秘密鍵に対応する公開鍵証明書を公開する機能とをもっている。なお、認定機関装置２０及び監査機関装置４０は１台の装置で構成されていてもよい。
【００２２】
ユーザ端末３０は、通常のネットワーク通信機能を有するコンピュータ端末であり、ここでは主に、開発者装置１０から配布された署名付ソフトウェアをメモリにインストールする機能と、ユーザの操作により、メモリ内の署名付ソフトウェアの監査要求を監査機関装置４０に送信する機能と、折り返し、監査機関装置４０から受けた監査プログラム４２を起動させ、得られた監査用情報を監査機関装置４０に送信する機能とを用いている。
【００２３】
なお、署名付ソフトウェアが記憶されるメモリは、ユーザ端末３０に内蔵されている必要はなく、ユーザ端末３０に接続された記憶装置であっても良い。
【００２４】
監査機関装置４０は、ユーザ端末にインストールされた署名付ソフトウェアに関し、認定機関装置２０により作成された署名情報に基づいて、定期的又は不定期的に改ざんの有無を監査するものであり、メモリ４１、監査プログラム４２、検証機能４３及び公開鍵証明書を備えている。
【００２５】
詳しくは、監査機関装置４０は、認定機関装置２０から受けた署名付ソフトウェアをメモリ４１に保存する機能と、メモリに保存した署名付ソフトウエアに対応する認定機関装置２０の公開鍵証明書を入手する機能と、この公開鍵証明書に基づいて、ユーザ端末３０から受けた署名付ソフトウェアを検証する検証機能４３と、監査結果をユーザ端末３０及び認定機関装置２０に通知する機能とを主に用いている。
【００２６】
ここで、監査する機能は、具体的には、定期的又は不定期的に監査プログラム４２をユーザ端末３０に送信する機能と、ユーザ端末３０から取得した監査用情報（署名付ソフトウェア）に含まれるデジタル署名を、前述した公開鍵証明書に基づいて検証する機能とからなる。
【００２７】
なお、監査プログラム４２は、監査機関装置４０からユーザ端末３０に提供されてユーザ端末３０上で用いられ、ユーザ端末３０のメモリ内の該当する署名付ソフトウェアを監査機関装置４０に送信する機能をもっている。
【００２８】
また、監査プログラム４２は、監査機関装置４０が定期的に送信しても良く、あるいは、ユーザ端末３０からの監査要求に応じて送信する等のように不定期的に送信しても良い。また、監査プログラム４２の送信は、１回だけでも良く、この場合、ユーザ端末３０上で定期的又は不定期に監査プログラム４２が実行されれば良い。また、監査プログラム４２及び監査結果の送信は、ＶＰＮ(Virtual Private Network)などの安全な通信経路を経由して送られることが望ましい。
【００２９】
次に、以上のように構成されたソフトウェア改ざん検出システムの動作を図４のシーケンス図を用いて説明する。
【００３０】
開発者装置１０は、ソフトウェア開発者の操作により、認定を受ける際に、ソフトウェアを認定機関装置２０に送信する（ＳＴ１）。
【００３１】
認定機関装置２０は、このソフトウェアを認定する際に、署名機能２１により、秘密鍵に基づいてソフトウエアに署名処理を施し、対応する認定情報としての署名情報を作成する。また、この署名情報を付与してなる署名付ソフトウェアを開発者装置１０及び監査機関装置４０に送信する（ＳＴ２〜３）。
【００３２】
監査機関装置４０は、この署名付ソフトウェアをメモリ４１に記憶し、この署名付ソフトウェアの署名情報に対応する公開鍵証明書を認定機関装置２０からダウンロードして保存しておく。但し、公開鍵証明書は、署名の検証時にダウンロードしても良い。  
以上により、ソフトウェアの認定が完了する。
【００３３】
次に、開発者装置１０は、ユーザ端末３０から署名付ソフトウェアの配布を要求されると、この署名付ソフトウェアをユーザ端末３０に送信する（ＳＴ４）。なお、署名付ソフトウェアは、配布に限らず、販売しても良い。販売する場合、クレジット決済等のように、通常の電子商取引の手法を適宜使用すればよい。このように、配布／販売のいずれでも良いことは以下の各実施形態でも同様である。
【００３４】
ユーザ端末３０は、配布された署名付ソフトウェアをメモリにインストールし、適宜、実行する。
【００３５】
次に、ユーザ端末３０は、ユーザの操作により、メモリ内の署名付ソフトウェアの監査要求を監査機関装置４０に送信する（ＳＴ５）。
【００３６】
監査機関装置４０は、この監査要求に基づいて、監査プログラム４２をユーザ端末３０に送信する（ＳＴ６）なお、ステップＳＴ５の監査要求は必須ではない。例えば監査機関装置４０は、予めユーザ端末３０のＩＰアドレスが開発者装置１０から通知されることにより、監査要求を受けなくとも、一方的に監査プログラム４２をユーザ端末３０に送付することができる。また、ユーザ端末３０に送信された監査プログラム４２が、以後、定期的又は不定期的にユーザ端末３０上で繰返し実行される場合もステップＳＴ５の監査要求は不要となる。
【００３７】
すなわち、監査の形態は、次の［１］〜［３］の３通りが主に使用される。  
［１］ユーザ操作による監査プログラム４２のダウンロード（ＳＴ５〜６参照）。  
［２］監査機関装置４０からの一方的な監査プログラム４２の送付。  
［３］ユーザ端末３０上の監査プログラム４２の繰返し実行。  
但し、監査の形態は、これら［１］〜［３］に限らず、例えば後述するサーバ装置からの監査要求による形態（図１０〜図１６）など、任意の形態が使用可能となっている。
【００３８】
さてステップＳＴ６の後、ユーザ端末３０は、監査機関装置４０から受けた監査プログラム４２を起動させる。監査プログラム４２は、起動されると、監査対象となる署名付ソフトウェアをユーザ端末３０のメモリから読出し、得られた署名付ソフトウェアを監査用情報として監査機関装置４０に送信する（ＳＴ７）。
【００３９】
監査機関装置４０は、検証機能４３により、この署名付ソフトウェアに含まれるデジタル署名を、認定機関の公開鍵証明書に基づいて検証する。
【００４０】
しかる後、監査機関装置４０は、この検証した結果を監査結果としてユーザ端末３０及び認定機関装置２０に通知する（ＳＴ８〜９）。これにより、ユーザ端末３０が監査結果を表示するので、ユーザが署名付ソフトウェアの改ざんの有無を知ることができる。
【００４１】
上述したように本実施形態によれば、監査機関装置４０が、認定機関装置２０により作成された署名情報に基づいて、ソフトウェアの改ざんの有無を監査するので、従来とは異なり、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上させることができる。
【００４２】
また、第三者機関としての監査機関装置４０がソフトウェアを監査するので、認定機関装置２０からソフトウェア監査の負荷を削減することができる。
【００４３】
（第２の実施形態）
図５は本発明の第２の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図であり、図１と同一部分には同一符号を付してその詳しい説明を省略し、ここでは主に異なる部分について述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
【００４４】
すなわち、本実施形態は、第１の実施形態の変形例であり、デジタル署名によるソフトウェア認定及び改ざん検出に代えて、鍵付きハッシュ関数によるソフトウェア認定及び改ざん検出を実行するものである。
【００４５】
これに伴い、認定機関装置２０ａ及び監査機関装置４０ａは、前述した装置２０，４０とは異なり、鍵付ハッシュ関数を演算可能なものとなっている。  
具体的には、認定機関装置２０ａは、図１に述べた設定機関装置２０の署名機能２１、秘密鍵（公開鍵暗号方式のパラメータ）及び公開鍵証明書に代えて、ハッシュ値算出機能２２及び秘密鍵（任意のパラメータ）を備えている。
【００４６】
認定機関装置２０ａのハッシュ値算出機能２２は、図６に示すように、開発者装置１０から送信されたソフトウェアを認定する際に、ソフトウェアｓｗに対するハッシュ演算により第１ハッシュ値ｈ（ｓｗ）を算出する機能と、この第１ハッシュ値ｈ（ｓｗ）及び所定の秘密鍵Ｋｓに対するハッシュ演算により第２ハッシュ値ｈ（ｈ（ｓｗ），Ｋｓ）を算出する機能とを含んでいる。
【００４７】
また、設定機関装置２０ａは、ハッシュ値算出機能２２により得られた第２ハッシュ値を含む認定情報を監査機関装置４０に送信する機能と、第１及び第２ハッシュ値を含まない認定情報及びソフトウェアからなる認定情報付ソフトウェアを開発者装置１０に送信する機能とをもっている。
【００４８】
ここで、認定情報付ソフトウェアが認定情報付プログラムの場合、図７に示すように、プログラムと認定情報とは同一ファイルに保存されて配布される。また、認定情報付ソフトウェアが認定情報付パラメータの場合、図８に示すように、パラメータと認定情報とが別ファイルに保存されて配布される。認定情報は、認定機関を示す情報（認定機関名など）、ハッシュ値算出に用いた秘密鍵のバージョンを示す情報（秘密鍵のシリアル番号）、などを含んでいる。なお、開発者装置１０及びユーザ端末３０に送信される認定情報は、ハッシュ値の改ざんを防止する観点から、第１及び第２ハッシュ値のいずれも含まない。
【００４９】
一方、監査機関装置４０ａは、図１に述べた監査機関装置４０のメモリ４１、監査プログラム４２、検証機能４３に代えて、秘密鍵、メモリ４１ａ、監査プログラム４４、ハッシュ値算出機能４５及び照合機能４６を備えている。
【００５０】
ここで、秘密鍵は、設定機関装置２０ａと共有した鍵である。
【００５１】
メモリ４１ａは、認定機関装置２０ａから受ける第２ハッシュ値を含む認定情報が記憶されるものである。
【００５２】
監査プログラム４４は、監査機関装置４０からユーザ端末３０に提供されてユーザ端末３０上で用いられ、ユーザ端末３０のメモリ内の該当するソフトウェアを検索し、得られたソフトウェアｓｗに対するハッシュ演算を実行し、得られた第１ハッシュ値ｈ（ｓｗ）を監査用情報として監査機関装置４０ａに送信する機能をもっている。なお、この監査プログラム４４は、図６に比較して示すように、認定機関装置２０のハッシュ値算出機能２２とは異なり、第２ハッシュ値を算出する機能は無い。
【００５３】
ハッシュ値算出機能４５は、ユーザ端末３０から取得した監査用情報に含まれる第１ハッシュ値ｈ（ｓｗ）及び予め認定機関装置２０ａと共有した秘密鍵Ｋｓの両者に対するハッシュ演算を実行する機能と、ハッシュ演算により得られた第２ハッシュ値ｈ（ｈ（ｓｗ），Ｋｓ）を照合機能４６に送出する機能とからなる。なお、このハッシュ値算出機能４５は、図６に比較して示すように、認定機関装置２０のハッシュ値算出機能２２とは異なり、第１ハッシュ値を算出する機能は無い。
【００５４】
照合機能４６は、ハッシュ値算出機能４５から受けた第２ハッシュ値と、メモリ４１ａ内の第２ハッシュ値とを照合する機能と、照合結果に応じて監査結果をユーザ端末３０及び認定機関装置２０ａに送信する機能とからなる。なお、監査結果は、両者が一致した時に、改ざん無しの旨を表す内容となり、両者が不一致の時には、改ざんを検出した旨を表す内容となる。
【００５５】
次に、以上のように構成されたソフトウェア改ざん検出システムの動作を図９のシーケンス図を用いて説明する。
【００５６】
開発者装置１０は、ソフトウェア開発者の操作により、認定を受ける際に、ソフトウェアを認定機関装置２０ａに送信する（ＳＴ１）。
【００５７】
認定機関装置２０ａは、このソフトウェアを認定する際に、ハッシュ値算出機能２２により、ソフトウェアｓｗに対するハッシュ演算により第１ハッシュ値を算出し、更に、この第１ハッシュ値及び所定の秘密鍵に対するハッシュ演算により第２ハッシュ値を算出する。
【００５８】
しかる後、認定機関装置２０ａは、第１及び第２ハッシュ値を含まない認定情報及びソフトウェアからなる認定情報付ソフトウェアを開発者装置１０に送信すると共に（ＳＴ２ａ）、第２ハッシュ値を含む認定情報を監査機関装置４０ａに送信する（ＳＴ３ａ）。監査機関装置４０ａは、この認定情報をメモリ４１ａに記憶しておく。  
以上により、ソフトウェアの認定が完了する。
【００５９】
次に、開発者装置１０は、ユーザ端末３０からソフトウェアの配布を要求されると、この認定情報付ソフトウェアをユーザ端末３０に送信する（ＳＴ４）。
【００６０】
ユーザ端末３０は、配布された認定情報付ソフトウェアをメモリにインストールし、適宜、実行する。
【００６１】
次に、ユーザ端末３０は、ユーザの操作により、メモリ内の認定情報付ソフトウェアの監査要求を監査機関装置４０に送信する（ＳＴ５）。
【００６２】
監査機関装置４０ａは、この監査要求に基づいて、監査プログラム４４をユーザ端末３０に送信する（ＳＴ６ａ）なお、ステップＳＴ５の監査要求は必須ではなく、監査の形態は、前述した［１］〜［３］のいずれでも良い。
【００６３】
さてステップＳＴ６の後、ユーザ端末３０は、監査機関装置４０ａから受けた監査プログラム４４を起動させる。監査プログラム４４は、起動されると、監査対象となる認定情報付ソフトウェアをユーザ端末３０のメモリから読出し、このソフトウェアに対するハッシュ演算を実行し、得られた第１ハッシュ値を監査用情報として監査機関装置４０ａに送信する（ＳＴ７ａ）。
【００６４】
監査機関装置４０ａは、ハッシュ算出機能４５により、監査用情報に含まれる第１ハッシュ値及び予め認定機関装置２０ａと共有した秘密鍵の両者に対するハッシュ演算を実行し、得られた第２ハッシュ値を照合機能４６に送出する。また、監査機関装置４０ａは、照合機能４６により、ハッシュ値算出機能４５から受けた第２ハッシュ値と、メモリ４１ａ内の第２ハッシュ値とを照合し、両者が一致した時に、改ざん無しの旨の監査結果をユーザ端末３０及び認定機関装置２０ａに送信する（ＳＴ８〜９）。
【００６５】
これにより、ユーザ端末３０が監査結果を表示するので、ユーザが認定情報付ソフトウェアの改ざんの有無を知ることができる。
【００６６】
上述したように本実施形態によれば、監査機関装置４０ａが、認定機関装置２０ａにより作成された第２ハッシュ値に基づいて、ソフトウェアの改ざんの有無を監査するので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上させることができる。
【００６７】
すなわち、第１の実施形態のデジタル署名に代えて、鍵付ハッシュ関数を用いる構成としても、第１の実施形態と同様の効果を得ることができる。
【００６８】
なお、本実施形態は、次のように変形することも可能である。例えば監査プログラム４４がステップＳＴ７ａにてソフトウェアを監査機関装置４０ａに送信し、監査機関装置４０ａのハッシュ値算出機能４５がこのソフトウェア及び秘密鍵から第１ハッシュ値を介して第２ハッシュ値を算出し、この第２ハッシュ値を照合機能４６に送出する構成としてもよい。このように変形しても、本実施形態の効果を同様に得ることができる。
【００６９】
（第３の実施形態）
図１０は本発明の第３の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
【００７０】
本実施形態は、第１の実施形態の応用例であり、クライアント・サーバシステムの場合に、サーバがクライアント（ユーザ端末３０）のプログラムの改ざんを検出可能なものである。
【００７１】
具体的には本実施形態は、ユーザ端末３０、監査機関装置４０及びサーバ装置５０から構成されている。
【００７２】
ここで、ユーザ端末３０は、前述した機能に加え、ユーザの操作により、サーバ装置５０にアクセスする機能をもっている。
【００７３】
監査機関装置４０は、前述した機能に加え、サーバ装置５０から受けた監査要求に基づいて、前述した監査プログラム４２をユーザ端末３０に送信する機能と、ユーザ端末３０から受信した監査用情報を前述同様に検証した際に、この検証結果を監査結果としてサーバ装置５０に通知する機能とをもっている。
【００７４】
サーバ装置５０は、アクセスしてきたユーザ端末３０に任意のサービスを提供する通常のサーバ機能に加え、サービス提供の前に、ユーザ端末３０のソフトウェアに対する監査要求を監査機関装置４０に送信する機能と、監査機関装置４０から受けた監査結果に基づいて、ユーザ端末３０との接続を許可又は拒否する機能とをもっている。
【００７５】
次に、以上のように構成されたソフトウェア改ざん検出システムの動作を図１１のシーケンス図を用いて説明する。
【００７６】
いま、図４のステップＳＴ１〜ＳＴ４に述べたソフトウェアの認定から配布までの処理は、完了しているものとする。ステップＳＴ５〜ＳＴ９までのソフトウェアの監査は、実行済みでも未実行でも構わない。
【００７７】
このとき、ユーザ端末３０は、ユーザの操作により、署名付ソフトウェアが実行中であり、この署名付ソフトウェアの動作により、ＩＰアドレス及びユーザ名などの情報と共に、アクセス要求をサーバ装置５０に送信する（ＳＴ１１）。
【００７８】
サーバ装置５０は、ユーザ端末３０の署名付ソフトウェアに対する監査要求をＩＰアドレスやユーザ名などの情報と共に、監査機関装置４０に送信する（ＳＴ１２）。
【００７９】
監査機関装置４０は、この監査要求に基づいて、前述した監査プログラム４２をユーザ端末３０に送信し（ＳＴ１３）、折り返し、ユーザ端末３０から署名付ソフトウェアを受信する（ＳＴ１４）。なお、ステップＳＴ１３は、監査プログラム４２を送信する場合に限らず、ユーザ端末３０上に予めある監査プログラム４２を起動する命令としても良い。
【００８０】
次いで、監査機関装置４０は、この署名付きソフトウェアを前述同様に検証し、得られた検証結果を監査結果としてサーバ装置５０に通知する（ＳＴ１５）。
【００８１】
サーバ装置５０は、この監査結果に基づいて、ユーザ端末３０との接続を許可又は拒否する（ＳＴ１６）。これにより、サーバ装置５０は、例えばユーザ端末３０の署名付ソフトウェアが改ざんされていなければ接続を許可し、改ざんされていれば接続を拒否することができる。
【００８２】
上述したように本実施形態によれば、第１の実施形態の効果に加え、ユーザ端末３０からアクセスされたサーバ装置５０が、ユーザ端末３０のソフトウェアに対する監査要求を監査機関装置４０に送り、監査機関装置４０が、ソフトウェアの監査用情報を検証した結果をサーバ装置５０に通知するので、クライアント・サーバシステムの場合に、サーバがクライアントのプログラムの改ざんを検出することができる。
【００８３】
また、サーバ装置５０は、監査結果に基づいて接続を拒否できるので、改ざんされたソフトウェアによる不測の事態などを避けることができる。
【００８４】
なお、本実施形態は、図１２に示すように変形しても良い。すなわち、本実施形態のクライアント・サーバシステムを第２の実施形態の鍵付ハッシュ関数を用いた構成に適用しても、本実施形態を同様に実施して同様の効果を得ることができる。
【００８５】
（第４の実施形態）
図１３は本発明の第４の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
【００８６】
本実施形態は、第１の実施形態の変形例であり、監査プログラム４２ｂがユーザ端末３０上で署名付ソフトウェアを検証する構成となっている。
【００８７】
これに伴い、ユーザ端末３０は、前述した機能に加え、署名付ソフトウェアに対応する公開鍵証明書を認定機関装置２０からダウンロードする機能をもっている。
【００８８】
監査プログラム４２ｂは、監査機関装置４０ｂからユーザ端末３０に提供されて用いられ、起動されると、ユーザ端末３０のメモリ内の該当する署名付ソフトウェアを、署名情報に対応する公開鍵証明書に基づいて検証する機能をもっている。
【００８９】
次に、以上のように構成されたソフトウェア改ざん検出システムの動作を図１４のシーケンス図を用いて説明する。
【００９０】
始めに、ステップＳＴ１〜ＳＴ５に示すように、ソフトウェアの認定から署名付ソフトウェアの配布、監査要求の送信までの処理は、前述した図４と同様に実行される。
【００９１】
続いて、監査機関装置４０ｂは、この監査要求に基づいて、監査プログラム４２ｂをユーザ端末３０に送信する（ＳＴ６ｂ）。なお、監査の形態が主に３通りあることも前述した通りである。
【００９２】
さてステップＳＴ６ｂの後、ユーザ端末３０は、監査プログラム４２ｂを起動させる。監査プログラム４２ｂは、起動されると、監査対象となる署名付ソフトウェアをユーザ端末３０のメモリから読出し、得られた署名付ソフトウェアを、署名情報に対応する公開鍵証明書に基づいて検証し、検証結果をユーザ端末３０上に表示させる。これにより、ユーザが署名付ソフトウェアの改ざんの有無を知ることができる。
【００９３】
上述したように本実施形態によれば、ユーザ端末３０が、監査機関装置４０ｂから提供された監査プログラム４２ｂを用い、署名情報に対応する公開鍵証明書に基づいて、該当するソフトウェアを監査するので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上させることができる。
【００９４】
（第５の実施形態）
図１５は本発明の第５の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
【００９５】
本実施形態は、第２の実施形態の変形例であり、監査プログラム４４ｃがユーザ端末３０上で認定情報付ソフトウェアを検証可能な構成となっている。
【００９６】
ここで、監査プログラム４４ｃは、監査機関装置４０ｃからユーザ端末３０に提供されて用いられ、起動されると、ユーザ端末３０のメモリ内の該当する認定情報付ソフトウェアを、認定情報に含まれる第１ハッシュ値に基づいて検証する機能をもっている。
【００９７】
検証する機能は、具体的には、ユーザ端末３０の該当するソフトウェアから第１ハッシュ値を算出し、この第１ハッシュ値を認定情報に含まれる第１ハッシュ値と照合し、照合結果が一致の時のみ、改ざん無しの監査結果を得る。なお、照合結果が不一致の時には、改ざん有りの監査結果となる。
【００９８】
次に、以上のように構成されたソフトウェア改ざん検出システムの動作を図１６のシーケンス図を用いて説明する。
【００９９】
始めに、ステップＳＴ１〜ＳＴ５に示すように、ソフトウェアの認定から認定情報付ソフトウェアの配布、監査要求の送信までの処理は、前述した図９と同様に実行される。但し、ステップＳＴ３ｃにおいては、前述したＳＴ３ａとは異なり、第１及び第２ハッシュ値を含む認定情報が監査機関装置４０ｃに送信される。監査機関装置４０ｃは、この第１ハッシュ値を監査プログラム４４ｃに照合用データとして書込んでおく。
【０１００】
さてステップＳＴ５の後、監査機関装置４０ｃは、この監査要求に基づいて、監査プログラム４２ｃをユーザ端末３０に送信する（ＳＴ６ｃ）。なお、監査の形態が主に３通りあることも前述した通りである。
【０１０１】
さてステップＳＴ６ｃの後、ユーザ端末３０は、監査プログラム４４ｃを起動させる。監査プログラム４４ｃは、起動されると、監査対象となる認定情報付ソフトウェアをユーザ端末３０のメモリから読出し、このソフトウェアに対するハッシュ演算を実行し、第１ハッシュ値を得る。
【０１０２】
続いて、ユーザ端末３０は、監査プログラム４４ｃにより、ハッシュ演算で得た第１ハッシュ値と、監査プログラム４４ｃが有する照合用データとしての第１ハッシュ値とを照合し、照合結果に応じて監査結果を表示する。これにより、ユーザが認定情報付ソフトウェアの改ざんの有無を知ることができる。
【０１０３】
上述したように本実施形態によれば、ユーザ端末３０が、監査機関装置４０ｃから提供された監査プログラム４４ｃを用い、認定情報に含まれる第１ハッシュ値に基づいて、該当するソフトウェアを監査するので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上させることができる。
【０１０４】
また、ユーザ端末３０による検証は第１ハッシュ値を用いるので、ユーザ端末３０への秘密鍵の漏洩を阻止することができる。すなわち、ユーザ端末３０への秘密鍵の漏洩を阻止しつつ、鍵付ハッシュ関数による監査機関装置４０ｃでの（第２ハッシュ値による）検証と、ユーザ端末３０での（第１ハッシュ値による）検証とを同時に実現することができる。
【０１０５】
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【０１０６】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【０１０７】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行しても良い。
【０１０８】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【０１０９】
また、記憶媒体は１つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【０１１０】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【０１１１】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【０１１２】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【図面の簡単な説明】
【０１１３】
【図１】本発明の第１の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
【図２】同実施形態における署名付プログラムの構成を説明するための模式図である。
【図３】同実施形態における署名付パラメータの構成を説明するための模式図である。
【図４】同実施形態における動作を説明するためのシーケンス図である。
【図５】本発明の第２の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
【図６】同実施形態におけるハッシュ値算出機能を説明するための模式図である。
【図７】同実施形態における認定情報付プログラムの構成を説明するための模式図である。
【図８】同実施形態における認定情報付パラメータの構成を説明するための模式図である。
【図９】同実施形態における動作を説明するためのシーケンス図である。
【図１０】本発明の第３の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
【図１１】同実施形態における動作を説明するためのシーケンス図である。
【図１２】同実施形態の変形例の動作を説明するためのシーケンス図である。
【図１３】本発明の第４の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
【図１４】同実施形態における動作を説明するためのシーケンス図である。
【図１５】本発明の第５の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
【図１６】同実施形態における動作を説明するためのシーケンス図である。
【符号の説明】
【０１１４】
１０…開発者装置、２０，２０ａ…認定機関装置、２１…署名機能、２２…ハッシュ値算出機能、３０…ユーザ端末、４０，４０ａ，４０ｂ，４０ｃ…監査機関装置、４１，１４ａ…メモリ、４２，４２ｂ，４４，４４ｃ…監査プログラム、４３…検証機能、４５…ハッシュ値算出機能、４６…照合機能。
【図１】
2005084989.tif 000003
【図２】
2005084989.tif 000004
【図３】
2005084989.tif 000005
【図４】
2005084989.tif 000006
【図５】
2005084989.tif 000007
【図６】
2005084989.tif 000008
【図７】
2005084989.tif 000009
【図８】
2005084989.tif 000010
【図９】
2005084989.tif 000011
【図１０】
2005084989.tif 000012
【図１１】
2005084989.tif 000013
【図１２】
2005084989.tif 000014
【図１３】
2005084989.tif 000015
【図１４】
2005084989.tif 000016
【図１５】
2005084989.tif 000017
【図１６】
2005084989.tif 000018