(57)【要約】【課題】サービス利用時の安全性を向上させることができるプログラム、端末装置、および認証システムを提供する。【解決手段】アプリケーションプログラム３０は、認証情報を用いて認証を行うサーバへ認証情報を送信する送信部としてコンピュータを機能させるための、ネイティブコードで構成されたアプリケーション処理プログラム３１と、サーバが認証を行った後、サーバが提供するサービスの利用に係る処理を行う処理部としてコンピュータを機能させるためのアプリケーション処理プログラム３１とを有する。【選択図】図３
2013020579.tif 000002
【特許請求の範囲】
【請求項１】
認証情報を用いて認証を行うサーバへ前記認証情報を送信する送信部としてコンピュータを機能させるための、ネイティブコードで構成された第１のプログラムと、
前記サーバが認証を行った後、前記サーバが提供するサービスの利用に係る処理を行う処理部としてコンピュータを機能させるための第２のプログラムと、
を備えたことを特徴とするプログラム。
【請求項２】
前記第１のプログラムは前記認証情報を含むことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記送信部は、前記サーバへ、前記認証情報と、前記認証情報とは異なる識別情報とを送信し、
前記第１のプログラムは前記識別情報を含む
ことを特徴とする請求項１または請求項２に記載のプログラム。
【請求項４】
前記第１のプログラムは、
前記送信部と、
ネットワークへの接続に使用している第１のアドレス情報と、所定の第２のアドレス情報とを照合し、照合結果に基づいて前記認証情報の送信を制御する制御部と、
としてコンピュータを機能させるための、ネイティブコードで構成されたプログラムであって、
前記第１のプログラムは前記第２のアドレス情報を含む
ことを特徴とする請求項１〜請求項３のいずれか一項に記載のプログラム。
【請求項５】
前記送信部は、前記サーバへ、前記認証情報と、ネットワークへの接続に使用しているアドレス情報とを送信することを特徴とする請求項１〜請求項３のいずれか一項に記載のプログラム。
【請求項６】
認証情報を用いて認証を行うサーバへ前記認証情報を送信する送信部としてコンピュータを機能させるための、ネイティブコードで構成された第１のプログラムと、
前記サーバが認証を行った後、前記サーバが提供するサービスの利用に係る処理を行う処理部としてコンピュータを機能させるための第２のプログラムと、
を備えたことを特徴とするプログラムを読み込んで実行するコンピュータを含む端末装置。
【請求項７】
前記第１のプログラムは前記認証情報を含むことを特徴とする請求項６に記載の端末装置。
【請求項８】
前記送信部は、前記サーバへ、前記認証情報と、前記認証情報とは異なる識別情報とを送信し、
前記第１のプログラムは前記識別情報を含む
ことを特徴とする請求項６または請求項７に記載の端末装置。
【請求項９】
前記第１のプログラムは、
前記送信部と、
ネットワークへの接続に使用している第１のアドレス情報と、所定の第２のアドレス情報とを照合し、照合結果に基づいて前記認証情報の送信を制御する制御部と、
としてコンピュータを機能させるための、ネイティブコードで構成されたプログラムであって、
前記第１のプログラムは前記第２のアドレス情報を含む
ことを特徴とする請求項６〜請求項８のいずれか一項に記載の端末装置。
【請求項１０】
前記送信部は、前記サーバへ、前記認証情報と、ネットワークへの接続に使用しているアドレス情報とを送信することを特徴とする請求項６〜請求項８のいずれか一項に記載の端末装置。
【請求項１１】
第１の認証情報を用いて認証を行うサーバと、前記サーバへ前記第１の認証情報を送信する端末装置とを備える認証システムであって、
前記端末装置は、
前記サーバへ前記第１の認証情報を送信する送信部としてコンピュータを機能させるための、ネイティブコードで構成された第１のプログラムと、
前記サーバが認証を行った後、前記サーバが提供するサービスの利用に係る処理を行う処理部としてコンピュータを機能させるための第２のプログラムと、
を読み込んで実行するコンピュータを含み、
前記サーバは、
前記端末装置から前記第１の認証情報を受信する受信部と、
前記第１の認証情報と、第２の認証情報を記憶する記憶部に記憶されている前記第２の認証情報とを照合して認証を行う認証部と、
を有する
ことを特徴とする認証システム。
【請求項１２】
前記第１のプログラムが前記第１の認証情報を含むことを特徴とする請求項１１に記載の認証システム。
【請求項１３】
前記送信部は、前記サーバへ、前記第１の認証情報と、前記第１の認証情報とは異なる第１の識別情報とを送信し、
前記第１のプログラムは前記第１の識別情報を含み、
前記受信部は前記端末装置から前記第１の認証情報と前記第１の識別情報とを受信し、
前記認証部は、前記第１の認証情報と、第２の認証情報を記憶する記憶部に記憶されている前記第２の認証情報とを照合し、前記第１の識別情報と、第２の識別情報を記憶する前記記憶部に記憶されている前記第２の識別情報とを照合して認証を行う
ことを特徴とする請求項１１または請求項１２に記載の認証システム。
【請求項１４】
前記第１のプログラムは、
前記送信部と、
ネットワークへの接続に使用している第１のアドレス情報と、所定の第２のアドレス情報とを照合し、照合結果に基づいて前記認証情報の送信を制御する制御部と、
としてコンピュータを機能させるための、ネイティブコードで構成されたプログラムであって、
前記第１のプログラムは前記第２のアドレス情報を含む
ことを特徴とする請求項１１〜請求項１３のいずれか一項に記載の認証システム。
【請求項１５】
前記送信部は、前記サーバへ、前記第１の認証情報と、ネットワークへの接続に使用している第１のアドレス情報とを送信し、
前記受信部は前記端末装置から前記第１の認証情報と前記アドレス情報とを受信し、
前記認証部は、前記第１の認証情報と、第２の認証情報を記憶する記憶部に記憶されている前記第２の認証情報とを照合し、前記第１のアドレス情報と、第２のアドレス情報を記憶する前記記憶部に記憶されている前記第２のアドレス情報とを照合して認証を行う
ことを特徴とする請求項１１〜請求項１３のいずれか一項に記載の認証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに所定の機能を実現させるためのプログラムに関する。また、本発明は、プログラムを読み込んで実行するコンピュータを含む端末装置、および端末装置とサーバとを備える認証システムにも関する。
【背景技術】
【０００２】
スマートフォン向けの各種サービスの中には、ユーザ名やパスワード等の認証情報（認証子）を用いて認証を行い、端末やユーザを特定した上でサービスを提供するものがある。このようなサービスは、ターゲティング広告や、アプリケーションの利用統計調査サービス、メールサービス、コンテンツ決済サービスなど、多岐にわたる。認証手順では、正規のユーザではないユーザが、不正に改造されたOSや偽のアプリケーションを使用して正規のユーザになりすますことによって、プライバシーの漏洩や誤課金等のセキュリティリスクが存在する。このため、アプリケーションが正しいことを認証するクライアント認証は必須の技術となる。
【０００３】
スマートフォンに適用される認証技術については、認証情報のほかに、端末で取得可能な情報を用いて認証を行う技術がある。例えば、特許文献１には、暗証番号と、端末に予め組み込まれている端末IDとを用いた認証技術が記載されている。また、特許文献２には、認証画面を撮影した画像から得られる端末識別情報等を携帯電話番号と共に用いた認証技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−８８０５３号公報
【特許文献２】特開２００９−２３０４３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
メールサービスやコンテンツ決済サービス等の各種サービスを提供するアプリケーションのプログラムは、例えばJava（登録商標）言語で記述されるが、一般に、Java（登録商標）言語は、その仕様上、C言語等と比較して、リバースエンジニアリングへの耐性が低い。このため、実行コードを逆コンパイルして得られるコードの静的解析により、認証方式や認証手順の内容を容易に解析される脅威や、アプリケーションに組み込まれている認証情報を容易に詐称される脅威が存在し、サービス利用時の認証を安全に実現できない。
【０００６】
本発明は、上述した課題に鑑みてなされたものであって、サービス利用時の安全性を向上させることができるプログラム、端末装置、および認証システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するためになされたもので、認証情報を用いて認証を行うサーバへ前記認証情報を送信する送信部としてコンピュータを機能させるための、ネイティブコードで構成された第１のプログラムと、前記サーバが認証を行った後、前記サーバが提供するサービスの利用に係る処理を行う処理部としてコンピュータを機能させるための第２のプログラムと、を備えたことを特徴とするプログラムである。
【０００８】
また、本発明のプログラムにおいて、前記第１のプログラムは前記認証情報を含むことを特徴とする。
【０００９】
また、本発明のプログラムにおいて、前記送信部は、前記サーバへ、前記認証情報と、前記認証情報とは異なる識別情報とを送信し、前記第１のプログラムは前記識別情報を含むことを特徴とする。
【００１０】
また、本発明のプログラムにおいて、前記第１のプログラムは、前記送信部と、ネットワークへの接続に使用している第１のアドレス情報と、所定の第２のアドレス情報とを照合し、照合結果に基づいて前記認証情報の送信を制御する制御部と、としてコンピュータを機能させるための、ネイティブコードで構成されたプログラムであって、前記第１のプログラムは前記第２のアドレス情報を含むことを特徴とする。
【００１１】
また、本発明のプログラムにおいて、前記送信部は、前記サーバへ、前記認証情報と、ネットワークへの接続に使用しているアドレス情報とを送信することを特徴とする。
【００１２】
また、本発明は、認証情報を用いて認証を行うサーバへ前記認証情報を送信する送信部としてコンピュータを機能させるための、ネイティブコードで構成された第１のプログラムと、前記サーバが認証を行った後、前記サーバが提供するサービスの利用に係る処理を行う処理部としてコンピュータを機能させるための第２のプログラムと、を備えたことを特徴とするプログラムを読み込んで実行するコンピュータを含む端末装置である。
【００１３】
また、本発明の端末装置において、前記第１のプログラムは前記認証情報を含むことを特徴とする。
【００１４】
また、本発明の端末装置において、前記送信部は、前記サーバへ、前記認証情報と、前記認証情報とは異なる識別情報とを送信し、前記第１のプログラムは前記識別情報を含むことを特徴とする。
【００１５】
また、本発明の端末装置において、前記第１のプログラムは、前記送信部と、ネットワークへの接続に使用している第１のアドレス情報と、所定の第２のアドレス情報とを照合し、照合結果に基づいて前記認証情報の送信を制御する制御部と、としてコンピュータを機能させるための、ネイティブコードで構成されたプログラムであって、前記第１のプログラムは前記第２のアドレス情報を含むことを特徴とする。
【００１６】
また、本発明の端末装置において、前記送信部は、前記サーバへ、前記認証情報と、ネットワークへの接続に使用しているアドレス情報とを送信することを特徴とする。
【００１７】
また、本発明は、第１の認証情報を用いて認証を行うサーバと、前記サーバへ前記第１の認証情報を送信する端末装置とを備える認証システムであって、前記端末装置は、前記サーバへ前記第１の認証情報を送信する送信部としてコンピュータを機能させるための、ネイティブコードで構成された第１のプログラムと、前記サーバが認証を行った後、前記サーバが提供するサービスの利用に係る処理を行う処理部としてコンピュータを機能させるための第２のプログラムと、を読み込んで実行するコンピュータを含み、前記サーバは、前記端末装置から前記第１の認証情報を受信する受信部と、前記第１の認証情報と、第２の認証情報を記憶する記憶部に記憶されている前記第２の認証情報とを照合して認証を行う認証部と、を有することを特徴とする認証システムである。
【００１８】
また、本発明の認証システムにおいて、前記第１のプログラムが前記第１の認証情報を含むことを特徴とする。
【００１９】
また、本発明の認証システムにおいて、前記送信部は、前記サーバへ、前記第１の認証情報と、前記第１の認証情報とは異なる第１の識別情報とを送信し、前記第１のプログラムは前記第１の識別情報を含み、前記受信部は前記端末装置から前記第１の認証情報と前記第１の識別情報とを受信し、前記認証部は、前記第１の認証情報と、第２の認証情報を記憶する記憶部に記憶されている前記第２の認証情報とを照合し、前記第１の識別情報と、第２の識別情報を記憶する前記記憶部に記憶されている前記第２の識別情報とを照合して認証を行うことを特徴とする。
【００２０】
また、本発明の認証システムにおいて、前記第１のプログラムは、前記送信部と、ネットワークへの接続に使用している第１のアドレス情報と、所定の第２のアドレス情報とを照合し、照合結果に基づいて前記認証情報の送信を制御する制御部と、としてコンピュータを機能させるための、ネイティブコードで構成されたプログラムであって、前記第１のプログラムは前記第２のアドレス情報を含むことを特徴とする。
【００２１】
また、本発明の認証システムにおいて、前記送信部は、前記サーバへ、前記第１の認証情報と、ネットワークへの接続に使用している第１のアドレス情報とを送信し、前記受信部は前記端末装置から前記第１の認証情報と前記アドレス情報とを受信し、前記認証部は、前記第１の認証情報と、第２の認証情報を記憶する記憶部に記憶されている前記第２の認証情報とを照合し、前記第１のアドレス情報と、第２のアドレス情報を記憶する前記記憶部に記憶されている前記第２のアドレス情報とを照合して認証を行うことを特徴とする。
【発明の効果】
【００２２】
本発明によれば、認証情報を送信する送信部としてコンピュータを機能させるための第１のプログラムを、逆コンパイルが困難なネイティブコードで構成することによって、プログラムが本物（正規）であることを保証し、サービス利用時の安全性を向上させることができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態による認証システムの構成を示すブロック図である。
【図２】本発明の一実施形態による端末の構成を示すブロック図である。
【図３】本発明の一実施形態におけるアプリケーションプログラムの構成を示す参考図である。
【図４】本発明の一実施形態におけるアプリケーションがハードウェアにアクセスする方法を示す参考図である。
【図５】本発明の一実施形態によるサーバの構成を示すブロック図である。
【図６】本発明の一実施形態における認証の手順を示すシーケンス図である。
【図７】本発明の一実施形態におけるアプリケーションプログラムの構成を示す参考図である。
【図８】本発明の一実施形態における認証の手順を示すシーケンス図である。
【図９】本発明の一実施形態におけるアプリケーションプログラムの構成を示す参考図である。
【図１０】本発明の一実施形態における認証の手順を示すシーケンス図である。
【図１１】本発明の一実施形態におけるアプリケーションプログラムの構成を示す参考図である。
【図１２】本発明の一実施形態における認証の手順を示すシーケンス図である。
【図１３】本発明の一実施形態における認証の手順を示すシーケンス図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照し、本発明の実施形態を説明する。図１は、本発明の一実施形態による認証システムの構成を示している。認証を受ける端末１（端末装置）と、認証を行うサーバ２とで認証システムが構成されている。端末１は複数台存在していてもよい。
【００２５】
図２は端末１の構成を示している。端末１は、CPU（Central Processing Unit）１０、通信部１１、表示部１２、操作部１３、メモリ１４、および記憶部１５を有する。CPU１０は、記憶部１５に格納されている各種のプログラムを読み出してメモリ１４に読み込み、プログラムの各種命令に従って各種の演算を行い、端末１内の各部を制御する。通信部１１は、外部の他の通信装置（本実施形態ではサーバ２）と通信を行う。表示部１２は各種の情報を表示する。操作部１３は、ユーザが操作する各種操作部材を有する。
【００２６】
メモリ１４は、記憶部１５から読み込まれたプログラムや、CPU１０が演算を行った結果等を一時的に記憶する揮発性メモリで構成されている。記憶部１５は、CPU１０の動作を規定する各種のプログラムや、認証に使用される認証情報、端末１内で処理される各種データ等を記憶する不揮発性メモリで構成されている。本実施形態の認証情報は、電話番号、メールアドレス、IMEI（International Mobile Equipment Identity）、IMSI（International Mobile Subscriber Identity）等である。本実施形態の端末１は、一例として、Android（登録商標）をOSに採用しているものとする。
【００２７】
メモリ１４上ではアプリケーション１６が起動する。アプリケーション１６は、サーバ２が提供するサービスの利用に関する各種処理をCPU１０に実行させるためのプログラムである。アプリケーション１６のプログラムは、アプリケーション処理部１７（処理部）のプログラム（第２のプログラム）と認証処理部１８（送信部、制御部）のプログラム（第１のプログラム）で構成されている。図２では、アプリケーション１６のプログラムが記憶部１５からメモリ１４に読み込まれて、メモリ１４上でアプリケーション処理部１７と認証処理部１８が起動している状態が示されている。メモリ１４上で起動したアプリケーション処理部１７と認証処理部１８は、CPU１０およびメモリ１４の資源を利用して各種処理を行う。アプリケーション処理部１７は、サーバ２が提供するサービスの利用に係る各種処理を行う。認証処理部１８は、サービスの利用時に認証に係る各種処理を行う。
【００２８】
図３は、アプリケーション１６のプログラムであるアプリケーションプログラム３０の構成を示している。アプリケーションプログラム３０には、Java（登録商標）言語で記述されてコンパイルされたアプリケーション処理プログラム３１（拡張子.dex）と、C言語で記述されてコンパイルされた認証処理プログラム３２（拡張子.so）とが含まれる。アプリケーション処理プログラム３１はアプリケーション処理部１７のプログラムであり、認証処理プログラム３２は認証処理部１８のプログラムである。
【００２９】
認証処理プログラム３２は、逆コンパイルが困難なネイティブコード（機械語）で構成されている。認証処理プログラム３２の作成の際、C言語で記述されたプログラムに高級言語レベルでの難読化を行った後、プログラムをコンパイルしてネイティブコードに変換し、ネイティブコードに低級言語レベルでの難読化を行うことが望ましい。サーバ２が認証に用いる認証情報を端末上で取得する機能および認証情報をサーバ２へ送信する機能を実現する認証処理プログラム３２をネイティブコードで構成することによって、認証処理プログラム３２が本物（正規）であることを保証し、安全性を向上させることができる。
【００３０】
Android（登録商標）では、アプリケーション処理プログラム３１と認証処理プログラム３２は対になっており、認証処理プログラム３２に対応して作成されたアプリケーション処理プログラム３１からしか認証処理プログラム３２を呼び出すことはできない仕組みが設けられている。したがって、拡張子.dexを有する偽のプログラムから不正に認証処理プログラム３２を呼び出すことはできない。本実施形態では、認証処理プログラム３２が本物であることが保証され、その認証処理プログラム３２を呼び出すことができるのは本物のアプリケーション処理プログラム３１だけなので、結果としてアプリケーション１６の全体が本物であることを保証し、安全性を向上させることができる。
【００３１】
図４は、アプリケーション処理部１７と認証処理部１８が端末内のハードウェアにアクセスする様子を示している。アプリケーション処理部１７は、OSが提供する共通機能であるAPI（Application Program Interface）４０および各ハードウェアに対応したデバイスドライバ４１を介してハードウェア４２（通信部１１等に対応）にアクセスする。認証処理部１８は、API４０を介さずにデバイスドライバ４１を介してハードウェア４２にアクセスすることが可能である。デバイスドライバはハードウェア毎に異なるが、図４では個々のデバイスドライバを代表してデバイスドライバ４１としている。
【００３２】
上記のように拡張子.soのプログラムはAPIを介さずにハードウェアにアクセスするため、ハードウェアに高速にアクセスすることが可能である。この高速性に着目して、特定のハードウェアへの高速なアクセスが頻繁に発生するゲーム等のアプリケーションでは、拡張子.dexのプログラムと拡張子.soのプログラムを組み合わせた仕組みが利用されている。本実施形態では、この仕組みを認証処理に応用している。OSが不正に改造されると、APIを介して取得される認証情報は信頼できなくなるが、本実施形態では認証処理部１８がAPI４０を介さずにハードウェア４２にアクセスするため、認証情報の本物性を保証することができる。
【００３３】
図５はサーバ２の構成を示している。サーバ２は、CPU２０、通信部２１、メモリ２２、および記憶部２３を有する。CPU２０は、記憶部２３に格納されている各種のプログラムを読み出してメモリ２２に読み込み、プログラムの各種命令に従って各種の演算を行い、サーバ２内の各部を制御する。通信部２１は、外部の他の通信装置（本実施形態では端末１）と通信を行う。メモリ２２は、記憶部２３から読み込まれたプログラムや、CPU２０が演算を行った結果等を一時的に記憶する揮発性メモリで構成されている。記憶部２３は、CPU２０の動作を規定する各種のプログラムや、サーバ２内で処理される各種データを記憶する不揮発性メモリで構成されている。
【００３４】
メモリ２２上では認証処理部２４（受信部、認証部）が起動する。認証処理部２４は、認証に係る各種処理をCPU２０に実行させるためのプログラムである。図５では、認証処理部２４のプログラムが記憶部２３からメモリ２２に読み込まれて、メモリ２２上で認証処理部２４が起動している状態が示されている。メモリ２２上で起動した認証処理部２４は、CPU２０およびメモリ２２の資源を利用して各種処理を行う。
【００３５】
＜第１の動作例＞
次に、認証時の端末１とサーバ２の動作を説明する。まず、図６を参照し、第１の動作例を説明する。図６は、第１の動作例における認証の手順を示している。サービスの利用開始時に端末１のアプリケーション処理部１７は、サーバ２にサービスの利用を要求するためのサービス利用要求を、通信部１１を介してサーバ２へ送信する（ステップＳ１００）。サーバ２の認証処理部２４は、通信部２１を介してサービス利用要求を受信する。認証処理部２４は、サービス利用要求に基づいて、端末１に認証情報の送信を要求するための認証情報要求を、通信部２１を介して、サービス利用要求の送信元である端末１へ送信する（ステップＳ１０５）。また、認証処理部２４は、サービス利用要求のパケットに含まれる送信元のIPアドレスと関連付けたタイマーを起動し、時間の計測を開始する。
【００３６】
端末１のアプリケーション処理部１７は、通信部１１を介して認証情報要求を受信する。アプリケーション処理部１７は、認証情報要求に基づいて、認証処理部１８に認証処理を依頼する（ステップＳ１１０）。依頼を受けた認証処理部１８は、デバイスドライバ４１に認証情報の取得を依頼し（ステップＳ１１５）、記憶部１５にアクセスしたデバイスドライバ４１から認証情報を取得する（ステップＳ１２０）。
【００３７】
認証処理部１８は、取得した認証情報を、通信部１１を介してサーバ２へ送信する（ステップＳ１２５）。サーバ２の認証処理部２４は、通信部２１を介して認証情報を受信する。認証情報の通信には、https（Hypertext Transfer Protocol over Secure Socket Layer）等の暗号通信路が用いられる。
【００３８】
認証処理部２４は、認証情報のパケットに含まれる送信元のIPアドレスが、サービス利用要求のパケットに含まれる送信元のIPアドレスと一致するか否かを判定し、両者が一致した場合、そのIPアドレスに関連付けられているタイマーが計測している時間が所定の時間以内であるか否かを判定する。タイマーが計測している時間が所定の時間を超えている場合、認証に失敗する。このように、端末１からの認証情報の送信監視に制限時間を設けているのは、サーバ２が認証情報の送信監視に必要以上の負荷をかけないようにするためである。タイマーが計測している時間が所定の時間以内であった場合、以下のように認証情報を用いた認証が行われる。
【００３９】
記憶部２３には、端末１のサービス加入時等に予め登録された認証情報が格納されている。認証処理部２４は、記憶部２３から認証情報を読み出し、端末１から受信した認証情報と照合を行う（ステップＳ１３０）。端末１から受信した認証情報が、記憶部２３に格納されている認証情報のいずれかと一致した場合は認証に成功し、端末１から受信した認証情報が、記憶部２３に格納されている認証情報のいずれとも一致しなかった場合は認証に失敗する。
【００４０】
認証に成功した場合、認証処理部２４は、認証に成功したことを知らせる認証結果通知を、通信部２１を介して、サービス利用要求の送信元である端末１へ送信する（ステップＳ１３５）。端末１のアプリケーション処理部１７は、通信部１１を介して認証結果通知を受信し、認証結果通知に基づいて、サービスの利用に係る各種処理を行う。例えば、アプリケーション処理部１７は、サービスの利用に必要な情報をサーバ２と通信したり、サービスの利用状態や利用結果等を表示部１２に表示したり、操作部１３を介して入力される情報を処理したりする。
【００４１】
＜第２の動作例＞
次に、第２の動作例を説明する。第２の動作例では、図７に示すように、認証処理プログラム３２に電話番号等の認証情報が組み込まれて（埋め込まれて）いる。認証処理プログラム３２の作成時に、認証情報が記載されたソースコードがコンパイルされ、認証処理プログラム３２に認証情報が組み込まれる。図８は、第１の動作例における認証の手順を示している。以下では、第１の動作例と異なる部分のみを説明する。
【００４２】
アプリケーション処理部１７から認証処理の依頼を受けると（ステップＳ１１０）、認証処理部１８は認証処理プログラム３２中の認証情報を、通信部１１を介してサーバ２へ送信する（ステップＳ１４０）。以降の動作は第１の動作例と同様である。
【００４３】
上記のように第２の動作例では認証情報が認証処理プログラム３２に組み込まれているため、認証情報を取得するための記憶部１５へのアクセスが発生せず、より安全性が向上する。第２の動作例における認証情報は、記憶部１５に格納されている電話番号等の情報と同一の情報でなくてもよく、アプリケーション１６の作成者（サービス提供者）がアプリケーション１６毎に割り当てた固有の情報であってもよい。
【００４４】
＜第３の動作例＞
次に、第３の動作例を説明する。第３の動作例では、図９に示すように、アプリケーションプログラム３０（アプリケーション１６）を識別する識別情報が認証処理プログラム３２に組み込まれて（埋め込まれて）いる。識別情報は認証情報とは異なる情報であるが、異なる端末に与えられる複数のアプリケーションプログラム間で共通であってもよい。図１０は、第３の動作例における認証の手順を示している。以下では、第１の動作例と異なる部分のみを説明する。
【００４５】
アプリケーション処理部１７から認証処理の依頼を受けると（ステップＳ１１０）、認証処理部１８は、デバイスドライバ４１を介して記憶部１５から認証情報を取得し（ステップＳ１１５，Ｓ１２０）、取得した認証情報と認証処理プログラム３２中の識別情報とを、通信部１１を介してサーバ２へ送信する（ステップＳ１４５）。サーバ２の認証処理部２４は、通信部２１を介して認証情報および識別情報を受信する。タイマーが計測している時間の確認が行われた後、以下のように認証情報および識別情報を用いた認証が行われる。
【００４６】
記憶部２３には、予め登録された識別情報が認証情報と共に格納されている。認証処理部２４は、記憶部２３から認証情報を読み出し、端末１から受信した認証情報と照合を行うと共に、記憶部２３から識別情報を読み出し、端末１から受信した識別情報と照合を行う（ステップＳ１５０）。端末１から受信した認証情報が、記憶部２３に格納されている認証情報のいずれかと一致すると共に、端末１から受信した識別情報が、記憶部２３に格納されている識別情報のいずれかと一致した場合は認証に成功する。また、端末１から受信した認証情報が、記憶部２３に格納されている認証情報のいずれとも一致しなかった場合、または、端末１から受信した識別情報が、記憶部２３に格納されている識別情報のいずれとも一致しなかった場合は認証に失敗する。以降の動作は第１の動作例と同様である。
【００４７】
上記のように第３の動作例では、認証情報を用いた認証が行われると共に、識別情報を用いた認証が行われる。識別情報を用いた認証に成功した場合、認証情報を送信した端末１のアプリケーションプログラム３０（アプリケーション１６）が本物（正規）であることをサーバ２が確認することができるため、より安全性が向上する。第３の動作例は第２の動作例と組み合わせてもよい。
【００４８】
＜第４の動作例＞
次に、第４の動作例を説明する。第４の動作例では、第三世代携帯電話方式の３Ｇ回線でネットワークに接続するときのIPアドレスの確認が行われる。図１１に示すように、通信キャリアが３Ｇ回線で使用しているIPアドレスの範囲を示す範囲情報が認証処理プログラム３２に組み込まれて（埋め込まれて）いる。認証処理プログラム３２の作成時に、範囲情報が記載されたソースコードがコンパイルされ、認証処理プログラム３２に範囲情報が組み込まれる。図１２は、第４の動作例における認証の手順を示している。以下では、第１の動作例と異なる部分のみを説明する。
【００４９】
アプリケーション処理部１７から認証処理の依頼を受けると（ステップＳ１１０）、認証処理部１８は、認証情報と、ネットワークへの接続に使用しているIPアドレスとの取得をデバイスドライバ４１に依頼し（ステップＳ１５５）、記憶部１５にアクセスしたデバイスドライバ４１から認証情報を取得し、通信部１１にアクセスしたデバイスドライバ４１からIPアドレスを取得する（ステップＳ１６０）。
【００５０】
認証処理部１８は、取得したIPアドレスを用いて認証情報の送信制御を行う。具体的には、認証処理部１８は、取得したIPアドレスを認証処理プログラム３２中の範囲情報と比較し、取得したIPアドレスが、範囲情報の示すIPアドレスの範囲に含まれるか否かを判定する。端末１が３Ｇ回線でネットワークに接続する場合、ハードウェアである通信部１１のROM（Read Only Memory）に格納されているプログラムによる制御に従って、通信キャリアのサーバとの間で認証が行われ、認証が正しく行われると、端末１はネットワークへの接続が許可される。通信部１１のROMに格納されているプログラムの改造は困難であるので、３Ｇ回線の通信キャリアによる認証を受けてネットワークに接続している端末１がサーバ２へ送信する認証情報の本物性が保証され、より安全性が向上する。
【００５１】
取得したIPアドレスが、範囲情報の示すIPアドレスの範囲に含まれない場合、認証処理部１８は認証を中止する。また、取得したIPアドレスが、範囲情報の示すIPアドレスの範囲に含まれる場合、第１の動作例と同様に認証情報がサーバ２へ送信される。以降の動作は第１の動作例と同様である。取得したIPアドレスが、範囲情報の示すIPアドレスの範囲に含まれる場合、そのことを明示する情報をサーバ２へ通知し、サーバ２は、この情報が端末１から受信されなかったら認証を中止し、この情報が端末１から受信されたら認証を継続してもよい。第４の動作例は、第２の動作例または第３の動作例と組み合わせてもよい。
【００５２】
＜第５の動作例＞
次に、第５の動作例を説明する。第５の動作例では、IPアドレスの確認がサーバ２で行われる。図１３は、第５の動作例における認証の手順を示している。以下では、第１の動作例と異なる部分のみを説明する。
【００５３】
ステップＳ１０５でサーバ２へ送信されるサービス利用要求のパケットおよびステップＳ１２５でサーバ２へ送信される認証情報のパケットには端末１のIPアドレスが含まれるが、このIPアドレスは、認証処理部１８がデバイスドライバ４１を介して通信部１１から取得したものである。サーバ２の記憶部２３には、通信キャリアが３Ｇ回線で使用しているIPアドレスの範囲を示す範囲情報が認証情報と共に格納されている。
【００５４】
認証処理部２４は、記憶部２３から認証情報を読み出し、端末１から受信した認証情報と照合を行うと共に、記憶部２３から範囲情報を読み出し、端末１から受信した認証情報のパケットに含まれるIPアドレスと照合を行う（ステップＳ１６５）。端末１から受信した認証情報が、記憶部２３に格納されている認証情報のいずれかと一致すると共に、端末１から受信した認証情報のパケットに含まれるIPアドレスが、範囲情報の示すIPアドレスの範囲に含まれる場合は認証に成功する。また、端末１から受信した認証情報が、記憶部２３に格納されている認証情報のいずれとも一致しなかった場合、または、端末１から受信した認証情報のパケットに含まれるIPアドレスが、範囲情報の示すIPアドレスの範囲に含まれない場合は認証に失敗する。以降の動作は第１の動作例と同様である。第５の動作例は、第２の動作例または第３の動作例と組み合わせてもよい。
【００５５】
上述したように、本実施形態によれば、認証処理を行う認証処理プログラム３２を、逆コンパイルが困難なネイティブコードで構成することによって、アプリケーションプログラム３０が本物（正規）であることを保証し、サービス利用時の安全性を向上させることができる。
【００５６】
また、サーバ２へ送信される認証情報を認証処理プログラム３２に予め組み込むことによって、認証情報の取得のための記憶部１５へのアクセスが発生せず、サービス利用時の安全性をより向上させることができる。
【００５７】
また、認証情報を用いた認証と、アプリケーションプログラム３０（アプリケーション１６）を識別する識別情報を用いた認証とを組み合わせることによって、アプリケーションプログラム３０（アプリケーション１６）が本物（正規）であることを保証し、サービス利用時の安全性をより向上させることができる。
【００５８】
また、認証情報を用いた認証と、３Ｇ回線でネットワークに接続するときのIPアドレスの確認とを組み合わせることによって、３Ｇ回線の通信キャリアによる認証を受けた端末１がサーバ２へ送信する認証情報の本物性を保証し、サービス利用時の安全性をより向上させることができる。
【００５９】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上記ではOSにAndroid（登録商標）が採用されている場合の実施形態を説明したが、OSの形態によらず、アプリケーションプログラムが、APIを介してハードウェアにアクセスするプログラムと、APIを介さずにハードウェアにアクセスするプログラムとで構成される場合に、上記の実施形態を同様に適用することが可能である。
【符号の説明】
【００６０】
１・・・端末、２・・・サーバ、１０，２０・・・CPU、１１，２１・・・通信部、１２・・・表示部、１３・・・操作部、１４，２２・・・メモリ、１５，２３・・・記憶部、１６・・・アプリケーション、１７・・・アプリケーション処理部、１８，２４・・・認証処理部
【図１】
2013020579.tif 000003
【図２】
2013020579.tif 000004
【図３】
2013020579.tif 000005
【図４】
2013020579.tif 000006
【図５】
2013020579.tif 000007
【図６】
2013020579.tif 000008
【図７】
2013020579.tif 000009
【図８】
2013020579.tif 000010
【図９】
2013020579.tif 000011
【図１０】
2013020579.tif 000012
【図１１】
2013020579.tif 000013
【図１２】
2013020579.tif 000014
【図１３】
2013020579.tif 000015