以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態(以下、「実施形態」と記載する)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
〔1.情報処理方法の概要〕
まず、図1を参照し、実施形態に係る情報処理装置が行う情報処理方法の概要について説明する。図1は、実施形態に係る情報処理方法の概要を示す説明図である。なお、図1では、FIDO認証を利用して、NFT化した実世界のオブジェクトを管理し、その所有者を証明する場合を例に挙げて説明する。
図1に示すように、情報処理システム1は、端末装置10とサーバ装置100とを含む。端末装置10とサーバ装置100とは、ネットワークN(図12参照)を介して有線又は無線で互いに通信可能に接続される。本実施形態では、端末装置10は、サーバ装置100と連携する。
端末装置10は、ユーザU(利用者)により使用されるスマートフォンやタブレット端末等のスマートデバイスであり、4G(Generation)やLTE(Long Term Evolution)等の無線通信網を介して任意のサーバ装置と通信を行うことができる携帯端末装置である。また、端末装置10は、液晶ディスプレイ等の画面であって、タッチパネルの機能を有する画面を有し、ユーザUから指やスタイラス等によりタップ操作、スライド操作、スクロール操作等、コンテンツ等の表示データに対する各種の操作を受付ける。なお、画面のうち、コンテンツが表示されている領域上で行われた操作を、コンテンツに対する操作としてもよい。また、端末装置10は、スマートデバイスのみならず、デスクトップPC(Personal Computer)やノートPC等の情報処理装置であってもよい。
サーバ装置100は、各ユーザUの端末装置10と連携し、各ユーザUの端末装置10に対して、各種アプリケーション(以下、アプリ)等に対するAPI(Application Programming Interface)サービス等と、各種データを提供する情報処理装置であり、コンピュータやクラウドシステム等により実現される。
また、サーバ装置100は、各ユーザUの端末装置10に対して、オンラインで何らかのWebサービスを提供する情報処理装置であってもよい。例えば、サーバ装置100は、Webサービスとして、インターネット接続、検索サービス、SNS(Social Networking Service)、電子商取引(EC:Electronic Commerce)、電子決済、オンラインゲーム、オンラインバンキング、オンライントレーディング、宿泊・チケット予約、動画・音楽配信、ニュース、地図、ルート検索、経路案内、路線情報、運行情報、天気予報等のサービスを提供してもよい。実際には、サーバ装置100は、上記のようなWebサービスを提供する各種サーバと連携し、Webサービスを仲介してもよいし、Webサービスの処理を担当してもよい。
なお、サーバ装置100は、ユーザUに関する利用者情報を取得可能である。例えば、サーバ装置100は、ユーザUの性別、年代、居住地域といったユーザUの属性に関する情報を取得する。そして、サーバ装置100は、ユーザUを示す識別情報(ユーザID等)とともにユーザUの属性に関する情報を記憶して管理する。
また、サーバ装置100は、ユーザUの端末装置10から、あるいはユーザID等に基づいて各種サーバ等から、ユーザUの行動を示す各種の履歴情報(ログデータ)を取得する。例えば、サーバ装置100は、ユーザUの位置や日時の履歴である位置履歴を端末装置10から取得する。また、サーバ装置100は、ユーザUが入力した検索クエリの履歴である検索履歴を検索サーバ(検索エンジン)から取得する。また、サーバ装置100は、ユーザUが閲覧したコンテンツの履歴である閲覧履歴をコンテンツサーバから取得する。また、サーバ装置100は、ユーザUの商品購入や決済処理の履歴である購入履歴(決済履歴)を電子商取引サーバや決済処理サーバから取得する。また、サーバ装置100は、ユーザUのマーケットプレイスへの出品の履歴である出品履歴や販売履歴を電子商取引サーバや決済処理サーバから取得してもよい。また、サーバ装置100は、ユーザUの投稿の履歴である投稿履歴を口コミの投稿サービスを提供する投稿サーバやSNSサーバから取得する。なお、上記の各種サーバ等は、サーバ装置100自体であってもよい。すなわち、サーバ装置100が上記の各種サーバ等として機能してもよい。
〔1-1.オブジェクト管理〕
本実施形態では、サーバ装置100は、FIDO(Fast Identity Online)認証を利用して、NFT化した実世界に存在するオブジェクト(object:物体、対象)を管理し、その所有者を証明する。FIDO認証では、認証器(Authenticator)と認証装置(FIDOサーバ)との間で(パスワードのような)秘密を共有しないので、フィッシングに対する耐性がある。
なお、認証器は、FIDOクライアントと同一のデバイスに実装されることがあってもよく(内蔵認証器)、FIDOクライアントとは物理的に異なるデバイスに実装されていてもよい(外部認証器)。
例えば、FIDO認証では、PIN(Personal Identification Number)、USB(Universal Serial Bus)セキュリティキー、スマートカードなどの記憶や所有物を用いた認証方式や、指紋、顔、虹彩、静脈、声紋などの生体情報や行動情報を用いた認証方式を実装できる。認証方式は、これらに限定されず、あらゆる方式を導入することができる。また、複数の認証方式を組み合わせて、マルチモーダル生体認証や多要素認証を実現することもできる。
従来、デジタルの世界では、ソフトウェアプログラムで、ある情報セット(オブジェクト)に唯一識別可能な識別子を割り当てて管理する。しかし、現実世界のオブジェクトでは上記のような手法がないため、唯一性を保証することができない。
そこで、実世界のオブジェクトに対して識別可能な識別子を生成して割り当て、オブジェクトに対する唯一の識別子を所定の情報(例:所有者)と関連づけるリンクアルゴリズムと、識別子が割り当てられたオブジェクトに対して、関連づけられた所定の情報が正規に関連づけられていることを検証する検証アルゴリスムを導入する。
例えば、図1に示すように、実世界のオブジェクトOBJのオーナ(所有者)であるユーザUは、NFT化した実世界に存在するオブジェクトOBJを所有しているとする。ユーザUは、アート作品であるオブジェクトOBJの鑑定人や著作者であってもよい。少なくとも、ユーザUは、オブジェクトOBJを一時的にでも所有・取得したことのある人物である。
NFT化した実世界に存在するオブジェクトOBJは、譲渡・流通可能である。NFT化したオブジェクトOBJを取得(購入)した新たな所有者は、当該オブジェクトOBJを販売(再販)、配布、ライセンス化する権利を行使できる。なお、オブジェクトOBJは、アート作品に限らず、ユーザUが製造又は所有する何らかの実世界の物体であってもよい。
本実施形態では、複数のサーバ装置100の各々について、その役割ごとに、サーバ装置100(100A)、サーバ装置100(100B)のように識別可能に表記する。なお、実際には、ハードウェア的に独立している場合に限らず、ソフトウェア的に独立していてもよい。例えば、同一の計算機が有する複数のサーバ機能であってもよい。
オブジェクト割り当て装置であるサーバ装置100(100A)は、オブジェクト識別子生成機能と、オブジェクト割り当て機能とを有する。また、オブジェクト検証装置であるサーバ装置100(100B)は、オブジェクト識別機能と、オブジェクト検証機能とを有する。
このとき、オブジェクト割り当て装置であるサーバ装置100(100A)は、オブジェクト識別子生成機能により、オブジェクトOBJに関連する外形やメタ情報や周辺コンテキストから検出可能な情報を用いて唯一の識別子情報(オブジェクト識別子(OID))を生成する。また、サーバ装置100(100A)は、オブジェクト割り当て機能により、上記オブジェクト識別子(OID)と、所有者であるユーザUを示すユーザ識別子(UID)とを紐づけて保管・管理する。
なお、オブジェクト割り当て装置であるサーバ装置100(100A)は、オブジェクトOBJの所有者(オーナー)が代わった場合には、オブジェクト割り当て機能により、オブジェクト識別子(OID)と、ユーザUを示すユーザ識別子(UID)との紐づけを解除して、上記オブジェクト識別子(OID)と、新たな所有者を示すユーザ識別子(UID)とを紐づけて保管・管理する。すなわち、オブジェクトOBJの所有者を示すユーザ識別子(UID)を更新する。あるいは、オブジェクトOBJの所有者の履歴を残すために、上記オブジェクト識別子(OID)と、最新の所有者を示すユーザ識別子(UID)とを紐づけて保管・管理するとともに、過去の所有者を示すユーザ識別子(UID)も紐づけて保管・管理してもよい。例えば、上記オブジェクト識別子(OID)に、これまでの所有者を示すユーザ識別子(UID)の一覧を含むリスト又は履歴情報(ログデータ)を紐づけて保管・管理してもよい。
また、オブジェクト検証装置であるサーバ装置100(100B)は、オブジェクト識別機能により、対象となるオブジェクトOBJからオブジェクト識別子(OID)を取得する。また、サーバ装置100(100B)は、オブジェクト検証機能により、オブジェクト識別子(OID)の該当情報を参照して、関連づけられたユーザ識別子(UID)を取得し、検証する。
〔1-2.オブジェクト識別〕
図2を参照して、オブジェクト識別方法について説明する。図2は、オブジェクト識別方法の概要を示す説明図である。
センサD(検出器)は、オブジェクトOBJに関する特定の特性情報を検出する。センサDは、端末装置10やその他のセンサ装置・検出装置等であってもよい。例えば、センサDは、オブジェクトOBJに関する特定の特性情報として、画像、動画、温度、加速度、テキスト情報、材質情報、匂い、コンテキスト情報などを抽出する。また、センサDは、オブジェクトOBJ自体に限らず、オブジェクトOBJの周囲のコンテキスト情報(空間、環境音など)を抽出してもよい。
なお、オブジェクトOBJに関する特定の特性情報は、なんらかのメディア情報を投げて、それに対するその反応(応答)として入手できるものであってもよい。例えば、光・赤外線やX線を当てることで得られるオブジェクトの形状や映像などであってもよい。また、自然言語(日本語)による音声の質問に対する返答内容などであってもよい。また、外面から判別可能な文字情報であってもよい。例えば、PC・端末装置・家電・AV機器等の製品なら表面に印字されるシリアル番号(シリアルID)などであってもよい。
また、オブジェクト識別するために適切な特定情報を測定するための方法や条件は、センサDに依存する。例えば、センサD(デバイス)の要件(仕様)に合わせて、オブジェクトOBJを測定してもよい。また、オブジェクトOBJに対して所定の方向(例:全方位、表・裏、3方向など)から光を当てることで、オブジェクトOBJを測定してもよい。あるいは、所定の規格の認定に合格したセンサD(デバイス)によって、測定の精度が保証された方法でオブジェクトOBJを測定してもよい。
サーバ装置100は、オブジェクトOBJを測定した複数のセンサDから得た多様な特性情報を集約し、特徴量分析を行う。このとき、サーバ装置100は、特性情報と特徴量の組をモデルに学習させ、このモデルに特性情報を入力して特徴量を推論してもよい。そして、サーバ装置100は、その特徴量に基づいて、オブジェクト識別子(OID)を生成する。また、サーバ装置100は、特徴量自体をオブジェクト識別子(OID)としてもよい。また、サーバ装置100は、その特徴量に基づいて、オブジェクト識別子(OID)を特定し、オブジェクト識別子(OID)に対応するオブジェクトOBJを特定することができる。
なお、サーバ装置100は、オブジェクト管理と検証には、ブロックチェーン(BC)などの情報管理方法を使用してもよい。また、サーバ装置100は、検証時にユーザUの本人認証(FIDO認証など)を実施してもよい。
〔1-3.FIDO認証+オブジェクト管理〕
本実施形態では、「FIDO認証+オブジェクト管理」の機能の実現に関して、以下の(1)~(4)の4つの実施例について説明する。なお、実際には、これらの例に限定されない。
(1)オブジェクト管理装置がオブジェクトを管理する。
第1の実施例では、認証装置とは別に、独立したオブジェクト管理装置を用意し、このオブジェクト管理装置がオブジェクトを管理する。図3は、オブジェクト管理装置がオブジェクトを管理する実施例の概要を示す説明図である。
例えば、図3に示すように、認証装置であるサーバ装置100(100C)は、ユーザUに対してユーザ識別子(UID)を事前に割り当てる。また、オブジェクト管理装置であるサーバ装置100(100A+100B)は、オブジェクトOBJに対してオブジェクト識別子(OID)を事前に割り当てる。
なお、オブジェクト管理装置であるサーバ装置100(100A+100B)は、上述したオブジェクト割り当て装置であるサーバ装置100(100A)と、オブジェクト検証装置であるサーバ装置100(100B)との両方の機能(オブジェクト管理機能)を有する。オブジェクト管理装置であるサーバ装置100(100A+100B)は、認証装置であるサーバ装置100(100C)と連携可能である。
認証器である端末装置10は、ユーザUがオブジェクトOBJを所有していることを登録する際、ユーザ検証機能により、ユーザUの生体情報やパスワード等のユーザ検証情報をユーザ検証モデルに入力してユーザを検証する。なお、ユーザ検証情報は、認証器に特化したセンサで検出してもよいし、ユーザUが入力してもよい。
例えば、端末装置10は、ユーザUから取得した生体情報に基づいて、ユーザ検証(User verification)を行う。生体情報は、指紋、静脈、顔、虹彩及び声紋等のいずれか又はこれらの組合せ等であってもよい。また、生体情報の代わりに、ジェスチャー等の所定の動きに関する行動情報を用いてもよい。なお、実際には、本人性を確認するための手段は生体認証に限定されるものではない。例えば、端末装置10は、ワンタイムパスワードを生成するトークンを用いた認証により本人性を確認してもよい。
次に、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、初回(未登録)のユーザ登録時には認証用鍵ペアを生成する。認証用鍵ペアは、認証用秘密鍵(Private Key)と認証用公開鍵(Public Key)との鍵ペアである。認証用秘密鍵と認証用公開鍵との間には暗号学的つながりがある。そして、端末装置10は、認証装置であるサーバ装置100(100C)に対してアテステーション(attestation:端末/認証器の証明)とともに認証用公開鍵を送付し、認証用公開鍵を共有する。ただし、認証器と認証装置は「秘密鍵」を共有しない。なお、上記ユーザ登録時の認証用鍵ペア生成手順については、既存のFIDO認証技術を利用してもよい。
また、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、登録済みのユーザ認証時には認証用秘密鍵でチャレンジ(Challenge)に署名し、FIDOアサーション(Assertion:本人性の認証証明)として/とともに署名付きチャレンジを認証装置であるサーバ装置100(100C)に送付する。チャレンジは、ユーザ認証要求時に認証装置であるサーバ装置100(100C)から受信した一度だけ有効なランダムな文字列であり、乱数を元に決めた毎回異なるデータ列である。なお、上記ユーザ認証時の署名手順については、既存のFIDO認証技術を利用してもよい。
認証装置であるサーバ装置100(100C)は、公開鍵暗号ベース認証機能により、認証器である端末装置10から認証用秘密鍵で署名された署名付きチャレンジを受けとると、認証用公開鍵を用いて署名を検証する。認証装置であるサーバ装置100(100C)は、署名の検証に成功した場合、管理しているユーザ識別子(UID)の中から、ユーザUを示すユーザ識別子(UID)を抽出する。なお、上記ユーザ識別子(UID)の抽出手順については、既存のFIDO認証技術を利用してもよい。そして、認証装置であるサーバ装置100(100C)は、抽出されたユーザ識別子(UID)をオブジェクト管理装置であるサーバ装置100(100A+100B)に通知する。
オブジェクト管理装置であるサーバ装置100(100A+100B)は、オブジェクト管理機能により、通知されたユーザ識別子(UID)とオブジェクト識別子(OID)とを紐づけ、ユーザUがオブジェクトOBJを所有していることを管理する。
なお、オブジェクト管理装置であるサーバ装置100(100A+100B)が管理するユーザ識別子(UID)と、認証装置であるサーバ装置100(100C)が管理するユーザ識別子(UID)とは、サーバ間で共通のユーザ識別子(UID)であってもよいし、互いに紐づけられたサーバごとに異なるユーザ識別子(UID)であってもよい。
(2)認証装置がオブジェクト管理機能を持つ。
第2の実施例では、認証装置がオブジェクト管理機能を持ち、この認証装置がオブジェクトを管理する。図4は、認証装置がオブジェクト管理機能を持つ実施例の概要を示す説明図である。
例えば、図4に示すように、認証装置にオブジェクト管理機能を持たせることで、図3で説明した上記のオブジェクト管理装置であるサーバ装置100(100A+100B)と、認証装置であるサーバ装置100(100C)とを一体化した認証装置であるサーバ装置100(100A+100B+100C)を実現する。そして、この認証装置であるサーバ装置100(100A+100B+100C)が、図3で説明した上記のオブジェクト管理装置であるサーバ装置100(100A+100B)と認証装置であるサーバ装置100(100C)との両方の処理を実行する。
ここでは、この認証装置であるサーバ装置100(100A+100B+100C)が、ユーザUに対してユーザ識別子(UID)を事前に割り当てるとともに、オブジェクト管理機能により、オブジェクトOBJに対してオブジェクト識別子(OID)を事前に割り当てる。
認証器である端末装置10は、ユーザUがオブジェクトOBJを所有していることを登録する際、ユーザ検証機能により、ユーザUの生体情報やパスワード等のユーザ検証情報をユーザ検証モデルに入力してユーザを検証する。なお、ユーザ検証情報は、認証器に特化したセンサで検出してもよいし、ユーザUが入力してもよい。
次に、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、初回(未登録)のユーザ登録時には認証用鍵ペアを生成する。そして、端末装置10は、認証装置であるサーバ装置100(100A+100B+100C)に対してアテステーションとともに認証用公開鍵を送付し、認証用公開鍵を共有する。ただし、認証器と認証装置は「秘密鍵」を共有しない。
また、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、登録済みのユーザ認証時には認証用秘密鍵でチャレンジに署名し、FIDOアサーションとして/とともに署名付きチャレンジを認証装置であるサーバ装置100(100A+100B+100C)に送付する。
認証装置であるサーバ装置100(100A+100B+100C)は、公開鍵暗号ベース認証機能により、認証器である端末装置10から認証用秘密鍵で署名された署名付きチャレンジを受けとると、認証用公開鍵を用いて署名を検証する。認証装置であるサーバ装置100(100A+100B+100C)は、署名の検証に成功した場合、管理しているユーザ識別子(UID)の中から、ユーザUを示すユーザ識別子(UID)を抽出する。
認証装置であるサーバ装置100(100A+100B+100C)は、オブジェクト管理機能により、抽出されたユーザ識別子(UID)とオブジェクト識別子(OID)とを紐づけ、ユーザUがオブジェクトOBJを所有していることを管理する。
(3)認証とオブジェクト所有証明の両方を併せ持つ鍵ペアを生成する。
第3の実施例では、認証器である端末装置が認証用とオブジェクト所有証明の両方の用途に用いられる鍵ペアを生成する。この鍵ペアで認証するとオブジェクト所有証明したことにもなる。図5は、認証とオブジェクト所有証明の両方を併せ持つ鍵ペアを生成する実施例の概要を示す説明図である。
ユーザ識別子(UID)及びオブジェクト識別子(OID)の事前割り当てについては、図4と同様であり、説明を割愛する。
例えば、図5に示すように、認証器である端末装置10は、ユーザUがオブジェクトOBJを所有していることを登録する際、ユーザ検証機能により、ユーザUの生体情報やパスワード等のユーザ検証情報をユーザ検証モデルに入力してユーザを検証する。なお、ユーザ検証情報は、認証器に特化したセンサで検出してもよいし、ユーザUが入力してもよい。
さらに、認証器である端末装置10は、例えば入力を促すダイアログで「オブジェクトOBJを所有していること」を確認する。あるいは、実際にセンサ等を介してユーザUの手元にオブジェクトOBJが存在していることを確認してもよい。認証器である端末装置10は、「ユーザUがオブジェクトOBJを所有していること」を確認できない場合には、以降の処理を行わない。すなわち、認証器である端末装置10は、「ユーザUがオブジェクトOBJを所有していること」を確認できた場合にのみ、上記の認証用鍵ペアを作成することで、以降の認証とオブジェクト所有証明の両方を併せ持つ鍵ペアを作成する処理を行う。
次に、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、初回(未登録)のユーザ登録時には認証・OBJ所有証明用鍵ペアを生成する。認証・OBJ所有証明用鍵ペアは、認証とオブジェクト所有証明の両方を併せ持つ鍵ペアである。そして、端末装置10は、認証装置であるサーバ装置100(100A+100B+100C)に対してアテステーションとともに認証・OBJ所有証明用公開鍵を送付し、認証・OBJ所有証明用公開鍵を共有する。ただし、認証器と認証装置は「秘密鍵」を共有しない。
なお、認証器である端末装置10は、ユーザ識別子(UID)とオブジェクト識別子(OID)とに基づいて、認証・OBJ所有証明用鍵ペアを生成してもよい。あるいは、認証器である端末装置10は、オブジェクトOBJのセンシング情報に基づいて、認証・OBJ所有証明用鍵ペアを生成してもよい。
また、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、登録済みのユーザ認証時には認証・OBJ所有証明用秘密鍵でチャレンジに署名し、FIDOアサーションとして/とともに署名付きチャレンジを認証装置であるサーバ装置100(100A+100B+100C)に送付する。
認証装置であるサーバ装置100(100A+100B+100C)は、公開鍵暗号ベース認証機能により、認証器である端末装置10から認証・OBJ所有証明用秘密鍵で署名された署名付きチャレンジを受けとると、認証・OBJ所有証明用公開鍵を用いて署名を検証する。認証装置であるサーバ装置100(100A+100B+100C)は、署名の検証に成功した場合、管理しているユーザ識別子(UID)の中から、ユーザUを示すユーザ識別子(UID)を抽出する。
認証装置であるサーバ装置100(100A+100B+100C)は、オブジェクト管理機能により、抽出されたユーザ識別子(UID)とオブジェクト識別子(OID)とを紐づけ、ユーザUがオブジェクトOBJを所有していることを管理する。
ここでは、図4と同様に、認証装置がオブジェクト管理機能を持ち、この認証装置がオブジェクトを管理する場合を例に説明しているが、実際には、図3と同様に、認証装置とオブジェクト管理装置とが独立していてもよい。
(4)認証用とオブジェクト所有証明用とで独立した鍵を生成する。
第4の実施例では、認証器である端末装置が認証用の鍵ペアとオブジェクト所有証明用の鍵ペアとを別々に生成する。ただし、認証用鍵ペアとオブジェクト所有証明用鍵ペアとの両者を関連づける。オブジェクト所有証明用秘密鍵へのアクセスには、認証用秘密鍵へのアクセスが可能であることが前提となる。このとき、OBJ所有証明をうながされると、認証がうながされ、認証に成功すると、OBJ所有用秘密鍵にアクセスできる。図6は、認証用とオブジェクト所有証明用とで独立した鍵を生成する実施例の概要を示す説明図である。
ユーザ識別子(UID)及びオブジェクト識別子(OID)の事前割り当てについては、図4と同様であり、説明を割愛する。
例えば、図6に示すように、認証器である端末装置10は、ユーザUがオブジェクトOBJを所有していることを登録する際、ユーザ検証機能により、ユーザUの生体情報やパスワード等のユーザ検証情報をユーザ検証モデルに入力してユーザを検証する。なお、ユーザ検証情報は、認証器に特化したセンサで検出してもよいし、ユーザUが入力してもよい。
さらに、認証器である端末装置10は、例えば入力を促すダイアログで「オブジェクトOBJを所有していること」を確認する。あるいは、実際にセンサ等を介してユーザUの手元にオブジェクトOBJが存在していることを確認してもよい。認証器である端末装置10は、「ユーザUがオブジェクトOBJを所有していること」を確認できない場合には、以降の処理を行わない。
次に、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、初回(未登録)のユーザ登録時には認証用鍵ペアとともに、オブジェクト所有証明の用途を持つOBJ所有証明用鍵ペアを生成する。そして、端末装置10は、認証装置であるサーバ装置100(100A+100B+100C)に対してアテステーションとともに認証用公開鍵及びOBJ所有証明用公開鍵を送付し、認証用公開鍵及びOBJ所有証明用公開鍵を共有する。ただし、認証器と認証装置は「秘密鍵」を共有しない。
また、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、登録済みのユーザ認証時には、認証用秘密鍵でチャレンジに署名し、同様にOBJ所有証明用秘密鍵でチャレンジに署名し、それぞれの署名付きチャレンジを認証装置であるサーバ装置100(100A+100B+100C)に送付する。
認証装置であるサーバ装置100(100A+100B+100C)は、公開鍵暗号ベース認証機能により、認証器である端末装置10から認証用秘密鍵で署名された署名付きチャレンジを受けとると、認証用公開鍵を用いて署名を検証する。認証装置であるサーバ装置100(100A+100B+100C)は、署名の検証に成功した場合、管理しているユーザ識別子(UID)の中から、ユーザUを示すユーザ識別子(UID)を抽出する。
また、認証装置であるサーバ装置100(100A+100B+100C)は、オブジェクト管理機能により、認証器である端末装置10からOBJ所有証明用秘密鍵で署名された署名付きチャレンジを受けとると、OBJ所有証明用公開鍵を用いて署名を検証する。認証装置であるサーバ装置100(100A+100B+100C)は、署名の検証に成功した場合、管理しているオブジェクト識別子(OID)の中から、ユーザUが所有するオブジェクトOBJを示すオブジェクト識別子(OID)を抽出する。
そして、認証装置であるサーバ装置100(100A+100B+100C)は、オブジェクト管理機能により、抽出されたユーザ識別子(UID)とオブジェクト識別子(OID)とを紐づけ、ユーザUがオブジェクトOBJを所有していることを管理する。
なお、上記の説明では、認証器である端末装置10は、認証用秘密鍵とOBJ所有証明用秘密鍵とを別々に用いて、秘密鍵ごとにそれぞれ個別にチャレンジに署名しているが、実際には、同時に用いて同一のチャレンジに署名してもよい。例えば、認証器である端末装置10は、先に認証用秘密鍵を用いてチャレンジに署名した後、続けてOBJ所有証明用秘密を用いてその認証用秘密鍵での署名付きチャレンジに重ねて署名してもよい。認証装置であるサーバ装置100(100A+100B+100C)は、認証器である端末装置10からこの署名付きチャレンジを受けとると、先にOBJ所有証明用公開を用いて署名を検証し、続けて認証用公開鍵を用いて署名を検証してもよい。
また、ここでは、図4と同様に、認証装置がオブジェクト管理機能を持ち、この認証装置がオブジェクトを管理する場合を例に説明しているが、実際には、図3と同様に、認証装置とオブジェクト管理装置とが独立していてもよい。
〔1-4.FIDO認証のブロックチェーン応用〕
さらに、本実施形態では、ブロックチェーン技術を応用し、FIDO認証をブロックチェーン化することも可能である。例えば、FIDO公開鍵を分散台帳装置が管理する。分散台帳装置は、ネットワークを構成する各ノードが同じ台帳を管理/共有することができる分散型台帳技術(DLT:Distributed Ledger Technology)に対応したサーバ装置である。分散台帳装置は、このネットワークを構成するノードの1つであってもよい。
すなわち、FIDO認証の認証用公開鍵をブロックチェーン(BC)で管理する。ブロックチェーンのブロックにハッシュが入るので、公開鍵が改ざんされていないかを認証できる。また、公開鍵の適切性を検証してから、認証を行うことができる。図7は、分散台帳装置が認証用公開鍵を管理する実施例の概要を示す説明図である。
例えば、図7に示すように、認証装置とは別に、ブロックチェーンに対応したネットワークを構成する分散台帳装置がFIDO認証のための認証用公開鍵を管理する。まず、認証装置であるサーバ装置100(100C)は、ユーザUに対してユーザ識別子(UID)を事前に割り当てる。そして、認証装置であるサーバ装置100(100C)は、FIDO登録要求時に、分散台帳にて公開鍵を保存するということを意図して、要求メッセージを投げる。
認証器である端末装置10は、ユーザ検証機能により、ユーザUの生体情報やパスワード等のユーザ検証情報をユーザ検証モデルに入力してユーザを検証する。なお、ユーザ検証情報は、認証器に特化したセンサで検出してもよいし、ユーザUが入力してもよい。
次に、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、初回(未登録)のユーザ登録時には認証用鍵ペアを生成する。認証用秘密鍵と認証用公開鍵との間には暗号学的つながりがある。なお、上記ユーザ登録時の認証用鍵ペア生成手順については、既存のFIDO認証技術を利用してもよい。
そして、端末装置10は、ユーザ管理用の分散台帳装置であるサーバ装置100(100D)に対してアテステーション(attestation:端末/認証器の証明)とともに認証用公開鍵と、認証装置であるサーバ装置100(100C)を識別するための認証装置識別子(認証装置ID)とを送付し、認証用公開鍵を共有する。ただし、認証器と分散台帳装置は「秘密鍵」を共有しない。ここで、認証装置識別子(認証装置ID)は、認証用公開鍵に含まれていてもよいし、認証用公開鍵に紐づけられていてもよい。
なお、ユーザ管理用の分散台帳装置であるサーバ装置100(100D)は、複数であってもよい。例えば、ユーザ管理用の分散台帳装置であるサーバ装置100(100D)は、ブロックチェーンに対応したネットワークを構成するノードの数だけ存在してもよい。
また、認証器である端末装置10又はユーザ管理用の分散台帳装置であるサーバ装置100(100D)は、ユーザUを示すユーザ識別子(UID)と、ブロックチェーン上(ブロックチェーンに対応したネットワーク上)での認証用公開鍵の所在(参照位置)を示す情報であるBC公開鍵参照先(DID)とを認証装置であるサーバ装置100(100C)に通知する。そして、認証装置であるサーバ装置100(100C)は、ユーザ識別子(UID)と、BC公開鍵参照先(DID)とを紐づけて保管・管理する。
また、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、登録済みのユーザ認証時には認証用秘密鍵でチャレンジ(Challenge)に署名し、FIDOアサーションとして/とともに署名付きチャレンジを認証装置であるサーバ装置100(100C)に送付する。なお、上記ユーザ認証時の署名手順については、既存のFIDO認証技術を利用してもよい。
認証装置であるサーバ装置100(100C)は、公開鍵暗号ベース認証機能により、認証器である端末装置10から認証用秘密鍵で署名された署名付きチャレンジを受けとると、ユーザUに事前割り当てされたユーザ識別子(UID)に紐づけられたBC公開鍵参照先(DID)に基づいて、ユーザ管理用の分散台帳装置であるサーバ装置100(100D)に保管されている認証用公開鍵を参照し、この認証用公開鍵を用いて署名を検証する。認証装置であるサーバ装置100(100C)は、署名の検証に成功した場合、ユーザUが正規に認証された(ユーザUが本人である)と認める。
〔1-5.FIDO認証とオブジェクト管理のブロックチェーン化〕
本実施形態では、「FIDO認証とオブジェクト管理のブロックチェーン化」の機能の実現に関して、以下の(1)~(2)の2つの実施例について説明する。なお、実際には、これらの例に限定されない。
(1)認証用公開鍵とOBJ所有証明用公開鍵とをともに分散台帳装置が管理する。
この実施例では、認証用公開鍵とOBJ所有証明用公開鍵と(OID)をともに分散台帳装置が管理する。分散台帳装置は認証用公開鍵とOBJ所有証明用公開鍵と(OID)とを別々に管理する。図8は、認証用公開鍵とOBJ所有証明用公開鍵とをともに分散台帳装置が管理する実施例の概要を示す説明図である。
ユーザ識別子(UID)及びオブジェクト識別子(OID)の事前割り当てについては、図4と同様であり、説明を割愛する。
例えば、図8に示すように、FIDO認証の認証用公開鍵を管理するユーザ管理用の分散台帳装置と、オブジェクト識別子(OID)を管理するオブジェクト管理用の分散台帳装置とをそれぞれ用意する。これらの分散台帳装置は互いに連携可能である。なお、実際には、これらの分散台帳装置は同一のサーバ装置であってもよい。
認証器である端末装置10は、ユーザUがオブジェクトOBJを所有していることを登録する際、ユーザ検証機能により、ユーザUの生体情報やパスワード等のユーザ検証情報をユーザ検証モデルに入力してユーザを検証する。なお、ユーザ検証情報は、認証器に特化したセンサで検出してもよいし、ユーザUが入力してもよい。
さらに、認証器である端末装置10は、例えば入力を促すダイアログで「オブジェクトOBJを所有していること」を確認する。あるいは、実際にセンサ等を介してユーザUの手元にオブジェクトOBJが存在していることを確認してもよい。認証器である端末装置10は、「ユーザUがオブジェクトOBJを所有していること」を確認できない場合には、以降の処理を行わない。
次に、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、初回(未登録)のユーザ登録時には認証用鍵ペアとともに、オブジェクト所有証明の用途を持つOBJ所有証明用鍵ペアを生成する。すなわち、認証器である端末装置10は、ユーザ認証して初めてOBJ所有証明用鍵ペアを生成する。
そして、認証器である端末装置10は、ユーザ管理用の分散台帳装置であるサーバ装置100(100D)に対してアテステーションとともに認証用公開鍵を送付し、認証用公開鍵を共有する。ただし、認証器と分散台帳装置は「秘密鍵」を共有しない。ユーザ管理用の分散台帳装置であるサーバ装置100(100D)は、ブロックチェーンで認証用公開鍵を管理する。
このとき、認証器である端末装置10又はユーザ管理用の分散台帳装置であるサーバ装置100(100D)は、ユーザUを示すユーザ識別子(UID)と、ブロックチェーン上での認証用公開鍵の所在(参照位置)を示す情報であるBC公開鍵参照先(DID)とを認証装置であるサーバ装置100(100C)に通知する。そして、認証装置であるサーバ装置100(100C)は、ユーザ識別子(UID)と、BC公開鍵参照先(DID)とを紐づけて保管・管理する。
また、認証器である端末装置10は、オブジェクト管理用の分散台帳装置であるサーバ装置100(100E)に対してアテステーションとともにOBJ所有証明用公開鍵を送付し、OBJ所有証明用公開鍵を共有する。ただし、認証器と分散台帳装置は「秘密鍵」を共有しない。オブジェクト管理用の分散台帳装置であるサーバ装置100(100E)は、ブロックチェーンでOBJ所有証明用公開鍵を管理する。
このとき、認証器である端末装置10又はユーザ管理用の分散台帳装置であるサーバ装置100(100D)は、ユーザUを示すオブジェクト識別子(OID)と、ブロックチェーン上での認証用公開鍵の所在を示す情報であるBC公開鍵参照先(DID)とをオブジェクト管理装置であるサーバ装置100(100A+100B)に通知する。そして、オブジェクト管理装置であるサーバ装置100(100A+100B)は、オブジェクト識別子(OID)と、BC公開鍵参照先(DID)とを紐づけて保管・管理する。
また、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、登録済みのユーザ認証時には、認証用秘密鍵でチャレンジに署名し、FIDOアサーションとして/とともに署名付きチャレンジを認証装置であるサーバ装置100(100C)に送付する。
同様に、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、登録済みのユーザ認証時には、OBJ所有証明用秘密鍵でチャレンジに署名し、FIDOアサーションとして/とともに署名付きチャレンジをオブジェクト管理装置であるサーバ装置100(100A+100B)に送付する。
認証装置であるサーバ装置100(100C)は、公開鍵暗号ベース認証機能により、認証器である端末装置10から認証用秘密鍵で署名された署名付きチャレンジを受けとると、ユーザUに事前割り当てされたユーザ識別子(UID)に紐づけられたBC公開鍵参照先(DID)に基づいて、ユーザ管理用の分散台帳装置であるサーバ装置100(100D)に保管されている認証用公開鍵を参照し、この認証用公開鍵を用いて署名を検証する。認証装置であるサーバ装置100(100C)は、署名の検証に成功した場合、ユーザUが正規に認証された(ユーザUが本人である)と認める。そして、認証装置であるサーバ装置100(100C)は、オブジェクト管理装置であるサーバ装置100(100A+100B)に、正規に認証された(本人であると認められた)ユーザUを示すユーザ識別子(UID)を通知する。
オブジェクト管理装置であるサーバ装置100(100A+100B)は、オブジェクト管理機能により、認証器である端末装置10からOBJ所有証明用秘密鍵で署名された署名付きチャレンジを受けとると、オブジェクトOBJに事前割り当てされたオブジェクト識別子(OID)に紐づけられたBC公開鍵参照先(DID)に基づいて、オブジェクト管理用の分散台帳装置であるサーバ装置100(100D)に保管されている認証用公開鍵を参照し、このOBJ所有証明用公開鍵を用いて署名を検証する。オブジェクト管理装置であるサーバ装置100(100A+100B)は、署名の検証に成功した場合、オブジェクト管理機能により、認証装置であるサーバ装置100(100C)から通知されたユーザ識別子(UID)とオブジェクト識別子(OID)とを紐づけ、ユーザUがオブジェクトOBJを所有していることを管理する。
(2)認証とオブジェクト所有証明の両方を併せ持つ鍵ペアを生成し、公開鍵をブロックチェーンで管理する。
この実施例では、認証とオブジェクト所有証明の両方を併せ持つ鍵ペアを生成し、公開鍵をブロックチェーンで管理する。認証するとオブジェクト所有証明したことにもなる。図9は、認証とオブジェクト所有証明の両方を併せ持つ鍵ペアを生成し、公開鍵をブロックチェーンで管理する実施例の概要を示す説明図である。
ユーザ識別子(UID)及びオブジェクト識別子(OID)の事前割り当てについては、図4と同様であり、説明を割愛する。
例えば、図9に示すように、認証器である端末装置10は、ユーザUがオブジェクトOBJを所有していることを登録する際、ユーザ検証機能により、ユーザUの生体情報やパスワード等のユーザ検証情報をユーザ検証モデルに入力してユーザを検証する。なお、ユーザ検証情報は、認証器に特化したセンサで検出してもよいし、ユーザUが入力してもよい。
さらに、認証器である端末装置10は、例えば入力を促すダイアログで「オブジェクトOBJを所有していること」を確認する。あるいは、実際にセンサ等を介してユーザUの手元にオブジェクトOBJが存在していることを確認してもよい。認証器である端末装置10は、「ユーザUがオブジェクトOBJを所有していること」を確認できない場合には、以降の処理を行わない。
次に、認証器である端末装置10は、図5と同様に、ユーザ検証の結果、本人性を確認した場合、初回(未登録)のユーザ登録時には認証・OBJ所有証明用鍵ペアを生成する。認証・OBJ所有証明用鍵ペアは、認証とオブジェクト所有証明の両方を併せ持つ鍵ペアである。そして、端末装置10は、分散台帳装置であるサーバ装置100(100D+100E)に対してアテステーションとともに認証・OBJ所有証明用公開鍵を送付し、認証・OBJ所有証明用公開鍵を共有する。ただし、認証器と認証装置は「秘密鍵」を共有しない。なお、サーバ装置100(100D+100E)は、図8に示したユーザ管理用の分散台帳装置と、オブジェクト管理用の分散台帳装置との両方の機能を併せ持つ分散台帳装置である。
なお、認証器である端末装置10は、ユーザ識別子(UID)とオブジェクト識別子(OID)とに基づいて、認証・OBJ所有証明用鍵ペアを生成してもよい。あるいは、認証器である端末装置10は、オブジェクトOBJのセンシング情報に基づいて、認証・OBJ所有証明用鍵ペアを生成してもよい。
また、認証器である端末装置10は、ユーザ検証の結果、本人性を確認した場合、登録済みのユーザ認証時には認証・OBJ所有証明用秘密鍵でチャレンジに署名し、FIDOアサーションとして/とともに署名付きチャレンジを認証装置であるサーバ装置100(100A+100B+100C)に送付する。
認証装置であるサーバ装置100(100A+100B+100C)は、公開鍵暗号ベース認証機能により、認証器である端末装置10から認証・OBJ所有証明用秘密鍵で署名された署名付きチャレンジを受けとると、認証・OBJ所有証明用公開鍵を用いて署名を検証する。認証装置であるサーバ装置100(100A+100B+100C)は、署名の検証に成功した場合、ユーザUが正規に認証された(ユーザUが本人である)と認める。そして、ユーザ識別子(UID)とオブジェクト識別子(OID)とを紐づけ、ユーザUがオブジェクトOBJを所有していることを管理する。
〔1-6.FIDO認証の妥当性の検証〕
FIDOサーバは仕様書を読めば誰でも実装が可能であるが、個々人がそれぞれFIDO認定を取るのは大変である。例えば、コスト(人、リソースなど)の問題がある。また、WebAuthnも機能を拡張したLevel3が準備中であり、最新の仕様に追随するのも容易ではない。
また、後になって当時の認証が妥当であったことを検証することは難しい。例えば、認定されていない独自実装のFIDOサーバを設置しても認証は可能であるが、認証時の検証不足を理由に責任を問われる可能性があり、これを避けたい。また、逆に問題追求時に認証事業者が自身に都合の良いように当時のログを改ざんしてしまう可能性もある。
そこで、本実施形態では、認証結果情報(FIDOアサーション)と認証用公開鍵をブロックチェーン(BC)に保存し、例えば認定済みのFIDOサーバの機能を使って検証するサービスを提供する。FIDOサーバは現状自ドメインあての認証アサーションを検証するが、公開鍵とアサーションを取り出して検証する。
すなわち、本実施形態では、FIDO認証を行ったFIDOサーバは、FIDO認証の履歴をブロックチェーンに登録する。また、このFIDOサーバが、ユーザから認証の適切性の問い合わせを受け付けた場合は、信用できる認定済みのFIDOサーバに対して、ブロックチェーンに登録された履歴を用いた認証の適切性判定要求を送信する。
(1)FIDO認証の妥当性を検証するための第1の手順
図10は、FIDO認証の妥当性を検証するための第1の手順を示すシーケンス図である。
例えば、図10に示すように、認証器である端末装置10は、ユーザUの操作に応じて、ネットワークN(図12参照)を介して独自のFIDOサーバであるサーバ装置100(100C)に認証要求を送信する(ステップS1)。
なお、独自のFIDOサーバは、上記のオブジェクト管理装置であるサーバ装置100(100A+100B)と、認証装置であるサーバ装置100(100C)とを一体化したサーバ装置100(100A+100B+100C)であってもよい。また、独自のFIDOサーバは、FIDO認定を受けていないサーバ装置であってもよい。
独自のFIDOサーバであるサーバ装置100(100C)は、認証要求に応じてユーザUに対するFIDO認証を実施するため、ネットワークN(図12参照)を介して認証器である端末装置10に対してチャレンジを送付する(ステップS2)。
認証器である端末装置10は、独自のFIDOサーバであるサーバ装置100(100C)からチャレンジを受け取るとユーザ検証を行い、ユーザ検証の結果、本人性を確認した場合、認証用秘密鍵でチャレンジに署名し、FIDOアサーション(Assertion:本人性の認証証明)として/とともに署名付きチャレンジを独自のFIDOサーバであるサーバ装置100(100C)に送付する(ステップS3)。
独自のFIDOサーバであるサーバ装置100(100C)は、認証器である端末装置10からネットワークN(図12参照)を介して認証用秘密鍵で署名された署名付きチャレンジを受けとると、公開鍵暗号ベース認証機能により、認証用公開鍵を用いて署名を検証する(ステップS4)。
独自のFIDOサーバであるサーバ装置100(100C)は、署名の検証に成功した場合、ユーザUが正規に認証された(ユーザUが本人である)と認め、ネットワークN(図12参照)を介して認証器である端末装置10に対して認証OKの旨を伝える(ステップS5)。
また、独自のFIDOサーバであるサーバ装置100(100C)は、署名の検証に成功した場合、ネットワークN(図12参照)を介してBCや公開ストレージなどのサーバ装置100(100D)にアサーションと公開鍵とを紐づけて登録する(ステップS6A)。
なお、BCや公開ストレージなどのサーバ装置100(100D)は、図9に示したユーザ管理用の分散台帳装置とオブジェクト管理用の分散台帳装置との両方の機能を併せ持つ分散台帳装置であるサーバ装置100(100D+100E)であってもよい。
そして、FIDOサーバを使用するサービス等でインシデント(incident)が発生した場合、認証器である端末装置10は、独自のFIDOサーバであるサーバ装置100(100C)に対して、認証の適切性を問い合わせる(ステップS7A)。
独自のFIDOサーバであるサーバ装置100(100C)は、ネットワークN(図12参照)を介して、認定済みFIDOサーバであるサーバ装置100(100F)に対して、認証の適切性の検証を依頼し、アサーションを送付する(ステップS8A)。
このとき、認定済みFIDOサーバであるサーバ装置100(100F)は、ネットワークN(図12参照)を介して、独自のFIDOサーバであるサーバ装置100(100C)から、認証の適切性の検証依頼と、アサーションとを取得する。あるいは、認定済みFIDOサーバであるサーバ装置100(100F)は、独自のFIDOサーバであるサーバ装置100(100C)から認証の適切性の検証依頼を受けた際に、BCや公開ストレージなどのサーバ装置100(100D)に登録されているアサーションの中から、認証当時のアサーションを取得する。
認定済みFIDOサーバは、信用できる外部の認定済みFIDOサーバであると好ましい。例えば、認定済みFIDOサーバは、上記の独自のFIDOサーバとは別に、信用できる(又は信頼のおける)他の事業者など外部の機関や組織により管理され、かつFIDO認定を受けているサーバ装置である。なお、認証当時の認証ポリシーなども含め、認定済みFIDOサーバはユーザUや公的機関が指定してもよい。
認定済みFIDOサーバであるサーバ装置100(100F)は、独自のFIDOサーバであるサーバ装置100(100C)からの認証の適切性の検証依頼に応じて、認証当時のアサーションを検証する(ステップS9A)。
このとき、1事業者に頼むだけでなく複数事業者がアサーションを検証してもよい。すなわち、認定済みFIDOサーバであるサーバ装置100(100F)は、1台に限らず、複数台でもよい。例えば、複数事業者が多数決などによりアサーションの検証の成否を決定してもよい。このとき、複数の認定済みFIDOサーバによるアサーションの検証結果を集計し、集計結果に基づいてアサーションの検証の成否を判定してもよい。
認定済みFIDOサーバであるサーバ装置100(100F)は、ネットワークN(図12参照)を介して独自のFIDOサーバであるサーバ装置100(100C)に、認証の適切性の検証結果を通知する(ステップS10A)。このとき、独自のFIDOサーバであるサーバ装置100(100C)は、認証の適切性の問い合わせを行ったユーザUの端末装置10に、認証の適切性の検証結果を通知する。あるいは、認定済みFIDOサーバであるサーバ装置100(100F)が、直接、認証の適切性の問い合わせを行ったユーザUの端末装置10に、認証の適切性の検証結果を通知してもよい。
(2)FIDO認証の妥当性を検証するための第2の手順
図11は、FIDO認証の妥当性を検証するための第2の手順を示すシーケンス図である。ステップS5までは図10と同様である。
例えば、図11に示すように、認証器である端末装置10は、ユーザUの操作に応じて、ネットワークN(図12参照)を介して独自のFIDOサーバであるサーバ装置100(100C)に認証要求を送信する(ステップS1)。
独自のFIDOサーバであるサーバ装置100(100C)は、認証要求に応じてユーザUに対するFIDO認証を実施するため、ネットワークN(図12参照)を介して認証器である端末装置10に対してチャレンジを送付する(ステップS2)。
認証器である端末装置10は、独自のFIDOサーバであるサーバ装置100(100C)からチャレンジを受け取るとユーザ検証を行い、ユーザ検証の結果、本人性を確認した場合、認証用秘密鍵でチャレンジに署名し、FIDOアサーション(Assertion:本人性の認証証明)として/とともに署名付きチャレンジを独自のFIDOサーバであるサーバ装置100(100C)に送付する(ステップS3)。
独自のFIDOサーバであるサーバ装置100(100C)は、認証器である端末装置10からネットワークN(図12参照)を介して認証用秘密鍵で署名された署名付きチャレンジを受けとると、公開鍵暗号ベース認証機能により、認証用公開鍵を用いて署名を検証する(ステップS4)。
独自のFIDOサーバであるサーバ装置100(100C)は、署名の検証に成功した場合、ユーザUが正規に認証された(ユーザUが本人である)と認め、ネットワークN(図12参照)を介して認証器である端末装置10に対して認証OKの旨を伝える(ステップS5)。
また、独自のFIDOサーバであるサーバ装置100(100C)は、署名の検証に成功した場合、ネットワークN(図12参照)を介してBCや公開ストレージなどのサーバ装置100(100D)に、アサーションと公開鍵とともに、認証を実施した時間(日時)を示す認証実施時間を紐づけて登録する(ステップS6B)。
そして、FIDOサーバを使用するサービス等でインシデント(incident)が発生した場合、認証器である端末装置10は、認定済みFIDOサーバであるサーバ装置100(100F)に対して、認証の適切性を問い合わせる(ステップS7B)。
例えば、認証器である端末装置10は、認定済みFIDOサーバであるサーバ装置100(100F)に対して、「example.comの1月1日の認証に問題はなかったのか?」といった旨の問い合わせを送付する。なお、認証器から認定済みFIDOサーバに対する認証の適切性の問い合わせは、例えば独自のFIDOサーバのWebフォームなどから実施できるほうが自然である。
このとき、認証器である端末装置10は、認定済みFIDOサーバであるサーバ装置100(100F)に対して、「ユーザ識別子(UID)+日付(認証実施時間)」などアサーション特定情報を送付する。
認定済みFIDOサーバであるサーバ装置100(100F)は、ネットワークN(図12参照)を介して、BCや公開ストレージなどのサーバ装置100(100D)に登録されているアサーションから、該当するアサーションを引き当てる(ステップS8B)。
例えば、認定済みFIDOサーバであるサーバ装置100(100F)は、「ユーザ識別子(UID)+日付(認証実施時間)」などアサーション特定情報に基づいて、BCや公開ストレージなどのサーバ装置100(100D)に登録されているアサーションから、該当するアサーションを抽出する。
認定済みFIDOサーバであるサーバ装置100(100F)は、認証器である端末装置10からの認証の適切性の問い合わせに応じて、認証当時のアサーションを検証する(ステップS9B)。
認定済みFIDOサーバであるサーバ装置100(100F)は、ネットワークN(図12参照)を介して独自のFIDOサーバであるサーバ装置100(100C)に、認証の適切性の検証結果を通知する(ステップS10B)。
以上のように、本実施形態によれば、事前にユーザのアカウントを保有していない事業者でもユーザを認証し、NFT化した実世界のオブジェクトの所有権を管理することができる。また、認証用公開鍵をブロックチェーンで分散管理している場合、アカウントを保有していないユーザの公開鍵にアクセスできる。
また、実世界のオブジェクトの保有者や権利者など唯一性を保障することができる。また、オブジェクトに改めて、検証可能なものを埋め込んだり、変形させたりする必要がない。
〔2.情報処理システムの構成例〕
次に、図12を用いて、実施形態に係るサーバ装置100が含まれる情報処理システム1の構成について説明する。図12は、実施形態に係る情報処理システム1の構成例を示す図である。図12に示すように、実施形態に係る情報処理システム1は、端末装置10とサーバ装置100とを含む。これらの各種装置は、ネットワークNを介して、有線又は無線により通信可能に接続される。ネットワークNは、例えば、LAN(Local Area Network)や、インターネット等のWAN(Wide Area Network)である。
また、図12に示す情報処理システム1に含まれる各装置の数は図示したものに限られない。例えば、図12では、図示の簡略化のため、端末装置10を1台のみ示したが、これはあくまでも例示であって限定されるものではなく、2台以上であってもよい。
端末装置10は、ユーザUによって使用される情報処理装置である。例えば、端末装置10は、スマートフォンやタブレット端末等のスマートデバイス、フィーチャーフォン、PC(Personal Computer)、PDA(Personal Digital Assistant)、通信機能を備えたゲーム機やAV機器、カーナビゲーションシステム、スマートウォッチやヘッドマウントディスプレイ等のウェアラブルデバイス(Wearable Device)、スマートグラス等である。
また、かかる端末装置10は、LTE(Long Term Evolution)、4G(4th Generation)、5G(5th Generation:第5世代移動通信システム)等の無線通信網や、Bluetooth(登録商標)、無線LAN(Local Area Network)等の近距離無線通信を介してネットワークNに接続し、サーバ装置100と通信することができる。
サーバ装置100は、例えばPCやブレードサーバ(blade server)等のコンピュータ、あるいはメインフレーム又はワークステーション等である。なお、サーバ装置100は、クラウドコンピューティングにより実現されてもよい。
〔3.端末装置の構成例〕
次に、図13を用いて、端末装置10の構成について説明する。図13は、端末装置10の構成例を示す図である。図13に示すように、端末装置10は、通信部11と、表示部12と、入力部13と、測位部14と、センサ部20と、制御部30(コントローラ)と、記憶部40とを備える。
(通信部11)
通信部11は、ネットワークN(図12参照)と有線又は無線で接続され、ネットワークNを介して、サーバ装置100との間で情報の送受信を行う。例えば、通信部11は、NIC(Network Interface Card)やアンテナ等によって実現される。
(表示部12)
表示部12は、位置情報等の各種情報を表示する表示デバイスである。例えば、表示部12は、液晶ディスプレイ(LCD:Liquid Crystal Display)や有機ELディスプレイ(Organic Electro-Luminescent Display)である。また、表示部12は、タッチパネル式のディスプレイであるが、これに限定されるものではない。
(入力部13)
入力部13は、ユーザUから各種操作を受け付ける入力デバイスである。例えば、入力部13は、文字や数字等を入力するためのボタン等を有する。なお、入力部13は、入出力ポート(I/O port)やUSB(Universal Serial Bus)ポート等であってもよい。また、表示部12がタッチパネル式のディスプレイである場合、表示部12の一部が入力部13として機能する。また、入力部13は、ユーザUから音声入力を受け付けるマイク等であってもよい。マイクはワイヤレスであってもよい。
(測位部14)
測位部14は、GPS(Global Positioning System)の衛星から送出される信号(電波)を受信し、受信した信号に基づいて、自装置である端末装置10の現在位置を示す位置情報(例えば、緯度及び経度)を取得する。すなわち、測位部14は、端末装置10の位置を測位する。なお、GPSは、GNSS(Global Navigation Satellite System)の一例に過ぎない。
また、測位部14は、GPS以外にも、種々の手法により位置を測位することができる。例えば、測位部14は、位置補正等のための補助的な測位手段として、下記のように、端末装置10の様々な通信機能を利用して位置を測位してもよい。
(Wi-Fi測位)
例えば、測位部14は、端末装置10のWi-Fi(登録商標)通信機能や、各通信会社が備える通信網を利用して、端末装置10の位置を測位する。具体的には、測位部14は、Wi-Fi通信等を行い、付近の基地局やアクセスポイントとの距離を測位することにより、端末装置10の位置を測位する。
(ビーコン測位)
また、測位部14は、端末装置10のBluetooth(登録商標)機能を利用して位置を測位してもよい。例えば、測位部14は、Bluetooth(登録商標)機能によって接続されるビーコン(beacon)発信機と接続することにより、端末装置10の位置を測位する。
(地磁気測位)
また、測位部14は、予め測定された構造物の地磁気のパターンと、端末装置10が備える地磁気センサとに基づいて、端末装置10の位置を測位する。
(RFID測位)
また、例えば、端末装置10が駅改札や店舗等で使用される非接触型ICカードと同等のRFID(Radio Frequency Identification)タグの機能を備えている場合、もしくはRFIDタグを読み取る機能を備えている場合、端末装置10によって決済等が行われた情報とともに、使用された位置が記録される。測位部14は、かかる情報を取得することで、端末装置10の位置を測位してもよい。また、位置は、端末装置10が備える光学式センサや、赤外線センサ等によって測位されてもよい。
測位部14は、必要に応じて、上述した測位手段の一つ又は組合せを用いて、端末装置10の位置を測位してもよい。
(センサ部20)
センサ部20は、端末装置10に搭載又は接続される各種のセンサを含む。なお、接続は、有線接続、無線接続を問わない。例えば、センサ類は、ウェアラブルデバイスやワイヤレスデバイス等、端末装置10以外の検知装置であってもよい。図13に示す例では、センサ部20は、加速度センサ21と、ジャイロセンサ22と、気圧センサ23と、気温センサ24と、音センサ25と、光センサ26と、磁気センサ27と、画像センサ(カメラ)28とを備える。
なお、上記した各センサ21~28は、あくまでも例示であって限定されるものではない。すなわち、センサ部20は、各センサ21~28のうちの一部を備える構成であってもよいし、各センサ21~28に加えてあるいは代えて、湿度センサ等その他のセンサを備えてもよい。
加速度センサ21は、例えば、3軸加速度センサであり、端末装置10の移動方向、速度、及び、加速度等の端末装置10の物理的な動きを検知する。ジャイロセンサ22は、端末装置10の角速度等に基づいて3軸方向の傾き等の端末装置10の物理的な動きを検知する。気圧センサ23は、例えば端末装置10の周囲の気圧を検知する。
端末装置10は、上記した加速度センサ21やジャイロセンサ22、気圧センサ23等を備えることから、これらの各センサ21~23等を利用した歩行者自律航法(PDR:Pedestrian Dead-Reckoning)等の技術を用いて端末装置10の位置を測位することが可能になる。これにより、GPS等の測位システムでは取得することが困難な屋内での位置情報を取得することが可能になる。
例えば、加速度センサ21を利用した歩数計により、歩数や歩くスピード、歩いた距離を算出することができる。また、ジャイロセンサ22を利用して、ユーザUの進行方向や視線の方向、体の傾きを知ることができる。また、気圧センサ23で検知した気圧から、ユーザUの端末装置10が存在する高度やフロアの階数を知ることもできる。
気温センサ24は、例えば端末装置10の周囲の気温を検知する。音センサ25は、例えば端末装置10の周囲の音を検知する。光センサ26は、端末装置10の周囲の照度を検知する。磁気センサ27は、例えば端末装置10の周囲の地磁気を検知する。画像センサ28は、端末装置10の周囲の画像を撮像する。
上記した気圧センサ23、気温センサ24、音センサ25、光センサ26及び画像センサ28は、それぞれ気圧、気温、音、照度を検知したり、周囲の画像を撮像したりすることで、端末装置10の周囲の環境や状況等を検知することができる。また、端末装置10の周囲の環境や状況等から、端末装置10の位置情報の精度を向上させることが可能になる。
(制御部30)
制御部30は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM、入出力ポート等を有するマイクロコンピュータや各種の回路を含む。また、制御部30は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路等のハードウェアで構成されてもよい。制御部30は、送信部31と、受信部32と、処理部33と、受付部34と、検証部35とを有する。さらに、必要に応じて、BC処理部36を有していてもよい。
(送信部31)
送信部31は、例えば入力部13を用いてユーザUにより入力された各種情報や、端末装置10に搭載又は接続された各センサ21~28によって検知された各種情報、測位部14によって測位された端末装置10の位置情報等を、通信部11を介してサーバ装置100へ送信することができる。
(受信部32)
受信部32は、通信部11を介して、サーバ装置100から提供される各種情報や、サーバ装置100からの各種情報の要求を受信することができる。
(処理部33)
処理部33は、表示部12等を含め、端末装置10全体を制御する。例えば、処理部33は、送信部31によって送信される各種情報や、受信部32によって受信されたサーバ装置100からの各種情報を表示部12へ出力して表示させることができる。
なお、後述する受付部34、検証部35、及びBC処理部36は、処理部33の一部であってもよい。また、処理部33は、アプリを起動又はプログラムを実行することで、下記の受付部34、検証部35、及びBC処理部36として機能してもよい。
(受付部34)
受付部34は、ユーザUの検証用の本人確認情報(認証情報)の入力を受け付ける。また、受付部34は、ユーザUの検証用の本人確認情報の入力を促す際に、NFT化した実世界に存在する物体(オブジェクトOBJ)を所有していることを確認する。
(検証部35)
検証部35は、本人確認情報に基づいてユーザUを検証する。そして、検証部35は、ユーザUの検証に成功した場合に、秘密鍵と公開鍵との鍵ペアを生成する。
例えば、検証部35は、本人確認情報に基づいてユーザUを検証し、ユーザUの検証に成功し、かつユーザUが物体を所有していることが確認された場合に、ユーザUの認証に使用する認証用秘密鍵と認証用公開鍵との認証用鍵ペアと、物体の所有証明に使用する所有証明用秘密鍵と所有証明用公開鍵との所有証明用鍵ペアとをそれぞれ生成する。そして、検証部35は、認証用秘密鍵を用いてチャレンジに署名し、所有証明用秘密鍵を用いてチャレンジに署名する。
このとき、検証部35は、ユーザUを示すユーザ識別子(UID)を管理する認証装置に、認証用公開鍵と、認証用秘密鍵で署名した署名付きチャレンジとを送付する。また、検証部35は、物体を示す物体識別子(OID)を管理する物体管理装置に、所有証明用公開鍵と、所有証明用秘密鍵で署名した署名付きチャレンジとを送付する。
あるいは、検証部35は、本人確認情報に基づいてユーザUを検証し、ユーザUの検証に成功し、かつユーザUが物体を所有していることが確認された場合に、ユーザUの認証と物体の所有証明の両方を併せ持つ認証・所有証明用秘密鍵と認証・所有証明用公開鍵との認証・所有証明用鍵ペアを生成する。そして、検証部35は、認証・所有証明用秘密鍵を用いてチャレンジに署名する。
このとき、検証部35は、ユーザUを示すユーザ識別子(UID)と物体を示す物体識別子(OID)との両方を管理する認証装置に、認証・所有証明用公開鍵と、認証・所有証明用秘密鍵で署名した署名付きチャレンジとを送付する。
(BC処理部36)
BC処理部36は、公開鍵をブロックチェーン(BC)に記録し、公開鍵を使用する認証装置にブロックチェーンで管理されている公開鍵の参照位置を通知する。
例えば、BC処理部36は、認証用公開鍵と所有証明用公開鍵とを別々にブロックチェーンに記録し、認証用公開鍵を使用する認証装置にブロックチェーンで管理されている認証用公開鍵の参照位置を通知し、所有証明用公開鍵を使用する管理装置にブロックチェーンで管理されている所有証明用公開鍵の参照位置を通知する。
あるいは、BC処理部36は、認証・所有証明用公開鍵をブロックチェーンに記録し、認証・所有証明用公開鍵を使用する認証装置にブロックチェーンで管理されている認証・所有証明用公開鍵の参照位置を通知する。
(記憶部40)
記憶部40は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置によって実現される。かかる記憶部40には、各種プログラムや各種データ等が記憶される。
〔4.サーバ装置の構成例〕
次に、図14を用いて、実施形態に係るサーバ装置100の構成について説明する。図14は、実施形態に係るサーバ装置100の構成例を示す図である。図14に示すように、サーバ装置100は、通信部110と、記憶部120と、制御部130とを備える。
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。また、通信部110は、ネットワークN(図12参照)と有線又は無線で接続される。
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、HDD、SSD、光ディスク等の記憶装置によって実現される。図14に示すように、記憶部120は、利用者情報データベース121と、履歴情報データベース122と、所有情報データベース123とを有する。
(利用者情報データベース121)
利用者情報データベース121は、ユーザUに関する利用者情報を記憶する。例えば、利用者情報データベース121は、ユーザUの属性等の種々の情報を記憶する。図15は、利用者情報データベース121の一例を示す図である。図15に示した例では、利用者情報データベース121は、「ユーザID(Identifier)」、「年齢」、「性別」、「自宅」、「勤務地」、「興味」といった項目を有する。
「ユーザID」は、ユーザUを識別するための識別情報を示す。なお、「ユーザID」は、ユーザUの連絡先(電話番号、メールアドレス等)であってもよいし、ユーザUの端末装置10を識別するための識別情報であってもよい。
また、「年齢」は、ユーザIDにより識別されるユーザUの年齢を示す。なお、「年齢」は、ユーザUの具体的な年齢(例えば35歳など)を示す情報であってもよいし、ユーザUの年代(例えば30代など)を示す情報であってもよい。あるいは、「年齢」は、ユーザUの生年月日を示す情報であってもよいし、ユーザUの世代(例えば80年代生まれなど)を示す情報であってもよい。また、「性別」は、ユーザIDにより識別されるユーザUの性別を示す。
また、「自宅」は、ユーザIDにより識別されるユーザUの自宅の位置情報を示す。なお、図15に示す例では、「自宅」は、「LC11」といった抽象的な符号を図示するが、緯度経度情報等であってもよい。また、例えば、「自宅」は、地域名や住所であってもよい。
また、「勤務地」は、ユーザIDにより識別されるユーザUの勤務地(学生の場合は学校)の位置情報を示す。なお、図15に示す例では、「勤務地」は、「LC12」といった抽象的な符号を図示するが、緯度経度情報等であってもよい。また、例えば、「勤務地」は、地域名や住所であってもよい。
また、「興味」は、ユーザIDにより識別されるユーザUの興味を示す。すなわち、「興味」は、ユーザIDにより識別されるユーザUが関心の高い対象を示す。例えば、「興味」は、ユーザUが検索エンジンに入力して検索した検索クエリ(キーワード)等であってもよい。なお、図15に示す例では、「興味」は、各ユーザUに1つずつ図示するが、複数であってもよい。
例えば、図15に示す例において、ユーザID「U1」により識別されるユーザUの年齢は、「20代」であり、性別は、「男性」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザUは、自宅が「LC11」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザUは、勤務地が「LC12」であることを示す。また、例えば、ユーザID「U1」により識別されるユーザUは、「スポーツ」に興味があることを示す。
ここで、図15に示す例では、「U1」、「LC11」及び「LC12」といった抽象的な値を用いて図示するが、「U1」、「LC11」及び「LC12」には、具体的な文字列や数値等の情報が記憶されるものとする。以下、他の情報に関する図においても、抽象的な値を図示する場合がある。
なお、利用者情報データベース121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、利用者情報データベース121は、ユーザUの端末装置10に関する各種情報を記憶してもよい。また、利用者情報データベース121は、ユーザUのデモグラフィック(人口統計学的属性)、サイコグラフィック(心理学的属性)、ジオグラフィック(地理学的属性)、ベヘイビオラル(行動学的属性)等の属性に関する情報を記憶してもよい。例えば、利用者情報データベース121は、氏名、家族構成、出身地(地元)、職業、職位、収入、資格、居住形態(戸建、マンション等)、車の有無、通学・通勤時間、通学・通勤経路、定期券区間(駅、路線等)、利用頻度の高い駅(自宅・勤務地の最寄駅以外)、習い事(場所、時間帯等)、趣味、興味、ライフスタイル等の情報を記憶してもよい。
(履歴情報データベース122)
履歴情報データベース122は、ユーザUの行動を示す履歴情報(ログデータ)に関する各種情報を記憶する。図16は、履歴情報データベース122の一例を示す図である。図16に示した例では、履歴情報データベース122は、「ユーザID」、「位置履歴」、「検索履歴」、「閲覧履歴」、「購入履歴」、「投稿履歴」といった項目を有する。
「ユーザID」は、ユーザUを識別するための識別情報を示す。また、「位置履歴」は、ユーザUの位置や移動の履歴である位置履歴を示す。また、「検索履歴」は、ユーザUが入力した検索クエリの履歴である検索履歴を示す。また、「閲覧履歴」は、ユーザUが閲覧したコンテンツの履歴である閲覧履歴を示す。また、「購入履歴」は、ユーザUによる購入の履歴である購入履歴を示す。また、「投稿履歴」は、ユーザUによる投稿の履歴である投稿履歴を示す。なお、「投稿履歴」は、ユーザUの所有物に関する質問を含んでいてもよい。
例えば、図16に示す例において、ユーザID「U1」により識別されるユーザUは、「位置履歴#1」の通りに移動し、「検索履歴#1」の通りに検索し、「閲覧履歴#1」の通りにコンテンツを閲覧し、「購入履歴#1」の通りに所定の店舗等で所定の商品等を購入し、「投稿履歴」の通りに投稿したことを示す。
ここで、図16に示す例では、「U1」、「位置履歴#1」、「検索履歴#1」、「閲覧履歴#1」、「購入履歴#1」及び「投稿履歴#1」といった抽象的な値を用いて図示するが、「U1」、「位置履歴#1」、「検索履歴#1」、「閲覧履歴#1」、「購入履歴#1」及び「投稿履歴#1」には、具体的な文字列や数値等の情報が記憶されるものとする。
なお、履歴情報データベース122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、履歴情報データベース122は、ユーザUの所定のサービスの利用履歴等を記憶してもよい。また、履歴情報データベース122は、ユーザUに対して認証を実施した時間(日時)を示す認証実施時間など認証の履歴に関する情報を記憶してもよい。また、履歴情報データベース122は、認証器から送付された公開鍵の履歴(過去の公開鍵のリスト)に関する情報を記憶してもよい。
(所有情報データベース123)
所有情報データベース123は、NFT化した実世界のオブジェクトOBJを所有しているユーザUの認証とオブジェクト所有証明に関する各種情報を記憶する。図17は、所有情報データベース123の一例を示す図である。図17に示した例では、所有情報データベース123は、「ユーザID」、「認証用公開鍵」、「オブジェクトID」、「特徴量」、「所有証明用公開鍵」、「認証・所有証明用公開鍵」といった項目を有する。
「ユーザID」は、ユーザUを識別するための識別情報であるユーザ識別子(UID)を示す。また、「認証用公開鍵」は、ユーザUのFIDO認証に用いられる公開鍵を示す。「認証用公開鍵」は、「ユーザID」ごとに1対1で紐づけられていると好ましい。サーバ装置100は、認証装置として機能する場合、この認証用公開鍵を用いて署名を検証する。
また、「オブジェクトID」は、NFT化した実世界のオブジェクトOBJを識別するための識別情報であるオブジェクト識別子(OID)を示す。また、「特徴量」は、オブジェクトOBJを測定して得られたオブジェクトOBJの特徴量を示す。なお、オブジェクト識別子(OID)は、特徴量に基づいて生成され、特徴量に基づいて特定される。また、「所有証明用公開鍵」は、ユーザUがオブジェクトOBJを所有していることの証明に用いられる公開鍵を示す。「所有証明用公開鍵」は、「オブジェクトID」ごとに1対1で紐づけられていると好ましい。サーバ装置100は、オブジェクト管理装置として機能する場合、この所有証明用公開鍵を用いて署名を検証する。
また、「認証・所有証明用公開鍵」は、認証とオブジェクト所有証明の両方を併せ持つ鍵ペアの公開鍵を示す。すなわち、「認証・所有証明用公開鍵」は、「認証用公開鍵」と「所有証明用公開鍵」の両方の役割を持つ公開鍵を示す。「認証・所有証明用公開鍵」は、「ユーザID」と「オブジェクトID」との組(ペア)ごとに1対1で紐づけられていると好ましい。
なお、「認証・所有証明用公開鍵」を使用する場合は、「認証用公開鍵」と「所有証明用公開鍵」は無くてもよい。反対に、「認証用公開鍵」と「所有証明用公開鍵」を使用する場合は、「認証・所有証明用公開鍵」は無くてもよい。
また、「認証用公開鍵」、「所有証明用公開鍵」及び「認証・所有証明用公開鍵」に該当する公開鍵は、ブロックチェーン(BC)で管理されていてもよい。この場合、「認証用公開鍵」、「所有証明用公開鍵」及び「認証・所有証明用公開鍵」には、ブロックチェーン上での公開鍵の所在(参照位置)を示す情報であるBC公開鍵参照先(参照識別子)の情報が格納されていてもよい。
例えば、図17に示す例において、ユーザID「U1」により識別されるユーザUは「認証用公開鍵#U1」を用いて認証されること、オブジェクトID「O1」は「特徴量#O1」に基づいて生成されること、オブジェクトID「O1」により識別されるオブジェクトOBJは「特徴量#O1」により特定されること、当該ユーザUは当該オブジェクトOBJを所有していることを「所有証明用公開鍵#U1O1」を用いて証明されること、あるいは当該ユーザUは「認証・所有証明用公開鍵#U1O1」を用いて認証及びオブジェクトOBJの所有証明がされることを示す。
ここで、図17に示す例では、「U1」、「認証用公開鍵#U1」、「O1」、「所有証明用公開鍵#U1O1」及び「認証・所有証明用公開鍵#U1O1」といった抽象的な値を用いて図示するが、「U1」、「認証用公開鍵#U1」、「O1」、「所有証明用公開鍵#U1O1」及び「認証・所有証明用公開鍵#U1O1」には、具体的な文字列や数値等の情報が記憶されるものとする。
なお、所有情報データベース123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、所有情報データベース123は、「認証用公開鍵」及び「所有証明用公開鍵」、あるいは「認証・所有証明用公開鍵」を生成した認証器(端末装置10)に関するアテステーション(attestation:端末/認証器の証明)や、ユーザ検証を行った認証器からのFIDOアサーション(Assertion:本人性の認証証明)を記憶してもよい。
(制御部130)
図14に戻り、説明を続ける。制御部130は、コントローラ(Controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等によって、サーバ装置100の内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAM等の記憶領域を作業領域として実行されることにより実現される。
図14に示す例では、制御部130は、取得部131を有する。また、サーバ装置100が認証装置として機能する場合、制御部130は、少なくとも、認証処理部132と、管理部133とを有する。さらに、必要に応じて、BC登録部134と、検証要求部135とを有していてもよい。また、サーバ装置100が認定済み装置(認定済みのFIDOサーバ)として機能する場合、制御部130は、少なくとも、要求受付部136と、検証処理部137とを有する。
なお、サーバ装置100は、アプリを起動又はプログラムを実行することで、認証装置又は認定済みFIDOサーバ(認定済みの情報処理装置)として機能してもよい。すなわち、制御部130は、アプリを起動又はプログラムを実行することで、取得部131、認証処理部132、管理部133、BC登録部134、検証要求部135、要求受付部136、及び検証処理部137として機能してもよい。
(取得部131)
取得部131は、ユーザUにより入力された検索クエリを取得する。例えば、取得部131は、ユーザUが検索エンジン等に検索クエリを入力してキーワード検索を行った際に、通信部110を介して、当該検索クエリを取得する。すなわち、取得部131は、通信部110を介して、ユーザUにより検索エンジンやサイト又はアプリの検索窓に入力されたキーワードを取得する。
また、取得部131は、通信部110を介して、ユーザUに関する利用者情報を取得する。例えば、取得部131は、ユーザUの端末装置10から、ユーザUを示す識別情報(ユーザID等)や、ユーザUの位置情報、ユーザUの属性情報等を取得する。また、取得部131は、ユーザUのユーザ登録時に、ユーザUを示す識別情報や、ユーザUの属性情報等を取得してもよい。そして、取得部131は、利用者情報を、記憶部120の利用者情報データベース121に登録する。
また、取得部131は、通信部110を介して、ユーザUの行動を示す各種の履歴情報(ログデータ)を取得する。例えば、取得部131は、ユーザUの端末装置10から、あるいはユーザID等に基づいて各種サーバ等から、ユーザUの行動を示す各種の履歴情報を取得する。そして、取得部131は、各種の履歴情報を、記憶部120の履歴情報データベース122に登録する。
(認証処理部132)
認証処理部132は、NFT化した実世界に存在する物体(オブジェクト)の所有者であるユーザに対してFIDO認証を行う。認証処理部132は、ユーザにユーザ識別子を事前に割り当てて管理する。
なお、認証処理部132は、認証器でユーザが物体を所有していることが確認された際に認証器により生成されたユーザの認証と物体の所有証明の両方を併せ持つ認証・所有証明用鍵ペアを用いて、ユーザに対してFIDO認証を行う。
あるいは、認証処理部132は、認証器でユーザが物体を所有していることが確認された際に認証器により生成された認証用鍵ペアを用いてユーザの署名を検証し、署名の検証に成功した場合、ユーザを示すユーザ識別子を特定して管理部133に通知する。
また、認証処理部132は、秘密鍵で署名された署名付き情報に対して、ブロックチェーンで管理されている公開鍵を使用して署名を検証することも可能である。
例えば、認証処理部132は、FIDO認証の際に、認証用秘密鍵で署名された署名付き情報に対して、ブロックチェーンで管理されている認証用公開鍵を使用して署名を検証する。また、認証処理部132は、ユーザに対するFIDO認証の際に、所有証明用秘密鍵で署名された署名付き情報に対して、ブロックチェーンで管理されている所有証明用公開鍵を使用して署名を検証する。
あるいは、認証処理部132は、ユーザに対するFIDO認証の際に、認証・所有証明用秘密鍵で署名された署名付き情報に対して、ブロックチェーンで管理されている認証・所有証明用公開鍵を使用して署名を検証する。
(管理部133)
管理部133は、FIDO認証に成功した場合、ユーザを示すユーザ識別子とNFT化した物体を示す物体識別子とを紐づけて管理する。管理部133は、NFT化した実世界に存在する物体に物体識別子を事前に割り当てて管理する。
管理部133は、センサを介して実世界に存在する物体の情報を取得し、物体の情報に基づく特徴量から物体を示す物体識別子を生成する。また、管理部133は、実世界に存在する物体に関するセンシング情報に基づいて物体を示す物体識別子を取得し、取得された物体識別子に紐づけられたユーザ識別子からユーザを特定する。
なお、管理部133は、ユーザの認証と物体の所有証明の両方を併せ持つ認証・所有証明用鍵ペアによりFIDO認証に成功した場合、ユーザ識別子と物体識別子とを紐づけて管理する。
あるいは、管理部133は、認証器でユーザが物体を所有していることが確認された際に認証器により生成された所有証明用鍵ペアを用いてユーザの署名を検証し、署名の検証に成功した場合、ユーザ識別子と物体識別子とを紐づけて管理する。
また、管理部133は、認証器で生成された秘密鍵と公開鍵との鍵ペアのうち公開鍵をブロックチェーン(BC)で管理することも可能である。具体的には、管理部133は、認証器を用いた認証の対象となるユーザを示すユーザ識別子と、ブロックチェーンで管理されている公開鍵の参照位置を示す参照識別子とを紐づけて管理する。
例えば、管理部133は、FIDO認証に使用する認証用秘密鍵と認証用公開鍵との認証用鍵ペアのうち認証用公開鍵をブロックチェーンで管理する。また、管理部133は、物体の所有証明に使用する所有証明用秘密鍵と所有証明用公開鍵との所有証明用鍵ペアのうち所有証明用公開鍵をブロックチェーンで管理する。
あるいは、管理部133は、ユーザの認証と物体の所有証明との両方を併せ持つ認証・所有証明用秘密鍵と認証・所有証明用公開鍵との認証・所有証明用鍵ペアのうち認証・所有証明用公開鍵をブロックチェーンで管理する。
管理部133は、ブロックチェーンで管理されている公開鍵を用いてFIDO認証に成功した場合、ユーザを示すユーザ識別子とNFT化した物体を示す物体識別子とを紐づけて管理する。
(BC登録部134)
BC登録部134は、認証の適切性の検証に用いるための認証履歴をブロックチェーン(BC)に登録する。例えば、BC登録部134は、FIDO認証の認証履歴をブロックチェーンに登録する。
また、BC登録部134は、ユーザを検証した認証器から受信したアサーションと認証に用いる公開鍵とをブロックチェーンに登録する。このとき、BC登録部134は、ユーザを検証した認証器から受信したアサーションと認証に用いる公開鍵とともに、認証が実施された日時を示す認証実施時間をブロックチェーンに登録してもよい。
なお、BC登録部134は、サーバ装置100が有する計算リソースを用いてブロックチェーンへの各種情報の登録を実現してもよい。例えば、BC登録部134は、他の情報処理装置(いわゆるマイナー)に対してブロックチェーンへの登録に要する各種情報処理の実行を依頼することで、ブロックチェーンに対する各種情報の登録を実現してもよい。
(検証要求部135)
検証要求部135は、ユーザから認証の適切性の問い合わせを受け付けると、認定済みの情報処理装置に対して、ブロックチェーン(BC)に登録された認証履歴を用いた認証の適切性の検証要求を送信し、認定済みの情報処理装置から認証の適切性の検証結果の通知を受信する。
例えば、検証要求部135は、ユーザ又は公的機関が指定した認定済みの情報処理装置に対して、ブロックチェーンに登録された認証履歴を用いた認証の適切性の検証要求を送信する。
また、検証要求部135は、複数の認定済みの情報処理装置に対して、ブロックチェーンに登録された認証履歴を用いた認証の適切性の検証要求を送信し、複数の認定済みの情報処理装置による認証の適切性の検証結果の通知を受信する。このとき、検証要求部135は、複数の認定済みの情報処理装置の各々の検証結果に関する多数決の結果の通知を受信してもよい。
(要求受付部136)
要求受付部136は、認証装置で実施された認証の適切性の検証要求を受け付ける。例えば、要求受付部136は、ユーザの端末装置から認証の適切性の問い合わせを受けた認証装置から、認証の適切性の検証要求を受け付ける。あるいは、要求受付部136は、認証の適切性の検証要求として、認証を受けたユーザの端末装置から直接、認証の適切性の問い合わせを受け付ける。このとき、要求受付部136は、認証の適切性の検証要求とともに、認証を受けたユーザを示すユーザ識別子と、認証が実施された日時に関する情報とを受け付けてもよい。
(検証処理部137)
検証処理部137は、認証の適切性の検証要求に応じて、ブロックチェーン(BC)に登録された認証履歴を用いた認証の適切性の検証を行い、検証要求の要求元に検証結果を通知する。
例えば、検証処理部137は、認証の適切性の検証要求に応じて、ブロックチェーンに登録された認証履歴を用いた認証の適切性の検証を行い、認証装置又は端末装置に検証結果を通知する。
あるいは、検証処理部137は、認証の適切性の検証要求としての認証の適切性の問い合わせに応じて、ブロックチェーンに登録された認証履歴を用いた認証の適切性の検証を行い、端末装置に検証結果を通知する。
このとき、検証処理部137は、認証の適切性の検証要求に応じて、ユーザ識別子及び日時に関する情報に基づいてブロックチェーンに登録された認証履歴の中から該当する認証履歴を引き当て、引き当てた認証履歴を用いた認証の適切性の検証を行い、検証要求の要求元に検証結果を通知してもよい。
〔5.処理手順〕
次に、図18を用いて実施形態に係るサーバ装置100による処理手順について説明する。図18は、実施形態に係る処理手順を示すフローチャートである。なお、以下に示す処理手順は、サーバ装置100の制御部130によって繰り返し実行される。
例えば、図18に示すように、サーバ装置100の認証処理部132は、ユーザUに対してユーザ識別子(UID)を事前に割り当て、サーバ装置100の管理部133は、オブジェクトOBJに対してオブジェクト識別子(OID)を事前に割り当てる(ステップS101)。
続いて、サーバ装置100の認証処理部132は、NFT化した実世界に存在するオブジェクトOBJを所有しているユーザUに対するFIDO認証を行うため、認証器であるユーザUの端末装置10に対して、ユーザの検証を要求し、チャレンジを送付する(ステップS102)。
このとき、認証器であるユーザUの端末装置10の受付部34は、ユーザUの検証用の本人確認情報(認証情報)の入力を受け付ける。また、受付部34は、ユーザUの検証用の本人確認情報の入力を促す際に、NFT化した実世界に存在する物体(オブジェクトOBJ)を所有していることを確認する。
そして、認証器であるユーザUの端末装置10の検証部35は、本人確認情報に基づいてユーザUを検証し、ユーザUの検証に成功し、かつユーザUが物体を所有していることが確認された場合に、当該ユーザUに対応する秘密鍵で署名した署名付きチャレンジをサーバ装置100に送付する。
続いて、サーバ装置100の認証処理部132は、認証器でユーザUがオブジェクトOBJを所有していることが確認された際に、認証器から署名付きチャレンジを受け取る(ステップS103)。
続いて、サーバ装置100の認証処理部132は、認証器により生成された公開鍵がブロックチェーン(BC)で管理されている場合には、ブロックチェーン上の公開鍵の参照位置を示す参照識別子に基づいて、ブロックチェーンで管理されている公開鍵を参照する(ステップS104)。
なお、ブロックチェーンではなくサーバ装置100の内部で公開鍵が管理されている場合には、ブロックチェーンで管理されている公開鍵を参照する処理(上記ステップS104の処理)は不要である。
続いて、サーバ装置100の認証処理部132は、認証器により生成された公開鍵を用いて署名を検証する(ステップS105)。
例えば、サーバ装置100の認証処理部132は、認証器でユーザUがオブジェクトOBJを所有していることが確認された際に、認証器から、認証・OBJ所有証明用秘密鍵で署名された署名付きチャレンジを受け取り、認証・OBJ所有証明用公開鍵を用いて署名を検証する。
あるいは、認証装置であるサーバ装置100の認証処理部132は、認証器でユーザUがオブジェクトOBJを所有していることが確認された際に、認証器から、認証用秘密鍵で署名された署名付きチャレンジを受け取り、認証用公開鍵を用いて署名を検証する。
続いて、サーバ装置100の管理部133は、認証処理部132で署名の検証に成功し、FIDO認証に成功した場合、そのユーザUを示すユーザ識別子(UID)と、所有しているオブジェクトOBJを示すオブジェクト識別子(OID)とを紐づけて管理する(ステップS106)。
例えば、サーバ装置100の管理部133は、認証・OBJ所有証明用公開鍵で署名の検証に成功し、FIDO認証に成功した場合、オブジェクト管理機能により、サーバ装置100の内部で保有するユーザ識別子(UID)とオブジェクト識別子(OID)とを紐づけて管理する。
あるいは、認証装置であるサーバ装置100の認証処理部132は、認証用公開鍵で署名の検証に成功し、FIDO認証に成功した場合、公開鍵暗号ベース認証機能により、ユーザUを示すユーザ識別子(UID)をオブジェクト管理装置に通知する。
そして、オブジェクト管理装置であるサーバ装置100の管理部133は、オブジェクト管理機能により、認証器から、オブジェクトOBJの所有証明用秘密鍵で署名された署名付きチャレンジを受け取り、所有証明用公開鍵を用いて署名を検証し、署名の検証に成功した場合、そのオブジェクトOBJのオブジェクト識別子(OID)を特定し、認証装置から通知されたユーザ識別子(UID)と、特定されたオブジェクト識別子(OID)とを紐づけて管理する。
続いて、サーバ装置100のBC登録部134は、認証の適切性の検証に用いるための認証履歴をブロックチェーン(BC)に登録する(ステップS107)。
例えば、サーバ装置100のBC登録部134は、ユーザUを検証した認証器から受信したアサーションと認証に用いる公開鍵とをブロックチェーンに登録する。このとき、BC登録部134は、ユーザUを検証した認証器から受信したアサーションと認証に用いる公開鍵とともに、認証が実施された日時を示す認証実施時間をブロックチェーンに登録してもよい。
続いて、サーバ装置100の検証要求部135は、ユーザUから認証の適切性の問い合わせを受け付けると、認定済みの情報処理装置(認定済みのFIDOサーバ)に対して、ブロックチェーン(BC)に登録された認証履歴を用いた認証の適切性の検証要求を送信する(ステップS108)。
このとき、認定済みの情報処理装置(認定済みのFIDOサーバ)であるサーバ装置100の要求受付部136は、認証装置で実施された認証の適切性の検証要求を受け付け、検証処理部137は、認証の適切性の検証要求に応じて、ブロックチェーン(BC)に登録された認証履歴を用いた認証の適切性の検証を行い、検証要求の要求元に検証結果を通知する。
続いて、サーバ装置100の検証要求部135は、認定済みの情報処理装置から認証の適切性の検証結果の通知を受け取り、ユーザUに通知する(ステップS109)。
なお、上記のステップS108及びステップS109の処理は、認証器と認定済みの情報処理装置との間で直接実施されてもよい。
〔6.変形例〕
上述した端末装置10及びサーバ装置100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、実施形態の変形例について説明する。
上記の実施形態において、サーバ装置100が実行している処理の一部又は全部は、実際には、端末装置10が実行してもよい。例えば、スタンドアローン(Stand-alone)で(端末装置10単体で)処理が完結してもよい。この場合、端末装置10に、上記の実施形態におけるサーバ装置100の機能が備わっているものとする。また、上記の実施形態では、端末装置10はサーバ装置100と連携しているため、ユーザUから見れば、サーバ装置100の処理も端末装置10が実行しているように見える。すなわち、他の観点では、端末装置10は、サーバ装置100を備えているともいえる。
また、上記の実施形態において、実世界のオブジェクトOBJは、生物/非生物を問わない。例えば、NFT化した実世界のオブジェクトOBJは、ユーザU自身の画像(顔、手、全身等の画像)やユーザU自身の私物(個人の所有物)等であってもよい。ユーザUが著名人や人気者であると、より価値がある。また、車や住宅(部屋)、時計、装飾品、ブランド品等であってもよいし、アンティーク(Antique:骨董品)やヴィンテージ(Vintage:年代物)、その他の限定品・希少品などであってもよい。また、オブジェクトOBJは、ユーザUが飼育している愛玩動物や産業動物(経済動物)等の生物や、ユーザUが世話している観葉植物や花卉等の植物などであってもよい。また、ユーザUの敷地内(私有地)に存在する樹木や岩石等の自然物であってもよい。
また、上記の実施形態において、サーバ装置100は、対象となる実世界のオブジェクトOBJが過去に当該オブジェクトOBJの専門家や評論家、又は権威や社会的影響力を持つ人間により一時的にでも所有又は取得されたことがある場合、オブジェクトOBJが過去に上記のような人物の手を経ていることを証明してもよい。また、サーバ装置100は、オブジェクトOBJが上記のような人物による「お墨付き」を得ていることを証明してもよい。なお、人物に限らず、組織や機関であってもよい。
また、上記の実施形態において、サーバ装置100は、オブジェクトOBJの所有権が移転してオーナーであるユーザUが入れ替わるたびに、ユーザU又はオブジェクトOBJに紐づく鍵ペアを作成し直してもよい。このとき、サーバ装置100は、オブジェクト識別子(OID)又はオブジェクトOBJのセンシング情報などを用いて、鍵ペアを作り直してもよい。
〔7.効果〕
上述してきたように、本願に係る認証装置として機能する情報処理装置(サーバ装置100)は、NFT化した実世界に存在する物体(オブジェクトOBJ)の所有者であるユーザUに対してFIDO認証を行う認証処理部132と、FIDO認証に成功した場合、ユーザUを示すユーザ識別子(UID)とNFT化した物体を示す物体識別子(OID)とを紐づけて管理する管理部133と、を備える。
認証処理部132は、ユーザUにユーザ識別子(UID)を事前に割り当てて管理する。管理部133は、NFT化した実世界に存在する物体に物体識別子(OID)を事前に割り当てて管理する。
管理部133は、センサを介して実世界に存在する物体の情報を取得し、物体の情報に基づく特徴量から物体を示す物体識別子(OID)を生成する。
管理部133は、実世界に存在する物体に関するセンシング情報に基づいて物体を示す物体識別子(OID)を取得し、取得された物体識別子(OID)に紐づけられたユーザ識別子(UID)からユーザUを特定する。
認証処理部132は、認証器でユーザUが物体を所有していることが確認された際に認証器により生成されたユーザUの認証と物体の所有証明の両方を併せ持つ認証・所有証明用鍵ペアを用いて、ユーザUに対してFIDO認証を行う。管理部133は、FIDO認証に成功した場合、ユーザ識別子(UID)と物体識別子(OID)とを紐づけて管理する。
認証処理部132は、認証器でユーザUが物体を所有していることが確認された際に認証器により生成された認証用鍵ペアを用いてユーザUの署名を検証し、署名の検証に成功した場合、ユーザUを示すユーザ識別子(UID)を特定して管理部133に通知する。管理部133は、認証器でユーザUが物体を所有していることが確認された際に認証器により生成された所有証明用鍵ペアを用いてユーザUの署名を検証し、署名の検証に成功した場合、ユーザ識別子(UID)と物体識別子(OID)とを紐づけて管理する。
また、本願に係る認証器として機能する情報処理装置(端末装置10)は、ユーザUの検証用の本人確認情報の入力を促す際に、NFT化した実世界に存在する物体を所有していることを確認する受付部34と、本人確認情報に基づいてユーザUを検証し、ユーザUの検証に成功し、かつユーザUが物体を所有していることが確認された場合に、秘密鍵と公開鍵との鍵ペアを生成する検証部35と、を備える。
例えば、検証部35は、本人確認情報に基づいてユーザUを検証し、ユーザUの検証に成功し、かつユーザUが物体を所有していることが確認された場合に、ユーザUの認証に使用する認証用秘密鍵と認証用公開鍵との認証用鍵ペアと、物体の所有証明に使用する所有証明用秘密鍵と所有証明用公開鍵との所有証明用鍵ペアとをそれぞれ生成し、認証用秘密鍵を用いてチャレンジに署名し、所有証明用秘密鍵を用いてチャレンジに署名する。
このとき、検証部35は、ユーザUを示すユーザ識別子(UID)を管理する認証装置に、認証用公開鍵と、認証用秘密鍵で署名した署名付きチャレンジとを送付し、物体を示す物体識別子(OID)を管理する物体管理装置に、所有証明用公開鍵と、所有証明用秘密鍵で署名した署名付きチャレンジとを送付する。
また、検証部35は、本人確認情報に基づいてユーザUを検証し、ユーザUの検証に成功し、かつユーザUが物体を所有していることが確認された場合に、ユーザUの認証と物体の所有証明の両方を併せ持つ認証・所有証明用秘密鍵と認証・所有証明用公開鍵との認証・所有証明用鍵ペアを生成し、認証・所有証明用秘密鍵を用いてチャレンジに署名する。
あるいは、検証部35は、ユーザUを示すユーザ識別子(UID)と物体を示す物体識別子(OID)との両方を管理する認証装置に、認証・所有証明用公開鍵と、認証・所有証明用秘密鍵で署名した署名付きチャレンジとを送付する。
また、本願に係る認証装置として機能する情報処理装置(サーバ装置100)は、認証器で生成された秘密鍵と公開鍵との鍵ペアのうち公開鍵をブロックチェーンで管理する管理部133と、秘密鍵で署名された署名付き情報に対して、ブロックチェーンで管理されている公開鍵を使用して署名を検証する認証処理部132と、を備える。
管理部133は、認証器を用いた認証の対象となるユーザUを示すユーザ識別子(UID)と、ブロックチェーンで管理されている公開鍵の参照位置を示す参照識別子とを紐づけて管理する。
認証処理部132は、NFT化した実世界に存在する物体の所有者であるユーザUに対してFIDO認証を行う。管理部133は、FIDO認証に成功した場合、ユーザUを示すユーザ識別子(UID)とNFT化した物体を示す物体識別子(OID)とを紐づけて管理する。
認証処理部132は、ユーザUにユーザ識別子(UID)を事前に割り当てて管理する。管理部133は、NFT化した実世界に存在する物体に物体識別子(OID)を事前に割り当てて管理する。
管理部133は、FIDO認証に使用する認証用秘密鍵と認証用公開鍵との認証用鍵ペアのうち認証用公開鍵をブロックチェーンで管理する。認証処理部132は、FIDO認証の際に、認証用秘密鍵で署名された署名付き情報に対して、ブロックチェーンで管理されている認証用公開鍵を使用して署名を検証する。
管理部133は、物体の所有証明に使用する所有証明用秘密鍵と所有証明用公開鍵との所有証明用鍵ペアのうち所有証明用公開鍵をブロックチェーンで管理する。認証処理部132は、ユーザUに対するFIDO認証の際に、所有証明用秘密鍵で署名された署名付き情報に対して、ブロックチェーンで管理されている所有証明用公開鍵を使用して署名を検証する。
管理部133は、ユーザUの認証と物体の所有証明との両方を併せ持つ認証・所有証明用秘密鍵と認証・所有証明用公開鍵との認証・所有証明用鍵ペアのうち認証・所有証明用公開鍵をブロックチェーンで管理する。認証処理部132は、ユーザUに対するFIDO認証の際に、認証・所有証明用秘密鍵で署名された署名付き情報に対して、ブロックチェーンで管理されている認証・所有証明用公開鍵を使用して署名を検証する。
また、本願に係る認証器として機能する情報処理装置(端末装置10)は、ユーザUの検証用の本人確認情報の入力を受け付ける受付部34と、本人確認情報に基づいてユーザUを検証し、ユーザUの検証に成功した場合に、秘密鍵と公開鍵との鍵ペアを生成する検証部35と、公開鍵をブロックチェーンに記録し、公開鍵を使用する認証装置にブロックチェーンで管理されている公開鍵の参照位置を通知するBC処理部36と、を備える。
例えば、受付部34は、ユーザUの検証用の本人確認情報の入力を促す際に、NFT化した実世界に存在する物体を所有していることを確認する。検証部35は、本人確認情報に基づいてユーザUを検証し、ユーザUの検証に成功し、かつユーザUが物体を所有していることが確認された場合に、FIDO認証に使用する認証用秘密鍵と認証用公開鍵との認証用鍵ペアと、物体の所有証明に使用する所有証明用秘密鍵と所有証明用公開鍵との所有証明用鍵ペアとをそれぞれを生成する。BC処理部36は、認証用公開鍵と所有証明用公開鍵とを別々にブロックチェーンに記録し、認証用公開鍵を使用する認証装置にブロックチェーンで管理されている認証用公開鍵の参照位置を通知し、所有証明用公開鍵を使用する管理装置にブロックチェーンで管理されている所有証明用公開鍵の参照位置を通知する。
あるいは、受付部34は、ユーザUの検証用の本人確認情報の入力を促す際に、NFT化した実世界に存在する物体を所有していることを確認する。検証部35は、本人確認情報に基づいてユーザUを検証し、ユーザUの検証に成功し、かつユーザUが物体を所有していることが確認された場合に、ユーザUの認証と物体の所有証明の両方を併せ持つ認証・所有証明用秘密鍵と認証・所有証明用公開鍵との認証・所有証明用鍵ペアを生成する。BC処理部36は、認証・所有証明用公開鍵をブロックチェーンに記録し、認証・所有証明用公開鍵を使用する認証装置にブロックチェーンで管理されている認証・所有証明用公開鍵の参照位置を通知する。
本願に係る情報処理装置(サーバ装置100)は、ユーザUに対して認証を行う認証処理部132と、認証の適切性の検証に用いるための認証履歴をブロックチェーンに登録するBC登録部134と、を備える。
また、本願に係る情報処理装置(サーバ装置100)は、ユーザUから認証の適切性の問い合わせを受け付けると、認定済みの情報処理装置に対して、ブロックチェーンに登録された認証履歴を用いた認証の適切性の検証要求を送信し、認定済みの情報処理装置から認証の適切性の検証結果の通知を受信する検証要求部135と、をさらに備える。
検証要求部135は、ユーザU又は公的機関が指定した認定済みの情報処理装置に対して、ブロックチェーンに登録された認証履歴を用いた認証の適切性の検証要求を送信する。
また、検証要求部135は、複数の認定済みの情報処理装置に対して、ブロックチェーンに登録された認証履歴を用いた認証の適切性の検証要求を送信し、複数の認定済みの情報処理装置による認証の適切性の検証結果の通知を受信する。
このとき、検証要求部135は、複数の認定済みの情報処理装置の各々の検証結果に関する多数決の結果の通知を受信する。
BC登録部134は、ユーザUを検証した認証器から受信したアサーションと認証に用いる公開鍵とをブロックチェーンに登録する。
BC登録部134は、ユーザUを検証した認証器から受信したアサーションと認証に用いる公開鍵とともに、認証が実施された日時を示す認証実施時間をブロックチェーンに登録する。
また、本願に係る認定済みの情報処理装置(サーバ装置100)は、認証装置で実施された認証の適切性の検証要求を受け付ける要求受付部13634と、認証の適切性の検証要求に応じて、ブロックチェーンに登録された認証履歴を用いた認証の適切性の検証を行い、検証要求の要求元に検証結果を通知する検証処理部137と、を備える。
例えば、要求受付部13634は、ユーザUの端末装置10から認証の適切性の問い合わせを受けた認証装置から、認証の適切性の検証要求を受け付ける。検証処理部137は、認証の適切性の検証要求に応じて、ブロックチェーンに登録された認証履歴を用いた認証の適切性の検証を行い、認証装置又は端末装置10に検証結果を通知する。
あるいは、要求受付部13634は、認証の適切性の検証要求として、認証を受けたユーザUの端末装置10から直接、認証の適切性の問い合わせを受け付ける。検証処理部137は、認証の適切性の問い合わせに応じて、ブロックチェーンに登録された認証履歴を用いた認証の適切性の検証を行い、端末装置10に検証結果を通知する。
このとき、要求受付部13634は、認証の適切性の検証要求とともに、認証を受けたユーザUを示すユーザ識別子(UID)と、認証が実施された日時に関する情報とを受け付ける。検証処理部137は、認証の適切性の問い合わせに応じて、ユーザ識別子(UID)及び日時に関する情報に基づいてブロックチェーンに登録された認証履歴の中から該当する認証履歴を引き当て、引き当てた認証履歴を用いた認証の適切性の検証を行い、検証要求の要求元に検証結果を通知する。
上述した各処理のいずれかもしくは組合せにより、本願に係る情報処理装置は、FIDO認証を利用して、NFT化した実世界のオブジェクトを管理し、その所有者を証明することができる。
〔8.ハードウェア構成〕
また、上述した実施形態に係る端末装置10やサーバ装置100は、例えば図19に示すような構成のコンピュータ1000によって実現される。以下、サーバ装置100を例に挙げて説明する。図19は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力I/F(Interface)1060、入力I/F1070、ネットワークI/F1080がバス1090により接続された形態を有する。
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。演算装置1030は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等により実現される。
一次記憶装置1040は、RAM(Random Access Memory)等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等により実現される。二次記憶装置1050は、内蔵ストレージであってもよいし、外付けストレージであってもよい。また、二次記憶装置1050は、USB(Universal Serial Bus)メモリやSD(Secure Digital)メモリカード等の取り外し可能な記憶媒体であってもよい。また、二次記憶装置1050は、クラウドストレージ(オンラインストレージ)やNAS(Network Attached Storage)、ファイルサーバ等であってもよい。
出力I/F1060は、ディスプレイ、プロジェクタ、及びプリンタ等といった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインターフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力I/F1070は、マウス、キーボード、キーパッド、ボタン、及びスキャナ等といった各種の入力装置1020から情報を受信するためのインターフェースであり、例えば、USB等により実現される。
また、出力I/F1060及び入力I/F1070はそれぞれ出力装置1010及び入力装置1020と無線で接続してもよい。すなわち、出力装置1010及び入力装置1020は、ワイヤレス機器であってもよい。
また、出力装置1010及び入力装置1020は、タッチパネルのように一体化していてもよい。この場合、出力I/F1060及び入力I/F1070も、入出力I/Fとして一体化していてもよい。
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、又は半導体メモリ等から情報を読み出す装置であってもよい。
ネットワークI/F1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
演算装置1030は、出力I/F1060や入力I/F1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
例えば、コンピュータ1000がサーバ装置100として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部130の機能を実現する。また、コンピュータ1000の演算装置1030は、ネットワークI/F1080を介して他の機器から取得したプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行してもよい。また、コンピュータ1000の演算装置1030は、ネットワークI/F1080を介して他の機器と連携し、プログラムの機能やデータ等を他の機器の他のプログラムから呼び出して利用してもよい。
〔9.その他〕
以上、本願の実施形態を説明したが、これら実施形態の内容により本発明が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
例えば、上述したサーバ装置100は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をAPI(Application Programming Interface)やネットワークコンピューティング等で呼び出して実現するなど、構成は柔軟に変更できる。
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。