(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024071973
(43)【公開日】2024-05-27
(54)【発明の名称】認証システムおよび認証方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240520BHJP
H04L 9/08 20060101ALI20240520BHJP
G06F 21/64 20130101ALI20240520BHJP
G06F 21/60 20130101ALI20240520BHJP
【FI】
H04L9/32 200B
H04L9/32 200F
H04L9/08 C
H04L9/08 E
H04L9/08 F
G06F21/64
G06F21/60 360
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022182523
(22)【出願日】2022-11-15
(71)【出願人】
【識別番号】000003193
【氏名又は名称】TOPPANホールディングス株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【弁理士】
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100169764
【弁理士】
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100147267
【弁理士】
【氏名又は名称】大槻 真紀子
(72)【発明者】
【氏名】丹 寛之
(57)【要約】
【課題】ユーザーがサービス認証に必要な情報を管理する負担を減らすことができる認証システムおよび認証方法を提供する。
【解決手段】管理者装置は、提供者装置の公開鍵を前記管理者装置の秘密鍵で署名することにより証明書を生成し、前記証明書とユーザー装置の公開鍵とを前記提供者装置に送信する。前記提供者装置は、前記提供者装置の秘密鍵と前記ユーザー装置の前記公開鍵とを使用する楕円曲線ディフィー・ヘルマン鍵共有によって前記提供者装置の共通鍵を生成する。前記ユーザー装置は、前記証明書を前記管理者装置の公開鍵で検証し、前記提供者装置の前記公開鍵を取得する。前記ユーザー装置は、前記ユーザー装置の秘密鍵と前記提供者装置の前記公開鍵とを使用する前記楕円曲線ディフィー・ヘルマン鍵共有によって前記ユーザー装置の共通鍵を生成する。前記提供者装置および前記ユーザー装置は、前記共通鍵を使用する暗号通信を実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ユーザーが管理するユーザー装置と、サービス提供者が管理する提供者装置と、サービス管理者が管理する管理者装置とを備える認証システムであって、
前記管理者装置は、
前記提供者装置から取得された前記提供者装置の公開鍵を前記管理者装置の秘密鍵で署名することにより証明書を生成する証明書生成部と、
前記証明書と、前記ユーザー装置から取得された前記ユーザー装置の公開鍵とを前記提供者装置に送信する管理者通信部と、
を有し、
前記提供者装置は、
前記提供者装置の秘密鍵と前記ユーザー装置の前記公開鍵とを使用する楕円曲線ディフィー・ヘルマン鍵共有によって前記提供者装置の共通鍵を生成する提供者鍵生成部と、
前記証明書を前記ユーザー装置に送信し、前記提供者装置の前記共通鍵を使用する暗号通信を前記ユーザー装置と実行する提供者通信部と、
を有し、
前記ユーザー装置は、
前記証明書を、前記管理者装置から取得された前記管理者装置の公開鍵で検証し、前記提供者装置の前記公開鍵を取得する検証部と、
前記ユーザー装置の秘密鍵と前記提供者装置の前記公開鍵とを使用する前記楕円曲線ディフィー・ヘルマン鍵共有によって前記ユーザー装置の共通鍵を生成するユーザー鍵生成部と、
前記ユーザー装置の前記共通鍵を使用する暗号通信を前記提供者装置と実行するユーザー通信部と、
を有する認証システム。
【請求項2】
前記ユーザー装置は、所定の情報を前記ユーザー装置の前記秘密鍵で署名することにより署名情報を生成する第2の生成部を有し、
前記ユーザー通信部は、前記署名情報を前記提供者装置に送信し、
前記提供者装置は、前記署名情報を前記ユーザー装置の前記公開鍵で検証する情報処理部を有する
請求項1に記載の認証システム。
【請求項3】
第2のサービス提供者が管理する第2の提供者装置を備え、
前記第2の提供者装置は、
前記提供者装置から受信された前記提供者装置の公開鍵を前記第2の提供者装置の秘密鍵で署名することにより第2の証明書を生成する情報処理部と、
前記第2の証明書と前記第2の提供者装置の公開鍵とを前記管理者装置に送信する第2の提供者通信部と、
を有し、
前記証明書生成部は、前記第2の証明書と前記第2の提供者装置の前記公開鍵とを前記管理者装置の秘密鍵で署名することにより前記証明書を生成し、
前記管理者通信部は、前記証明書と前記ユーザー装置の前記公開鍵とを、前記第2の提供者装置を介して前記提供者装置に送信し、
前記検証部は、前記証明書を前記管理者装置の前記公開鍵で検証し、前記第2の提供者装置の前記公開鍵を取得し、
前記検証部は、前記証明書に含まれる前記第2の証明書を前記第2の提供者装置の前記公開鍵で検証し、前記提供者装置の前記公開鍵を取得する
請求項1または請求項2に記載の認証システム。
【請求項4】
第2のサービス提供者が管理する第2の提供者装置を備え、
前記第2の提供者装置は、
前記提供者装置から受信された前記提供者装置の公開鍵を前記第2の提供者装置の秘密鍵で署名することにより第2の証明書を生成する情報処理部と、
前記第2の提供者装置の公開鍵を前記管理者装置に送信する第2の提供者通信部と、
を有し、
前記証明書生成部は、前記第2の提供者装置の前記公開鍵を前記管理者装置の秘密鍵で署名することにより前記証明書を生成し、
前記管理者通信部は、前記証明書と前記ユーザー装置の前記公開鍵とを前記第2の提供者装置に送信し、
前記第2の提供者通信部は、前記証明書と前記第2の証明書と前記ユーザー装置の前記公開鍵とを前記提供者装置に送信し、
前記提供者通信部は、前記証明書に加えて前記第2の証明書を前記ユーザー装置に送信し、
前記検証部は、前記証明書を前記管理者装置の前記公開鍵で検証し、前記第2の提供者装置の前記公開鍵を取得し、
前記検証部は、前記第2の証明書を前記第2の提供者装置の前記公開鍵で検証し、前記提供者装置の前記公開鍵を取得する
請求項1または請求項2に記載の認証システム。
【請求項5】
ユーザーが管理するユーザー装置と、サービス提供者が管理する提供者装置と、サービス管理者が管理する管理者装置とを備える認証システムにおける認証方法であって、
前記管理者装置の証明書生成部が、前記提供者装置から取得された前記提供者装置の公開鍵を前記管理者装置の秘密鍵で署名することにより証明書を生成するステップと、
前記管理者装置の管理者通信部が、前記証明書と、前記ユーザー装置から取得された前記ユーザー装置の公開鍵とを前記提供者装置に送信するステップと、
前記提供者装置の提供者通信部が、前記証明書を前記ユーザー装置に送信するステップと、
前記ユーザー装置の検証部が、前記証明書を、前記管理者装置から取得された前記管理者装置の公開鍵で検証し、前記提供者装置の前記公開鍵を取得するステップと、
前記ユーザー装置のユーザー鍵生成部が、前記ユーザー装置の秘密鍵と前記提供者装置の前記公開鍵とを使用する楕円曲線ディフィー・ヘルマン鍵共有によって前記ユーザー装置の共通鍵を生成するステップと、
前記提供者装置の提供者鍵生成部が、前記提供者装置の秘密鍵と前記ユーザー装置の前記公開鍵とを使用する前記楕円曲線ディフィー・ヘルマン鍵共有によって前記提供者装置の共通鍵を生成するステップと、
前記ユーザー装置のユーザー通信部が、前記ユーザー装置の前記共通鍵を使用する暗号通信を前記提供者装置と実行するステップと、
前記提供者通信部が、前記提供者装置の前記共通鍵を使用する暗号通信を前記ユーザー装置と実行するステップと、
を有する認証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証システムおよび認証方法に関する。
【背景技術】
【0002】
サーバ証明書が設定されているWebサーバにブラウザがアクセスすると、ブラウザはサーバ証明書の正当性を確認する。このとき、証明書チェーンが利用される。証明書チェーンとは、クライアントまたはサーバなどの証明書から最上位の認証局(ルート認証局)の証明書までの連なりを指す。
【0003】
図21および
図22を使用することにより証明書チェーンを説明する。
図21は、クライアント900、サーバ910、および認証局920を有する認証システムを示す。サーバ910の証明書Csは認証局920の秘密鍵Kdc1で署名されている。クライアント900は認証局920の公開鍵Kqc1を使用することにより証明書Csの正当性を確認する。そのため、クライアント900は認証局920の公開鍵Kqc1(認証局証明書)を所持する必要がある。
【0004】
認証局は、中間認証局と呼ばれる下位の認証局を持つことができる。最上位にある認証局はルート認証局と呼ばれる。
【0005】
図22は、クライアント900、サーバ910、認証局920、および中間認証局930を有する認証システムを示す。サーバ910の証明書Csは中間認証局930の秘密鍵Kdc2で署名されている。中間認証局930の証明書Ccは、中間認証局930よりも上位のルート認証局である認証局920の秘密鍵Kdc1で署名されている。中間認証局930の証明書Ccは、中間認証局930の公開鍵を含む。中間認証局930の証明書Ccは、サーバ910に予め設定されている。クライアント900は認証局920の公開鍵Kqc1を予め所持している。
【0006】
クライアント900は、認証局920の公開鍵Kqc1を使用することにより、サーバ910が所持する中間認証局930の証明書Ccを検証し、中間認証局930の公開鍵を取得する。クライアント900は、中間認証局930の公開鍵を使用することによりサーバ910の証明書Csを検証する。この仕組みによって、クライアント900はサーバ910の正当性を確認することができる。
【0007】
公開鍵暗号方式の暗号プロトコルとして、楕円曲線ディフィー・ヘルマン鍵共有(ECDH)がある。ECDHは、楕円曲線を使用するようにディフィー・ヘルマン鍵共有を変更した楕円曲線暗号の1つである。ECDHは、事前に秘密を共有することなく、盗聴の可能性のある通信路を使用することにより秘密情報または暗号鍵の共有を可能とする。
【0008】
ECDHについて説明する。アリスとボブの2人が共通鍵を共有するために、お互いに秘密鍵dと公開鍵Qとからなる鍵ペアを生成する。アリスの鍵ペアは(dA,QA)であり、ボブの鍵ペアは(dB,QB)である。公開鍵QAは、秘密鍵dAと楕円曲線Gとの掛け算により生成される。公開鍵QBは、秘密鍵dBと楕円曲線Gとの掛け算により生成される。
【0009】
2人は互いの公開鍵を交換する。アリスはdA*QBという計算を行い、ボブはdB*QAという計算を行う。このとき、以下の式(1)に示す関係が成立する。
dA*QB=dA*dB*G=dB*dA*G=dB*QA ・・・(1)
【0010】
したがって、アリスとボブは、お互いに共通の楕円曲線上のx座標を取得することができる。アリスとボブは、このx座標を共通鍵とする。秘密鍵dA,dBはアリスとボブのそれぞれが秘密に所持しているため、通信路上で公開鍵QAまたはQBが盗聴されても、第三者が共通鍵を算出することはできない。そのため、アリスとボブは共通鍵を安全に生成することができる。特許文献1には、ECDHを使用することによりセキュアチャネルを確立する方法が記載されている。
【先行技術文献】
【特許文献】
【0011】
【発明の概要】
【発明が解決しようとする課題】
【0012】
ユーザーは、様々なサービスを利用する際に、各サービスにユーザー情報を登録し、スマートフォンなどのユーザー装置に各サービスのアプリケーションをインストールする。ユーザーが店舗などでサービスを利用するとき、ユーザーはアプリケーションを起動してサービスへのログインを行い、ユーザーの正当性を確認するためのサービス認証に必要な情報を提示する必要がある。そのため、ユーザーIDおよびパスワードなどのログイン情報がサービスごとに必要であり、その情報の管理がユーザーの負担となる。
【0013】
本発明は、ユーザーがサービス認証に必要な情報を管理する負担を減らすことができる認証システムおよび認証方法を提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明は、ユーザーが管理するユーザー装置と、サービス提供者が管理する提供者装置と、サービス管理者が管理する管理者装置とを備える認証システムであって、前記管理者装置は、前記提供者装置から取得された前記提供者装置の公開鍵を前記管理者装置の秘密鍵で署名することにより証明書を生成する証明書生成部と、前記証明書と、前記ユーザー装置から取得された前記ユーザー装置の公開鍵とを前記提供者装置に送信する管理者通信部と、を有し、前記提供者装置は、前記提供者装置の秘密鍵と前記ユーザー装置の前記公開鍵とを使用する楕円曲線ディフィー・ヘルマン鍵共有によって前記提供者装置の共通鍵を生成する提供者鍵生成部と、前記証明書を前記ユーザー装置に送信し、前記提供者装置の前記共通鍵を使用する暗号通信を前記ユーザー装置と実行する提供者通信部と、を有し、前記ユーザー装置は、前記証明書を、前記管理者装置から取得された前記管理者装置の公開鍵で検証し、前記提供者装置の前記公開鍵を取得する検証部と、前記ユーザー装置の秘密鍵と前記提供者装置の前記公開鍵とを使用する前記楕円曲線ディフィー・ヘルマン鍵共有によって前記ユーザー装置の共通鍵を生成するユーザー鍵生成部と、前記ユーザー装置の前記共通鍵を使用する暗号通信を前記提供者装置と実行するユーザー通信部と、を有する認証システムである。
【0015】
本発明は、ユーザーが管理するユーザー装置と、サービス提供者が管理する提供者装置と、サービス管理者が管理する管理者装置とを備える認証システムにおける認証方法であって、前記管理者装置の証明書生成部が、前記提供者装置から取得された前記提供者装置の公開鍵を前記管理者装置の秘密鍵で署名することにより証明書を生成するステップと、前記管理者装置の管理者通信部が、前記証明書と、前記ユーザー装置から取得された前記ユーザー装置の公開鍵とを前記提供者装置に送信するステップと、前記提供者装置の提供者通信部が、前記証明書を前記ユーザー装置に送信するステップと、前記ユーザー装置の検証部が、前記証明書を、前記管理者装置から取得された前記管理者装置の公開鍵で検証し、前記提供者装置の前記公開鍵を取得するステップと、前記ユーザー装置のユーザー鍵生成部が、前記ユーザー装置の秘密鍵と前記提供者装置の前記公開鍵とを使用する楕円曲線ディフィー・ヘルマン鍵共有によって前記ユーザー装置の共通鍵を生成するステップと、前記提供者装置の提供者鍵生成部が、前記提供者装置の秘密鍵と前記ユーザー装置の前記公開鍵とを使用する前記楕円曲線ディフィー・ヘルマン鍵共有によって前記提供者装置の共通鍵を生成するステップと、前記ユーザー装置のユーザー通信部が、前記ユーザー装置の前記共通鍵を使用する暗号通信を前記提供者装置と実行するステップと、前記提供者通信部が、前記提供者装置の前記共通鍵を使用する暗号通信を前記ユーザー装置と実行するステップと、を有する認証方法である。
【発明の効果】
【0016】
本発明によれば、認証システムおよび認証方法は、ユーザーがサービス認証に必要な情報を管理する負担を減らすことができる。
【図面の簡単な説明】
【0017】
【
図1】本発明の第1の実施形態による認証システムの構成を示す図である。
【
図2】本発明の第1の実施形態による管理者装置の構成の例を示すブロック図である。
【
図3】本発明の第1の実施形態による提供者装置の構成の例を示すブロック図である。
【
図4】本発明の第1の実施形態によるユーザー装置の構成の例を示すブロック図である。
【
図5】本発明の第1の実施形態による認証システムの動作の例を示す図である。
【
図6】本発明の第1の実施形態による認証システムの動作の例を示す図である。
【
図7】本発明の第1の実施形態による認証システムの動作の例を示す図である。
【
図8】本発明の第1の実施形態による認証システムの動作の例を示す図である。
【
図9】本発明の第1の実施形態による認証システムの動作の例を示す図である。
【
図10】本発明の第1の実施形態の変形例による認証システムの動作の例を示す図である。
【
図11】本発明の第2の実施形態における証明書チェーンを利用する装置間の関係を示す図である。
【
図12】本発明の第2の実施形態による認証システムの構成を示す図である。
【
図13】本発明の第2の実施形態による認証システムの動作の例を示す図である。
【
図14】本発明の第2の実施形態による認証システムの動作の例を示す図である。
【
図15】本発明の第2の実施形態による認証システムの動作の例を示す図である。
【
図16】本発明の第2の実施形態における管理者証明書の構成の例を示す図である。
【
図17】本発明の第2の実施形態による認証システムの動作の例を示す図である。
【
図18】本発明の第2の実施形態の変形例による認証システムの動作の例を示す図である。
【
図19】本発明の第2の実施形態の変形例による認証システムの動作の例を示す図である。
【
図20】本発明の第2の実施形態の変形例による認証システムの動作の例を示す図である。
【発明を実施するための形態】
【0018】
以下、図面を参照し、本発明の実施形態を説明する。
【0019】
(第1の実施形態)
本発明の第1の実施形態を説明する。
図1は、第1の実施形態による認証システム1の構成を示す。認証システム1は、管理者装置10、提供者装置20、およびユーザー装置30を有する。
図1には複数の提供者装置20が示されているが、認証システム1は1台以上の提供者装置20を有していればよい。
【0020】
管理者装置10は、サービス管理者によって管理される装置であり、サービスを利用するユーザーの情報を管理する。提供者装置20は、サービス提供者によって管理される装置であり、通信ネットワークを介したサービスをユーザーに提供する。サービス管理者はサービス提供者と同じであってもよいし、異なっていてもよい。同じサービス管理者が2台以上の提供者装置20を管理してもよい。管理者装置10は、提供者装置20と同様のサービス提供機能を有していてもよい。管理者装置10は、提供者装置20を承認しており、提供者装置20と信頼関係を構築している。
【0021】
ユーザー装置30は、ユーザーによって管理されるスマートフォン、タブレット端末、またはパーソナルコンピュータなどである。ユーザー装置30は、管理者装置10と通信を実行し、ユーザーに関する情報を管理者装置10に登録する。また、ユーザー装置30は、サービス認証に必要な情報を管理者装置10から受信し、その情報を管理する。管理者装置10およびユーザー装置30は互いに通信を実行し、信頼関係を構築する。
【0022】
ユーザー装置30が提供者装置20によって提供されるサービスを利用したことがない場合、ユーザー装置30および提供者装置20は互いに信頼していない。ユーザー装置30は、提供者装置20と通信を実行し、サービス認証に必要な情報を提供者装置20から受信する。
【0023】
従来技術のサービス認証では、提供者装置はユーザーIDおよびパスワードなどを使用することによりユーザー装置を認証する。一方、第1の実施形態のサービス認証では、ユーザー装置30は、管理者装置10と信頼関係を構築し、管理者装置10および提供者装置20から受信された情報を使用することにより、提供者装置20を認証する。ユーザー装置30は、管理者装置10によって承認された提供者装置20を認証することにより、提供者装置20と信頼関係を構築することができる。提供者装置20が認証された後、ユーザー装置30および提供者装置20は、楕円曲線ディフィー・ヘルマン鍵共有(ECDH)を使用する通信を実行する。
【0024】
図2は、管理者装置10の構成の例を示す。管理者装置10は、通信部100、制御部110、および記憶部120を有する。
【0025】
通信部100は、提供者装置20およびユーザー装置30と通信を実行する。制御部110は、通信制御部111、情報管理部112、鍵生成部113、および証明書生成部114を有する。通信制御部111は、通信部100が実行する通信を制御する。情報管理部112は、管理者装置10において使用される情報を管理する。鍵生成部113は、管理者装置10の秘密鍵と公開鍵とのペアを生成する。証明書生成部114は、提供者装置20から取得された情報を管理者装置10の秘密鍵で署名し、証明書を生成する。
【0026】
通信制御部111、情報管理部112、鍵生成部113、および証明書生成部114の少なくとも1つは、CPU(Central Processing Unit)のようなプロセッサが、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより実現されてもよい。通信制御部111、情報管理部112、鍵生成部113、および証明書生成部114の少なくとも1つは、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)のようなハードウェア(回路)によって実現されてもよい。通信制御部111、情報管理部112、鍵生成部113、および証明書生成部114の少なくとも1つは、ソフトウェアおよびハードウェアの組み合わせによって実現されてもよい。
【0027】
記憶部120は、ユーザー装置30から取得された情報などを記憶する。例えば、記憶部120は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read-Only Memory)、またはRAM(Random Access Memory)である。記憶部120は、これらの記録媒体の任意の組み合わせであってもよい。
【0028】
図3は、提供者装置20の構成の例を示す。提供者装置20は、通信部200、制御部210、および記憶部220を有する。
【0029】
通信部200は、管理者装置10およびユーザー装置30と通信を実行する。制御部210は、通信制御部211、情報管理部212、および鍵生成部213を有する。通信制御部211は、通信部200が実行する通信を制御する。情報管理部212は、提供者装置20において使用される情報を管理する。鍵生成部213は、提供者装置20の秘密鍵と公開鍵とのペアを生成する。また、鍵生成部213は、ECDHにより共通鍵を生成する。
【0030】
記憶部220は、管理者装置10およびユーザー装置30から取得された情報などを記憶する。例えば、記憶部220は、HDD、SSD、フラッシュメモリ、EEPROM、またはRAMである。記憶部220は、これらの記録媒体の任意の組み合わせであってもよい。
【0031】
図4は、ユーザー装置30の構成の例を示す。ユーザー装置30は、通信部300、制御部310、および記憶部320を有する。
【0032】
通信部300は、管理者装置10および提供者装置20と通信を実行する。制御部310は、通信制御部311、情報管理部312、鍵生成部313、および検証部314を有する。通信制御部311は、通信部300が実行する通信を制御する。情報管理部312は、ユーザー装置30において使用される情報などを管理する。鍵生成部313は、ユーザー装置30の秘密鍵と公開鍵とのペアを生成する。また、鍵生成部313は、ECDHにより共通鍵を生成する。検証部314は、証明書が提供者装置20から受信されたときに証明書の正当性を検証する。
【0033】
図5から
図9を使用することにより、認証システム1の動作を説明する。
図5は、ユーザー装置30がサービスの利用に必要なユーザー情報を管理者装置10に登録するための認証システム1の動作の例を示す。
【0034】
(ステップS100)
ユーザー装置30の情報管理部312は、ユーザー情報Iuを生成する。例えば、ユーザー情報Iuは、ユーザーを識別するためのユーザーIDなどを含む。ユーザー情報Iuは、ユーザーのメールアドレスなどを含んでもよい。通信制御部311は、ユーザー情報Iuを通信部300に出力し、通信部300を制御することによりユーザー情報Iuを管理者装置10に送信する。また、情報管理部312は、ユーザー情報Iuを記憶部320に保管する。
【0035】
(ステップS105)
管理者装置10の通信部100は、ユーザー情報Iuをユーザー装置30から受信し、ユーザー情報Iuを制御部110に出力する。情報管理部112は、ユーザー情報Iuを記憶部120に登録する。
【0036】
(ステップS110)
情報管理部112は、ユーザー情報が登録されたことを示す応答メッセージを生成する。通信制御部111は、応答メッセージを通信部100に出力し、通信部100を制御することにより応答メッセージをユーザー装置30に送信する。
【0037】
(ステップS115)
ユーザー装置30の通信部300は、応答メッセージを管理者装置10から受信し、応答メッセージを制御部310に出力する。
【0038】
(ステップS120)
鍵生成部313は、ユーザー装置30の秘密鍵であるユーザー秘密鍵Kduと、ユーザー装置30の公開鍵であるユーザー公開鍵Kquとを生成する。ユーザー公開鍵Kquは、ユーザー秘密鍵Kduと楕円曲線Gとの掛け算により生成される。楕円曲線Gは、ユーザー装置30と提供者装置20との間で予め共有される。情報管理部312は、ユーザー秘密鍵Kduおよびユーザー公開鍵Kquを記憶部320に保管する。
【0039】
(ステップS125)
管理者装置10の通信部100が応答メッセージをユーザー装置30に送信した後、鍵生成部113は、管理者装置10の秘密鍵である管理者秘密鍵Kdmと、管理者装置10の公開鍵である管理者公開鍵Kqmとを生成する。情報管理部112は、管理者秘密鍵Kdmおよび管理者公開鍵Kqmを記憶部120に保管する。
【0040】
(ステップS130)
ユーザー装置30の鍵生成部313がユーザー秘密鍵Kduおよびユーザー公開鍵Kquを生成した後、通信制御部311は、ユーザー公開鍵Kquを通信部300に出力し、通信部300を制御することによりユーザー公開鍵Kquを管理者装置10に送信する。
【0041】
(ステップS135)
管理者装置10の通信部100は、ユーザー公開鍵Kquをユーザー装置30から受信し、ユーザー公開鍵Kquを制御部110に出力する。情報管理部112は、ユーザー公開鍵Kquをユーザー情報Iuと関連付け、ユーザー公開鍵Kquを記憶部120に保管する。ユーザー公開鍵Kquおよびユーザー情報Iuは、互いに関連付けられて記憶部120に保管される。
【0042】
(ステップS140)
情報管理部112は、管理者公開鍵Kqmを記憶部120から読み出す。通信制御部111は、管理者公開鍵Kqmを通信部100に出力し、通信部100を制御することにより管理者公開鍵Kqmをユーザー装置30に送信する。
【0043】
(ステップS145)
ユーザー装置30の通信部300は、管理者公開鍵Kqmを管理者装置10から受信し、管理者公開鍵Kqmを制御部310に出力する。情報管理部312は、管理者公開鍵Kqmを記憶部320に保管する。
【0044】
図5に示す処理を実行することにより、ユーザー装置30は、管理者装置10と信頼関係を構築することができる。
【0045】
図6および
図7は、ユーザー装置30がサービスの利用を提供者装置20に申請するときの認証システム1の動作の例を示す。
【0046】
(ステップS200)
ユーザー装置30の情報管理部312は、ユーザー情報Iuを記憶部320から読み出す。通信制御部311は、サービスの利用を申請するためにユーザー情報Iuを通信部300に出力し、通信部300を制御することによりユーザー情報Iuを提供者装置20に送信する。例えば、ユーザー情報Iuは、サービスの利用を申請することを示すメッセージに付加される。
【0047】
(ステップS205)
提供者装置20の通信部200は、ユーザー情報Iuをユーザー装置30から受信し、ユーザー情報Iuを制御部210に出力する。情報管理部212は、ユーザー装置30がサービスの利用を申請していることを認識する。通信制御部211は、ユーザー情報Iuを通信部200に出力し、通信部200を制御することによりユーザー情報Iuを管理者装置10に送信する。例えば、ユーザー情報Iuは、ユーザー情報Iuが登録済みであるか否かの検証を申請することを示すメッセージに付加される。
【0048】
(ステップS210)
管理者装置10の通信部100は、ユーザー情報Iuを提供者装置20から受信し、ユーザー情報Iuを制御部110に出力する。情報管理部112は、提供者装置20から受信されたユーザー情報Iuと同じユーザー情報Iuを記憶部120において検索する。提供者装置20から受信されたユーザー情報Iuと同じユーザー情報Iuが記憶部120に保管されている場合、情報管理部112は、ユーザー情報Iuと関連付けられているユーザー公開鍵Kquを記憶部120から取得する。
【0049】
(ステップS215)
情報管理部112は、検証結果(OKまたはNG)を示す応答メッセージを生成する。提供者装置20から受信されたユーザー情報Iuと同じユーザー情報Iuが記憶部120に保管されている場合、検証結果はOKである。提供者装置20から受信されたユーザー情報Iuと同じユーザー情報Iuが記憶部120に保管されていない場合、検証結果はNGである。通信制御部111は、応答メッセージを通信部100に出力し、通信部100を制御することにより応答メッセージを提供者装置20に送信する。
【0050】
(ステップS220)
提供者装置20の通信部200は、応答メッセージを管理者装置10から受信し、応答メッセージを制御部210に出力する。情報管理部212は、応答メッセージが示す検証結果を確認する。検証結果がNGである場合、
図6および
図7に示す処理が終了する。検証結果がOKである場合、鍵生成部213は、提供者装置20の秘密鍵である提供者秘密鍵Kdsと、提供者装置20の公開鍵である提供者公開鍵Kqsとを生成する。提供者公開鍵Kqsは、提供者秘密鍵Kdsと楕円曲線Gとの掛け算により生成される。情報管理部212は、提供者秘密鍵Kdsおよび提供者公開鍵Kqsを記憶部220に保管する。
【0051】
(ステップS225)
情報管理部212は、提供者情報Isを生成する。例えば、提供者情報Isは、サービス提供者を識別するためのサービス提供者名などを含み、サービスを識別するためのサービス名などを含む。提供者情報Isは、サービス提供者のメールアドレスまたはサービス利用時に閲覧可能なWebページのURLなどを含んでもよい。通信制御部211は、提供者情報Isおよび提供者公開鍵Kqsを通信部200に出力し、通信部200を制御することにより提供者情報Isおよび提供者公開鍵Kqsを管理者装置10に送信する。
【0052】
(ステップS230)
管理者装置10の通信部100は、提供者情報Isおよび提供者公開鍵Kqsを提供者装置20から受信し、提供者情報Isおよび提供者公開鍵Kqsを制御部110に出力する。証明書生成部114は、管理者秘密鍵Kdmを記憶部120から読み出し、提供者情報Isおよび提供者公開鍵Kqsを管理者秘密鍵Kdmで署名することにより証明書Cmsを生成する。
【0053】
(ステップS235)
通信制御部111は、ステップS230において生成された証明書Cmsと、ステップS210において取得されたユーザー公開鍵Kquとを通信部100に出力し、通信部100を制御することにより証明書Cmsおよびユーザー公開鍵Kquを提供者装置20に送信する。
【0054】
(ステップS240)
提供者装置20の通信部200は、証明書Cmsおよびユーザー公開鍵Kquを管理者装置10から受信し、証明書Cmsおよびユーザー公開鍵Kquを制御部210に出力する。情報管理部212は、ユーザー装置30から受信されたユーザー情報Iuと、管理者装置10から受信されたユーザー公開鍵Kquと、管理者装置10から受信された証明書Cmsとを、記憶部220に保管されている提供者秘密鍵Kdsおよび提供者公開鍵Kqsと関連付け、ユーザー情報Iuとユーザー公開鍵Kquと証明書Cmsとを記憶部220に保管する。ユーザー情報Iu、ユーザー公開鍵Kqu、提供者秘密鍵Kds、提供者公開鍵Kqs、および証明書Cmsは、互いに関連付けられて記憶部220に保管される。
【0055】
(ステップS245)
情報管理部212は、サービスの利用の申請が完了したことを示す応答メッセージを生成する。通信制御部211は、応答メッセージを通信部200に出力し、通信部200を制御することにより応答メッセージをユーザー装置30に送信する。
【0056】
図8は、サービス認証における認証システム1の動作の例を示す。サービス認証においてユーザー装置30は、提供者装置20が管理者装置10によって承認されていることを確認する。
【0057】
(ステップS300)
ユーザー装置30の情報管理部312は、ユーザー情報Iuを記憶部320から読み出す。通信制御部311は、サービスの利用開始を要求するためにユーザー情報Iuを通信部300に出力し、通信部300を制御することによりユーザー情報Iuを提供者装置20に送信する。例えば、ユーザー情報Iuは、サービスの利用開始を要求することを示すメッセージに付加される。
【0058】
(ステップS305)
提供者装置20の通信部200は、ユーザー情報Iuをユーザー装置30から受信し、ユーザー情報Iuを制御部210に出力する。情報管理部212は、ユーザー装置30がサービスの利用開始を要求していることを認識する。情報管理部212は、ユーザー装置30から受信されたユーザー情報Iuと同じユーザー情報Iuを記憶部220において検索する。ユーザー装置30から受信されたユーザー情報Iuと同じユーザー情報Iuが記憶部220に保管されている場合、情報管理部212は、ユーザー情報Iuと関連付けられている証明書Cmsを記憶部220から取得する。
【0059】
(ステップS310)
通信制御部211は、証明書Cmsを通信部200に出力し、通信部200を制御することにより証明書Cmsをユーザー装置30に送信する。
【0060】
(ステップS315)
ユーザー装置30の通信部300は、証明書Cmsを提供者装置20から受信し、証明書Cmsを制御部310に出力する。検証部314は、管理者公開鍵Kqmを記憶部320から読み出し、証明書Cmsを管理者公開鍵Kqmで検証する。証明書Cmsは管理者秘密鍵Kdmで署名されているため、検証部314は証明書Cmsを管理者公開鍵Kqmで検証できる。
【0061】
ステップS230における証明書Cmsの生成およびステップS315における証明書Cmsの検証の例を説明する。管理者装置10の証明書生成部114は、ステップS230において、提供者情報Isおよび提供者公開鍵Kqsをハッシュ関数に入力し、ハッシュ値を算出する。証明書生成部114は、ハッシュ値を管理者秘密鍵Kdmで暗号化する。証明書生成部114は、暗号化されたハッシュ値を署名として提供者情報Isおよび提供者公開鍵Kqsに付加することにより証明書Cmsを生成する。
【0062】
ユーザー装置30の検証部314は、ステップS315において、証明書Cmsに含まれる提供者情報Isおよび提供者公開鍵Kqsをハッシュ関数に入力し、ハッシュ値を算出する。また、検証部314は、証明書Cmsに含まれる署名を管理者公開鍵Kqmで復号し、ハッシュ値を取得する。検証部314は、2つのハッシュ値を比較する。2つのハッシュ値が一致する場合、証明書Cmsの正当性が確認され、証明書Cmsの検証が成功する。証明書Cmsの検証の成功は、提供者装置20が管理者装置10によって承認されていることを確認できたことを意味する。2つのハッシュ値が一致しない場合、証明書Cmsの検証が失敗し、
図8に示す処理が終了する。
【0063】
(ステップS320)
証明書Cmsの検証が成功した場合、検証部314は、提供者公開鍵Kqsを証明書Cmsから取得する。
【0064】
(ステップS325)
情報管理部312は、検証結果(OKまたはNG)を示す応答メッセージを生成する。証明書Cmsの検証が成功した場合、検証結果はOKである。証明書Cmsの検証が失敗した場合、検証結果はNGである。通信制御部311は、応答メッセージを通信部300に出力し、通信部300を制御することにより応答メッセージを提供者装置20に送信する。
【0065】
提供者装置20の通信部200は、応答メッセージをユーザー装置30から受信し、応答メッセージを制御部210に出力する。情報管理部212は、応答メッセージが示す検証結果を確認する。検証結果がNGである場合、ユーザー装置30はサービスを利用できない。検証結果がOKである場合、ユーザー装置30はサービスを利用できる。
【0066】
図8に示す処理を実行することにより、ユーザー装置30および提供者装置20は、ユーザー公開鍵Kquおよび提供者公開鍵Kqsを共有することができる。
【0067】
図9は、ユーザー装置30がサービスを利用するときの認証システム1の動作の例を示す。
【0068】
(ステップS400)
ユーザー装置30の鍵生成部313は、ユーザー秘密鍵Kduおよび提供者公開鍵Kqsを記憶部320から読み出す。鍵生成部313は、ユーザー秘密鍵Kduおよび提供者公開鍵Kqsを使用し、ECDHによって共通鍵Kkuを生成する。情報管理部312は、共通鍵Kkuを記憶部320に保管する。
【0069】
(ステップS405)
提供者装置20の鍵生成部213は、提供者秘密鍵Kdsおよびユーザー公開鍵Kquを記憶部220から読み出す。鍵生成部213は、提供者秘密鍵Kdsおよびユーザー公開鍵Kquを使用し、ECDHによって共通鍵Kksを生成する。情報管理部212は、共通鍵Kksを記憶部220に保管する。
【0070】
ユーザー秘密鍵Kdu、ユーザー公開鍵Kqu、提供者秘密鍵Kds、および提供者公開鍵Kqsの間には、以下の式(2)に示す関係が成立する。
Kdu*Kqs=Kdu*Kds*G=Kds*Kdu*G=Kds*Kqu ・・・(2)
【0071】
ユーザー装置30および提供者装置20は、お互いに共通の楕円曲線上のx座標を取得することができる。ユーザー装置30および提供者装置20は、このx座標を共通鍵とする。ユーザー装置30はユーザー秘密鍵Kduを秘密に所持し、提供者装置20は提供者秘密鍵Kdsを秘密に所持しているため、通信路上でユーザー公開鍵Kquまた提供者公開鍵Kqsが盗聴されても、第三者が共通鍵を算出することはできない。そのため、ユーザー装置30および提供者装置20は共通鍵を安全に生成することができる。
【0072】
(ステップS410)
ユーザー装置30の通信制御部311は、通信部300を使用することにより提供者装置20と暗号通信を実行する。
【0073】
(ステップS415)
提供者装置20の通信制御部211は、通信部200を使用することによりユーザー装置30と暗号通信を実行する。
【0074】
ステップS410およびステップS415において、ユーザー装置30から提供者装置20への情報の送信は以下のように実行される。ユーザー装置30の情報管理部312は、共通鍵Kkuを記憶部320から読み出し、提供者装置20へ送信される情報を共通鍵Kkuで暗号化する。通信制御部311は、暗号化された情報を通信部300に出力し、通信部300を使用することによりその情報を提供者装置20に送信する。提供者装置20の通信部200は、暗号化された情報をユーザー装置30から受信し、その情報を制御部210に出力する。情報管理部212は、共通鍵Kksを記憶部220から読み出し、暗号化された情報を共通鍵Kksで復号する。
【0075】
ステップS410およびステップS415において、提供者装置20からユーザー装置30への情報の送信は以下のように実行される。提供者装置20の情報管理部212は、共通鍵Kksを記憶部220から読み出し、ユーザー装置30へ送信される情報を共通鍵Kksで暗号化する。通信制御部211は、暗号化された情報を通信部200に出力し、通信部200を使用することによりその情報をユーザー装置30に送信する。ユーザー装置30の通信部300は、暗号化された情報を提供者装置20から受信し、その情報を制御部310に出力する。情報管理部312は、共通鍵Kkuを記憶部320から読み出し、暗号化された情報を共通鍵Kkuで復号する。
【0076】
ユーザー装置30および提供者装置20は、共通鍵を使用する暗号通信を実行することにより、安全に通信を実行することができる。
【0077】
ユーザー装置30は、証明書Cmsに含まれる提供者情報Isを使用することにより各種処理を実行してもよい。例えば、ユーザー装置30は、提供者情報Isに含まれるサービス提供者名およびサービス名を使用することにより、サービス提供者の正当性を検証してもよい。ユーザー装置30は、提供者情報Isに含まれるメールアドレスを提供者装置20への問い合わせなどに使用してもよい。ユーザー装置30は、提供者情報Isに含まれるURLにアクセスし、各種情報をダウンロードしてもよい。
【0078】
上記のように、管理者装置10の証明書生成部114は、提供者装置20から取得された提供者公開鍵Kqsを管理者秘密鍵Kdmで署名することにより証明書Cmsを生成する(ステップS230)。管理者装置10の通信部100(管理者通信部)は、証明書Cmsと、ユーザー装置30から取得されたユーザー公開鍵Kquとを提供者装置20に送信する(ステップS235)。提供者装置20の通信部200(提供者通信部)は、証明書Cmsをユーザー装置30に送信する(ステップS310)。ユーザー装置30の検証部314は、証明書Cmsを、管理者装置から取得された管理者公開鍵Kqmで検証し(ステップS315)、提供者公開鍵Kqsを取得する(ステップS320)。ユーザー装置30の鍵生成部313(ユーザー鍵生成部)は、ユーザー秘密鍵Kduと提供者公開鍵Kqsとを使用するECDHによってユーザー装置30の共通鍵Kkuを生成する(ステップS400)。提供者装置20の鍵生成部213(提供者鍵生成部)は、提供者秘密鍵Kdsとユーザー公開鍵Kquとを使用するECDHによって提供者装置20の共通鍵Kksを生成する(ステップ405)。ユーザー装置30の通信部300(ユーザー通信部)は、ユーザー装置30の共通鍵Kkuを使用する暗号通信を提供者装置20と実行する(ステップS410)。提供者装置20の通信部200(提供者通信部)は、提供者装置20の共通鍵Kksを使用する暗号通信をユーザー装置30と実行する(ステップS415)。
【0079】
ユーザー装置30は、ユーザー秘密鍵Kduおよびユーザー公開鍵Kquのペアを使用することにより、様々なサービスを利用することができる。ユーザーは、サービスごとのログイン情報を管理する必要はない。例えば、ユーザーは、ユーザー装置30が管理者装置10と接続するためのユーザーIDおよびパスワードのみを管理すればよい。ユーザー装置30が提供者装置20と接続するためのユーザーIDおよびパスワードは不要である。そのため、認証システム1は、ユーザーがサービス認証に必要な情報を管理する負担を減らすことができる。
【0080】
例えば、従来の認証システムにおいてn種類のサービス提供者が存在する場合、ユーザーはユーザーIDおよびパスワードのn個のペアを管理する必要がある。一方、第1の実施形態による認証システム1においてユーザーはユーザーIDおよびパスワードの1つのペアを使用することによりn種類のサービスを利用することができる。
【0081】
ユーザー装置30および提供者装置20の暗号通信に楕円曲線暗号が使用されるため、共通鍵のデータ長は最大で521ビットである。そのため、ユーザー装置30におけるデータ量が大幅に削減される。
【0082】
従来技術では、ユーザー装置はサービスごとに異なるアプリケーションを使用する必要がある。一方、第1の実施形態による認証システム1において、ユーザー装置30は1つのアプリケーションを使用することにより様々なサービスを利用することができる。そのため、ユーザー装置30におけるデータ量が削減される。
【0083】
(第1の実施形態の変形例)
本発明の第1の実施形態の変形例を説明する。前述したように、サービス認証においてユーザー装置30は、提供者装置20が管理者装置10によって承認されていることを確認する。これに加えて、サービス認証において提供者装置20は、ユーザー装置30が管理者装置10によって承認されていることを確認する。
【0084】
認証システム1は、
図5から
図9に示す処理を実行する。また、認証システム1は、
図10に示す処理を実行する。
図10は、サービス認証における認証システム1の動作の例を示す。例えば、
図9に示すステップS400およびステップS405が実行された後、
図10に示す処理が実行される。
【0085】
(ステップS500)
ユーザー装置30の情報管理部312は、認証情報を生成する。例えば、認証情報は、ユーザーIDおよびパスワードを含む。
【0086】
(ステップS505)
情報管理部312は、ユーザー秘密鍵Kduを記憶部320から読み出し、認証情報をユーザー秘密鍵Kduで署名することにより署名情報を生成する。
【0087】
(ステップS510)
情報管理部312は、共通鍵Kkuを記憶部320から読み出し、認証情報および署名情報を共通鍵Kkuで暗号化することにより暗号文を生成する。
【0088】
(ステップS515)
通信制御部311は、暗号文を通信部300に出力し、通信部300を使用することにより暗号文を提供者装置20に送信する。
【0089】
(ステップS520)
提供者装置20の通信部200は、暗号文をユーザー装置30から受信し、暗号文を制御部210に出力する。情報管理部212は、共通鍵Kksを記憶部220から読み出し、暗号文を共通鍵Kksで復号する。これにより、情報管理部212は、認証情報および署名情報を取得する。
【0090】
(ステップS525)
情報管理部212は、ユーザー公開鍵Kquを記憶部220から読み出し、認証情報および署名情報をユーザー公開鍵Kquで検証する。
【0091】
ステップS505における署名情報の生成およびステップS525における認証情報および署名情報の検証の例を説明する。ユーザー装置30の情報管理部312は、ステップS505において、認証情報をハッシュ関数に入力し、ハッシュ値を算出する。情報管理部312は、ハッシュ値をユーザー秘密鍵Kduで暗号化することにより署名情報を生成する。
【0092】
提供者装置20の情報管理部212は、ステップS525において、認証情報をハッシュ関数に入力し、ハッシュ値を算出する。また、情報管理部212は、署名情報をユーザー公開鍵Kquで復号し、ハッシュ値を取得する。情報管理部212は、2つのハッシュ値を比較する。2つのハッシュ値が一致する場合、認証情報および署名情報の正当性が確認され、認証情報および署名情報の検証が成功する。認証情報および署名情報の検証の成功は、ユーザー装置30が管理者装置10によって承認されていることを確認できたことを意味する。2つのハッシュ値が一致しない場合、認証情報および署名情報の検証が失敗する。
【0093】
(ステップS530)
情報管理部212は、検証結果(OKまたはNG)を示す応答メッセージを生成する。認証情報および署名情報の検証が成功した場合、検証結果はOKである。認証情報および署名情報の検証が失敗場合、検証結果はNGである。通信制御部211は、応答メッセージを通信部200に出力し、通信部200を制御することにより応答メッセージをユーザー装置30に送信する。
【0094】
ユーザー装置30の通信部300は、応答メッセージを提供者装置20から受信し、応答メッセージを制御部310に出力する。情報管理部312は、応答メッセージが示す検証結果を確認する。検証結果がNGである場合、ユーザー装置30および提供者装置20は通信を停止する。検証結果がOKである場合、ユーザー装置30および提供者装置20は暗号通信を実行する(
図9のステップS410およびステップS415)。
【0095】
上記のように、ユーザー装置30の情報管理部312(第2の生成部)は、認証情報をユーザー秘密鍵Kduで署名することにより署名情報を生成する(ステップS505)。通信部300は、署名情報を提供者装置20に送信する(ステップS515)。提供者装置20の情報管理部212(情報処理部)は、署名情報をユーザー公開鍵Kquで検証する(ステップS525)。
【0096】
提供者装置20は、認証情報および署名情報の正当性を確認することにより、ユーザー装置30が管理者装置10によって承認されていることを確認することができる。また、ユーザー装置30が認証情報および署名情報を共通鍵Kkuで暗号化し、提供者装置20が認証情報および署名情報の暗号文を共通鍵Kksで復号することにより、提供者装置20は、共通鍵がユーザー装置30および提供者装置20によって正しく共有されていることを確認することができる。
【0097】
(第2の実施形態)
本発明の第2の実施形態を説明する。
図11は、第2の実施形態における証明書チェーンを利用する装置間の関係を示す。
【0098】
管理者装置10は、証明書チェーンを構成する階層構造の最上位([1]番目)に位置する。管理者装置10に加えて、2台以上の提供者装置20が証明書チェーンを利用する。階層構造の[n-1]番目に位置する提供者装置20[n-1]は、階層構造の[n]番目に位置する提供者装置20[n]の管理者として機能する。
【0099】
ユーザー装置30は、ユーザー情報を管理者装置10に登録し、ユーザー秘密鍵Kduおよびユーザー公開鍵Kquを生成する。また、ユーザー装置30は、管理者公開鍵Kqmを管理者装置10から受信する。ユーザー装置30は、提供者装置20[n]のサービスを利用するとき、提供者装置20[n]の提供者公開鍵Kqs[n]を取得する。
【0100】
図12は、第2の実施形態による認証システム1aの構成を示す。認証システム1aは、管理者装置10、提供者装置20a、提供者装置20b、およびユーザー装置30を有する。管理者装置10は、
図1に示す管理者装置10と同じである。提供者装置20aおよび提供者装置20bは、
図1に示す提供者装置20と同じである。提供者装置20bを管理するサービス提供者は、提供者装置20aを管理するサービス提供者(第2のサービス提供者)と同じであってもよいし、異なっていてもよい。ユーザー装置30は、
図1に示すユーザー装置30と同じである。
【0101】
管理者装置10は、証明書チェーンを構成する階層構造の[1]番目に位置する。提供者装置20aは、証明書チェーンを構成する階層構造の[2]番目に位置する。管理者装置10は、提供者装置20aから見た管理者である。提供者装置20bは、証明書チェーンを構成する階層構造の[3]番目に位置する。提供者装置20aは、提供者装置20bから見た管理者である。提供者装置20aは管理者装置10の情報を有しているが、提供者装置20bは管理者装置10の情報を有する必要はない。
【0102】
ユーザー装置30は、ユーザー情報を管理者装置10に登録し、管理者装置10と信頼関係を構築する。管理者装置10は提供者装置20aを承認し、提供者装置20aは提供者装置20bを承認している。そのため、管理者装置10は提供者装置20bを間接的に承認している。ユーザー装置30は、管理者装置10によって間接的に承認された提供者装置20bを認証することにより、提供者装置20bと信頼関係を構築する。
【0103】
ユーザー装置30および管理者装置10は、
図5に示す処理を実行する。ユーザー装置30は、ユーザー情報を管理者装置10に登録する。ユーザー装置30はユーザー公開鍵を管理者装置10に送信し、管理者装置10はユーザー公開鍵を記憶部120に保管する。管理者装置10は管理者公開鍵をユーザー装置30に送信し、ユーザー装置30は管理者公開鍵を記憶部320に保管する。
【0104】
図13から
図16を使用することにより、認証システム1aの動作を説明する。
図13から
図15は、ユーザー装置30がサービスの利用を提供者装置20bに申請するときの認証システム1aの動作の例を示す。
【0105】
(ステップS600)
ユーザー装置30の情報管理部312は、ユーザー情報を記憶部320から読み出す。通信制御部311は、サービスの利用を申請するためにユーザー情報を通信部300に出力し、通信部300を制御することによりユーザー情報を提供者装置20bに送信する。例えば、ユーザー情報は、サービスの利用を申請することを示すメッセージに付加される。
【0106】
(ステップS605)
提供者装置20bの通信部200は、ユーザー情報をユーザー装置30から受信し、ユーザー情報を制御部210に出力する。情報管理部212は、ユーザー装置30がサービスの利用を申請していることを認識する。通信制御部211は、ユーザー情報を通信部200に出力し、通信部200を制御することによりユーザー情報を提供者装置20aに送信する。例えば、ユーザー情報は、ユーザー情報が登録済みであるか否かの検証を申請することを示すメッセージに付加される。ユーザー情報の宛先は管理者装置10である。
【0107】
(ステップS610)
提供者装置20aの通信部200は、ユーザー情報を提供者装置20bから受信し、ユーザー情報を制御部210に出力する。ユーザー情報の宛先が管理者装置10であるため、通信制御部211は、ユーザー情報を通信部200に出力し、通信部200を制御することによりユーザー情報を管理者装置10に送信する。
【0108】
(ステップS615)
管理者装置10の通信部100は、ユーザー情報を提供者装置20aから受信し、ユーザー情報を制御部110に出力する。情報管理部112は、提供者装置20aから受信されたユーザー情報と同じユーザー情報を記憶部120において検索する。提供者装置20aから受信されたユーザー情報と同じユーザー情報が記憶部120に保管されている場合、情報管理部112は、ユーザー情報と関連付けられているユーザー公開鍵を記憶部120から取得する。
【0109】
(ステップS620)
情報管理部112は、検証結果(OKまたはNG)を示す応答メッセージを生成する。提供者装置20aから受信されたユーザー情報と同じユーザー情報が記憶部120に保管されている場合、検証結果はOKである。提供者装置20aから受信されたユーザー情報と同じユーザー情報が記憶部120に記憶部120に保管されていない場合、検証結果はNGである。通信制御部111は、応答メッセージを通信部100に出力し、通信部100を制御することにより応答メッセージを提供者装置20aに送信する。応答メッセージの宛先は、ユーザー情報の送信元である提供者装置20bである。
【0110】
(ステップS625)
提供者装置20aの通信部200は、応答メッセージを管理者装置10から受信し、応答メッセージを制御部210に出力する。応答メッセージの宛先が提供者装置20bであるため、通信制御部211は、応答メッセージを通信部200に出力し、通信部200を制御することにより応答メッセージを提供者装置20bに送信する。
【0111】
(ステップS630)
提供者装置20bの通信部200は、応答メッセージを提供者装置20aから受信し、応答メッセージを制御部210に出力する。情報管理部212は、応答メッセージが示す検証結果を確認する。検証結果がNGである場合、
図13から
図15に示す処理が終了する。検証結果がOKである場合、鍵生成部213は、提供者装置20bの秘密鍵である提供者B秘密鍵と、提供者装置20bの公開鍵である提供者B公開鍵とを生成する。情報管理部212は、提供者B秘密鍵および提供者B公開鍵を記憶部220に保管する。
【0112】
(ステップS635)
情報管理部212は、提供者装置20bの提供者情報である提供者B情報を生成する。通信制御部211は、提供者B情報および提供者B公開鍵を通信部200に出力し、通信部200を制御することにより提供者B情報および提供者B公開鍵を提供者装置20aに送信する。
【0113】
(ステップS640)
提供者装置20aの通信部200は、提供者B情報および提供者B公開鍵を提供者装置20bから受信し、提供者B情報および提供者B公開鍵を制御部210に出力する。提供者装置20aは、提供者装置20aの秘密鍵である提供者A秘密鍵と、提供者装置20aの公開鍵である提供者A公開鍵とを予め生成し、提供者A秘密鍵および提供者A公開鍵を記憶部220に保管している。情報管理部212は、提供者A秘密鍵を記憶部220から読み出し、提供者B情報および提供者B公開鍵を提供者A秘密鍵で署名することにより提供者証明書を生成する。
【0114】
(ステップS645)
情報管理部212は、提供者装置20aの提供者情報である提供者A情報を生成する。通信制御部211は、提供者A公開鍵を記憶部220から読み出す。通信制御部211は、提供者証明書と提供者A情報と提供者A公開鍵とを通信部200に出力し、通信部200を制御することにより提供者証明書と提供者A情報と提供者A公開鍵とを管理者装置10に送信する。
【0115】
(ステップS650)
管理者装置10の通信部100は、提供者証明書と提供者A情報と提供者A公開鍵とを提供者装置20aから受信し、提供者証明書と提供者A情報と提供者A公開鍵とを制御部110に出力する。証明書生成部114は、管理者秘密鍵を記憶部120から読み出し、提供者証明書と提供者A情報と提供者A公開鍵とを管理者秘密鍵で署名することにより管理者証明書を生成する。
【0116】
図16は、管理者証明書の構成の例を示す。
図16に示す管理者証明書C2は、提供者証明書C1、提供者A情報Isa、および提供者A公開鍵Kqsaを含む。提供者証明書C1は、提供者B情報Isbおよび提供者B公開鍵Kqsbを含む。管理者証明書C2の全体は管理者秘密鍵で署名されている。提供者証明書C1は提供者A秘密鍵で署名されている。
【0117】
(ステップS655)
通信制御部111は、ステップS650において生成された管理者証明書と、ステップS615において取得されたユーザー公開鍵とを通信部100に出力し、通信部100を制御することにより管理者証明書およびユーザー公開鍵を提供者装置20aに送信する。管理者証明書およびユーザー公開鍵の宛先は、提供者装置20bである。
【0118】
(ステップS660)
提供者装置20aの通信部200は、管理者証明書およびユーザー公開鍵を管理者装置10から受信し、管理者証明書およびユーザー公開鍵を制御部210に出力する。管理者証明書およびユーザー公開鍵の宛先が提供者装置20bであるため、通信制御部211は、管理者証明書およびユーザー公開鍵を通信部200に出力し、通信部200を制御することにより管理者証明書およびユーザー公開鍵を提供者装置20bに送信する。
【0119】
(ステップS665)
提供者装置20bの通信部200は、管理者証明書およびユーザー公開鍵を提供者装置20aから受信し、管理者証明書およびユーザー公開鍵を制御部210に出力する。情報管理部212は、ユーザー装置30から受信されたユーザー情報と、提供者装置20aを介して管理者装置10から受信されたユーザー公開鍵と、提供者装置20aを介して管理者装置10から受信された管理者証明書とを、記憶部220に保管されている提供者B秘密鍵および提供者B公開鍵と関連付け、ユーザー情報とユーザー公開鍵と管理者証明書とを記憶部220に保管する。ユーザー情報、ユーザー公開鍵、提供者B秘密鍵、提供者B公開鍵、および管理者証明書は、互いに関連付けられて記憶部220に保管される。
【0120】
(ステップS670)
情報管理部212は、サービスの利用の申請が完了したことを示す応答メッセージを生成する。通信制御部211は、応答メッセージを通信部200に出力し、通信部200を制御することにより応答メッセージをユーザー装置30に送信する。
【0121】
図17は、サービス認証における認証システム1aの動作の例を示す。サービス認証においてユーザー装置30は、提供者装置20bが管理者装置10によって承認されていることを確認する。
【0122】
(ステップS700)
ユーザー装置30の情報管理部312は、ユーザー情報を記憶部320から読み出す。通信制御部311は、サービスの利用開始を要求するためにユーザー情報を通信部300に出力し、通信部300を制御することによりユーザー情報を提供者装置20bに送信する。例えば、ユーザー情報は、サービスの利用開始を要求することを示すメッセージに付加される。
【0123】
(ステップS705)
提供者装置20bの通信部200は、ユーザー情報をユーザー装置30から受信し、ユーザー情報を制御部210に出力する。情報管理部212は、ユーザー装置30がサービスの利用開始を要求していることを認識する。情報管理部212は、ユーザー装置30から受信されたユーザー情報と同じユーザー情報を記憶部220において検索する。ユーザー装置30から受信されたユーザー情報と同じユーザー情報が記憶部220に保管されている場合、情報管理部212は、ユーザー情報と関連付けられている管理者証明書を記憶部220から取得する。
【0124】
(ステップS710)
通信制御部211は、管理者証明書を通信部200に出力し、通信部200を制御することにより管理者証明書をユーザー装置30に送信する。
【0125】
(ステップS715)
ユーザー装置30の通信部300は、管理者証明書を提供者装置20bから受信し、管理者証明書を制御部310に出力する。検証部314は、管理者公開鍵を記憶部320から読み出し、管理者証明書を管理者公開鍵で検証する。管理者証明書の全体は管理者秘密鍵で署名されているため、検証部314は管理者証明書を管理者公開鍵で検証できる。
【0126】
(ステップS720)
管理者証明書の検証が成功した場合、検証部314は、提供者A公開鍵を管理者証明書から取得する。
【0127】
(ステップS725)
検証部314は、管理者証明書に格納されている提供者証明書を提供者A公開鍵で検証する。提供者証明書は提供者A秘密鍵で署名されているため、検証部314は提供者証明書を提供者A公開鍵で検証できる。
【0128】
(ステップS730)
提供者証明書の検証が成功した場合、検証部314は、提供者B公開鍵を提供者証明書から取得する。
【0129】
(ステップS735)
情報管理部312は、検証結果(OKまたはNG)を示す応答メッセージを生成する。管理者証明書および提供者証明書の両方の検証が成功した場合、検証結果はOKである。管理者証明書または提供者証明書の検証が失敗した場合、検証結果はNGである。通信制御部311は、応答メッセージを通信部300に出力し、通信部300を制御することにより応答メッセージを提供者装置20bに送信する。
【0130】
提供者装置20bの通信部200は、応答メッセージをユーザー装置30から受信し、応答メッセージを制御部210に出力する。情報管理部212は、応答メッセージが示す検証結果を確認する。検証結果がNGである場合、ユーザー装置30はサービスを利用できない。検証結果がOKである場合、ユーザー装置30はサービスを利用できる。
【0131】
図17に示す処理を実行することにより、ユーザー装置30および提供者装置20bは、ユーザー公開鍵および提供者B公開鍵を共有することができる。
【0132】
ユーザー装置30がサービスを利用するとき、認証システム1aは、
図9に示す処理と同じ処理を実行する。提供者装置20bは、
図9に示す提供者装置20が実行する処理と同じ処理を実行する。
【0133】
ユーザー装置30および提供者装置20bは、
図10に示す処理と同じ処理を実行してもよい。
【0134】
上記のように、提供者装置20a(第2の提供者装置)の情報管理部212(情報処理部)は、提供者装置20bから受信された提供者B公開鍵を提供者A装置の秘密鍵で署名することにより提供者証明書(第2の証明書)を生成する(ステップS640)。提供者装置20aの通信部200(第2の提供者通信部)は、提供者証明書と提供者A公開鍵とを管理者装置10に送信する(ステップS645)。管理者装置10の証明書生成部114は、提供者証明書と提供者A公開鍵とを管理者秘密鍵で署名することにより管理者証明書を生成する(ステップS650)。管理者装置10の通信部100(管理者通信部)は、管理者証明書とユーザー公開鍵とを、提供者装置20aを介して提供者装置20bに送信する(ステップS655,S660)。提供者装置20bの通信部200は、管理者証明書をユーザー装置30に送信する(ステップS710)。ユーザー装置30の検証部314は、管理者証明書を管理者公開鍵で検証し(ステップS715)、提供者装置20aの提供者A公開鍵を取得する(ステップS720)。検証部314は、管理者証明書に含まれる提供者証明書を提供者装置20aの提供者A公開鍵で検証し(ステップS725)、提供者装置20bの提供者B公開鍵を取得する(ステップS730)。
【0135】
ユーザー装置30は、ユーザー秘密鍵およびユーザー公開鍵のペアを使用することにより、様々なサービスを利用することができる。ユーザーは、サービスごとのログイン情報を管理する必要はない。そのため、認証システム1aは、ユーザーがサービス認証に必要な情報を管理する負担を減らすことができる。
【0136】
(第2の実施形態の変形例)
本発明の第2の実施形態の変形例を説明する。
図14および
図15に示す動作は、
図18および
図19に示す動作に変更される。
図18および
図19を使用することにより、認証システム1aの動作を説明する。
図18および
図19は、ユーザー装置30がサービスの利用を提供者装置20bに申請するときの認証システム1aの動作の例を示す。
図14および
図15に示す処理と同じ処理の説明を省略する。
【0137】
図18に示すステップS635およびステップS640は、
図14に示すステップS635およびステップS640と同じである。
【0138】
(ステップS645a)
情報管理部212は、提供者装置20aの提供者情報である提供者A情報を生成する。通信制御部211は、提供者A公開鍵を記憶部220から読み出す。通信制御部211は、提供者A情報および提供者A公開鍵を通信部200に出力し、通信部200を制御することにより提供者A情報および提供者A公開鍵を管理者装置10に送信する。
【0139】
(ステップS650a)
管理者装置10の通信部100は、提供者A情報および提供者A公開鍵を提供者装置20aから受信し、提供者A情報および提供者A公開鍵を制御部110に出力する。証明書生成部114は、管理者秘密鍵を記憶部120から読み出し、提供者A情報および提供者A公開鍵を管理者秘密鍵で署名することにより管理者証明書を生成する。
【0140】
図19に示すステップS655は、
図15に示すステップS655と同じである。
【0141】
(ステップS660a)
提供者装置20aの通信部200は、管理者証明書およびユーザー公開鍵を管理者装置10から受信し、管理者証明書およびユーザー公開鍵を制御部210に出力する。管理者証明書およびユーザー公開鍵の宛先が提供者装置20bであるため、通信制御部211は、管理者証明書およびユーザー公開鍵を通信部200に出力する。また、通信制御部211は、ステップS640において生成された提供者証明書を通信部200に出力する。通信制御部211は、通信部200を制御することにより提供者証明書と管理者証明書とユーザー公開鍵とを提供者装置20bに送信する。
【0142】
(ステップS665a)
提供者装置20bの通信部200は、提供者証明書と管理者証明書とユーザー公開鍵とを提供者装置20aから受信し、提供者証明書と管理者証明書とユーザー公開鍵とを制御部210に出力する。情報管理部212は、ユーザー装置30から受信されたユーザー情報と、提供者装置20aを介して管理者装置10から受信されたユーザー公開鍵と、提供者装置20aから受信された提供者証明書と、提供者装置20aを介して管理者装置10から受信された管理者証明書とを、記憶部220に保管されている提供者B秘密鍵および提供者B公開鍵と関連付け、ユーザー情報とユーザー公開鍵と提供者証明書と管理者証明書とを記憶部220に保管する。ユーザー情報、ユーザー公開鍵、提供者B秘密鍵、提供者B公開鍵、提供者証明書、および管理者証明書は、互いに関連付けられて記憶部220に保管される。
【0143】
図19に示すステップS670は、
図15に示すステップS670と同じである。
【0144】
図17に示す動作は、
図20に示す動作に変更される。
図20を使用することにより、認証システム1aの動作を説明する。
図20は、サービス認証における認証システム1aの動作の例を示す。
図17に示す処理と同じ処理の説明を省略する。
【0145】
図20に示すステップS700は、
図17に示すステップS700と同じである。
【0146】
(ステップS705a)
提供者装置20bの通信部200は、ユーザー情報をユーザー装置30から受信し、ユーザー情報を制御部210に出力する。情報管理部212は、ユーザー装置30がサービスの利用開始を要求していることを認識する。情報管理部212は、ユーザー装置30から受信されたユーザー情報と同じユーザー情報を記憶部220において検索する。ユーザー装置30から受信されたユーザー情報と同じユーザー情報が記憶部220に保管されている場合、情報管理部212は、ユーザー情報と関連付けられている提供者証明書および管理者証明書を記憶部220から取得する。
【0147】
(ステップS710a)
通信制御部211は、提供者証明書および管理者証明書を通信部200に出力し、通信部200を制御することにより提供者証明書および管理者証明書をユーザー装置30に送信する。提供者証明書および管理者証明書がユーザー装置30に同時に送信される必要はない。通信制御部211は、通信部200を制御することにより提供者証明書および管理者証明書の一方をユーザー装置30に送信した後、通信部200を制御することにより提供者証明書および管理者証明書の他方をユーザー装置30に送信してもよい。
【0148】
図20に示すステップS715およびステップS720は、
図17に示すステップS715およびステップS720と同じである。
【0149】
(ステップS725a)
検証部314は、提供者装置20bから受信された提供者証明書を提供者A公開鍵で検証する。提供者証明書は提供者A秘密鍵で署名されているため、検証部314は提供者証明書を提供者A公開鍵で検証できる。
【0150】
図20に示すステップS730およびステップS735は、
図17に示すステップS730およびステップS735と同じである。
【0151】
提供者装置20bは、ステップS710aにおいて提供者証明書をユーザー装置30に送信せずに管理者証明書をユーザー装置30に送信してもよい。ステップS715における管理者証明書の検証が成功した場合、ユーザー装置30は提供者証明書の送信を提供者装置20bに要求してもよい。提供者装置20bは、ユーザー装置30からの要求に応じて提供者証明書をユーザー装置30に送信してもよい。提供者証明書が受信された後、ユーザー装置30はステップS725aにおける提供者証明書の検証を実行してもよい。
【0152】
上記のように、提供者装置20a(第2の提供者装置)の情報管理部212(情報処理部)は、提供者装置20bから受信された提供者B公開鍵を提供者A秘密鍵で署名することにより提供者証明書(第2の証明書)を生成する(ステップS640)。提供者装置20aの通信部200(第2の提供者通信部)は、提供者装置A公開鍵を管理者装置10に送信する(ステップS645a)。管理者装置10の証明書生成部114は、提供者A公開鍵を管理者秘密鍵で署名することにより管理者証明書を生成する(ステップS650a)。管理者装置10の通信部100(管理者通信部)は、管理者証明書とユーザー公開鍵とを提供者装置20aに送信する(ステップS655)。提供者装置20aの通信部200は、管理者証明書と提供者証明書とユーザー公開鍵とを提供者装置20bに送信する(ステップS660a)。提供者装置20bの通信部200は、管理者証明書に加えて提供者証明書をユーザー装置30に送信する(ステップS710a)。ユーザー装置30の検証部314は、管理者証明書を管理者公開鍵で検証し(ステップS715)、提供者装置20aの提供者A公開鍵を取得する(ステップS720)。検証部314は、提供者証明書を提供者A公開鍵で検証し(ステップS725a)、提供者装置20bの提供者B公開鍵を取得する(ステップS730)。
【0153】
第2の実施形態の変形例において、管理者証明書は提供者証明書を含まない。管理者証明書および提供者証明書を個別に送信することが可能であるため、証明書の1回の送信に必要なデータのサイズを小さくすることができる。
【0154】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【0155】
1,1a 認証システム、10 管理者装置、20,20a,20b 提供者装置、30 ユーザー装置、100,200,300 通信部、110,210,310 制御部、111,211,311 通信制御部、112,212,312 情報管理部、113,213,313 鍵生成部、114 証明書生成部、120,220,320 記憶部、314 検証部