JP2005084989A - ソフトウェア改ざん検出システム、方法及びプログラム - Google Patents
ソフトウェア改ざん検出システム、方法及びプログラム Download PDFInfo
- Publication number
- JP2005084989A JP2005084989A JP2003316730A JP2003316730A JP2005084989A JP 2005084989 A JP2005084989 A JP 2005084989A JP 2003316730 A JP2003316730 A JP 2003316730A JP 2003316730 A JP2003316730 A JP 2003316730A JP 2005084989 A JP2005084989 A JP 2005084989A
- Authority
- JP
- Japan
- Prior art keywords
- software
- information
- audit
- user terminal
- hash value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
【課題】 コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上させる。
【解決手段】 ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出システムであって、ソフトウェアを認定し、対応する認定情報を作成する認定機関装置(20)と、認定されたソフトウェアをインストール可能なユーザ端末(30)と、ユーザ端末にインストールされたソフトウェアに関し、認定機関装置により作成された認定情報に基づいて、定期的又は不定期的に改ざんの有無を監査する監査機関装置(40)とを備えている。このように、認定機関装置により作成された認定情報に基づいて、監査機関装置がソフトウェアの改ざんの有無を監査する構成としたので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上できる。
【選択図】 図1
【解決手段】 ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出システムであって、ソフトウェアを認定し、対応する認定情報を作成する認定機関装置(20)と、認定されたソフトウェアをインストール可能なユーザ端末(30)と、ユーザ端末にインストールされたソフトウェアに関し、認定機関装置により作成された認定情報に基づいて、定期的又は不定期的に改ざんの有無を監査する監査機関装置(40)とを備えている。このように、認定機関装置により作成された認定情報に基づいて、監査機関装置がソフトウェアの改ざんの有無を監査する構成としたので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上できる。
【選択図】 図1
Description
本発明は、ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出システム、方法及びプログラムに関する。
コンピュータにインストールされたプログラムやそれに付随するパラメータ(以下、ソフトウェアという)は、ユーザの故意・過失、又はコンピュータウィルスなどにより、改ざんされる可能性が常にある。特に、各家庭のコンピュータは、専門の管理者が管理する企業等のコンピュータに比べ、改ざんされる可能性が高いと考えられる。
一方、今後の社会においては、電子商取引や電子政府などの発展に伴い、コンピュータ上の種々のソフトウェアによる処理が社会的にも重要になってくる。このため、本発明者の考察によれば、各コンピュータにインストールされたソフトウェアの改ざんの有無を検出し、ソフトウェアの正当性を保証する仕組みが必要になると予想される。
係るソフトウェア改ざん検出方法としては、一般に、コンピュータ起動時にOS、OSローダ、その他の被検査ファイルの改ざんの有無を検査する技術が知られている(例えば、特許文献1参照。)。
特開平10−333902号公報。
しかしながら、以上のようなソフトウェアの改ざん検出方法では、コンピュータ起動時にのみ改ざんを検知するので、コンピュータ起動後の検出が不可能となっている。例えば常時起動されているコンピュータに対しては、改ざんを検出することができない。このため、改ざんの検出が不正確なものとなっている。
更に、ソフトウェアの改ざん検出処理は、ユーザのコンピュータ起動時にそのコンピュータ上で行なうので、必ずしも改ざん検出結果の正当性が保証される訳ではない。例えばクライアント(ユーザ)/サーバシステムの場合、アクセスされたサーバがユーザに改ざん検出結果を要求した際に、ユーザが故意・過失に関わらず、改ざんされていない旨を示す起動時又は虚偽の改ざん検出結果を回答する可能性が常に残る。すなわち、クライアント・サーバシステムの場合、サーバは、アクセスしてきたクライアントのプログラムが改ざんされていても検出できない。
本発明は上記実情を考慮してなされたもので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上し得るソフトウェア改ざん検出システム、方法及びプログラムを提供することを目的とする。
また、本発明の他の目的は、クライアント・サーバシステムの場合に、サーバがクライアントのプログラムの改ざんを検出し得るソフトウェア改ざん検出プログラムを提供することにある。
第1の発明は、ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出システムであって、前記ソフトウェアを認定し、対応する認定情報を作成する認定機関装置と、前記認定されたソフトウェアをインストール可能なユーザ端末と、前記ユーザ端末にインストールされたソフトウェアに関し、前記認定機関装置により作成された認定情報に基づいて、定期的又は不定期的に改ざんの有無を監査する監査機関装置と、を備えたソフトウェア改ざん検出システムである。
第1の発明によれば、監査機関装置が、認定機関装置により作成された認定情報に基づいて、定期的又は不定期にソフトウェアの改ざんの有無を監査するので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上させることができる。
ここで、第1の発明は、各装置の集合体を「システム」として名称を表現したが、これに限らず、各装置の集合体又は各装置個別に「装置」、「方法」、「コンピュータ読取り可能な記憶媒体」又は「プログラム」等といった任意の名称で表現しても良いことは言うまでもない。このことは第1の発明に限らず、他の発明でも同様である。なお、次の第2及び第3の発明は、各装置個別のプログラムとして述べる。
第2の発明は、監査機関装置からユーザ端末に提供されて用いられ、認定機関装置により認定情報が作成されたソフトウェアの改ざんを検出するためのソフトウェア改ざん検出プログラムであって、前記ユーザ端末のコンピュータを、前記ユーザ端末のメモリ内の該当するソフトウェアを前記認定情報に基づいて監査する手段、として機能させるためのソフトウェア改ざん検出プログラムである。
第2の発明によれば、ユーザ端末が、監査機関装置から提供されたソフトウェア改ざん検出プログラムを用い、認定機関装置により作成された認定情報に基づいて、該当するソフトウェアを監査するので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、ソフトウェアの改ざん検出の正確性を向上させることができる。
第3の発明は、設定機関装置により認定情報が作成されたソフトウェアを用いてユーザ端末がサーバ装置にアクセスした際に、前記サーバ装置から監査要求を受けた監査機関装置が前記ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出プログラムであって、前記監査機関装置のコンピュータを、前記サーバ装置から受けた監査要求に基づいて、前記ソフトウェアの監査用情報を送信させるための監査プログラムを前記ユーザ端末に送信する手段、前記ユーザ端末から受信した監査用情報を前記メモリ内の認定情報に基づいて検証する手段、前記検証した結果を前記サーバ装置に通知する手段、として機能させるためのソフトウェア改ざん検出プログラムである。
第3の発明によれば、ユーザ端末からアクセスされたサーバ装置が、ユーザ端末のソフトウェアに対する監査要求を監査機関装置に送り、監査機関装置が、ソフトウェアの監査用情報を検証した結果をサーバ装置に通知するので、クライアント・サーバシステムの場合に、サーバがクライアントのプログラムの改ざんを検出することができる。
以上説明したように本発明によれば、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上できる。また、クライアント・サーバシステムの場合に、サーバがクライアントのプログラムの改ざんを検出できる。
以下、本発明の各実施形態について図面を参照して説明する。
(第1の実施形態)
図1は本発明の第1の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。このソフトウェア改ざん検出システムは、開発者装置10、認定機関装置20、ユーザ端末30及び監査機関装置40から構成されている。
(第1の実施形態)
図1は本発明の第1の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。このソフトウェア改ざん検出システムは、開発者装置10、認定機関装置20、ユーザ端末30及び監査機関装置40から構成されている。
ここで、開発者装置10は、ソフトウェア開発者の操作により、認定を受ける際に、プログラム又はパラメータ(以下、ソフトウェアという)を認定機関装置20に送付する機能と、認定機関装置20により署名情報(認定情報)が作成されたプログラム又はパラメータ(以下、署名付ソフトウェアという)をユーザに販売又は配布する機能とをもっている。販売又は配布の形態は、ネットワークを介した形態又は記憶媒体に格納した形態のいずれとしても良い。
なお、署名付ソフトウェアが署名付プログラムの場合、図2に示すように、プログラムと署名情報とは同一ファイルに保存されて配布される。また、署名付ソフトウェアが署名付パラメータの場合、図3に示すように、パラメータと署名情報とが別ファイルに保存されて配布される。署名情報は、認定機関を示す情報(認定機関名など)、署名に用いた秘密鍵のバージョンを示す情報(秘密鍵のシリアル番号)、及びデジタル署名などを含んでいる。
認定機関装置20は、開発者装置10から送信されたソフトウェアを認定するものであり、ここではデジタル署名により認定するため、署名機能21、秘密鍵及び公開鍵証明書を備えている。
詳しくは、認定機関装置20は、ソフトウェアを認定する際に、秘密鍵に基づいてソフトウエアに署名処理を施し、対応する認定情報としての署名情報を作成する署名機能21と、この署名情報を含む署名付ソフトウェアを開発者装置10及び監査機関装置40に送信する機能と、秘密鍵に対応する公開鍵証明書を公開する機能とをもっている。なお、認定機関装置20及び監査機関装置40は1台の装置で構成されていてもよい。
ユーザ端末30は、通常のネットワーク通信機能を有するコンピュータ端末であり、ここでは主に、開発者装置10から配布された署名付ソフトウェアをメモリにインストールする機能と、ユーザの操作により、メモリ内の署名付ソフトウェアの監査要求を監査機関装置40に送信する機能と、折り返し、監査機関装置40から受けた監査プログラム42を起動させ、得られた監査用情報を監査機関装置40に送信する機能とを用いている。
なお、署名付ソフトウェアが記憶されるメモリは、ユーザ端末30に内蔵されている必要はなく、ユーザ端末30に接続された記憶装置であっても良い。
監査機関装置40は、ユーザ端末にインストールされた署名付ソフトウェアに関し、認定機関装置20により作成された署名情報に基づいて、定期的又は不定期的に改ざんの有無を監査するものであり、メモリ41、監査プログラム42、検証機能43及び公開鍵証明書を備えている。
詳しくは、監査機関装置40は、認定機関装置20から受けた署名付ソフトウェアをメモリ41に保存する機能と、メモリに保存した署名付ソフトウエアに対応する認定機関装置20の公開鍵証明書を入手する機能と、この公開鍵証明書に基づいて、ユーザ端末30から受けた署名付ソフトウェアを検証する検証機能43と、監査結果をユーザ端末30及び認定機関装置20に通知する機能とを主に用いている。
ここで、監査する機能は、具体的には、定期的又は不定期的に監査プログラム42をユーザ端末30に送信する機能と、ユーザ端末30から取得した監査用情報(署名付ソフトウェア)に含まれるデジタル署名を、前述した公開鍵証明書に基づいて検証する機能とからなる。
なお、監査プログラム42は、監査機関装置40からユーザ端末30に提供されてユーザ端末30上で用いられ、ユーザ端末30のメモリ内の該当する署名付ソフトウェアを監査機関装置40に送信する機能をもっている。
また、監査プログラム42は、監査機関装置40が定期的に送信しても良く、あるいは、ユーザ端末30からの監査要求に応じて送信する等のように不定期的に送信しても良い。また、監査プログラム42の送信は、1回だけでも良く、この場合、ユーザ端末30上で定期的又は不定期に監査プログラム42が実行されれば良い。また、監査プログラム42及び監査結果の送信は、VPN(Virtual Private Network)などの安全な通信経路を経由して送られることが望ましい。
次に、以上のように構成されたソフトウェア改ざん検出システムの動作を図4のシーケンス図を用いて説明する。
開発者装置10は、ソフトウェア開発者の操作により、認定を受ける際に、ソフトウェアを認定機関装置20に送信する(ST1)。
認定機関装置20は、このソフトウェアを認定する際に、署名機能21により、秘密鍵に基づいてソフトウエアに署名処理を施し、対応する認定情報としての署名情報を作成する。また、この署名情報を付与してなる署名付ソフトウェアを開発者装置10及び監査機関装置40に送信する(ST2〜3)。
監査機関装置40は、この署名付ソフトウェアをメモリ41に記憶し、この署名付ソフトウェアの署名情報に対応する公開鍵証明書を認定機関装置20からダウンロードして保存しておく。但し、公開鍵証明書は、署名の検証時にダウンロードしても良い。
以上により、ソフトウェアの認定が完了する。
以上により、ソフトウェアの認定が完了する。
次に、開発者装置10は、ユーザ端末30から署名付ソフトウェアの配布を要求されると、この署名付ソフトウェアをユーザ端末30に送信する(ST4)。なお、署名付ソフトウェアは、配布に限らず、販売しても良い。販売する場合、クレジット決済等のように、通常の電子商取引の手法を適宜使用すればよい。このように、配布/販売のいずれでも良いことは以下の各実施形態でも同様である。
ユーザ端末30は、配布された署名付ソフトウェアをメモリにインストールし、適宜、実行する。
次に、ユーザ端末30は、ユーザの操作により、メモリ内の署名付ソフトウェアの監査要求を監査機関装置40に送信する(ST5)。
監査機関装置40は、この監査要求に基づいて、監査プログラム42をユーザ端末30に送信する(ST6)なお、ステップST5の監査要求は必須ではない。例えば監査機関装置40は、予めユーザ端末30のIPアドレスが開発者装置10から通知されることにより、監査要求を受けなくとも、一方的に監査プログラム42をユーザ端末30に送付することができる。また、ユーザ端末30に送信された監査プログラム42が、以後、定期的又は不定期的にユーザ端末30上で繰返し実行される場合もステップST5の監査要求は不要となる。
すなわち、監査の形態は、次の[1]〜[3]の3通りが主に使用される。
[1]ユーザ操作による監査プログラム42のダウンロード(ST5〜6参照)。
[2]監査機関装置40からの一方的な監査プログラム42の送付。
[3]ユーザ端末30上の監査プログラム42の繰返し実行。
但し、監査の形態は、これら[1]〜[3]に限らず、例えば後述するサーバ装置からの監査要求による形態(図10〜図16)など、任意の形態が使用可能となっている。
[1]ユーザ操作による監査プログラム42のダウンロード(ST5〜6参照)。
[2]監査機関装置40からの一方的な監査プログラム42の送付。
[3]ユーザ端末30上の監査プログラム42の繰返し実行。
但し、監査の形態は、これら[1]〜[3]に限らず、例えば後述するサーバ装置からの監査要求による形態(図10〜図16)など、任意の形態が使用可能となっている。
さてステップST6の後、ユーザ端末30は、監査機関装置40から受けた監査プログラム42を起動させる。監査プログラム42は、起動されると、監査対象となる署名付ソフトウェアをユーザ端末30のメモリから読出し、得られた署名付ソフトウェアを監査用情報として監査機関装置40に送信する(ST7)。
監査機関装置40は、検証機能43により、この署名付ソフトウェアに含まれるデジタル署名を、認定機関の公開鍵証明書に基づいて検証する。
しかる後、監査機関装置40は、この検証した結果を監査結果としてユーザ端末30及び認定機関装置20に通知する(ST8〜9)。これにより、ユーザ端末30が監査結果を表示するので、ユーザが署名付ソフトウェアの改ざんの有無を知ることができる。
上述したように本実施形態によれば、監査機関装置40が、認定機関装置20により作成された署名情報に基づいて、ソフトウェアの改ざんの有無を監査するので、従来とは異なり、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上させることができる。
また、第三者機関としての監査機関装置40がソフトウェアを監査するので、認定機関装置20からソフトウェア監査の負荷を削減することができる。
(第2の実施形態)
図5は本発明の第2の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図であり、図1と同一部分には同一符号を付してその詳しい説明を省略し、ここでは主に異なる部分について述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
図5は本発明の第2の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図であり、図1と同一部分には同一符号を付してその詳しい説明を省略し、ここでは主に異なる部分について述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
すなわち、本実施形態は、第1の実施形態の変形例であり、デジタル署名によるソフトウェア認定及び改ざん検出に代えて、鍵付きハッシュ関数によるソフトウェア認定及び改ざん検出を実行するものである。
これに伴い、認定機関装置20a及び監査機関装置40aは、前述した装置20,40とは異なり、鍵付ハッシュ関数を演算可能なものとなっている。
具体的には、認定機関装置20aは、図1に述べた設定機関装置20の署名機能21、秘密鍵(公開鍵暗号方式のパラメータ)及び公開鍵証明書に代えて、ハッシュ値算出機能22及び秘密鍵(任意のパラメータ)を備えている。
具体的には、認定機関装置20aは、図1に述べた設定機関装置20の署名機能21、秘密鍵(公開鍵暗号方式のパラメータ)及び公開鍵証明書に代えて、ハッシュ値算出機能22及び秘密鍵(任意のパラメータ)を備えている。
認定機関装置20aのハッシュ値算出機能22は、図6に示すように、開発者装置10から送信されたソフトウェアを認定する際に、ソフトウェアswに対するハッシュ演算により第1ハッシュ値h(sw)を算出する機能と、この第1ハッシュ値h(sw)及び所定の秘密鍵Ksに対するハッシュ演算により第2ハッシュ値h(h(sw),Ks)を算出する機能とを含んでいる。
また、設定機関装置20aは、ハッシュ値算出機能22により得られた第2ハッシュ値を含む認定情報を監査機関装置40に送信する機能と、第1及び第2ハッシュ値を含まない認定情報及びソフトウェアからなる認定情報付ソフトウェアを開発者装置10に送信する機能とをもっている。
ここで、認定情報付ソフトウェアが認定情報付プログラムの場合、図7に示すように、プログラムと認定情報とは同一ファイルに保存されて配布される。また、認定情報付ソフトウェアが認定情報付パラメータの場合、図8に示すように、パラメータと認定情報とが別ファイルに保存されて配布される。認定情報は、認定機関を示す情報(認定機関名など)、ハッシュ値算出に用いた秘密鍵のバージョンを示す情報(秘密鍵のシリアル番号)、などを含んでいる。なお、開発者装置10及びユーザ端末30に送信される認定情報は、ハッシュ値の改ざんを防止する観点から、第1及び第2ハッシュ値のいずれも含まない。
一方、監査機関装置40aは、図1に述べた監査機関装置40のメモリ41、監査プログラム42、検証機能43に代えて、秘密鍵、メモリ41a、監査プログラム44、ハッシュ値算出機能45及び照合機能46を備えている。
ここで、秘密鍵は、設定機関装置20aと共有した鍵である。
メモリ41aは、認定機関装置20aから受ける第2ハッシュ値を含む認定情報が記憶されるものである。
監査プログラム44は、監査機関装置40からユーザ端末30に提供されてユーザ端末30上で用いられ、ユーザ端末30のメモリ内の該当するソフトウェアを検索し、得られたソフトウェアswに対するハッシュ演算を実行し、得られた第1ハッシュ値h(sw)を監査用情報として監査機関装置40aに送信する機能をもっている。なお、この監査プログラム44は、図6に比較して示すように、認定機関装置20のハッシュ値算出機能22とは異なり、第2ハッシュ値を算出する機能は無い。
ハッシュ値算出機能45は、ユーザ端末30から取得した監査用情報に含まれる第1ハッシュ値h(sw)及び予め認定機関装置20aと共有した秘密鍵Ksの両者に対するハッシュ演算を実行する機能と、ハッシュ演算により得られた第2ハッシュ値h(h(sw),Ks)を照合機能46に送出する機能とからなる。なお、このハッシュ値算出機能45は、図6に比較して示すように、認定機関装置20のハッシュ値算出機能22とは異なり、第1ハッシュ値を算出する機能は無い。
照合機能46は、ハッシュ値算出機能45から受けた第2ハッシュ値と、メモリ41a内の第2ハッシュ値とを照合する機能と、照合結果に応じて監査結果をユーザ端末30及び認定機関装置20aに送信する機能とからなる。なお、監査結果は、両者が一致した時に、改ざん無しの旨を表す内容となり、両者が不一致の時には、改ざんを検出した旨を表す内容となる。
次に、以上のように構成されたソフトウェア改ざん検出システムの動作を図9のシーケンス図を用いて説明する。
開発者装置10は、ソフトウェア開発者の操作により、認定を受ける際に、ソフトウェアを認定機関装置20aに送信する(ST1)。
認定機関装置20aは、このソフトウェアを認定する際に、ハッシュ値算出機能22により、ソフトウェアswに対するハッシュ演算により第1ハッシュ値を算出し、更に、この第1ハッシュ値及び所定の秘密鍵に対するハッシュ演算により第2ハッシュ値を算出する。
しかる後、認定機関装置20aは、第1及び第2ハッシュ値を含まない認定情報及びソフトウェアからなる認定情報付ソフトウェアを開発者装置10に送信すると共に(ST2a)、第2ハッシュ値を含む認定情報を監査機関装置40aに送信する(ST3a)。監査機関装置40aは、この認定情報をメモリ41aに記憶しておく。
以上により、ソフトウェアの認定が完了する。
以上により、ソフトウェアの認定が完了する。
次に、開発者装置10は、ユーザ端末30からソフトウェアの配布を要求されると、この認定情報付ソフトウェアをユーザ端末30に送信する(ST4)。
ユーザ端末30は、配布された認定情報付ソフトウェアをメモリにインストールし、適宜、実行する。
次に、ユーザ端末30は、ユーザの操作により、メモリ内の認定情報付ソフトウェアの監査要求を監査機関装置40に送信する(ST5)。
監査機関装置40aは、この監査要求に基づいて、監査プログラム44をユーザ端末30に送信する(ST6a)なお、ステップST5の監査要求は必須ではなく、監査の形態は、前述した[1]〜[3]のいずれでも良い。
さてステップST6の後、ユーザ端末30は、監査機関装置40aから受けた監査プログラム44を起動させる。監査プログラム44は、起動されると、監査対象となる認定情報付ソフトウェアをユーザ端末30のメモリから読出し、このソフトウェアに対するハッシュ演算を実行し、得られた第1ハッシュ値を監査用情報として監査機関装置40aに送信する(ST7a)。
監査機関装置40aは、ハッシュ算出機能45により、監査用情報に含まれる第1ハッシュ値及び予め認定機関装置20aと共有した秘密鍵の両者に対するハッシュ演算を実行し、得られた第2ハッシュ値を照合機能46に送出する。また、監査機関装置40aは、照合機能46により、ハッシュ値算出機能45から受けた第2ハッシュ値と、メモリ41a内の第2ハッシュ値とを照合し、両者が一致した時に、改ざん無しの旨の監査結果をユーザ端末30及び認定機関装置20aに送信する(ST8〜9)。
これにより、ユーザ端末30が監査結果を表示するので、ユーザが認定情報付ソフトウェアの改ざんの有無を知ることができる。
上述したように本実施形態によれば、監査機関装置40aが、認定機関装置20aにより作成された第2ハッシュ値に基づいて、ソフトウェアの改ざんの有無を監査するので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上させることができる。
すなわち、第1の実施形態のデジタル署名に代えて、鍵付ハッシュ関数を用いる構成としても、第1の実施形態と同様の効果を得ることができる。
なお、本実施形態は、次のように変形することも可能である。例えば監査プログラム44がステップST7aにてソフトウェアを監査機関装置40aに送信し、監査機関装置40aのハッシュ値算出機能45がこのソフトウェア及び秘密鍵から第1ハッシュ値を介して第2ハッシュ値を算出し、この第2ハッシュ値を照合機能46に送出する構成としてもよい。このように変形しても、本実施形態の効果を同様に得ることができる。
(第3の実施形態)
図10は本発明の第3の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
図10は本発明の第3の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
本実施形態は、第1の実施形態の応用例であり、クライアント・サーバシステムの場合に、サーバがクライアント(ユーザ端末30)のプログラムの改ざんを検出可能なものである。
具体的には本実施形態は、ユーザ端末30、監査機関装置40及びサーバ装置50から構成されている。
ここで、ユーザ端末30は、前述した機能に加え、ユーザの操作により、サーバ装置50にアクセスする機能をもっている。
監査機関装置40は、前述した機能に加え、サーバ装置50から受けた監査要求に基づいて、前述した監査プログラム42をユーザ端末30に送信する機能と、ユーザ端末30から受信した監査用情報を前述同様に検証した際に、この検証結果を監査結果としてサーバ装置50に通知する機能とをもっている。
サーバ装置50は、アクセスしてきたユーザ端末30に任意のサービスを提供する通常のサーバ機能に加え、サービス提供の前に、ユーザ端末30のソフトウェアに対する監査要求を監査機関装置40に送信する機能と、監査機関装置40から受けた監査結果に基づいて、ユーザ端末30との接続を許可又は拒否する機能とをもっている。
次に、以上のように構成されたソフトウェア改ざん検出システムの動作を図11のシーケンス図を用いて説明する。
いま、図4のステップST1〜ST4に述べたソフトウェアの認定から配布までの処理は、完了しているものとする。ステップST5〜ST9までのソフトウェアの監査は、実行済みでも未実行でも構わない。
このとき、ユーザ端末30は、ユーザの操作により、署名付ソフトウェアが実行中であり、この署名付ソフトウェアの動作により、IPアドレス及びユーザ名などの情報と共に、アクセス要求をサーバ装置50に送信する(ST11)。
サーバ装置50は、ユーザ端末30の署名付ソフトウェアに対する監査要求をIPアドレスやユーザ名などの情報と共に、監査機関装置40に送信する(ST12)。
監査機関装置40は、この監査要求に基づいて、前述した監査プログラム42をユーザ端末30に送信し(ST13)、折り返し、ユーザ端末30から署名付ソフトウェアを受信する(ST14)。なお、ステップST13は、監査プログラム42を送信する場合に限らず、ユーザ端末30上に予めある監査プログラム42を起動する命令としても良い。
次いで、監査機関装置40は、この署名付きソフトウェアを前述同様に検証し、得られた検証結果を監査結果としてサーバ装置50に通知する(ST15)。
サーバ装置50は、この監査結果に基づいて、ユーザ端末30との接続を許可又は拒否する(ST16)。これにより、サーバ装置50は、例えばユーザ端末30の署名付ソフトウェアが改ざんされていなければ接続を許可し、改ざんされていれば接続を拒否することができる。
上述したように本実施形態によれば、第1の実施形態の効果に加え、ユーザ端末30からアクセスされたサーバ装置50が、ユーザ端末30のソフトウェアに対する監査要求を監査機関装置40に送り、監査機関装置40が、ソフトウェアの監査用情報を検証した結果をサーバ装置50に通知するので、クライアント・サーバシステムの場合に、サーバがクライアントのプログラムの改ざんを検出することができる。
また、サーバ装置50は、監査結果に基づいて接続を拒否できるので、改ざんされたソフトウェアによる不測の事態などを避けることができる。
なお、本実施形態は、図12に示すように変形しても良い。すなわち、本実施形態のクライアント・サーバシステムを第2の実施形態の鍵付ハッシュ関数を用いた構成に適用しても、本実施形態を同様に実施して同様の効果を得ることができる。
(第4の実施形態)
図13は本発明の第4の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
図13は本発明の第4の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
本実施形態は、第1の実施形態の変形例であり、監査プログラム42bがユーザ端末30上で署名付ソフトウェアを検証する構成となっている。
これに伴い、ユーザ端末30は、前述した機能に加え、署名付ソフトウェアに対応する公開鍵証明書を認定機関装置20からダウンロードする機能をもっている。
監査プログラム42bは、監査機関装置40bからユーザ端末30に提供されて用いられ、起動されると、ユーザ端末30のメモリ内の該当する署名付ソフトウェアを、署名情報に対応する公開鍵証明書に基づいて検証する機能をもっている。
次に、以上のように構成されたソフトウェア改ざん検出システムの動作を図14のシーケンス図を用いて説明する。
始めに、ステップST1〜ST5に示すように、ソフトウェアの認定から署名付ソフトウェアの配布、監査要求の送信までの処理は、前述した図4と同様に実行される。
続いて、監査機関装置40bは、この監査要求に基づいて、監査プログラム42bをユーザ端末30に送信する(ST6b)。なお、監査の形態が主に3通りあることも前述した通りである。
さてステップST6bの後、ユーザ端末30は、監査プログラム42bを起動させる。監査プログラム42bは、起動されると、監査対象となる署名付ソフトウェアをユーザ端末30のメモリから読出し、得られた署名付ソフトウェアを、署名情報に対応する公開鍵証明書に基づいて検証し、検証結果をユーザ端末30上に表示させる。これにより、ユーザが署名付ソフトウェアの改ざんの有無を知ることができる。
上述したように本実施形態によれば、ユーザ端末30が、監査機関装置40bから提供された監査プログラム42bを用い、署名情報に対応する公開鍵証明書に基づいて、該当するソフトウェアを監査するので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上させることができる。
(第5の実施形態)
図15は本発明の第5の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
図15は本発明の第5の実施形態に係るソフトウェア改ざん検出システムの構成を示す模式図である。
本実施形態は、第2の実施形態の変形例であり、監査プログラム44cがユーザ端末30上で認定情報付ソフトウェアを検証可能な構成となっている。
ここで、監査プログラム44cは、監査機関装置40cからユーザ端末30に提供されて用いられ、起動されると、ユーザ端末30のメモリ内の該当する認定情報付ソフトウェアを、認定情報に含まれる第1ハッシュ値に基づいて検証する機能をもっている。
検証する機能は、具体的には、ユーザ端末30の該当するソフトウェアから第1ハッシュ値を算出し、この第1ハッシュ値を認定情報に含まれる第1ハッシュ値と照合し、照合結果が一致の時のみ、改ざん無しの監査結果を得る。なお、照合結果が不一致の時には、改ざん有りの監査結果となる。
次に、以上のように構成されたソフトウェア改ざん検出システムの動作を図16のシーケンス図を用いて説明する。
始めに、ステップST1〜ST5に示すように、ソフトウェアの認定から認定情報付ソフトウェアの配布、監査要求の送信までの処理は、前述した図9と同様に実行される。但し、ステップST3cにおいては、前述したST3aとは異なり、第1及び第2ハッシュ値を含む認定情報が監査機関装置40cに送信される。監査機関装置40cは、この第1ハッシュ値を監査プログラム44cに照合用データとして書込んでおく。
さてステップST5の後、監査機関装置40cは、この監査要求に基づいて、監査プログラム42cをユーザ端末30に送信する(ST6c)。なお、監査の形態が主に3通りあることも前述した通りである。
さてステップST6cの後、ユーザ端末30は、監査プログラム44cを起動させる。監査プログラム44cは、起動されると、監査対象となる認定情報付ソフトウェアをユーザ端末30のメモリから読出し、このソフトウェアに対するハッシュ演算を実行し、第1ハッシュ値を得る。
続いて、ユーザ端末30は、監査プログラム44cにより、ハッシュ演算で得た第1ハッシュ値と、監査プログラム44cが有する照合用データとしての第1ハッシュ値とを照合し、照合結果に応じて監査結果を表示する。これにより、ユーザが認定情報付ソフトウェアの改ざんの有無を知ることができる。
上述したように本実施形態によれば、ユーザ端末30が、監査機関装置40cから提供された監査プログラム44cを用い、認定情報に含まれる第1ハッシュ値に基づいて、該当するソフトウェアを監査するので、コンピュータ起動時以外にもソフトウェアの改ざんを検出し、改ざん検出の正確性を向上させることができる。
また、ユーザ端末30による検証は第1ハッシュ値を用いるので、ユーザ端末30への秘密鍵の漏洩を阻止することができる。すなわち、ユーザ端末30への秘密鍵の漏洩を阻止しつつ、鍵付ハッシュ関数による監査機関装置40cでの(第2ハッシュ値による)検証と、ユーザ端末30での(第1ハッシュ値による)検証とを同時に実現することができる。
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行しても良い。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
10…開発者装置、20,20a…認定機関装置、21…署名機能、22…ハッシュ値算出機能、30…ユーザ端末、40,40a,40b,40c…監査機関装置、41,14a…メモリ、42,42b,44,44c…監査プログラム、43…検証機能、45…ハッシュ値算出機能、46…照合機能。
Claims (12)
- ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出システムであって、
前記ソフトウェアを認定し、対応する認定情報を作成する認定機関装置と、
前記認定されたソフトウェアをインストール可能なユーザ端末と、
前記ユーザ端末にインストールされたソフトウェアに関し、前記認定機関装置により作成された認定情報に基づいて、定期的又は不定期的に改ざんの有無を監査する監査機関装置と、
を備えたことを特徴とするソフトウェア改ざん検出システム。 - ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出方法であって、
予めソフトウェアを認定し、対応する認定情報を作成する工程と、
前記認定されたソフトウェアを配布する工程と、
前記配布されたソフトウェアをユーザ端末がインストールする工程と、
前記ユーザ端末にインストールされたソフトウェアに関し、前記作成された認定情報に基づいて、定期的又は不定期的に改ざんの有無を監査する工程と、
を備えたことを特徴とするソフトウェア改ざん検出方法。 - 認定機関装置が認定情報を作成したソフトウェアに関し、監査機関装置が改ざんを検出するためのソフトウェア改ざん検出プログラムであって、
前記監査機関装置のコンピュータを、
前記認定機関装置から認定情報を受けたとき、この認定情報をメモリに書込む手段、
前記ソフトウェアの監査用情報を送信させるための監査プログラムを、前記ソフトウェアをインストールしたユーザ端末に送信する手段、
前記ユーザ端末から受信した監査用情報を前記メモリ内の認定情報に基づいて検証する手段、
として機能させるためのソフトウェア改ざん検出プログラム。 - 請求項3に記載のソフトウェア改ざん検出プログラムにおいて、
前記認定情報は、前記ソフトウェアに施したデジタル署名を含む署名情報であり、
前記監査用情報は、前記ソフトウェア及び対応する署名情報であり、
前記検証する手段は、前記認定情報における署名情報から得られる公開鍵証明書に基づいて、前記監査用情報に含まれるデジタル署名を検証する手段であることを特徴とするソフトウェア改ざん検出プログラム。 - 請求項3に記載のソフトウェア改ざん検出プログラムにおいて、
前記監査用情報は、前記ソフトウェアに対するハッシュ演算により算出される第1ハッシュ値を含んでおり、
前記認定情報は、前記第1ハッシュ値及び所定の秘密鍵に対するハッシュ演算により算出される第2ハッシュ値を含んでおり、
前記検証する手段は、前記監査用情報における第1ハッシュ値と、前記認定情報の作成時に用いた所定の秘密鍵とに基づいてハッシュ演算を実行し、得られた第2ハッシュ値と前記認定情報内の第2ハッシュ値とを照合する手段であることを特徴とするソフトウェア改ざん検出プログラム。 - 請求項3乃至請求項5のいずれか1項に記載のソフトウェア改ざん検出プログラムにおいて、
前記監査装置のコンピュータを、
前記検証した結果を前記ユーザ端末に通知する手段、
として機能させるためのソフトウェア改ざん検出プログラム。 - 監査機関装置からユーザ端末に提供されて用いられ、認定機関装置により認定情報が作成されたソフトウェアの改ざんを検出するためのソフトウェア改ざん検出プログラムであって、
前記ユーザ端末のコンピュータを、
前記ユーザ端末のメモリ内の該当するソフトウェアを前記認定情報に基づいて監査する手段、
として機能させるためのソフトウェア改ざん検出プログラム。 - 請求項7に記載のソフトウェア改ざん検出プログラムにおいて、
前記認定情報は、前記ソフトウェアに施したデジタル署名を含む署名情報であり、
前記監査する手段は、前記メモリから当該ソフトウェアに対応する署名情報を検索し、得られた署名情報に含まれるデジタル署名を、前記認定情報における署名情報から得られる公開鍵証明書に基づいて検証する手段であることを特徴とするソフトウェア改ざん検出プログラム。 - 請求項7に記載のソフトウェア改ざん検出プログラムにおいて、
前記認定情報は、前記ソフトウェアに対するハッシュ演算により算出される第1ハッシュ値を含んでおり、
前記監査する手段は、前記メモリ内のソフトウェアからハッシュ演算により算出した第1ハッシュ値と、前記認定情報内の第1ハッシュ値とを照合する手段であることを特徴とするソフトウェア改ざん検出プログラム。 - 設定機関装置により認定情報が作成されたソフトウェアを用いてユーザ端末がサーバ装置にアクセスした際に、前記サーバ装置から監査要求を受けた監査機関装置が前記ソフトウェアの改ざんを検出するためのソフトウェア改ざん検出プログラムであって、
前記監査機関装置のコンピュータを、
前記サーバ装置から受けた監査要求に基づいて、前記ソフトウェアの監査用情報を送信させるための監査プログラムを前記ユーザ端末に送信する手段、
前記ユーザ端末から受信した監査用情報を前記メモリ内の認定情報に基づいて検証する手段、
前記検証した結果を前記サーバ装置に通知する手段、
として機能させるためのソフトウェア改ざん検出プログラム。 - 請求項10に記載のソフトウェア改ざん検出プログラムにおいて、
前記認定情報は、前記ソフトウェアに施したデジタル署名を含む署名情報であり、
前記監査用情報は、前記ソフトウェア及び対応する署名情報であり、
前記検証する手段は、前記認定情報における署名情報から得られる公開鍵証明書に基づいて、前記監査用情報に含まれるデジタル署名を検証する手段であることを特徴とするソフトウェア改ざん検出プログラム。 - 請求項10に記載のソフトウェア改ざん検出プログラムにおいて、
前記監査用情報は、前記ソフトウェアに対するハッシュ演算により算出される第1ハッシュ値を含んでおり、
前記認定情報は、前記第1ハッシュ値及び所定の秘密鍵に対するハッシュ演算により算出される第2ハッシュ値を含んでおり、
前記検証する手段は、前記監査用情報における第1ハッシュ値と、前記認定情報の作成時に用いた所定の秘密鍵とに基づいてハッシュ演算を実行し、得られた第2ハッシュ値と前記認定情報内の第2ハッシュ値とを照合する手段であることを特徴とするソフトウェア改ざん検出プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003316730A JP2005084989A (ja) | 2003-09-09 | 2003-09-09 | ソフトウェア改ざん検出システム、方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003316730A JP2005084989A (ja) | 2003-09-09 | 2003-09-09 | ソフトウェア改ざん検出システム、方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005084989A true JP2005084989A (ja) | 2005-03-31 |
Family
ID=34416536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003316730A Pending JP2005084989A (ja) | 2003-09-09 | 2003-09-09 | ソフトウェア改ざん検出システム、方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005084989A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007318731A (ja) * | 2006-04-26 | 2007-12-06 | Ricoh Co Ltd | 複数のモジュール構成情報を管理できる画像形成装置 |
JP2008090485A (ja) * | 2006-09-29 | 2008-04-17 | Nomura Research Institute Ltd | ジョブ管理装置、システムおよびプログラム |
JP2010532600A (ja) * | 2007-06-18 | 2010-10-07 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | ソフトウェア無線端末のセキュリティ |
WO2010134192A1 (ja) * | 2009-05-22 | 2010-11-25 | 三菱電機株式会社 | 電子機器及び鍵生成プログラム及び記録媒体及び鍵生成方法 |
US8341423B2 (en) | 2008-06-04 | 2012-12-25 | Ricoh Company, Limited | Machine, machine management apparatus, system, and method, and recording medium |
US8887288B2 (en) | 2008-02-18 | 2014-11-11 | Ricoh Company, Ltd. | Method of detecting software falsification, apparatus configured to detect software falsification, and computer-readable storage medium |
JP2017046152A (ja) * | 2015-08-26 | 2017-03-02 | 富士ゼロックス株式会社 | 情報処理システム |
-
2003
- 2003-09-09 JP JP2003316730A patent/JP2005084989A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007318731A (ja) * | 2006-04-26 | 2007-12-06 | Ricoh Co Ltd | 複数のモジュール構成情報を管理できる画像形成装置 |
JP2008090485A (ja) * | 2006-09-29 | 2008-04-17 | Nomura Research Institute Ltd | ジョブ管理装置、システムおよびプログラム |
JP4554581B2 (ja) * | 2006-09-29 | 2010-09-29 | 株式会社野村総合研究所 | ジョブ管理装置、システムおよびプログラム |
JP2010532600A (ja) * | 2007-06-18 | 2010-10-07 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | ソフトウェア無線端末のセキュリティ |
US8887288B2 (en) | 2008-02-18 | 2014-11-11 | Ricoh Company, Ltd. | Method of detecting software falsification, apparatus configured to detect software falsification, and computer-readable storage medium |
US8341423B2 (en) | 2008-06-04 | 2012-12-25 | Ricoh Company, Limited | Machine, machine management apparatus, system, and method, and recording medium |
US8824673B2 (en) | 2008-06-04 | 2014-09-02 | Ricoh Company, Limited | Machine, machine management apparatus, system, and method, and recording medium |
WO2010134192A1 (ja) * | 2009-05-22 | 2010-11-25 | 三菱電機株式会社 | 電子機器及び鍵生成プログラム及び記録媒体及び鍵生成方法 |
JPWO2010134192A1 (ja) * | 2009-05-22 | 2012-11-08 | 三菱電機株式会社 | 電子機器及び鍵生成プログラム及び記録媒体及び鍵生成方法 |
US8533492B2 (en) | 2009-05-22 | 2013-09-10 | Mitsubishi Electric Corporation | Electronic device, key generation program, recording medium, and key generation method |
JP2017046152A (ja) * | 2015-08-26 | 2017-03-02 | 富士ゼロックス株式会社 | 情報処理システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3753885B2 (ja) | 国際暗号体系のホストシステム要素 | |
JP6719079B2 (ja) | 情報機器、データ処理システム、データ処理方法およびコンピュータプログラム | |
JP4550147B2 (ja) | コンポーネントをロードするための方法、システム及び記録媒体 | |
JP5449905B2 (ja) | 情報処理装置、プログラム、および情報処理システム | |
EP1443381B1 (en) | System and method for secure software activation with volume licenses | |
US6108420A (en) | Method and system for networked installation of uniquely customized, authenticable, and traceable software application | |
US7039615B1 (en) | Retail transactions involving digital content in a digital rights management (DRM) system | |
EP1861815B1 (en) | Systems and methods for using machine attributes to deter software piracy in an enterprise environment | |
US7149722B1 (en) | Retail transactions involving distributed and super-distributed digital content in a digital rights management (DRM) system | |
KR100402071B1 (ko) | 콘텐트 소비 환경의 무결성 보증 및 검증 시스템 및 방법 | |
RU2348073C2 (ru) | Регистрация/субрегистрация сервера управления цифровыми правами (уцп) в архитектуре уцп | |
US10068064B2 (en) | Software protection using an installation product having an entitlement file | |
US20100063996A1 (en) | Information processing device, information recording device, information processing system, program update method, program, and integrated circuit | |
US20030220882A1 (en) | Method and apparatus for protecting information and privacy | |
JP4818664B2 (ja) | 機器情報送信方法、機器情報送信装置、機器情報送信プログラム | |
EP1520216A2 (en) | An apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment | |
JP2002140126A (ja) | プログラム配布システム、暗号化プログラム配布装置、プログラム不具合情報収集システム、及びプログラム配布方法 | |
CN102034058B (zh) | 应用软件安全控制方法及终端 | |
JP2005084989A (ja) | ソフトウェア改ざん検出システム、方法及びプログラム | |
JP2011165221A (ja) | 機器情報送信方法、機器情報送信装置、機器情報送信プログラム | |
JP5702458B2 (ja) | 情報処理装置、プログラム、および情報処理システム | |
WO2002010907A2 (en) | Method of revoking_authorizations for software components | |
KR20110022243A (ko) | 웹 기반의 컨텐츠 복사 방지 시스템 및 방법 |