(57)【要約】      （修正有）【課題】ユーザにとって利便性が高く、また安全性を向上させた認証システム、認証方法及び認証プログラムを提供する。【解決手段】認証システム５００において、リソースサーバは、ユーザ端末のユーザ情報及びサービスサーバのサービス情報を記憶する第１記憶部、ユーザ端末からサービスサーバへのアクセス要求に応じて、ユーザ情報を暗号化する暗号化部、暗号化された暗号化ユーザ情報を、ユーザ端末へ送信する送信部を備える。認証サーバは、サービス情報を記憶する第２記憶部、暗号化ユーザ情報をユーザ端末から受信したサービスサーバから、サービス情報を、暗号化ユーザ情報とともに受信する受信部、受信したサービス情報に対応する、第２記憶部に記憶するサービス情報に基づき、サービスサーバが真と判定される場合、暗号化ユーザ情報を復号するための認証側復号鍵を生成する復号鍵生成部及び認証側復号鍵をサービスサーバへ送信する送信部を備える。【選択図】図１
2020102741.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末によるサービスサーバへのアクセスを認証する認証システムであって、認証サーバと、リソースサーバとを備え、
前記リソースサーバは、
前記ユーザ端末のユーザに関するユーザ情報、及び、前記サービスサーバのサービスに関するサービス情報を少なくとも記憶する第１記憶部と、
前記ユーザ端末から送信された前記サービスサーバへのアクセス要求に応じて、前記ユーザ端末のユーザに関するユーザ情報を暗号化する暗号化部と、
前記暗号化部によって暗号化された暗号化ユーザ情報を、前記ユーザ端末へ送信する送信部と、
を備え、
前記認証サーバは、
前記サービスサーバの前記サービスに関するサービス情報を記憶する第２記憶部と、
前記暗号化ユーザ情報を前記ユーザ端末から受信した前記サービスサーバから、当該サービスサーバのサービスに関する前記サービス情報を、前記暗号化ユーザ情報とともに受信する受信部と、
前記受信部で受信した前記サービス情報に対応する、前記第２記憶部に記憶されている前記サービス情報に基づき、前記サービス情報を送信したサービスサーバが真と判定される場合、前記暗号化ユーザ情報を復号するための認証側復号鍵を生成する復号鍵生成部と、
前記認証側復号鍵を前記サービスサーバへ送信する送信部と、
を備える、認証システム。
【請求項２】
前記リソースサーバは、前記サービスサーバに固有の固有復号鍵を生成して当該サービスサーバに送信し、
前記復号鍵生成部は、前記固有復号鍵と組み合わせて復号することにより前記暗号化ユーザ情報が復号されるように、前記認証側復号鍵を生成する、
ことを特徴とする請求項１に記載の認証システム。
【請求項３】
前記リソースサーバにおける前記送信部は、前記ユーザ端末において、前記ユーザ情報として送信する項目を複数の項目から選択させる項目選択画面を表示させる表示情報を、前記ユーザ端末へ送信する、
ことを特徴とする請求項１又は２に記載の認証システム。
【請求項４】
前記リソースサーバにおける前記暗号化部は、前記ユーザ端末から送信された前記サービスサーバへのアクセス要求に対し、前記ユーザ端末において前記項目選択画面へのアクセスがされている場合に、前記ユーザ情報を暗号化する、
ことを特徴とする請求項３に記載の認証システム。
【請求項５】
前記第１記憶部、及び、前記第２記憶部に記憶される前記サービス情報には、前記サービスサーバのＩＰアドレスが含まれ、
前記認証サーバの前記復号鍵生成部は、前記受信部で受信した前記サービス情報に対応する前記第２記憶部に記憶されている前記サービス情報に含まれるＩＰアドレスが、前記受信部で受信した前記サービス情報の送信元のＩＰアドレスと一致する場合、前記サービス情報を送信したサービスサーバを真と判定する、
ことを特徴とする請求項１〜４のいずれか１項に記載の認証システム。
【請求項６】
前記認証システムにおいて、
前記ユーザ情報として送信する項目が所定の条件を満たすユーザに対し、所定の報酬を関連付ける、
ことを特徴とする請求項３に記載の認証システム。
【請求項７】
前記認証システムは、複数のサービスサーバを含み、
前記リソースサーバの第１記憶部は、前記ユーザ情報として、前記ユーザが利用するサービス毎に異なるユーザＩＤを関連付ける、
ことを特徴とする請求項１〜６のいずれか一項に記載の認証システム。
【請求項８】
ユーザ端末によるサービスサーバへのアクセスを認証する、認証サーバと、リソースサーバとを備える認証システムの認証方法であって、
前記リソースサーバが、
第１記憶部に、前記ユーザ端末のユーザに関するユーザ情報、及び、前記サービスサーバのサービスに関するサービス情報を少なくとも記憶するステップと、
前記ユーザ端末から送信された前記サービスサーバへのアクセス要求に応じて、前記ユーザ端末のユーザに関するユーザ情報を暗号化するステップと、
前記暗号化するステップによって暗号化された暗号化ユーザ情報を、前記ユーザ端末へ送信するステップと、
を実行し、
前記認証サーバが、
第２記憶部に、前記サービスサーバの前記サービスに関するサービス情報を記憶するステップと、
前記暗号化ユーザ情報を前記ユーザ端末から受信した前記サービスサーバから、当該サービスサーバのサービスに関する前記サービス情報を、前記暗号化ユーザ情報とともに受信するステップと、
前記受信するステップで受信した前記サービス情報に対応する、前記第２記憶部に記憶されている前記サービス情報に基づき、前記サービス情報を送信したサービスサーバが真と判定される場合、前記暗号化ユーザ情報を復号するための認証側復号鍵を生成するステップと、
前記認証側復号鍵を前記サービスサーバへ送信するステップと、
を実行する、認証方法。
【請求項９】
ユーザ端末によるサービスサーバへのアクセスを認証する、認証サーバと、リソースサーバとを備える認証システムの認証プログラムであって、
前記リソースサーバに、
前記ユーザ端末のユーザに関するユーザ情報、及び、前記サービスサーバのサービスに関するサービス情報を少なくとも記憶させる第１記憶機能と、
前記ユーザ端末から送信された前記サービスサーバへのアクセス要求に応じて、前記ユーザ端末のユーザに関するユーザ情報を暗号化する暗号化機能と、
前記暗号化機能によって暗号化された暗号化ユーザ情報を、前記ユーザ端末へ送信する送信機能と、
を実現させ、
前記認証サーバに、
前記サービスサーバの前記サービスに関するサービス情報を記憶する第２記憶機能と、
前記暗号化ユーザ情報を前記ユーザ端末から受信した前記サービスサーバから、当該サービスサーバのサービスに関する前記サービス情報を、前記暗号化ユーザ情報とともに受信する受信機能と、
前記受信機能で受信した前記サービス情報に対応する、前記第２記憶機能にて記憶された前記サービス情報に基づき、前記サービス情報を送信したサービスサーバが真と判定される場合、前記暗号化ユーザ情報を復号するための認証側復号鍵を生成する復号鍵生成機能と、
前記認証側復号鍵を前記サービスサーバへ送信する送信機能と、
を実現させる、認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証システム、認証方法、及び、認証プログラムに関し、特に、サービス提供側であるクライアントの提供するサービスを利用するユーザの認証を、よりセキュアにかつ簡易な手法で実現する認証システム等に関する。
【背景技術】
【０００２】
近年、決済サービスや予約サービスといった様々なサービスが、通信ネットワークを介してオンラインで提供されている。このようなオンラインサービスシステムにおいては、登録済みユーザにのみサービスが提供されるよう、ユーザの認証処理が行われる。
【０００３】
ここで、サービスを利用するユーザは、サービス毎にアカウントを作成して、ユーザＩＤやパスワードといったユーザ情報を管理する必要があり、手間である。このユーザの手間を解消するために、いわゆるシングルサインオンという技術が知られている（例えば、特許文献１）。特許文献１に記載の技術は、ユーザ認証が必要な複数のＷｅｂサイトを、ユーザ端末から利用するシステムにおいて、Ｗｅｂサーバと、ユーザ端末との間にＷｅｂサイトにおけるユーザ認証を代行するプロキシを置き、このプロキシに、Ｗｅｂサイトにおけるユーザ認証を代行させることにより、Ｗｅｂサイトを利用する際に、ユーザがユーザ端末で実行しなければならないユーザ認証作業の操作回数を、大幅に削減するとされている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−０３２３４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、ユーザ認証プロキシ装置に全てのユーザの認証情報を記憶させるので、ユーザ認証プロキシ装置に対しての信用の問題が生じる。また、ユーザ認証プロキシ装置が不正アクセスされた場合に、全てのユーザの認証情報が漏洩する可能性があった。
【０００６】
そこで、本発明は、上記の問題を解消し、ユーザにとって利便性が高く、また安全性を向上させた認証システム、認証方法、及び、認証プログラムを提供する。
【課題を解決するための手段】
【０００７】
本発明の一実施形態に係る、ユーザ端末によるサービスサーバへのアクセスを認証する認証システムは、認証サーバと、リソースサーバとを備え、リソースサーバは、ユーザ端末のユーザに関するユーザ情報、及び、サービスサーバのサービスに関するサービス情報を少なくとも記憶する第１記憶部と、ユーザ端末から送信されたサービスサーバへのアクセス要求に応じて、ユーザ端末のユーザに関するユーザ情報を暗号化する暗号化部と、暗号化部によって暗号化された暗号化ユーザ情報を、ユーザ端末へ送信する送信部と、を備え、認証サーバは、サービスサーバのサービスに関するサービス情報を記憶する第２記憶部と、暗号化ユーザ情報をユーザ端末から受信したサービスサーバから、当該サービスサーバのサービスに関するサービス情報を、暗号化ユーザ情報とともに受信する受信部と、受信部で受信したサービス情報に対応する、第２記憶部に記憶されているサービス情報に基づいて、サービス情報を送信したサービスサーバが真と判定される場合、暗号化ユーザ情報を復号するための認証側復号鍵を生成する復号鍵生成部と、認証側復号鍵をサービスサーバへ送信する送信部と、を備える。
【０００８】
本発明の一実施形態に係る認証システムにおいて、リソースサーバは、サービスサーバに固有の固有復号鍵を生成して当該サービスサーバに送信し、復号鍵生成部は、固有復号鍵と組み合わせて復号することにより暗号化ユーザ情報が復号されるように、認証側復号鍵を生成してもよい。
【０００９】
本発明の一実施形態に係る認証システムにおいて、リソースサーバにおける送信部は、ユーザ端末において、ユーザ情報として送信する項目を複数の項目から選択させる項目選択画面を表示させる表示情報を、ユーザ端末へ送信してもよい。
【００１０】
本発明の一実施形態に係る認証システムにおいて、リソースサーバにおける暗号化部は、ユーザ端末から送信されたサービスサーバへのアクセス要求に対し、ユーザ端末において項目選択画面へのアクセスがされている場合に、ユーザ情報を暗号化してもよい。
【００１１】
本発明の一実施形態に係る認証システムにおいて、第１記憶部、及び、第２記憶部に記憶されるサービス情報には、サービスサーバのＩＰアドレスが含まれ、認証サーバの復号鍵生成部は、受信部で受信したサービス情報に対応する第２記憶部に記憶されているサービス情報に含まれるＩＰアドレスが、受信部で受信したサービス情報の送信元のＩＰアドレスと一致する場合、サービス情報を送信したサービスサーバを真と判定してもよい。
【００１２】
本発明の一実施形態に係る認証システムにおいて、ユーザ情報として送信する項目が所定の条件を満たすユーザに対し、所定の報酬を関連付けてもよい。
【００１３】
本発明の一実施形態に係る認証システムは、複数のサービスサーバを含み、リソースサーバの第１記憶部は、ユーザ情報として、ユーザが利用するサービス毎に異なるユーザＩＤを関連付けてもよい。
【００１４】
本発明の一実施形態に係る、ユーザ端末によるサービスサーバへのアクセスを認証する、認証サーバと、リソースサーバとを備える認証システムの認証方法は、リソースサーバが、第１記憶部に、ユーザ端末のユーザに関するユーザ情報、及び、サービスサーバのサービスに関するサービス情報を少なくとも記憶するステップと、ユーザ端末から送信されたサービスサーバへのアクセス要求に応じて、ユーザ端末のユーザに関するユーザ情報を暗号化するステップと、暗号化するステップによって暗号化された暗号化ユーザ情報を、ユーザ端末へ送信するステップと、を実行し、認証サーバが、第２記憶部に、サービスサーバのサービスに関するサービス情報を記憶するステップと、暗号化ユーザ情報をユーザ端末から受信したサービスサーバから、当該サービスサーバのサービスに関するサービス情報を、暗号化ユーザ情報とともに受信するステップと、受信するステップで受信したサービス情報に対応する、第２記憶部に記憶されているサービス情報に基づき、サービス情報を送信したサービスサーバが真と判定される場合、暗号化ユーザ情報を復号するための認証側復号鍵を生成するステップと、認証側復号鍵をサービスサーバへ送信するステップと、を実行する。
【００１５】
本発明の一実施形態に係る、ユーザ端末によるサービスサーバへのアクセスを認証する、認証サーバと、リソースサーバとを備える認証システムの認証プログラムは、リソースサーバに、ユーザ端末のユーザに関するユーザ情報、及び、サービスサーバのサービスに関するサービス情報を少なくとも記憶させる第１記憶機能と、ユーザ端末から送信されたサービスサーバへのアクセス要求に応じて、ユーザ端末のユーザに関するユーザ情報を暗号化する暗号化機能と、暗号化機能によって暗号化された暗号化ユーザ情報を、ユーザ端末へ送信する送信機能と、を実現させ、認証サーバに、サービスサーバのサービスに関するサービス情報を記憶する第２記憶機能と、暗号化ユーザ情報をユーザ端末から受信したサービスサーバから、当該サービスサーバのサービスに関するサービス情報を、暗号化ユーザ情報とともに受信する受信機能と、受信機能で受信したサービス情報に対応する、第２記憶機能にて記憶されたサービス情報に基づき、サービス情報を送信したサービスサーバが真と判定される場合、暗号化ユーザ情報を復号するための認証側復号鍵を生成する復号鍵生成機能と、認証側復号鍵をサービスサーバへ送信する送信機能と、を実現させる。
【発明の効果】
【００１６】
本発明によれば、ユーザにとって利便性が高く、また安全性を向上させた認証システム、認証方法、及び、認証プログラムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態に係る認証システム構成の概略図である。
【図２】（ａ）、（ｂ）は、本発明の一実施形態に係る認証システムを説明する概略図である。
【図３】本発明の一実施形態に係る認証システムにおける情報処理装置（サーバ、端末）のハードウェア構成図である。
【図４】本発明の一実施形態に係る認証サーバ、及び、リソースサーバの機能ブロック図の一例である。
【図５】本発明の一実施形態に係るユーザ端末、及び、サービスサーバの機能ブロック図の一例である。
【図６】本発明の一実施形態に係る認証システムにおける、ユーザ端末、サービスサーバ、認証サーバ、及び、リソースサーバ間の、事前登録処理のシーケンス図である。
【図７】リソースサーバに記憶される情報の一例である。
【図８】認証サーバに記憶される情報の一例である。
【図９】サービスサーバに記憶される情報の一例である。
【図１０】本発明の一実施形態に係る認証システムにおける、ユーザ端末の表示画面例である。
【図１１】本発明の一実施形態に係る認証システムにおける、ユーザ端末、サービスサーバ、認証サーバ、及び、リソースサーバ間の認証処理のシーケンス図である。
【図１２】本発明の一実施形態に係る認証システムにおける、ユーザ端末の表示画面例である。
【図１３】本発明の一実施形態に係る認証システムにおける、ユーザ端末の表示画面例である。
【図１４】本発明の一実施形態に係る認証システムにおける、ユーザ端末の表示画面例である。
【発明を実施するための形態】
【００１８】
以降、諸図面を参照しながら、本発明の一実施形態を詳細に説明する。
【００１９】
＜認証システムの概要＞
まず、図２を用いて、本発明の一実施形態に係る認証システムの概要を説明する。図２（ａ）は、従来のオンラインサービスにおける課題を説明する図、図２（ｂ）は、本発明の一実施形態に係る認証システムの説明図である。
【００２０】
オンラインサービスでは、アカウントの共有、偽ユーザによる不正アクセス、一のユーザによる複数のアカウントの登録、ボットによるアカウントの登録が発生し得る。さらに、一のユーザが、一のサービスに対して複数のアカウントを保有し得るため、サービス提供側は、提供するサービスを利用するユーザの情報の真偽を確認できず、自身の提供するサービスに対する正確な情報の蓄積ができないという問題がある。また、ユーザは、複数のサービスを利用する場合、サービス毎にアカウントを登録する必要があり、手間がかかったり、ユーザ自身の信用をオンライン上で蓄積できないという問題がある。
【００２１】
これらの問題に対し、図２（ｂ）に示すように、本発明の一実施形態に係る認証システムは、ユーザ及びサービス提供側がそれぞれ認証システムへ登録し、登録ユーザ（認証システムアカウント）のユーザ情報を、同じく登録ユーザである複数のサービス提供側における認証処理（証明処理）に用いる。詳細は後述するが、認証システムへの登録時に、ユーザ情報の真偽性は担保されるため、サービス提供側は、自身の提供するサービスの利用ユーザに関し、信頼性の高い情報を得ることができる。さらに、ユーザ側では、複数のサービスへ登録するためのユーザ情報は、認証システムへ登録されたユーザ情報が用いられる。従って、ユーザは、手間のかかる登録処理を複数回行う必要がない。さらに、ユーザは、複数のサービスにわたった利用履歴を、ユーザの信用度として蓄積できるという利点もある。以上が、本発明の概要である。
【００２２】
なお、本明細書において、「ユーザ情報」とは、所定のサービスにおけるユーザのアカウントに対応付けられたユーザの情報である。ユーザ情報は、例えば、ユーザにより入力される、又は、所定のサービスにより付与される、ユーザの名前、ユーザのアイコン画像、ユーザの年齢、ユーザの性別、ユーザの住所、ユーザの趣味趣向、電話番号やメールアドレスなどのユーザの連絡先、ユーザの識別子（ユーザＩＤ（IDentifier））、ユーザに対応付けられた決済情報、ユーザの国籍、ユーザ端末ＩＤ、認証サービスへの登録日、各サービスへの登録日などを含み、これらのいずれか一つ又は、組み合わせであってもよい。なお、ユーザ情報は、ユーザＩＤに対して、ユーザＩＤ以外のその他のユーザ情報が対応づけられて記憶されてもよい。
【００２３】
また、本明細書において、「サービス情報」とは、サービス提供側に関する情報と、認証システムにおいてサービス提供側を識別するための識別情報とを含んでよい。サービス提供側に関する情報とは、例えば、サービス提供側の名称、サービスの内容、サービス提供側の事業規模、資本金、事業形態（株式会社、有限会社等の種別）、従業員数、設立年、取引銀行等の情報、認証システムへの登録日などを含み、これらのいずれか一つ又は、組み合わせであってもよい。また、識別情報とは、認証システム５００においてサービス提供側に付与されたサービス識別子（ＩＤ）、後述する固有秘密鍵、固有復号鍵などであってよい。
【００２４】
＜システム構成＞
図１を参照して、本発明の一実施形態に係る認証システムのシステム構成を説明する。図１に示すように、認証システム５００は、ネットワークＮＥＴを介して互いに接続された、リソースサーバ１００と、認証サーバ２００と、複数のユーザ端末３００（３００Ａ，３００Ｂ）と、複数のサービスサーバ４００（４００Ａ，４００Ｂ）とを含む。なお、図においてサービスサーバ、ユーザ端末をそれぞれ２つのみ示してあるが、これ以上あってもよいことは言うまでもない。
【００２５】
サービスサーバ４００Ａ，４００Ｂは、ネットワークＮＥＴを介して所定のサービスを提供するサービス提供側Ａ，Ｂのサーバである。所定のサービスとは、例えば、予約サービス、決済サービス、ＳＮＳ（Social Networking Service：ソーシャルネットワーキングサービス）、ショッピングサービス、配車サービス、出前サービス、オンラインゲームサービス等であってよい。なお、これ以降、特に区別する必要がない場合、サービスサーバ４００Ａ，４００Ｂを、サービスサーバ４００と総称する。なお、サービスサーバ４００は、典型的にはクラウド上で実現されてもよい。
【００２６】
ユーザ端末３００Ａ，３００Ｂは、それぞれ、ユーザＡ，Ｂに関連付けられた情報処理端末である。図において、ユーザ端末３００Ａ，３００Ｂはスマートフォンを示してあるが、ユーザ端末としては、ネットワークＮＥＴを介してサービスサーバ４００の提供する所定のサービスを利用可能とするものであれば、その種類は問わない。なおこれ以降、特に区別する必要がない場合、ユーザ端末３００Ａ，３００Ｂを、ユーザ端末３００と総称する。ユーザ端末３００は、例えば、スマートフォン、携帯電話（フィーチャーフォン）、ハンドヘルドコンピュータデバイス（例えば、ＰＤＡ（Personal Digital Assistant）等）、ウェアラブル端末（例えば、メガネ型デバイス、時計型デバイス、ヘッドマウントディスプレイ（ＨＭＤ：Head-Mounted Display等）、他種のコンピュータ、又はコミュニケーションプラットホームを含む。
【００２７】
ネットワークＮＥＴは、無線ネットワークや有線ネットワークを含んでよい。具体的には、ネットワークＮＥＴは、ワイヤレスＬＡＮ（wireless LAN：ＷＬＡＮ）や広域ネットワーク（wide area network：ＷＡＮ）、ＩＳＤＮｓ（integrated service digital networks）、無線ＬＡＮｓ、ＬＴＥ（long term evolution）、ＬＴＥ−Ａｄｖａｎｃｅｄ、第４世代（４Ｇ）、第５世代（５Ｇ）、ＣＤＭＡ（code division multiple access）等である。なお、ネットワークＮＥＴは、これらの例に限られず、例えば、公衆交換電話網（Public Switched Telephone Network：ＰＳＴＮ）やブルートゥース（Bluetooth（登録商標））、光回線、ＡＤＳＬ（Asymmetric Digital Subscriber LINE）回線、衛星通信網等であってもよい。また、ネットワークＮＥＴは、これらの組み合わせであってもよい。
【００２８】
リソースサーバ１００は、認証システム５００のユーザ情報を暗号化し、ユーザ端末３００を介してサービスサーバ４００へ提供する。サービスサーバ４００は、暗号化されたユーザ情報（以降、「暗号化ユーザ情報」と称する）を復号するための復号鍵を、認証サーバ２００へ要求する。認証サーバ２００は、要求が不正なアクセスであるか否かを判定し、不正アクセスでない場合に、暗号化ユーザ情報を復号するための復号鍵を生成し、サービスサーバ４００へ提供する。サービスサーバ４００は、認証サーバ２００から受信した復号鍵と、あらかじめリソースサーバ１００から取得したサービスサーバ４００固有の固有復号鍵とを用いて、暗号化ユーザ情報を復号し、サービスを利用するユーザのユーザ情報を取得する（詳細は後述する）。
【００２９】
＜ハードウェア構成＞
ここで、図３を用いて、リソースサーバ１００のハードウェア構成について説明する。なお、図３ではリソースサーバ１００として示してあるが、基本的なハードウェア構成は、認証サーバ２００、サービスサーバ４００、及び、ユーザ端末３００も同様であるため、情報処理装置として説明する。また、図３では、認証サーバ２００に対応する符号を、括弧書きにて示してある。
【００３０】
情報処理装置１００は、プロセッサ１０１と、メモリ１０２と、ストレージ１０３と、入出力インタフェース（Ｉ／Ｆ）１０４と、通信Ｉ／Ｆ１０５とを備え、これらの協働により、本実施形態に記載される機能や方法を実現する。例えば、本開示の機能又は方法は、メモリ１０２に読み込まれたプログラムに含まれる命令をプロセッサ１０１が実行することによって実現される。
【００３１】
プロセッサ１０１は、ストレージ１０３に記憶されるプログラムに含まれるコード又は命令によって実現する機能、及び／又は、方法を実行する。プロセッサ１０１は、例えば、中央処理装置（ＣＰＵ）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）、マイクロプロセッサ（microprocessor）、プロセッサコア（processor core）、マルチプロセッサ（multiprocessor）、ＡＳＩＣ（Application-Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）等を含み、集積回路（ＩＣ（Integrated Circuit）チップ、ＬＳＩ（Large Scale Integration））等に形成された論理回路（ハードウェア）や専用回路によって各実施形態に開示される各処理を実現してもよい。また、これらの回路は、１又は複数の集積回路により実現されてよく、各実施形態に示す複数の処理を１つの集積回路により実現されることとしてもよい。また、ＬＳＩは、集積度の違いにより、ＶＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩ等と呼称されることもある。
【００３２】
メモリ１０２は、ストレージ１０３からロードしたプログラムを一時的に記憶し、プロセッサ１０１に対して作業領域を提供する。メモリ１０２には、プロセッサ１０１がプログラムを実行している間に生成される各種データも一時的に格納される。メモリ１０２は、例えば、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含む。
【００３３】
ストレージ１０３は、プログラムを記憶する。ストレージ１０３は、例えば、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、フラッシュメモリ等を含む。
【００３４】
通信Ｉ／Ｆ１０５は、ネットワークアダプタ等のハードウェアや通信用ソフトウェア、及びこれらの組み合わせとして実装され、ネットワークＮＥＴを介して各種データの送受信を行う。当該通信は、有線、無線のいずれで実行されてもよく、互いの通信が実行できるのであれば、どのような通信プロトコルを用いてもよい。通信Ｉ／Ｆ１０５は、ネットワークＮＥＴを介して、他の情報処理装置との通信を実行する。通信Ｉ／Ｆ１０５は、各種データをプロセッサ１０１からの指示に従って、他の情報処理装置に送信する。また、通信Ｉ／Ｆ１０５は、他の情報処理装置から送信された各種データを受信し、プロセッサ１０１に伝達する。
【００３５】
入出力Ｉ／Ｆ１０４は、情報処理装置１００に対する各種操作を入力する入力装置、及び、情報処理装置１００で処理された処理結果を出力する出力装置を含む。入出力Ｉ／Ｆ１０４は、入力装置と出力装置が一体化していてもよいし、入力装置と出力装置とに分離していてもよい。入力装置は、ユーザからの入力を受け付けて、当該入力に係る情報をプロセッサ１０１に伝達できる全ての種類の装置のいずれか、又は、その組み合わせにより実現される。入力装置は、例えば、タッチパネル、タッチディスプレイ、キーボード等のハードウェアキーや、マウス等のポインティングデバイス、カメラ（画像を介した操作入力）、マイク（音声による操作入力）を含む。出力装置は、プロセッサ１０１で処理された処理結果を出力する。出力装置は、例えば、タッチパネル、スピーカ等を含む。
【００３６】
＜機能構成＞
詳細は後述するが、図４、図５を用いて、各装置の機能構成について簡単に説明する。なお、図４に記載の各機能部が必須ではなく、また、これ以外の機能部を備えてもよい。また、各機能部の機能又は処理は、実現可能な範囲において、機械学習又はＡＩ（Artificial Intelligence）により実現されてもよい。
（１）リソースサーバ
図４に示すように、リソースサーバ１００は、通信制御部１１０、入出力制御部１２０、判定部１３０、生成部１４０、暗号化部１５０、及び、記憶部１６０を備える。
【００３７】
通信制御部１１０は、通信Ｉ／Ｆ１０５を介した外部装置との間の通信を制御する。すなわち、通信制御部１１０は、ユーザ端末３００やサービスサーバ４００との間の通信で取得したデータを、判定部１３０や記憶部１６０へ伝達したり、それら機能部からのデータを、ユーザ端末３００やサービスサーバ４００へ送信したりする。従って、通信制御部１１０は、外部装置（ユーザ端末３００、サービスサーバ４００）との間でデータを送受信する送信部及び受信部として機能する。
【００３８】
例えば、通信制御部１１０は、ユーザ端末３００のユーザに関するユーザ情報を、ユーザ端末３００から受信する。また、通信制御部１１０は、サービスサーバ４００のサービス提供側に関するサービス情報を、サービスサーバ４００から受信する。なお、受信したユーザ情報やサービス情報は、それぞれ、記憶部１６０のユーザ情報データベース（ＤＢ）２６２、サービス情報ＤＢ２６１に格納（記憶）される。
【００３９】
さらに、通信制御部１１０は、ユーザ端末３００から、サービスサーバ４００へのアクセス要求を受信したり、暗号化部１５０によって暗号化された暗号化ユーザ情報を、ユーザ端末３００へ送信したりする。
【００４０】
入出力制御部１２０は、入出力Ｉ／Ｆ１０４を介した外部装置との各種情報の伝達を制御する。例えば、入出力制御部１２０は、タッチパネル、キーボード、マイク等の図示しない入力装置からのサービス提供側の管理ユーザからの入力指示に応じて各機能部へ情報を伝達したり、タッチパネル、モニタ、スピーカ等の図示しない出力装置に対し、各機能部からの情報を伝達したりする。
【００４１】
判定部１３０は、各種判定処理を行う。なお、判定には、機械学習又はＡＩが用いられてもよい。暗号化部１５０は、ユーザ端末３００から送信されたサービスサーバ４００へのアクセス要求に応じて、ユーザ端末３００のユーザに関するユーザ情報を暗号化する。
【００４２】
記憶部１６０は、ストレージ１０３等に、リソースサーバ１００が動作するうえで必要とする各種プログラムや各種データを記憶する機能を有する。また、上述のように、記憶部１６０は、認証システムを利用するサービス提供側に関するサービス情報、ユーザに関するユーザ情報を記憶する。また、記憶部１６０は、復号鍵生成規則１６３と、ハッシュキー生成規則１６４とを記憶する。なお、記憶部１６０は、第１記憶部に相当する。
【００４３】
（２）認証サーバの機能構成
認証サーバ２００は、通信制御部２１０、入出力制御部２２０、判定部２３０、生成部２４０、及び、記憶部２５０を含む。通信制御部２１０は、通信Ｉ／Ｆ２０５を介したサービスサーバ４００との間の通信を制御する。なお、本発明の一実施形態において、認証サーバ２００は、サービスサーバ４００との間でのみ通信を行い、ユーザ端末３００や、リソースサーバ１００との間での通信は行われない。
【００４４】
通信制御部２１０は、サービスサーバ４００との間の通信で取得したデータを、判定部２３０や記憶部２５０へ伝達したり、それら機能部からのデータを、サービスサーバ４００へ送信したりする。従って、通信制御部１１０は、サービスサーバ４００との間でデータを送受信する送信部及び受信部として機能する。例えば、通信制御部１１０は、サービスサーバ４００から、暗号化ユーザ情報とともに、当該サービスサーバ４００のサービス提供側に関するサービス情報を受信する。さらに、通信制御部１１０は、サービスサーバ４００へ、生成部２４０が生成した認証側復号鍵を送信する。
【００４５】
記憶部２５０は、ストレージ２０３等に、認証サーバ２００が動作するうえで必要とする各種プログラムや各種データを記憶する機能を有する。また、記憶部２５０は、サービス情報ＤＢ２５１に、認証システムを利用するサービス提供側のサービス情報を記憶する。ここで、認証サーバ２００は、リソースサーバ１００と異なり、ユーザ情報を記憶しない。また、認証サーバ２００に記憶されるサービス情報は、リソースサーバ１００に記憶されるサービス情報と同一のものであることが好ましい（詳細は後述する）。なお、認証サーバ２００の記憶部２５０は、第２記憶部に相当する。さらに、記憶部２５０は、リソースサーバ１００の記憶部１６０に記憶されている復号鍵生成規則１６３、ハッシュキー生成規則１６４と同一の復号鍵生成規則２５２、ハッシュキー生成規則２５３を記憶する。
【００４６】
判定部２３０は、各種判定処理を行う。なお、判定には、機械学習又はＡＩが用いられてもよい。例えば、判定部２３０は、通信制御部２１０で受信したサービス情報に対応するサービス情報が、記憶部２５０に記憶されているか否かを判定する。また、判定部２３０は、暗号化ユーザ情報が、例えば不正アクセスによって取得されたものであるか否かを、当該暗号化ユーザ情報を送信したサービスサーバ４００の正否（真偽）を判定することで判定する（詳細は後述する）。
【００４７】
生成部２４０は、判定部２３０によって、暗号化ユーザ情報を送信したサービスサーバ４００が真と判定される場合、暗号化ユーザ情報を復号するための認証側復号鍵を生成する。
【００４８】
（３）ユーザ端末の機能構成
図５に、ユーザ端末３００及びサービスサーバ４００の機能構成図を示す。ユーザ端末３００は、通信制御部３１０、入出力制御部３２０、生成部３３０、撮像制御部３４０、及び、記憶部３５０を備える。なお、各機能部の機能又は処理は、実現可能な範囲において、機械学習又はＡＩにより実現されてもよい。
【００４９】
通信制御部３１０は、ネットワークＮＥＴを介した、ユーザ端末３００と外部装置（リソースサーバ１００、サービスサーバ４００）との間の各種情報の送受信を実行させる。入出力制御部３２０は、入出力Ｉ／Ｆを介した外部装置との各種情報の伝達を制御する。例えば、入出力制御部３２０は、タッチパネル、マイク等の入力装置で受け付けられたユーザからの入力指示に応じて各機能部へ情報を伝達したり、タッチパネル、スピーカ等の出力装置に対し、各機能部からの情報を伝達したりする。
【００５０】
生成部３３０は、所定の規則に基づきハッシュを生成する。撮像制御部３４０は、ユーザ端末３００のユーザからの指示に応じて、撮像部による撮像を制御する。
【００５１】
記憶部３５０は、ストレージ等に、ユーザ端末３００が動作するうえで必要とする各種プログラムや各種データを記憶する機能を有する。例えば、記憶部３５０は、ユーザ端末３００において所定のサービスを実行するためのアプリケーションプログラムを記憶し、また、所定のサービスへのアクセストークンを記憶する。
【００５２】
（４）サービスサーバの機能構成
サービスサーバ４００は、通信制御部４１０、入出力制御部４２０、生成部４３０、復号部４４０、及び、記憶部４５０を備える。
【００５３】
通信制御部４１０は、ネットワークＮＥＴを介した、サービスサーバ４００と外部装置（認証サーバ２００、ユーザ端末３００）との間の各種情報の送受信を実行させる。入出力制御部４２０は、入出力Ｉ／Ｆを介した外部装置との各種情報の伝達を制御する。生成部４３０は、所定の規則に基づきハッシュを生成する。
【００５４】
復号部４４０は、記憶部４５０に記憶されたサービス情報４５１に基づき、暗号化ユーザ情報を復号する。なお、サービス情報４５１には、リソースサーバ１００の生成部１４０によって生成された、サービス提供側に固有の固有復号鍵が含まれる。復号部４４０は、固有復号鍵と、認証サーバ２００から送信された認証側復号鍵とを用いて、暗号化ユーザ情報を復号する。
【００５５】
＜事前登録処理＞
認証システム５００の利用にあたり、サービス提供側及びユーザは、認証システムへの事前登録が必要である。以下に、事前登録処理について説明する。図６は、事前登録処理のシーケンス図である。
（１）サービス提供側の事前登録処理
事前登録にあたり、サービスサーバ４００は、サービス情報をリソースサーバ１００へ送信する（ステップＳ１１）。サービス情報には、サービスサーバ４００のＩＰアドレス、ユーザ情報の送信先ＵＲＬ、サービス提供側に関する情報が含まれる。ユーザ情報の送信先ＵＲＬとは、サービスの利用登録を希望するユーザのユーザ端末から、登録に際し必要となるユーザ情報の送信先を示す情報である。なお、認証システム５００の管理者は、サービス提供側に関する情報に基づいて、サービス提供側を審査し、信用するに足ると判断できるサービス提供側のみに、認証システム５００への登録が許可されてもよい。なお、サービス提供側の審査は、Ｗｅｂページのクロールによりサービス提供側に関する情報を収集したり、ＡＩや機械学習によってサービス提供側の事業を予測（例えば、株価予測や売り上げ予測等）したりすることでソフトウェアにより行われてもよい。
【００５６】
リソースサーバ１００の生成部１４０は、サービスサーバ４００に対し、サービスＩＤ（アカウント情報）、サービス提供側に固有の秘密鍵、固有の復号鍵を生成する（ステップＳ１２）。生成部１４０は、認証システム５００を利用するサービス毎に異なる秘密鍵及び復号鍵を生成する。リソースサーバ１００の通信制御部１１０は、生成されたサービスＩＤ、秘密鍵、復号鍵を、サービスサーバ４００へ送信する（ステップＳ１３）。サービスサーバ４００の記憶部４５０には、認証システム５００のサービスＩＤ、固有秘密鍵、固有復号鍵が記憶される（ステップＳ１４）。
【００５７】
図９に、サービスサーバ４００の記憶部４５０に記憶される情報の一例を示す。テーブルＴＢ４０は、サービス情報４５１の一例である。テーブルＴＢ４０に示すように、サービスサーバ４００には、認証システム５００においてサービス提供側を一意に識別するサービスＩＤ、固有秘密鍵、固有復号鍵が記憶される。なお、サービスサーバ４００には、認証システム５００に関する情報（図の例では、登録日）がさらに記憶されてもよい。
【００５８】
また、サービス毎のサービスＩＤ、秘密鍵、ＩＰアドレスは、リソースサーバ１００から認証サーバ２００へ送信される（ステップＳ１５）。認証サーバ２００の記憶部２５０には、サービス毎に、サービスＩＤ、ＩＰアドレス、秘密鍵が少なくとも記憶される（ステップＳ１６）。また、リソースサーバ１００の記憶部１６０には、サービス毎に、サービス名、ＩＰアドレス、送信先ＵＲＬが少なくとも記憶される（ステップＳ１７）。
【００５９】
図７（ａ）に、リソースサーバ１００の記憶部１６０に記憶される情報の一例を示す。テーブルＴＢ１０は、サービス情報ＤＢ１６１の一例である。テーブルＴＢ１０に示すように、リソースサーバ１００には、認証サービス５００を利用するサービス毎に、サービス名、サービスＩＤ、ＩＰアドレス、送信先ＵＲＬが少なくとも記憶される。なお、リソースサーバ１００には、サービス提供側に関する情報（図の例では、業種）がさらに記憶されてもよい。
【００６０】
また、図８に、認証サーバ２００の記憶部２５０に記憶される情報の一例を示す。テーブルＴＢ３０は、サービス情報ＤＢ２５１の一例である。テーブルＴＢ３０に示すように、認証サーバ２００には、サービス毎に、サービス名、サービスＩＤ、秘密鍵、ＩＰアドレスが少なくとも記憶される。なお、認証サーバ２００には、サービス提供側に関する情報（図の例では、業種）がさらに記憶されてもよい。
【００６１】
（２）ユーザの事前登録処理
事前登録にあたり、ユーザのユーザ情報が、ユーザ端末３００からリソースサーバ１００へ送信される（ステップＳ１８）。ユーザ情報には、ユーザ名、生年月日、住所、電話番号等、ユーザが本人であることを確認可能な情報が少なくとも含まれることが好ましい。リソースサーバ１００の生成部１４０は、ユーザのアカウントと、ユーザのアカウントへのアクセストークンを生成する（ステップＳ１９）。アクセストークンは、例えば、Ｃｏｏｋｉｅであってよい。生成されたアクセストークンは、リソースサーバ１００からユーザ端末３００へ送信される（ステップＳ２０）。ユーザ端末３００の記憶部３５０には、アクセストークンが記憶される（ステップＳ２１）。また、リソースサーバ１００の記憶部１６０には、ユーザ情報が記憶される（ステップＳ２２）。
【００６２】
図７（ｂ）に、リソースサーバ１００の記憶部１６０に記憶されるユーザ情報の一例を示す。テーブルＴＢ２０は、ユーザ情報ＤＢ１６２の一例である。テーブルＴＢ２０に示すように、リソースサーバ１００には、認証サービス５００を利用するユーザ毎に、ユーザ名、サービスＩＤ、ＩＰアドレス、送信先ＵＲＬが少なくとも記憶される。なお、リソースサーバ１００には、サービス提供側に関する情報（図の例では、業種）がさらに記憶されてもよい。なお、テーブルＴＢ２０に示すように、一のユーザに対し、サービス毎に異なるユーザＩＤが付与される。また、プロフィール情報については後述する。
【００６３】
＜認証を利用するサービスの選択＞
認証システム５００へ登録したユーザは、認証システムを利用してユーザ登録するサービスを選択することができる。このとき、本発明の一実施形態によれば、ユーザは、サービス毎に、自身のプロフィール情報（ユーザ情報）のうち登録に用いる項目を選択することができる。このことを、図を用いて説明する。
【００６４】
図１０の画面１０は、サービスＸの利用登録において、認証サービスを利用するか否かを選択させる画面の一例である。ここで、ボタン１１がユーザによって選択された場合、利用登録要求が、ユーザ端末３００からサービスサーバ４００へ送信され、サービスサーバ４００は、サービスＸへ送信する項目を選択させる項目選択画面を表示させる情報を、ユーザ端末３００へ送信する。
【００６５】
図１０の画面２０は、サービスＸの利用登録に用いる項目の選択画面の一例である。画面２０では、項目のリスト１２として、名前、プロフィール写真、銀行口座が表示されている。ここで、リスト１２に表示される項目は、サービスによって異なる。サービス提供側は、認証システム５００への事前登録時に、ユーザから取得したい項目をあらかじめリソースサーバ１００へ登録しておく。ユーザ端末３００において、リスト１２から、サービスＸへ送信する項目がユーザによって選択され、送信ボタン１３が選択されると、ユーザ端末３００の生成部３３０は、ユーザによって選択された項目を含む情報送信要求を生成する。ユーザ端末３００の通信制御部３１０は、情報送信要求を、リソースサーバ１００へ送信する。
【００６６】
図１０の画面３０は、認証システム５００へログイン後に、認証システム５００による認証サービスを利用するサービスを選択する画面の一例である。ここで、サービスＸがユーザによって選択された場合、利用登録要求が、ユーザ端末３００からサービスサーバ４００へ送信され、サービスサーバ４００は、項目選択画面（図１０の画面２０）を表示させる情報を、ユーザ端末３００へ送信する。画面２０については、上述と同様であるため説明を省略する。
【００６７】
上述のように、ユーザは、認証システム５００を用いて登録するサービス毎に、自身のプロフィール情報のうち送信する項目を選択することができる。なお、リソースサーバ１００の生成部１４０は、ユーザが項目選択画面２０にアクセスしたことを証明する第１トークンを生成する。
【００６８】
＜認証処理＞
次に、ユーザの認証処理（ユーザ情報の証明処理）について、図１１を用いて説明する。図１１は、認証処理のシーケンス図である。なお、以下では、説明のため、ユーザが利用するサービスをサービスＸ、ユーザ端末３００のユーザをユーザＡとし、サービスＸに関連するものは〇〇Ｘと示し、ユーザＡに関連するものは〇〇Ａと英字を付して説明する。
【００６９】
上述したように、ユーザ端末３００Ａの生成部３３０は、情報送信要求を生成する。情報送信要求には、送信先のサービスＸを一意に示す文字列、項目選択画面２０によって選択された、プロフィール情報のうち送信する項目（以降、「送信項目」と称する）に関する情報を示す文字列又はリスト、選択画面２０にアクセスしたことを証明する第１トークン、サービスＸにおけるユーザのユーザＩＤが含まれる。ユーザ端末３００Ａは、情報送信要求を、リソースサーバ１００へ送信する。ここで、送信には、ＨＴＴＰ  ＰＯＳＴメソッドが用いられてもよい。
【００７０】
リソースサーバ１００は、情報送信要求を受信すると、第１トークンの有無に基づき、項目選択画面２０にアクセスしたユーザからの情報送信要求であるか否かを判定する（ステップＴ１２）。第１トークンが情報送信要求に含まれていない場合（ステップＴ１２でＮＯ）、項目選択画面へのリダイレクトを指示する応答を送信する（ステップＴ１３）。第１トークンが情報送信要求に含まれている場合（ステップＴ１２でＹＥＳ）、リソースサーバ１００の暗号化部１５０は、情報送信要求に含まれる送信項目を暗号化する（ステップＴ１４）。具体的には、暗号化部１５０は、情報送信要求に含まれる全ての情報を辞書形式のＪＳＯＮ文字列として暗号化し、暗号化文字列（crypted_string）とする。なお、暗号化部１５０によって暗号化された暗号化文字列の復号には、送信項目の送信先のサービスＸに付与された、サービスＸ固有の復号鍵Ｘと、リソースサーバ１００の記憶部１６０に記憶されている復号鍵生成規則１６３に基づいて生成された復号鍵（復号鍵Ｐとする）を必要とする。なお、図７（ｂ）のテーブルＴＢ２０に示すように、ユーザはサービス毎に異なるユーザＩＤを有する。従って、ユーザ情報がサービス提供側によって悪用されたり、流出したりするのを防ぐことができる。
【００７１】
また、リソースサーバ１００の生成部１４０は、ハッシュキー生成規則１６４に従ってハッシュキー（ハッシュキーＨとする）を生成し、上述した暗号化文字列、又は、それを復号した文字列を、ハッシュキーＨを用いてハッシュ化し、ハッシュＡとする。なお、上述した復号鍵生成規則１６３における復号鍵Ｐの生成や、ハッシュキー生成規則１６４におけるハッシュキーの生成には、タイムスタンプと、リソースサーバ１００の記憶部１６０に記憶されているサービスＸのサービス情報が利用される。また、復号鍵Ｐの生成規則とハッシュＡの生成規則とは異なり、一方から他方の類推は不可能である。
【００７２】
ステップＴ１４で生成された暗号化ユーザ情報は、リソースサーバ１００からユーザ端末３００へ送信され（ステップＴ１５）、ユーザ端末３００からサービスＸのサービスサーバ４００Ｘへ送信される（ステップＴ１６）。ここで、送信には、ＨＴＴＰ  ＰＯＳＴメソッドが用いられる。暗号化ユーザ情報には、サービスＸへの送信先ＵＲＬ、タイムスタンプ、暗号化文字列、ハッシュＡが含まれる。
【００７３】
暗号化ユーザ情報を受信したサービスサーバ４００の生成部４３０は、暗号化ユーザ情報に、サービスＸの認証システム５００におけるサービスＩＤ（サービスＸ＿ＩＤ）を付与し、事前登録処理においてリソースサーバ１００から付与された秘密鍵Ｘを用いてハッシュ化する（ステップＴ１７）。すなわち、生成部４３０は、暗号化ユーザ情報に含まれるタイムスタンプ、暗号化文字列、ハッシュＡ、サービスＩＤ（サービスＸ＿ＩＤ）を連結し、秘密鍵Ｘでハッシュ化したハッシュＢを生成する。サービスサーバ４００の通信制御部４１０は、生成されたハッシュＢと、暗号化ユーザ情報に含まれるタイムスタンプ、暗号化文字列、ハッシュＡ、サービスＩＤとを、認証サーバ２００へ送信する（ステップＴ１８）。
【００７４】
認証サーバ２００では、ハッシュＢに基づいた認証が行われる（ステップＴ１９）。具体的には以下の手順である。
【００７５】
まず、タイムスタンプが有効期限内であるか否かが判定される。ここで、有効期限は任意に設定可能である。そして、サービスサーバ４００から暗号化ユーザ情報に含まれるサービスＩＤ（サービスＸ＿ＩＤ）と同一のサービスＩＤに関する情報が、認証サーバ２００の記憶部２５０から読み出される。次に、サービスＸ＿ＩＤに関連付けて記憶部２５０に記憶されているＩＰアドレスと、暗号化ユーザ情報の送信元のＩＰアドレスとが一致するか否かが判定される。ＩＰアドレスが一致した場合、データが不正に取得されたものでないことを意味する。タイムスタンプと、サービスＸ＿ＩＤに関連付けて記憶部２５０に記憶されているサービス情報とに基づいて、同じく記憶部２５０に記憶されている復号鍵生成規則２５２と、ハッシュキー生成規則２５３とに基づき、復号鍵及びハッシュを生成する。
【００７６】
ここで、リソースサーバ１００に記憶されている復号鍵生成規則１６３及びハッシュキー生成規則１６４は、それぞれ、認証サーバ２００に記憶されている復号鍵生成規則２５２及びハッシュキー生成規則２５３と同一である。従って、同一のパラメータを用いて復号鍵やハッシュキーが生成されれば、リソースサーバ１００で生成されたものと、認証サーバ２００で生成されたものは同一となる。従って、認証サーバ２００で生成された復号鍵が復号鍵Ｐと一致し、さらに、認証サーバ２００でハッシュがハッシュＡと一致する場合、暗号化ユーザ情報を送信したサービスサーバ４００のアクセスが正しいものであることが判定され、アクセスが認証される（ステップＴ１９でＹＥＳ）。
【００７７】
認証された場合、認証サーバ２００で生成された復号鍵Ｐを、サービスサーバ４００へ送信する（ステップＴ２０，Ｔ２１）。復号鍵Ｐを受信したサービスサーバ４００の復号部４４０は、受信した復号鍵Ｐに、固有復号鍵Ａを合わせて復号鍵とし、暗号化文字列を復号する（ステップＴ２２）。復号されたＪＳＯＮ文字列から、ユーザによって選択された項目を取得し、サービスの利用ユーザとして登録する。
【００７８】
なお、認証サーバ２００で生成された復号鍵が復号鍵Ｐと一致しない、又は、認証サーバ２００で生成されたハッシュがハッシュＡと一致しない場合（ステップＴ１９でＮＯ）、エラーであることをサービスサーバ４００へ応答するか、処理を終了する。
【００７９】
上述のように、本発明の一実施形態による認証システムによれば、ユーザのプロフィール情報を、その正確性を担保された状態で、サービス提供側に提供することができる。また、ユーザ情報はリソースサーバ１００にのみ記憶され、認証サーバ２００に記憶されない。さらに、ユーザ情報が記憶されるリソースサーバ１００へのアクセスは、ユーザ端末３００のみが行う。さらに、サービス提供側に送信するユーザ情報も、ユーザがその項目を選択でき、サービスサーバ４００には、ユーザが選択した項目のみ記憶される。従って、通信経路での情報の流出や、外部からの不正リクエストの可能性を低減することができる。また、ＨＴＴＰプロトコルによるカジュアルな利用が可能であるため、簡易な手法での認証方法を実現することができる。
【００８０】
さらに、本発明の一実施形態によれば、サービスサーバ４００に固有の復号鍵が付与され、暗号化ユーザ情報の復号には、認証サーバ２００が生成する復号鍵に加え、当該固有の復号鍵を必要とする。従って、認証サーバ２００とサービスサーバ４００との間の通信に不正アクセスされて復号鍵が漏洩した場合でも、暗号化ユーザ情報の復号を阻止することができる。
【００８１】
一般に、正確性を担保し、より信頼度の高いセキュアな認証システムを実現するためには、ユーザに多くの情報を提供してもらい、不正ユーザの登録を防止することが求められる。本発明の一実施形態によれば、ユーザは、認証システムへの登録時に多くの情報を提供しても、各サービスへ提供する情報をユーザ自身で選択することができる。従って、個人情報を保護し、よりユーザビリティの高いシステムを提供することができる。
【００８２】
＜ユーザ情報の提供＞
ここで、認証システム５００への事前登録に際し、ユーザ情報の提供処理の一例を、図１２を用いて説明する。図１２（ａ）は、ユーザ端末３００に表示された身分証の撮影画面４０の一例である。ユーザ情報の登録には、例えば、身分証を撮影した画像を画像認識技術により認識して、身分証に含まれる事項を文字情報として抽出することができる。このような構成によれば、ユーザ情報を簡易な方法で入力することができる。また、図１２（ｂ）は、ユーザの顔写真の撮影画面５０の一例である。身分証の撮影と、ユーザの顔写真の撮影とを一連の処理でユーザに実行させることが好ましい。
【００８３】
なお、ユーザの顔は、動画によって撮影されてもよい。この際、画面５０に示すように、所定のキーワード１４（図１２の例では、「１１月２８日、レモン」）を発話させてもよい。これにより、様々なユーザの表情を取得し、後述するＡＩによる判定に用いる機械学習のインプット情報として用いることができる。
【００８４】
上述の処理によって取得した動画情報に基づくＡＩによるユーザ確認について、簡単に説明する。
【００８５】
（１）顔写真について
提示したキーワードをユーザが喋っており、合成による動画でないことが、解析ライブラリやサービスによって判定される。動画から静止画が切り出され、切り出された静止画は、機械学習のインプットとして与えられる。
（２）身分証について
動画から切り出された各静止画について、所定の真贋判定サービスを利用した、書類の真偽判定や、ＯｐｅｎＣＶ（Open Source Computer Vision Library）等のライブラリを利用した画像解析・機械学習によって、身分証の顔写真と、動画に含まれる顔とが同一人物であるかを判定する
【００８６】
なお、認証システム５００における、一のユーザによる重複登録を防止するため、身分証や書類のID番号（免許証番号や旅券番号、製造番号など）がすでに登録されているか、また、名前や住所、生年月日の重複がある場合は、顔写真と合わせて、ＡＩで同一人物か否かを判定してもよい。
【００８７】
なお、ユーザによる顔写真の撮影は複数回行われてもよい。顔写真は、全て機械学習のインプットとして用いられ、判定精度を向上させることができる。
【００８８】
＜ユーザへの報酬＞
本発明の一実施形態によれば、ユーザ情報のうちユーザによって選択されてサービスへ送信される項目に応じて、送信される項目が所定の条件を満たすユーザに、所定の報酬が関連付けられてもよい。所定の報酬は、サービス提供側によってあらかじめ設定され、リソースサーバ１００に記憶される。例えば、図１３に示す選択画面２０において、リスト１２の項目がすべて選択された場合、所定の報酬がユーザに関連付けられてよい。所定の報酬としては、サービスＸにおいて利用可能なポイントであってもよいし、金銭であってもよい。また、選択画面２０において送信ボタン１３が選択された後に、所定のアンケート画面２１が表示されてもよい。そして、アンケートへの回答数に応じて、ユーザに報酬が与えられてもよい。このような構成により、サービス提供側は、ユーザ情報をより多く取得して蓄積することが可能となる。
【００８９】
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各構成部、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部やステップ等を１つに組み合わせたり、或いは分割したりすることが可能である。また、上記実施の形態に示す構成を適宜組み合わせることとしてもよい。例えば、リソースサーバ１００や認証サーバ２００が備えるとして説明した各構成部は、複数のサーバによって分散されて実現されてもよいし、同一のサーバにて実現されてもよい。当業者であれば、同一のサーバであっても、実質的に上述した内容にて実装することができる。ただし、不測の事態に備える意味では、実際に分離させることが好ましい。なお、本明細書における「サーバ」とは、物理的なサーバ自体に限らず、仮想サーバや、サーバの機能を実現するプログラム自体を指すことに留意されたい。また、各構成部は、ＡＰＩ（Application Programming Interface：アプリケーションプログラミングインターフェース）によって提供されてもよい。
【００９０】
例えば、秘密鍵や復号鍵はそのまま利用するのではなく、認証サーバ２００とリソースサーバ１００とで共有するハッシュキー生成規則の変数として利用し、生成されたハッシュ文字列を鍵として利用することにより、より安全性を高めることができる。
【００９１】
また、復号鍵ＰとハッシュキーＨの生成に利用する変数は上述したものに限られるものではなく、他の変数を利用してもよい。例えば、タイムスタンプを用いて、ハッシュキーの発行から問い合わせまでの有効期限を設けてもよい。また、サービスサーバ４００から認証サーバ２００への問い合わせにＳＳＨ（Secure SHell）を利用し、より安全性を高めてもよい。また、情報送信要求を暗号化してもよい。その場合、暗号化キーはワンタイムパスワード的に、有効期限で区切って変えることが好ましい。さらに、不正アクセスへの対策として、認証サーバ２００に保存するサービス提供側の登録情報を、ハッシュ化して記憶してもよい。この場合、リソースサーバ１００で生成するハッシュには、同じ生成規則を用いる。なお、暗号化のアルゴリズムは任意のものを用いることができる。また、ユーザＩＤは文字列でなく、画像情報が用いられてもよい。
【００９２】
また、認証システム５００における通信経路上で、サービスサーバ４００から認証サーバ２００への問い合わせに対する回答において、情報流出・改竄・不正アクセスが想定される。しかしながら、攻撃者は、タイムスタンプ、ハッシュキーとして利用するサービス固有の秘密鍵、暗号化文字列（crypted_string）、ハッシュＡ、接続元ＩＰアドレス（サービスサーバのＩＰアドレスへの改竄）の全てにおいて、正しいものを用意する必要がある。暗号化文字列（crypted_string）とハッシュＡについては、認証システム５００におけるいずれかの通信経路から流出したものでない限り、一致させることは難しい。また、万一攻撃が成功し攻撃者が復号鍵Ｐを受け取っても、サービスごとに割り当てられている固有の復号鍵を入手しない限り、暗号化文字列（crypted_string）を復元できない。また、万一復号化できた場合でも、流出する情報は、一のユーザがその時送信した情報のみである。
【００９３】
＜身分証としての利用＞
さらに、本発明に係る認証システムは、身分証として利用することができる。認証システム５００への事前登録処理において、リソースサーバ１００には、ユーザ情報が記憶される。このユーザ情報を、上述した認証処理によって、身分証としてサービス側に提供することができる。図１４（ａ）は、ユーザ端末３００における、認証システム５００に登録されたユーザ情報（身分証４０）の表示画面例である。なお、図は一例であって、身分証４０に含める項目はこれ以下でもこれ以上であってもよい。例えば、本発明による認証システムを用いて、ホテルにおけるチェックイン時、予約済みの店舗への入店時や病院等での受付時に、ユーザ情報（住所、名前、電話番号等）の記入を省略することができる。
【００９４】
ユーザが実店舗（認証システム５００を利用するサービス提供側の店舗）に来店すると、ユーザ端末３００に、図１４（ｂ）に示すようなチェックイン画面（送信項目選択画面）４１が表示される。これは、認証システム５００における実店舗の識別情報が、ユーザ端末３００に入力されることによって表示されてもよい。例えば、実店舗に設置された店舗端末に表示されたパスコードをユーザ端末３００に読み取らせる、またはユーザが入力する、実店舗に設置されたビーコン等から識別情報が送信される、ユーザ端末３００においてあらかじめ実店舗を指定するといった方法が用いられてもよい。チェックイン画面４１において、ユーザは、実店舗で身分証として提示する項目を選択する。すると、上述した認証処理によってユーザ情報が認証され、実店舗側へ送信される。このような構成により、ユーザは、簡易な方法でユーザ情報を入力することができる。また、実店舗側は、ユーザ情報の偽装の可能性が低い、信頼度の高いユーザ情報を得ることが可能となる。
【００９５】
本発明の利点を再度述べる。本発明によれば、通信経路に全てＨＴＴＰプロトコルが利用できるので、サービス提供側は容易に利用可能である。また、サービスサーバへのＩＰアドレスを登録してもよいので、サービスサーバから問い合わせ用のＵＲＬに、容易にファイアウォールを設定することができる。また、この部分にのみＳＳＨを利用して、より安全にすることもできる。さらに、認証サーバ２００にユーザ情報を記憶させる必要がなく、情報の流出や改竄、不正アクセスがユーザレベル以外では困難であり、複数ユーザの情報をまとめて流出させることは困難である。
【００９６】
また、ユーザが選択画面２０において送信ボタン１３を選択し、認証の完了までは、ユーザからみて１回のページ移動で終了する。また、サービス提供側からみても、ユーザに対し１回のセッションで認証を完了できる。
【００９７】
さらに、ユーザは、認証システムにより保証された情報を、ワンクリックでサービス提供側に送信でき、サービス提供側は、認証システムに登録されているため、悪意のある第三者に、ユーザ情報が送信されるリスクが低い。
【００９８】
サービス提供側は、ユーザごとに、認証システムにより保証された情報をワンクリックで入手できる。ユーザは、サービス毎に異なる識別子が付与されるため、少なくとも認証システムによって保証される範囲で、ユーザの同一性を判定でき、ユーザの重複登録などを回避できる。また、図１０の画面３０のように、ユーザが認証サービスへログインすると、当該認証サービスを利用できるサービスの一覧が表示される。従って、ユーザへサービスを紹介する広告として、ユーザへ、サービスへの登録を促すことができる。
【００９９】
本開示の各実施形態のプログラムは、コンピュータに読み取り可能な記憶媒体に記憶された状態で提供されてもよい。記憶媒体は、「一時的でない有形の媒体」に、プログラムを記憶可能である。プログラムは、例えば、ソフトウェアプログラムやコンピュータプログラムを含む。
【０１００】
記憶媒体は適切な場合、１つ又は複数の半導体ベースの、又は他の集積回路（ＩＣ）（例えば、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途向けＩＣ（ＡＳＩＣ）等）、ハード・ディスク・ドライブ（ＨＤＤ）、ハイブリッド・ハード・ドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピィ・ディスケット、フロッピィ・ディスク・ドライブ（ＦＤＤ）、磁気テープ、固体ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュア・デジタル・カードもしくはドライブ、任意の他の適切な記憶媒体、又はこれらの２つ以上の適切な組合せを含むことができる。記憶媒体は、適切な場合、揮発性、不揮発性、又は揮発性と不揮発性の組合せでよい。
【０１０１】
また、本開示のプログラムは、当該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して、情報処理装置に提供されてもよい。
【０１０２】
また、本開示の各実施形態は、プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０１０３】
なお、本開示のプログラムは、例えば、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｙｔｈｏｎ等のスクリプト言語、Ｃ言語、Ｇｏ言語、Ｓｗｉｆｔ，Ｋｏｌｔｉｎ、Ｊａｖａ（登録商標）等を用いて実装される。
【符号の説明】
【０１０４】
５００  認証システム
１００  リソースサーバ
１１０  通信制御部
１２０  入出力制御部
１３０  判定部
１４０  生成部
１５０  暗号化部
１６０  記憶部
１６３  復号鍵生成規則
１６４  ハッシュキー生成規則
２００  認証サーバ
２１０  通信制御部
２２０  入出力制御部
２３０  判定部
２４０  生成部
２５０  記憶部
２５１  サービス情報ＤＢ
２５２  復号鍵生成規則
２５３  ハッシュキー生成規則
３００（３００Ａ，３００Ｂ）  ユーザ端末
３１０  通信制御部
３２０  入出力制御部
３３０  生成部
３４０  撮像制御部
３５０  記憶部
４００（４００Ａ，４００Ｂ）  サービスサーバ
４１０  通信制御部
４２０  入出力制御部
４３０  生成部
４４０  復号部
４５０  記憶部
４５１  サービス情報
１００  情報処理装置
１０１  プロセッサ
１０２  メモリ
１０３  ストレージ
【図１】
2020102741.tif 000003
【図２】
2020102741.tif 000004
【図３】
2020102741.tif 000005
【図４】
2020102741.tif 000006
【図５】
2020102741.tif 000007
【図６】
2020102741.tif 000008
【図７】
2020102741.tif 000009
【図８】
2020102741.tif 000010
【図９】
2020102741.tif 000011
【図１０】
2020102741.tif 000012
【図１１】
2020102741.tif 000013
【図１２】
2020102741.tif 000014
【図１３】
2020102741.tif 000015
【図１４】
2020102741.tif 000016