(57)【特許請求の範囲】
【請求項１】
情報処理デバイスを一意に識別可能な固有の情報であるデバイス固有情報を記憶しておりユーザが使用する情報処理デバイスで実行される認証支援部と、
前記情報処理デバイスを認証するデバイス認証を実行するようになっており第１の管理情報を有する第１のサーバと、
前記第１のサーバと通信可能であり第２のＩＤが登録される第２の管理情報を有する第２のサーバと
を有し、
前記情報処理デバイスの登録フェーズにおいて、
前記認証支援部が、第２のＩＤとパスワードとを前記第２のサーバに送信し、
前記第２のサーバが、前記第２のＩＤと前記パスワードとを受信し、前記第２のＩＤを前記第２の管理情報に登録し、前記パスワードを前記第１のサーバに送信し、
前記第１のサーバが、前記第２のサーバから前記パスワードを受信し、前記情報処理デバイスに対して定められたＩＤである管理ＩＤと前記管理ＩＤについて固有に割り振られた割振り情報又はそれに基づく情報とを前記第１の管理情報に登録し、前記管理ＩＤと、前記割振り情報と前記パスワードとを基に鍵を用いて生成された署名値と、前記割振り情報又はそれに基づく情報とを前記第２のサーバに送信し、
前記第２のサーバが、前記管理ＩＤと、前記署名値と、前記割振り情報又はそれに基づく情報とを前記第１のサーバから受信し、その署名値と、割振り情報又はそれに基づく情報とを、前記情報処理デバイスに送信し、前記第２のＩＤが登録されている前記第２の管理情報に前記管理ＩＤを登録し、
前記認証支援部が、第１のＩＤと、前記パスワードと、前記署名値と、前記割振り情報又はそれに基づく情報とを含んだ依頼であって、前記デバイス固有情報を含まない依頼を、前記第１のサーバに送信し、
前記第１のサーバが、前記依頼を前記情報処理デバイスから受信し、前記依頼に含まれている割振り情報又はそれに基づく情報と前記依頼に含まれているパスワードとを基に鍵を用いて、前記依頼に含まれている署名値の正当性を判断し、前記署名値が正当であれば、前記第１の管理情報に、前記依頼に含まれている第１のＩＤを登録し、前記割振り情報を基に証明書生成鍵を用いて前記デバイス固有情報を含んでない電子的な証明書を生成し、その生成した証明書を前記情報処理デバイスに送信し、
前記認証支援部が、前記証明書を受信し、その受信した証明書を、前記デバイス固有情報それ自体又は前記デバイス固有情報に基づく情報を暗号鍵として暗号化し、前記暗号化された証明書を、前記情報処理デバイスが有する記憶手段に格納し、
前記情報処理デバイスの認証フェーズにおいて、
前記認証支援部が、前記記憶手段に格納されている前記暗号化された証明書を、前記暗号鍵に対応する復号鍵を用いて復号し、復号された前記証明書を前記第１のサーバに送信し、前記デバイス固有情報を送信せず、
前記第１のサーバが、復号された前記証明書を前記情報処理デバイスから受信し、その受信した証明書が前記情報処理デバイスの登録フェーズにおいて発行された正しい証明書か否かを、前記第１の管理情報と、その受信した証明書から特定される情報とに基づき、証明書検証鍵を用いて判断する前記デバイス認証を実行する、
デバイス認証システム。
【請求項２】
前記認証支援部が、複数の暗号化アルゴリズム及び複数の復号アルゴリズムを有しており、定期的又は不定期的に、前記登録フェーズにおいて使用する暗号化アルゴリズムを変更し、前記認証フェーズでは前記登録フェーズで使用された暗号化アルゴリズムに対応する復号アルゴリズムを使用する、
請求項１記載のデバイス認証システム。
【請求項３】
前記認証フェーズにおいて、
前記認証支援部が、復号化された証明書と、前記第１のＩＤとを前記第１のサーバに送信し、
前記第１のサーバが、前記デバイス認証を実行し、前記受信した証明書が正しい証明書であると判断された場合に、ワンタイムパスワードを生成し、前記第１のＩＤに対応する管理ＩＤを前記第１の管理情報から特定し、前記生成したワンタイムパスワードと前記特定した管理ＩＤとを前記第２のサーバに送信し、且つ、前記ワンタイムパスワードを前記情報処理デバイスに送信し、
前記第２のサーバが、前記第１のサーバからワンタイムパスワード及び管理ＩＤを受信し、前記管理ＩＤに対応した第２のＩＤを前記第２の管理情報から特定し、前記特定した第２のＩＤに前記ワンタイムパスワードを関連付け、
前記情報処理デバイスが、前記ワンタイムパスワードを前記第１のサーバから受信し、前記第２のＩＤと前記受信したワンタイムパスワードとを前記第２のサーバに送信し、
前記第２のサーバが、前記情報処理デバイスから前記第２のＩＤ及び前記ワンタイムパスワードを受信し、前記受信した第２のＩＤに一致する前記特定された第２のＩＤに前記関連付けられているワンタイムパスワードを用いて、前記受信したワンタイムパスワードの正当性を検証する、
請求項１記載のデバイス認証システム。
【請求項４】
前記第１のサーバは、前記登録フェーズにおいて、文書の一部であり前記割振り情報を含んだ文字列と前記文字列に基づく署名とを含んだ前記証明書を生成し、生成した証明書を前記情報処理デバイスに送信し、前記証明書を記憶しておかず、前記認証フェーズにおいて、前記第１の管理情報と、前記受信した証明書から特定される前記文字列中の前記割振り情報とに基づき前記文書を復元し、復元した文書と前記証明書検証鍵を用いて、前記受信した証明書が前記情報処理デバイスの登録フェーズにおいて発行された正しい証明書か否かを判断する、
請求項１乃至３のうちのいずれか１項に記載のデバイス認証システム。
【請求項５】
ユーザが使用する情報処理デバイスを一意に識別可能な固有の情報であるデバイス固有情報を記憶している前記情報処理デバイス、を認証するデバイス認証を実行する第１のサーバであって、
前記情報処理デバイス及び第２のサーバと通信する通信手段と、
制御手段と
を有し、
前記情報処理デバイスの登録フェーズにおいて、
前記通信手段が、第２のＩＤとパスワードとのうち前記パスワードを前記第２のサーバから受信し、
前記制御手段が、前記情報処理デバイスに対して定められたＩＤである管理ＩＤと前記管理ＩＤについて固有に割り振られた割振り情報又はそれに基づく情報とを第１の管理情報に登録し、
前記通信手段が、前記管理ＩＤと、前記割振り情報と前記パスワードとを基に鍵を用いて生成された署名値と、前記割振り情報又はそれに基づく情報とを前記第２のサーバに送信し、
前記通信手段が、前記情報処理デバイスから、第１のＩＤと、前記パスワードと、前記署名値と、前記割振り情報又はそれに基づく情報とを含んだ依頼であって、前記デバイス固有情報を含まない依頼を受信し、
前記制御手段が、前記依頼に含まれている割振り情報又はそれに基づく情報と前記依頼に含まれているパスワードとを基に鍵を用いて、前記依頼に含まれている署名値の正当性を判断し、前記署名値が正当であれば、前記第１の管理情報に、前記依頼に含まれている第１のＩＤを登録し、前記割振り情報を基に証明書生成鍵を用いて前記デバイス固有情報を含んでない電子的な証明書を生成し、
前記通信手段が、その生成した証明書を前記情報処理デバイスに送信し、
前記第２のサーバが、前記第２のＩＤと前記パスワードとを前記情報処理デバイスから受信し、前記第２のＩＤを第２の管理情報に登録し、前記パスワードを前記第１のサーバに送信するようになっており、
前記第２のサーバが、前記管理ＩＤと、前記署名値と、前記割振り情報又はそれに基づく情報とを前記第１のサーバから受信し、その署名値と、割振り情報又はそれに基づく情報とを、前記情報処理デバイスに送信し、前記第２のＩＤが登録されている前記第２の管理情報に前記管理ＩＤを登録するようになっており、
前記情報処理デバイスの認証フェーズにおいて、
前記通信手段が、前記登録フェーズにおいて発行された前記割振り情報を基に証明書生成鍵を用いて生成され前記デバイス固有情報を含んでない電子的な証明書を前記情報処理デバイスから受信し、
その受信した証明書は、前記登録フェーズにおいて、前記情報処理デバイスによって、前記デバイス固有情報それ自体又は前記デバイス固有情報に基づく情報である暗号鍵を用いて暗号化され前記情報処理デバイスが有する記憶手段に格納され、且つ、前記認証フェーズにおいて、前記情報処理デバイスによって、前記暗号鍵に対応する復号鍵を用いて復号された証明書であり、
前記制御手段が、その受信した証明書が前記情報処理デバイスの登録フェーズにおいて発行された正しい証明書か否かを、前記第１の管理情報と、その受信した証明書から特定される情報とに基づき、証明書検証鍵を用いて判断する前記デバイス認証を実行する、
サーバ。
【請求項６】
ユーザが使用する情報処理デバイスを一意に識別可能な固有の情報であるデバイス固有情報を記憶している前記情報処理デバイスから受信した証明書を基に前記情報処理デバイスを認証するデバイス認証を実行する第１のサーバ、及び、第２のサーバと通信する通信手段と、
制御手段と
を有し、
前記情報処理デバイスの登録フェーズにおいて、
前記通信手段が、第２のＩＤとパスワードとを前記第２のサーバに送信し、
前記通信手段が、署名値と、割振り情報又はそれに基づく情報とを前記第２のサーバから受信し、
前記通信手段が、第１のＩＤと、前記パスワードと、前記署名値と、前記割振り情報又はそれに基づく情報とを含んだ依頼であって、前記デバイス固有情報を含まない依頼を前記第１のサーバに送信し、
前記通信手段が、証明書を前記第１のサーバから受信し、
前記制御手段が、その受信した証明書を、前記デバイス固有情報それ自体又は前記デバイス固有情報に基づく情報を暗号鍵として、暗号化し、前記暗号化された証明書を、前記情報処理デバイスが有する記憶手段に格納し、
前記第２のサーバが、前記第２のＩＤと前記パスワードとを前記情報処理デバイスから受信し、前記第２のＩＤを第２の管理情報に登録し、前記パスワードを前記第１のサーバに送信するようになっており、
前記第１のサーバが、前記第２のサーバから前記パスワードを受信し、前記情報処理デバイスに対して定められたＩＤである管理ＩＤと前記管理ＩＤについて固有に割り振られた前記割振り情報又はそれに基づく情報とを第１の管理情報に登録し、前記管理ＩＤと、前記割振り情報と前記パスワードとを基に鍵を用いて生成された署名値と、前記割振り情報又はそれに基づく情報とを前記第２のサーバに送信するようになっており、
前記第２のサーバが、前記管理ＩＤと、前記署名値と、前記割振り情報又はそれに基づく情報とを前記第１のサーバから受信し、その署名値と、割振り情報又はそれに基づく情報とを、前記情報処理デバイスに送信し、前記第２のＩＤが登録されている前記第２の管理情報に前記管理ＩＤを登録するようになっており、
前記第１のサーバが、前記依頼を前記情報処理デバイスから受信し、前記依頼に含まれている割振り情報又はそれに基づく情報と前記依頼に含まれているパスワードとを基に鍵を用いて、前記依頼に含まれている署名値の正当性を判断し、前記署名値が正当であれば、前記第１の管理情報に、前記依頼に含まれている第１のＩＤを登録し、前記割振り情報を基に証明書生成鍵を用いて前記デバイス固有情報を含んでない電子的な前記証明書を生成し、その生成した証明書を前記情報処理デバイスに送信するようになっており、
前記情報処理デバイスの認証フェーズにおいて、
前記制御手段が、前記記憶手段に格納されている前記暗号化された証明書を、前記暗号鍵に対応する復号鍵を用いて復号し、前記通信手段が、復号された前記証明書を、前記第１のサーバに送信し、前記デバイス固有情報を送信せず、
前記第１のサーバが、復号された前記証明書を前記情報処理デバイスから受信し、その受信した証明書が前記情報処理デバイスの登録フェーズにおいて発行された正しい証明書か否かを、前記第１の管理情報と、その受信した証明書から特定される情報とに基づき、証明書検証鍵を用いて判断する前記デバイス認証を実行するようになっている、
情報処理デバイス。
【請求項７】
ユーザが使用する情報処理デバイスを一意に識別可能な固有の情報であるデバイス固有情報を記憶している前記情報処理デバイスで実行されるコンピュータプログラムであって、
前記情報処理デバイスの登録フェーズにおいて、
第２のＩＤとパスワードとを第２のサーバに送信し、
署名値と、割振り情報又はそれに基づく情報とを前記第２のサーバから受信し、
第１のＩＤと、前記パスワードと、前記署名値と、前記割振り情報又はそれに基づく情報とを含んだ依頼であって、前記デバイス固有情報を含まない依頼を第１のサーバに送信し、
証明書を前記第１のサーバから受信し、
その受信した証明書を、前記デバイス固有情報それ自体又は前記デバイス固有情報に基づく情報を暗号鍵として、暗号化し、前記暗号化された証明書を、前記情報処理デバイスが有する記憶手段に格納し、
前記第２のサーバが、前記第２のＩＤと前記パスワードとを前記情報処理デバイスから受信し、前記第２のＩＤを第２の管理情報に登録し、前記パスワードを前記第１のサーバに送信するようになっており、
前記第１のサーバが、前記第２のサーバから前記パスワードを受信し、前記情報処理デバイスに対して定められたＩＤである管理ＩＤと前記管理ＩＤについて固有に割り振られた前記割振り情報又はそれに基づく情報とを第１の管理情報に登録し、前記管理ＩＤと、前記割振り情報と前記パスワードとを基に鍵を用いて生成された署名値と、前記割振り情報又はそれに基づく情報とを前記第２のサーバに送信するようになっており、
前記第２のサーバが、前記管理ＩＤと、前記署名値と、前記割振り情報又はそれに基づく情報とを前記第１のサーバから受信し、その署名値と、割振り情報又はそれに基づく情報とを、前記情報処理デバイスに送信し、前記第２のＩＤが登録されている前記第２の管理情報に前記管理ＩＤを登録するようになっており、
前記第１のサーバが、前記依頼を前記情報処理デバイスから受信し、前記依頼に含まれている割振り情報又はそれに基づく情報と前記依頼に含まれているパスワードとを基に鍵を用いて、前記依頼に含まれている署名値の正当性を判断し、前記署名値が正当であれば、前記第１の管理情報に、前記依頼に含まれている第１のＩＤを登録し、前記割振り情報を基に証明書生成鍵を用いて前記デバイス固有情報を含んでない電子的な前記証明書を生成し、その生成した証明書を前記情報処理デバイスに送信するようになっており、
前記情報処理デバイスの認証フェーズにおいて、
前記記憶手段に格納されている前記暗号化された証明書を、前記暗号鍵に対応する復号鍵を用いて復号し、前記デバイス固有情報を前記第１のサーバに送信せず、復号された前記証明書を、前記第１のサーバに送信する、
ことを前記情報処理デバイスに実行させ、
前記第１のサーバが、復号された前記証明書を前記情報処理デバイスから受信し、その受信した証明書が前記情報処理デバイスの登録フェーズにおいて発行された正しい証明書か否かを、前記第１の管理情報と、その受信した証明書から特定される情報とに基づき、証明書検証鍵を用いて判断するデバイス認証を実行するようになっている、
コンピュータプログラム。
【請求項８】
ユーザが使用する情報処理デバイスを一意に識別可能な固有の情報であるデバイス固有情報を記憶している前記情報処理デバイスの登録フェーズにおいて、
前記情報処理デバイスが、第２のＩＤとパスワードとを第２のサーバに送信し、
前記第２のサーバが、前記第２のＩＤと前記パスワードとを前記情報処理デバイスから受信し、前記第２のＩＤを第２の管理情報に登録し、前記パスワードを第１のサーバに送信し、
前記第１のサーバが、前記第２のサーバから前記パスワードを受信し、前記情報処理デバイスに対して定められたＩＤである管理ＩＤと前記管理ＩＤについて固有に割り振られた割振り情報又はそれに基づく情報とを第１の管理情報に登録し、前記管理ＩＤと、前記割振り情報と前記パスワードとを基に鍵を用いて生成された署名値と、前記割振り情報又はそれに基づく情報とを前記第２のサーバに送信し、
前記第２のサーバが、前記管理ＩＤと、前記署名値と、前記割振り情報又はそれに基づく情報とを前記第１のサーバから受信し、その署名値と、割振り情報又はそれに基づく情報とを、前記情報処理デバイスに送信し、前記第２のＩＤが登録されている前記第２の管理情報に前記管理ＩＤを登録し、
前記情報処理デバイスが、前記署名値と、前記割振り情報又はそれに基づく情報とを前記第２のサーバから受信し、
前記情報処理デバイスが、第１のＩＤと、前記パスワードと、前記署名値と、前記割振り情報又はそれに基づく情報とを含んだ依頼であって、前記デバイス固有情報を含まない依頼を前記第１のサーバに送信し、
前記第１のサーバが、前記依頼を前記情報処理デバイスから受信し、前記依頼に含まれている割振り情報又はそれに基づく情報と前記依頼に含まれているパスワードとを基に鍵を用いて、前記依頼に含まれている署名値の正当性を判断し、前記署名値が正当であれば、前記第１の管理情報に、前記依頼に含まれている第１のＩＤを登録し、前記割振り情報を基に証明書生成鍵を用いて前記デバイス固有情報を含んでない電子的な証明書を生成し、その生成した証明書を前記情報処理デバイスに送信し、
前記情報処理デバイスが、その証明書を前記第１のサーバから受信し、その受信した証明書を、前記デバイス固有情報それ自体又は前記デバイス固有情報に基づく情報を暗号鍵として、暗号化し、前記暗号化された証明書を、前記情報処理デバイスが有する記憶手段に格納し、
前記情報処理デバイスの認証フェーズにおいて、
前記情報処理デバイスが、前記記憶手段に格納されている前記暗号化された証明書を、前記暗号鍵に対応する復号鍵を用いて復号し、復号された前記証明書を、前記第１のサーバに送信し、前記デバイス固有情報を送信せず、
前記第１のサーバが、復号された前記証明書を前記情報処理デバイスから受信し、その受信した証明書が前記情報処理デバイスの登録フェーズにおいて発行された正しい証明書か否かを、前記第１の管理情報と、その受信した証明書から特定される情報とに基づき、証明書検証鍵を用いて判断するデバイス認証を実行する、
デバイス認証方法。
【請求項９】
ユーザが使用する情報処理デバイスを一意に識別可能な固有の情報であるデバイス固有情報を記憶している前記情報処理デバイスの登録フェーズにおいて、
第１のサーバにより、第２のＩＤとパスワードとのうち前記パスワードを第２のサーバから受信し、
前記第１のサーバにより、前記情報処理デバイスに対して定められたＩＤである管理ＩＤと前記管理ＩＤについて固有に割り振られた割振り情報又はそれに基づく情報とを第１の管理情報に登録し、
前記第１のサーバにより、前記管理ＩＤと、前記割振り情報と前記パスワードとを基に鍵を用いて生成された署名値と、前記割振り情報又はそれに基づく情報とを前記第２のサーバに送信し、
前記第１のサーバにより、前記情報処理デバイスから、第１のＩＤと、前記パスワードと、前記署名値と、前記割振り情報又はそれに基づく情報とを含んだ依頼であって、前記デバイス固有情報を含まない依頼を受信し、
前記第１のサーバにより、前記依頼に含まれている割振り情報又はそれに基づく情報と前記依頼に含まれているパスワードとを基に鍵を用いて、前記依頼に含まれている署名値の正当性を判断し、前記署名値が正当であれば、前記第１の管理情報に、前記依頼に含まれている第１のＩＤを登録し、前記割振り情報を基に証明書生成鍵を用いて前記デバイス固有情報を含んでない電子的な証明書を生成し、
前記第１のサーバにより、その生成した証明書を前記情報処理デバイスに送信し、
前記第２のサーバが、前記第２のＩＤと前記パスワードとを前記情報処理デバイスから受信し、前記第２のＩＤを第２の管理情報に登録し、前記パスワードを前記第１のサーバに送信するようになっており、
前記第２のサーバが、前記管理ＩＤと、前記署名値と、前記割振り情報又はそれに基づく情報とを前記第１のサーバから受信し、その署名値と、割振り情報又はそれに基づく情報とを、前記情報処理デバイスに送信し、前記第２のＩＤが登録されている前記第２の管理情報に前記管理ＩＤを登録するようになっており、
前記情報処理デバイスの認証フェーズにおいて、
前記第１のサーバにより、前記情報処理デバイスから、前記デバイス固有情報を受信せず、前記登録フェーズにおいて発行された前記割振り情報を基に証明書生成鍵を用いて生成され前記デバイス固有情報を含んでない電子的な証明書を前記情報処理デバイスから受信し、その受信した証明書は、前記登録フェーズにおいて、前記情報処理デバイスによって、前記デバイス固有情報それ自体又は前記デバイス固有情報に基づく情報である暗号鍵を用いて暗号化され前記情報処理デバイスが有する記憶手段に格納され、且つ、前記認証フェーズにおいて、前記情報処理デバイスによって、前記暗号鍵に対応する復号鍵を用いて復号された証明書であり、
前記第１のサーバにより、その受信した証明書が前記情報処理デバイスの登録フェーズにおいて発行された正しい情報か否かを、前記第１の管理情報と、その受信した証明書から特定される情報とに基づき、証明書検証鍵を用いて判断するデバイス認証を実行する
デバイス認証方法。
【請求項１０】
ユーザが使用する情報処理デバイスを一意に識別可能な固有の情報であるデバイス固有情報を記憶している前記情報処理デバイスの登録フェーズにおいて、
前記情報処理デバイスにより、第２のＩＤとパスワードとを第２のサーバに送信し、
前記情報処理デバイスにより、署名値と、割振り情報又はそれに基づく情報とを前記第２のサーバから受信し、
前記情報処理デバイスにより、第１のＩＤと、前記パスワードと、前記署名値と、前記割振り情報又はそれに基づく情報とを含んだ依頼であって、前記デバイス固有情報を含まない依頼を第１のサーバに送信し、
前記情報処理デバイスにより、証明書を前記第１のサーバから受信し、
前記情報処理デバイスにより、その受信した証明書を、前記デバイス固有情報それ自体又は前記デバイス固有情報に基づく情報を暗号鍵として、暗号化し、前記暗号化された証明書を、前記情報処理デバイスが有する記憶手段に格納し、
前記第２のサーバは、前記第２のＩＤと前記パスワードとを受信し、前記第２のＩＤを第２の管理情報に登録し、前記パスワードを前記第１のサーバに送信するようになっており、
前記第１のサーバが、前記第２のサーバから前記パスワードを受信し、前記情報処理デバイスに対して定められたＩＤである管理ＩＤと前記管理ＩＤについて固有に割り振られた前記割振り情報又はそれに基づく情報とを第１の管理情報に登録し、前記管理ＩＤと、前記割振り情報と前記パスワードとを基に鍵を用いて生成された署名値と、前記割振り情報又はそれに基づく情報とを前記第２のサーバに送信するようになっており、
前記第２のサーバが、前記管理ＩＤと、前記署名値と、前記割振り情報又はそれに基づく情報とを前記第１のサーバから受信し、その署名値と、割振り情報又はそれに基づく情報とを、前記情報処理デバイスに送信し、前記第２のＩＤが登録されている前記第２の管理情報に前記管理ＩＤを登録するようになっており、
前記第１のサーバが、前記依頼を前記情報処理デバイスから受信し、前記依頼に含まれている割振り情報又はそれに基づく情報と前記依頼に含まれているパスワードとを基に鍵を用いて、前記依頼に含まれている署名値の正当性を判断し、前記署名値が正当であれば、前記第１の管理情報に、前記依頼に含まれている第１のＩＤを登録し、前記割振り情報を基に証明書生成鍵を用いて前記デバイス固有情報を含んでない電子的な前記証明書を生成し、その生成した証明書を前記情報処理デバイスに送信するようになっており、
前記情報処理デバイスの認証フェーズにおいて、
前記情報処理デバイスにより、前記記憶手段に格納されている前記暗号化された証明書を、前記暗号鍵に対応する復号鍵を用いて復号し、前記デバイス固有情報を前記第１のサーバに送信せず、復号された前記証明書を、前記第１のサーバに送信し、
前記第１のサーバが、復号された前記証明書を前記情報処理デバイスから受信し、その受信した証明書が前記情報処理デバイスの登録フェーズにおいて発行された正しい証明書か否かを、前記第１の管理情報と、その受信した証明書から特定される情報とに基づき、証明書検証鍵を用いて判断するデバイス認証を実行するようになっている、
デバイス認証支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス認証技術に関し、具体的には、例えばサーバへのログオンのような行為を行うためのデバイスが正当であるか否かを電子的に確認するためのデバイス認証技術に関する。
【背景技術】
【０００２】
この種の技術として、例えば、サイバートラスト株式会社のサイバートラストデバイスＩＤというデバイス認証技術が知られている。サイバートラストデバイスＩＤでは、端末識別番号により特定されたデバイス（典型的には、情報処理端末）に、電子的な証明書をインストールすることにより、そのデバイスの認証が可能となる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】サイバートラストデバイスＩＤ  https://www.cybertrust.ne.jp/MDM/deviceid/index.html
【発明の概要】
【発明が解決しようとする課題】
【０００４】
サイバートラストデバイスＩＤでは、証明書は、デバイスの秘匿記憶エリア（デバイスが有する記憶エリアのうち、デバイスのユーザからアクセス不可能なエリア）に格納されることで、複製できないようアクセス制御される。このため、秘匿記憶エリアを有しないデバイスは、サイバートラストデバイスＩＤを利用することができない。
【０００５】
また、サイバートラストデバイスＩＤでは、端末識別番号のようなデバイス固有情報（デバイスに固有の情報（典型的には識別情報））を、デバイス認証を行うサーバに通知する必要がある。デバイス固有情報から、デバイスを一意に識別することができてしまうため、デバイス固有情報を、そのデバイス以外のデバイス（例えばサーバ）に通知することは、プライバシーの点で問題である。
【０００６】
従って、本発明の目的は、秘匿記憶エリアの有無に関わらずデバイスの認証を可能とし、且つ、デバイス認証を行うサーバにデバイス固有情報を通知しなくてもデバイス認証を可能とすることにある。
【課題を解決するための手段】
【０００７】
ユーザが使用し記憶デバイスを有する情報処理デバイスが、その情報処理デバイスに固有の情報であるデバイス固有情報それ自体又はデバイス固有情報に基づく情報を暗号鍵として、サーバでのデバイス認証に必要な対象情報を暗号化し、暗号化された対象情報を記憶する。情報処理デバイスは、記憶されている暗号化された対象情報の生成に使用された暗号鍵に対応する復号鍵を用いて、暗号化された対象情報を復号し、復号された対象情報を、サーバに送信する。サーバは、情報処理デバイスから対象情報を受信し、受信した対象情報が正しいか否かを判断する。
【０００８】
なお、対象情報は、例えば、後述の実施例で述べる証明書（電子的な証明書）であるが、証明書に限らず、他種の情報（例えば、ランダムな情報（乱数列））でも良い。また、暗号鍵は、デバイス固有情報に加えて、ユーザが記憶している情報（例えば、パスワード、誕生日）に基づいても良い。
【発明の効果】
【０００９】
秘匿記憶エリアの有無に関わらず情報処理デバイスの認証が可能であり、且つ、情報処理デバイスのデバイス固有情報をサーバに伝えることなく、情報処理デバイスを認証することができる。また、情報処理デバイスに格納されている対象情報は暗号化されており、その暗号化されている対象情報は、その対象情報を暗号化した情報処理デバイスのデバイス固有情報それ自体又はそのデバイス固有情報に基づく暗号鍵を使用しないと正しく復号できないので、情報処理デバイスから対象情報が漏洩しても、その対象情報を用いて他の情報処理デバイスが認証されてしまうことはない。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係るデバイス認証システムの構成を示す。
【図２】図２は、ユーザ登録フェーズで行われる処理の流れを示す。
【図３】図３は、認証フェーズで行われる処理の流れを示す。
【図４】図４は、実施例に係るデバイス認証システムを含んだＯＴＰ（ワンタイムパスワード）認証システムである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、実施例を説明する。なお、以下、コンピュータプログラムを主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで定められた処理を行うため、その処理の説明はプロセッサを主語とした説明とすることもできる。また、プログラムを主語として説明された処理は、情報処理デバイス等の計算機が行う処理としてもよい。また、プログラムをプロセッサが実行することによって行われる処理の一部または全てはハードウェア回路によって実現されてもよい。
【００１２】
図１は、実施例に係るデバイス認証システムの構成を示す。
【００１３】
ユーザ１０１が使用する情報処理デバイス１０２と、サーバの一例であるサービスシステム１５１とがある。なお、以下の説明において、情報処理デバイス１０２を「Ｕ」と表し、サービスシステム１５１を「Ｋ」と表すことがある。
【００１４】
情報処理デバイス１０２は、例えば、スマートフォンである。スマートフォンは、スマートデバイスの一種である。スマートデバイスは、単なる計算処理だけではなく、多種多様な用途に使用可能な多機能のデバイスであり、典型的には、iPhone（登録商標）のようなスマートフォン１０２、及び、iPad（登録商標）のようなタブレットＰＣ（Personal  Computer）である。勿論、情報処理デバイス１０２は、スマートフォン以外のスマートデバイスでも良いし、スマートデバイスではなく、スマートデバイスの部類には属さない携帯電話機でも良いし、その他の可搬型又は据置型の情報処理デバイスであっても良い。
【００１５】
サービスシステム１５１は、一種の計算機（コンピュータシステム）であり、ユーザ１０１に対して、サービスを提供するとき、そのサービスを使用しようとする情報処理デバイス１０２の認証を行う。具体的には、例えば、サービスシステム１５１は、情報処理デバイス１０２のユーザに関する情報をサービスシステム１５１に登録するためのユーザ登録フェーズにおいて、電子的な証明書を情報処理デバイス１０２に送信し、ユーザ登録フェーズ後のフェーズである認証フェーズにおいて、情報処理デバイス１０２から証明書を受信しその証明書を基に情報処理デバイス１０２を認証する。異なる企業によって運用され異なるサービスを提供する異なる複数のサービスシステム１５１が存在して良い。また、サービスシステム１５１が提供するサービスは、どのようなサービスでも良い。
【００１６】
以下、情報処理デバイス１０２及びサービスシステム１５１を詳細に説明する。
【００１７】
情報処理デバイス１０２は、前述したように例えばスマートフォンであり、タッチパネル型ディスプレイ１１１と、記憶デバイス１１３と、サービスシステム１５１のような外部の装置と無線通信する通信インタフェースデバイス１１４と、デバイス１１１、１１３及び１１４に接続された制御デバイス１１２とを有する。本実施例において、「記憶デバイス」は、１以上の記憶デバイスの集合を意味し、主記憶デバイス及び補助記憶デバイスのうちの少なくとも１つを含んでよい。記憶デバイスは、１以上のメモリを含み、１以上のメモリは、主記憶デバイスとして使用されるメモリと補助記憶デバイスとして使用されるメモリの少なくとも１つを含んで良い。また、本実施例において、「制御デバイス」は、典型的には、ＣＰＵ（Central  Processing  Unit）のようなプロセッサを含み、更に、所定のハードウェア回路（例えば、暗号化及び／又は復号化を行う回路）を含んでも良い。また、本実施例において、「通信インタフェースデバイス」は、１以上の通信インタフェースデバイスの集合を意味し、例えば、無線通信のための通信インタフェースデバイスを含んでいて良い。
【００１８】
記憶デバイス１１３は、認証支援アプリケーションプログラム（以下、認証支援ＡＰ）１２１のようなコンピュータプログラムと、情報処理デバイス１０２に固有の情報であるデバイス固有情報１２２のような情報とを記憶する。
【００１９】
認証支援ＡＰ１２１は、サービスシステム１５１から情報処理デバイス１０２が受信した証明書を暗号化したり、暗号化された証明書を復号してサービスシステム１５１に送信したりする。認証支援ＡＰ１２１は、サービスシステム１５１又は別のサーバから情報処理デバイス１０２にダウンロードされてインストールされたプログラム（例えば、情報処理デバイス１０２のオペレーティングシステム上で動作するアプリケーションプログラム）であっても良いし、可搬型の記憶媒体からインストールされたプログラムであっても良いし、情報処理デバイス１０２にプリインストールされているプログラムであっても良い。認証支援ＡＰ１２１は、或る１つのサービスシステム１５１に専用のプログラムであっても良いし、複数のサービスシステム１５１に共通のプログラムであっても良い。
【００２０】
デバイス固有情報１２２は、情報処理デバイス１０２を一意に識別可能な情報であれば、どのような種類の情報でも良く、例えば、個体識別番号(IMEI（International  Mobile  Equipment  Identity）)、電話番号、ＭＡＣアドレス、製造番号及びＳＩＭ（Subscriber  Identity  Module）カードの製造番号のうちのいずれかであっても良いし、それらのうちの２つ以上の情報の組み合わせでも良い。
【００２１】
サービスシステム１５１は、記憶デバイス１６３と、情報処理デバイス１０２のような外部の装置と通信する通信インタフェースデバイス１６４と、デバイス１６３及び１６４に接続された制御デバイス１６２とを有する。
【００２２】
記憶デバイス１６３は、デバイス認証プログラム１７１のようなコンピュータプログラムと、証明書生成鍵１７２及び証明書検証鍵１７３のような情報とを記憶する。サービスシステム１５１が使用する情報の全て又は一部は、記憶デバイス１６３に代えて又は加えて、サービスシステム１５１が通信インタフェースデバイス１６４を介して通信可能な外部のストレージ装置（図示しない）に記憶されても良い。証明書生成鍵１７２及び証明書検証鍵１７３は、本実施例では別々であるが、同一の鍵で証明書が生成されても良いし検証されても良い。
【００２３】
デバイス認証プログラム１７１は、ユーザ登録フェーズにおいて証明書を情報処理デバイス１０２に送信し、認証フェーズにおいて証明書を情報処理デバイス１０２から受信しその証明書を基に情報処理デバイス１０２を認証する。
【００２４】
証明書生成鍵１７２は、証明書を生成する際に使用される情報である。証明書検証鍵１７３は、証明書を検証する際に使用される情報である。
【００２５】
以下、本実施例で行われる処理の流れを説明する。
【００２６】
＜ユーザ登録フェーズ＞
【００２７】
図２は、ユーザ登録フェーズで行われる処理の流れを示す。
【００２８】
ユーザ登録フェーズは、例えば、情報処理デバイス１０２がユーザ１０１からの指示により認証支援ＡＰ１２１を起動し、認証支援ＡＰ１２１が、所定の指示をユーザ１０１から受けた場合に開始される。
【００２９】
認証支援ＡＰ１２１が、ユーザ登録の要求をサービスシステム１５１に送信する（Ｓ２０１）。証明書は、情報処理デバイス１０２からの情報を基に生成されても良く、その場合、このＳ２０１で送信される要求が、証明書の生成に使用される情報（例えば、パスワード、或いは、後述のシリアル番号ｎ）を含んで良い。
【００３０】
サービスシステム１５１が、情報セットを受信し記憶デバイス（例えばメモリ）１６３に格納する。デバイス認証プログラム１７１が、受信した情報セット中の所定種類の情報が正しいか否かを判断する（Ｓ２０２）。
【００３１】
Ｓ２０２の判断の結果が肯定的であれば、デバイス認証プログラム１７１が、証明書生成鍵１７２を用いて、証明書を生成し（Ｓ２０３）、証明書の検証に必要な情報である証明書検証鍵１７３を記憶デバイス（例えばメモリ）１６３に格納する。証明書検証鍵１７３は、例えば、証明書に含まれるメッセージ（例えば後述のｕｎ）の全て又は一部分で良い。本実施例では、証明書を生成するシステムと証明書を検証するシステムが同一システムであるため、証明書検証鍵１７３は、証明書に含まれるメッセージの一部分で良い。証明書検証鍵１７３は、例えば、ランダムに生成された情報であって、ユーザに割り振られた情報で良い。デバイス認証プログラム１７１が、生成された証明書を、ユーザ登録の要求の送信元の情報処理デバイス１０２に送信する（Ｓ２０４）。
【００３２】
情報処理デバイス１０２が、証明書をサービスシステム１５１から受信する。認証支援ＡＰ１２１が、受信した証明書を、デバイス固有情報１２２に基づく情報である暗号鍵２５１を用いて暗号化し、（Ｓ２０５）、暗号化された証明書を、記憶デバイス（例えばメモリ）１１３に格納する（Ｓ２０６）。
【００３３】
以上、ユーザ登録フェーズによれば、デバイス固有情報１２２に基づく情報を暗号鍵２５１として証明書が暗号化される。暗号鍵２５１は、デバイス固有情報１２２のハッシュ値など、デバイス固有情報１２２に基づく情報であるが、デバイス固有情報１２２それ自体であっても良い。暗号鍵２５１は、例えば、認証支援ＡＰ１２１によって生成され（Ｓ２１１）、記憶デバイス１１３に格納されても良い。暗号鍵２５１の生成は、ユーザ登録フェーズとは異なるフェーズで行われても良いし、Ｓ２０１よりも前に行われても良いし、Ｓ２０１〜Ｓ２０５中に行われても良い。
【００３４】
＜認証フェーズ＞
【００３５】
図３は、認証フェーズで行われる処理の流れを示す。
【００３６】
認証フェーズは、ユーザ登録フェーズの後のフェーズであって、例えば、情報処理デバイス１０２が、ユーザからの指示に応答してサービスの依頼を出すときに開始される。
【００３７】
認証支援ＡＰ１２１が、記憶デバイス１１３内の暗号証明書（暗号化されている証明書）３５３を、復号鍵３５１を用いて復号する（Ｓ３０１）。復号鍵３５１は、証明書の暗号化に使用された暗号鍵２５１と同じ鍵（共通鍵）でも良いし、異なる鍵であっても良い。本実施例では、復号鍵３５１は、暗号鍵２５１と同じ鍵である。復号鍵３５１は、ユーザ登録フェーズにおいて生成され記憶された暗号鍵２５１それ自体であっても良いが、本実施例のように、認証フェーズのようにユーザ登録フェーズとは異なるフェーズにおいてデバイス固有情報１２２を基に再度認証支援ＡＰ１２１によって生成（Ｓ３１１）されても良い。
【００３８】
認証支援ＡＰ１２１が、復号された証明書をサービスシステム１５１に送信する（Ｓ３０２）。
【００３９】
サービスシステム１５１が、証明書を情報処理デバイス１０２から受信する。デバイス認証プログラム１７１が、受信した証明書を、記憶デバイス１６３内の証明書検証鍵１７３を用いて検証する（３０３）。つまり、デバイス認証プログラム１７１が、証明書が正しいか否かを判断する。
【００４０】
デバイス認証プログラム１７１によって証明書が正しいと判断された場合、サービスシステム１５１の制御デバイス１６２が、サービス（例えば、ＯＴＰ（ワンタイムパスワード）の発行）を開始する。
【００４１】
以上が、本実施例で行われる処理である。
【００４２】
本実施例によれば、一般に秘匿記憶エリアを有する情報処理デバイスは勿論であるが、秘匿記憶エリアを有しない種類の情報処理デバイスであっても、デバイス認証が可能である。
【００４３】
また、本実施例によれば、情報処理デバイス１０２のデバイス固有情報１２２をサービスシステム１５１に伝えることなく、デバイス認証をすることができる。
【００４４】
また、本実施例によれば、情報処理デバイス１０２に格納されている証明書は暗号化されており、その暗号化されている証明書は、その証明書を暗号化した情報処理デバイス１０２のデバイス固有情報１２２に基づく復号鍵３５１を使用しないと正しく復号できないので、情報処理デバイス１０２から証明書が漏洩しても、その証明書を用いて他の情報処理デバイスが認証されてしまうことはない。
【００４５】
なお、本実施例では、更に、下記のことが行われて良い。
【００４６】
例えば、証明書が、定期的に又は不定期的に（例えば所定のスケジュールで）更新されて良い。具体的には、例えば、下記が考えられる。
（＊）ユーザ１０１について、図３のＳ３０４（証明書の検証成功）がＫ回（Ｋは１以上の整数）行われる都度に、デバイス認証プログラム１７１が、図２のＳ２０３及びＳ２０４を行っても良い。その際、Ｓ２０３では、デバイス認証プログラム１７１は、ユーザ１０１について直前回の証明書生成に使用された証明書生成鍵１７２とは異なる証明書生成鍵１７２を用いて証明書を生成する。
（＊）或いは、認証支援ＡＰ１２１が、定期的に又は不定期的に、同一のサービスシステム１５１に対し、ユーザ登録フェーズを行う。その際、デバイス認証プログラム１７１は、今回のユーザ登録フェーズでは、過去のユーザ登録フェーズで証明書生成の際に使用した証明書生成鍵１７２とは異なる証明書生成鍵１７２を用いて証明書を生成する。これにより、今回のユーザ登録フェーズにおいて、過去のユーザ登録フェーズにおいて格納された暗号証明書３５３とは異なる暗号証明書３５３が情報処理デバイス１０２の記憶デバイス１１３に認証支援ＡＰ１２１によって格納されることになる。
【００４７】
なお、デバイス認証プログラム１７１は、証明書のバージョンを表す情報（以下、バーション情報）を証明書に含め、且つ、バージョン毎の証明書検証鍵１７３と、バージョン情報と証明書検証鍵１７３との対応関係を表す情報（以下、バージョン／検証鍵対応情報）とが、記憶デバイス１６３に記憶されて良い。Ｓ３０３において、デバイス認証プログラム１７１は、証明書に含まれているバージョン情報に対応した証明書検証鍵１７３を、バージョン／検証鍵対応情報を用いて複数の証明書検証鍵１７３から特定し、特定した証明書検証鍵１７３を用いて、証明書が正しいか否かを判断して良い。なお、上記バージョン／検証鍵対応情報は、必ずしも無くても良い。この場合、デバイス認証プログラム１７１は、証明書検証鍵１７３を順次に用いた検証を行い、いずれか１つの証明書検証鍵１７３を用いて正当であるという結果が得られた場合に、証明書が正しいと判断して良い。
【００４８】
このように、証明書が、定期的に又は不定期的に更新されるので、暗号証明書３５３が不正に復号されるようなことがあっても、不正に復号された証明書を用いて不正な情報処理デバイスが認証されてしまうことを防ぐことができる。
【００４９】
また、例えば、暗号鍵２５１および復号鍵３５１と認証支援ＡＰ１２１が行う暗号化/復号のアルゴリズムとのうちの少なくとも１つが、定期的又は不定期的に（例えば所定のスケジュールで）更新されて良い。具体的には、例えば、下記が考えられる。
（＊）認証支援ＡＰ１２１が、暗号鍵２５１および復号鍵３５１の基とするデバイス固有情報１２２を定期的又は不定期的に更新する。これにより、例えば、前回使用されたデバイス固有情報１２２が、個体識別番号(IMEI)であり、今回使用されるデバイス固有情報１２２が、電話番号である場合がある。
（＊）認証支援ＡＰ１２１それ自体が、定期的に又は不定期的に更新される。例えば、認証支援ＡＰ１２１は、定期的又は不定期的に、認証支援ＡＰ１２１のダウンロード元のサーバ（例えばサービスシステム１５１）にアクセスし、そのサーバから、更新後の認証支援ＡＰ１２１（又は更新前の認証支援ＡＰ１２１との差分）を受信し、受信した更新後の認証支援ＡＰ１２１（又は更新前の認証支援ＡＰ１２１との差分）を基に、情報処理デバイス１０２内の認証支援ＡＰ１２１が更新される。
（＊）認証支援ＡＰ１２１が、複数の暗号化アルゴリズムを選択的に使用できるようになっている。認証支援ＡＰ１２１は、所定の規則又はランダムに、証明書を暗号化するアルゴリズムを選択し、選択した暗号化アルゴリズムで、暗号鍵２５１を用いて証明書を暗号化して良い。
【００５０】
なお、認証支援ＡＰ１２１は、記憶デバイス１１３に、暗合証明書３５３と復号アルゴリズム及び／又は復号鍵３５１との対応関係を表す情報（以下、暗号管理情報）が記憶されて良い。認証支援ＡＰ１２１は、復号の際には、暗号管理情報を基に、復号対象の暗号証明書３５３に対応した復号鍵３５１及び／又は復号アルゴリズムを特定し、特定した復号鍵３５１及び／又は復号アルゴリズムを用いて、復号対象の暗号証明書３５３を復号して良い。
【００５１】
また、実施例に係るデバイス認証システムは、例えば、下記の環境に適用することができる。
【００５２】
図４は、実施例に係るデバイス認証システムを含んだＯＴＰ（ワンタイムパスワード）認証システムである。
【００５３】
サービスシステム１５１の記憶デバイス１６３は、認証機関リスト４０１とユーザリスト４０２を記憶している。認証機関リスト４０１は、認証機関システム４１１毎に認証機関システム４１１に関する情報を有する。ユーザリスト４０２は、ユーザ１０１が使用する情報処理デバイス毎に情報処理デバイスに関する情報を有する。
【００５４】
情報処理デバイス１０２及びサーバシステム１０５と通信可能な計算機（コンピュータシステム）として、認証機関システム４１１がある。認証機関システム４１１は、認証機関に運用されるコンピュータシステムであり、記憶デバイス４６３と、情報処理デバイス１０２及びサービスシステム１５１のような外部の装置と通信する通信インタフェースデバイス４６４と、デバイス４６３及び４６４に接続された制御デバイス４６２とを有する。
【００５５】
記憶デバイス４６３は、ユーザリスト４９２のような情報と、認証機関プログラム４９３のようなコンピュータプログラムとを記憶する。認証機関システム４１１が使用する情報の全て又は一部は、記憶デバイス４６３に代えて又は加えて、認証機関システム４１１が通信インタフェースデバイス４６４を介して通信可能な外部のストレージ装置（図示しない）に記憶されても良い。
【００５６】
ユーザリスト４９２は、認証機関システム４１１毎に認証機関システム４１１に関する情報を有する。認証機関プログラム４１１は、情報処理デバイス１０２から受信するＯＴＰが正しいか否かを判断することでユーザ１０１を認証する。
【００５７】
以下、図４に示した環境（ＯＴＰ認証システム）で行われる処理を説明する。その際、下記の表記ルール、
U:スマートフォン１０２、
K:サービスシステム１５１、
S：認証機関システム４１１、
S-List：認証機関リスト４０１、
U-List：ユーザリスト４０２、
A-List：ユーザリスト４９２、
info：デバイス固有情報１２２、
Signkey1(info)：infoに鍵key1を適用した電子署名、
Verify＊：電子署名の検証関数（つまり、証明書検証鍵１７３をkey2とするとき、(info, sig)が正当な「情報」と「署名値」のペアであれば、Verifykey2(info, sig) の値は、trueとなり、そうでなければfalseとなる）、
hash(info)：info に対するハッシュ関数値、
Enckey(およびDeckey)：鍵keyを用いた共通鍵暗号方式の暗号化(復号)関数、
を採用する。なお、以下の説明において、Uの処理は、認証支援AP１２１によって行われ、Kの処理はデバイス認証プログラム１７１によって行われ、Sの処理は認証機関プログラム４９３によって行われるとする。
【００５８】
＜事前設定＞
【００５９】
Sは、ユーザ１０１のOTP をKに発行してもらうようにする際、自身のシステム情報（識別情報）IDSをK に登録し、そのとき、Kとの間で、鍵key0 を共有することとする。S-Listには、S毎に、Sに関する情報(IDSを含む) およびkey0 が登録される。
【００６０】
また、Kは、独自の秘密鍵key（証明書生成鍵１７２）をもつものとし、後述の（R2）における依頼がSからのものであることを検証するための署名(keyを用いて生成された電子署名)ｇS (= Signkey(IDS||・・・)) を発行し、Sに渡しているものとする。
【００６１】
＜ユーザ登録フェーズ＞
【００６２】
以下の（R1）乃至（R4）、図４に示す（Ｒ１）乃至（Ｒ４）にそれぞれ対応している。
【００６３】
（R1）UはSに対して利用を申請する。このとき、両者は後述の第２認証で使用されるID2（Sのサービス利用のためのアカウント文字列）を決定し、Uは、(R4)で使用するpw（チケット利用パスワード）をSに送信する。
【００６４】
(R2) Sは、Uの利用申請を受理する場合、ID2をA-Listに登録し、Kに、証明書ｇSならびに(IDS、 pw)を送り、チケット発行を依頼する。Kは、S-List を参照し、証明書ｇS を検証することにより、その依頼がSによるものであることを確認し、その上で、シリアル番号nおよびそのUに対する識別子mIDを定め、メッセージmnを任意に選び、(mn， mID) を、Uに対応する情報としてU-Listに登録する。識別子mIDは、ランダムの情報で良い。また、Kは、そのシリアル番号nに対するチケットt = Signkey(mn||pw)を生成し、そのチケットtの有効期限Tを定めた上で、(mID, n, t, T) をSに送信する。
【００６５】
(R3)Sは、Uに(n, t, T)を送信する。
【００６６】
(R4)Uは、OTP 発行に使用するアカウント文字列ID1を定め、(ID1, n, t, pw) を含んだ依頼をKに送信する。送信された情報セット中のn、t及びpwは、（R3）によりSから受信した情報である。Kは、Uから依頼を受けた時刻がT（チケットtの有効期限であり、tに関連付けてKに記憶されている情報が表す時刻）を過ぎていないことを確認した上で、nに対応するメッセージmnを用いて、Verifykey(mn||pw, t)を計算し、trueであれば、ID1とmIDとを関連付け、ID1をU-Listに登録する。メッセージmnは、ランダムの情報で良い。さらに、Kは、nの情報を含む文字列ｕn(ｕnは、nより文字数の多い文字列で良い)を生成し、それに対する署名ｇ(= Signkey(un))と合わせたものを、証明書cer(= (un, g))としてUに送る。cerは、UがOTP の発行依頼をする際にKに送信する会員証のような役目を果たす。つまり、Uは、cerを他者に利用されないような方法で保持する必要があるが、それを、本実施例では、前述した方法により実現される。すなわち、Kが、cerを、infoのハッシュ関数である暗号鍵２５１を生成し、その暗号鍵で暗号化して保存する。つまり、Enchash(info)(cer)がUに格納される。また、unは、メッセージmnの一部分又は全部である。つまり、Uには、メッセージmnの全てが送信されないこともある。また、署名ｇ(= Signkey(un))が、証明書検証鍵１７３に相当して良い。なお、署名ｇ(= Signkey(un))は、シリアル番号nがあれば検証可能なので、サービスシステム１５１が、生成した証明書を記憶しておく必要はない。なぜなら、後述するように、認証フェーズにおいて、シリアル番号ｎ等さえあれば、文書情報全体を復元することができるからである。なお、文字列ｕnは、数字又は符号を含んでも良い。
【００６７】
この一連の処理により、U、S、Kの3者は、そのUに関連付ける3つの情報ID1、ID2、mID に対して、Uが、(ID1, ID2)、Sが、(ID2, mID)、Kが、(ID1, mID)をそれぞれ記憶する。
【００６８】
Kは、文書と証明書生成鍵とを基に所定の生成アルゴリズムにより証明書cerを生成することができる。文書の全部がUに送信されても良いが、本実施例では、文書の一部と証明書が、Uに送信され、Uに記憶される。文書の一部は、例えば前述の文字列ｕnであって、シリアル番号ｎを含んで良い。文書は、他種の情報、例えば、証明書のバージョンを表すバージョン情報も含んで良い。
【００６９】
＜認証フェーズ＞
【００７０】
＜＜第１認証：ＯＴＰ発行＞＞
【００７１】
Uは、Kによる第１認証をパスすることにより、Sを利用するためのOTPを発行してもらう。
【００７２】
(A1)Uは、Enchash(info)(cer)を復号し、利用する認証機関システムのIDS、ID1及び復号されたcerを、Kに送信する。
【００７３】
(A2)Kは、U-List を参照することにより、UがSを利用できること、cerの正当性、及び、UがOTPの発行条件を満たしていることを確認した上で、OTP(otp)を生成する。更に、Kは、ID1に対応するmIDを選び、(mID, otp, j)にその署名g (= Signkey0(mID||otp||j))を添えてSに送信し、Uには、(mID, otp, j)のうちotpのみを送信する。ここで、jは、発行時刻等の付加的な情報とする。Sは、Uと共有している鍵key0を用いて、(mID, otp, j) の正当性を確認した上で、A-List を参照することにより、mIDに対応するID2を選び、そのアカウントに対してパスワードotp及びその有効期限T2を設定する。
【００７４】
以上の説明によれば、Kは、文書の一部と証明書を受信し、文書の一部に含まれているシリアル番号ｎ等を用いて、文書全体を復元することができる。そして、Kは、復元した文書と証明書と証明書検証鍵とを用いて、所定の検証アルゴリズムにより、証明書の正当性を検証することができる。
【００７５】
＜＜第２認証：OTPを使用した認証＞＞
【００７６】
Uは、Sによる第２認証をパスすることにより、実際にSのサービスを利用することができるようになる。
【００７７】
(A3)Uは、(A2)によりKから送られたotpを、ID2と共にSに送る。
【００７８】
(A4)Sは、Uのアクセス時刻がT2を過ぎていないことを確認した上で、otpの正当性を検証し、その結果に応じて、Uにサービスを提供する。
【００７９】
以上、本発明の幾つかの実施例を説明したが、本発明はこれらの実施例に限定されない。
【００８０】
また、例えば、認証機関システム４１１とサービスシステム１５１は、異なるハードウェアにあっても良いし、同一のハードウェアにあっても良い。具体的には、例えば、認証機関システム４１１とサービスシステム１５１は、一つのサーバシステム（例えば、複数のブレードサーバ（ハードウェア）を備えたブレードサーバシステム）において論理的に分離されていて良い。また、証明書を生成するシステムと証明書を検証するシステムは別々でも良い。
【符号の説明】
【００８１】
１０１…ユーザ、１０２…スマートフォン、１５１…サービスシステム
【要約】
【課題】秘匿記憶エリアの有無に関わらずデバイスの認証を可能とし、且つ、デバイス認証を行うサーバにデバイス固有情報を通知しなくてもデバイス認証を可能とする。
【解決手段】ユーザが使用し記憶デバイスを有する情報処理デバイスが、デバイス固有情報それ自体又は前記デバイス固有情報に基づく情報を暗号鍵として、サーバでのデバイス認証に必要な対象情報を暗号化し、暗号化された対象情報を記憶する。情報処理デバイスは、記憶されている暗号化された対象情報の生成に使用された暗号鍵に対応する復号鍵を用いて、暗号化された対象情報を復号し、復号された対象情報を、サーバに送信する。サーバは、情報処理デバイスから対象情報を受信し、受信した対象情報が正しいか否かを判断する。
【選択図】図１【図１】
0005380583.tif 000002
【図２】
0005380583.tif 000003
【図３】
0005380583.tif 000004
【図４】
0005380583.tif 000005