(57)【特許請求の範囲】
【請求項１】
耐タンパ装置を有する情報端末と、当該情報端末とネットワークを介して接続された認証サーバとを備えたアプリケーション認証システムであって、
前記情報端末の耐タンパ装置は、
前記情報端末において動作させるアプリケーションソフトウェアに予めハードコーディングされた鍵情報が記憶されている耐タンパ鍵情報記憶部と、
予め定められた署名鍵が記憶されている署名鍵記憶部と、
前記アプリケーションソフトウェアから入力される、前記鍵情報を用いて暗号化されたメッセージを、前記耐タンパ鍵情報記憶部に記憶されている前記鍵情報を用いて復号する耐タンパ復号部と、
前記耐タンパ復号部が復号した前記メッセージと、前記署名鍵とに基づいて第１の認証子を生成して出力する暗号化部と、を備え、
前記情報端末は、
前記鍵情報がハードコーディングされたソースコードに基づく前記アプリケーションソフトウェアであって、前記認証サーバから送信されるメッセージを、当該鍵情報を用いて暗号化して前記耐タンパ装置に入力し、当該耐タンパ装置に入力した当該メッセージに応じて当該耐タンパ装置から出力される前記第１の認証子と、自身にハードコーディングされた前記鍵情報とに基づいて第２の認証子を生成し、前記認証サーバに送信する処理を実行させるためのアプリケーションソフトウェアが記憶されているＡＰ記憶部と、
前記ＡＰ記憶部に記憶されている前記アプリケーションソフトウェアを動作させる制御部と、を備え、
前記認証サーバは、
前記鍵情報が記憶されている認証サーバ鍵情報記憶部と、
前記耐タンパ装置に記憶されている前記署名鍵に対応する検証鍵が記憶されている検証鍵記憶部と、
前記メッセージを生成して前記情報端末に送信する送信部と、
前記送信部が前記情報端末に送信した前記メッセージに応じて、当該情報端末から送信される前記第２の認証子を受信する受信部と、
前記受信部が受信した前記第２の認証子を、前記認証サーバ鍵情報記憶部に記憶されている前記鍵情報を用いて検証し、当該第２の認証子に含まれる前記第１の認証子を、前記検証鍵記憶部に記憶されている前記検証鍵を用いて検証する検証部と、
を備えることを特徴とするアプリケーション認証システム。
【請求項２】
前記認証サーバは、前記ネットワークを介して複数の前記情報端末に接続されており、
前記検証部によって、前記第２の認証子の検証と、前記第１の認証子の検証との両方が検証成功と判定された場合、前記第２の認証子を送信した前記情報端末に記憶されている前記アプリケーションソフトウェアを識別する固有ＡＰＩＤを生成する固有ＡＰＩＤ生成部と、
前記複数の情報端末に記憶されている前記アプリケーションソフトウェアを識別する固有ＡＰＩＤ毎に、当該アプリケーションソフトウェアに対応する固有鍵が対応付けられて記憶される固有鍵記憶部とを備え、
前記認証サーバの受信部は、前記情報端末から送信される前記固有鍵を受信し、当該情報端末に記憶されている前記アプリケーションソフトウェアを識別する前記固有ＡＰＩＤに対応付けて前記固有鍵記憶部に記憶させ、
前記情報端末は、
前記検証部によって検証成功と判定された場合、前記固有鍵を生成し、前記認証サーバに送信する固有鍵送信部と、
を備えることを特徴とする請求項１に記載のアプリケーション認証システム。
【請求項３】
前記ＡＰ記憶部に記憶されている前記アプリケーションソフトウェアは、複数の前記鍵情報がハードコーディングされたソースコードに基づく前記アプリケーションソフトウェアであって、前記複数の鍵情報のうち定められた条件に応じた鍵情報を用いて暗号化する処理を実行させ、
前記耐タンパ装置の前記耐タンパ鍵情報記憶部には、前記複数の鍵情報が記憶され、
前記耐タンパ装置の前記耐タンパ復号部は、当該耐タンパ鍵情報記憶部に記憶された複数の鍵情報のうち、前記条件に応じた鍵情報を用いて復号し、
前記認証サーバの前記認証サーバ鍵情報記憶部には、前記複数の鍵情報が記憶され、
前記認証サーバの前記検証部は、当該認証サーバ鍵情報記憶部に記憶された複数の鍵情報のうち、前記条件に応じた鍵情報を用いて検証する
ことを特徴とする請求項１または請求項２に記載のアプリケーション認証システム。
【請求項４】
前記アプリケーション認証システムは、前記情報端末において動作させる前記アプリケーションソフトウェアによって、前記情報端末と通信を行う業務ＡＰサーバを備え、
前記認証サーバは、セッション鍵を生成し、前記鍵情報を用いて暗号化して前記情報端末との間で共有し、当該セッション鍵を前記業務ＡＰサーバに送信し、
前記業務ＡＰサーバと前記情報端末とは、前記セッション鍵に基づいて暗号化通信を行う
ことを特徴とする請求項１から請求項３までのいずれか１項に記載のアプリケーション認証システム。
【請求項５】
前記認証サーバの前記送信部が前記情報端末に送信する前記メッセージは、チャレンジレスポンス方式におけるチャレンジであり、
前記情報端末が前記チャレンジに応じて前記認証サーバに送信する前記第２の認証子は、前記チャレンジに対応するレスポンスである
ことを特徴とする請求項１から請求項４までのいずれか１項に記載のアプリケーション認証システム。
【請求項６】
情報端末において制御部に動作させるアプリケーションソフトウェアに予めハードコーディングされた鍵情報が記憶されている耐タンパ鍵情報記憶部と、予め定められた署名鍵が記憶されている署名鍵記憶部とを備える耐タンパ装置を有し、前記鍵情報がハードコーディングされたソースコードに基づく前記アプリケーションソフトウェアであって、ネットワークを介して接続された認証サーバから送信されるメッセージを、当該鍵情報を用いて暗号化して前記耐タンパ装置に入力し、当該耐タンパ装置に入力した当該メッセージに応じて当該耐タンパ装置から出力される第１の認証子と、自身にハードコーディングされた前記鍵情報とに基づいて第２の認証子を生成し、前記認証サーバに送信する処理を実行させるためのアプリケーションソフトウェアが記憶されているＡＰ記憶部を備える情報端末と、前記鍵情報が記憶されている認証サーバ鍵情報記憶部と、前記耐タンパ装置に記憶されている前記署名鍵に対応する検証鍵が記憶されている検証鍵記憶部とを備えた前記認証サーバと、を備えたアプリケーション認証システムのアプリケーション認証方法であって、
前記認証サーバが、
メッセージを生成して前記情報端末に送信するステップと、
前記情報端末の前記制御部が、
前記ＡＰ記憶部に記憶されている前記アプリケーションソフトウェアを動作させることにより、認証サーバから送信されるメッセージを、前記鍵情報を用いて暗号化して前記耐タンパ装置に入力するステップと、
前記情報端末の耐タンパ装置が、
前記アプリケーションソフトウェアから入力される、前記鍵情報を用いて暗号化されたメッセージを、前記耐タンパ鍵情報記憶部に記憶されている前記鍵情報を用いて復号するステップと、
復号した前記メッセージと、前記署名鍵とに基づいて前記第１の認証子を生成して出力するステップと、
前記情報端末の前記制御部が、
前記ＡＰ記憶部に記憶されている前記アプリケーションソフトウェアを動作させることにより、前記耐タンパ装置に入力した当該メッセージに応じて当該耐タンパ装置から出力される前記第１の認証子と、自身にハードコーディングされた前記鍵情報とに基づいて第２の認証子を生成し、前記認証サーバに送信するステップと、
前記認証サーバが、
前記情報端末に送信した前記メッセージに応じて、当該情報端末から送信される前記第２の認証子を受信するステップと、
受信した前記第２の認証子を、前記認証サーバ鍵情報記憶部に記憶されている前記鍵情報を用いて検証し、当該第２の認証子に含まれる前記第１の認証子を、前記検証鍵記憶部に記憶されている前記検証鍵を用いて検証するステップと、
を備えることを特徴とするアプリケーション認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報端末において動作するアプリケーションを認証する技術に関する。
【背景技術】
【０００２】
様々なアプリケーションソフトウェア（以下、アプリケーション）が動作するスマートフォンやタブレットＰＣ（パーソナルコンピュータ）等の情報端末が普及しており、これらの情報端末を様々な場面で有効に活用することが望まれている。例えば、これらの情報端末をビジネスの場面で利用する場合、その情報端末には様々な顧客情報、個人情報、営業秘密等の機密情報が記憶されていたり、このような機密情報が記憶されている外部のサーバにアクセスしたりすることがあると考えられるため、十分なセキュリティの確保が望まれる。例えば、非特許文献１には、情報端末において動作するアプリケーションの正当性を検証することが記載されている。ここでは、正当なアプリケーションのハッシュ値を予め算出して記憶しておく。そして、アプリケーションを動作させる際に、そのアプリケーションのハッシュ値を算出し、算出したハッシュ値と予め記憶したハッシュ値とを比較する。算出したハッシュ値と予め記憶したハッシュ値とが一致すれば、そのアプリケーションは正当であると判定して動作を許可し、算出したハッシュ値と予め記憶したハッシュ値とが一致しなければ、そのアプリケーションは正当でないと判定して動作を許可しない。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】植松建至、芦野佑樹、藤田圭祐、多田真崇、高塚光幸、佐々木良一、「構造計算書不正検知システムの提案」、２００８年７月、情報処理学会論文誌、Ｖｏｌ．４９、Ｎｏ．９、ｐｐ．３１９９−３２０８
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のようなハッシュ値による認証は、アプリケーション自体の正当性を検証するものであるが、そのアプリケーションが適切な情報端末にインストールされ、動作するものであるか否かを検証するものではない。ここで、このような情報端末を、より高いセキュリティの求められる場面で活用する場合には、そのアプリケーションが適切な情報端末にインストールされ、動作する正当なアプリケーションであるか否かを検証することが望ましい。
【０００５】
本発明は、このような状況に鑑みてなされたもので、情報端末において動作するアプリケーションが、適切な情報端末にインストールされた正当なアプリケーションであるか否かを検証するアプリケーション認証システム、アプリケーション認証方法を提供する。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明は、耐タンパ装置を有する情報端末と、情報端末とネットワークを介して接続された認証サーバとを備えたアプリケーション認証システムであって、情報端末の耐タンパ装置は、情報端末において動作させるアプリケーションソフトウェアに予めハードコーディングされた鍵情報が記憶されている耐タンパ鍵情報記憶部と、予め定められた署名鍵が記憶されている署名鍵記憶部と、アプリケーションソフトウェアから入力される、鍵情報を用いて暗号化されたメッセージを、耐タンパ鍵情報記憶部に記憶されている鍵情報を用いて復号する耐タンパ復号部と、耐タンパ復号部が復号したメッセージと、署名鍵とに基づいて第１の認証子を生成して出力する暗号化部と、を備え、情報端末は、鍵情報がハードコーディングされたソースコードに基づくアプリケーションソフトウェアであって、認証サーバから送信されるメッセージを、鍵情報を用いて暗号化して耐タンパ装置に入力し、耐タンパ装置に入力したメッセージに応じて耐タンパ装置から出力される第１の認証子と、自身にハードコーディングされた鍵情報とに基づいて第２の認証子を生成し、認証サーバに送信する処理を実行させるためのアプリケーションソフトウェアが記憶されているＡＰ記憶部と、ＡＰ記憶部に記憶されているアプリケーションソフトウェアを動作させる制御部と、を備え、認証サーバは、鍵情報が記憶されている認証サーバ鍵情報記憶部と、耐タンパ装置に記憶されている署名鍵に対応する検証鍵が記憶されている検証鍵記憶部と、メッセージを生成して情報端末に送信する送信部と、送信部が情報端末に送信したメッセージに応じて、情報端末から送信される第２の認証子を受信する受信部と、受信部が受信した第２の認証子を、認証サーバ鍵情報記憶部に記憶されている鍵情報を用いて検証し、第２の認証子に含まれる第１の認証子を、検証鍵記憶部に記憶されている検証鍵を用いて検証する検証部と、を備えることを特徴とする。
【０００７】
また、本発明は、認証サーバは、ネットワークを介して複数の情報端末に接続されており、検証部によって、第２の認証子の検証と、第１の認証子の検証との両方が検証成功と判定された場合、第２の認証子を送信した情報端末に記憶されているアプリケーションソフトウェアを識別する固有ＡＰＩＤを生成する固有ＡＰＩＤ生成部と、複数の情報端末に記憶されているアプリケーションソフトウェアを識別する固有ＡＰＩＤ毎に、アプリケーションソフトウェアに対応する固有鍵が対応付けられて記憶される固有鍵記憶部とを備え、認証サーバの受信部は、情報端末から送信される固有鍵を受信し、情報端末に記憶されているアプリケーションソフトウェアを識別する固有ＡＰＩＤに対応付けて固有鍵記憶部に記憶させ、情報端末は、検証部によって検証成功と判定された場合、固有鍵を生成し、認証サーバに送信する固有鍵送信部と、を備えることを特徴とする。
【０００８】
また、本発明は、ＡＰ記憶部に記憶されているアプリケーションソフトウェアは、複数の鍵情報がハードコーディングされたソースコードに基づくアプリケーションソフトウェアであって、複数の鍵情報のうち定められた条件に応じた鍵情報を用いて暗号化する処理を実行させ、耐タンパ装置の耐タンパ鍵情報記憶部には、複数の鍵情報が記憶され、耐タンパ装置の耐タンパ復号部は、耐タンパ鍵情報記憶部に記憶された複数の鍵情報のうち、条件に応じた鍵情報を用いて復号し、認証サーバの認証サーバ鍵情報記憶部には、複数の鍵情報が記憶され、認証サーバの検証部は、認証サーバ鍵情報記憶部に記憶された複数の鍵情報のうち、条件に応じた鍵情報を用いて検証することを特徴とする。
【０００９】
また、本発明は、アプリケーション認証システムは、情報端末において動作させるアプリケーションソフトウェアによって、情報端末と通信を行う業務ＡＰサーバを備え、認証サーバは、セッション鍵を生成し、鍵情報を用いて暗号化して情報端末との間で共有し、セッション鍵を業務ＡＰサーバに送信し、業務ＡＰサーバと情報端末とは、セッション鍵に基づいて暗号化通信を行うことを特徴とする。
【００１０】
また、本発明は、認証サーバの送信部が情報端末に送信するメッセージは、チャレンジレスポンス方式におけるチャレンジであり、情報端末がチャレンジに応じて認証サーバに送信する第２の認証子は、チャレンジに対応するレスポンスであることを特徴とする。
【００１１】
また、本発明は、情報端末において制御部に動作させるアプリケーションソフトウェアに予めハードコーディングされた鍵情報が記憶されている耐タンパ鍵情報記憶部と、予め定められた署名鍵が記憶されている署名鍵記憶部とを備える耐タンパ装置を有し、鍵情報がハードコーディングされたソースコードに基づくアプリケーションソフトウェアであって、ネットワークを介して接続された認証サーバから送信されるメッセージを、鍵情報を用いて暗号化して耐タンパ装置に入力し、耐タンパ装置に入力したメッセージに応じて耐タンパ装置から出力される第１の認証子と、自身にハードコーディングされた鍵情報とに基づいて第２の認証子を生成し、認証サーバに送信する処理を実行させるためのアプリケーションソフトウェアが記憶されているＡＰ記憶部を備える情報端末と、鍵情報が記憶されている認証サーバ鍵情報記憶部と、耐タンパ装置に記憶されている署名鍵に対応する検証鍵が記憶されている検証鍵記憶部とを備えた認証サーバと、を備えたアプリケーション認証システムのアプリケーション認証方法であって、認証サーバが、メッセージを生成して情報端末に送信するステップと、情報端末の制御部が、ＡＰ記憶部に記憶されているアプリケーションソフトウェアを動作させることにより、認証サーバから送信されるメッセージを、鍵情報を用いて暗号化して耐タンパ装置に入力するステップと、情報端末の耐タンパ装置が、アプリケーションソフトウェアから入力される、鍵情報を用いて暗号化されたメッセージを、耐タンパ鍵情報記憶部に記憶されている鍵情報を用いて復号するステップと、復号したメッセージと、署名鍵とに基づいて第１の認証子を生成して出力するステップと、情報端末の制御部が、ＡＰ記憶部に記憶されているアプリケーションソフトウェアを動作させることにより、耐タンパ装置に入力したメッセージに応じて耐タンパ装置から出力される第１の認証子と、自身にハードコーディングされた鍵情報とに基づいて第２の認証子を生成し、認証サーバに送信するステップと、認証サーバが、情報端末に送信したメッセージに応じて、情報端末から送信される第２の認証子を受信するステップと、受信した第２の認証子を、認証サーバ鍵情報記憶部に記憶されている鍵情報を用いて検証し、第２の認証子に含まれる第１の認証子を、検証鍵記憶部に記憶されている検証鍵を用いて検証するステップと、を備えることを特徴とする。
【発明の効果】
【００１２】
以上説明したように、本発明によれば、認証サーバが、メッセージを情報端末に送信し、情報端末が、送信されるメッセージを、鍵情報を用いて暗号化して耐タンパ装置に入力し、情報端末の耐タンパ装置が、暗号化されたメッセージを復号し、復号したメッセージと署名鍵とに基づいて第１の認証子を生成して出力し、情報端末が、耐タンパ装置に入力したメッセージに応じて耐タンパ装置から出力される第１の認証子と、鍵情報とに基づいて第２の認証子を生成して認証サーバに送信し、認証サーバが、情報端末に送信したメッセージに応じて、情報端末から送信される第２の認証子を受信し、受信した第２の認証子を、鍵情報を用いて検証し、第２の認証子に含まれる第１の認証子を、署名鍵に対応する検証鍵を用いて検証するようにしたので、情報端末において動作するアプリケーションが、適切な情報端末にインストールされた正当なアプリケーションであるか否かを検証することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態によるアプリケーション認証システムの構成例を示すブロック図である。
【図２】本発明の一実施形態によるアプリケーション認証システムの概要を示す図である。
【図３】本発明の一実施形態によるアプリケーション認証システムの有効化処理の動作例を示すシーケンス図である。
【図４】本発明の一実施形態によるアプリケーション認証システムの有効化処理の動作例を示すシーケンス図である。
【図５】本発明の一実施形態によるアプリケーション認証システムの有効化処理の動作例を示すシーケンス図である。
【図６】本発明の一実施形態によるアプリケーション認証システムの有効化処理の動作例を示すシーケンス図である。
【図７】本発明の一実施形態によるアプリケーション認証システムの有効化処理の動作例を示すシーケンス図である。
【図８】本発明の一実施形態によるアプリケーション認証システムのＡＰ検証処理の動作例を示すシーケンス図である。
【図９】本発明の一実施形態によるアプリケーション認証システムのＡＰ検証処理の動作例を示すシーケンス図である。
【図１０】本発明の一実施形態によるアプリケーション認証システムのＡＰ検証処理の動作例を示すシーケンス図である。
【図１１】本発明の一実施形態によるアプリケーション認証システムのＡＰ検証処理の動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態について、図面を参照して説明する。
図１は、本実施形態によるアプリケーション認証システム１の構成を示すブロック図である。アプリケーション認証システム１は、認証サーバ１００と、業務ＡＰサーバ２００と、情報端末３００とを備えている。ここで、図２を参照して、本実施形態の概要について説明する。本実施形態では、スマートフォンやタブレットＰＣ等の情報端末３００にアプリケーション（以下、ＡＰともいう）をインストールし、例えば企業内において、企業内の情報を扱うために利用する例を示す。そこで、このような情報端末３００自体と、その情報端末３００において動作するＡＰとの正当性を、認証サーバ１００との三者間で検証することによってセキュリティを確保する。ここで、ＡＰの正当性とは、情報端末３００において動作するＡＰが、ＡＰ管理者がインストールしたＡＰであるか否かを示し、ＡＰ管理者がインストールしたＡＰであれば正当であり、ＡＰ管理者がインストールしたＡＰでなければ正当でない。
【００１５】
まず、符号ａに示すＡＰ開発者は、ＡＰのソースコードに定められた鍵情報をハードコーディングし、ハードコーディングした鍵情報に基づく暗号化処理を行うソースコードを作成する。鍵情報は、本実施形態においては共通鍵暗号方式による共通鍵であることとし、コンピュータに発生させた擬似乱数である。そして、作成したソースコードに基づくコンパイルをコンピュータ装置に行わせ、オブジェクトコードであるＡＰを生成させる。このように生成されたオブジェクトコードからは、その元であるソースコードにハードコーディングされた鍵情報を解読することは非常に困難である。ここで、ソースコードにハードコーディングされた鍵情報を、ＨＣＰ（ハードコードパラメータ）という。ＡＰは、例えば社内のデータベースに記憶されている個人情報や顧客情報等の機密情報に、ネットワークを介してアクセスする機能を有するものとする。
【００１６】
ＡＰ開発者は、ＨＣＰと、ＨＣＰを埋め込んだＡＰとを、物理媒体に記憶させること等により、符号ｂに示すプロジェクト管理者に受け渡す。プロジェクト管理者は、ＡＰの運用を管理し、企業内において情報端末３００を用いてＡＰを使用するＡＰ利用者に、ＡＰがインストールされた情報端末３００を配布する。ここで、プロジェクト管理者のコンピュータ装置は、署名鍵を生成し、情報端末３００が備える耐タンパ装置（セキュアエレメント）に、署名鍵とＨＣＰとを記憶させておく。また、署名鍵に対応する検証鍵とＨＣＰとを、符号ｃに示すような、信頼できる第三者である認証局の認証サーバ１００に記憶させておく。ここでは、プロジェクト管理者のコンピュータ装置が生成する署名鍵は共通鍵暗号方式による鍵情報であるとして説明するため、署名鍵と共通鍵とは同一の鍵情報である。ただし、後述するように、鍵情報としては公開鍵暗号方式の秘密鍵と公開鍵とを用いることもできる。プロジェクト管理者は、情報端末３００にＡＰをインストールし、符号ｄに示すＡＰ利用者に、情報端末３００を配布する。
【００１７】
ＡＰ利用者は、プロジェクト管理者から配布された情報端末３００を利用して、インストールされたＡＰの起動要求を入力する。情報端末３００に記憶されているＡＰは、認証サーバ１００と通信を行ってＡＰの有効化処理を行う。有効化処理とは、ＡＰが認証サーバ１００と通信を行って、情報端末３００にインストールされたＡＰが動作することを認証サーバ１００との間で共有するための処理である。このような有効化処理により、認証サーバ１００によって情報端末３００と情報端末３００にインストールされたＡＰとが検証され、検証成功と判定された場合、情報端末３００は、ネットワークを介して符号ｅに示す社内サービスを提供する業務ＡＰサーバ２００に接続する。ここでは、１台の情報端末３００を図示して説明するが、アプリケーション認証システム１は、社内サービスを利用する複数のＡＰ利用者のそれぞれに配布する複数台の情報端末３００を備えることができる。
【００１８】
図１に戻り、認証サーバ１００は、情報端末３００と情報端末３００に記憶されたＡＰとの正当性を検証する認証局のコンピュータ装置であり、ＨＣＰ記憶部１０１と、検証鍵記憶部１０２と、Ｃ＆Ｒ処理部１０３と、受信部１０４と、復号部１０５と、検証部１０６と、第２のセッション鍵生成部１０７と、固有ＡＰＩＤ生成部１０８とを備えている。
【００１９】
ＨＣＰ記憶部１０１には、ＡＰを識別するＡＰＩＤ毎に、そのＡＰに埋め込まれたＨＣＰが対応付けられて予め記憶されている。ここで、ＨＣＰは、プロジェクト管理者と認証局との間で適切な方法で共有される。ＨＣＰの共有方法としては、例えば、（１）対面による事前共有、（２）鍵配布センターによる共有、（３）公開鍵による共有、などの共有方法がある。
【００２０】
（１）の方法は、認証局がプロジェクト管理者の本人確認を行うものである。（２）の方法では、事前に鍵配送センターにプロジェクト管理者のコンピュータ装置と認証局のコンピュータ装置との通信路を暗号化するための共通鍵をそれぞれ登録しておく。鍵配布センターは、セッション鍵を生成して、プロジェクト管理者の共通鍵でセッション鍵を暗号化し、プロジェクト管理者のコンピュータ装置に送信する。そして、認証局の共通鍵を用いてセッション鍵を暗号化し、認証局のコンピュータ装置に送信する。プロジェクト管理者のコンピュータ装置と、認証局のコンピュータ装置とは、鍵配布センターから送信されたセッション鍵を用いて暗号化通信を行い、ＨＣＰを共有する。（３）の方法は、ハイブリッドな鍵方式による共有であり、公開鍵証明書を別途用いるようにしても良い。
【００２１】
検証鍵記憶部１０２には、情報端末３００の耐タンパ装置３２０に予め記憶されている署名鍵に対応する検証鍵が記憶されている。このような署名鍵は、プロジェクト管理者のコンピュータ装置によって生成され、上述の（１）〜（３）の共有方法や、（４）ＤＨ（Diffie Hellman）方式による共有方法によって共有される。（４）の方法は、プロジェクト管理者と認証局とが秘密の数を作り出し、そこからＨＣＰを作り出す方法である。
【００２２】
Ｃ＆Ｒ（チャレンジアンドレスポンス）処理部１０３は、情報端末３００の正当性を検証するためのチャレンジであるメッセージを生成して情報端末に送信し、送信したチャレンジに対する応答であるレスポンスを受信して検証処理を行う。チャレンジ生成には、擬似乱数生成器を用いることができる。このように、本実施形態では、認証サーバ１００と情報端末３００との間で通信を行う際には、チャレンジレスポンス方式による認証を行うようにしたので、ネットワークを流れるメッセージの内容を毎回異なるものにすることができる。すなわち、メッセージが一度盗聴された場合でも、再度の通信の際には異なる値であるメッセージを利用することができ、盗聴による脅威が軽減される。
【００２３】
受信部１０４は、Ｃ＆Ｒ処理部１０３が情報端末３００に送信したチャレンジに応じて、その情報端末３００から送信される認証子（第２の認証子）を受信する。認証子とは、鍵情報と、認証の対象であるメッセージとに基づいて生成される情報である。例えば、認証子としては、メッセージ自体をＡＥＳ（Advanced Encryption Standard)）等のアルゴリズムによって暗号化した結果や、認証の対象であるメッセージと、鍵情報とメッセージとに基づいて生成されるＭＡＣ（Message Authentication Code）との情報等が適用できる。また、受信部１０４は、情報端末３００から送信される固有鍵を受信し、その情報端末３００に記憶されているＡＰを識別する固有ＡＰＩＤに対応付けて、固有ＡＰＩＤ生成部１０８の記憶領域に記憶させる。固有鍵は、複数の情報端末３００において動作するＡＰについて付与される固有の鍵情報であり、固有ＡＰＩＤは、複数の情報端末３００のそれぞれにおいて動作するＡＰの固有の識別情報である。すなわち、同一のＡＰであっても、記憶されている情報端末３００が異なる場合には、異なる固有鍵、異なる固有ＡＰＩＤが付与される。
【００２４】
復号部１０５は、ＨＣＰ記憶部１０１に記憶されているＨＣＰを読み出し、読み出したＨＣＰを用いて、情報端末３００から送信される暗号化情報を復号する。また、復号部１０５は、第２のセッション鍵生成部１０７に記憶されている第２のセッション鍵を読み出し、読み出した第２のセッション鍵を用いて、情報端末３００から送信される暗号化情報を復号する。
【００２５】
検証部１０６は、ＨＣＰ記憶部１０１に記憶されているＨＣＰを読み出し、読み出したＨＣＰを用いて、情報端末３００から送信される認証子を検証する。検証処理は、例えば、送信したチャレンジに対するレスポンスである認証子を復号し、復号した結果が、送信したチャレンジと一致するか否かを判定することによって行う。一致すれば検証成功と判定し、一致しなければ検証失敗と判定する。また、検証部１０６は、第２のセッション鍵生成部１０７に記憶されている第２のセッション鍵を読み出し、読み出した第２のセッション鍵を用いて、情報端末３００から送信される認証子を検証する。例えば、検証部１０６は、受信部１０４が受信した第２の認証子を、ＨＣＰ記憶部１０１に記憶されているＨＣＰを用いて検証し、第２の認証子に含まれる第１の認証子を、検証鍵記憶部１０２に記憶されている検証鍵を用いて検証する。
【００２６】
第２のセッション鍵生成部１０７は、擬似乱数を生成することにより、鍵情報である第２のセッション鍵を生成する。第２のセッション鍵は、認証サーバ１００と情報端末３００との間で共有されるとともに、情報端末３００と業務ＡＰサーバ２００とが暗号化通信を行うために、業務ＡＰサーバ２００との間でも共有される。認証サーバ１００と業務ＡＰサーバ２００とがセッション鍵を共有する方法としては、上述の（１）〜（３）のような方法が適用できる。
【００２７】
固有ＡＰＩＤ生成部１０８は、検証部１０６によって検証成功と判定された場合、第２の認証子を送信した情報端末３００に記憶されているＡＰを識別する固有ＡＰＩＤを生成し、自身の記憶領域に記憶させる。また、固有ＡＰＩＤ生成部１０８には、このような固有ＡＰＩＤ毎に、対応するＡＰＩＤと、対応する固有鍵とが対応付けられて記憶される。
【００２８】
業務ＡＰサーバ２００は、情報端末３００において動作するＡＰと通信を行うコンピュータ装置である。ここで、業務ＡＰサーバ２００と情報端末３００とは、認証サーバ１００によって生成された第２のセッション鍵を用いて暗号化通信を行う。
【００２９】
情報端末３００は、スマートフォンやタブレットＰＣ等のコンピュータ装置である。情報端末３００は、ＡＰ記憶部３１０と、耐タンパ装置３２０と、制御部３３０とを備えている。
ＡＰ記憶部３１０には、ＨＣＰがハードコーディングされたソースコードに基づいてコンパイルされ生成されたＡＰが記憶される。ＡＰ記憶部３１０に記憶されているＡＰは、例えば企業内における業務アプリケーション等の機能を備えるとともに、耐タンパ装置３２０や認証サーバ１００と通信を行ってＡＰ認証を行う機能を有する。ＡＰは、例えば、情報端末３００から送信されるチャレンジを、ＨＣＰを用いて暗号化して耐タンパ装置３２０に入力し、耐タンパ装置３２０に入力したチャレンジに応じて耐タンパ装置３２０から出力される第１の認証子（レスポンス）と、ＨＣＰとに基づいて第２の認証子（レスポンス）を生成し、認証サーバ１００に送信する機能を有する。ＡＰ記憶部３１０に記憶されているＡＰは、制御部３３０によって読み出され、実行される。
【００３０】
耐タンパ装置３２０は、ＨＣＰ記憶部３２１と、署名鍵記憶部３２２と、暗号処理部３２３と、有効化フラグ記憶部３２４と、Ｃ＆Ｒ処理部３２５と、第１のセッション鍵生成部３２６と、固有鍵生成部３２７と、有効化フラグ制御部３２８と、要求送信部３２９とを備えている。
【００３１】
ＨＣＰ記憶部３２１には、情報端末３００において動作するＡＰに予めハードコーディングされたＨＣＰが記憶されている。ここでは、プロジェクト管理者が、ＡＰ開発者から適切に受け取ったＨＣＰが、プロジェクト管理者のコンピュータ装置を介してＨＣＰ記憶部３２１に予め記憶される。
【００３２】
署名鍵記憶部３２２には、予め定められた署名鍵が記憶されている。署名鍵は、認証サーバ１００の検証鍵記憶部１０２に記憶された検証鍵に対応する鍵情報であり、例えば上述の（１）〜（４）のいずれかの方法によって共有され、予め記憶される。
【００３３】
暗号処理部３２３は、制御部３３０において動作するＡＰから入力される、ＨＣＰを用いて暗号化されたチャレンジを、ＨＣＰ記憶部３２１に記憶されているＨＣＰを用いて復号する。また、暗号処理部３２３は、このように復号したチャレンジと、署名鍵記憶部３２２から読み出した署名鍵とに基づいて、第１の認証子を生成して出力する。
【００３４】
有効化フラグ記憶部３２４には、ＡＰ記憶部３１０に記憶されている複数のＡＰ毎に、そのＡＰを識別するＡＰＩＤと、複数の情報端末３００のうちでその情報端末３００に固有に付与される固有ＡＰＩＤと、そのＡＰが有効化されているか否かを示す有効化フラグとが対応付けられて記憶される。有効とは、ＡＰが耐タンパ装置３２０と認証サーバ１００とによって検証され、正当なものであると判定されていることをいう。有効化フラグは、例えば有効であればＯＮ（１）の値が、有効でなければＯＦＦ（０）の値が対応付けられる。有効化フラグは、例えば１ビットで表され、ＩＳＯ／ＩＥＣ７８１６−４に規定されるＥＦ（エレメンタリファイル）に格納される。
【００３５】
Ｃ＆Ｒ処理部３２５は、制御部３３０において動作するＡＰの正当性を検証するためのチャレンジであるメッセージを生成してＡＰに出力し、出力したチャレンジに対する応答であるレスポンスを受信して検証処理を行う。
【００３６】
第１のセッション鍵生成部３２６は、擬似乱数を生成することにより、鍵情報である第１のセッション鍵を生成する。第１のセッション鍵は、耐タンパ装置３２０と制御部３３０との間で共有される。
固有鍵生成部３２７は、認証サーバ１００によって制御部３３０において動作するＡＰの正当性が検証され、検証成功と判定された場合、複数の情報端末３００に記憶されたＡＰのうちで一意となる鍵情報である固有鍵を生成する。
【００３７】
有効化フラグ制御部３２８は、制御部３３０において動作するアプリや認証サーバ１００から送信される情報に応じて、有効化フラグ記憶部３２４に記憶されている有効化フラグの読み出しや更新を行う。
要求送信部３２９は、業務ＡＰサーバ２００への接続要求コマンドや、ＡＰ起動要求コマンドを生成して送信する。
【００３８】
制御部３３０は、ＡＰ利用者から入力されるＡＰの起動要求に応じて、起動要求に対応するＡＰをＡＰ記憶部３１０から読み出して動作させる。ここで、制御部３３０は、ＡＰ記憶部３１０から読み出したＡＰに基づいて、ＨＣＰ記憶部３３１と、認証要求部３３２と、暗号処理部３３３と、セッション鍵受信部３３４と、有効化フラグ確認要求部３３５と、要求送信部３３６との機能部を構成する。
ＨＣＰ記憶部３３１には、ＡＰＩＤ毎に予め定められたＨＣＰが対応付けられて記憶されている。
【００３９】
認証要求部３３２は、耐タンパ装置３２０や認証サーバ１００に対してＣ＆Ｒによる認証要求を行う
暗号処理部３３３は、ＨＣＰ記憶部３３１から読み出したＨＣＰや、セッション鍵受信部３３４から読み出した第１のセッション鍵または第２のセッション鍵による暗号化処理または復号処理を行う。
【００４０】
セッション鍵受信部３３４は、耐タンパ装置３２０の第１のセッション鍵生成部３２６によって生成された第１のセッション鍵を受信し、自身の記憶領域に記憶させる。同様に、認証サーバ１００の第２のセッション鍵生成部１０７によって生成された第２のセッション鍵を受信し、自身の記憶領域に記憶させる。
【００４１】
有効化フラグ確認要求部３３５は、ＡＰの起動時に、耐タンパ装置３２０に対して有効化フラグ確認要求を入力する。有効化フラグ確認要求部３３５が耐タンパ装置３２０に入力する確認要求には、自身のＡＰを識別するＡＰＩＤが含まれる。
要求送信部３３６は、耐タンパ装置３２０から送信される各要求を、認証サーバ１００に送信する。
【００４２】
次に、本実施形態によるアプリケーション認証システム１の動作例を説明する。図３から図７は、アプリケーション認証システム１によるＡＰ有効化処理を示すシーケンス図である。
図３に示すように、まず、ＡＰ利用者により、情報端末３００に起動要求が入力されると、制御部３３０が、起動要求の入力を受け付ける（ステップＳ１）。制御部３３０は、起動要求に対応するＡＰをＡＰ記憶部３１０から読み出して展開し、制御部３３０に含まれる各機能部を構成する。認証要求部３３２は、自身のＡＰＩＤが含まれる認証要求を耐タンパ装置３２０に入力する（ステップＳ２）。Ｃ＆Ｒ処理部３２５は、チャレンジを生成し（ステップＳ３）、制御部３３０に出力する（ステップＳ４）。制御部３３０の暗号処理部３３３は、ＨＣＰ記憶部３３１に記憶されているＨＣＰを読み出し、読み出したＨＣＰと、耐タンパ装置３２０から出力されたチャレンジとに基づいて認証子を生成する（ステップＳ５）。
【００４３】
暗号処理部３３３は、生成した認証子を耐タンパ装置３２０に入力する（ステップＳ６）。Ｃ＆Ｒ処理部３２５は、ＨＣＰ記憶部３２１に記憶されているＨＣＰを読み出し、読み出したＨＣＰを用いて、制御部３３０から入力された認証子を検証する（ステップＳ７）。ここで、Ｃ＆Ｒ処理部３２５が、検証失敗と判定すれば（ステップＳ８：ＮＯ）、エラーとして処理を終了する（ステップＳ９）。一方、Ｃ＆Ｒ処理部３２５が、検証成功と判定すれば（ステップＳ８：ＹＥＳ）、第１のセッション鍵生成部３２６が、第１のセッション鍵を生成して自身の記憶領域に記憶させる（ステップＳ１０）。暗号処理部３２３は、ＨＣＰ記憶部３２１に記憶されたＨＣＰを読み出し、読み出したＨＣＰにより、第１のセッション鍵生成部３２６が生成した第１のセッション鍵を暗号化する（ステップＳ１１）。
【００４４】
暗号処理部３２３は、暗号化した第１のセッション鍵を出力する（ステップＳ１２）。セッション鍵受信部３３４は、ＨＣＰ記憶部３３１に記憶されているＨＣＰを読み出し、読み出したＨＣＰにより、暗号処理部３２３が出力した第１のセッション鍵を復号し、自身の記憶領域に記憶させる（ステップＳ１３）。
図４に進み、有効化フラグ確認要求部３３５が、自身のＡＰＩＤに対応する有効化フラグの確認要求を耐タンパ装置３２０に入力する（ステップＳ１４）。有効化フラグの確認要求には、確認要求を入力するＡＰのＡＰＩＤが含まれる。耐タンパ装置３２０の有効化フラグ制御部３２８は、有効化フラグ確認要求部３３５から入力された有効化フラグの確認要求に応じて、確認要求に含まれるＡＰＩＤに対応付けられて有効化フラグ記憶部３２４に記憶されている有効化フラグを読み出す（ステップＳ１５）。
【００４５】
有効化フラグ制御部３２８は、読み出した有効化フラグが、無効を示すと判定すると（ステップＳ１６：ＮＯ）、有効化要求コマンドを生成する（ステップＳ１７）。暗号処理部３２３は、署名鍵記憶部３２２に記憶されている署名鍵を読み出し、読み出した署名鍵と、有効化フラグ制御部３２８が生成した有効化要求コマンドに基づいて認証子を生成する（ステップＳ１８）。暗号処理部３２３は、第１のセッション鍵生成部３２６が生成した第１のセッション鍵を用いて、生成した認証子を暗号化する（ステップＳ１９）。暗号処理部３２３は、暗号化した認証子を出力する（ステップＳ２０）。
【００４６】
暗号処理部３２３から、暗号化した認証子が出力されると、要求送信部３３６は、自身のＡＰＩＤが含まれる認証要求を認証サーバ１００に送信する（ステップＳ２１）。認証サーバ１００が、情報端末３００から送信された認証要求を受信すると、Ｃ＆Ｒ処理部１０３は、チャレンジを生成し（ステップＳ２２）、情報端末３００に送信する（ステップＳ２３）。情報端末３００が、認証サーバ１００から送信されたチャレンジを受信すると、暗号処理部３３３は、ＨＣＰ記憶部３３１に記憶されているＨＣＰを読み出し、読み出したＨＣＰを鍵情報として、認証サーバ１００から送信されたチャレンジの認証子を生成する（ステップＳ２４）。暗号処理部３３３は、生成した認証子を認証サーバ１００に送信する（ステップＳ２５）。認証サーバ１００のＣ＆Ｒ処理部１０３は、情報端末３００から送信された認証子を受信すると、ＨＣＰ記憶部１０１に記憶されているＨＣＰを読み出し、読み出したＨＣＰを用いて認証子を検証する（ステップＳ２６）。
【００４７】
図５に進み、Ｃ＆Ｒ処理部１０３が、検証失敗と判定すれば（ステップＳ２７：ＮＯ）、エラーとして処理を終了する（ステップＳ２８）。一方、Ｃ＆Ｒ処理部１０３が、検証成功と判定すれば（ステップＳ２７：ＹＥＳ）、第２のセッション鍵生成部１０７が、第２のセッション鍵を生成して自身の記憶領域に記憶させる（ステップＳ２９）。辞書データ生成部１０７は、ＨＣＰ記憶部１０１に記憶されているＨＣＰを読み出し、読み出したＨＣＰにより、第２のセッション鍵を暗号化する（ステップＳ３０）。辞書データ生成部１０７は、暗号化した第２のセッション鍵を情報端末３００に送信する（ステップＳ３１）。情報端末３００のセッション鍵受信部３３４は、ＨＣＰ記憶部３３１に記憶されているＨＣＰを読み出し、読み出したＨＣＰにより、認証サーバ１００から送信された第２のセッション鍵を復号し、自身の記憶領域に記憶させる（ステップＳ３２）。
【００４８】
暗号処理部３３３は、セッション鍵受信部３３４に記憶された第１のセッション鍵を読み出し、ステップＳ２０において耐タンパ装置３２０から出力された認証子を、読み出した第１のセッション鍵で復号し、復号した認証子を、セッション鍵受信部３３４に記憶された第２のセッション鍵を用いて暗号化する（ステップＳ３３）。暗号処理部３３３は、暗号化した認証子を認証サーバ１００に送信する（ステップＳ３４）。認証サーバ１００の受信部１０４は、情報端末３００から送信される、暗号化された認証子を受信する。復号部１０５が、第２のセッション鍵生成部１０７に記憶されている第２のセッション鍵を用いて、受信部１０４が受信した認証子を検証する。ここで検証失敗と判定すれば、エラーとして処理を終了する。検証成功と判定すれば、認証子に含まれる有効化要求コマンドを読み出す（ステップＳ３５）。
【００４９】
そして、認証サーバ１００のＣ＆Ｒ処理部１０３が、チャレンジを生成し、情報端末３００に送信すると、情報端末３００の暗号処理部３３３が、認証サーバ１００から送信されたチャレンジを受信する。暗号処理部３３３は、ＨＣＰ記憶部３３１に記憶されたＨＣＰを読み出し、読み出したＨＣＰによりチャレンジを暗号化する（ステップＳ３８）。暗号処理部３３３は、暗号化したチャレンジを耐タンパ装置３２０に入力する（ステップＳ３９）。
【００５０】
図６に進み、耐タンパ装置３２０の暗号処理部３２３は、ＨＣＰ記憶部３２１に記憶されているＨＣＰを読み出し、読み出したＨＣＰにより、制御部３３０から入力されたチャレンジを復号する（ステップＳ４０）。そして、署名鍵記憶部３２２に記憶されている署名鍵を読み出し、読み出した署名鍵と、復号したチャレンジとに基づいて認証子を生成する（ステップＳ４１）。暗号処理部３２３は、生成した認証子を出力する（ステップＳ４２）。制御部３３０の暗号処理部３３３は、ＨＣＰ記憶部３３１からＨＣＰを読み出し、読み出したＨＣＰと、耐タンパ装置３２０から出力された認証子とに基づいて第２の認証子を生成する（ステップＳ４３）。暗号処理部３３３は、生成した第２の認証子を認証サーバ１００に送信する（ステップＳ４４）。
【００５１】
認証サーバ１００の受信部１０４が、情報端末３００から送信された第２の認証子を受信すると、検証部１０６が、ＨＣＰ記憶部１０１に記憶されているＨＣＰを読み出し、第２の認証子を検証する（ステップＳ４５）。ここで検証失敗と判定すれば、エラーとして処理を終了する。検証成功と判定すれば、検証鍵記憶部１０２に記憶されている検証鍵を読み出し、読み出した検証鍵により、第２の認証子に含まれる認証子を検証する（ステップＳ４６）。ここで検証失敗と判定すれば、エラーとして処理を終了する。検証成功と判定すれば、固有ＡＰＩＤ生成部１０８が、情報端末３００のＡＰを識別する固有ＡＰＩＤを生成し、自身の記憶領域に記憶させる（ステップＳ４７）。
【００５２】
また、固有ＡＰＩＤ生成部１０８は、有効化許可コマンドを生成し、生成した有効化許可コマンドと、固有ＡＰＩＤとを、第２のセッション鍵生成部１０７から読み出した第２のセッション鍵により暗号化する（ステップＳ４８）。固有ＡＰＩＤ生成部１０８は、暗号化した有効許可コマンドと固有ＡＰＩＤとを、情報端末３００に送信する（ステップＳ４９）。情報端末３００の暗号処理部３３３は、認証サーバ１００から送信された、暗号化された有効化許可コマンドと固有ＡＰＩＤとを、セッション鍵受信部３３４から読み出した第２のセッション鍵で復号し、セッション鍵受信部３３４から読み出した第１のセッション鍵により暗号化する（ステップＳ５０）。暗号処理部３３３は、第１のセッション鍵により暗号化した有効化許可コマンドと固有ＡＰＩＤとを、耐タンパ装置３２０に入力する（ステップＳ５１）。
【００５３】
図７に進み、耐タンパ装置３２０の暗号処理部３２３は、暗号化された有効化許可コマンドと固有ＡＰＩＤとを、第１のセッション鍵生成部３２６から読み出した第１のセッション鍵を用いて復号する（ステップＳ５２）。有効化フラグ制御部３２８は、暗号処理部３２３によって復号された有効化許可コマンドを実行し、制御部３３０のＡＰＩＤに対応付けられて有効化フラグ記憶部３２４に記憶されている有効化フラグをＯＮに更新する（ステップＳ５３）。また、復号した固有ＡＰＩＤを、有効化フラグ記憶部３２４に記憶させる（ステップＳ５４）。そして、固有鍵生成部３２７が、固有鍵を生成する（ステップＳ５５）と、暗号処理部３２３が、第１のセッション鍵生成部３２６から読み出した第１のセッション鍵を用いて固有鍵を暗号化し（ステップＳ５６）、暗号化した固有鍵を出力する（ステップＳ５７）。
【００５４】
制御部３３０の暗号処理部３３３は、セッション鍵受信部３３４から読み出した第１のセッション鍵を用いて、耐タンパ装置３２０から出力された固有鍵を復号し、セッション鍵受信部３３４から読み出した第２のセッション鍵を用いて暗号化する（ステップＳ５８）。暗号処理部３３３は、暗号化した固有鍵を認証サーバ１００に送信する（ステップＳ５９）。認証サーバ１００の受信部１０４が、情報端末３００から送信された、暗号化された固有鍵を受信すると、固有ＡＰＩＤ生成部１０８が、第２のセッション鍵生成部１０７から読み出した第２のセッション鍵を用いて固有鍵を復号し、ステップＳ４７において生成した固有ＡＰＩＤと対応付けて自身の記憶領域に記憶させる（ステップＳ６０）。そして、ステップＳ１４に戻り、有効化フラグがＯＮになった状態でＡＰの検証処理を行う。
【００５５】
図８から図１１は、アプリケーション認証システム１によるＡＰ検証処理を示すシーケンス図である。
図４のステップＳ１６において、有効化フラグ制御部３２８が、読み出した有効化フラグは有効を示すと判定すると（ステップＳ１６：ＹＥＳ）、図８に進み、要求送信部３２９が、接続要求コマンドとＡＰ起動要求コマンドとを生成する（ステップＳ６１）。暗号処理部３２３は、固有鍵生成部３２７に記憶されている固有鍵を読み出し、要求送信部３２９が生成した接続要求コマンドの認証子を生成する。また、第１のセッション鍵生成部３２６に記憶されている第１のセッション鍵を読み出し、認証子を暗号化する（ステップＳ６２）。また、暗号処理部３２３は、要求送信部３２９が生成したＡＰ起動要求コマンドを、第１のセッション鍵を用いて暗号化する（ステップＳ６３）。
【００５６】
暗号処理部３２３は、暗号化した接続要求コマンドの認証子と、暗号化したＡＰ起動要求コマンドと、固有ＡＰＩＤとを出力する（ステップＳ６４）。制御部３３０の暗号処理部３３３は、セッション鍵受信部３３４に記憶されている第１のセッション鍵を読み出し、暗号処理部３２３から出力されたＡＰ起動要求コマンドを復号する（ステップＳ６５）。要求送信部３３６は、復号されたＡＰ起動要求コマンドに応じて、自身の固有ＡＰＩＤが含まれる認証要求を、業務ＡＰサーバ２００に送信する（ステップＳ６６）。業務ＡＰサーバ２００は、情報端末３００から送信された認証要求を認証サーバ１００に転送する（ステップＳ６７）。認証サーバ１００の受信部１０４が、業務ＡＰサーバ２００から転送された認証要求を受信すると、Ｃ＆Ｒ処理部１０３が、チャレンジを生成し（ステップＳ６８）、業務ＡＰサーバ２００に送信する（ステップＳ６９）。業務ＡＰサーバ２００は、認証サーバ１００から送信されたチャレンジを情報端末３００に転送する（ステップＳ７０）。
【００５７】
図９に進み、情報端末３００の暗号処理部３３３は、ＨＣＰ記憶部３３１に記憶されているＨＣＰを読み出し、読み出したＨＣＰとチャレンジとに基づいて認証子を生成する（ステップＳ７１）。暗号処理部３３３は、生成した認証子を業務ＡＰサーバ２００に送信する（ステップＳ７２）。業務ＡＰサーバ２００は、情報端末３００から送信された認証子を認証サーバ１００に転送する（ステップＳ７３）。認証サーバ１００の受信部１０４が、業務ＡＰサーバ２００から転送された認証子を受信すると、検証部１０６は、ＨＣＰ記憶部１０１に記憶されているＨＣＰを読み出し、認証子を検証する（ステップＳ７４）。検証部１０６が検証失敗と判定すれば、エラーとして処理を終了し、検証成功と判定すれば、第２のセッション鍵生成部１０７が、第２のセッション鍵を生成する（ステップＳ７５）。
【００５８】
第２のセッション鍵生成部１０７は、ＨＣＰ記憶部１０１に記憶されているＨＣＰを読み出し、読み出したＨＣＰを用いて第２のセッション鍵を暗号化する（ステップＳ７６）。第２のセッション鍵生成部１０７は、暗号化した第２のセッション鍵を業務ＡＰサーバ２００に送信する（ステップＳ７７）。業務ＡＰサーバ２００は、認証サーバ１００から転送された第２のセッション鍵を情報端末３００に転送する（ステップＳ７８）。制御部３３０の暗号処理部３３３は、ＨＣＰ記憶部３３１に記憶されているＨＣＰを読み出し、業務ＡＰサーバ２００から送信された第２のセッション鍵を復号する（ステップＳ７９）。
【００５９】
暗号処理部３３３は、セッション鍵受信部３３４から読み出した第１のセッション鍵を用いて、ステップＳ６４において出力された接続要求コマンドを復号し、セッション鍵受信部３３４から読み出した第２のセッション鍵を用いて暗号化する（ステップＳ８０）。そして、暗号処理部３３３は、暗号化した接続要求コマンドを業務ＡＰサーバ２００に送信する（ステップＳ８１）。業務ＡＰサーバ２００は、情報端末３００から送信された、暗号化された接続要求コマンドを、認証サーバ１００に転送する（ステップＳ８２）。
【００６０】
図１０に進み、認証サーバ１００の受信部１０４が、業務ＡＰサーバ２００から転送された、暗号化された接続要求コマンドを受信すると、復号部１０５が、第２のセッション鍵生成部１０７から読み出した２のセッション鍵を用いて接続要求コマンドを復号する（ステップＳ８３）。認証サーバ１００のＣ＆Ｒ処理部１０３は、復号された接続要求コマンドに応じて、チャレンジを生成する（ステップＳ８４）。Ｃ＆Ｒ処理部１０３は、生成したチャレンジを、業務ＡＰサーバ２００に送信する（ステップＳ８５）。
【００６１】
業務ＡＰサーバ２００は、認証サーバ１００から送信されたチャレンジを、情報端末３００に転送する（ステップＳ８６）。情報端末３００の暗号処理部３３３は、業務ＡＰサーバ２００から転送されたチャレンジを受信すると、ＨＣＰ記憶部３３１から読み出したＨＣＰを用いて暗号化する（ステップＳ８７）。暗号処理部３３３は、暗号化したチャレンジを耐タンパ装置３２０に入力する（ステップＳ８８）。耐タンパ装置３２０の暗号処理部３２３は、受信したチャレンジを、ＨＣＰ記憶部３２１から読み出したＨＣＰを用いて復号し、復号したチャレンジと、固有鍵生成部３２７から読み出した固有鍵とに基づいて認証子を生成する（ステップＳ８９）。暗号処理部３２３は、生成した認証子を出力する（ステップＳ９０）。
【００６２】
制御部３３０の暗号処理部３３３は、耐タンパ装置３２０から出力された認証子と、ＨＣＰ記憶部３３１から読み出したＨＣＰとに基づいて、第２の認証子を生成する（ステップＳ９１）。暗号処理部３３３は、生成した第２の認証子を業務ＡＰサーバ２００に送信する（ステップＳ９２）。業務ＡＰサーバ２００は、情報端末３００から送信された第２の認証子を、認証サーバ１００に転送する（ステップＳ９３）。認証サーバ１００
受信部１０４が、業務ＡＰサーバ２００から送信された第２の認証子を受信すると、検証部１０６が、ＨＣＰ記憶部１０１から読み出したＨＣＰを用いて第２の認証子を検証する（ステップＳ９４）。
【００６３】
検証部１０６が、検証失敗と判定すればエラーとして処理を終了し、認証成功と判定すれば、固有ＡＰＩＤ生成部１０８に記憶されている固有鍵を読出し、読み出した固有鍵を用いて認証子を検証する（ステップＳ９５）。検証失敗と判定すればエラーとして処理を終了し、認証成功と判定すれば、図１１に進み、認証サーバ１００が接続許可コマンドを生成して第２のセッション鍵生成部１０７から読み出した第２のセッション鍵を用いて暗号化し（ステップＳ９６）、業務ＡＰサーバ２００に送信する（ステップＳ９７）。
【００６４】
業務ＡＰサーバ２００は、認証サーバ１００から送信される、暗号化した接続許可コマンドを、情報端末３００に転送する（ステップＳ９８）。制御部３３０の暗号処理部３３３は、業務ＡＰサーバ２００から転送された接続許可コマンドを、セッション鍵受信部３３４から読み出した第２のセッション鍵を用いて復号する（ステップＳ９９）。認証サーバ１００は、第２のセッション鍵生成部１０７に記憶されている第２のセッション鍵を業務ＡＰサーバ２００に送信すると（ステップＳ１００）、業務ＡＰサーバ２００は、認証サーバ１００から送信された第２のセッション鍵を自身の記憶領域に記憶させる。以降、業務ＡＰサーバ２００と情報端末３００とは、第２のセッション鍵を用いて、暗号化された通信を行うことができる（ステップＳ１０１）。
【００６５】
以上説明したように、本実施形態によれば、ＡＰのソースコードにハードコーディングされた鍵情報であるＨＣＰを用いて、ＡＰと、耐タンパ装置３２０と、認証サーバ１００とが通信を行い、耐タンパ装置３２０とＡＰとの正当性を、認証サーバ１００を加えた三者間で検証するようにした。これにより、プロジェクト管理者ではない第三者が、正当ではなく、予め定められたＨＣＰが含まれないＡＰを情報端末３００にインストールして起動しようとした場合、検証を失敗させ、エラーとすることができる。このため、例えば、正当なＡＰになりすましたＡＰがインストールされたような場合に、そのＡＰが動作し、機密情報等にアクセスすることを防ぐことができる。
【００６６】
あるいは、例えば何らかの方法により、プロジェクト管理者の管理対象ではない情報端末に、正当なＡＰがインストールされたような場合でも、その情報端末の耐タンパ装置に適切なＨＣＰが記憶されていなければ、検証を失敗させ、エラーとすることができる。このように、本実施形態によれば、正当な情報端末３００において、正当なＡＰが動作しているか否かを検証することができる。これにより、例えば個人情報や顧客情報等の機密情報を扱う企業内においてスマートフォンやタブレットＰＣ等の情報端末を利用する場合にも、安全に処理を行うことができる。
【００６７】
また、本実施形態によれば、耐タンパ装置３２０と制御部３３０において動作するＡＰとの間、および情報端末３００と認証サーバ１００との間で情報の送受信を行う際には、チャレンジレスポンスによる一時的な情報か、あるいは鍵を用いて暗号化された情報を送受信するようにした。これにより、万が一、情報が盗聴されたような場合でも、それにより情報の内容が漏れたり、再生攻撃を仕掛けられたりするといった脅威を低減することができる。
【００６８】
また、ＡＰの有効化処理において、複数の情報端末３００に記憶されたＡＰそれぞれに対応する固有鍵を生成し、この固有鍵を用いて、ＡＰ起動の度に認証を行うようにした。これにより、例えば複数の情報端末３００において同一のＡＰが利用されている場合でも、どの情報端末３００に記憶されているＡＰが動作しているか等の情報を管理することができ、柔軟かつ多様なＡＰの利用管理を行うことができる。
【００６９】
このように、本実施形態によれば、情報端末３００から業務ＡＰサーバ２００にアクセスする際に、業務ＡＰサーバ２００側から情報端末３００にインストールされているＡＰの正当性を確認することができる。また、情報端末３００にＡＰをインストールして配布する際に、情報端末３００に記憶させる設定情報を同一なものとすることができる。例えば、複数のＡＰ利用者の複数の情報端末３００には、同一の署名鍵、同一のＨＣＰが埋め込まれたＡＰを、同様にインストールして配布できる。しかし、有効化処理により、それぞれの情報端末３００のＡＰに固有の固有ＡＰＩＤ、固有鍵が付与されるため、ＡＰ利用者が、情報端末３００を用いて業務ＡＰサーバ２００にアクセスする際には、複数の情報端末３００のうちで、その情報端末３００のＡＰを識別することができる。
【００７０】
上述の例では、ＡＰに埋め込むＨＣＰ、及び耐タンパ装置３２０に記憶させる署名鍵として、共通鍵暗号方式の鍵情報を適用する例を示したが、ＨＣＰ、及び署名鍵としては公開鍵暗号方式の秘密鍵を適用しても良い。この場合、秘密鍵に対応する公開鍵により認証子の検証を行う際には、公開鍵証明書に含まれる公開鍵を用いた認証を行うことができる。公開鍵証明書には、例えば、ＩＴＵ−Ｔ（International Telecommunication Union Telecommunication Standardization Sector）による公開鍵基盤の規格であるＸ．５０９に定められる公開鍵証明書を適用することができる。このような公開鍵証明書には、例えば、発行者、所有者、有効期限、公開鍵証明書バージョン、署名アルゴリズム、鍵情報（公開鍵）などの情報が含まれる。また、公開鍵証明書の拡張領域には、情報端末３００のデバイスＩＤ、ＡＰのハッシュ値、固有ＡＰＩＤ、ＡＰ名称などの情報を含ませることができる。デバイスＩＤとは、例えば、情報端末３００に固有の製造番号等である。ＡＰのハッシュ値とは、例えば、情報端末３００がＡｎｄｒｏｉｄ（登録商標）であれば、「．ａｐｋ」ファイル自体のハッシュ値である。検証の際には、このような情報を用いて、例えばＡＰ毎に有効期間を設けたり、情報端末３００のデバイスＩＤ毎に有効無効を制御したりすることにより、より柔軟に、多様な認証を行うことができる。この場合、認証処理は例えば業務ＡＰサーバ２００が行うようにすることができる。
【００７１】
本実施形態においては、情報端末３００においてＡＰに埋め込むＨＣＰと、署名鍵記憶部３２２に記憶される署名鍵とのいずれか、または双方を公開鍵暗号方式における秘密鍵とし、認証サーバ１００においてＨＣＰ記憶部１０１に記憶されるＨＣＰと、検証鍵記憶部１０２に記憶される検証鍵とのいずれか、または双方を、秘密鍵に対応する公開鍵証明書に置き換えることができる。
情報端末３００のＡＰに埋め込んでおくＨＣＰと認証サーバ１００のＨＣＰ記憶部１０１に記憶させておくＨＣＰとのペアを、このような秘密鍵と公開鍵証明書とのペアに置き換えた場合には、本実施形態におけるステップＳ４５及びステップＳ９４の検証処理を、公開鍵証明書を用いて行うことができる。
署名鍵記憶部３２２に記憶される署名鍵と検証鍵記憶部１０２に記憶される検証鍵とのペアを、このような秘密鍵と公開鍵証明書とのペアに置き換えた場合には、本実施形態におけるステップＳ４６及びステップＳ９５の検証処理を、公開鍵証明書を用いて行うことができる。
【００７２】
あるいは、有効化フラグ記憶部３２４に記憶させる有効化フラグとして、公開鍵暗号方式の公開鍵証明書を適用することもできる。この場合、例えば、耐タンパ装置３２０の署名鍵記憶部３２２に、公開鍵暗号方式の署名鍵と、この署名鍵に対応する公開鍵証明書を記憶させる。そして、図４に示したステップＳ１５の有効化フラグのチェック処理において、公開鍵証明書に応じた検証を行う。すなわち、本実施形態においては、耐タンパ装置３２０の有効化フラグ記憶部３２４に、有効化フラグとしてＯＮ（１）の値、またはＯＦＦ（０）の値のいずれかが記憶されることとしているが、このようなフラグに加え、公開鍵証明書を記憶しておくようにしてもよい。この場合、有効化フラグのチェック処理（ステップＳ１５）において、公開鍵証明書内に含まれる所有者、有効期限、公開鍵証明書バージョンの情報を追加のチェック情報として用いることができる。具体的には、例えば、ステップＳ１５において、有効化フラグがＯＮ（１）であった場合にも、公開鍵証明書の有効期限が現在の時刻よりも古いものであった場合には、ＡＰの有効化フラグが無効であると判定することが可能となる。
ここでは、有効化フラグに加えて公開鍵証明書を用いることが可能なことはもちろん、公開鍵証明書の拡張領域に有効化フラグを含めて検証を行うことも可能である。
【００７３】
また、本実施形態におけるＡＰと耐タンパ装置３２０と認証サーバ１００とに、複数のＨＣＰを予め記憶させておき、条件に応じたＨＣＰを選択して利用することにより、さらにセキュリティを高めることができる。例えば、情報端末３００のＡＰ記憶部３１０に記憶されているＡＰとして、複数のＨＣＰがハードコーディングされたソースコードに基づくＡＰを記憶させておき、複数のＨＣＰのうち定められた条件に応じたＨＣＰを用いて暗号化処理を行うようにすることができる。この場合、耐タンパ装置３２０のＨＣＰ記憶部３２１には、同様に複数のＨＣＰが予め記憶され、暗号処理部３２３は、ＨＣＰ記憶部３２１に記憶された複数のＨＣＰのうち、条件に応じたＨＣＰを用いて復号処理を行う。同様に、認証サーバ１００のＨＣＰ記憶部１０１には、複数のＨＣＰが記憶され、認証サーバ１００の検証部１０６は、ＨＣＰ記憶部１０１に記憶された複数のＨＣＰのうち、条件に応じたＨＣＰを用いて検証処理を行う。
【００７４】
ここで、条件とは、例えば、処理実行時間、情報端末３００による通信を行うキャリア（通信事業者）等が適用できる。あるいは、上述のように公開鍵暗号方式の公開鍵証明書を用いた検証を行う場合には、公開鍵証明書に含まれる様々な情報を条件とすることができる。
なお、本実施形態では、情報端末３００としてスマートフォンやタブレットＰＣを適用する例を示したが、ＰＣ等においても同様のＡＰ検証を行うこともできる。
【００７５】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより検証処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７６】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００７７】
１  アプリケーション認証システム
１００  認証サーバ
１０１  ＨＣＰ記憶部
１０２  検証鍵記憶部
１０３  Ｃ＆Ｒ処理部
１０４  受信部
１０５  復号部
１０６  検証部
１０７  第２のセッション鍵生成部
１０８  固有ＡＰＩＤ生成部
２００  業務ＡＰサーバ
３００  情報端末
３１０  ＡＰ記憶部
３２０  耐タンパ装置
３２１  ＨＣＰ記憶部
３２２  署名鍵記憶部
３２３  暗号処理部
３２４  有効化フラグ記憶部
３２５  Ｃ＆Ｒ処理部
３２６  第１のセッション鍵生成部
３２７  固有鍵生成部
３２８  有効化フラグ制御部
３２９  要求送信部
３３０  制御部
３３１  ＨＣＰ記憶部
３３２  認証要求部
３３３  暗号処理部
３３４  セッション鍵受信部
３３５  有効化フラグ確認要求部
３３６  要求送信部
【図１】
0005622668.tif 000002
【図２】
0005622668.tif 000003
【図３】
0005622668.tif 000004
【図４】
0005622668.tif 000005
【図５】
0005622668.tif 000006
【図６】
0005622668.tif 000007
【図７】
0005622668.tif 000008
【図８】
0005622668.tif 000009
【図９】
0005622668.tif 000010
【図１０】
0005622668.tif 000011
【図１１】
0005622668.tif 000012