添付図面を参照して、本発明の好適な実施形態(以下、「本実施形態」という)について説明する。なお、各図において、同一の符号を付したものは、同一または同様の構成を有する。
本発明において、「部」や「手段」、「装置」、「システム」とは、単に物理的手段を意味するものではなく、その「部」や「手段」、「装置」、「システム」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」や「手段」、「装置」、「システム」が有する機能が2つ以上の物理的手段や装置により実現されても、2つ以上の「部」や「手段」、「装置」、「システム」の機能が1つの物理的手段や装置により実現されても良い。
本実施形態のプログラムは、CD-ROMなどの光学ディスク、磁気ディスク、半導体メモリなどの各種の記憶媒体を通じて、または通信ネットワーク(第1ネットワークN1や第2ネットワークN2)などを介してダウンロードすることにより、コンピュータにインストールまたはダウンロードすることができる。
<1.システム構成>
図1を参照して、本実施形態に係るウォレットシステム1のシステム構成例を説明する。
ウォレットシステム1は、ユーザが保有する価値やデータ、ユーザのアカウント情報などの利用において、セキュアかつ自由な利用を実現するためのシステムである。具体的には、ウォレットシステム1は、ユーザが保有する価値やデータ、ユーザのアカウント情報(以下、総称して「証明対象」ともいう)をウォレット技術(以下、単に「ウォレット」ともいう)により保管させる。そして、ウォレットシステム1は、電子証明書の技術を用いて、ウォレットに保管されている証明対象の真正性を確保しつつ、これらの証明対象やその電子証明書をユーザから利用可能にし、さらに複数のユーザ間でのやり取りを可能にする。このやり取りとは、例えば、証明対象などを相手に要求してから、要求された証明対象が相手から提供されて、提供された証明対象を受け付けるまでをいう。
「属性情報」は、証明対象のデータの一つである。属性情報は、例えば、ユーザの個人情報(例えば、ユーザの氏名、電話番号、住所、メールアドレス、または生年月日など)や生体情報(顔画像データや指紋情報など)のように、特定の個人を識別できる情報であってもよい。また、属性情報は、ユーザの性質や特徴を表す情報であってもよく、例えば、年代、性別、または居住地などであってもよい。また属性情報は、例えば、名刺情報や社員証情報などであってもよい。
証明対象のデータは、属性情報の他に、例えば、ユーザ装置200のデバイス情報(例えば、MACアドレス、IPアドレス、製造番号など)を含んでもよい。また、証明対象のデータは、ユーザに関する、位置情報(例えば、GPSデータなど)、Web履歴情報(例えば、閲覧履歴、検索履歴、Cookie情報など)、またはECサイトでの商品の購入履歴情報、店舗において発行される購入履歴情報、電子レシートの情報などを含んでもよい。
「アカウント情報」とは、ユーザが保有するアカウントに関する情報である。このアカウントは、例えば、サービスを利用するための権利(いわゆるユーザアカウント)やユーザ名義の金融口座などを含む。アカウント情報は、例えば、ユーザやアカウントを識別するための識別情報(ユーザIDや口座番号)、および/またはこの識別情報に関連付けられた認証情報(例えば、パスワードやセキュリティコードなど)を含む。
「価値」とは、例えば、電子マネーや仮想通貨(暗号資産)、または各社が発行するポイント(いわゆる企業通貨)や商品引換券などのトークンを含む。
図1に示すように、ウォレットシステム1は、サーバ装置100と、第1ユーザが使用する第1ユーザ装置200aと、第2ユーザが使用する第2ユーザ装置200bとを含む。第1ユーザ装置200aと第2ユーザ装置200bとは、特に区別の必要がない場合、総称して「ユーザ装置200」ともいう。
本実施形態では、必要に応じて、第1ユーザに関するものについて「第1」とつけて説明する。例えば、第1ユーザが保管する仮想カードを「第1仮想カード」ともいい、第1仮想カードの証明対象を「第1証明対象」ともいい、第1証明対象の電子証明書を「第1電子証明書」ともいう。また、本実施形態では、必要に応じて、第2ユーザに関するものについて「第2」とつけて説明する。例えば、第2ユーザが保管する仮想カードを「第2仮想カード」ともいい、第2仮想カードの証明対象を「第2証明対象」ともいい、第2証明対象の電子証明書を「第2電子証明書」ともいう。
[サーバ装置]
サーバ装置100は、第1ネットワークN1を介して、ユーザ装置200と、事業者装置300や認証機関装置400を含む外部装置との通信が可能な情報処理装置である。サーバ装置100は、所定のプログラムを実行することにより、ユーザ装置200にインストールされた後述するウォレットアプリと外部装置とを中継するゲートウェイサーバの機能を実現する。また、サーバ装置100は、複数のユーザ装置200それぞれのウォレットアプリの管理を行うサーバ機能を実現する。なお、サーバ装置100は、ウォレットシステム1専用のハードウェアやOSなど(例えば、オンプレミス型のサーバ構成)を設けずに、クラウドサーバによるSaaS(Software as a Service)、Paas(Platform as a Service)、IaaS(Infrastructure as a Service)を適宜用いてもよい。
[ユーザ装置]
ユーザ装置200は、ユーザが使用する情報処理装置であり、例えば、スマートフォンやラップトップなどの端末装置である。ユーザ装置200は、情報処理機能が備わる装置であればどのような装置でもよく、他の例として、ドローン、車両、車載機器、家電、またはウェアラブル・デバイスなどであってもよい。ユーザ装置200は、所定のプログラムを実行することにより、サーバ装置100と接続して証明対象や電子証明書そのもの、これらの組み合わせである仮想カード、またはこれらに関する情報を送受信したり、ユーザに対してこれらに関する情報を画面で表示したり、ユーザからの証明対象や電子証明書、仮想カードに対する指示を受け付けたりする。仮想カードについては後述する。ユーザ装置200は、他のユーザ装置200と、第2ネットワークN2を介して通信可能に接続される。また、ユーザ装置200は、例えば、QRコード(登録商標)を出力させ、他のユーザ装置200にこの出力させたQRコードを読み込ませて情報連携してもよい。
「所定のプログラム」とは、例えば、ユーザ装置200にインストールされたウォレットシステム1専用のアプリケーションプログラム(以下、「ウォレットアプリ」ともいう)であってもよいし、汎用の端末装置であるユーザ装置200が標準的に備えるWebブラウザであってもよいし、それらの組み合わせであってもよい。本実施形態では、所定のプログラムがウォレットアプリとする例を説明する。
[ネットワーク]
第1ネットワークN1は、広域通信網のネットワークであり、インターネット、移動体通信網、電話回線を含む。また、第1ネットワークN1は、例えば、3G(3rd Generation)、4G(4th Generation)、5G(5th Generation)、またはLTE(登録商標)(Long Term Evolution)回線などを用いた無線通信方式を用いてもよい。
第2ネットワークN2は、複数のユーザ装置200間を相互接続するための通信ネットワークである。第2ネットワークN2は、例えば、NFC(Near Field Communication)等の電磁誘導等を利用した10cm程度の至近距離での無線通信、Bluetooth(登録商標)や赤外線通信等の10m程度の近距離無線通信を実現するネットワークを含む。また、第2ネットワークN2は、例えば、Wi-Fi(登録商標)規格に準拠した無線LANを含んでもよく、ルータ(不図示)が中継することで、複数のユーザ装置200間の相互接続を実現させる。なお、第1ネットワークN1と第2ネットワークN2とは、特に区別の必要がない場合は、総称して「ネットワークN」ともいう。
[事業者装置]
事業者装置300は、サービスをユーザに提供する事業者(以下、単に「サービス事業者」ともいう)、いわゆるSP(Service Provider)の情報処理装置である。事業者装置300は、サーバ装置100を介して、ユーザ装置200のウォレットアプリに保管されている証明対象や電子証明書を取得し、サービスをユーザに提供する。例えば、サービス事業者は、いわゆるRP(Relying Party)であってもよく、この事業者装置300が取得した電子証明書などのユーザの認証情報を信頼してこのユーザにサービスを提供してもよい。
[認証機関装置]
認証機関装置400は、認証機関の情報処理装置である。認証機関は、公的な機関でも民間の機関でもよく、例えば、信頼できる第三者機関として、TTP(Trusted Third Party(認証局))や認証機関(CA:Certification Authority)であってもよい。また認証機関は、例えば、IdP(Identity Provider(SAML認証における認証情報の提供者))などであってもよい。認証機関装置400は、サーバ装置100を介して、ユーザ装置200からの発行要求に基づいて電子証明書を発行し、ユーザ装置200に提供する。
[その他の外部装置]
事業者装置300と認証機関装置400以外のその他の外部装置500も、サーバ装置を介して、ユーザ装置200に保管される仮想カードを利用することができる。外部装置500は、例えば、サードパーティシステムの装置であり、オンライン家計簿サービスシステムのサーバ装置、クレジットカード会社のサーバ装置、ポイント会社のサーバ装置などであってもよい。
<2.概要>
図2~9を参照して、ウォレットシステム1の概要の一例を説明する。
<2-1.ウォレット機能>
まず図2を参照して、ウォレットシステム1のウォレット機能の一例を説明する。図2に示すように、ウォレットシステム1では、ユーザが保有する価値やデータ、ユーザのアカウント情報などの証明対象それぞれが、その電子証明書と組み合わされて一枚の仮想カードとしてユーザ装置200のウォレットに格納される。本例では、第1ユーザが個人として、第2ユーザが商品を販売する店舗とする。
電子証明書は、証明対象それぞれについて、信頼できる第三者(認証機関)や当事者が間違いなく本物であることを電子的に証明するものである。電子証明書は、言い換えれば、証明対象それぞれが一定の真正性があることを電子的に証明するものであってもよい。この真正性とは、例えば、正当な権限において発行されたものであることをいう。また、真正性とは、例えば、虚偽入力、書き換え、消去、および混同が防止されていることを示すものであってもよく、さらに、第三者から見て発行の責任の所在が明確であることを示すものであってもよい。電子証明書は、発行の責任者の電子署名(公開鍵を含む)を含んでもよい。
「仮想カード」は、証明対象とその電子証明書を有する仮想のカードである。仮想カードは、言い換えれば、ウォレットシステム1における操作単位、管理単位または処理単位の一つである。仮想カードは、例えば物理的なカードのように一つの記憶媒体の中に証明対象とその電子証明書などが記憶されていなくてもよい。例えば、仮想カードは、設定された仮想カードの定義それぞれの括りの中で、証明対象とその電子証明書とが1対1~N(N:自然数)で関連付けられていればよい。具体的には、仮想カードを識別するカードIDと、証明対象を識別する証明対象IDおよびその電子証明書を識別する証明書IDと、が関連付けられてカード記憶部231に記憶されていればよい。なお、仮想カードは、例えば、証明対象のみ有していてもよく、その電子証明書は任意のタイミングで認証機関から取得したり自ら発行したりすればよい。
ウォレットシステム1では、ユーザ装置200のウォレットに格納された仮想カードそれぞれを、他のユーザとの間でやり取りすることができる。
図2(a)では、第1ユーザのウォレットに保管する仮想カードを、第2ユーザのウォレットに提供する例を説明する。まずウォレットシステム1は、各種証明対象の仮想カードを生成する。例えば、第1ユーザが入力した第1ユーザの名刺情報(例えば、氏名と連絡先など)を証明対象として、その電子証明書を発行または取得して、仮想カードを生成する。ウォレットシステム1では、生成された仮想カードはウォレットで保管される。
ウォレットシステム1では、例えば、以下に例示するように、外部装置500から提供された、第1ユーザに関するデータや価値、アカウント情報を証明対象として受け付けて、受け付けた証明対象とその電子証明書とを組み合わせて仮想カードを生成してもよい。
〇第1ユーザが所属する企業Aの情報処理装置500aから第1ユーザの社員証情報を受け付けて、この社員証情報の仮想カードを生成
(なお、社員証情報は属性情報の一つである。属性情報の詳細は後述する。)
〇クレジットカード会社のサーバ装置500bから第1ユーザ名義のクレジットカードのアカウント情報(例えば、クレジットカード番号、有効期限およびセキュリティコードなどを含む)を受け付けて、仮想カード(バーチャルカード)として生成
(なお、クレジットカード会社で既に仮想カードとして発行されていた場合には、発行されている仮想カードを受け付けてそのまま登録する。)
〇仮想通貨事業者の取引所の装置500cから仮想通貨の提供を受け付けて、仮想通貨の仮想カードを生成
(なお、仮想カードの生成単位は、仮想通貨ごとであっても仮想通貨の種類ごとであってもよい)
ウォレットシステム1では、例えば、第1ユーザが保管している第1仮想カードのうちの1以上の仮想カードを他のユーザ(第2ユーザ)のウォレットに提供することができる。
例えば、ウォレットシステム1では、第1仮想カードのうち、第1ユーザの社員情報の仮想カードが提供対象の仮想カード(以下、「対象仮想カード」ともいう)の場合、この対象仮想カードを第1ユーザがウォレットから取り出して第2ユーザに提示することができる。これにより第2ユーザに対して第1ユーザが企業Aの社員であることを証明し、商品購入の際の社員割引の申込をすることができる。この提示の際、ウォレットシステムでは、対象仮想カードの電子証明書が有効か否かを判定する。電子証明書が有効の場合、ウォレットシステム1では、社員証情報の真正性が確保されているとして第2ユーザに対象仮想カードを安全に提示することができる。他方、ウォレットシステム1では、電子証明書が有効ではない場合、社員証情報の真正性が確保されないとしてその旨の警告エラーを出力したり、提示を保留や取消にしたりすることができる。なおウォレットシステム1では、対象仮想カードが電子証明書を有していない場合についても、その電子証明書が有効ではないと判定する。
ウォレットシステム1では、第2ユーザが販売する商品を第1ユーザが購入するにあたって、クレジットカード決済の場合には、クレジットカードのアカウント情報の対象仮想カードを第2ユーザに提供してもよい。また、他の決済方法として、仮想通貨を使用して決済する場合には、仮想通貨の対象仮想カードを第2ユーザに提供してもよい。第2ユーザのウォレットは、提供されたアカウント情報や仮想通貨の対象仮想カードを受け付けて格納し、格納した対象仮想カードを用いて購入する商品代金の支払い決済のための処理を行う。例えばクレジットカード決済の場合、クレジットカード会社が、サービス事業者(RP)となり、第2ユーザから対象仮想カードのクレジットカードのアカウント情報や電子証明書を受け取って、商品代金の支払い決済としてクレジットカードの決済サービスを第1ユーザおよび第2ユーザに提供してもよい。
図2(b)では、第2ユーザのウォレットに保管する仮想カードを、第1ユーザのウォレットに提供する例を説明する。第1ユーザと同様に、まずウォレットシステム1は、各種証明対象の仮想カードを生成する。例えば、第2ユーザが入力した店舗情報(例えば、店舗名と連絡先など)や商品販売の際に発行したレシート情報を証明対象として、その電子証明書を発行または取得して、仮想カードを生成する。
ウォレットシステム1では、以下に例示するように、外部装置500から提供された、第2ユーザに関するデータや価値、アカウント情報を証明対象として受け付けて、受け付けた証明対象とその電子証明書とを組み合わせて仮想カードを生成してもよい。
・第2ユーザの店舗で利用可能なポイントを発行するポイント会社の情報処理装置500dからポイントカードの第1ユーザのアカウント情報を受け付けて、このアカウント情報の仮想カードを生成
ウォレットシステム1では、例えば、第2ユーザが保管している第2仮想カードのうちの1以上の仮想カードを他のユーザ(第1ユーザ)のウォレットに提供することができる。
例えば、第1ユーザのポイントカードのアカウント情報の仮想カードの場合、ウォレットシステム1では、第2ユーザがこの仮想カードをウォレットから取り出して、第1ユーザに提供することができる。これにより第1ユーザは、このポイントカードに商品購入の際に付与されたポイントを貯めたり支払いに利用したりすることができる。また、この提供の際、ウォレットシステム1では、この仮想カードの電子証明書が有効か否かを判定する。電子証明書が有効である場合、ウォレットシステム1では、ポイントカードのアカウント情報の真正性が確保されているとして、第1ユーザにこの仮想カードを安全に提示することができる。また、ウォレットシステム1では、ポイント会社から発行されたポイントの仮想カードを生成することもでき、第1ユーザが商品購入した際に、このポイントの仮想カードが第2ユーザから提供(付与)されて、第1ユーザのポイントカードのアカウントに蓄積することができる。
ウォレットシステム1では、例えば、第2ユーザから第1ユーザが商品購入した際に、第2ユーザから提供されたレシート情報の仮想カードを、さらにオンライン家計簿サービスのサーバ装置500eに提供することもできる。オンライン家計簿サービスでは、このサービスにおいて予め登録された第1ユーザのアカウントに対して、この提供されたレシート情報を登録する。
上記構成によれば、ウォレットシステム1は、ユーザに対して、自身が保有する価値やデータ、アカウント情報をウォレットにより管理させることができ、また現実世界での実際の財布のように、これらの真正性を確保しつつ、ユーザが、他のユーザとこれらを自由にやり取りすることができる。
<2-2.全体像>
次に図3を参照して、ウォレットシステム1の全体像の一例を説明する。なお、図3~9を参照して説明する例では、認証機関をIdPとし、認証機関装置400を「Identity Provider」と図3~9では表記する。さらに本例では、サービス事業者をRPとし、事業者装置300を「Relying Party」と図3~9では表記する。本例では、第1ユーザ装置200aと第2ユーザ装置200bのウォレットアプリは同じ機能を有するものとする。このため、第1ユーザ装置200aと第2ユーザ装置200bとを入れ替えても同じように機能を実現できるものとする。
図3に示すように、ウォレットシステム1全体が実現する機能は、以下のA)~M)の機能に分類される。ウォレットシステム1では、分類した機能間において互いに連携(情報連携および/または機能連携を含む。以下同じ。)を行う。以下、このA)~M)機能単位での情報のやり取りや処理を説明する。なお、例えば、A)の機能に分類されるサブ機能を、A1)、A2)などの連番を振って説明する。
A)格納機能:各証明対象と電子証明書を仮想カードに格納し、証明対象と電子証明書を有する仮想カードをウォレットに格納する機能
B)IF機能:ウォレットアプリ間の連携やウォレットアプリと外部装置との間の連携を担う機能
C)ウォレットセキュリティ:ウォレットの情報セキュリティ(機密性、完全性(真正性を含む)、可用性)を確保するための機能
D)生成機能:証明対象の取得、電子署名の生成、電子証明書の発行や取得などを含む仮想カードの生成機能(他の仮想カードを利用して仮想カードの生成する機能を含む)
E)授受機能:外部装置からの仮想カードの授受機能(仮想カードに関する外部装置の代行機能を含む)
F)カードセキュリティ:仮想カードの情報セキュリティを確保するための機能
G)識別/判定機能:各仮想カードまたは各証明対象を識別したり、証明対象や電子証明書に対する各種判定したり、またこれらの識別または判定の結果に基づいて仮想カードを抽出する機能
H)組み合わせ/マスキング機能:複数の仮想カードを組み合わせたり仮想カードに含まれる情報の一部をマスキングしたりする機能
I)利用制限機能:仮想カードの利用を制限する機能
J)自動失効機能:仮想カードが所定の条件を満たした場合自動的に失効させる機能
K)要求機能:外部装置に各種情報や各種処理を要求する機能
L)自動選択機能:自動で要求する仮想カードを線テの要求を行い、要求側と提供側のリクエストをマッチングさせて自動で提供を行う機能
M)Fee精算機能:仮想カードの授受に関する精算処理を行う機能
[基本機能その1]
次に図4を参照して、ウォレットシステム1の基本となる、(ア)証明対象の電子証明書を取得してウォレットに格納する場面と、(イ)格納した電子証明書を利用する場面について説明する。
まず上記(ア)の場面について説明する。(1)<K1)発行要求機能>図4に示すように、ユーザ装置200の要求部215は、自動または手動により、認証機関装置400に対して、仮想カードに格納される証明対象の電子証明書の発行要求を、サーバ装置100に送信する。サーバ装置100のサーバ要求部112は、受信したこの発行要求を認証機関装置400に送信する。
(2)<D1)証明書授受機能>サーバ装置100のサーバ取得部113は、上記(1)の発行要求に対する応答として、認証機関装置400から提供された電子証明書を取得する。
(2)-a~c<D2)証明書発行代行機能>サーバ装置100のサーバ取得部113は、認証機関が電子証明書を発行できない場合、認証機関装置400からAPIなどを利用して情報を連携してもらい、連携された情報に基づいて電子証明書の発行を代行してもよい。(2)-a.具体的には、まず電子証明書の発行に必要な情報を認証機関装置400からサーバ装置100のサーバ取得部が取得する。(2)-b.次にサーバ装置100のサーバ発行部114は、取得したこの情報に基づいて電子証明書を発行する。(2)-c.次にサーバ装置100のサーバ取得部113は、この発行された電子証明書を取得する。
(3)・(4)<A1)証明書格納機能>ユーザ装置200の記憶部230は、サーバ装置100のサーバ取得部から連携され電子証明書を、仮想カードに格納するよう記憶する。
次に上記(イ)の場面について説明する。(5)<E1)カード授受>サーバ装置100のサーバ受付部111は、例えば、サービスAを提供するための事業者装置300から、証明対象に関する処理の処理要求(以下、単に「処理要求」ともいう)を受け付ける。本例では、証明対象を、サービスAと異なるサービスBのユーザのアカウント情報(ユーザIDとパスワード)とする。
<B2)外部連携機能>ユーザ装置200の受付部211は、サーバ装置100を介して事業者装置300からの処理要求を受け付ける。なお、この処理要求においては、特定の証明対象に限らず、特定の仮想カード、すなわち特定の証明対象とその電子証明書が要求されていてもよい。また、この処理要求においては、複数の仮想カードを要求してもよく、また複数の仮想カードの中で処理の優先順位が特定されていてもよい。
「証明対象に関する処理」とは、証明対象の参照、更新、判定または移転の少なくともいずれかを含む処理である。また、証明対象に関する処理は、例えば、証明対象の電子証明書の参照、更新、判定または移転の少なくともいずれかを含む処理であってもよい。また、証明対象に関する処理は、例えば、証明対象および/または電子証明書の削除を含んでもよい。本例では、証明対象に関する処理を、サービスBのユーザアカウントを利用してサービスAの提供を受けるためのユーザ認証における参照処理および判定処理とする。この参照処理および判定処理の処理要求には、サービスAの画面でユーザが入力したサービスBのアカウント情報を含んでもよい。
「価値の移転」とは、価値を所有する所有者が変わることをいう。価値の移転は、例えば、同じ人物が保有する複数の異なるアカウント(例えば、口座)間の移転を含んでもよい。価値の移転は、例えば、複数の口座間の送金取引、口座への入金/口座からの出金、ポイント変換、銀行口座を利用する決済取引(例えば、銀行振込)、またはデビットカードやクレジットカードもしくはプリペイドカードなどを利用したカード決済取引などを含んでもよい。
(6)<G1)識別/判定>ユーザ装置200の抽出部212は、要求されたサービスBのアカウント情報の仮想カードを取り出すために、複数の仮想カードの中から、要求されたサービスBのアカウント情報の仮想カードを抽出する。具体的には、抽出部212は、処理要求に含まれるアカウント情報と少なくとも一部が一致するアカウント情報を含む仮想カードを検索して抽出する。本例では、ウォレットに格納されている仮想カードの中から、処理要求に含まれるアカウント情報のユーザIDに一致するアカウント情報が抽出されたものとする。抽出された仮想カードは仮想カードBとする。なお他方、抽出部212は、ユーザIDが一致するアカウント情報が抽出されない場合、抽出エラーとする結果を、サーバ装置100を介して事業者装置300に返してもよい。
ユーザ装置200の対象処理部214は、ユーザのアカウント情報に関する処理を行う。対象処理部214は、例えば、抽出された仮想カードに含まれるアカウント情報のパスワードや電子証明書の参照処理を行う。サービスBのユーザアカウントの認証のために、対象処理部214は、参照処理の結果に基づいて、処理要求に含まれるアカウント情報のパスワードと、仮想カードBのアカウント情報のパスワードとが一致するかの判定処理を行う。対象処理部214は、これらの処理の結果、ユーザIDは一致するけれどもパスワードが不一致の場合、参照・判定エラーとする結果を、サーバ装置100を介して事業者装置300に返す。
(7)<G2)有効性判定機能>ユーザ装置200の判定部213は、処理要求に含まれるアカウント情報と抽出された仮想カードのアカウント情報とがユーザIDおよびパスワードがいずれも一致する場合、仮想カードBの電子証明書が有効か否かを判定する。本例では、電子証明書が有効であると判定されたものとする。他方、判定部213は、電子証明書が有効でないと判定された場合、有効性エラーとする結果を、サーバ装置100を介して事業者装置300に返す。なお、以降の説明では、認証成功として、処理要求に含まれるアカウント情報と仮想カードBのアカウント情報とにおいてユーザIDおよびパスワードがいずれも一致し、かつ仮想カードBの電子証明書が有効であった場合の処理の説明を行う。
(8)<B2)証明書連携機能>ユーザ装置200の通信部240は、有効性の判定結果として、事業者装置300に有効な電子証明書を連携するために、サーバ装置100のサーバ通信部140に送信する。サーバ通信部140は、事業者装置300に有効な電子証明書を提供する。事業者装置300は、上記の結果に基づいて、サービスAのユーザ認証を成功させ、ユーザにサービスAを提供する。他方、事業者装置300は、上記の各種エラー(抽出エラーや参照・判定エラー)が返された場合には、サービスAのユーザ認証を失敗させ、認証失敗の旨をユーザに通知してもよい。
(9)-a~c <E2)証明書変換機能>参照された電子証明書がサービスAの仕様に合わない場合、サーバ装置100の変換部115は、サービスAの仕様に合わせるよう電子証明書を変換する。変換部115は、例えば、サービスAのAPIで電子証明書を連携するにあたってこのAPIに電子証明書のデータ形式が合わない場合、データ形式をこのAPIに合うように変換してもよい。また、変換部115は、他の例として、サービスAに電子証明書を連携する際に、サービスAのAPIで連携する方法から他の連携方法に変換してもよい。他の連携方法とは、例えば、金融電文やメッセージ処理、FTPを利用したファイル転送処理などにより連携する方法であってもよい。
[基本機能その2]
次に図5を参照して、ウォレットシステム1のもう一つの基本となる、(ア)複数のウォレット間で仮想カードをやり取りする場面と、(イ)ユーザが入力したデータに対する電子署名を生成し公証を得る場面について説明する。
まず上記(ア)の場面について説明する。(1)<B1)ユーザIF機能>図5に示すように、第2ユーザ装置200bの入力受付部2113は、第2ユーザから、第1ユーザが保管する第1仮想カードのうちの1つである対象仮想カードAの第2ユーザに対する提供の要求の入力を受け付ける。
(2)<K2)カード要求機能/B1)外部連携機能>第2ユーザ装置200bの要求部215は、上記のとおり受付部211が第2ユーザから提供の要求を受け付けると、第1ユーザ装置200aに対して、対象仮想カードAの提供の要求を行う。1ユーザ装置200aの要求受付部2111は、第2ユーザ装置200bから、この提供の要求を受け付ける。
(3)<G1)識別/判定機能>第1ユーザ装置200aの抽出部212は、要求受付部2111が受け付けた提供の要求に基づいて、カード記憶部231が記憶する複数の第1仮想カードの中から、対象仮想カードAを抽出する。
(4)<G2)有効性判定機能>第1ユーザ装置200aの判定部213は、抽出された対象仮想カードAの電子証明書が有効か否かを判定する。
(5)<B2)証明書連携機能>第1ユーザ装置200aの提供部220は、判定部213の結果に基づいて、電子証明書が有効である場合、第2ユーザ装置200bに対象仮想カードAを提供する。第2ユーザ装置200bのカード受付部2112は、第1ユーザ装置200aから、上記提供の要求の応答として、要求した対象仮想カードAを受け付ける。
(6)<A1)証明書格納機能>第2ユーザ装置200bの登録部219は、カード受付部2112が受け付けた対象仮想カードAを、カード記憶部231に記憶させる。
次に上記(イ)の場面について説明する。(7)<B3)ユーザインタフェース>第1ユーザ装置200aの入力受付部2113は、第1ユーザから、個人情報の入力を受け付ける。
(8)<D3)自己署名機能>第1ユーザ装置200aの署名生成部2211は、入力された個人情報に対する電子署名を生成する。
(9)<K1)発行要求機能/D1)証明書授受機能>第1ユーザ装置200aの要求部215は、署名生成部2211で生成した電子署名の裏書(公証)として電子証明書を取得するために、この電子証明書を発行可能な認証機関の認証機関装置400に、電子証明書の発行の要求を行う。
(10)<D1)証明書授受機能>サーバ装置100のサーバ取得部113は、上記(9)の発行要求に対する応答として、認証機関装置400から提供された電子証明書を取得する。この認証機関装置400から提供された電子証明書は、例えば、認証機関の電子署名であってもよい。
(11)<D4)カード生成機能>第1ユーザ装置200aのカード生成部2212は、入力された個人情報を第1証明対象とし、自己生成した電子署名をこの第1証明対象の第1電子証明書Aとし、認証機関装置400から取得した電子証明書をこの第1証明対象の第1電子証明書Bとする第1仮想カードを生成する。カード生成部2212は、生成した第1仮想カード(第1証明対象、第1電子証明書Aおよび第1電子証明書B)をカード記憶部231に記憶させる。
上記構成によれば、ウォレットシステム1は、複数のユーザ間、すなわち複数のウォレット間で仮想カードを自由にやり取りすることで、データや価値、アカウント情報を自由にやり取りすることができる。さらに、複数のウォレット間でのやり取りにおいて、これらの真正性を確保することができる。また、ウォレットシステム1は、ユーザが入力したデータについて、このデータを証明対象として、自己署名やさらにその公証を電子証明書として付けて仮想カードとすることができる。したがって、ウォレットシステム1は、複数のウォレット間でやり取りするものの真正性を確保しつつ、使い勝手のよいウォレットを提供できる。
[スキーム]
次に図6を参照して、ウォレットシステム1を支える枠組みであるスキーム(以下、単に「スキーム」ともいう)について説明する。本例では、スキームは、サーバ装置100またはユーザ装置200の少なくともいずれかが備えているものとする。他の例として、スキームは、サードパーティシステムなどの外部装置に実装されていてもよいし、ウォレットシステム1におけるウォレットアプリとは異なるプログラムに実装されていてもよい。
(1)<F1)認証サイド確認機能>図6に示すように、サーバ装置100のサーバ確認部116は、認証機関サイドの仮想カードの生成処理(D)において、電子証明書の発行や取得の処理が適切に行われているか確認する。サーバ確認部116は、例えば、電子証明書に含まれる電子署名の公開鍵を取得し、取得した公開鍵による電子署名の検証を行うことで電子証明書の完全性を確保してもよい。ここで「電子署名の検証」とは、例えば、公開鍵により電子署名の復号化を行い、復号化した電子署名と電子証明書のハッシュ値とを照合することであってもよい。
(2)<F2)証明書確認機能>サーバ装置100のサーバ確認部116またはユーザ装置200の確認部218は、記憶部230に記憶されている仮想カードについて、証明対象や電子証明書の改ざんが行われていないこと、また、仮想カードに含まれる電子証明書が適切に発行されたものか確認する。サーバ確認部116は、例えば、ハッシュポインタ技術を利用したり上記のとおり電子証明書に含まれる電子署名を検証したりして、証明対象や電子証明書の改ざんを検出してもよい。確認部218は、例えば、認証機関装置400から取得した電子証明書(認証機関が発行した電子署名(公証)を含む)について、この電子証明書の真正性を検証してもよい。
(3)<F3)サービスサイド確認機能>サーバ装置100のサーバ確認部116は、サービス事業者サイドの仮想カードの授受処理(E)において、この授受処理が適切に行われているか確認する。
(4)<B3)ユーザIF機能/C2)ウォレット利用権限確認機能>ユーザ装置200の受付部211は、ユーザからのウォレットアプリの利用要求(起動要求またはログイン要求)を受け付けた場合、このユーザのウォレットアプリに対する利用権限を確認する。受付部211は、例えば、ウォレットアプリのログイン要求に対して、ユーザIDおよびパスワード(OTP:one-timepasswardの発行やこの発行されたOTPのSMSへの送信を含む)による認証、またはFIDO(Fast IDentity Online)認証などのユーザ認証を行ってもよい。
(5)<C2)ウォレット異常検知機能>ユーザ装置200の確認部218は、ウォレットアプリの各機能において異常処理が行われていないことを確認する。確認部218は、例えば、仮想カードに対する各種処理の履歴情報などに基づいて学習された学習モデル(AI)を用いて、ウォレットの仮想カードに対する異常な操作などの異常処理を検知してもよい。
(2)<F4)授受確認機能>サーバ装置100のサーバ確認部116またはユーザ装置200の確認部218は、複数のウォレット間での仮想カードのやり取りが適切に行われているか否かを確認する。確認部218は、例えば、第1ユーザ装置200aから送信された仮想カードが、第2ユーザ装置200bで受信されるまでの間に不正にアクセス(傍受)されていないか確認してもよい。
<A3)仮想カードの設定機能>ユーザ装置200の登録部219は、仮想カードに関する情報の各種設定登録を行う。
<B4)ホワイトレーベル機能>ユーザ装置200の受付部211が外部装置からの処理要求受け付けると、対象処理部214は、この処理要求に応じて証明対象に関する処理を実行する。対象処理部214は、例えば、外部装置からの処理要求に応じてウォレットアプリの機能を提供するにあたって、SDKのライブラリやAPIなどによるいわゆるホワイトレーベル機能を実現してもよい。また、対象処理部214が行う外部装置への連携の他の例として、EDI(電子データ交換:Electronic Data Interchange)、メッセージ(電文)送信、メールやその他の手段によるデータファイルの送信などにより外部装置に処理要求に対する処理結果を連携してもよい。
<M)Fee精算機能>サーバ装置100のサーバ登録部117またはユーザ装置200の登録部219は、ウォレットと外部装置との間の仮想カードの連携に関する精算情報(例えば、精算条件など)を登録する。サーバ装置100の精算部118は、この登録された精算情報に基づいてこの仮想カードの連携に関する精算処理を行い、精算処理の結果に基づいて決済をするための処理を行う。また、サーバ登録部117または登録部219は、例えば、複数のウォレット間での仮想カードの連携に関する精算情報を登録する。サーバ装置100の精算部118は、この登録された精算情報に基づいてこの仮想カードの連携に関する精算処理を行い、精算処理の結果に基づいて決済をするための処理を行う。
上記構成によれば、ウォレットシステム1は、証明対象の有効な電子証明書によりその真正性を確保しつつ、ユーザや外部からの要求に応じて証明対象に関する処理を行うことができる。例えば、サービスの提供を受けるためのシングルサインオンの際のSAML認証ではIdPなどの認証機関との通信が必要になるが、上記構成によれば、ユーザ装置200内に閉じて、またはユーザ装置200と事象者装置300との間の通信だけで、証明対象に関する処理を行うために必要な認証を行うことができる。このため、上記構成によれば、ウォレットシステム1は、ウォレットが保管するものの真正性を確保しつつ、使い勝手のよいウォレットを提供できる。
[設定登録機能その1]
次に図7を参照して、ウォレットシステム1の基本機能を利用するにあたっての各種設定登録と登録内容の利用について説明する。
(1)<G1)定義情報の登録・参照機能>図7に示すように、サーバ装置100のサーバ登録部117は、認証機関装置400や事業者装置300から受け付けた証明対象の定義情報をサーバ記憶部130またはユーザ装置200の記憶部230に登録する。また、サーバ装置100のサーバ対象処理部119は、認証機関装置400からの処理要求に基づいて、定義情報の参照処理を実行し、その処理結果を認証機関装置400に連携してもよい。
「定義情報」とは、仮想カード、もしくは証明対象または電子証明書を定義する情報である。定義情報は、例えば、証明対象の種別を含んでもよい。証明対象の種別とは、例えば、(ア)認証用ID、(イ)決済用ID、(ウ)属性情報、(エ)価値、(オ)データなどの種別である。また、定義情報は、例えば、証明対象に関する処理の実行可能な処理態様、もしくは仮想カードの利用条件または失効条件の少なくともいずれかを含んでもよい。また、定義情報は、例えば、仮想カード、証明対象または電子証明書の少なくともいずれかのステータス(例えば、証明対象の参照回数または更新回数、もしくは利用(本人確認)済みの電子証明書か否かを示す情報など)を含んでもよい。
「証明対象に関する処理の実行可能な処理態様」は、例えば、以下の(ア)~(ウ)の少なくともいずれかの許容する処理態様を規定する。
(ア)事業者装置300の処理要求に応じて証明対象の参照処理を実行しその結果を連携する
(イ)事業者装置300の処理要求に応じて他のアカウントなどに対する価値またはデータの移転処理を実行する
(ウ)事業者装置300の処理要求に応じて証明対象に対する判定処理を実行し、その判定結果のみ連携する
「仮想カードの利用条件」は、例えば、利用回数、利用期間、利用先、または利用する仮想カードの組み合わせの少なくともいずれかを制限する制限条件を含む。
例えば、無制限に仮想カードの利用を許容すると証明対象の情報セキュリティ(機密性と完全性)の確保が難しくなる。上記構成によれば、仮想カードの利用に制限を設けることで、証明対象の情報セキュリティを確保することができる。
「仮想カードの失効条件」は、仮想カードが失効する条件であり、例えば、失効期日、仮想カードの利用限度回数の少なくともいずれかを満たすと仮想カードを失効されるものであってもよい。また、失効条件は、例えば、仮想カードが有する証明対象が決済手段のアカウント情報の場合、仮想カードによるその決済手段の利用限度額の条件であってもよい。
(2)<I2)制限情報の登録機能>サーバ装置100のサーバ登録部117は、ユーザまたは外部装置からの要求に基づいて、仮想カードの生成を制限する生成制限条件を登録する。この生成制限条件は、例えば、電子証明書の発行要求の回数、発行要求の期間、発行要求先、発行回数、発行頻度の少なくともいずれかを制限する条件を含む。サーバ登録部117は、例えば、生成制限条件を、D)生成機能に適用するようサーバ記憶部130に登録してもよい。
(2)<G2)定義情報などの記憶・照会機能>サーバ装置100のサーバ記憶部130またはユーザ装置200の記憶部230は、サーバ装置100のサーバ登録部117からの定義情報の登録要求に基づいて、ウォレットに保管する仮想カードの中で該当する仮想カードに関連づけて記憶する。サーバ装置100のサーバ記憶部130またはユーザ装置200の記憶部230は、これらの記憶した定義情報を、ユーザや外部装置からの要求に基づいて参照して、その参照の結果を連携する。
(3)・(4)<G3)定義情報の登録・参照機能>ユーザ装置200の登録部219は、受付部211が受け付けたユーザからの定義情報(利用条件含む)の登録要求または更新要求に基づいて、サーバ記憶部130または記憶部230に定義情報を登録し、登録された定義情報を更新する。ユーザ装置200の対象処理部214は、受付部211が受け付けたユーザからの定義情報の参照要求に基づいて、サーバ記憶部130または記憶部230に記憶された定義情報の参照処理を行う。その処理結果をユーザに提供する(例えば、ウォレットアプリの画面に出力させる)。
(5)<B3)ユーザIF機能/E)授受機能/H1)仮想カードの組み合わせ機能>ユーザ装置200の受付部211またはサーバ装置100のサーバ受付部111は、ユーザまたは外部装置から、複数の証明対象の組み合わせ、または1以上の証明対象と1以上の他の証明対象の電子証明書との組み合わせに関する処理の要求(以下、「組み合わせ処理要求」ともいう)を受け付けてもよい。この際、抽出部212は、組み合わせ処理要求に基づいて、カード記憶部231が記憶する複数の仮想カードの中から、要求された組み合わせに対応する複数の仮想カードを抽出する。対象処理部214は、組み合わせ処理要求の応答として、抽出された複数の仮想カードを組み合わせて、要求された組み合わせに関する処理を行う。
(6)<B3)ユーザIF機能/E)授受機能/H2)仮想カードのマスキング機能>ユーザ装置200の対象処理部214は、ユーザまたは外部装置からの要求に基づいて、抽出された仮想カードの証明対象および/または電子証明書の少なくとも一部を秘匿する。
(7)(8)<J1)自動失効機能>ユーザ装置200の登録部219は、定義情報に含まれる失効条件を満たした仮想カードを失効登録(例えば、失効を示す情報を仮想カードに格納するなど)してもよい。また他の例として、ユーザ装置200の抽出部212は、抽出対象の仮想カードが失効条件を満たす場合に、抽出を取り止めてもよい。
[設定登録機能その2]
次に図8を参照して、ウォレットシステム1の基本機能その2を利用するにあたっての各種設定登録と登録内容の利用について説明する。
(1)<B3)ユーザIF機能>図8に示すように、第1ユーザ装置200aの入力受付部2113は、第1ユーザから、提供候補リストの登録の入力を受け付ける。ここで「提供候補リスト」とは、相手のユーザへの提供候補の証明対象を示すリストである。以下、この提供候補リストを「第1提供候補リスト」ともいう。
(2)<L1)自動提供設定機能>第1ユーザ装置200aの登録部219は、入力受付部2113が受け付けた登録の入力に基づいて、第1提供候補リストをリスト記憶部233に記憶させる。
(3)<B3)ユーザIF機能>第2ユーザ装置200bの入力受付部2113は、第2ユーザから、要求候補リストの登録の入力を受け付ける。ここで「要求候補リスト」とは、相手のユーザへの提供候補の証明対象を示すリストである。以下、この要求候補リストを「第2要求候補リスト」ともいう。
(4)<L2)自動要求設定機能>第2ユーザ装置200bの登録部219は、入力受付部2113が受け付けた登録の入力に基づいて、第2要求候補リストをリスト記憶部233に記憶させる。
(5)<L3)カード自動要求>第2ユーザ装置200bの要求部215は、リスト記憶部233が記憶する第2要求候補リストを用いて、第1仮想カードのうちの対象仮想カードの提供の要求を行う。要求部215は、例えば、この第2要求候補リストを第1ユーザ装置200aに送信する。
(6)<B1)外部連携>第1ユーザ装置200aのリスト取得部2162は、第2ユーザ装置200bから、第2要求候補リストを取得する。
(7)<L4)マッチング>第1ユーザ装置200aのマッチング部222は、第2要求候補リストが示す証明対象と、第1提供候補リストが示す証明対象と、をマッチングさせる。マッチング部222は、具体的には、マッチングにより抽出対象の対象仮想カードを特定する。本例では、この特定された対象仮想カードを「対象仮想カードE」という。
(8)<G1)識別/判定>第1ユーザ装置200aの抽出部212は、マッチングの結果にさらに基づいて、カード記憶機能21が記憶する複数の第1仮想カードの中から、抽出対象の対象仮想カードEを抽出する。
(9)<G2)有効性判定機能>第1ユーザ装置200aの判定部213は、抽出された対象仮想カードEの電子証明書が有効か否かを判定する。
(10)<B2)証明書連携機能>第1ユーザ装置200aの提供部220は、判定部213の結果に基づいて、電子証明書が有効である場合、第2ユーザ装置200bに対象仮想カードEを提供する。第2ユーザ装置200bのカード受付部2112は、第1ユーザ装置200aから、上記提供の要求の応答として、要求した対象仮想カードEを受け付ける。
(6)<A1)証明書格納機能>第2ユーザ装置200bの登録部219は、カード受付部2112が受け付けた対象仮想カードEを、カード記憶部231に記憶させる。
上記構成によれば、ウォレットシステム1は、仮想カードのやり取りにおいて、どのような仮想カードを提供するのかといった指定がユーザや他の装置からその都度なくとも、要求候補リストと提供候補リストとのマッチングにより、対象仮想カードを自動で特定し抽出することができる。また、ウォレットシステム1は、仮想カードの提供の要求について一回一回仮想カードを指定したり要求の内容を指定したりユーザがせずとも、要求候補リストと提供候補リストとのマッチングにより、仮想カードを自動で要求することができる。このため、ウォレットシステム1は、仮想カードのやり取りを利用した取引におけるスマートコントラクトを実現させることができる。
[付加機能]
次に図9を参照して、ウォレットシステム1の基本機能の付加機能について説明する。
図9に示すように、(1)<E1)カード授受>サーバ装置100のサーバ受付部111は、例えば、サービスCを提供するための事業者装置300から、仮想カードC(属性情報とその電子証明書)の参照要求を受け付ける。
<B2)外部連携機能>ユーザ装置200の受付部211は、サーバ装置100を介して事業者装置300からの処理要求を受け付ける。
(3)<G)識別・判定機能>ユーザ装置200の抽出部212は、要求された属性情報の仮想カードを取り出すために、複数の仮想カードの中から、要求された属性情報の仮想カードCを抽出する。具体的には、処理要求に含まれるキーワード(例えば、ユーザのメールアドレスなど)と一致する属性を含む仮想カードCを検索して抽出する。
ユーザ装置200の対象処理部214は、属性情報に関する処理として、属性情報の参照処理を行う。対象処理部214は、参照処理の結果に基づいて、電子証明書が格納されていないことを判定する。
(4)<K1)発行要求機能>ユーザ装置200の要求部215は、自動または手動により、認証機関装置400に対して、仮想カードCの属性情報の電子証明書の発行要求を、サーバ装置100に送信する。サーバ装置100のサーバ要求部112は、受信したこの発行要求を認証機関装置400に送信する。また要求部215は、認証機関における電子証明書の発行に本人確認などのユーザ認証が必要な場合など、第2仮想カードとして、ウォレットに保管されている別の仮想カードDを発行要求と併せて認証機関装置400に連携してもよい。
(5)<D1)証明書授受機能>サーバ装置100のサーバ取得部113は、上記(1)の発行要求に対する応答として、認証機関装置400から提供された電子証明書を取得する。
(6)<A2)証明書格納機能>ユーザ装置200の記憶部230は、サーバ装置100のサーバ取得部113から連携され電子証明書を、仮想カードCに格納するよう記憶する。
(8)<A3)証明書連携機能>ユーザ装置200の通信部240は、事業者装置300に電子証明書を含む仮想カードCを連携するために、サーバ装置100のサーバ通信部140に送信する。サーバ通信部140は、事業者装置300に有効な仮想カードCを連携する。
上記構成によれば、ウォレットシステム1は、サービス事業者やユーザから処理要求された証明対象の電子証明書がウォレットになくとも、認証機関に発行要求して取得することができる。また、ウォレットシステム1は、この発行要求の際、ウォレットに格納されている別の仮想カード(電子証明書)を用いて発行要求に必要な認証をクリアすることができる。このため、ウォレットシステム1は、証明対象の真正性を確保しつつ、使い勝手のよいウォレットを提供することができる。
<3.機能構成>
<3-1.ユーザ装置の機能構成>
図10を参照して、本実施形態に係るユーザ装置200の機能構成を説明する。図10に示すように、ユーザ装置200は、制御部210と、記憶部230と、通信部240と、を備える。
制御部210は、受付部211と、抽出部212と、判定部213と、要求部215、提供部220、とを備える。また、制御部210は、例えば、対象処理部214、取得部216、発行部217、確認部218、登録部219、生成部221、またはマッチング部222を備えてもよい。
[受付部]
受付部211は、ユーザや外部装置から、サーバ装置100を介してまたは直接的に、各種要求(処理要求または登録要求など)や各種情報(証明対象や電子証明書)を受け付ける。受付部211が各種要求などを受け付ける態様は、どのような態様でもよい。受付部211は、例えば、各種情報を示すデータファイルやメッセージを各装置から受信してもよい。また他の例として、受付部211は、ウォレットアプリの画面やウォレットシステム1のWebページから各種情報を入力させて受け付けてもよい。また、受付部211は、例えば、APIやウォレットシステム1に対応するSDKのライブラリなどを利用することで、各種情報を受け付けてもよい。
受付部211は、ユーザまたは事業者装置300の少なくともいずれかから、証明対象の参照、更新、判定または移転の少なくともいずれかを含む証明対象に関する処理の処理要求を受け付ける。
受付部211は、ユーザからのウォレットアプリの利用要求を受け付ける。また受付部211は、この利用要求を受け付けた場合、ユーザ装置200のウォレットアプリに対する要求元のユーザの利用権限を確認する。
受付部211は、例えば、要求受付部2111を備えてもよい。要求受付部2111は、ユーザまたは相手のユーザ装置200から、カード記憶部231に記憶する複数の仮想カードのうちの1以上の対象仮想カードの相手のユーザへの提供の要求を受け付ける。この提供の要求には、例えば、要求する対象仮想カード(証明対象や電子証明書)の識別情報、または要求する対象仮想カードの定義情報と、提供の態様(移転または参照など)とを含んでもよい。例えば第1ユーザ装置200aの場合、要求受付部2111は、第1ユーザまたは第2ユーザ装置200bから、カード記憶部231に記憶する複数の第1仮想カードのうちの1以上の対象仮想カードの第2ユーザへの提供の要求を受け付ける。
要求受付部2111は、例えば第1ユーザ装置200aの場合、第1ユーザまたは第2ユーザ装置200bから、複数の第1仮想カードのうちの複数の対象仮想カードの第2ユーザへの提供の要求を受け付けてもよい。
受付部211は、例えば、カード受付部2112を備えてもよい。カード受付部2112は、要求先のユーザ装置200から、仮想カードに対する提供の要求の応答として、要求した1以上の仮想カードを受け付ける。カード受付部2112は、第2ユーザ装置200bから、仮想カードに対する提供の要求の応答として、要求した1以上の第2仮想カードを受け付ける。受付部211は、受け付けた仮想カードを、自身のウォレット、すなわちカード記憶部231に記憶させる。このような構成によれば、他のユーザが保管する仮想カードを取得して、自身のウォレットに格納することができる。
受付部211は、例えば、入力受付部2113を備えてもよい。入力受付部2113は、ウォレットアプリの画面などを介して、ユーザからウォレットに関する各種情報や各種要求などを受け付ける。入力受付部2113は、ユーザから、データの入力を受け付ける。また、入力受付部2113は、例えば、ウォレットアプリの画面に表示された署名入力をするためのフォーム(以下、「署名フォーム」ともいう)を介して、ユーザから、電子ペンによる手書きの署名入力を受け付けてもよい。
[抽出部]
抽出部212は、受付部211が受け付けた処理要求に基づいて、カード記憶部231が記憶する複数の仮想カードの中から、要求された証明対象の仮想カードを抽出する。抽出部212は、例えば、処理要求に含まれる抽出キーワード(例えば、IDや個人情報など)と一致する情報を含む仮想カードを検索して抽出する。
抽出部212は、例えば、定義情報を記憶する定義記憶部232を参照して、定義情報にさらに基づいて、要求された証明対象の仮想カードを抽出してもよい。例えば、処理要求に「本人確認済みの電子証明書であること」および「仮想カードの利用回数はN回未満であること」などの定義情報に関する指定が含まれていた場合、抽出部212は、定義情報にさらに基づいて、「本人確認済みの電子証明書であること」および「仮想カードの利用回数はN回未満であること」を満たす仮想カードを抽出する。また、抽出部212は、例えば、抽出対象の仮想カードが失効条件を満たす場合に、抽出を取り止めてもよい。
上記構成によれば、抽出部212は、ユーザやサービス事業者が特定の仮想カードを指定して処理要求をしなくても、定義情報で規定するような種別や条件を処理要求で指定すれば、ユーザやサービス事業者が所望する仮想カードを抽出することができる。
抽出部212は、例えば、複数の仮想カードに含まれる仮想カードに電子証明書がない場合、この電子証明書の発行要求をするための仮想カード(以下、「第3仮想カード」ともいう)を複数の仮想カードから抽出してもよい。
抽出部212は、例えば、複数の仮想カードに含まれる第1仮想カードに電子証明書がない場合、この電子証明書の発行するための仮想カード(第3仮想カード)を複数の仮想カードから抽出してもよい。
抽出部212は、例えば、組み合わせ処理要求に基づいて、カード記憶部231が記憶する複数の仮想カードの中から、要求された組み合わせに対応する複数の仮想カードを抽出してもよい。この組み合わせは、例えば、(a)複数の証明対象の組み合わせ、(b)1以上の証明対象と1以上の他の証明対象の電子証明書との組み合わせなどが考えられる。
抽出部212は、例えば、要求受付部2111が受け付けた提供の要求に基づいて、カード記憶部231が記憶する複数の仮想カード(第1仮想カードまたは第2仮想カード)の中から、1以上の対象仮想カードを抽出してもよい。例えば第1ユーザ装置200aの場合、抽出部212は、提供の要求に基づいて、カード記憶部231が記憶する複数の第1仮想カードの中から、要求された複数の対象仮想カードを抽出してもよい。
抽出部212は、例えば、マッチング部222によるマッチングの結果にさらに基づいて、カード記憶部231が記憶する複数の仮想カードの中から、1以上の対象仮想カードを抽出してもよい。
上記構成によれば、抽出部212は、仮想カードのやり取りにおいて、ユーザや他の装置からどのような仮想カードを提供するのかといった指定がその都度なくとも、要求候補リストと提供候補リストとのマッチングにより、対象仮想カードを自動で特定し抽出することができる。このため、抽出部212は、仮想カードを利用した取引におけるスマートコントラクトを実現させることができる。
[判定部]
判定部213は、抽出部212により抽出された仮想カードの電子証明書が有効か否かを判定する。判定部213は、例えば、認証機関装置400から取得した証明書失効リスト(CRL:Certificate Revocation List)に基づいて、電子証明書が有効か否かを判定してもよい。判定部213は、この判定の結果を、通信部240を介して処理要求の要求元であるユーザや外部装置に返す。
判定部213は、例えば、抽出部212により抽出された1以上の対象仮想カードの電子証明書が有効か否かを判定してもよい。判定部213は、例えば、複数の対象仮想カードを判定する際、複数の対象仮想カードのいずれか一つでも電子証明書が有効でないと判定した場合は、全体の判定結果として電子証明書が有効でないと判定してもよい。判定部213は、他の例として、複数の対象仮想カードを判定する際、複数の対象仮想カードそれぞれにおいて電子証明書が有効か否か判定し、出力してもよい。
[対象処理部]
対象処理部214は、判定部213の判定結果より電子証明書が有効である場合、処理要求の応答として、抽出された仮想カードの証明対象に関する処理を行う。対象処理部214は、処理要求の応答として、ユーザや外部装置に、仮想カードに関する情報提供および/または機能提供を行う。対象処理部214は、例えば、外部装置からの処理要求に応じてウォレットアプリの機能を提供するにあたって、SDKのライブラリやAPIなどによるいわゆるホワイトレーベル機能を実現してもよい。
対象処理部214は、例えば、ユーザのアカウント情報に関する処理を行う。まず対象処理部214は、抽出された仮想カードに含まれるアカウント情報のパスワードや電子証明書の参照処理を行う。次に対象処理部214は、参照処理の結果に基づいて、処理要求に含まれるアカウント情報のパスワードと、仮想カードのアカウント情報のパスワードとが一致するかの判定処理を行う。そして対象処理部214は、これらの処理の結果を、通信部240を介して処理要求の要求元であるユーザや外部装置に返す。
対象処理部214は、例えば、受付部211が受け付けたユーザからの定義情報の参照要求に基づいて、定義記憶部232に記憶された定義情報の参照処理を行ってもよい。対象処理部214は、この処理結果をユーザに提供する(例えば、ウォレットアプリの画面に出力させる)。
上記構成によれば、対象処理部214は、証明対象の有効な電子証明書によりその真正性を確保しつつ、ユーザや外部からの要求に応じて証明対象に関する処理を行うことができる。また、対象処理部214は、認証機関装置400とのSAML認証を必要とせずに、異なるドメイン間(例えば、サービスAとサービスBとの間)をまたいだ証明対象に関する処理を行うことができる。このため、対象処理部214は、ウォレットが保管する証明対象の真正性を確保しつつ、使い勝手のよいウォレットを提供することができる。
対象処理部214は、例えば、ユーザまたは外部装置からの組み合わせ処理要求に基づいて、複数の仮想カードを組み合わせてもよい。対象処理部214は、例えば、組み合わせ処理要求の応答として、抽出部212により抽出された複数の仮想カードにおいて、要求された組み合わせに関する処理(以下、「組み合わせ処理」ともいう)を行ってもよい。
上記(a)の組み合わせにおける組み合わせ処理の一例について説明する。本例では、組み合わせ処理要求として、免許証と保険証とで本人確認をするためのこれらの画像データの参照要求および判定要求を受付部211が事業者装置300から受け付けた場合について説明する。このような場合、抽出部212は、免許証の画像データとその電子証明書とを有する仮想カードFの他に、保険証の画像データとその電子証明書とを有する仮想カードGを抽出してもよい。対象処理部214は、仮想カードFと仮想カードGを組み合わせて、各仮想データが有する画像データの参照処理と各画像データに示された人物が同一か否かの判定処理を行ってもよい。
上記構成によれば、対象処理部214は、証明対象に関する処理において複数の証明対象を組み合わせて、ユーザや外部装置からの要求に応えることができる。このため、対象処理部214は、複数のデータの組み合わせや価値とデータの組み合わせを必要とするような複雑なのための要求にも応答することができる。
上記(b)の組み合わせにおける組み合わせ処理の一例について説明する。本例では、組み合わせ処理要求として、価値Aを他のアカウントに移転させる処理要求であってさらにこの移転にあたって本人確認を必要とする処理要求を受付部211がユーザから受け付けた場合について説明する。このような場合、抽出部212は、移転対象の価値Hとその電子証明書を有する仮想カードHの他に、本人確認済みの別の証明対象の電子証明書を有する仮想カードJを抽出してもよい。対象処理部214は、仮想カードHと仮想カードJを組み合わせて、仮想カードHの価値の移転処理とこの移転処理に必要な本人確認として仮想カードJの電子証明書の参照処理を行ってもよい。
上記構成によれば、証明対象に関する処理のための多段階認証や多要素認証としてユーザ認証をさらに必要とする場合、ユーザ装置200がオンラインかオフラインかに関わらず容易にユーザ認証を追加で行うことができる。
対象処理部214は、例えば、後述する提供部220と同様に、ユーザまたは外部装置からの要求に基づいて、抽出された仮想カードの証明対象および/または電子証明書の少なくとも一部を秘匿(匿名加工含む)してもよい。
[要求部]
要求部215は、他のユーザ装置200やサーバ装置100,外部装置に各種要求を行う。要求部215は、例えば、ユーザや外部装置の処理要求、または所定条件に基づいて、要求する電子証明書に対応する認証機関の認証機関装置400に、証明対象の電子証明書の発行要求を行ってもよい。また、要求部215は、例えば、第1仮想カードの電子証明書に対応する認証機関の認証機関装置400に、第3仮想カードの電子証明書に基づいて、第1仮想カードの電子証明書の発行要求を行ってもよい。このような構成によれば、要求部215は、電子証明書の発行要求の際、ウォレットに格納されている別の仮想カードの電子証明書を用いて発行要求に必要な認証をクリアすることができる。
要求部215は、例えば、他のユーザ装置200に対して、この他のユーザ装置200が保管する仮想カードの提供を要求する。例えば第1ユーザ装置200aの場合、要求部215は、第2ユーザ装置200bに対して、第2ユーザ保有する価値またはデータ、もしくは第2ユーザのアカウント情報である第2証明対象と、第2証明対象の第2電子証明書と、を有する第2仮想カードの提供の要求を行う。
要求部215は、例えば、署名生成部2211により生成された電子署名の電子証明書を発行可能な認証機関の認証機関装置400に、この電子証明書の発行の要求を行ってもよい。
要求部215は、例えば、後述するマッチング部222のマッチングの結果に基づいて、要求先の他のユーザ装置200に対して、仮想カードの提供の要求を行ってもよい。このような構成によれば、仮想カードの提供の要求について一回一回対象仮想カードを指定したり要求の内容を指定したりユーザがせずとも、要求部215は、要求候補リストと提供候補リストとのマッチングにより、仮想カードを自動で要求することができる。このため、要求部215は、仮想カードの提供の要求に関するユーザの手間が削減でき、ひいては仮想カードを利用した取引におけるスマートコントラクトを実現させることができる。
[取得部]
取得部216は、サーバ装置100または外部装置から、証明対象や電子証明書を含む各種情報を取得する。取得部216が各種情報を取得する態様に関してはどのような態様でもよい。取得部216は、事業者装置300が提供するサービスの画面に対してユーザから属性情報が入力された際、この入力された属性情報を示すメッセージを随時受信してもよい。また他の例として、取得部216は、例えば、認証機関装置400から電子証明書をイベントドリブンで受信してもよい。また他の例として、取得部216は、例えば、事業者装置300や認証機関装置400が実装するAPIに情報の参照を指示して、その参照の結果として情報を取得してもよい。
取得部216は、例えば、証明書取得部2161を備えてもよい。証明書取得部2161は、認証機関装置400から、要求部215による発行要求に対する応答として仮想カードの電子証明書を取得する。このような構成によれば、証明書取得部2161は、ユーザが自身の装置で生成した電子署名に対する裏書(公証)としても電子証明書を取得することができる。このため、証明書取得部2161は、証明対象の真正性をより向上させることができる。
取得部216は、例えば、リスト取得部2162を備えてもよい。リスト取得部2162は、仮想カードの要求先の他のユーザ装置200から、提供候補リストを取得する。例えば第1ユーザ装置200aの場合、リスト取得部2162は、第2ユーザ装置200bから、第2提供候補リストを取得してもよい。
リスト取得部2162は、他のユーザ装置200から、要求候補リストを取得する。例えば第1ユーザ装置200aの場合、リスト取得部2162は、第2ユーザ装置200bから、第2要求候補リストを取得してもよい。
[発行部]
発行部217は、抽出部212により抽出された第3仮想カードの電子証明書に基づいて、仮想カードの電子証明書の発行を行う。
[確認部]
確認部218は、ウォレットアプリの各機能において異常処理が行われていないことを確認する。確認部218は、例えば、仮想カードに対する証明対象に関する処理の履歴情報を学習データとして学習された学習モデルを用いて、ウォレットの仮想カードの異常処理を検知してもよい。
確認部218は、例えば、カード記憶部231に記憶されている仮想カードについて、証明対象や電子証明書の改ざんが行われていないこと、また、仮想カードに含まれる電子証明書が適切に発行されたものか確認してもよい。
[登録部]
登録部219は、仮想カードに関する情報の各種設定登録を行う。登録部219は、例えば、ユーザや外部装置からの証明対象や電子証明書の登録要求に基づいて、ウォレットで保管する該当する仮想カードに格納するように、カード記憶部231にこれらを登録する。また、登録部219は、例えば、受付部211が受け付けたユーザからの定義情報の登録要求または更新要求に基づいて、記憶部230に定義情報を登録する、または記憶部230に登録された定義情報を更新する。
登録部219は、例えば、仮想カードそれぞれに対して定義情報に含まれる失効条件を満たすか否かをサイクリックまたはイベントドリブンでチェックして、失効条件を満たす仮想カードを、失効登録してもよい。
登録部219は、例えば、ウォレットと外部装置との間の仮想カードの連携に関する精算情報を記憶部230に登録する。
[提供部]
提供部220は、他のユーザ装置200やサーバ装置100、外部装置に、各種情報や価値などを提供する。提供部220が仮想カードを提供する態様は、(ア)仮想カードに含まれる証明対象のみ提供、(イ)仮想カードに含まれる電子証明書のみ提供、(ウ)仮想カードに含まれる証明対象と電子証明書の組み合わせを提供といった態様が考えられる。
提供部220は、例えば、提供の態様に応じて、提供する対象仮想カードを提供元のカード記憶部231から削除してもよい。提供部220は、例えば、提供の態様が「移転」の場合、提供する対象仮想カードを提供元のカード記憶部231から削除する。他方、提供部220は、例えば、提供の態様が「参照(複製も含む)」の場合、提供する対象仮想カードを提供元のカード記憶部231からは削除しない。
提供部220は、例えば、判定部213による判定の結果に基づいて、要求元である他のユーザ装置200に、抽出部212により抽出された1以上の対象仮想カードを提供してもよい。このような構成によれば、提供部220は、ユーザ自身または相手のユーザから要求された仮想カードを、その真正性を確保しつつ、相手のユーザに提供することができる。このため、提供部220は、複数のウォレット間でやり取りするものの真正性を確保しつつ、使い勝手のよいウォレットを実現することができる。
提供部220は、例えば、電子証明書が有効ではないとする判定の結果の場合、証明対象の真正性が確保できない旨の通知を、要求元のユーザまたは他のユーザ装置200に提供し、抽出された1以上の対象仮想カードの提供を保留または取り消しにしてもよい。例えば第1ユーザ装置200aの場合、提供部220は、1以上の対象仮想カードの電子証明書が有効ではないとする判定の結果の場合、この1以上の対象仮想カードの証明対象の真正性が確保できない旨の通知を、要求元の第1ユーザまたは第2ユーザ装置200bに提供し、抽出された1以上の対象仮想カードの提供を保留または取り消しにしてもよい。
上記構成によれば、提供部220は、提供する証明対象の真正性が確保できなかった場合、その旨を通知することができる。また、提供部220は、このような場合、証明対象の提供を保留または取り消しにすることができる。このため、提供部220は、情報セキュリティ(特に完全性)をより向上させることができる。
提供部220は、例えば、抽出部212により抽出された複数の対象仮想カードの組み合わせに基づいて、複数の対象仮想カードの少なくとも一部を秘匿してもよい。提供部220は、この秘匿した複数の対象仮想カードの組み合わせを、他のユーザ装置200に提供する。この秘匿の対象とする部分は、例えば、証明対象における、高い機密性が求められる箇所(例えば、個人情報を開示する箇所)、要求対象外の箇所(要求されている処理に不要な箇所)、組み合わされた証明対象で共通する箇所以外の箇所などであってもよい。
提供部220は、例えば、対象仮想カードの証明対象および/または電子証明書に、項目削除もしくはセル削除、データの全部もしくは一部を抽象化、上位概念化もしくは数値による短縮化によって置き換える一般化、トップ(ボトム)コーディング、データ交換、またはノイズ(誤差やぼかし)の付加などを施すことによって秘匿してもよい。このような構成によれば、提供部220は、より機密性を向上させたウォレットを提供することができる。
例えば、免許証の対象仮想カードと保険証免許証の対象仮想カードとの組み合わせの場合、提供部220は、免許証と保険証それぞれの画像データで示された人物が同一であることを氏名と住所で確認する。提供部220は、それぞれの画像データに対して、共通する氏名と住所以外の箇所についてはぼかし加工を施して秘匿してもよい。また、このように人物が同一であることが確認できればいい場合には、提供部220は、これらの画像データに対して氏名と住所もぼかし加工を施して、さらに一致する旨の情報を付加するよう加工してもよい。提供部220は、このように秘匿した画像データの対象仮想カードの組み合わせを、提供の要求の応答として、要求元の他のユーザ装置200に送信する。
上記構成によれば、提供部220は、対象仮想カードの組み合わせに応じて秘匿することで、情報の開示を必要最小限にとどめて、組み合わされた複数の対象仮想カードを提供することができる。さらに、提供部220は、仮想カードの組み合わせに基づいて自動で秘匿するため、ユーザが秘匿する箇所を指定する手間を省くことができる。このため、提供部220は、機密性を向上させつつ、使い勝手のよいウォレットを提供することができる。
[生成部]
生成部221は、ウォレットに関する各種情報を生成する。
[署名生成部]
生成部221は、例えば、署名生成部2211を備えてもよい。署名生成部2211は、ユーザから入力されたデータに対する電子署名を生成する。署名生成部221は、例えば、入力されたデータから、ハッシュ関数を用いてメッセージダイジェストを生成する。そして、署名生成部2211は、生成したメッセージダイジェストをユーザの秘密鍵を用いて暗号化して、電子署名を生成してもよい。署名生成部2211は、他の例として、署名フォームから入力された手書きの署名の画像データを、電子署名として生成してもよい。
[カード生成部]
生成部221は、例えば、カード生成部2212を備えてもよい。カード生成部2212は、入力されたデータを証明対象とし、この入力されたデータに対する電子署名を電子証明書とする仮想カードを生成する。カード生成部2212は、生成した仮想カードをカード記憶部231に記憶させる。このような構成によれば、カード生成部2212は、ユーザが入力したデータを仮想カード化することができる。さらに、カード生成部2212は、仮想カード化した入力データに対して、認証機関装置400やサーバ装置100に電子証明書の要求をしなくても、ユーザ自身の手書き署名や秘密鍵により生成した電子署名を電子証明書として付けることができる。このため、カード生成部2212は、オフライン環境であっても、入力したデータの真正性を容易に確保することができる。
[マッチング部]
マッチング部222は、要求候補リストが示す証明対象と、提供候補リストが示す証明対象と、をマッチングさせる。マッチング部222は、要求候補リストと提供候補リストとをマッチングさせて、相手のユーザに提供する対象仮想カードを特定する。
例えば第1ユーザ装置200aの場合、マッチング部222は、第1要求候補リストを記憶するリスト記憶部233を参照して、第1要求候補リストが示す証明対象と、リスト取得部2162が取得した第2提供候補リストが示す証明対象と、をマッチングさせてもよい。また、第1ユーザの場合、マッチング部222は、例えば、第1提供候補リストを記憶するリスト記憶部233を参照して、リスト取得部2162が取得した第2要求候補リストが示す証明対象と、第1提供候補リストが示す証明対象と、をマッチングさせてもよい。
要求候補リストと提供候補リストは、例えば、ウォレットごと、すなわちユーザごとに存在してもよい。さらに、要求候補リストと提供候補リストは、例えば、証明対象の種別ごと、および/または仮想カードの用途ごとに存在してもよい。要求候補リストと提供候補リストは、候補とする証明対象や電子証明書、仮想カードの条件を示すものであってもよい。この条件とは、例えば、仮想カードの定義情報に関する条件であってもよい。
ここで図11を参照して、マッチング部222におけるマッチングの一例を説明する。本例では、図2の例のように、商品の代金支払いの決済において仮想カードを利用する場合の例を説明する。
図11に示すように、決済用の要求候補リストAは、例えば、要求候補の仮想カードの条件を示すものであってもよい。決済用の要求候補リストAは、例えば、「電子証明書が有」かつ「証明対象の種別が決済ID(決済用のアカウント情報)」とする定義情報をもつ仮想カードを要求候補として示すものであってもよい。他の例として、決済用の要求候補リストBは、複数の要求候補の証明対象を示し、それぞれの優先順位を示すものであってもよい。決済用の要求候補リストBは、複数の要求候補それぞれについてどのような定義情報(例えば、利用条件や失効条件など)をもつ仮想カードかを示してもよい。また、提供候補リストは、複数の提供候補の仮想カードを示し、それぞれの優先順位を示すものであってもよい。
まず、決済用の要求候補リストAと決済用の提供候補リストとをマッチングする例を説明する。マッチング部222は、例えば、決済用の要求候補リストAと決済用の提供候補リストとを照合して、優先順位の高い順から、決済用の要求候補リストAが示す条件に合致する提供候補の仮想カードを決済用の提供候補リストの中から検索する。マッチング部222は、検索の結果、優先順位1位の仮想カードaがこの条件に合致したものとして、仮想カードaを対象仮想カードとして特定する。
次に、決済用の要求候補リストBと決済用の提供候補リストとをマッチングする例を説明する。マッチング部222は、例えば、決済用の要求候補リストBと決済用の提供候補リストとを照合して、決済用の要求候補リストBが示す優先順位の高い要求候補から、合致する仮想カードを、決済用の提供候補リストの中からこのリストの優先順位に従って検索する。マッチング部222は、検索の結果、要求候補リストBの優先順位1位の要求候補に合致する提供候補が提供候補リストで見つからなかった場合、優先順位2位の要求候補にシフトして検索をし直す。マッチング部222は、検索をし直した結果、提供候補リストの優先順位2位の仮想カードbが要求候補リストBの優先順位2位の要求候補に合致したものとして、仮想カードbを対象仮想カードとして特定する。
[記憶部]
図10に戻って説明を続ける。記憶部230は、ウォレットに必要な各種情報(ユーザの秘密鍵や公開鍵を含む)を記憶する。記憶部230は、カード記憶部231と、定義記憶部232とを備える。記憶部230は、データベースマネジメントシステム(DBMS)を利用して各情報を記憶してもよいし、ファイルシステムを利用して各情報を記憶してもよい。DBMSを利用する場合は、記憶部230は、情報ごとにテーブルを設けて、テーブル間を関連付けて各情報を管理してもよい。
カード記憶部231は、証明対象と、証明対象の電子証明書と、を有する複数の仮想カードを記憶する。カード記憶部231は、例えば、カード生成部2212により生成された仮想カードを記憶してもよい。
カード記憶部231は、例えば、証明書取得部2161により取得された電子証明書を、仮想カードに格納するよう記憶してもよい。このような構成によれば、カード記憶部231は、サービス事業者やユーザから処理要求された証明対象の電子証明書がウォレットに予め保管されていないような場合でも、認証機関で発行された電子証明書を仮想カードに格納しウォレットで保管することができる。このため、カード記憶部231は、証明対象の真正性を確保することができる。
カード記憶部231は、例えば、発行部217により発行された電子証明書を、第1仮想カードに格納するよう記憶してもよい。このような構成によれば、カード記憶部231は、サービス事業者やユーザから処理要求された証明対象の電子証明書がウォレットに予め保管されていないような場合でも、ウォレットアプリで発行された電子証明書を仮想カードに格納しウォレットで保管することができる。このため、カード記憶部231は、ユーザ装置200がオフライン環境であっても、証明対象の真正性を容易に確保することができる。
定義記憶部232は、仮想カードの定義情報を、該当する仮想カードと関連付けて記憶する。
[通信部]
通信部240は、ネットワークNを介して、サーバ装置100や外部装置との間で電子証明書や証明対象などの各種情報を送受信する。通信部240は、例えば、処理要求の結果として、証明対象に関する処理の結果と電子証明書の有効性の判定の結果とを、サーバ装置100を介して事業者装置300に送信する。また、通信部240は、例えば、事業者装置300に電子証明書を含む仮想カードを連携するために、サーバ装置100のサーバ通信部140にこの仮想カードを送信してもよい。サーバ通信部140は、事業者装置300にこの送信された仮想カードを連携する。
<3-2.サーバ装置の機能構成>
図12を参照して、本実施形態に係るサーバ装置100の機能構成を説明する。図12に示すように、サーバ装置100は、サーバ制御部110と、サーバ記憶部130と、サーバ通信部140と、を備える。
サーバ制御部110は、サーバ受付部111、サーバ要求部112、サーバ取得部113、サーバ発行部114、サーバ確認部116と、サーバ登録部117、サーバ対象処理部119を備える。これらの機能部は、ユーザ装置200の受付部211、要求部215、取得部216、発行部217、確認部218および対象処理部214それぞれと同じ機能を備えてもよい。以下、これらの機能部との差異点のみ説明する。また、サーバ制御部110は、例えば、変換部115または精算部118を備えてもよい。
[サーバ受付部]
サーバ受付部111は、事業者装置300から、証明対象に関する処理の処理要求を受け付ける。サーバ受付部111は、サーバ通信部140を介してユーザ装置200にこの処理要求を連携する。
[サーバ取得部]
サーバ取得部113は、例えば、認証機関が電子証明書を発行できない場合、認証機関装置400からAPIなどを利用して情報を連携してもらい、連携された情報に基づいて電子証明書の発行を代行してもよい。
[変換部]
変換部115は、サービス事業者が提供するサービスの仕様に電子証明書が合わない場合、このサービスの仕様に合わせるよう電子証明書を変換する。変換部115は、例えば、サービスの仕様に合うように電子証明書のデータ形式を変換して、変換した電子証明書を事業者装置300に連携してもよい。変換部115は、例えば、電子証明書の連携方法としてAPI連携が初期設定されている場合、他の連携方法(例えば、金融電文やメッセージ処理、FTPを利用したファイル転送処理など)に変換してもよい。
[サーバ確認部]
サーバ確認部116は、例えば、認証機関サイドの仮想カードの生成処理において、電子証明書の発行や取得の処理が適切に行われているか確認する。
[サーバ登録部]
サーバ登録部117は、認証機関装置400や事業者装置300から受け付けた証明対象の定義情報をサーバ記憶部130またはユーザ装置200の記憶部230(定義記憶部232)に登録する。
サーバ登録部117は、例えば、ユーザまたは外部装置からの要求に基づいて、仮想カードの生成を制限する生成制限条件を登録してもよい。
[精算部]
精算部118は、サーバ記憶部130に記憶された精算情報に基づいて、ウォレットと外部装置との間の仮想カードの連携に関する精算処理を行い、精算処理の結果に基づいて決済をするための処理を行う。
[サーバ記憶部]
サーバ記憶部130は、仮想カード(証明対象や電子証明書)、定義情報などの各種情報を記憶する。サーバ記憶部130は、例えば、サーバ登録部117からの定義情報の登録要求に基づいて、ウォレットに保管する仮想カードの中で該当する仮想カードに関連づけて記憶する。なお、仮想カード(証明対象や電子証明書)に関しては、ユーザ装置200の記憶部230が記憶するもの、すなわちウォレットアプリが保管するものをマスタとする。
[サーバ通信部]
サーバ通信部140は、ネットワークNを介して、ユーザ装置200や外部装置との間で各種情報を送受信する。
<4.動作例>
図13を参照して、ウォレットシステム1の動作例を説明する。図13は、ウォレットシステム1での仮想カードのやり取りにおける相互作用を表すシーケンス図である。なお、以下に示す処理の順番は一例であって、適宜、変更されてもよい。
図13に示すように、第2ユーザ装置200bの入力受付部2113は、第2ユーザから、複数の第1仮想カードのうちの1以上の対象仮想カードの第2ユーザに対する提供の要求の入力を受け付ける(S10)。
第2ユーザ装置200bは、第1ユーザ装置200aに対して、上記第2ユーザから受け付けた1以上の対象仮想カードの提供の要求を行う(S11)。第1ユーザ装置200aの要求受付部2111は、第2ユーザ装置200bから、この提供の要求を受け付ける(S12)。
第1ユーザ装置200aの抽出部212は、要求受付部2111が受け付けた提供の要求に基づいて、カード記憶部231が記憶する複数の第1仮想カードの中から、1以上の対象仮想カードを抽出する(S13)。
第1ユーザ装置200aの判定部213は、抽出部212により抽出された1以上の対象仮想カードの電子証明書が有効か否かを判定する(S14)。
第1ユーザ装置200aおよび第2ユーザ装置200bは、判定部213による判定の結果が電子証明書は有効であるとする場合、複合フラグメントalt(alternative)が示すエリアの上部内の処理を実行する。具体的には、第1ユーザ装置200aの提供部220は、第2ユーザ装置200bに、抽出部212により抽出された1以上の対象仮想カードを提供する(S15)。第2ユーザ装置200bのカード受付部2112は、第1ユーザ装置200aから、提供の要求の応答として、要求した1以上の対象仮想カードを受け付ける(S16)。第2ユーザ装置200bのカード記憶部231は、カード受付部2112が受け付けた1以上の対象仮想カードを記憶する(S17)。
他方、第1ユーザ装置200aおよび第2ユーザ装置200bは、判定部213による判定の結果が電子証明書は有効でないとする場合、複合フラグメントaltが示すエリアの下部内の処理を実行する。具体的には、第1ユーザ装置200aの提供部220は、1以上の対象仮想カードの証明対象の真正性が確保できない旨の通知を、要求元の第2ユーザ装置200bに提供する(S18)。第2ユーザ装置200bの受付部211は、第1ユーザ装置200aから提供された証明対象の真正性が確保できない旨の通知を受け付ける(S19)。第2ユーザ装置200bの制御部210は、ウォレットアプリの画面などに、この証明対象の真正性が確保できない旨の通知を出力させる(S20)。第1ユーザ装置200aの提供部220は、抽出部212により抽出された1以上の対象仮想カードの提供を取り消しにする(S21)。
<5.ハードウェア構成>
図14を参照して、上述してきたサーバ装置100及びユーザ装置200をコンピュータ800により実現する場合のハードウェア構成の一例を説明する。なお、それぞれの装置の機能は、複数台の装置に分けて実現することもできる。
図14に示すように、コンピュータ800は、プロセッサ801と、メモリ803と、記憶装置805と、入力I/F部807と、データI/F部809と、通信I/F部811、及び表示装置813を含む。
プロセッサ801は、メモリ803に記憶されているプログラムを実行することによりコンピュータ800における様々な処理を制御する。例えば、サーバ装置100のサーバ制御部110やユーザ装置200の制御部210が備える各機能部などは、メモリ803に一時記憶された上で、主にプロセッサ801上で動作するプログラムとして実現可能である。
メモリ803は、例えばRAM(Random Access Memory)などの記憶媒体である。メモリ803は、プロセッサ801によって実行されるプログラムのプログラムコードや、プログラムの実行時に必要となるデータを一時的に記憶する。
記憶装置805は、例えばハードディスクドライブ(HDD)やフラッシュメモリなどの不揮発性の記憶媒体である。記憶装置805は、オペレーティングシステムや、上記各構成を実現するための各種プログラムを記憶する。この他、記憶装置805は、仮想カードや定義情報を登録するテーブルと、当該テーブルを管理するDBを記憶することも可能である。このようなプログラムやデータは、必要に応じてメモリ803にロードされることにより、プロセッサ801から参照される。
入力I/F部807は、ユーザからの入力を受け付けるためのデバイスである。入力I/F部807の具体例としては、キーボードやマウス、タッチパネル、各種センサ、ウェアラブル・デバイスなどが挙げられる。入力I/F部807は、例えばUSB(Universal Serial Bus)などのインタフェースを介してコンピュータ800に接続されても良い。
データI/F部809は、コンピュータ800の外部からデータを入力するためのデバイスである。データI/F部809の具体例としては、各種記憶媒体に記憶されているデータを読み取るためのドライブ装置などがある。データI/F部809は、コンピュータ800の外部に設けられることも考えられる。その場合、データI/F部809は、例えばUSBなどのインタフェースを介してコンピュータ800へと接続される。
通信I/F部811は、コンピュータ800の外部の装置と有線または無線により、インターネットNを介したデータ通信を行うためのデバイスである。通信I/F部811は、コンピュータ800の外部に設けられることも考えられる。その場合、通信I/F部811は、例えばUSBなどのインタフェースを介してコンピュータ800に接続される。
表示装置813は、各種情報を表示するためのデバイスである。表示装置813の具体例としては、例えば液晶ディスプレイや有機EL(Electro-Luminescence)ディスプレイ、ウェアラブル・デバイスのディスプレイなどが挙げられる。表示装置813は、コンピュータ800の外部に設けられても良い。その場合、表示装置813は、例えばディスプレイケーブルなどを介してコンピュータ800に接続される。また、入力I/F部807としてタッチパネルが採用される場合には、表示装置813は、入力I/F部807と一体化して構成することが可能である。
なお、上記実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。また、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。さらに、当業者であれば、以下に述べる各要素を均などなものに置換した実施の形態を採用することが可能であり、かかる実施の形態も本発明の範囲に含まれる。
また、上記実施の形態で記載されたサーバ装置100及びユーザ装置200が備える構成要素は、記憶装置805に格納されたプログラムがプロセッサ801によって実行されることで、定められた処理が他のハードウェアと協働して実現されるものとする。また、言い換えれば、これらの構成要素は、ソフトウェアまたはファームウェアとしても、それと対応するハードウェアとしても想定され、その双方の概念において、「機能」、「手段」、「部」、「処理回路」、「ユニット」、または「モジュール」などとも記載され、またそれぞれに読み替えることができる。
[変形例]
なお、本発明を上記実施の形態に基づいて説明してきたが、以下のような場合も本発明に含まれる。
[変形例1]
上記実施形態に係るサーバ装置100のサーバ制御部110に含まれる機能部の一部または全部は、ユーザ装置200が備えていてもよい。例えば、ユーザ装置200のウォレットアプリにサーバ装置100の変換部115や精算部118の機能を実装させてもよい。この場合、認証機関装置400や事業者装置300との間の連携において、サーバ装置100を介さずに、ユーザ装置200が直接これらの装置と連携してもよい。また、その逆に、ユーザ装置200の制御部210に含まれる機能部の一部または全部は、サーバ装置100が備えていてもよい。
[変形例2]
上記実施形態では示していないが、本発明に係るサーバ装置100aは、オンライン環境で利用可能なウォレット機能(以下、「オンラインウォレット」ともいう)を有してもよい。すなわち、ユーザは、自身が使用するユーザ装置200にウォレットアプリをダウンロードしていなくとも、ユーザ装置200が標準的に備えるWebブラウザからサーバ装置100aが備えるウォレット機能を利用することができる。サーバ装置100aは、オンラインウォレットのユーザへの提供にあたって、ユーザ装置200に、ウォレット機能を操作するための入力手段をまとめたダッシュボードを表示させてもよい。このダッシュボードは、Webブラウザを介してユーザ装置200に表示させることができる。また、サーバ装置100aは、ホワイトレーベルモデルとして、サービス事業者の事業者装置300に、オンラインウォレットを提供してもよい。ユーザは、サービス事業者が提供するサービス上でもこのダッシュボードを介してオンラインウォレットを利用することができる。
ウォレットシステム1は、例えば、ユーザ装置200にダウンロードするウォレットアプリによる仮想カードの保管と、サーバ装置100aのウォレット機能による仮想カードの保管との両方の保管形態を備えてもよいし、いずれか一方の保管形態を備えてもよい。
例えば第1ユーザがオンラインウォレットを利用する場合、ユーザ装置200bにインストールされたWebブラウザからでも、第1ユーザはユーザ認証を経てオンラインウォレットを利用することができる。他方、第2ユーザは、同じユーザ装置200bにインストールされたウォレットアプリを利用することができる。このように、一つのユーザ装置200bを用いて、第1ユーザのオンラインウォレットと第2ユーザのウォレットアプリとの間で仮想カードのやり取りを可能にしてもよい。
ウォレットアプリをダウンロード可能な情報処理装置をユーザが保有しているとは限らない。上記構成によれば、ウォレットシステム1は、このようなユーザに対して、どのような情報処理装置からでもWebブラウザに表示されたダッシュボードを介してウォレットシステム1のウォレット機能を利用可能にすることができる。このため、ウォレットシステム1は、オンライン上でも、複数のウォレット間でやり取りするものの真正性を確保しつつ、使い勝手のよいウォレットを提供できる。
オンラインウォレットの提供にあたって、ユーザ装置200は、ユーザの識別情報を記憶する記憶媒体またはユーザの生体から、この識別情報またはユーザの生体情報を読み取り可能としてもよい。この記憶媒体は、物理的トークン、例えば、プラスチックカードやキーフォブなどのユーザの識別情報を記憶する媒体であってもよい。
<サーバ装置の機能構成>
図15を参照して、サーバ装置100aの機能構成を説明する。図15に示すように、サーバ装置100aは、サーバ装置100と同様の機能部を備える。以下、サーバ装置100との差異点のみ説明する。
サーバ制御部110は、さらに、抽出部120と、判定部121と、出力部122と、認証部123と、アクセス制御部124と、サーバ提供部125と、を備えてもよい。
サーバ受付部111は、さらに、第1要求受付部1111と、第2要求受付部1112と、第3要求受付部1113と、を備えてもよい。サーバ受付部111は、例えば、ユーザからの各種要求を、ダッシュボードを介して受け付けてもよい。サーバ受付部111は、例えば、第2ユーザ装置200bから、サーバ要求部112が行った提供の要求の応答として、要求した1以上の第2仮想カードを受け付けてもよい。
第1要求受付部1111は、例えば、第1ユーザまたは第2ユーザ装置200bから、複数の第1仮想カードのうちの1以上の対象仮想カードの第2ユーザへの提供の要求を受け付けてもよい。
サーバ要求部112は、例えば、第2ユーザ装置200bに対して、1以上の第2仮想カードの提供の要求を行ってもよい。
第1要求受付部1111は、第1ユーザまたは第2ユーザから、複数の第1仮想カードのうちの1以上の対象仮想カードの第2ユーザへの提供の要求を受け付ける。第2要求受付部1112は、第2ユーザから、後述する第2カード記憶部132に記憶された対象仮想カードの参照要求を受け付ける。第3要求受付部1113は、ユーザ装置200から、ユーザのユーザ認証を要求する認証要求を受け付ける。この認証要求は、ユーザ装置200が記憶媒体やユーザの生体から読み取った、ユーザの識別情報(所有物認証のための情報)またはユーザの生体情報(生体認証のための情報)を含む。また、この認証要求は、多要素認証や多段認証をするために、ユーザが入力する情報であって、このユーザの第2識別情報やパスワードなどの知識認証のための情報を含めてもよい。第2識別情報は、記憶媒体に記憶されるユーザの識別情報とは異なる識別情報であってもよい。また、このユーザ認証は、例えば、オンラインウォレットのダッシュボードにログインするための認証であってもよい。
第1要求受付部1111は、例えば、アクセス制御部124により仮想カードへのアクセスが許可されて初めて、第1ユーザから、1以上の対象仮想カードの第2ユーザへの提供の要求を受け付けてもよい。オンラインウォレットは、ユーザ装置200のウォレットアプリと比較して、所有物(ウォレットアプリをインストールしたユーザ装置200)による認証がない分、第三者から不正アクセスしやすいなどのリスクがある。このような構成によれば、記憶媒体による所有物認証やユーザの生体による生体認証の認証を加えることができ、多要素認証を実現しつつ、オンラインウォレットにおける複数のウォレット間のやり取りを実現できる。
サーバ登録部117は、後述する判定部121による判定の結果に基づいて、第2カード記憶部132に、第1カード記憶部131抽出された1以上の対象仮想カードを記憶させる。サーバ登録部117は、例えば、判定の結果が電子証明書は有効であるとする場合、第2カード記憶部132に、第1カード記憶部131から抽出された1以上の対象仮想カードを記憶させてもよい。
上記構成によれば、サーバ登録部117は、第1カード記憶部131と第2カード記憶部132との間、すなわちオンラインウォレット上でも、複数のウォレット間で仮想カードのやり取りを、真正性を確保しつつ実現させることができる。
抽出部120は、第1要求受付部1111が受け付けた提供の要求に基づいて、後述する第1カード記憶部131が記憶する複数の第1仮想カードの中から、要求された1以上の対象仮想カードを抽出する。抽出部120は、例えば、提供の態様に応じて、提供する対象仮想カードを第1カード記憶部131から削除してもよい。抽出部120は、例えば、提供の態様が「移転」の場合、提供する対象仮想カードを第1カード記憶部131から削除する。他方、提供部220は、例えば、提供の態様が「参照(複製も含む)」の場合、提供する対象仮想カードを第1カード記憶部131からは削除しない。
判定部121は、抽出部120により抽出された1以上の対象仮想カードの電子証明書が有効か否かを判定する。
出力部122は、オンラインウォレットのダッシュボードを含む各種出力情報を生成し、ユーザ装置200に出力させる。出力部122は、例えば、第2要求受付部1112が受け付けた参照要求に基づいて、対象仮想カードを記憶する第2カード記憶部132を参照して、ダッシュボード上で、対象仮想カードを第2ユーザに対して出力させる。
ユーザが必ずしも自身が情報処理機能を有する装置を保有しているとは限らない。上記構成によれば、このようなユーザに対しても、ウォレットアプリをダウンロードした情報処理装置を用意しなくても、Webブラウザに表示されたダッシュボードを介して、自分のウォレットに格納した(第2カード記憶部132に記憶させた)対象仮想カードを出力させることができる。
認証部123は、第3要求受付部1113が受け付けた認証要求に基づいて、ユーザのユーザ認証を行う。認証部123は、多要素認証や多段認証を行う場合は、記憶媒体から読み取られたユーザの識別情報またはユーザの生体情報による第1ユーザ認証を行い、第1ユーザ認証が成功した場合、ユーザが入力した識別情報やパスワードによる第2ユーザ認証を行う。
アクセス制御部124は、認証部123によるユーザ認証の結果に基づいて、ユーザに対してこのユーザに対応付けられたカード記憶部に記憶される仮想カードへのアクセスを許可する。この仮想カードへのアクセスとは、例えば、仮想カードに対する参照、更新、判定、移転または削除などの処理である。アクセス制御部124は、例えば第1ユーザの場合、認証部123によるユーザ認証が成功した場合、第1ユーザに対して第1カード記憶部131に記憶される仮想カードへのアクセスを許可する。
サーバ提供部125は、判定部121による判定の結果に基づいて、第2ユーザが使用する第2ユーザ装置200bに、抽出部120により抽出された1以上の対象仮想カードを提供する。
サーバ記憶部130は、各ユーザに対応付けられたカード記憶部を備える。サーバ記憶部130は、例えば、第1ユーザに対応付けられた第1カード記憶部131と、第2ユーザに対応付けられた第2カード記憶部132と、を備える。第1カード記憶部131は、複数の第1仮想カードであって、各第1仮想カードが、第1ユーザが保有する価値またはデータ、もしくは第1ユーザのアカウント情報である第1証明対象と、第1証明対象の第1電子証明書と、を有する、複数の第1仮想カードを記憶する。第2カード記憶部132は、複数の第2仮想カードであって、各第2仮想カードが、第2ユーザが保有する価値またはデータ、もしくは第2ユーザのアカウント情報である第2証明対象と、第2証明対象の第2電子証明書と、を有する、複数の第2仮想カードを記憶する。