(57)【要約】【課題】ソフトウェアプログラムを起動する際に、信頼性の高い認証処理を行うことが可能なソフトウェア起動システムを提供する。【解決手段】ソフトウェアプログラムの起動時に、ソフトウェアプログラムの認証を行うソフトウェア起動システムであって、ソフトウェアプログラムの実行ファイルに基づいた固有情報を算出する固有情報算出手段と、固有情報算出手段が算出した第１の固有情報を予め記憶する記憶手段と、ソフトウェアプログラムの起動要求が入力されると、起動要求が入力された時点でのソフトウェアプログラムの第２の固有情報を固有情報算出手段によって算出し、記憶手段に記憶された第１の固有情報と、第２の固有情報とを比較し、一致しなかった場合には、ソフトウェアプログラムを起動しないと判定する判定手段とを備えることを特徴とするソフトウェア起動システム。【選択図】図１
2009080772.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアプログラムの起動時に、当該ソフトウェアプログラムの認証を行うソフトウェア起動システムであって、
前記ソフトウェアプログラムの実行ファイルに基づいた固有情報を算出する固有情報算出手段と、
前記固有情報算出手段が算出した第１の固有情報を予め記憶する記憶手段と、
前記ソフトウェアプログラムの起動要求が入力されると、当該起動要求が入力された時点での当該ソフトウェアプログラムの第２の固有情報を前記固有情報算出手段によって算出し、前記記憶手段に記憶された第１の固有情報と、当該第２の固有情報とを比較し、一致しなかった場合には、前記ソフトウェアプログラムを起動しないと判定する判定手段と
を備えることを特徴とするソフトウェア起動システム。
【請求項２】
前記ソフトウェア起動システムは、セキュアな可搬記憶媒体を備え、当該可搬記憶媒体が前記記憶手段を備える
ことを特徴とする請求項１に記載のソフトウェア起動システム。
【請求項３】
前記固有情報算出手段が算出する前記固有情報は、前記ソフトウェアプログラムの実行ファイルを元データとするハッシュデータであること
を特徴とする請求項１または請求項２のいずれか１項に記載のソフトウェア起動システム。
【請求項４】
前記ソフトウェア起動システムは、情報を暗号化する暗号鍵と、当該暗号鍵によって暗号化された情報を復号する復号鍵とを備え、
前記記憶手段が記憶する前記第１の固有情報は、前記暗号鍵によって暗号化された第１の固有情報であり、また、当該記憶手段は前記復号鍵を記憶し、
前記暗号化された第１の固有情報を、前記復号鍵によって復号する制御手段をさらに備え、
前記判定手段は、復号された前記第１の固有情報を、前記第２の固有情報と比較した結果に基づいて、前記ソフトウェアプログラムを起動するか否かを判定する
ことを特徴とする請求項２または請求項３に記載のソフトウェア起動システム。
【請求項５】
ソフトウェアプログラムの起動時に、当該ソフトウェアプログラムの認証を行うソフトウェア起動方法であって、
固有情報算出手段が、前記ソフトウェアプログラムの実行ファイルに基づいた固有情報を算出するステップと、
記憶手段が、前記固有情報算出手段が算出した第１の固有情報を予め記憶するステップと、
判定手段が、前記ソフトウェアプログラムの起動要求が入力されると、当該起動要求が入力された時点での当該ソフトウェアプログラムの第２の固有情報を前記固有情報算出手段によって算出し、前記記憶手段に記憶された第１の固有情報と、当該第２の固有情報とを比較し、一致しなかった場合には、前記ソフトウェアプログラムを起動しないと判定するステップと
を備えることを特徴とするソフトウェア起動方法。
【請求項６】
ソフトウェアプログラムの起動時に、当該ソフトウェアプログラムの認証を行うソフトウェア起動装置としてのコンピュータに、
固有情報算出手段が、前記ソフトウェアプログラムの実行ファイルに基づいた固有情報を算出するステップと、
記憶手段が、前記固有情報算出手段が算出した第１の固有情報を予め記憶するステップと、
判定手段が、前記ソフトウェアプログラムの起動要求が入力されると、当該起動要求が入力された時点での当該ソフトウェアプログラムの第２の固有情報を前記固有情報算出手段によって算出し、前記記憶手段に記憶された第１の固有情報と、当該第２の固有情報とを比較し、一致しなかった場合には、前記ソフトウェアプログラムを起動しないと判定するステップと
を実行させるソフトウェア起動プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアプログラムの起動時にソフトウェアプログラムの認証を行うソフトウェア起動方法、及びソフトウェア起動プログラムに関する。
【背景技術】
【０００２】
従来、利用されるソフトウェアプログラムが正当なライセンスに基づくものであるか、また正当なライセンスユーザによって利用されているか否かの認証が行われている。このような認証は、例えば、ソフトウェアプログラムをＰＣ（Personal Computer）などの情報端末にインストールする際に、インストールキーやプロダクトキーと呼ばれる製品ごとの固有の情報の入力を要求し、入力される固有の情報が正当なものであるか否かを判定して、正当でなければインストールを行わないように制御される。また、インストール後にも、ソフトウェア起動時や定期的に、インターネットなどのネットワークを介してプロダクトキーやユーザ情報などによる認証を行う方法がある。例えば、特許文献１から５には、利用者認証やライセンス認証などによる様々な認証、情報保護情報が提案されている。
【特許文献１】特開平８−１３７６８６号公報
【特許文献２】特開平１０−４９３６１号公報
【特許文献３】特開２００１−２３６３１５号公報
【特許文献４】特表２００２−５１７８５３号公報
【特許文献５】特開２００４−１１０２３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述のように、ライセンス認証はインストール時に行われるのが一般的であるため、一度インストールに成功すると、以降はそのソフトウェアは自由に起動されてしまう。すなわち、このようなインストール時にライセンスキーなどによって行う認証によれば、その製品が正当な出所、販路を経由した製品であることを確認することが可能であるが、例えば、そのソフトウェアプログラムが正常にインストールされた後に改ざんされているような場合に、改ざんされたソフトウェアプログラムの利用を防止できるものではない。
【０００４】
また、上述のような、インストール後にも、ソフトウェア起動時や定期的に、ネットワークを介して認証を行う方法は、ソフトウェアプログラムがインストールされた端末がインターネットに接続されていなければ行うことができない。すなわち、ノートＰＣ、ＰＤＡ（Personal Digital Assistant）などのモバイル端末などにソフトウェアがインストールされている場合、ネットワークへの接続環境がない場所ではそのソフトウェアを利用できない。
【０００５】
また、このようなプロダクトキーによる認証は、上述のような改ざんを検知するものではないし、プロダクトキー自体が情報として流通してしまうと、複数の情報端末にインストールされたソフトウェアプログラムが、正当な権限のない複数のユーザに、同一のプロダクトキーを用いて利用されることが起こり得る。
【０００６】
本発明は、このような状況に鑑みてなされたもので、ソフトウェアプログラムを起動する際に、信頼性の高い認証処理を行うことが可能なソフトウェア起動システムを提供する。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、本発明は、ソフトウェアプログラムの起動時に、ソフトウェアプログラムの認証を行うソフトウェア起動システムであって、ソフトウェアプログラムの実行ファイルに基づいた固有情報を算出する固有情報算出手段と、固有情報算出手段が算出した第１の固有情報を予め記憶する記憶手段と、ソフトウェアプログラムの起動要求が入力されると、起動要求が入力された時点でのソフトウェアプログラムの第２の固有情報を固有情報算出手段によって算出し、記憶手段に記憶された第１の固有情報と、第２の固有情報とを比較し、一致しなかった場合には、ソフトウェアプログラムを起動しないと判定する判定手段とを備えることを特徴とするソフトウェア起動システムである。
【０００８】
本発明は、上述のソフトウェア起動システムが、セキュアな可搬記憶媒体を備え、可搬記憶媒体が記憶手段を備えることを特徴とする。
【０００９】
本発明は、上述の固有情報算出手段が算出する固有情報は、ソフトウェアプログラムの実行ファイルを元データとするハッシュデータであることを特徴とする。
【００１０】
本発明は、上述のソフトウェア起動システムが、情報を暗号化する暗号鍵と、暗号鍵によって暗号化された情報を復号する復号鍵とを備え、記憶手段が記憶する第１の固有情報は、暗号鍵によって暗号化された第１の固有情報であり、また、記憶手段は復号鍵を記憶し、暗号化された第１の固有情報を、復号鍵によって復号する制御手段をさらに備え、判定手段は、復号された第１の固有情報を、第２の固有情報と比較した結果に基づいて、ソフトウェアプログラムを起動するか否かを判定することを特徴とする。
【００１１】
本発明は、ソフトウェアプログラムの起動時に、ソフトウェアプログラムの認証を行うソフトウェア起動方法であって、固有情報算出手段が、ソフトウェアプログラムの実行ファイルに基づいた固有情報を算出するステップと、記憶手段が、固有情報算出手段が算出した第１の固有情報を予め記憶するステップと、判定手段が、ソフトウェアプログラムの起動要求が入力されると、起動要求が入力された時点でのソフトウェアプログラムの第２の固有情報を固有情報算出手段によって算出し、記憶手段に記憶された第１の固有情報と、第２の固有情報とを比較し、一致しなかった場合には、ソフトウェアプログラムを起動しないと判定するステップとを備えることを特徴とするソフトウェア起動方法である。
【００１２】
本発明は、ソフトウェアプログラムの起動時に、ソフトウェアプログラムの認証を行うソフトウェア起動装置としてのコンピュータに、固有情報算出手段が、ソフトウェアプログラムの実行ファイルに基づいた固有情報を算出するステップと、記憶手段が、固有情報算出手段が算出した第１の固有情報を予め記憶するステップと、判定手段が、ソフトウェアプログラムの起動要求が入力されると、起動要求が入力された時点でのソフトウェアプログラムの第２の固有情報を固有情報算出手段によって算出し、記憶手段に記憶された第１の固有情報と、第２の固有情報とを比較し、一致しなかった場合には、ソフトウェアプログラムを起動しないと判定するステップとを実行させるソフトウェア起動プログラムである。
【発明の効果】
【００１３】
以上説明したように、本発明によれば、ソフトウェアプログラムの固有な情報である第１の固有情報を予め記憶しておき、ソフトウェアプログラムの起動時には、そのソフトウェアプログラムから固有な情報である第２の固有情報を読み出して、第１の固有情報と第２の固有情報とが一致しなければソフトウェアを起動しないようにしたので、第１の固有情報を予め記憶した時点と、起動時点とで、ソフトウェアプログラムが改ざんされているか否かを判定することができる。
【００１４】
また、本発明によれば、第１の固有情報が可搬記憶媒体に記憶され、この可搬媒体を用いて判定処理を行うようにしたので、ユーザは、その可搬記憶媒体を所持していれば第１の固有情報をソフトウェア起動システムに読み込ませることができ、これにより、ネットワークへの接続環境のない場所でも、ソフトウェアが改ざんされているか否かの判定処理を行うことができる。
【００１５】
また、本発明によれば、ソフトウェアプログラムに固有な情報として、そのソフトウェアプログラムの実行ファイルを元データとするハッシュデータであることとしたので、ソフトウェアプログラムの実行ファイル自体の改ざんを検知することができ、かつ、ハッシュデータであることにより、実行ファイル全体よりも情報量を減らした固有の情報を得ることができる。
【００１６】
また、本発明によれば、第１の固有情報を暗号鍵によって暗号化して記憶手段に記憶させておき、ソフトウェア起動の際にはその暗号鍵に対応する復号鍵を用いて復号してから、第１の固有情報と第２の固有情報とが一致するか否かの判定処理を行うようにしたので、記憶手段に記憶された第１の固有情報が情報流出した場合でも、第１の固有情報は暗号化されており、復号鍵がなければ復号できないため、可搬記憶媒体を所持するユーザのみがソフトウェアプログラムを起動させることができ、信頼性の高い認証処理を行うことができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の一実施形態について、図面を参照して説明する。
＜第１の実施形態＞
図１は、本発明の第１の実施形態によるソフトウェア起動システムの構成を示すブロック図である。
本実施形態によるソフトウェア起動システムは、起動対象であるソフトウェアプログラム（以下、起動対象ソフトウェアプログラム）の固有情報を記憶するセキュアな可搬記憶媒体としてのＩＣカード１００と、起動対象ソフトウェアプログラムを記憶する情報端末２００とを備えている。
【００１８】
ＩＣカード１００は、情報の記憶と、外部からその情報の読み書きとが可能なセキュアな可搬記憶媒体であり、記憶部１１０を備えている。ここで、セキュアな可搬記憶媒体とは、外部からの不正な読み書きを防護する耐タンパ性を備えた可搬記憶媒体である。耐タンパ性は、例えば、可搬記憶媒体に組み込まれる情報を読み書きするソフトウェアを、逆アセンブラなどで簡単に解析できないようにする難読化技術などの論理的な方法により確保しても良いし、ＬＳＩ（集積回路）を解析するために保護層をはがすと、内部の回路まで破壊されるようにする物理的な方法により確保しても良いし、その双方でも良い。
【００１９】
記憶部１１０には、起動対象ソフトウェアプログラムの固有情報（以下、第１の固有情報という）が予め記憶される。ここで、起動対象ソフトウェアプログラムの固有情報とは、そのソフトウェアプログラムを一意に特定することが可能な情報である。例えば、本実施形態では、起動対象ソフトウェアプログラムの実行ファイルから算出したハッシュデータである。
【００２０】
また、本実施形態においては、ＩＣカード１００は、それを所持するユーザが予め定められており、対応するユーザを、ＰＩＮや生体認証などによって認証する機能を備えていることとする。また、本実施形態においては、一枚のＩＣカード１００を例として説明するが、複数のユーザが、それぞれに異なる媒体ＩＤ（識別情報）を備えるＩＣカード１００を所持するようにしても良い。
【００２１】
情報端末２００は、起動対象ソフトウェアプログラムがインストールされたコンピュータ機器であり、ＩＣカードリーダライタ２１０と、判定部２２０と、固有情報算出手段２３０と、ソフトウェアプログラム２４０と、ソフトウェアプログラム制御部２５０とを備える。本実施形態では、情報端末２００として、いわゆるＰＣを想定して説明する。
【００２２】
ソフトウェアプログラム制御部２５０は、インストールＣＤなどの外部媒体から読み出したソフトウェアプログラムを情報端末２００へインストールしたり、インストールされたソフトウェアプログラム２４０を起動させたりする制御を行う。
ＩＣカードリーダライタ２１０は、ＩＣカード１００と通信を行って、ＩＣカード１００に記憶された情報の読み書きを行う。
【００２３】
ソフトウェアプログラム２４０は、情報端末２００にインストールされるソフトウェアであり、いわゆるアプリケーションソフトでも良いし、オペレーションシステムを補助する各種ユーティリティソフトウェア、各種ミドルウェア、デバイスドライバやオペレーションシステム自体でも良い。
【００２４】
固有情報算出手段２３０は、ソフトウェアプログラム２４０の固有の情報を算出する。例えば、固有情報算出手段２３０は、ソフトウェアプログラム２４０の実行ファイルを元のデータとして、ハッシュ関数によるハッシュデータを生成する。ここで、ハッシュ関数とは、あるデータを元のデータとして剰余演算を繰り返すことによって、特定の値域内（例えば、１６０ｂｉｔ）でできるだけ値が分散するような数値データ（ハッシュデータ）を生成するアルゴリズムである。このように、固有情報算出手段２３０は、ソフトウェアプログラム２４０の固有の情報（以下、第２の固有情報という）を算出する。
【００２５】
判定部２２０は、第１の固有情報と第２の固有情報との入力を受付けて比較し、判定結果を出力する。本実施形態では、判定部２２０は、第１の固有情報と第２の固有情報とが完全に一致すれば、一致を示す判定結果を出力し、一致しなければ、不一致を示す判定結果を出力する。
【００２６】
次に、本発明によるソフトウェア起動システムが、情報端末にインストールされたソフトウェアプログラムを起動する動作例を説明する。
図２は、情報端末２００が、自端末にインストールされるソフトウェアプログラムの固有情報を予めＩＣカード１００に記憶させる動作例を示すフローチャートである。
【００２７】
情報端末２００のソフトウェアプログラム制御部２５０は、固有情報の登録処理を開始する。まず、情報端末２００のソフトウェアプログラム制御部２５０が、ＩＣカード１００の認証を行う（ステップＳ１）。ＩＣカード１００の認証とは、例えば、ＩＣカード１００が正当なユーザによって利用されるＩＣカード１００であるか否かを判定する認証処理であり、例えば、ＰＩＮ（Personal Identification Number）などによる認証を行う。ここで、認証が失敗すれば、情報端末２００は、固有情報の登録処理を異常終了する（ステップＳ２−ＮＧ）。一方、認証が成功すれば（ステップＳ２−ＯＫ）、固有情報算出手段２３０は、ソフトウェアプログラム２４０の固有情報を算出する（ステップＳ３）。
【００２８】
そして、ＩＣカードリーダライタ２１０は、ＩＣカード１００の記憶部１１０に、ステップＳ３で固有情報算出手段２３０が算出したソフトウェアプログラム２４０の第１の固有情報を書き込んで記憶させる（ステップＳ４）。このように、ソフトウェア起動システムは、ソフトウェアプログラムの第１の固有情報を予めＩＣカード１００に記憶させる。
【００２９】
図３は、情報端末２００が、自端末にインストールされたソフトウェアであるソフトウェアプログラム２４０を起動させるソフトウェア起動処理の動作例を示すフローチャートである。
まず、ソフトウェアプログラム制御部２５０は、ＩＣカードリーダライタ２１０を介してＩＣカード１００の認証を行う（ステップＳ１１）。ここで、認証が失敗すれば、情報端末２００は、ソフトウェアの起動処理を異常終了する（ステップＳ１２−ＮＧ）。一方、認証が成功すれば（ステップＳ１２−ＯＫ）、固有情報算出手段２３０は、ソフトウェアプログラム２４０の第２の固有情報を算出する（ステップＳ１３）。
【００３０】
そして、ソフトウェアプログラム制御部２５０は、ＩＣカードリーダライタ２１０を介して、ＩＣカード１００の記憶部１１０に記憶された第１の固有情報を読み出す（ステップＳ１４）。そして、判定部２２０は、ステップＳ１３で固有情報算出手段２３０が算出した第２の固有情報と、ステップＳ１４でＩＣカードリーダライタ２１０がＩＣカード１００から読み出した第１の固有情報とを比較する（ステップＳ１５）。
【００３１】
判定部２２０が、ステップＳ１５で第１の固有情報と第２の固有情報とが一致すると判定すれば、ソフトウェアプログラム制御部２５０は、ソフトウェアプログラム２４０を起動させる（ステップＳ１６−ＯＫ）。一方、判定部２２０が、ステップＳ１５で第１の固有情報と第２の固有情報とが一致しないと判定すれば、ソフトウェアプログラム制御部２５０は、ソフトウェアプログラム２４０の起動処理を異常終了し、ソフトウェアプログラム２４０を起動させない（ステップＳ１６−ＮＧ）。
【００３２】
このように、情報端末２００にインストールされたソフトウェアプログラム２４０の固有情報を予め算出し、ＩＣカード１００の記憶部１１０に第１の固有情報として記憶させておき、そのソフトウェアプログラム２４０の起動時に、その時点でのソフトウェアプログラム２４０の固有情報である第２の固有情報と比較することで、その間にソフトウェアプログラム２４０に改ざんが行われたか否かを判定することができ、改ざんされたソフトウェアプログラムの利用を防止することができる。
【００３３】
なお、本実施形態では、情報の記憶と、外部からその読み書きとが可能な可搬媒体としてＩＣカードを用いることとしたが、ＩＣカードは接触型でも非接触型でも良い。また、このような起動対象ソフトウェアプログラムの固有情報を記憶する記憶部を備える可搬媒体は、ＩＣチップを備えたメモリカードや、ＵＳＢ（Universal Serial Bus）媒体などでも良い。
【００３４】
また、本実施形態では、起動対象ソフトウェアプログラムがインストールされたコンピュータ機器である情報端末として、ＰＣを想定して説明したが、情報端末は、予めインストールされたソフトウェアプログラムを実行可能な情報端末であれば良く、サーバコンピュータ、ＰＤＡ、携帯電話などの情報機器でも良い。
【００３５】
また、本実施形態において、固有情報算出手段２３０は、ソフトウェアプログラム２４０の実行ファイルを元データとしてハッシュデータを生成することとしたが、他のソフトウェアと異なったそのソフトウェアプログラムに固有の値であって、容易に識別できない値（例えば、数十バイト以上のデータ）であれば、ハッシュ関数の他、独自のアルゴリズムによって生成された値でも良い。例えば、認証データとして用いるソフトウェアプログラムの固有情報は、ソフトウェアプログラムのプロダクトキーや、ソフトウェアバージョン、ユーザが所有するＩＣカードの媒体固有ＩＤなどを用いて暗号化した情報としても良い。このようにすれば、これらの情報により限定されたソフトウェア起動制御を行うことができる。
【００３６】
また、ソフトウェアプログラムの実行ファイルを格納するのに充分な記憶容量を備える可搬記憶媒体にソフトウェアプログラムを記憶させ、ユーザがこれを携帯することで、その可搬記憶媒体を所持するユーザのみがそのソフトウェアプログラムを利用できるようにしても良い。
【００３７】
また、ＩＣカード１００に第１の固有情報を記憶させるステップＳ１からステップＳ４までの処理は、ソフトウェアの管理者が予め行って、そのソフトウェアとそのソフトウェアに対応する第１の固有情報が記憶されたＩＣカード１００とを、正当なユーザに配布するようにしても良いし、各ユーザ側で、ＩＣカード１００に第１の固有情報を書き込むための専用ソフトによって行うようにしても良い。このようにすれば、そのソフトウェアのバージョンや、インターネットダウンロード型のソフトウェアにも本発明を適用することができる。
【００３８】
＜第２の実施形態＞
第１の実施形態に、さらに鍵の技術を導入することによって、ユーザの正当性を判定したり、不正コピーされたソフトウェアプログラムの利用を防いだりすることが可能なソフトウェア起動システムを提供することができる。
図４は、本発明の第２の実施形態によるソフトウェア起動システムの構成を示すブロック図である。本実施形態によるソフトウェア起動システムは、第１の実施形態と同様の構成をしており、第１の実施形態と同様の構成・動作についてはその説明を省略する。
【００３９】
第２の実施形態によるソフトウェア起動システムは、ＩＣカード１０１と、情報端末２０１とを備えている。
ＩＣカード１０１の記憶部１１１には、第１の実施形態と同様の情報に加えて、暗号化技術における復号鍵を記憶する。この復号鍵は、例えば、公開鍵暗号方式による秘密鍵としての復号鍵であり、対となる公開鍵としての暗号鍵によって暗号化された情報は、この復号鍵によってのみ正常に復号できる。
【００４０】
情報端末２０１は、ＩＣカードリーダライタ２１０と、判定部２２１と、固有情報算出手段２３０と、ソフトウェアプログラム２４０と、ソフトウェアプログラム制御部２５１と、暗号処理部２６０とを備えている。
ソフトウェアプログラム制御部２５１は、暗号処理部２６０に固有情報の入出力を行う。暗号処理部２６０は、予め記憶される暗号鍵と、ＩＣカード１０１から読み出す復号鍵とを用いて、固有情報の暗号化と復号化とを行う。
【００４１】
図５は、情報端末２０１が、自端末にインストールされるソフトウェアプログラムの固有情報を予めＩＣカード１０１に記憶させる動作例を示すフローチャートである。
情報端末２０１のソフトウェアプログラム制御部２５１は、固有情報の登録処理を開始する。まず、情報端末２０１のソフトウェアプログラム制御部２５１が、第１の実施形態と同様に、ＩＣカード１０１の認証を行う（ステップＳ２１）。ここで、認証が成功すれば（ステップＳ２２−ＯＫ）、固有情報算出手段２３０は、ソフトウェアプログラム２４０の固有情報を算出する（ステップＳ２３）。
【００４２】
次に、ソフトウェアプログラム制御部２５０は、ステップＳ２３で固有情報算出手段２３０が算出したソフトウェアプログラム２４０の固有情報を、暗号処理部２６０に入力する。暗号処理部２６０は、入力された固有情報を、ＩＣカード１０１に記憶された復号鍵に対応する暗号鍵で暗号化し（ステップＳ２３−１）、ＩＣカードリーダライタ２１０を介してＩＣカード１０１の記憶部１１１に暗号化した固有情報を第１の固有情報として記憶させる（ステップＳ２４）。
【００４３】
図６は、情報端末２０１が、自端末にインストールされたソフトウェアであるソフトウェアプログラム２４０を起動させるソフトウェア起動処理の動作例を示すフローチャートである。
まず、ソフトウェアプログラム制御部２５１は、ＩＣカードリーダライタ２１０を介してＩＣカード１０１の認証を行う（ステップＳ３１）。認証が成功すれば（ステップＳ３２−ＯＫ）、固有情報算出手段２３０は、ソフトウェアプログラム２４０の第２の固有情報を算出する（ステップＳ３３）。
【００４４】
そして、ソフトウェアプログラム制御部２５１は、ＩＣカードリーダライタ２１０を介して、ＩＣカード１０１の記憶部１１１に記憶された暗号化された第１の固有情報と復号鍵とを読み出す（ステップＳ３４）。そして、読み出された復号鍵を用いて、暗号処理部２６０が、暗号化された第１の固有鍵を復号する（ステップＳ３４−１）。そして、判定部２２０は、ステップＳ１３で固有情報算出手段２３０が算出した第２の固有情報と、ステップＳ３４−１で復号された第２の固有情報とを比較する（ステップＳ３５）。
【００４５】
判定部２２１が、ステップＳ３５で第１の固有情報と第２の固有情報とが一致すると判定すれば、ソフトウェアプログラム制御部２５１は、ソフトウェアプログラム２４０を起動させる（ステップＳ３６−ＯＫ）。一方、判定部２２１が、ステップＳ３５で第１の固有情報と第２の固有情報とが一致しないと判定すれば、ソフトウェアプログラム制御部２５１は、ソフトウェアプログラム２４０の起動処理を異常終了し、ソフトウェアプログラム２４０を起動させない（ステップＳ３６−ＮＧ）。
【００４６】
このように、本実施形態によれば、予めＩＣカード１０１に記憶される第１の固有情報は、ＩＣカード１０１に記憶された復号鍵に対応する暗号鍵によって暗号化されているため、ＩＣカード１０１に記憶された復号鍵以外の復号鍵を用いては第１の固有情報を復号できない。これによれば、不正コピーされたソフトウェアプログラムの利用を防ぐことができる。例えば、特定のユーザに、ソフトウェアプログラム、及びそのユーザ固有の復号鍵並びにその復号鍵に対応する暗号鍵で暗号化された固有情報を記憶したＩＣカードが配布された場合、そのソフトウェアプログラムを他のユーザの情報端末に不正コピーをして物理的にインストールしたとしても、その他のユーザは、固有情報が記憶されたＩＣカードを所有していないために、そのソフトウェアプログラムを利用することができない。
【００４７】
例えば、ユーザＡとユーザＢとを想定し、それぞれは情報端末Ａ、情報端末Ｂを所有し、さらにユーザＡとユーザＢとは、それぞれＩＣカードＡ、ＩＣカードＢを所有し、ＩＣカードＡとＩＣカードＢとは、それぞれ復号鍵Ａ、復号鍵Ｂを記憶している場合を想定して説明する。
【００４８】
例えば、まず、情報端末Ａは、暗号鍵Ａを用いてソフトウェアＡの固有情報を暗号化し、ＩＣカードＡに記憶させる。ソフトウェアＡが、不正にコピーされて情報端末Ｂにインストールされたとする。しかしながら、ＩＣカードＢには、ソフトウェアＡに対応する固有情報は記憶されていないため、ＩＣカードＢによるソフトウェアＡの起動は失敗し、正常にソフトウェア起動を行うことができない。このように、本実施形態によれば、ソフトウェアの不正コピーを防止し、正当なユーザのみがソフトウェアを利用可能とすることができる。
【００４９】
なお、本実施形態では、ＩＣカード１０１の記憶部１１１が復号鍵を記憶し、情報端末２０１がこの復号鍵と暗号化された第１の固有情報とを読み出し、読み出した復号鍵を用いて判定部２２１が暗号化された第１の固有情報を復号させることとしたが、ＩＣカード１０１に判定部２２１と同様の判定処理を行う機能部を備えることとし、固有情報算出手段２３０がソフトウェアプログラム２４０から算出する第２の固有情報を、ＩＣカードリーダライタ２１０がＩＣカード１０１に送信し、ＩＣカード１０１が、記憶部１１１に記憶された復号鍵を用いて復号した第１の固有情報と、ＩＣカードリーダライタ２１０から受信する第２の固有情報とを比較して一致するか否かの判定を行うようにしても良い。
このようにすれば、ＩＣカード１０１から復号鍵を外部に出力することなく、復号処理を行うことができる。
【００５０】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりソフトウェア起動を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００５１】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【図面の簡単な説明】
【００５２】
【図１】本発明の第１の実施形態による端末構成を示すブロック図である。
【図２】本発明の第１の実施形態による固有情報登録処理を示すフローチャートである。
【図３】本発明の第１の実施形態によるソフトウェア起動処理を示すフローチャートである。
【図４】本発明の第２の実施形態による端末構成を示すブロック図である。
【図５】本発明の第２の実施形態による固有情報登録処理を示すフローチャートである。
【図６】本発明の第２の実施形態によるソフトウェア起動処理を示すフローチャートである。
【符号の説明】
【００５３】
１００  ＩＣカード
１０１  ＩＣカード
１１０  記憶部
１１１  記憶部
２００  情報端末
２０１  情報端末
２１０  ＩＣカードリーダライタ
２２０  判定部
２２１  判定部
２３０  固有情報算出手段
２４０  ソフトウェアプログラム
２５０  ソフトウェアプログラム制御部
２５１  ソフトウェアプログラム制御部
２６０  暗号処理部
【図１】
2009080772.tif 000003
【図２】
2009080772.tif 000004
【図３】
2009080772.tif 000005
【図４】
2009080772.tif 000006
【図５】
2009080772.tif 000007
【図６】
2009080772.tif 000008