(57)【特許請求の範囲】
【請求項１】
端末装置と、認証サーバとを備えた認証システムにおいて、
前記端末装置は、
前記端末装置を識別する装置識別情報に時刻情報を付加して第１の共通鍵で暗号化した暗号化情報を生成する第１の暗号化部と、
認証処理に使用する認証情報と、前記装置識別情報とを含む第１の認証要求を前記認証サーバへ送信し、前記第１の認証要求の応答として、前記認証情報と前記装置識別情報とを第２の共通鍵で暗号化した認証トークンを前記認証サーバから受信し、前記認証トークンと前記暗号化情報と前記時刻情報とを含む第２の認証要求を前記認証サーバへ送信する第１の通信部と、
を有し、
前記認証サーバは、
予め登録された前記認証情報を記憶する記憶部と、
前記第１の認証要求に含まれる前記認証情報と前記装置識別情報とを前記第２の共通鍵で暗号化することにより前記認証トークンを生成する第２の暗号化部と、
前記第１の認証要求を前記端末装置から受信し、前記第１の認証要求に基づく前記認証トークンを前記端末装置へ送信し、前記第２の認証要求を前記端末装置から受信する第２の通信部と、
前記第２の認証要求に含まれる前記認証トークンを前記第２の共通鍵で復号して前記認証情報および前記装置識別情報を取得し、前記第２の認証要求に含まれる前記暗号化情報を前記第１の共通鍵で復号して前記装置識別情報および前記時刻情報を取得する復号部と、
前記認証トークンを復号することにより取得された前記装置識別情報と、前記暗号化情報を復号することにより取得された前記装置識別情報とを比較し、前記認証トークンを復号することにより取得された前記認証情報と、前記記憶部に記憶されている前記認証情報とを比較することにより認証処理を行う認証部と、
を有し、
前記認証部はさらに、前記暗号化情報を復号することにより取得された前記時刻情報と、前記第２の認証要求に含まれる前記時刻情報とを比較することにより前記認証処理を行う
ことを特徴とする認証システム。
【請求項２】
前記端末装置はさらに、少なくとも前記認証サーバから前記認証トークンが受信されてから前記第２の認証要求が前記認証サーバへ送信されるまで前記認証トークンを保持する不揮発性メモリを有することを特徴とする請求項１に記載の認証システム。
【請求項３】
端末装置を識別する装置識別情報に時刻情報を付加して第１の共通鍵で暗号化した暗号化情報を生成する第１の暗号化部と、
認証処理に使用する認証情報と、前記装置識別情報とを含む第１の認証要求を認証サーバへ送信し、前記第１の認証要求の応答として、前記認証情報と前記装置識別情報とを第２の共通鍵で暗号化した認証トークンを前記認証サーバから受信し、前記認証トークンと前記暗号化情報と前記時刻情報とを含む第２の認証要求を前記認証サーバへ送信する第１の通信部と、
を備えたことを特徴とする端末装置であって、
前記認証サーバは、
予め登録された前記認証情報を記憶する記憶部と、
前記第１の認証要求に含まれる前記認証情報と前記装置識別情報とを前記第２の共通鍵で暗号化することにより前記認証トークンを生成する第２の暗号化部と、
前記第１の認証要求を前記端末装置から受信し、前記第１の認証要求に基づく前記認証トークンを前記端末装置へ送信し、前記第２の認証要求を前記端末装置から受信する第２の通信部と、
前記第２の認証要求に含まれる前記認証トークンを前記第２の共通鍵で復号して前記認証情報および前記装置識別情報を取得し、前記第２の認証要求に含まれる前記暗号化情報を前記第１の共通鍵で復号して前記装置識別情報および前記時刻情報を取得する復号部と、
前記認証トークンを復号することにより取得された前記装置識別情報と、前記暗号化情報を復号することにより取得された前記装置識別情報とを比較し、前記認証トークンを復号することにより取得された前記認証情報と、前記記憶部に記憶されている前記認証情報とを比較することにより認証処理を行う認証部と、
を有し、
前記認証部はさらに、前記暗号化情報を復号することにより取得された前記時刻情報と、前記第２の認証要求に含まれる前記時刻情報とを比較することにより前記認証処理を行う
ことを特徴とする端末装置。
【請求項４】
予め登録された認証情報を記憶する記憶部と、
端末装置から受信される、前記認証情報と、前記端末装置を識別する装置識別情報とを含む第１の認証要求に含まれる前記認証情報と前記装置識別情報とを第２の共通鍵で暗号化することにより認証トークンを生成する暗号化部と、
前記第１の認証要求を前記端末装置から受信し、前記第１の認証要求に基づく前記認証トークンを前記端末装置へ送信し、前記認証トークンと、前記装置識別情報に時刻情報を付加して第１の共通鍵で暗号化した暗号化情報と、前記時刻情報とを含む第２の認証要求を前記端末装置から受信する第２の通信部と、
前記第２の認証要求に含まれる前記認証トークンを前記第２の共通鍵で復号して前記認証情報および前記装置識別情報を取得し、前記第２の認証要求に含まれる前記暗号化情報を前記第１の共通鍵で復号して前記装置識別情報および前記時刻情報を取得する復号部と、
前記認証トークンを復号することにより取得された前記装置識別情報と、前記暗号化情報を復号することにより取得された前記装置識別情報とを比較し、前記認証トークンを復号することにより取得された前記認証情報と、前記記憶部に記憶されている前記認証情報とを比較することにより認証処理を行う認証部と、
を備え、
前記認証部はさらに、前記暗号化情報を復号することにより取得された前記時刻情報と、前記第２の認証要求に含まれる前記時刻情報とを比較することにより前記認証処理を行う
ことを特徴とする認証サーバ。
【請求項５】
請求項３に記載の端末装置としてコンピュータを機能させるためのプログラム。
【請求項６】
前記第１の暗号化部としてコンピュータを機能させるためのネイティブコードを含むことを特徴とする請求項５に記載のプログラム。
【請求項７】
請求項４に記載の認証サーバとしてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証を受ける端末装置、端末装置に対する認証を行う認証サーバ、およびこれらの端末装置および認証サーバを有する認証システムに関する。また、本発明は、本端末装置および本認証サーバとしてコンピュータを機能させるためのプログラムにも関する。
【背景技術】
【０００２】
一般的なサーバ・クライアント型の通信システムにおいて、クライアントである端末装置の認証を行う方法として、ユーザによって端末装置に入力された認証情報（IDとパスワード）を端末装置が認証サーバへ送信し、認証サーバがその認証情報に基づいて認証を行うという方法が考えられる。しかし、認証のたびにユーザが認証情報を入力することは大変な手間である。そこで、一旦端末装置に認証情報が入力されて認証サーバによって認証が行われると、認証サーバが端末装置に認証トークンを発行し、次回以降の認証では端末装置が認証サーバへ認証トークンを送信することで認証情報の入力を省略するという方法が考えられる。
【０００３】
なお、特許文献１には、停電等の障害が発生した際に、再認証を行うことなく、認証トークンを利用して認証状態を継続させる技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−５９０６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、スマートフォンやPC（Personal Computer）等の端末装置上では、認証情報が不揮発性メモリに保持されている場合、ウイルス等によって認証情報が盗み取られる可能性がある。認証情報が盗み取られると、悪意のユーザが認証情報を利用して正規のユーザとして振る舞う、いわゆるなり済ましによる攻撃のリスクが発生する。また、認証情報が揮発性メモリに保持されている場合、認証情報が不揮発性メモリに保持される場合よりも認証情報が記憶されている時間が相対的に短いため、認証情報が盗み取られるリスクは減少するが、ソフトウェアあるいはOS（Operating System）が再起動された際に認証トークンが揮発性メモリから失われ、ユーザが再度認証情報を入力する必要がある。
【０００６】
上記の問題を解決するため、端末装置に安全なセキュアモジュールを用意し、そのセキュアモジュールに認証情報を安全に保管する方法がある。しかし、セキュアモジュールを使用する場合、汎用的なハードウェアで構成されるスマートフォンやPC等の端末装置にセキュアモジュールを設けることが、コスト等の観点から困難な場合がある。
【０００７】
本発明は、上述した課題に鑑みてなされたものであって、認証情報を保管するためのハードウェアを端末装置に追加することなく、なり済ましによる攻撃の発生を低減することができる認証システム、端末装置、認証サーバ、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するためになされたもので、端末装置と、認証サーバとを備えた認証システムにおいて、前記端末装置は、前記端末装置を識別する装置識別情報に時刻情報を付加して第１の共通鍵で暗号化した暗号化情報を生成する第１の暗号化部と、認証処理に使用する認証情報と、前記装置識別情報とを含む第１の認証要求を前記認証サーバへ送信し、前記第１の認証要求の応答として、前記認証情報と前記装置識別情報とを第２の共通鍵で暗号化した認証トークンを前記認証サーバから受信し、前記認証トークンと前記暗号化情報と前記時刻情報とを含む第２の認証要求を前記認証サーバへ送信する第１の通信部と、を有し、前記認証サーバは、予め登録された前記認証情報を記憶する記憶部と、前記第１の認証要求に含まれる前記認証情報と前記装置識別情報とを前記第２の共通鍵で暗号化することにより前記認証トークンを生成する第２の暗号化部と、前記第１の認証要求を前記端末装置から受信し、前記第１の認証要求に基づく前記認証トークンを前記端末装置へ送信し、前記第２の認証要求を前記端末装置から受信する第２の通信部と、前記第２の認証要求に含まれる前記認証トークンを前記第２の共通鍵で復号して前記認証情報および前記装置識別情報を取得し、前記第２の認証要求に含まれる前記暗号化情報を前記第１の共通鍵で復号して前記装置識別情報および前記時刻情報を取得する復号部と、前記認証トークンを復号することにより取得された前記装置識別情報と、前記暗号化情報を復号することにより取得された前記装置識別情報とを比較し、前記認証トークンを復号することにより取得された前記認証情報と、前記記憶部に記憶されている前記認証情報とを比較することにより認証処理を行う認証部と、を有し、前記認証部はさらに、前記暗号化情報を復号することにより取得された前記時刻情報と、前記第２の認証要求に含まれる前記時刻情報とを比較することにより前記認証処理を行うことを特徴とする認証システムである。
【００１０】
また、本発明の認証システムにおいて、前記端末装置はさらに、少なくとも前記認証サーバから前記認証トークンが受信されてから前記第２の認証要求が前記認証サーバへ送信されるまで前記認証トークンを保持する不揮発性メモリを有することを特徴とする。
【００１１】
また、本発明は、端末装置を識別する装置識別情報に時刻情報を付加して第１の共通鍵で暗号化した暗号化情報を生成する第１の暗号化部と、認証処理に使用する認証情報と、前記装置識別情報とを含む第１の認証要求を認証サーバへ送信し、前記第１の認証要求の応答として、前記認証情報と前記装置識別情報とを第２の共通鍵で暗号化した認証トークンを前記認証サーバから受信し、前記認証トークンと前記暗号化情報と前記時刻情報とを含む第２の認証要求を前記認証サーバへ送信する第１の通信部と、を備えたことを特徴とする端末装置であって、前記認証サーバは、予め登録された前記認証情報を記憶する記憶部と、前記第１の認証要求に含まれる前記認証情報と前記装置識別情報とを前記第２の共通鍵で暗号化することにより前記認証トークンを生成する第２の暗号化部と、前記第１の認証要求を前記端末装置から受信し、前記第１の認証要求に基づく前記認証トークンを前記端末装置へ送信し、前記第２の認証要求を前記端末装置から受信する第２の通信部と、前記第２の認証要求に含まれる前記認証トークンを前記第２の共通鍵で復号して前記認証情報および前記装置識別情報を取得し、前記第２の認証要求に含まれる前記暗号化情報を前記第１の共通鍵で復号して前記装置識別情報および前記時刻情報を取得する復号部と、前記認証トークンを復号することにより取得された前記装置識別情報と、前記暗号化情報を復号することにより取得された前記装置識別情報とを比較し、前記認証トークンを復号することにより取得された前記認証情報と、前記記憶部に記憶されている前記認証情報とを比較することにより認証処理を行う認証部と、を有し、前記認証部はさらに、前記暗号化情報を復号することにより取得された前記時刻情報と、前記第２の認証要求に含まれる前記時刻情報とを比較することにより前記認証処理を行うことを特徴とする端末装置である。
【００１２】
また、本発明は、予め登録された認証情報を記憶する記憶部と、端末装置から受信される、前記認証情報と、前記端末装置を識別する装置識別情報とを含む第１の認証要求に含まれる前記認証情報と前記装置識別情報とを第２の共通鍵で暗号化することにより認証トークンを生成する暗号化部と、前記第１の認証要求を前記端末装置から受信し、前記第１の認証要求に基づく前記認証トークンを前記端末装置へ送信し、前記認証トークンと、前記装置識別情報に時刻情報を付加して第１の共通鍵で暗号化した暗号化情報と、前記時刻情報とを含む第２の認証要求を前記端末装置から受信する第２の通信部と、前記第２の認証要求に含まれる前記認証トークンを前記第２の共通鍵で復号して前記認証情報および前記装置識別情報を取得し、前記第２の認証要求に含まれる前記暗号化情報を前記第１の共通鍵で復号して前記装置識別情報および前記時刻情報を取得する復号部と、前記認証トークンを復号することにより取得された前記装置識別情報と、前記暗号化情報を復号することにより取得された前記装置識別情報とを比較し、前記認証トークンを復号することにより取得された前記認証情報と、前記記憶部に記憶されている前記認証情報とを比較することにより認証処理を行う認証部と、を備え、前記認証部はさらに、前記暗号化情報を復号することにより取得された前記時刻情報と、前記第２の認証要求に含まれる前記時刻情報とを比較することにより前記認証処理を行うことを特徴とする認証サーバである。
【００１３】
また、本発明は、上記の端末装置としてコンピュータを機能させるためのプログラムである。
【００１４】
また、本発明のプログラムは、第１の暗号化部としてコンピュータを機能させるためのネイティブコードを含むことを特徴とする。
【００１５】
また、本発明は、上記の認証サーバとしてコンピュータを機能させるためのプログラムである。
【発明の効果】
【００１６】
本発明によれば、認証トークンを復号することにより取得された装置識別情報と、暗号化情報を復号することにより取得された装置識別情報とを比較する処理が認証処理に加わる。仮に、端末装置で保持されている認証トークンが抜き取られた場合でも、装置識別情報を生成できない限り、なり済ましが不可能であるため、認証情報を保管するためのハードウェアを端末装置に追加することなく、なり済ましによる攻撃の発生を低減することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態による認証システムの構成を示すブロック図である。
【図２】本発明の一実施形態によるクライアントの構成を示すブロック図である。
【図３】本発明の一実施形態によるサーバの構成を示すブロック図である。
【図４】本発明の一実施形態による認証システムの動作の手順を示すシーケンス図である。
【図５】本発明の一実施形態による認証システムの動作の手順を示すシーケンス図である。
【図６】本発明の一実施形態によるサーバの動作の手順を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、図面を参照し、本発明の実施形態を説明する。図１は、本発明の一実施形態による認証システムの構成を示している。認証を受ける端末装置であるクライアント１と、認証を行う認証サーバであるサーバ２とで認証システムが構成されている。クライアント１は複数台存在していてもよい。
【００１９】
図２はクライアント１の構成を示している。クライアント１は、CPU（Central Processing Unit）１０、通信部１１、表示部１２、操作部１３、メモリ１４、および記憶部１５を有する。CPU１０は、記憶部１５に格納されている各種のプログラムを読み出してメモリ１４に読み込み、プログラムの各種命令に従って各種の演算を行い、クライアント１内の各部を制御する。通信部１１は、外部の他の通信装置（本実施形態ではサーバ２）と通信を行う。表示部１２は各種の情報を表示する。操作部１３は、ユーザが操作する各種操作部材を有する。メモリ１４は、記憶部１５から読み込まれたプログラムや、CPU１０が演算を行った結果等を一時的に記憶する揮発性メモリで構成されている。記憶部１５は、CPU１０の動作を規定する各種のプログラムや、クライアント１内で処理される各種データを記憶する不揮発性メモリで構成されている。本実施形態のクライアント１は、一例として、Android（登録商標）をOSに採用しているものとする。
【００２０】
認証処理部１６および暗号化部１７は、CPU１０に各種処理を実行させるためのプログラムである。図２では、認証処理部１６および暗号化部１７のプログラムが記憶部１５からメモリ１４に読み込まれて、メモリ１４上で認証処理部１６および暗号化部１７が起動している状態が示されている。メモリ１４上で起動したこれらのプログラムは、CPU１０およびメモリ１４の資源を利用して各種処理を行う。認証処理部１６は、サーバ２から認証を受ける際に必要な処理を行う。暗号化部１７は、クライアント１の個体を識別するデバイスID（装置識別情報）を共通鍵（以下、共通鍵Ａとする）で暗号化し、デバイス暗号情報（暗号化情報）を生成する処理を行う。
【００２１】
デバイスIDは装置毎に固有な識別情報であるIMSI（International Mobile Subscriber Identity）、IMEI（International Mobile Equipment Identity）、OS ID、MAC（Media Access Control address）アドレスのいずれか、またはそれらの組合せである。IMEIは、装置の製造元や、機種、シリアル番号等の情報を含む情報であり、例えば携帯端末が標準で備えている汎用のフラッシュメモリに記録されている。IMSIは、契約者毎にユニークな識別子であり、例えば携帯端末の使用に必要な汎用のUIM（User Identity Module Card）カードに記録されている。OS IDは、装置においてOSが最初に起動するときにランダムに生成される64ビットの情報であり、例えば携帯端末が標準で備えている汎用のフラッシュメモリに記録されている。暗号化部１７が使用する共通鍵Ａは暗号化部１７のプログラムに格納されている。MACアドレスは、例えば通信部１１が保持している。
【００２２】
暗号化部１７のプログラムは、逆コンパイルが困難なネイティブコード（機械語）で構成されている。Android（登録商標）等のOSでは、ネイティブコードのインタフェースであるJNI（Java（登録商標） Native Interface）を使用してネイティブコードを呼び出せる仕組みが設けられている。暗号化部１７の処理が逆コンパイルにより解読されないようにするため、暗号化部１７のプログラムをネイティブコードで構成するだけでなく、暗号化部１７のプログラムに難読化を施すことがより望ましい。暗号化部１７をクライアント１のハードウェアに依存しないように構成することによって、汎用的なハードウェアを使用した端末装置において高い互換性を実現することができる。
【００２３】
図３はサーバ２の構成を示している。サーバ２は、CPU２０、通信部２１、メモリ２２、および記憶部２３を有する。CPU２０は、記憶部２３に格納されている各種のプログラムを読み出してメモリ２２に読み込み、プログラムの各種命令に従って各種の演算を行い、サーバ２内の各部を制御する。通信部２１は、外部の他の通信装置（本実施形態ではクライアント１）と通信を行う。メモリ２２は、記憶部２３から読み込まれたプログラムや、CPU２０が演算を行った結果等を一時的に記憶する揮発性メモリで構成されている。記憶部２３は、CPU２０の動作を規定する各種のプログラムや、サーバ２内で処理される各種データを記憶する不揮発性メモリで構成されている。
【００２４】
認証処理部２４、暗号化部２５、および復号部２６は、CPU２０に各種処理を実行させるためのプログラムである。図３では、認証処理部２４、暗号化部２５、および復号部２６のプログラムが記憶部２３からメモリ２２に読み込まれて、メモリ２２上で認証処理部２４、暗号化部２５、および復号部２６が起動している状態が示されている。メモリ２２上で起動したこれらのプログラムは、CPU２０およびメモリ２２の資源を利用して各種処理を行う。認証処理部２４は、クライアント１の認証処理を行う。暗号化部２５は、クライアント１から取得した情報を共通鍵（以下、共通鍵Ｂとする）で暗号化し、認証トークンを生成する処理を行う。復号部２６は、クライアント１から取得した認証トークンを共通鍵Ｂで復号し、クライアント１から取得したデバイス暗号情報を共通鍵Ａで復号する処理を行う。
【００２５】
暗号化部２５が使用する共通鍵Ａおよび共通鍵Ｂは暗号化部２５のプログラムに格納されている。暗号化部２５が使用する共通鍵Ａは、クライアント１の暗号化部１７が使用する共通鍵Ａと同一である。
【００２６】
次に、図４および図５を参照し、認証時のクライアント１とサーバ２の動作を説明する。クライアント１は、サーバ２とデータ通信を行う際、サーバ２に対して認証を要求し、サーバ２は、クライアント１からの要求に応じて認証を行う。図４は、クライアント１が認証トークンを保持していない状態における初回の認証に係る処理を示している。
【００２７】
以下の説明において、クライアント１あるいはサーバ２が処理に使用するデータは適宜メモリ１４あるいはメモリ２２に格納され、不要になった時点で、適宜メモリ１４あるいはメモリ２２から消去されるが、以下ではメモリ１４あるいはメモリ２２からのデータの消去については説明を省略する。各情報がメモリ１４あるいはメモリ２２に格納されている時間は十分短いので、処理のためにメモリ１４に格納されたデバイスID等が読み取られるリスクは小さい。
【００２８】
以下の説明において、クライアント１とサーバ２の間の通信は、SSL（Secure Socket Layer）等の暗号化通信により行われるものとする。また、サーバ２の記憶部２３には、クライアント１のユーザに対して発行されたIDおよびパスワードが格納されているものとする。
【００２９】
まず、クライアント１において、ユーザによって操作部１３が操作され、IDが入力される。認証処理部１６は、入力されたIDを取得し、メモリ１４に格納する（ステップＳ１００）。同様に、ユーザによって操作部１３が操作され、パスワードが入力される。認証処理部１６は、入力されたパスワードを取得し、メモリ１４に格納する（ステップＳ１０５）。ステップＳ１００，Ｓ１０５の処理によって、認証に必要な認証情報であるIDおよびパスワードが取得される。
【００３０】
続いて、認証処理部１６は記憶部１５等からデバイスIDを取得し、メモリ１４に格納する（ステップＳ１１０）。認証処理部１６は、メモリ１４に格納されたID、パスワード、およびデバイスIDを含む認証要求（第１の認証要求）を生成し、通信部１１へ出力する（ステップＳ１１５）。通信部１１は認証要求をサーバ２へ送信する（ステップＳ１２０）。
【００３１】
サーバ２の通信部２１は認証要求を受信する。受信された認証要求はメモリ１４に格納される。認証処理部２４は、認証要求に含まれるIDとパスワードの組合せと、記憶部２３に格納されているIDとパスワードの組合せとが一致するか否か、照合を行う（ステップＳ１２５）。両者の組合せが一致しなかった場合、認証に失敗したことを示す情報を含むメッセージがクライアント１に返信され、認証が終了する。また、両者の組合せが一致した場合、暗号化部２５は、認証要求に含まれるID、パスワード、およびデバイスIDを共通鍵Ｂで暗号化して認証トークンを生成し、通信部２１へ出力する（ステップＳ１３０）。通信部２１は、認証要求の送信元であるクライアント１へ認証トークンを送信する（ステップＳ１３５）。
【００３２】
クライアント１の通信部１１は認証トークンを受信する。受信された認証トークンはメモリ１４に格納される。認証処理部１６は、メモリ１４に格納された認証トークンを記憶部１５に格納し、保存する（ステップＳ１４０）。続いて、認証処理部１６は、処理の完了をサーバ２に通知するための処理完了通知を生成し、通信部１１へ出力する。通信部１１は処理完了通知をサーバ２へ送信する（ステップＳ１４５）。処理完了通知の送信後、クライアント１は、初回の認証に係る処理を終了する。認証トークンを受信したことにより、クライアント１はサーバ２とのデータ通信が許可され、データ通信を行う。サーバ２の通信部２１は処理完了通知を受信する。処理完了通知の受信後、サーバ２は、初回の認証に係る処理を終了する。
【００３３】
図５は、初回の認証に係る処理が終了し、クライアント１が認証トークンを保持している状態における２回目以降の認証に係る処理を示している。まず、クライアント１の認証処理部１６は記憶部１５から認証トークンを読み出し、メモリ１４に格納する（ステップＳ２００）。認証処理部１６は記憶部１５等からデバイスIDを取得し、メモリ１４に格納する（ステップＳ２０５）。暗号化部１７は、メモリ１４に格納されたデバイスIDを共通鍵Ａで暗号化してデバイス暗号情報を生成し、メモリ１４に格納する（ステップＳ２１０）。
【００３４】
続いて、認証処理部１６は、メモリ１４に格納された認証トークンおよびデバイス暗号情報を含む認証要求（第２の認証要求）を生成し、通信部１１へ出力する（ステップＳ２１５）。通信部１１は認証要求をサーバ２へ送信する（ステップＳ２２０）。
【００３５】
サーバ２の通信部２１は認証要求を受信する。受信された認証要求はメモリ１４に格納される。復号部２６は、メモリ１４に格納された認証要求から認証トークンおよびデバイス暗号情報を抽出し、メモリ１４に格納する。続いて、復号部２６は、メモリ１４に格納された認証トークンを共通鍵Ｂで復号し、復号により得られたID、パスワード、およびデバイスIDをメモリ１４に格納する（ステップＳ２２５）。また、復号部２６は、メモリ１４に格納されたデバイス暗号情報を共通鍵Ａで復号し、復号により得られたデバイスIDをメモリ１４に格納する（ステップＳ２３０）。
【００３６】
続いて、認証処理部２４は、認証トークンの復号により得られたデバイスIDと、デバイス暗号情報の復号により得られたデバイスIDとをメモリ１４から読み出し、両者を比較する（ステップＳ２３５）。両者が一致しなかった場合、認証に失敗したことを示す情報を含むメッセージがクライアント１に返信され、認証が終了する。また、両者が一致した場合、認証処理部２４は、認証トークンの復号により得られたIDとパスワードの組合せと、記憶部２３に格納されているIDとパスワードの組合せとが一致するか否か、照合を行う（ステップＳ２４０）。
【００３７】
両者の組合せが一致しなかった場合、認証に失敗したことを示す情報を含むメッセージがクライアント１に返信され、認証が終了する。また、両者の組合せが一致した場合、認証処理部２４は、クライアント１にデータ通信の許可を通知するための許可通知を生成し、通信部２１へ出力する。通信部２１は許可通知をクライアント１へ送信する。許可通知の送信後、サーバ２は、２回目以降の認証に係る処理を終了する。クライアント１の通信部１１は許可通知を受信する。許可通知を受信したことにより、クライアント１はサーバ２とのデータ通信が許可され、データ通信を行う。
【００３８】
次に、本実施形態の変形例を説明する。より安全性を高めるため、以下のようにしてもよい。クライアント１の暗号化部１７は、ステップＳ２１０でデバイス暗号情報を生成する際に、デバイスIDに時刻情報を付加して暗号化を行う。また、認証処理部１６は、ステップＳ２１５で認証要求を生成する際に、認証トークンおよびデバイス暗号情報だけでなく、上記の時刻情報を含む認証要求を生成する。
【００３９】
認証トークンを含む認証要求が受信された場合、サーバ２の認証処理部２４は、認証要求から認証トークン、デバイス暗号情報、および時刻情報を抽出し、メモリ１４に格納する。また、復号部２６は、図５のステップＳ２３０でデバイス暗号情報を復号してデバイスIDおよび時刻情報を取得し、メモリ１４に格納する。その後、認証処理部２４は、時刻情報を用いて認証トークンの有効性を検証する。
【００４０】
図６は、認証トークンの有効性検証に係る認証処理部２４に動作を示している。認証処理部２４は、認証要求から抽出した時刻情報と、デバイス暗号情報の復号により得られた時刻情報とをメモリ１４から読み出して比較する（ステップＳ３００）。両者が一致する場合（ステップＳ３０５）、認証処理部２４は認証トークンが有効であると判断する（ステップＳ３１０）。また、両者が異なる場合、認証処理部２４は認証トークンが無効であると判断する（ステップＳ３１５）。
【００４１】
認証トークンが無効であると判断された場合、認証に失敗したことを示す情報を含むメッセージがクライアント１に返信され、認証が終了する。また、認証トークンが有効であると判断された場合、前述した動作と同様にして、図５のステップＳ２３５，Ｓ２４０の確認の結果に応じてクライアント１の認証が行われる。
【００４２】
本実施形態のクライアント１およびサーバ２に関しては、クライアント１やサーバ２の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより、クライアント１およびサーバ２を構成することが可能である。
【００４３】
ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００４４】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００４５】
上述したように、本実施形態によれば、サーバ２は、従来のIDとパスワードによる認証処理に加えて、認証トークンを復号することにより得られたデバイスIDと、デバイス暗号情報を復号することにより得られたデバイスIDとを比較する処理を行う。仮に、クライアント１で保持されている認証トークンが悪意のユーザによって抜き取られた場合でも、デバイスIDは装置毎に固有な情報であり、かつ認証トークンにおいてデバイスIDはデバイス暗号情報として暗号化されているため、デバイスIDを生成することは困難である。本実施形態ではデバイスIDを生成できない限り、なり済ましが不可能であるため、認証情報を保管するためのハードウェアをクライアント１に追加することなく、なり済ましによる攻撃の発生を低減することができる。
【００４６】
また、時刻情報を用いて認証トークンの有効性を検証することによって、なり済ましによる攻撃の発生をより低減することができる。
【００４７】
また、クライアント１において、認証トークンを不揮発性メモリに保持しておくことが可能であるため、認証情報を保管するための専用のハードウェアが不要であり、クライアント１のコストアップを避けることができる。
【００４８】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【００４９】
１・・・クライアント、２・・・サーバ、１０，２０・・・CPU、１１，２１・・・通信部、１２・・・表示部、１３・・・操作部、１４，２２・・・メモリ、１５，２３・・・記憶部、１６，２４・・・認証処理部、１７，２５・・・暗号化部、２６・・・復号部
【図１】
0005613596.tif 000002
【図２】
0005613596.tif 000003
【図３】
0005613596.tif 000004
【図４】
0005613596.tif 000005
【図５】
0005613596.tif 000006
【図６】
0005613596.tif 000007