(57)【特許請求の範囲】
【請求項１】
電子機器であって、
ユーザを識別する情報を保持する認証装置との間の通信を行う通信部と、
実行可能なプログラムと、前記プログラムのインストールの際に通信していた認証装置である対象認証装置との組み合わせを記憶する記憶部と、
前記プログラムを実行する実行処理部と、
前記対象認証装置から受信した情報から、前記組み合わせを識別する識別情報と前記対象認証装置が前記電子機器との間の認証処理に使用するために生成した公開鍵とを抽出する抽出部と、
前記プログラムの実行が要求されると、前記通信部を介して前記識別情報を送信することにより、前記対象認証装置に認証処理を要求する要求部であって、
前記識別情報の送信に使用する第１のメッセージの応答として受信した第２のメッセージに含まれている第１のデータを、前記公開鍵で暗号化することにより第２のデータを求め、
前記第２のデータを含む第３のメッセージを、前記通信部を介して送信し、
前記対象認証装置が前記第２のデータを前記公開鍵の対となる秘密鍵で復号すると前記第１のデータに一致すると判定したことにより、前記認証処理に成功したことを示す第４のメッセージを取得すると、前記実行処理部に前記プログラムの実行を要求する
該要求部と、
前記プログラムの実行が要求されると、前記対象認証装置との間の通信が確立していない場合、前記プログラムの実行を停止するための制御を行う制御部であって、前記認証処理に失敗すると、前記対象認証装置との間の通信が確立していないと判定し、前記プログラムの実行を停止する該制御部
を備えることを特徴とする電子機器。
【請求項２】
前記電子機器に前記プログラムをインストールする前に、前記プログラムと前記プログラムの配信元による署名情報とを、前記配信元から受信する受信部と、
前記プログラムと前記署名情報を前記対象認証装置に転送した結果、前記対象認証装置から、前記署名情報を用いた検証に成功したことが通知されると、前記プログラムをインストールするインストール処理部
をさらに備えることを特徴とする請求項１に記載の電子機器。
【請求項３】
認証装置であって、
電子機器へのインストールの対象であるプログラムを前記電子機器から取得した場合に、前記電子機器との間の認証処理に使用する暗号化鍵である一対の公開鍵及び秘密鍵と、前記プログラムと前記電子機器と前記認証装置との組合せを識別する識別情報とを生成し、更に、前記プログラムと前記識別情報と前記公開鍵とを含む前記プログラムのインストーラを生成する生成部と、
前記プログラムのインストールを行う前記電子機器からのアクセスに応じて、前記インストーラを前記電子機器へ送付する通信部と、
インストールされた前記プログラムの実行を要求された前記電子機器と前記認証装置との間の認証処理を行う認証処理部であって、
前記認証処理を要求していることを示している第１のメッセージであって前記識別情報を含む該第１のメッセージを前記電子機器から取得した場合に、第１のデータを含む第２のメッセージを該第１のメッセージへの応答として前記電子機器へ送信し、
前記第２のメッセージから前記第１のデータを取り出して前記インストーラに含まれている前記公開鍵で暗号化することにより得られる第２のデータを含む第３のメッセージを、前記第２のメッセージを受信した前記電子機器から受信し、
前記第３のメッセージから取り出した前記第２のデータを、生成した前記秘密鍵で復号することにより得られるデータが前記第１のデータに一致するか否かを判定して、一致すると判定した場合に前記認証処理に成功したことを示す第４のメッセージを前記電子機器へ送信する
該認証処理部
を備えることを特徴とする認証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器と認証装置を含む情報処理システムに関する。
【背景技術】
【０００２】
電子機器での認証処理を簡略化するために、電子機器のユーザがＩＣ（integrated circuit）カードやＵＳＢ（Universal Serial Bus）キーなどの認証用のデバイスを用いることが多い。ＩＣカードやＵＳＢキーなどの認証用の装置には、ユーザのＩＤ（identifier）やパスワードなどの情報が登録されており、電子機器は、ユーザが使用する認証装置から取得した情報を記憶する。電子機器は、適宜、記憶しているユーザのＩＤなどを用いて処理を行うことができる。
【０００３】
さらに、近年は、電子機器を複数のユーザが使用するケースも多い。複数のユーザが使用する電子機器においても、適宜、ユーザごとの環境を提供するために、ユーザの認証処理が行われる。
【０００４】
関連する技術として、端末が利用しようとする秘密情報と端末の更新プログラムを格納している検証装置が、端末から得た情報を用いて端末の正当性を判定するシステムが提案されている。このシステムでは、検証装置は、正当な端末であると判定した端末に、秘密情報を出力する。一方、端末が正当でないと判定すると、検証装置は、更新プログラムを端末に出力することにより、秘密情報を利用しようとする端末に対して、プログラムのアップデートを強制する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００８／００４５２４号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
電子機器を複数のユーザが共同で使用する場合、あるユーザが電子機器の認証に使用した情報や、電子機器に入力した情報などが、悪意のある別のユーザに悪用される恐れがある。このため、ユーザごとにプログラムの実行の環境を異なる環境にした上で、他のユーザによる実行処理を防止することが望ましい。電子機器に対する正規のユーザが他の正規ユーザの実行環境にアクセスすることを防ぐことは、関連する技術として述べた技術を用いても困難である。
【０００７】
本発明は、複数のユーザによって使用される電子機器でのセキュリティの改善を目的とする。
【課題を解決するための手段】
【０００８】
ある１つの実施形態にかかる電子機器は、通信部、記憶部、実行処理部、抽出部、要求部、制御部を備える。通信部は、ユーザを識別する情報を保持する認証装置との間の通信を行う。記憶部は、実行可能なプログラムと、前記プログラムのインストールの際に通信していた認証装置である対象認証装置との組み合わせを記憶する。実行処理部は、前記プログラムを実行する。抽出部は、前記対象認証装置から受信した情報から、前記組み合わせを識別する識別情報と前記対象認証装置が前記電子機器との間の認証処理に使用するために生成した公開鍵とを抽出する。要求部は、前記プログラムの実行が要求されると、前記通信部を介して前記識別情報を送信することにより、前記対象認証装置に認証処理を要求する。この要求部は、前記識別情報の送信に使用する第１のメッセージの応答として受信した第２のメッセージに含まれている第１のデータを、前記公開鍵で暗号化することにより第２のデータを求め、前記第２のデータを含む第３のメッセージを、前記通信部を介して送信し、前記対象認証装置が前記第２のデータを前記公開鍵の対となる秘密鍵で復号すると前記第１のデータに一致すると判定したことにより、前記認証処理に成功したことを示す第４のメッセージを取得すると、前記実行処理部に前記プログラムの実行を要求する。制御部は、前記プログラムの実行が要求されると、前記対象認証装置との間の通信が確立していない場合、前記プログラムの実行を停止するための制御を行う。この制御部は、前記認証処理に失敗すると、前記対象認証装置との間の通信が確立していないと判定し、前記プログラムの実行を停止する。
【発明の効果】
【０００９】
複数のユーザによって使用される電子機器でのセキュリティを改善できる。
【図面の簡単な説明】
【００１０】
【図１】情報処理システムで行われる処理の例を説明する図である。
【図２】電子機器の構成の例を説明する図である。
【図３】電子機器のハードウェア構成の例を説明する図である。
【図４】認証装置の構成の例を説明する図である。
【図５】認証装置が保持する情報の例を説明する図である。
【図６】認証装置のハードウェア構成の例を説明する図である。
【図７】署名済みプログラムの生成方法の例を説明する図である。
【図８】プログラムのインストールの際に行われる処理の例を説明するシーケンス図である。
【図９】識別情報管理テーブルの例を示す図である。
【図１０】プログラムのインストールの際に認証装置が行う処理の例を説明するフローチャートである。
【図１１】プログラムのインストールの際に電子機器が行う処理の例を説明するフローチャートである。
【図１２】プログラムを実行する際に行われる処理の例を説明するシーケンス図である。
【図１３】プログラムの実行中に行われるヘルスチェックの例を説明するシーケンス図である。
【図１４Ａ】プログラムの実行の際に認証装置が行う処理の例を説明するフローチャートである。
【図１４Ｂ】プログラムの実行の際に認証装置が行う処理の例を説明するフローチャートである。
【図１５】プログラムの実行の際に電子機器が行う処理の例を説明するフローチャートである。
【図１６】実施形態にかかるシステムの適用例を説明するシーケンス図である。
【発明を実施するための形態】
【００１１】
図１は、電子機器へのプログラムのインストールと、インストール済みのプログラムの実行の際に、情報処理システムで行われる処理の例を説明する図である。情報処理システムには、電子機器と認証装置が含まれる。認証装置は、電子機器を使用するユーザが認証処理に使用する識別情報やパスワードなどを保持しているものとする。
【００１２】
図１の例Ｅ１は、電子機器で複数のユーザが同じプログラムを使用するときに電子機器にインストールされるプログラムの例を表わしている。電子機器において、各プログラムは、各ユーザが使用する認証装置に対応付けられた個別のプログラムとしてインストールされるものとする。例えば、ユーザＡがプログラムＸを使用する場合は、ユーザＡの使用する認証装置に対応付けてインストールされたプログラムＸ（ＰＡＸ）を使用する。一方、ユーザＢが同じ電子機器で使用するプログラムＸは、ユーザＢの認証装置の情報に対応付けられたプログラムＸ（ＰＢＸ）である。なお、電子機器は、認証装置との通信に使用する通信回路と、認証装置以外の装置との通信に使用する通信回路とを保持しており、２つの通信回路による通信は互いに干渉しないように設定されているものとする。
【００１３】
以下、図１中のフローチャートを用いて、認証装置Ａを用いて行われるプログラムのインストールの例と、認証装置Ａに対応付けられたプログラムの実行の際に行われる処理の例を説明する。
【００１４】
ステップＳ１において、電子機器は、プログラムＸを含むインストーラを、サーバからダウンロードする。インストーラには、プログラムＸの他に、電子機器がプログラムＸをインストールするために行う処理に関する情報も含まれているものとする。
【００１５】
ステップＳ２において、電子機器は、プログラムＸのインストールを開始する際に通信している認証装置を特定する。ここでは、電子機器がユーザからプログラムＸのインストールを要求されたときには、認証装置Ａと通信中であるものとする。そこで、電子機器は、プログラムＸと認証装置Ａの組み合わせを記憶する。このとき、電子機器は、プログラムＸを識別する識別子と、認証装置Ａを識別する識別子の両方を含む識別情報（ＡＸ）を作成した上で、作成した識別情報ＡＸを記憶することができる。また、識別情報ＡＸは、認証装置Ａで生成されても良い。識別情報ＡＸが認証装置Ａで生成される場合、電子機器は、認証装置Ａから通知された識別情報ＡＸを記憶する。
【００１６】
ステップＳ３において、電子機器は、プログラムＸを認証装置Ａに対応付けてインストールする。すなわち、電子機器は、プログラムＸを、認証装置Ａのユーザによって使用されるプログラムＰＡＸとしてインストールし、プログラムＰＡＸを識別情報ＡＸに対応付けるものとする。
【００１７】
その後、認証装置Ａに対応付けられたプログラムＸ（ＰＡＸ）に対する実行の要求が発生するまで、認証装置Ａに対応付けられたプログラムＸに関する処理は行われない（ステップＳ４でＮｏ）。認証装置Ａに対応付けられたプログラムＸに対する実行の要求が発生すると、電子機器は、実行が要求されたプログラムに対応付けられた認証装置（認証装置Ａ）との間の通信が可能であるかを判定する（ステップＳ４でＹｅｓ、ステップＳ５）。電子機器と認証装置Ａとの間の通信が可能である場合、電子機器は、認証装置Ａに対応付けられたプログラムＸを実行する（ステップＳ５でＹｅｓ、ステップＳ６）。なお、ステップＳ６の処理が行われるケースでは、認証装置Ａと電子機器が通信可能な状態にあることから、電子機器は、認証装置Ａのユーザからアクセスされていると判定している。
【００１８】
一方、電子機器が認証装置Ａと通信できない場合、電子機器は、認証装置Ａに対応付けられたプログラムＸを実行せずに処理を終了する（ステップＳ５でＮｏ、ステップＳ７）。すなわち、ステップＳ７のケースでは、認証装置Ａと電子機器が通信可能な状態にないことから、電子機器は、認証装置Ａのユーザ以外からアクセスされたと判定し、認証装置Ａのユーザに関する情報の悪用などを防止するためにプログラムを実行しない。
【００１９】
このように、実施形態にかかる電子機器は、インストールの際に通信している認証装置の情報を用いて、インストール対象のプログラムを、ユーザごとの個別のプログラムとしてインストールする。さらに、電子機器は、各プログラムに対応付けられた認証装置との通信が確認できない場合は、そのプログラムを実行しない。このため、複数のユーザが電子機器を使用していても、ユーザごとのセキュリティが確保される。すなわち、各ユーザが使用する情報が他のユーザに取得されることや、あるユーザがインストールしたプログラムを用いた成りすましが防止される。
【００２０】
なお、セキュリティをさらに強化するために、プログラムのインストールの前に、インストール対象となるプログラムが改ざんされているかの検証が行われても良い。さらに、プログラムの実行前に電子機器と認証装置との間での認証処理を行うことにより、プログラムのインストールの際に接続されていた認証装置と電子機器が接続を確立しているかを判定するように変更されることもある。以下の説明では、インストール対象のプログラムの検証処理と、電子機器１０と認証装置４０の間の認証処理も行われる場合についての具体例を詳しく説明する。
【００２１】
＜装置構成＞
図２は、電子機器１０の構成の例を説明する図である。電子機器１０は、通信部１１、送受信部１２、出力処理部１５、入力処理部１６、実行制御部２０、記憶部３０を備える。送受信部１２は、送信部１３と受信部１４を有する。実行制御部２０は、インストール処理部２２、抽出部２３、要求部２４、制御部２５、実行処理部２６を有する。記憶部３０は、識別情報３１と装置間公開鍵３２を記憶する。なお、記憶部３０は、図２に示すように、ユーザのＩＤやパスワードなどの情報を記憶しない。
【００２２】
通信部１１は、電子機器１０と認証装置４０（図４）の間の通信処理を行う。送信部１３は、電子機器１０から認証装置４０以外の装置へデータを送信する。受信部１４は、認証装置４０以外の装置からデータを受信する。受信部１４は、受信したデータをインストール処理部２２や実行処理部２６などに出力する。例えば、受信部１４は、電子機器１０へのインストールの対象としてユーザから指定されたプログラムを含む汎用インストーラを、インストール処理部２２に出力する。以下、「汎用インストーラ」は、いずれのユーザによっても使用され得るインストーラを指すものとする。入力処理部１６は、ダウンロードするファイルや、実行するプログラムを指定するためのユーザからの入力を受け付ける。出力処理部１５は、プログラムの実行結果の表示など、電子機器１０での処理結果をユーザが使用するための出力処理を行う。
【００２３】
インストール処理部２２は、受信部１４から入力された汎用インストーラからインストール対象のプログラムを取得し、インストールを行う。抽出部２３は、電子機器１０が認証装置４０から受信した情報から、識別情報３１などの情報を抽出する。ここで、識別情報３１は、電子機器１０がプログラムをインストールする際に通信している認証装置４０とインストール中のプログラムの組み合わせの特定に使用される情報である。抽出部２３の処理の詳細は後述する。要求部２４は、ユーザから実行が要求されているプログラムに対応付けられている認証装置４０に対して認証処理を要求する。なお、この認証処理は、実行が要求されているプログラムのインストール時に電子機器１０と通信していた認証装置４０と電子機器１０との間で通信が確立されているかを判定するために行われる。認証に成功すると、実行が要求されているプログラムのインストール時に電子機器１０と通信していた認証装置４０との通信が確立していると判定される。以下、実行が要求されているプログラムのインストール時に電子機器１０と通信していた認証装置４０のことを、「プログラムに対応付けられている認証装置４０」と記載することがある。
【００２４】
制御部２５は、プログラムに対応付けられている認証装置４０との間で通信が確立されていないと判定された場合、実行処理部２６がプログラムを実行しないように制御する。一方、プログラムに対応付けられている認証装置４０との間で通信が確立されていると判定された場合、実行処理部２６はプログラムを実行する。
【００２５】
なお、インストール処理部２２および抽出部２３は、「汎用インストーラ」や後述する「個別インストーラ」の処理の一部として実行されても良い。また、要求部２４、制御部２５、および、実行処理部２６は、電子機器１０にインストールされたプログラムの処理の一部として実行されても良い。
【００２６】
図３は、電子機器１０のハードウェア構成の例を示す。電子機器１０は、プロセッサ１０１、フラッシュメモリ１０２、ＲＡＭ（Random Access Memory）１０３、タッチセンサー１０４、表示デバイス１０５、無線処理回路１０９、通信処理回路１１０、アンテナ１１１（１１１ａ、１１１ｂ）を備える。さらに、電子機器１０は、図３に示すようにオプションとして、スピーカー１０７とマイク１０８を備えても良い。電子機器１０は、コンピュータ、スマートフォンを含む携帯電話端末、タブレットなどとして実現されうる。なお、図３は一例であり、例えば、電子機器１０は、タッチセンサー１０４やマイク１０８の代わりにキーボードなどの入力装置を備えていても良い。
【００２７】
プロセッサ１０１は、フラッシュメモリ１０２に格納されたプログラムを読み込むことにより、実行制御部２０として動作する。フラッシュメモリ１０２は記憶部３０として動作する。入力処理部１６は、タッチセンサー１０４、マイク１０８、プロセッサ１０１等により実現される。出力処理部１５は、プロセッサ１０１、表示デバイス１０５、スピーカー１０７により実現される。通信部１１は、通信処理回路１１０とアンテナ１１１ｂにより実現される。通信処理回路１１０は、Ｂｌｕｅｔｏｏｔｈ（登録商標）やＷｉＦｉ（Wireless Fidelity、登録商標）等の規格に沿った通信処理を行う回路である。受信部１４と送信部１３は、いずれも、無線処理回路１０９とアンテナ１１１ａにより実現される。
【００２８】
図４は、認証装置４０の構成の例を示す。認証装置４０は、通信部４１、制御部５０、記憶部６０を備える。制御部５０は、プログラム生成部５１と認証処理部５２を有する。記憶部６０は、ＡＰ（Application）公開鍵６１と雛形情報６２を記憶している。さらに、認証装置４０は、装置間暗号化鍵７１、識別情報管理テーブル７２、認証情報テーブル７３、ＳＳＬ（Secure Socket Layer）認証情報テーブル７４、証明書テーブル７５を、シールドエリア７０に記憶している。なお、シールドエリア７０は、認証装置４０の外部からの読み出しができないように設定された記憶領域である。
【００２９】
通信部４１は、電子機器１０と通信する。プログラム生成部５１は、通信部４１を介して電子機器１０から取得したプログラムと雛形情報６２を用いて、認証装置４０にＩＤなどを格納しているユーザが使用するためのプログラムのインストールに使用されるインストーラを生成する。以下の説明では、認証装置４０にＩＤなどを格納しているユーザが使用するプログラムのインストーラのことを「個別インストーラ」と記載することがある。プログラム生成部５１は、個別インストーラを生成する際に、装置間暗号化鍵７１を生成する。装置間暗号化鍵７１には、公開鍵と秘密鍵が含まれ、個別インストーラには、公開鍵が含められる。また、プログラム生成部５１は、認証装置４０のユーザ、インストール対象のプログラム、電子機器１０の組み合わせを一意に識別できる識別情報を生成し、識別情報を秘密鍵と対応付けて識別情報管理テーブル７２に記録する。識別情報管理テーブル７２は、認証処理部５２による認証処理の際に使用される。認証処理部５２は、プログラムの実行を要求された電子機器１０と認証装置４０との間の認証処理を行う。
【００３０】
図５は、認証装置４０が保持する情報の例を説明する図である。図５には、認証情報テーブル７３、ＳＳＬ認証情報テーブル７４、証明書テーブル７５の例を示す。図２を参照しながら説明したように、電子機器１０は、ユーザのＩＤやパスワードなどの情報を保持しない。このため、電子機器１０で動作するプログラムの実行などにより通信先から電子機器１０のユーザに関する識別情報の送信を要求された場合、電子機器１０は、認証装置４０にユーザに関する情報を要求する。認証処理部５２は、認証に成功した電子機器１０に対して、ユーザの情報を、認証情報テーブル７３、ＳＳＬ認証情報テーブル７４、証明書テーブル７５から抽出して送信する。
【００３１】
認証情報テーブル７３は、ＵＲＬ（Uniform Resource Locator）ごとに、そのＵＲＬで指定されるサイトで使用されるＩＤとパスワードを対応付けている。認証処理部５２は、認証に成功した電子機器１０からＵＲＬが通知されると、通知されたＵＲＬに対応付けられたＩＤとパスワードの組み合わせを電子機器１０に通知する。
【００３２】
ＳＳＬ認証情報テーブル７４は、ＵＲＬとそのＵＲＬで指定されるサイトで使用されるルート証明書のインデックスを対応付けている。一方、証明書テーブル７５は、任意の数のルート証明書を保持している。認証処理部５２は、認証に成功した電子機器１０からＳＳＬ認証処理が要求されると、認証の要求で通知されたＵＲＬに対応付けられたルート証明書のインデックスを、ＳＳＬ認証情報テーブル７４を用いて特定する。認証処理部５２は、さらに、特定したインデックスを用いて、ルート証明書を取得し、ルート証明書に含まれている公開鍵により、サーバ証明書を検証する。サーバ証明書の検証に成功すると、認証処理部５２は、電子機器１０がサーバ証明書の送信元のサーバとの暗号化通信を行うための処理を行う。具体例については、図１６を参照しながら説明する。
【００３３】
図６は、認証装置４０のハードウェア構成の例を説明する図である。認証装置４０は、プロセッサ１０１、フラッシュメモリ１０２、ＲＡＭ１０３、通信処理回路１１０、アンテナ１１１を備える。アンテナ１１１と通信処理回路１１０は、通信部４１として動作する。プロセッサ１０１は制御部５０を実現する。さらに、フラッシュメモリ１０２は、記憶部６０として動作する。
【００３４】
＜実施形態＞
以下、電子機器１０による汎用インストーラの取得、プログラムのインストール、プログラムの実行に分けて、実施形態を説明する。なお、電子機器１０は、ユーザ別に異なるプログラムとして個々のプログラムをインストールするが、セキュリティを高めるために、ユーザのＩＤやパスワードなどの情報は、電子機器１０には記憶しないものとする。従って、電子機器１０は、プログラムの実行などに伴い、ＩＤやパスワードなどのユーザの情報が求められると、接続中の認証装置４０にそれらの情報の送信を求める。
【００３５】
以下の実施形態では、電子機器１０と認証装置４０との間では、Ｂｌｕｅｔｏｏｔｈ（登録商標）やＷｉＦｉなどによる無線通信が行われているものとする。また、電子機器１０がサーバなどと通信する場合も無線通信が行われるが、電子機器１０と認証装置４０との間の通信との干渉は起こらないように設定されているものとする。
【００３６】
（１）電子機器１０による汎用インストーラの取得
図７は、汎用インストーラと署名済みプログラムの生成方法の例を説明する図である。まず、ケースＣ０に示すように、認証局は、プログラムの改ざんの検出に使用するための暗号化鍵ペアを生成する。認証局により生成される暗号化鍵ペアは、認証装置４０での改ざんの検出に使用される。以下、電子機器１０と認証装置４０との間の通信に使用される暗号化鍵（装置間暗号化鍵）との区別を容易にするために、認証局で生成される暗号化鍵を、ＡＰ暗号化鍵と記載する。ＡＰ暗号化鍵ペアには、ＡＰ秘密鍵とＡＰ公開鍵が含まれる。
【００３７】
次に、認証局による署名データの生成処理について述べる。認証局は、ケースＣ１に示すように、プログラムのハッシュ値をＡＰ秘密鍵によって暗号化することにより、署名データを生成する。ここで、プログラムのハッシュ値の算出に用いられる関数は、ＳＨＡ−１（Secure Hash Algorithm-1）を含む任意の一方向性ハッシュ関数から選択され得る。認証局は、署名データとプログラムを合わせて、署名済みプログラムを生成する。
【００３８】
さらに、認証局は、電子機器１０と認証装置４０との間で行われる認証処理や改ざんの検出処理の動作を示すプログラム（連携処理プログラム）に、署名済みプログラムを組み込むことにより、汎用インストーラを生成する。汎用インストーラには、プログラムを使用するユーザの特定に用いられるデータは含まれていないので、いずれのユーザによってダウンロードされても良い。そこで、認証局は、電子機器１０がアクセス可能なサーバに、汎用インストーラを公開する。なお、図７に示すように、認証装置４０の製造者は、予め認証局からＡＰ公開鍵を取得しておき、認証装置４０の製造の際に、認証装置４０にＡＰ公開鍵６１として記憶させるものとする。また、認証装置４０は、認証局が署名データを生成する際に使用するハッシュ関数も、予め、保持しているものとする。
【００３９】
電子機器１０は、入力処理部１６から取得するユーザの入力に応じて、サーバ等にアクセスする。また、電子機器１０は、入力処理部１６からの入力信号により、サーバから電子機器１０にダウンロードする情報が特定されると、特定された情報を、受信部１４を介して受信する。ここでは、ユーザがインストールしようとするプログラムを含む汎用インストーラがダウンロードの対象として選択されたとする。すると、電子機器１０は、送受信部１２を介した通信により、サーバから汎用インストーラを受信する。
【００４０】
（２）プログラムのインストール
図８は、プログラムのインストールの際に行われる処理の例を説明するシーケンス図である。図８のシーケンスは、電子機器１０が汎用インストーラをサーバからダウンロードした後の処理を説明している。電子機器１０のインストール処理部２２は、汎用インストーラ中の連携処理プログラムに従って動作する。なお、図８のシーケンスは、例えば、ステップＳ１３とＳ１４の順序を入れ替えるなど、実装に応じて変更され得る。
【００４１】
ステップＳ１１において、インストール処理部２２は、汎用インストーラ中に含まれている署名済みプログラムを、通信部１１を介して、電子機器１０と通信中の認証装置４０に送信する。なお、署名済みプログラムは、汎用インストーラのファイルシステム中に含まれているものとする。
【００４２】
ステップＳ１２において、認証装置４０のプログラム生成部５１は、ＡＰ公開鍵６１、ハッシュ関数、電子機器１０から受信した署名データとプログラムを用いて、プログラムが改ざんされているかを検証する。図８の例では、プログラムが改ざんされていないと判定されたものとする。
【００４３】
ステップＳ１３〜Ｓ１５を参照しながら、個別インストーラの生成処理と、プログラムの実行が要求された場合に行う認証の準備について説明する。プログラム生成部５１は、プログラムが改ざんされていないと判定すると、電子機器１０との間の認証に使用する暗号化鍵（装置間暗号化鍵）を生成する（ステップＳ１３）。装置間暗号化鍵は、装置間公開鍵と装置間秘密鍵を含む。装置間暗号化鍵は、電子機器１０がプログラムを実行するかを判定する際に電子機器１０と認証装置４０の間で行う認証処理に使用される。次に、プログラム生成部５１は、プログラム、電子機器１０、認証装置４０の組合せを識別する識別情報を生成する（ステップＳ１４）。プログラム生成部５１は、識別情報とステップＳ１３で生成した装置間秘密鍵を識別情報管理テーブル７２に記憶する。
【００４４】
図９は、識別情報管理テーブル７２の例を示す。識別情報管理テーブル７２には、識別情報と装置間秘密鍵が対応付けられている。なお、識別情報は、プログラム、電子機器１０、認証装置４０の組合せを特定できるような任意の情報である。例えば、識別情報は、最初の５桁がプログラムの識別番号、次の４桁が電子機器１０の識別番号、末尾の５桁が認証装置４０の識別番号であるような１４桁の文字列とすることができる。なお、プログラム、電子機器１０、認証装置４０の識別番号の桁数、組合せの順序、識別番号の桁数などは、実装に応じて変更されうる。
【００４５】
図８のステップＳ１５において、プログラム生成部５１は、雛形情報６２を用いて、プログラム、識別情報、端末間公開鍵を含むインストーラ（個別インストーラ）を生成する。個別インストーラには、認証装置４０、電子機器１０、プログラムの組合せを識別する識別情報が含まれているので、汎用インストーラとは異なり、識別情報で特定される認証装置４０と電子機器１０の組合せ以外では使用されない。プログラム生成部５１は、個別インストーラの生成が終わると、通信部４１を介して、電子機器１０に検証に成功したことを通知する（ステップＳ１６）。
【００４６】
ステップＳ１７において、インストール処理部２２は、検証結果が検証の成功を表わす情報であるかを判定する（ステップＳ１７）。検証に失敗している場合、プログラムが改ざんされているため、インストール処理部２２は、処理を終了する（ステップＳ１７でＮｏ）。一方、検証に成功したことが通知された場合、インストール処理部２２は、認証装置４０に記憶されている個別インストーラを起動する（ステップＳ１７でＹｅｓ、ステップＳ１８）。この処理は、例えば、インストール処理部２２が認証装置４０を電子機器１０の外部記憶装置に設定した後で、認証装置４０にアクセスすることによって行われる。個別インストーラによるインストール処理が行われることにより、電子機器１０にプログラムがインストールされる（ステップＳ１９）。
【００４７】
図１０は、プログラムのインストールの際に認証装置４０が行う処理の例を説明するフローチャートである。なお、ステップＳ２９とＳ３０の処理の順序は、実装に応じて変更されても良いものとする。
【００４８】
認証装置４０の通信部４１は、電子機器１０との間のデータリンクを確立する（ステップＳ２１）。プログラム生成部５１は、通信部４１を介して、電子機器１０から署名済みプログラムを取得する（ステップＳ２２）。署名済みプログラムの取得に失敗すると、プログラム生成部５１は、受信エラー通知を電子機器１０に送信することにより、リトライを要求する（ステップＳ２３でＮｏ、ステップＳ２４）。その後、電子機器１０からデータを受信すると、ステップＳ２２以降の処理が行われる。
【００４９】
一方、署名済みプログラムの取得に成功すると、プログラム生成部５１は、認証装置４０に組み込まれているＡＰ公開鍵６１を用いて、署名済みプログラムに含まれている署名データ内のハッシュ値を復号化する（ステップＳ２３でＹｅｓ、ステップＳ２５）。さらに、プログラム生成部５１は、ハッシュ関数を用いてプログラムのハッシュ値を求め、署名データ中に含まれているハッシュ値と比較することにより、プログラムが改ざんされているかを検証する（ステップＳ２６）。プログラムが改ざんされているという判定結果が得られると、プログラム生成部５１は、署名済みプログラムにエラーがあることを電子機器１０に通知して処理を終了する（ステップＳ２７でＮｏ、ステップＳ２８）。
【００５０】
一方、署名済みプログラムが改ざんされていないと判定すると、プログラム生成部５１は、装置間暗号化鍵ペアを生成する（ステップＳ２７でＹｅｓ、ステップＳ２９）。さらに、プログラム生成部５１は、プログラム、電子機器１０、認証装置４０の組合せを一意に特定するための識別情報を生成する（ステップＳ３０）。プログラム生成部５１は、装置間秘密鍵と識別情報を識別情報管理テーブル７２に記憶する（ステップＳ３１）。プログラム生成部５１は、電子機器１０にプログラムの検証結果として、プログラムが改ざんされていないことを通知する（ステップＳ３２）。
【００５１】
図１１は、プログラムのインストールの際に電子機器１０が行う処理の例を説明するフローチャートである。なお、図１１は一例であり、例えば、ステップＳ４８〜Ｓ５０の処理の順序は実装に応じて任意に変更されうる。
【００５２】
電子機器１０の通信部１１は、認証装置４０との間のデータリンクを確立する（ステップＳ４１）。インストール処理部２２は、サーバからダウンロードした署名済みプログラムを認証装置４０に送信する（ステップＳ４２）。送信に失敗すると、電子機器１０は、認証装置４０に署名済みプログラムを再送信する（ステップＳ４３でＮｏ、ステップＳ４２）。
【００５３】
署名済みプログラムの送信に成功すると、インストール処理部２２は、署名済みプログラムについての検証結果を認証装置４０から受信するまで待機する（ステップＳ４３でＹｅｓ）。署名済みプログラムについての検証結果を受信すると、インストール処理部２２は、プログラムが改ざんされていないことが通知されたかを判定する（ステップＳ４５）。プログラムが改ざんされていることが通知されると、インストール処理部２２は処理を終了し、出力処理部１５にエラーの発生を表示する（ステップＳ４５でＮｏ、ステップＳ４７）。
【００５４】
一方、プログラムが改ざんされていないことが通知されると、インストール処理部２２は、個別インストーラを用いて、プログラムを電子機器１０にインストールする（ステップＳ４５でＹｅｓ、ステップＳ４６、Ｓ４８）。さらに、抽出部２３は、個別インストーラを用いて認証装置４０から通知された情報から装置間公開鍵を抽出するとともに、装置間公開鍵をプログラムのファイルシステムにインストールする（ステップＳ４９）。抽出部２３は、個別インストーラから識別情報を抽出し、識別情報も、プログラムのファイルシステムに記憶する（ステップＳ５０）。これらの処理が終わると、通信部１１は、認証装置４０とのデータリンクを切断する（ステップＳ５１）。なお、上記ステップＳ５０およびＳ５１は、「個別インストーラ」の処理として実行されても良い。
【００５５】
（３）プログラムの実行
図１２はプログラムを実行する際に行われる処理の例を説明するシーケンス図である。ステップＳ６１において、ユーザからプログラムの実行が要求されると、電子機器１０の要求部２４は、実行が要求されたプログラムのファイルシステムに格納されている識別情報を送信するための処理を行う。すなわち、通信部１１に認証装置４０との間のリンクの開始と、識別情報の送信を要求する。認証装置４０の認証処理部５２は、電子機器１０から受信した識別情報をキーとして識別情報管理テーブル７２を検索することにより、識別情報に対応付けられた装置間暗号化鍵（秘密鍵）を特定する（ステップＳ６２）。
【００５６】
次に、認証処理部５２は、乱数を生成し、得られた乱数をチャレンジコードとして電子機器１０に送信する（ステップＳ６３）。電子機器１０の要求部２４は、通信部１１を介してチャレンジコードを取得すると、チャレンジコードに含まれているデータを装置間公開鍵で演算処理することにより、レスポンスデータを生成する（ステップＳ６４）。要求部２４は、通信部１１を介して、レスポンスデータを認証装置４０に送信する（ステップＳ６５）。
【００５７】
認証装置４０の認証処理部５２は、ステップＳ６２で特定した装置間秘密鍵を用いて、レスポンスデータを復号し、復号後のデータとチャレンジデータを比較することにより認証処理を行う（ステップＳ６６）。図１２では、復号後のデータとチャレンジデータが一致したものとする。復号後のデータとチャレンジデータが一致した場合、認証処理部５２は、認証に成功したことを示す情報（リンクＯＫ）を電子機器１０に向けて送信する（ステップＳ６７）。要求部２４は、認証装置４０から認証に成功したことが通知されると、実行処理部２６にプログラムの実行を要求する。実行処理部２６は、要求部２４の要求に応じて、プログラムを実行する。プログラムの実行により、適宜、実行処理部２６は、出力処理部１５への出力処理を行う。
【００５８】
ステップＳ６８に示すように、プログラムの実行に伴って、ユーザのＩＤやパスワードなどが要求されると、実行処理部２６は、認証装置４０にこれらの情報を要求する。認証装置４０の認証処理部５２は、認証に成功している電子機器１０からＩＤやパスワードが要求されると、要求された情報を、装置間秘密鍵を用いて暗号化して、電子機器１０に送信する。電子機器１０の実行処理部２６は、認証装置４０から送信された情報を、装置間公開鍵を用いて復号して、処理に用いる。
【００５９】
なお、図１２を参照しながら、認証後の通信（ステップＳ６８）も装置間公開鍵と装置間秘密鍵を用いて行われる場合を説明したが、認証後の通信は処理を高速化するために、共通鍵を用いて行っても良い。共通鍵を用いて電子機器１０と認証装置４０の間の通信が行われる場合、共通鍵は、装置間公開鍵と装置間秘密鍵を用いて、電子機器１０と認証装置４０の間で交換されるものとする。なお、共通鍵は電子機器１０と認証装置４０のいずれが生成しても良い。
【００６０】
図１３は、プログラムの実行中に行われるヘルスチェックの例を説明するシーケンス図である。セキュリティを高めるために、電子機器１０と認証装置４０の間では、プログラムの実行を開始するときの認証の他にも定期的にヘルスチェックが行われることがある。なお、図１３では、認証後のデータの送受信の具体例も示している。ステップＳ６１〜Ｓ６７の処理は図１２を参照しながら説明したとおりである。
【００６１】
ステップＳ７１において、電子機器１０の実行処理部２６は、ユーザのＩＤとパスワードを要求してきたサイトのＵＲＬと共に、ユーザのＩＤとパスワードを要求するためのメッセージ（転送要求）を認証装置４０に送信する。ここで、実行処理部２６が認証装置４０に向けて送信する情報は暗号化されているものとする。なお、暗号化は、図１２の説明でも述べたとおり、共通鍵によって行われても、装置間公開鍵によって行われても良い。認証装置４０の認証処理部５２は、転送要求を復号することにより、ユーザのＩＤとパスワードを要求しているサイトのＵＲＬを取得する。認証処理部５２は、認証情報テーブル７３（図５）を用いて、転送要求により通知されたＵＲＬに対応付けられたＩＤとパスワードを取得する。認証処理部５２は、取得したＩＤとパスワードを暗号化して、電子機器１０に返信する（ステップＳ７２）。なお、このときの暗号化も、共通鍵か装置間秘密鍵によって行われる。
【００６２】
認証処理部５２は、電子機器１０との最後の通信が行われてから所定の期間が経過すると、ヘルスチェックのためのパケットを、電子機器１０に送信する（ステップＳ７３）。電子機器１０の要求部２４は、ヘルスチェック用のパケットを取得すると、ヘルスチェック応答を生成すると共に、認証装置４０に送信する（ステップＳ７４）。ステップＳ７３、Ｓ７４と同様の処理が定期的に繰り返される（ステップＳ７５、Ｓ７６）。電子機器１０の要求部２４は、認証装置４０との最後の通信から所定の期間内にヘルスチェックを受信した場合、認証装置４０と電子機器１０の間の通信が維持されていると判定する。一方、認証装置４０の認証処理部５２は、電子機器１０にヘルスチェックを送信してから所定の期間内にヘルスチェック応答を受信すると、認証装置４０と電子機器１０の間の通信が維持されていると判定する。
【００６３】
ステップＳ７７において認証装置４０がヘルスチェックを送信するときには、認証装置４０と電子機器１０の間の距離が広がるなどの理由により、認証装置４０と電子機器１０が通信できなくなっているとする。すると、認証装置４０が送信したヘルスチェックは電子機器１０に到達しない。このため、認証処理部５２は、電子機器１０からのヘルスチェック応答を受信できず、認証装置４０と電子機器１０の間のリンクが切断されたと判定する（ステップＳ７８）。
【００６４】
一方、電子機器１０の要求部２４は、認証装置４０との間の最後の通信から所定の時間が経過してもヘルスチェック用のパケットを認証装置４０から受信していないので、認証装置４０と電子機器１０の間のリンクが切断されたと判定する（ステップＳ７９）。要求部２４は、認証装置４０と電子機器１０のリンクが切断されたと判定したことを制御部２５に通知する。制御部２５は、認証装置４０と電子機器１０のリンクが切断されたことが通知されると、実行処理部２６に対してプログラムの実行を停止させるための処理を行う。実行処理部２６は、制御部２５の処理により、実行中のプログラムの処理を終了する。
【００６５】
図１４Ａと図１４Ｂは、プログラムの実行の際に認証装置４０が行う処理の例を説明するフローチャートである。図１４Ａと図１４Ｂは、電子機器１０へのＩＤとパスワードの要求が行われる場合の例を示している。なお、図１４Ａと図１４Ｂに示す処理は一例であり、ステップＳ８５とＳ８６の順序を入れ替えるなどの変更が行われうる。
【００６６】
認証装置４０の認証処理部５２は、通信部４１を介して、電子機器１０からデータリンク開始要求を受信すると、データリンク開始要求で通知された識別情報が識別情報管理テーブル７２に記録されているかを判定する（ステップＳ８１、Ｓ８２）。識別情報が識別情報管理テーブル７２に含まれていない場合、認証処理部５２は、電子機器１０にエラーを通知する（ステップＳ８２でＮｏ、ステップＳ８３）。
【００６７】
識別情報が識別情報管理テーブル７２に含まれている場合、認証処理部５２は、ランダム値を生成し、チャレンジデータとして電子機器１０に送信する（ステップＳ８２でＹｅｓ、ステップＳ８４）。その後、電子機器１０からレスポンスデータを受信すると、認証処理部５２は、ステップＳ８１で受信した識別情報をキーとして識別情報管理テーブル７２を検索し、装置間秘密鍵を取得する（ステップＳ８５、Ｓ８６）。認証処理部５２は、装置間秘密鍵、レスポンスデータ、チャレンジデータを用いて、電子機器１０の認証処理を行う（ステップＳ８７）。認証に失敗すると、認証処理部５２は、電子機器１０に対して認証に失敗したことを通知する（ステップＳ８８でＮｏ、ステップＳ８９）。
【００６８】
一方、認証に成功すると、認証処理部５２は、電子機器１０に対して認証に成功したことを通知する（ステップＳ８８でＹｅｓ、ステップＳ９０）。認証処理部５２は、電子機器１０との間でセキュアなデータリンクが確立できたと判定する（ステップＳ９１）。認証処理部５２は、ＵＲＬに対応付けてユーザのＩＤやパスワードを要求されるまで待機する（ステップＳ９２でＮｏ）。認証処理部５２は、ＵＲＬに対応付けてユーザのＩＤやパスワードを要求されると、認証情報テーブル７３からＩＤとパスワードを取得できるかを判定する（ステップＳ９２でＹｅｓ、ステップＳ９３）。認証情報テーブル７３からＩＤとパスワードを取得できた場合、認証処理部５２は、ＩＤとパスワードを電子機器１０に送信するための処理を行って、ステップＳ９２に戻る（ステップＳ９４）。
【００６９】
認証情報テーブル７３からＩＤとパスワードを取得していない場合、認証処理部５２は、ユーザが電子機器１０に入力したＩＤとパスワードの情報を、電子機器１０から取得したかを判定する（ステップＳ９５）。ユーザが入力したＩＤとパスワードの情報を、電子機器１０から取得していない場合、認証処理部５２は、ステップＳ９２に戻る（ステップＳ９５でＮｏ）。一方、ユーザが入力したＩＤとパスワードの情報を、電子機器１０から取得すると、認証処理部５２は、ＩＤとパスワードを認証情報テーブル７３に記憶してステップＳ９２に戻る（ステップＳ９５でＹｅｓ、ステップＳ９６）。
【００７０】
図１５は、プログラムの実行の際に電子機器１０が行う処理の例を説明するフローチャートである。通信部１１は、認証装置４０との間で無線通信を確立する（ステップＳ１０１）。要求部２４は、認証装置４０に識別情報を含めたデータリンク開始要求を送信する（ステップＳ１０２）。要求部２４は、通信部１１を介して、認証装置４０からチャレンジデータを取得する（ステップＳ１０３）。要求部２４は、装置間公開鍵を用いてチャレンジデータを演算処理することにより、レスポンスデータを生成するとともに、レスポンスデータを認証装置４０に送信する（ステップＳ１０４）。通信部１１は、認証装置４０から認証結果を受信する（ステップＳ１０５）。要求部２４は、認証装置４０から認証成功が通知されていない場合、認証装置４０との間の無線通信を切断する（ステップＳ１０６でＮｏ、ステップＳ１０７）。さらに、制御部２５は、実行が要求されているプログラムのインストールの際に通信していた認証装置４０との間の通信が確立できていないと判定し、実行処理部２６にプログラムの実行の停止を要求する。実行処理部２６は、制御部２５の要求に応じて、プログラムの実行を停止する。このとき、実行処理部２６は、出力処理部１５にエラーの表示や警告音の出力を行っても良い。
【００７１】
一方、認証装置４０から認証成功が通知された場合、認証装置４０との間でセキュアなデータリンクが確立されたと判定する（ステップＳ１０６でＹｅｓ、ステップＳ１０８）。認証装置４０での認証に成功しているため、実行処理部２６は、プログラムを実行する（ステップＳ１０９）。なお、ステップＳ１０１〜Ｓ１０９はインストールしたプログラムの処理として実行されても良い。
【００７２】
図１６は、実施形態にかかるシステムの適用例を説明するシーケンス図である。図１６は、ＳＳＬ通信への適用例を示す。ステップＳ１１１において、図１２〜図１５を参照しながら説明した手順を用いたリンクの確立処理が行われる。その後、電子機器１０の実行処理部２６は、送受信部１２を介して、認証局よりルート証明書を取得する（ステップＳ１１２）。実行処理部２６は、通信部１１を介して、ルート証明書を認証装置４０に送信する（ステップＳ１１３）。認証装置４０の認証処理部５２は、ルート証明書を証明書テーブル７５に格納する（ステップＳ１１４）。
【００７３】
一方、電子機器１０の要求部２４は、ルート証明書とそのルート証明書を用いた認証処理の対象となるサーバ証明書を配布しているＵＲＬを関連付ける（ステップＳ１１５）。なお、ＵＲＬとルート証明書の対応関係は、ユーザから入力され、要求部２４は入力された情報に基づいて関連付けを行う。要求部２４は、認証装置４０に向けて、ルート証明書とＵＲＬの関連付けを行った結果を送信する（ステップＳ１１６）。認証装置４０では、認証処理部５２がルート証明書とＵＲＬの対応関係を用いて、ＳＳＬ認証情報テーブル７４を生成する（ステップＳ１１７）。
【００７４】
その後、電子機器１０は、ＳＳＬアクセスサーバにＳＳＬ接続を要求する（ステップＳ１１８）。ＳＳＬサーバは、サーバ証明書を電子機器１０に送信する（ステップＳ１１９）。電子機器１０の要求部２４は、ＳＳＬ接続を要求したＵＲＬの情報と、サーバ証明書を、ＳＳＬ認証処理要求に含めて、認証装置４０に送信する（ステップＳ１２０）。認証装置４０の認証処理部５２は、通知されたＵＲＬをキーとしてＳＳＬ認証情報テーブル７４を検索することにより、ルート証明書のインデックスを取得する。次に、取得したインデックスと証明書テーブル７５を用いて、ルート証明書を抽出する。さらに、ルート証明書に含められている鍵を用いてサーバ証明書を検証する。検証に成功すると、認証処理部５２は、共通鍵を生成し、サーバ証明書中に含まれている公開鍵で暗号化する。認証処理部５２は、暗号化された共通鍵を電子機器１０に送信する（ステップＳ１２１）。電子機器１０は、暗号化された共通鍵をＳＳＬアクセスサーバに送信する（ステップＳ１２２）。ＳＳＬサーバは、暗号化された共通鍵を、サーバ証明書に含めた公開鍵の対となっている秘密鍵を用いて復号することにより、共通鍵を取得する（ステップＳ１２３）。
【００７５】
さらに、認証装置４０は、ＳＳＬアクセスサーバとの間の通信に使用するための共通鍵を電子機器１０に通知する（ステップＳ１２４）。これらの処理により、電子機器１０と認証装置４０が共通鍵を用いて暗号化通信を開始する（ステップＳ１２５）。
【００７６】
以上述べたように、電子機器１０は、ユーザごとの個別のインストーラを用いて、個別のプログラムをインストールするので、あるユーザがプログラムを使用する際に入力した情報等を、同じ種類のプログラムを使用する他のユーザに取得される可能性が低い。また、電子機器１０は、ユーザのＩＤ、パスワード、ルート証明書などの情報を記憶しておらず、これらの情報を、適宜、認証装置４０から取得する。このため、電子機器１０からユーザのＩＤなどの情報が漏えいする危険性も低い。
【００７７】
また、電子機器１０は、実行が要求されているプログラムがインストールされたときに電子機器１０と通信していた認証装置４０との通信が確立されていない場合には、プログラムを実行しない。このため、電子機器１０の正規ユーザであっても、他のユーザに関連付けてインストールされているプログラムにアクセスできず、電子機器１０の正規ユーザによる成りすましを防止することができる。従って、実施形態にかかるシステムにより、電子機器１０での防犯機能が向上できる。
【００７８】
図１２を参照しながら説明したように、電子機器１０と認証装置４０との間であっても、認証処理を行うことにより、電子機器１０を用いた成りすましが行われる危険性がさらに引き下げられている。また、認証装置４０は、装置間公開鍵を個別インストーラに含めて電子機器１０に通知した上で、装置間暗号化鍵を用いて認証処理を行っているので、認証用の鍵の交換も、簡単かつ安全に行われているといえる。
【００７９】
図７、図８、図１０などを用いて説明したように、プログラムの汎用インストーラに署名情報が含まれている場合、認証装置４０において、プログラムのインストールの前に、インストール対象となるプログラムが改ざんされているかを検証できる。このため、実施形態にかかるシステムでは、マルウェアが電子機器１０にインストールされることを防止できる。また、電子機器１０へのプログラムのインストールを実施形態にかかる方法に統一すると、電子機器１０の正規ユーザが他のユーザの情報を不正に取得することを目的としてマルウェアをインストールすることも防止できる。
【００８０】
また、図１３を参照しながら説明したように、プログラムの実行中であっても、定期的にヘルスチェックを行い、認証装置４０と電子機器１０の間の通信が確立していない場合は、プログラムの実行を停止することで、さらに、セキュリティが高められる。
【００８１】
＜その他＞
電子機器１０にプログラムをインストールする際には、個別インストーラが使用されるため、電子機器１０にインストールされたプログラムのアンインストールの際に、個別インストーラは削除される。ここで、電子機器１０は、サーバから汎用インストーラをダウンロードしているが、プログラムのアンインストールの際には、汎用インストーラは削除されない。また、汎用インストーラは、インストールされるプログラムを使用するユーザに関する情報を含まない。このため、例えば、ユーザＡがダウンロードした汎用インストーラをユーザＢが使用して、ユーザＢが使用するプログラム用の個別インストーラを生成することができる。また、ユーザＡがプログラムをアンインストールした後に、ユーザＡによってダウンロードされた汎用インストーラを用いて、ユーザＣがユーザＣ用のプログラムのインストールに用いる個別インストーラを生成することもできる。
【００８２】
一方、プログラムのアンインストールの際には、電子機器１０から個別インストーラが削除されるので、電子機器１０と認証装置４０の間の通信に使用される暗号化鍵も削除される。従って、電子機器１０と認証装置４０の間の通信で使用される暗号化鍵は、インストールの度に新たに生成されることになり、セキュリティが向上する。なお、電子機器１０にインストールされるプログラムは、ブラウザなどを含む任意の種類のプログラムである。
【００８３】
図５や図９に示したテーブル等は、一例であり、認証装置４０が保持するテーブル等に含まれる情報要素は、実装に応じて変更され得る。
【００８４】
以上の説明では、プログラムとそのプログラムのインストール時に通信していた認証装置４０との組み合わせを識別情報３１として電子機器１０と認証装置４０が記憶する場合を例とし手説明したが、これは一例に過ぎない。すなわち、電子機器１０は識別情報３１以外の形態で、プログラムのインストール時に通信していた認証装置４０とプログラムの組み合わせを記憶していても良い。
【符号の説明】
【００８５】
１０  電子機器
１１、４１  通信部
１２  送受信部
１３  送信部
１４  受信部
１５  出力処理部
１６  入力処理部
２０  実行制御部
２２  インストール処理部
２３  抽出部
２４  要求部
２５、５０  制御部
２６  実行処理部
３０、６０  記憶部
３１  識別情報
３２  装置間公開鍵
４０  認証装置
５１  プログラム生成部
５２  認証処理部
６１  ＡＰ公開鍵
６２  雛形情報
７０  シールドエリア
７１  装置間暗号化鍵
７２  識別情報管理テーブル
７３  認証情報テーブル
７４  ＳＳＬ認証情報テーブル
７５  証明書テーブル
１０１  プロセッサ
１０２  フラッシュメモリ
１０３  ＲＡＭ
１０４  タッチセンサー
１０５  表示デバイス
１０６  オーディオ入出力デバイス
１０７  スピーカー
１０８  マイク
１０９  無線処理回路
１１０  通信処理回路
１１１  アンテナ
【図１】
0006318948.tif 000002
【図２】
0006318948.tif 000003
【図３】
0006318948.tif 000004
【図４】
0006318948.tif 000005
【図５】
0006318948.tif 000006
【図６】
0006318948.tif 000007
【図７】
0006318948.tif 000008
【図８】
0006318948.tif 000009
【図９】
0006318948.tif 000010
【図１０】
0006318948.tif 000011
【図１１】
0006318948.tif 000012
【図１２】
0006318948.tif 000013
【図１３】
0006318948.tif 000014
【図１４Ａ】
0006318948.tif 000015
【図１４Ｂ】
0006318948.tif 000016
【図１５】
0006318948.tif 000017
【図１６】
0006318948.tif 000018