IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日本総合研究所の特許一覧

<>
  • 特開-情報処理システム及びプログラム 図1
  • 特開-情報処理システム及びプログラム 図2
  • 特開-情報処理システム及びプログラム 図3
  • 特開-情報処理システム及びプログラム 図4
  • 特開-情報処理システム及びプログラム 図5
  • 特開-情報処理システム及びプログラム 図6
  • 特開-情報処理システム及びプログラム 図7
  • 特開-情報処理システム及びプログラム 図8
  • 特開-情報処理システム及びプログラム 図9
  • 特開-情報処理システム及びプログラム 図10
  • 特開-情報処理システム及びプログラム 図11
  • 特開-情報処理システム及びプログラム 図12
  • 特開-情報処理システム及びプログラム 図13
  • 特開-情報処理システム及びプログラム 図14
  • 特開-情報処理システム及びプログラム 図15
  • 特開-情報処理システム及びプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024145923
(43)【公開日】2024-10-15
(54)【発明の名称】情報処理システム及びプログラム
(51)【国際特許分類】
   G06F 21/51 20130101AFI20241004BHJP
   G06F 21/60 20130101ALI20241004BHJP
【FI】
G06F21/51
G06F21/60 320
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023058524
(22)【出願日】2023-03-31
(71)【出願人】
【識別番号】302064762
【氏名又は名称】株式会社日本総合研究所
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】渡邊 大喜
(57)【要約】      (修正有)
【課題】ユーザによるデジタル資産の利用を管理す情報処理システム及びプログラムを提供する。
【解決手段】ウォレットが生成された場合、当該ウォレットを有効化するための処理を実行する情報処理システム100であって、ウォレット提供サーバ120は、ウォレットアプリケーションがWebアプリケーションとして提供し、ウォレット監査サーバ130が、検査を要求されたウォレットアプリケーションの安全性を検査し、利用者端末150が、ウォレット提供サーバ120からウォレットアプリケーションのデータを取得し、ウォレットアプリケーションを実行して、デジタル資産の取引を管理する。
【選択図】図1
【特許請求の範囲】
【請求項1】
コンピュータを、デジタルデータの暗号化に用いられる秘密鍵を管理する秘密鍵管理装置として機能させるためのプログラムである管理プログラムを実行する実行装置を制御する実行制御部と、
前記管理プログラム又は前記秘密鍵管理装置の安全性に関する第三者による検査の結果を示す検査情報を格納する検査情報格納装置にアクセスして、前記検査情報を取得する検査情報取得部と、
を備え、
前記実行制御部は、
前記検査情報取得部が、前記検査により安全性が確認されたことを示す前記検査情報を取得した場合、前記管理プログラムの実行を許可する又は制限しないことを決定し、
前記検査情報取得部が、前記検査により安全性が確認されたことを示す前記検査情報を取得していない場合、前記管理プログラムの実行を許可しない又は制限することを決定する、
情報処理システム。
【請求項2】
前記検査情報格納装置は、前記検査情報と、前記検査の対象となった前記管理プログラムの少なくとも一部が符号化されたデータである符号化データとを対応付けて格納しており、
前記検査情報取得部は、前記検査情報及び前記符号化データを取得し、
前記実行制御部は、
前記実行装置による実行処理の対象となる前記管理プログラムの前記少なくとも一部を符号化して得られる検証用データを取得し、
前記検査情報取得部が、前記検査により安全性が確認されたことを示す前記検査情報を取得し、且つ、前記検証用データと、前記検査情報取得部が取得した前記符号化データとが合致する場合に、前記管理プログラムの実行を許可する又は制限しないことを決定し、
前記検査情報取得部が、前記検査により安全性が確認されたことを示す前記検査情報を取得しない場合、又は、前記検証用データと、前記検査情報取得部が取得した前記符号化データとが合致しない場合に、前記管理プログラムの実行を許可しない又は制限することを決定する、
請求項1に記載の情報処理システム。
【請求項3】
前記コンピュータを前記秘密鍵管理装置として機能させるための手順は、前記秘密鍵と、前記秘密鍵に対応する公開鍵とを生成する生成手順を有し、
前記符号化データは、前記生成手順の少なくとも一部に対応するコード、スクリプト又はプログラムが符号化された生成手順符号化データを含む、
請求項2に記載の情報処理システム。
【請求項4】
前記実行装置は、
前記実行処理の対象となる前記管理プログラムを取得するプログラム取得部と、
前記プログラム取得部が取得した前記管理プログラムの前記少なくとも一部、又は、前記管理プログラムの前記少なくとも一部を符号化して得られた前記検証用データを前記実行制御部に出力するプログラム出力部と、
を備える、
請求項2に記載の情報処理システム。
【請求項5】
前記管理プログラムの安全性を検査する検査部と、
前記検査部が検査した前記管理プログラムの前記少なくとも一部を符号化して、前記符号化データを生成する符号化データ生成部と、
前記管理プログラムの識別情報及び/又はURIと、前記符号化データとを対応付けて、前記検査情報格納装置に登録する登録部と、
をさらに備える、
請求項2に記載の情報処理システム。
【請求項6】
前記実行装置をさらに備え、
前記実行装置は、
前記実行制御部が前記管理プログラムの実行を許可する又は制限しない場合、前記管理プログラムを実行し、
前記実行制御部が前記管理プログラムの実行を許可しない場合、前記管理プログラムを実行せず、
前記実行制御部が前記管理プログラムの実行を制限する場合、前記管理プログラムの少なくとも一部を実行しない、
請求項1に記載の情報処理システム。
【請求項7】
コンピュータを、デジタルデータの暗号化に用いられる秘密鍵を管理する秘密鍵管理装置として機能させるためのプログラムである管理プログラムを取得するプログラム取得部と、
前記管理プログラム又は前記秘密鍵管理装置の安全性に関する第三者による検査の結果を示す検査情報を参照して、前記管理プログラム又は前記秘密鍵管理装置の安全性が確認されているか否かを判定し、前記安全性が確認されている場合に前記管理プログラムの実行が許可される又は制限されないことを示す制御情報を出力する判定装置から、前記制御情報を取得する制御情報取得部と、
前記制御情報に従って、前記管理プログラムを実行するプログラム実行部と、
を備える、情報処理システム。
【請求項8】
コンピュータを、請求項1から請求項7までの何れか一項に記載の情報処理システムとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム及びプログラムに関する。
【背景技術】
【0002】
デジタル資産を保管又は管理すウォレットが知られている。非特許文献1には、ブラウザの拡張機能を利用したホットウォレットが開示されている。非特許文献2には、データを紙に印刷して保管する手法が開示されている。非特許文献3には、データを機密性の高いハードウェアに保管する手法が開示されている。
(先行技術文献)
(非特許文献)
(非特許文献1)MetaMask、"The crypto wallet for Defi, Web3 Dapps and NFTs"、[online]、[2023年3月7日検索],インターネット
<URL:https://metamask.io/>
(非特許文献2)The bitaddress.org、"bitaddress.org"、[online]、[2023年3月7日検索],インターネット
<URL:https://github.com/pointbiz/bitaddress.org/>
(非特許文献3)LEDGER、"Hardware Wallet & Cold Wallet Security for Crypto"、[online]、[2023年3月7日検索],インターネット
<URL:https://www.ledger.com/>
【発明の概要】
【課題を解決するための手段】
【0003】
本発明の第1の態様においては、情報処理システムが提供される。上記の情報処理システムは、例えば、管理プログラムを実行する実行装置を制御する実行制御部を備える。管理プログラムは、例えば、コンピュータを、デジタルデータの暗号化に用いられる秘密鍵を管理する秘密鍵管理装置として機能させるためのプログラムである。上記の情報処理システムは、例えば、管理プログラム又は秘密鍵管理装置の安全性に関する第三者による検査の結果を示す検査情報を格納する検査情報格納装置にアクセスして、検査情報を取得する検査情報取得部を備える。上記の情報処理システムにおいて、実行制御部は、例えば、検査情報取得部が、検査により安全性が確認されたことを示す検査情報を取得した場合に、管理プログラムの実行を許可する又は制限しないことを決定する。上記の情報処理システムにおいて、実行制御部は、例えば、検査情報取得部が、検査により安全性が確認されたことを示す検査情報を取得していない場合に、管理プログラムの実行を許可しない又は制限することを決定する。
【0004】
上記の何れかの情報処理システムにおいて、検査情報格納装置は、例えば、検査情報と、検査の対象となった管理プログラムの少なくとも一部が符号化されたデータである符号化データとを対応付けて格納してよい。検査情報取得部は、検査情報格納装置にアクセスして、検査情報及び符号化データを取得してよい。上記の何れかの情報処理システムにおいて、実行制御部は、実行装置による実行処理の対象となる管理プログラムの少なくとも一部を符号化して得られる検証用データを取得してよい。上記の何れかの情報処理システムにおいて、検査情報取得部が、検査により安全性が確認されたことを示す検査情報を取得し、且つ、検証用データと、検査情報取得部が取得した符号化データとが合致する場合、実行制御部は、管理プログラムの実行を許可する又は制限しないことを決定してよい。上記の何れかの情報処理システムにおいて、検査情報取得部が、検査により安全性が確認されたことを示す検査情報を取得しない場合、又は、検証用データと、検査情報取得部が取得した符号化データとが合致しない場合、実行制御部は、管理プログラムの実行を許可しない又は制限することを決定してよい。
【0005】
上記の何れかの情報処理システムにおいて、コンピュータを秘密鍵管理装置として機能させるための手順は、秘密鍵と、秘密鍵に対応する公開鍵とを生成する生成手順を有してよい。符号化データは、生成手順の少なくとも一部に対応するコード、スクリプト又はプログラムが符号化された生成手順符号化データを含んでよい。
【0006】
上記の何れかの情報処理システムにおいて、実行装置は、実行処理の対象となる管理プログラムを取得するプログラム取得部を備えてよい。実行装置は、プログラム取得部が取得した管理プログラムの少なくとも一部、又は、管理プログラムの少なくとも一部を符号化して得られた検証用データを実行制御部に出力するプログラム出力部を備えてよい。
【0007】
上記の何れかの情報処理システムは、管理プログラムの安全性を検査する検査部を備えてよい。上記の何れかの情報処理システムは、検査部が検査した管理プログラムの少なくとも一部を符号化して、符号化データを生成する符号化データ生成部を備えてよい。上記の何れかの情報処理システムは、管理プログラムの識別情報及び/又はURIと、符号化データとを対応付けて、検査情報格納装置に登録する登録部を備えてよい。
【0008】
上記の何れかの情報処理システムは、実行装置を備えてよい。上記の何れかの情報処理システムにおいて、実行制御部が管理プログラムの実行を許可する又は制限しない場合、実行装置は、管理プログラムを実行してよい。上記の何れかの情報処理システムにおいて、実行制御部が管理プログラムの実行を許可しない場合、実行装置は、管理プログラムを実行しなくてよい。上記の何れかの情報処理システムにおいて、実行制御部が管理プログラムの実行を制限する場合、実行装置は、管理プログラムの少なくとも一部を実行しなくてよい。
【0009】
本発明の第2の態様においては、情報処理システムが提供される。上記の情報処理システムは、例えば、管理プログラムを取得するプログラム取得部を備える。管理プログラムは、例えば、コンピュータを、デジタルデータの暗号化に用いられる秘密鍵を管理する秘密鍵管理装置として機能させるためのプログラムである。上記の情報処理システムは、例えば、管理プログラム又は秘密鍵管理装置の安全性に関する第三者による検査の結果を示す検査情報を参照して、管理プログラム又は秘密鍵管理装置の安全性が確認されているか否かを判定し、安全性が確認されている場合に管理プログラムの実行が許可される又は制限されないことを示す制御情報を出力する判定装置から、制御情報を取得する制御情報取得部を備える。上記の情報処理システムは、例えば、例えば、制御情報に従って、管理プログラムを実行するプログラム実行部を備える。
【0010】
本発明の第3の態様においては、プログラムが提供される。上記のプログラムを格納するコンピュータ可読媒体が提供されてもよい。コンピュータ可読媒体は、非一時的コンピュータ可読媒体であってもよく、コンピュータ可読記録媒体であってもよい。上記のプログラムは、コンピュータを、上記の第1又は第2の態様に係る情報処理システムとして機能させるためのプログラムであってよい。上記のプログラムは、コンピュータに、上記の第1又は第2の態様に係る情報処理システムにおける各種の情報処理方法を実行させるためのプログラムであってよい。
【0011】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0012】
図1】デジタル資産管理システム100のシステム構成の一例を概略的に示す。
図2】デジタル資産管理システム100における情報処理の一例を概略的に示す。
図3】ウォレット提供サーバ120の内部構成の一例を概略的に示す。
図4】ウォレット監査サーバ130の内部構成の一例を概略的に示す。
図5】ウォレット監査サーバ130における情報処理の一例を概略的に示す。
図6】利用者端末150の内部構成の一例を概略的に示す。
図7】利用者端末150における情報処理の一例を概略的に示す。
図8】入出力部624から出力される画面800の一例を概略的に示す。
図9】入出力部624から出力される画面900の一例を概略的に示す。
図10】入出力部624から出力される画面1000の一例を概略的に示す。
図11】ウォレットアプリケーションの安全性確認処理の一例を概略的に示す。
図12】ウォレットの生成準備処理の一例を概略的に示す。
図13】ウォレットの生成処理の一例を概略的に示す。
図14】ステップ1330における情報処理の一例を概略的に示す。
図15】ウォレットの有効化処理の一例を概略的に示す。
図16】コンピュータ3000のシステム構成の一例を概略的に示す。
【発明を実施するための形態】
【0013】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、図面において、同一または類似の部分には同一の参照番号を付して、重複する説明を省く場合がある。
【0014】
(デジタル資産管理システム100の概要)
図1は、デジタル資産管理システム100のシステム構成の一例を概略的に示す。本実施形態において、デジタル資産管理システム100は、暗号資産、非代替性トークン(NFT)などの暗号化データ又は符号化データ(デジタル資産と称される場合がある。)を管理する。本実施形態においては、デジタル資産管理システム100が、ブロックチェーン上で有効な秘密鍵及び公開鍵のペアを利用してデジタル資産を管理する場合を例として、デジタル資産管理システム100の詳細が説明される。
【0015】
本実施形態において、デジタル資産管理システム100は、1以上のウォレット提供サーバ120と、1以上のウォレット監査サーバ130と、1以上の監査結果データベース140と、1以上の利用者端末150とを備える。本実施形態において、デジタル資産管理システム100の各部は、各種のコンピュータにより実現される。
【0016】
本実施形態において、デジタル資産管理システム100の各部は、ブロックチェーンネットワーク12に接続可能に構成されている。また、本実施形態において、監査結果データベース140は、ブロックチェーンネットワーク12を利用した分散型台帳システムにより構築される。
【0017】
一実施形態において、デジタル資産管理システム100の各部を構成する1以上のコンピュータのそれぞれは、P2P(Peer to Peer)接続にて、ブロックチェーンネットワーク12のノードとして参加する。他の実施形態において、ブロックチェーンネットワーク12を構築する特定のノードが代理サーバとして機能し、デジタル資産管理システム100の各部を構成する1以上のコンピュータのそれぞれは、当該代理サーバにRPC(Remote Procedure Call)接続して、ブロックチェーンへの登録処理及び/又はブロックチェーンの参照処理を実行する。
【0018】
本実施形態において、デジタル資産管理システム100の各部は、通信ネットワーク14を介して、互いに情報を送受可能に構成される。例えば、利用者端末150は、通信ネットワーク14を介してウォレット提供サーバ120にアクセスして、ウォレット提供サーバ120により提供されるウォレットアプリケーションのデータ(コンテンツと称される場合がある。)を取得する。
【0019】
本実施形態においては、ウォレット監査サーバ130及び監査結果データベース140は、ブロックチェーンネットワーク12を介して、デジタル資産管理システム100を構成し得る他の情報処理装置との間で情報を送受する。これにより、ウォレットアプリケーションのデータ、ウォレットアプリケーションの監査結果などの改ざんが防止される。また、これらの情報の透明性が確保され得る。
【0020】
なお、他の実施形態において、ウォレット監査サーバ130は、通信ネットワーク14を介して他の情報処理装置との間で情報を送受してよい。監査結果データベース140は、通信ネットワーク14を介して他の情報処理装置との間で情報を送受してよい。
【0021】
デジタル資産の取引においては、例えば、非中央集権型の分散台帳の一種であるブロックチェーンが用いられる。個々の取引の正当性は、取引情報(トランザクション)に参加者の電子署名を付与することによって担保される。ここで、参加者とは、ブロックチェーンネットワーク12にトランザクションを送付することができるノードであり、トランザクションに署名するための秘密鍵を所有する。
【0022】
デジタル資産管理システム100において、上記のデジタル資産に紐づけられた秘密鍵は、ウォレットを用いて管理される。ウォレットは、例えば、秘密鍵を保持し、操作や管理をするための何らかのオブジェクトであり、物理的なデバイス、ソフトウェアプログラム、オンラインサービス、データオブジェクトなど様々な形態として提供される。ウォレットとしては、インターネットに接続されたウォレット(ホットウォレットと称される場合がある。)、保管鍵をインターネットから切り離して管理するウォレット(コールドウォレットと称される場合がある。)などが例示される。
【0023】
近年、上記の秘密鍵をユーザ20が自らの端末を用いて管理することを可能にすることを目的として、様々なアプリケーション(ウォレットアプリケーションと称される場合がある。)が開発されている。ウォレットアプリケーションは、例えば、任意の公開鍵暗号方式を用いて、デジタル資産に紐づけられた秘密鍵と、当該秘密鍵に対応する公開鍵のペアを生成する。上述されたとおり、ウォレットアプリケーション上で生成された少なくとも秘密鍵を含むデータオブジェクトが、ウォレットと称される場合がある。ウォレットアプリケーションは、ウォレットを操作及び/又は管理するための機能を有してもよい。
【0024】
デジタル資産の利用を希望するユーザ20は、まず、自己の利用者端末150を操作して、ウォレットを生成する。例えば、利用者端末150が、秘密鍵及び公開鍵のペアを生成して、ブロックチェーン上で有効なアドレスを算出可能にすることにより、ウォレットが生成される。ブロックチェーン上におけるデジタル資産の送金アドレスは、上記の公開鍵から一意に導出される。そのため、上記の公開鍵は、デジタル資産の送り先として機能し得る。これにより、ユーザ20は、上記のウォレットを利用して、デジタル資産を暗号学的に保管することができる。
【0025】
しかしながら、一般的なユーザ20が、ウォレットアプリケーションが信頼し得るプロトコルに従って動作しているか否かを検証することは容易ではない。ウォレットアプリケーションを利用するユーザ20は、ウォレットアプリケーションの開発者を信頼するしかなく、当該信頼性の問題がウォレットアプリケーションの普及を阻害している。
【0026】
この点に関し、本実施形態に係るデジタル資産管理システム100によれば、ウォレット提供サーバ120により提供されるウォレットアプリケーションの安全性に関する各種の事項が、予め、ウォレット監査サーバ130により検査される。上記の検査の少なくとも一部は、予め定められたアルゴリズムに従って自動的に実施される。ウォレット監査サーバ130は、上記の検査の結果(検査結果と称される場合がある。)を、ブロックチェーンネットワーク12の上に構築される監査結果データベース140に登録する。
【0027】
具体的には、ウォレット監査サーバ130は、検査により安全性が確認されたウォレットアプリケーションのURIを、当該ウォレットアプリケーションの検査結果として監査結果データベース140に登録する。つまり、本実施形態において、監査結果データベース140にURIが登録されているウォレットアプリケーションは、予め定められた事項が検査された比較的安全なウォレットアプリケーションである。後述されるとおり、監査結果データベース140は、検査対象となったウォレットアプリケーションの少なくとも一部が符号化されたデータ(符号化データと称される場合がある。)を格納してもよい。
【0028】
本実施形態において、利用者端末150は、ウォレット提供サーバ120が提供するウォレットアプリケーションを利用して、利用者端末150の上でウォレットを生成する。この場合において、利用者端末150は、上記のウォレットの生成処理を実行する前に、監査結果データベース140にアクセスして、上記のウォレットアプリケーションのURIが監査結果データベース140に登録されているか否かを確認する。
【0029】
上記のウォレットアプリケーションのURIが監査結果データベース140に登録されている場合、ウォレットの生成処理が実行される。一方、上記のウォレットアプリケーションのURIが監査結果データベース140に登録されていない場合、ウォレットの生成処理が実行されない。
【0030】
これにより、本実施形態に係るデジタル資産管理システム100によれば、個々のユーザ20が利用する利用者端末150の上で動作するウォレットアプリケーション又はウォレットの信頼性が担保される。その結果、ユーザ20は、ウォレットアプリケーション及び/又はデジタル資産を安全に利用することができる。
【0031】
(デジタル資産管理システム100に関連する各部の概要)
本実施形態において、ブロックチェーンネットワーク12は、複数のコンピュータ(ノードと称される場合がある。)により構築される。ブロックチェーンネットワーク12の詳細は特に限定されるものではないが、ブロックチェーンネットワーク12としては、例えば、スマートコントラクトをチューリング完全に実行可能なブロックチェーンネットワークが用いられる。上記のネットワークにおけるブロックチェーンの基盤としては、例えば、Ethereumが用いられる。ノード間の通信経路は、例えば、SSL/TLSのような暗号化技術を用いて暗号化されている。
【0032】
本実施形態において、通信ネットワーク14は、複数の装置の間で情報を伝送する。通信ネットワーク14は、有線通信の伝送路であってもよく、無線通信の伝送路であってもよく、それらの組み合わせであってもよい。通信ネットワーク14は、インターネット、専用回線、無線通信網又はそれらの組み合わせであってもよい。通信ネットワーク14は、アドホックネットワークなどのP2Pネットワークを含んでもよい。
【0033】
無線通信網における通信方式は、移動体通信方式であってもよく、無線データ通信方式であってもよい。移動体通信方式としては、3G方式、LTE方式、4G方式、5G方式、などが例示される。無線データ通信方式としては、無線PAN方式、無線LAN方式、無線MAN方式、無線WAN方式などが例示される。無線通信網における通信方式は、各種の近距離無線通信方式であってもよい。
【0034】
本実施形態において、ウォレット提供サーバ120は、1以上のユーザ20のそれぞれに、ウォレットアプリケーションを提供する。ウォレットアプリケーションは、例えば、コンピュータを、デジタルデータの暗号化に用いられる秘密鍵を管理する秘密鍵管理装置として機能させるためのプログラムである。例えば、利用者端末150の上でウォレットアプリケーションが実行されることにより、デジタル資産に紐づけられ得る秘密鍵を管理するためのウォレットが生成される。これにより、ユーザ20は、利用者端末150を使用して、デジタル資産を安全に利用することができる。ウォレット提供サーバ120の詳細は後述される。
【0035】
本実施形態において、ウォレット監査サーバ130は、ウォレットアプリケーションにより実現されるシステムを監査するサービス(監査サービスと称される場合がある。)を提供する。監査サービスによれば、例えば、ウォレットアプリケーションの監査結果が提供される。ウォレット監査サーバ130の詳細は後述される。
【0036】
ウォレット監査サーバ130を用いて監査サービスを提供する監査人は、個人であってもよく、団体であってもよく、法人であってもよい。監査人は、監査対象となるウォレットアプリケーションの提供者から独立した権限を有する。ウォレットアプリケーションの提供者は、個人であってもよく、団体であってもよく、法人であってもよい。
【0037】
具体的には、ウォレット監査サーバ130は、ウォレットアプリケーションの安全性を検査する。ウォレット監査サーバ130は、検査結果を監査結果データベース140に登録する。ウォレット監査サーバ130は、ウォレットアプリケーションの検査結果を示す情報(検査情報と称される場合がある。)と、検査対象となったウォレットアプリケーションの符号化データとを対応付けて、監査結果データベース140に格納してもよい。上記の符号化データとしては、上記のウォレットアプリケーションのコードの少なくとも一部のハッシュ値が例示される。
【0038】
本実施形態において、監査結果データベース140は、ウォレット監査サーバ130が出力した検査情報を格納する。監査結果データベース140は、上記の検査情報と、上記の符号化データとを対応付けて格納してもよい。
【0039】
本実施形態において、利用者端末150は、1以上のユーザ20のそれぞれによって利用される。利用者端末150は、他の情報処理装置との間で情報を送受することのできる機器であればよく、その詳細は特に限定されない。
【0040】
利用者端末150は、複数の通信方式に対応してもよい。例えば、通信端末は、3G方式、LTE方式、4G方式、5G方式などの移動体通信方式と、無線LAN方式、無線MAN方式などの無線通信方式との両方の通信方式に対応する。利用者端末150は、携帯端末であってよい。携帯端末としては、携帯電話、スマートフォン、PDA、タブレット、ノートブック・コンピュータ又はラップトップ・コンピュータ、ウエアラブル・コンピュータなどが例示される。利用者端末150の詳細は後述される。
【0041】
(デジタル資産管理システム100の各部の具体的な構成)
デジタル資産管理システム100の各部は、ハードウェアにより実現されてもよく、ソフトウェアにより実現されてもよく、ハードウェア及びソフトウェアにより実現されてもよい。デジタル資産管理システム100の各部は、その少なくとも一部が、パーソナルコンピュータ又は携帯端末によって実現されてもよい。例えば、パーソナルコンピュータ又は携帯端末が、デジタル資産管理システム100のユーザインターフェースとして利用され得る。携帯端末としては、携帯電話、スマートフォン、PDA、タブレット、ノートブック・コンピュータ又はラップトップ・コンピュータ、ウェアラブル・コンピュータなどが例示される。
【0042】
デジタル資産管理システム100を構成する構成要素の少なくとも一部がソフトウェアにより実現される場合、当該ソフトウェアにより実現される構成要素は、一般的な構成の情報処理装置において、当該構成要素に関する動作を規定したプログラムを起動することにより実現されてよい。上記の情報処理装置は、例えば、(i)各種プロセッサ(プロセッサとしては、CPU、GPUなどが例示される)、ROM、RAM、通信インターフェースなどを有するデータ処理装置と、(ii)メモリ、HDDなどの記憶装置(外部記憶装置を含む。)とを備える。上記の情報処理装置は、(iii)キーボード、タッチパネル、カメラ、マイク、各種センサ、GPS受信機などの入力装置を備えてもよく、(iv)表示装置、スピーカ、振動装置などの出力装置を備えてもよい。
【0043】
上記の情報処理装置において、上記のデータ処理装置又は記憶装置は、プログラムを格納してよい。上記のプログラムに記述された情報処理は、例えば、当該プログラムがコンピュータに読込まれることにより、当該プログラムに関連するソフトウェアと、デジタル資産管理システム100の少なくとも一部を構成する各種のハードウェア資源とが協働した具体的手段として機能する。そして、上記の具体的手段が、本実施形態におけるコンピュータの使用目的に応じた情報の演算又は加工を実現することにより、当該使用目的に応じたデジタル資産管理システム100又はその一部が構築される。
【0044】
上記のプログラムは、コンピュータ可読媒体に格納されていてもよい。上記のプログラムは、非一時的なコンピュータ可読記録媒体に格納されていてもよい。上記のプログラムは、CD-ROM、DVD-ROM、メモリ、ハードディスクなどのコンピュータ読み取り可能な媒体に記憶されていてもよく、ネットワークに接続された記憶装置に記憶されていてもよい。上記のプログラムは、コンピュータ読み取り可能な媒体又はネットワークに接続された記憶装置から、デジタル資産管理システム100の少なくとも一部を構成するコンピュータにインストールされてよい。
【0045】
上記のプログラムが実行されることにより、コンピュータが、デジタル資産管理システム100の各部の少なくとも一部として機能してもよい。上記のプログラムが実行されることにより、コンピュータが、デジタル資産管理システム100の少なくとも一部における情報処理方法を実行してもよい。
【0046】
コンピュータをデジタル資産管理システム100の少なくとも一部として機能させるためのプログラムは、例えば、デジタル資産管理システム100の少なくとも一部の動作を規定したモジュールを備える。上記のプログラム又はモジュールが実行されると、上記のプログラム又はモジュールは、データ処理装置、入力装置、出力装置、記憶装置等に働きかけて、コンピュータをデジタル資産管理システム100の少なくとも一部として機能させたり、コンピュータにデジタル資産管理システム100の少なくとも一部における情報処理方法を実行させたりする。
【0047】
上記の情報処理方法は、例えば、管理プログラムを実行する実行装置を制御する実行制御段階を有する。管理プログラムは、例えば、コンピュータを、デジタルデータの暗号化に用いられる秘密鍵を管理する秘密鍵管理装置として機能させるためのプログラムである。上記の情報処理方法は、例えば、管理プログラム又は秘密鍵管理装置の安全性に関する第三者による検査の結果を示す検査情報を格納する検査情報格納装置にアクセスして、検査情報を取得する検査情報取得段階を有する。上記の情報処理方法において、実行制御段階は、例えば、検査情報取得段階において、検査により安全性が確認されたことを示す検査情報が取得された場合に、管理プログラムの実行を許可する又は制限しないことを決定する段階を含む。実行制御段階は、例えば、検査情報取得段階において、検査により安全性が確認されたことを示す検査情報が取得されていない場合に、管理プログラムの実行を許可しない又は制限することを決定する段階を含む。
【0048】
デジタル資産管理システム100は、情報処理システムの一例であってよい。ウォレット監査サーバ130は、検査部、符号化データ生成部又は登録部の一例であってよい。ウォレット監査サーバ130の運用者は、第三者の一例であってよい。監査結果データベース140は、検査情報格納装置の一例であってよい。利用者端末150は、実行装置、判定装置又は情報処理システムの一例であってよい。
【0049】
デジタル資産のデータは、デジタルデータの一例であってよい。ウォレットは、秘密鍵管理装置の一例であってよい。ウォレットアプリケーションは、管理プログラムの一例であってよい。
【0050】
図2は、デジタル資産管理システム100における情報処理の一例を概略的に示す。本実施形態においては、ウォレット提供サーバ120において、ウォレットアプリケーションがWebアプリケーションとして提供され、利用者端末150において、Webブラウザ(単に、ブラウザと称される場合がある。)を介してWebアプリケーション内でウォレットが生成される場合を例として、デジタル資産管理システム100における情報処理の詳細が説明される。
【0051】
本実施形態によれば、まず、ステップ222(ステップがSと省略される場合がある。)において、ウォレット提供サーバ120が、ウォレットアプリケーションを提供する。ウォレット提供サーバ120は、ウォレット監査サーバ130に対して、ウォレット提供サーバ120が提供するウォレットアプリケーションの検査(監査と称される場合がある。)を要求するための信号(監査要求と称される場合がある)を送信する。
【0052】
次に、S224において、ウォレット監査サーバ130が、検査を要求されたウォレットアプリケーションの安全性を検査する。ウォレット監査サーバ130は、検査結果を監査結果データベース140に登録する。
【0053】
次に、S232において、利用者端末150が、ウォレット提供サーバ120からウォレットアプリケーションのデータ(コンテンツと称される場合がある。)を取得する。コンテンツは、例えば、HTMLデータと、JavaScript(登録商標)とを含む。
【0054】
本実施形態において、利用者端末150は、例えば、利用者端末150の上で動作するWebブラウザを介して、ウォレット提供サーバ120からウォレットアプリケーションのコンテンツを取得する。利用者端末150は、Webブラウザを介して、Webアプリケーション内でウォレットアプリケーションを実行し、ウォレットを生成する。
【0055】
(ブラウザの拡張機能)
本実施形態において、Webブラウザには、ウォレットの生成処理を制御するための拡張機能が実装されている。拡張機能によれば、ウォレットの生成処理が実行される前に、当該生成処理の対象となるウォレットアプリケーションの安全性が確認される。具体的には、監査結果データベース140に格納されている当該ウォレットアプリケーションの検査結果に基づいて、当該ウォレットアプリケーションの安全性が確認される。
【0056】
例えば、Webブラウザに上記の拡張機能を実装するためのプログラム(拡張プログラムと称される場合がある。)が利用者端末150にインストールされることにより、上記の拡張機能がWebブラウザに実装される。拡張プログラムは、例えば、ユーザ20の指示に基づいて、利用者端末150にインストールされる。
【0057】
拡張プログラム及びウォレットアプリケーションは、それぞれ独立して配信されてよい。拡張プログラムは、例えば、ウォレットアプリケーションの提供元とは異なるドメインにより配信される。これにより、例えば、ウォレット提供サーバ120がハッキングされ、不正なウォレットアプリケーションが配信された場合であっても、拡張プログラムは当該ハッキングの影響を受けない。これにより、ウォレットの安全性又は信頼性が担保され得る。
【0058】
また、拡張機能はブラウザに組み込まれて動作するので、拡張機能は、ブラウザに読み込まれたコンテンツに含まれる各要素及び/又はJavaScriptにアクセスすることができる。これにより、拡張機能と、ウォレットアプリケーションとが協調して動作し得る。その結果、拡張機能は、Webアプリケーション内で実行中のウォレットアプリケーションの動作を検証し、正常ではない不審な動作が検出された場合には、ウォレットアプリケーションの実行を停止することができる。
【0059】
(拡張機能によるウォレット生成処理の制御)
監査結果データベース140から、生成処理の対象となるウォレットアプリケーションの安全性が確認されたことを示す情報が取得された場合、拡張機能は、当該ウォレットアプリケーションの実行を許可することを決定する。この場合、上記のウォレットアプリケーションの実行を制限しないことが決定されてもよい。
【0060】
ウォレットアプリケーションの実行を許可する又は制限しないことが決定された場合、利用者端末150は、Webブラウザを介して、Webアプリケーション内でウォレットアプリケーションを実行する。ウォレットアプリケーションは、例えば、ブラウザの基本機能により実行される。これにより、秘密鍵及び公開鍵のペアが生成され、その結果、ウォレットが生成される。
【0061】
一方、監査結果データベース140から、生成処理の対象となるウォレットアプリケーションの安全性が確認されたことを示す情報が取得されなかった場合、拡張機能は、当該ウォレットアプリケーションの実行を許可しないことを決定する。この場合、上記のウォレットアプリケーションの実行を制限することが決定されてもよい。例えば、上記のウォレットアプリケーションの実行を禁止することが決定される。
【0062】
ウォレットアプリケーションの実行を許可しないことが決定された場合、利用者端末150は、ウォレットアプリケーションを実行しない。同様に、ウォレットアプリケーションの実行を制限することが決定された場合、利用者端末150は、ウォレットアプリケーションの少なくとも一部を実行しない。その結果、ウォレットが生成されない。
【0063】
また、本実施形態によれば、ウォレットが生成された場合、当該ウォレットを有効化(アクティベーションと称される場合がある。)するための処理が実行される。例えば、ユーザ20の認証処理が実行される。上記の認証処理によれば、例えば、ユーザ20がウォレットを利用する正当な権限を有していると認証された場合に、ウォレットが有効化される。
【0064】
次に、S234において、利用者端末150が、ウォレットアプリケーションを実行して、デジタル資産の取引が管理される。これにより、ユーザ20によるデジタル資産の利用が管理され得る。
【0065】
Webブラウザは、実行装置の一例であってよい。拡張機能は、実行制御部の一例であってよい。
【0066】
(別実施形態の一例)
本実施形態においては、利用者端末150がWebブラウザを介してウォレット提供サーバ120にアクセスし、Webアプリケーション内でウォレットが生成される場合を例として、デジタル資産管理システム100における情報処理の詳細が説明された。しかしながら、デジタル資産管理システム100における情報処理は、本実施形態に限定されない。
【0067】
他の実施形態において、利用者端末150は、公知の任意の手法によりウォレット提供サーバ120にアクセスし、ウォレット提供サーバ120からウォレットアプリケーションのコンテンツを取得してよい。利用者端末150は、公知の任意の手法により、利用者端末150の上でウォレットアプリケーションを実行してよい。
【0068】
本実施形態においては、デジタル資産管理システム100における情報処理の理解を容易にすることを目的として、ウォレット監査サーバ130におけるウォレットアップリケ―ションの検査と、利用者端末150におけるウォレットの生成及び有効化と、利用者端末150におけるウォレットの操作及びデジタル資産の管理とが、一連の処理として説明される。しかしながら、デジタル資産管理システム100における情報処理は、本実施形態に限定されない。
【0069】
他の実施形態において、ウォレット監査サーバ130におけるウォレットアップリケ―ションの検査と、利用者端末150におけるウォレットの生成及び/又は有効化と、利用者端末150におけるウォレットの操作及び/又はデジタル資産の管理とが、個別に実行される。例えば、第1時点において、一旦、ウォレットアップリケ―ションの検査が終了していれば、第1時点の後の任意の時点である第2時点において、利用者端末150におけるウォレットの生成及び/又は有効化が実行され得る。同様に、第2時点において、一旦、ウォレットが生成されていれば、第2時点の後の任意の時点である第3時点において、利用者端末150におけるウォレットの操作及び/又はデジタル資産の管理が実行され得る。
【0070】
図3は、ウォレット提供サーバ120の内部構成の一例を概略的に示す。本実施形態において、ウォレット提供サーバ120は、アプリケーション提供部320と、ウォレット認証部330とを備える。
【0071】
本実施形態において、アプリケーション提供部320は、ウォレットアプリケーションを提供する。上述されたとおり、ウォレットアプリケーションは、コンピュータを、デジタルデータの暗号化に用いられる秘密鍵を管理する秘密鍵管理装置として機能させるためのプログラムを含む。ウォレットアプリケーションは、コンピュータに、当該コンピュータを秘密鍵管理装置として機能させるための手順を実行させるためのプログラムを含んでもよい。上記のコンピュータは、利用者端末150に搭載されたコンピュータであってよい。
【0072】
一実施形態において、コンピュータを秘密鍵管理装置として機能させるための手順は、例えば、当該コンピュータを外部のネットワークから切断するための切断手順を含む。切断手順は、コンピュータに各種の命令を実行させる手順を含む。上記の命令としては、(i)コンピュータに、当該コンピュータを外部のネットワークから切断させるための命令、(ii)コンピュータに、当該コンピュータを外部のネットワークから切断することを促すための情報を当該コンピュータのユーザに提示させるための命令、(iii)コンピュータに、当該コンピュータに予めインストールされているネットワーク切断プログラムを起動させるための命令、及び/又は、(iv)コンピュータに、外部のネットワークから切断を依頼させるための命令などが例示される。
【0073】
他の実施形態において、コンピュータを秘密鍵管理装置として機能させるための手順は、例えば、切断処理が実行された後、秘密鍵と、秘密鍵に対応する公開鍵とを生成するための生成手順を含む。さらに他の実施形態において、コンピュータを秘密鍵管理装置として機能させるための手順は、生成手順の前に、当該コンピュータが外部のネットワークから切断されていることを確認するための確認手順を含んでもよい。確認手順は、例えば、上記の切断手順が実行された後、上記の生成手順が実行される前に実行される。生成手順は、例えば、上記の確認手順の後に実行される。
【0074】
上述された符号化データは、切断手順の少なくとも一部に対応するコード、スクリプト又はプログラムが符号化された第1符号化データを含んでよい。上述された符号化データは、生成手順の少なくとも一部に対応するコード、スクリプト又はプログラムが符号化された第2符号化データを含んでよい。上述された符号化データは、確認手順の少なくとも一部に対応するコード、スクリプト又はプログラムが符号化された第2符号化データを含んでよい。上述されたとおり、符号化処理としては、任意のハッシュ関数を用いてハッシュ値を導出する処理が例示される。各手順の少なくとも一部としては、各手順に含まれる複数の手順又は工程の一部又は全部が例示される。
【0075】
アプリケーション提供部320は、1以上のウォレットアプリケーションのそれぞれを、外部の情報処理装置によるアクセスが可能な状態にする。これにより、利用者端末150は、ウォレット提供サーバ120にアクセスして、ウォレットアプリケーションのコンテンツを取得することができる。
【0076】
ウォレットアプリケーションは、Webアプリケーションとして提供されてよい。これにより、利用者端末150が、Webブラウザを用いてウォレットアプリケーションを閲覧することで、Webブラウザの基本機能によりウォレットアプリケーションが実行され得る。また、上述されたとおり、Webブラウザに組み込まれた拡張機能によりウォレットアプリケーションの実行が制御又は制限され得る。
【0077】
本実施形態において、ウォレット認証部330は、生成されたウォレットの認証処理(有効化処理と称される場合がある。)を実行する。ウォレットは、例えば、チャレンジ-レスポンス方式により認証される。ウォレットの認証処理の詳細は後述される。
【0078】
第2符号化データは、生成手順符号化データの一例であってよい。
【0079】
図4は、ウォレット監査サーバ130の内部構成の一例を概略的に示す。本実施形態において、ウォレット監査サーバ130は、監査要求取得部420と、アプリケーション取得部430と、監査部440と、監査結果登録部450とを備える。
【0080】
本実施形態において、監査要求取得部420は、ウォレット提供サーバ120からの監査要求を取得する。本実施形態において、アプリケーション取得部430は、監査要求の対象となるウォレットアプリケーションのコンテンツを取得する。アプリケーション取得部430は、例えば、監査要求取得部420が監査要求を取得した場合に、監査要求の対象となるウォレットアプリケーションのコンテンツを取得する。アプリケーション取得部430は、上記のウォレットアプリケーションのURIを取得してもよい。
【0081】
アプリケーション取得部430がウォレットアプリケーションのコンテンツ及びURIを取得する手法は特に限定されない。一実施形態において、アプリケーション取得部430は、ウォレット監査サーバ130の任意の記憶装置に格納されているコンテンツを読み込むことで、当該コンテンツを取得する。上記のコンテンツは、例えば、任意のタイミングにおいて、ウォレット提供サーバ120からウォレット監査サーバ130にアップ―ドされ、上記の記憶装置に格納される。任意のタイミングにおいてウォレット提供サーバ120にアクセスしたアプリケーション取得部430が、ウォレット提供サーバ120から上記のコンテンツを取得し、当該コンテンツを上記の記憶装置に格納してもよい。他の実施形態において、アプリケーション取得部430は、リポジトリに公開されているデプロイ前のコンテンツを取得してもよい。
【0082】
本実施形態において、監査部440は、ウォレットアプリケーションの安全性を検査する。監査部440は、予め定められたアルゴリズムに従って、ウォレットアプリケーションの安全性を検査してよい。監査部440は、ウォレットアプリケーションの安全性に関する予め定められた事項について検査してよい。
【0083】
一実施形態において、監査部440は、例えば、ウォレットアプリケーションのコンテンツリソースのうち、コンテンツリソースが利用している全てのスクリプトを抽出する。監査部440は、当該抽出されたスクリプトを、予め定められたアルゴリズムに従って検査する。他の実施形態において、監査部440は、例えば、ウォレットアプリケーションのコンテンツリソースの一部を抽出する。例えば、監査部440は、ウォレットの動作に関連する機能を実現するためのスクリプトを抽出する。
【0084】
例えば、コンテンツソースのスクリプトタグ内にウォレット機能であることを示す識別子が挿入されている場合、監査部440は、当該タグに従って上記のスクリプトを抽出する。監査部440は、ウォレットアプリケーションの提供者との間で共有された手順に従って、上記のスクリプトを抽出してもよい。
【0085】
監査部440は、抽出されたスクリプトを検査して、ウォレットアプリケーションの機能が予め定められたプロトコルに従って実現されていることを確認する。上記のプロトコルとしては、秘密鍵及び公開鍵のペアの生成処理が実行される前に、コンピュータが外部のネットワークから切断されていること、安全な公開鍵暗号方式が利用されていること、生成された秘密鍵が外サーバへ送信されていないことなどが例示される。
【0086】
監査部440は、手動による検査の要否を判定してもよい。手動による検査が必要と判断された場合、監査部440は、手動による検査が要求される事項を示す情報と、コンテンツ内の当該検査の対象となる箇所を示す情報とを出力してよい。
【0087】
本実施形態において、監査部440は、ウォレットアプリケーションの少なくとも一部を符号化して、当該ウォレットアプリケーションの少なくとも一部が符号化されたデータ(上述されたとおり、符号化データと称される場合がある。)を生成する。符号化処理としては、任意のハッシュ関数を用いてハッシュ値を導出する処理が例示される。監査部440は、ウォレットアプリケーションの安全性が確認された場合に、符号化処理を実行してよい。
【0088】
上述されたとおり、ウォレットアプリケーションは、ウォレットを生成するためのプログラムを含む。また、ウォレットを生成するためのプログラムは、例えば、(i)上述された切断手順に対応するコード、スクリプト又はプログラム、(ii)上述された生成手順に対応するコード、スクリプト又はプログラム、(iii)上述された確認手順に対応するコード、スクリプト又はプログラム、及び/又は、(iv)生成されるウォレットに関連するコード、スクリプト又はプログラムを含む。
【0089】
符号化データとしては、上記の各コード、スクリプト若しくはプログラム、又は、それらの任意の組み合わせを符号化して得られるデータが例示される。例えば、ウォレットアプリケーションのコンテンツ中にスクリプトSa及びSbが含まれる場合、監査部440は、当該スクリプトSa及びSbにハッシュ関数Hを適用し、一意のスクリプトハッシュH(Sa、Sb)を取得する。監査部440は、スクリプトハッシュH(Sa)及び/又はスクリプトハッシュH(Sb)を取得してもよく、ウォレットアプリケーションのコンテンツ全体のハッシュ値を取得してもよい。
【0090】
監査結果登録部450は、監査部440による検査の結果を示す情報(上述されたとおり検査情報と称される場合がある。)を、監査結果データベース140に登録する。監査結果登録部450は、ウォレットアプリケーションの安全性が確認された場合に、検査情報を監査結果データベース140に登録してよい。
【0091】
例えば、監査結果データベース140がEthereumブロックチェーンにより実現されている場合、監査結果登録部450は、当該ブロックチェーン上のスマートコントラクトに対して、検査情報を登録する。例えば、監査結果登録部450は、安全が確認されたウォレットアプリケーションのURIを示すトランザクションを作成し、当該トランザクションをブロックチェーンネットワーク12に発出する。これにより、ウォレットアプリケーションが検査済みであることを示す証跡がブロックチェーン上に登録される。なお、上述されたとおり、上記のトランザクションの作成及び/又は登録は、上述された代理サーバにより代行されてよい。これにより、1以上のウォレットアプリケーションのそれぞれの検査情報が、監査結果データベース140に格納される。
【0092】
検査情報は、当該ウォレットアプリケーションのURIを含んでよい。例えば、監査結果データベース140には、安全性が確認されたウォレットアプリケーションの検査結果が登録され、安全性が確認されていないウォレットアプリケーションの検査結果が登録されない場合、ウォレットアプリケーションの検査結果を示す情報は、当該ウォレットアプリケーションのURIであってもよい。
【0093】
監査部440は、ウォレットアプリケーションの検査結果を示す情報と、当該ウォレットアプリケーションの符号化データとを対応付けて、監査結果データベース140に登録してもよい。これにより、1以上のウォレットアプリケーションのそれぞれの検査情報と、当該ウォレットアプリケーションの符号化データとが対応付けて、監査結果データベース140に格納される。例えば、監査結果登録部450は、安全が確認されたウォレットアプリケーションのURIと、符号化データとの対応関係を示すトランザクションを作成し、当該トランザクションをブロックチェーンネットワーク12に発出する。
【0094】
監査部440は、検査部又は符号化データ生成部の一例であってよい。監査結果登録部450は、登録部の一例であってよい。
【0095】
図5は、ウォレット監査サーバ130における情報処理の一例を概略的に示す。本実施形態によれば、まず、S520において、アプリケーション取得部430が、ウォレット提供サーバ120から監査要求を受信する。監査要求は、例えば、監査要求の対象となるウォレットアプリケーションのURLを含む。ウォレットアプリケーションのURLは、ウォレットアプリケーションのURIの一例であってよい。アプリケーション取得部430は、監査要求に含まれるURLにアクセスしてウォレットアプリケーションのコンテンツを取得する。なお、ウォレットアプリケーションのコンテンツ及びURIの取得手順は、本実施形態に限定されない。アプリケーション取得部430は、ウォレットアプリケーションのコンテンツ及びURIを、監査部440に出力する。
【0096】
次に、S532において、監査部440は、ウォレットアプリケーションを検査する。次に、S534において、監査部440は、上記の検査によりウォレットアプリケーションの安全性が確認されたか否かを判定する。
【0097】
上記検査においてウォレットアプリケーションの安全性が確認された場合(S534のYesの場合)、S536において、監査部440は、ウォレットアプリケーションのコンテンツ内に展開している各JavaScriptのハッシュ値を導出する。その後、S540において、監査結果登録部450が、検査結果及び上記のハッシュ値を監査結果データベース140に登録する。一方、上記検査においてウォレットアプリケーションの安全性が確認されていない場合(S534のNoの場合)、検査結果が監査結果データベース140に登録されることなく、一連の処理が終了する。
【0098】
図6は、利用者端末150の内部構成の一例を概略的に示す。本実施形態において、利用者端末150は、例えば、通信部622と、入出力部624と、格納部626と、制御部630とを備える。本実施形態において、制御部630は、例えば、ブラウザ実行部640と、入出力制御部650と、通信制御部660とを備える。本実施形態において、ブラウザ実行部640は、例えば、ウォレット生成部642と、ウォレット実行部644と、制限部646とを有する。
【0099】
本実施形態において、通信部622は、ブロックチェーンネットワーク12及び/又は通信ネットワーク14を介して、デジタル資産管理システム100の各部との間で情報を送受する。通信部622は、例えば、制御部630からの指示に基づいて、利用者端末150と、デジタル資産管理システム100の各部との間で情報を送受する。
【0100】
本実施形態において、入出力部624は、例えば、ユーザ20とのインタフェースとして機能する。一実施形態において、入出力部624は、ユーザ20からの各種の入力を受け付ける。入出力部624は、ユーザ20の人為的操作を検出してよい。入出力部624は、ユーザ20からの入力又は指示の内容を示す情報を制御部630に出力してよい。他の実施形態において、入出力部624は、ユーザ20に各種の情報を提示する。入出力部624は、ユーザ20からの入力又は指示を受け付けるための画面を提示してよい。入出力部624は、制御部630からの指示に基づいて、ユーザ20に情報を提示してよい。
【0101】
入出力部624は、各種の入力装置を備えてよい。入力装置としては、キーボード、ポインティングデバイス、タッチパネル、マイク、音声入力装置、ジェスチャ入力装置などが例示される。入出力部624は、各種の出力装置を備えてよい。出力装置としては、ディスプレイ、プロジェクタ、スピーカなどが例示される。
【0102】
本実施形態において、格納部626は、各種の情報を格納する。一実施形態において、格納部626は、利用者端末150における情報処理に用いられる各種の情報を格納する。他の実施形態において、格納部626は、利用者端末150における情報処理により生成された各種の情報を格納する。
【0103】
格納部626は、ウォレットに関連する各種の情報を格納してよい。ウォレットに関連する情報としては、ウォレットに割り当てられたID、ウォレットの秘密鍵、当該秘密鍵に対応する公開鍵、ウォレットの有効化又はユーザ20の認証に用いられる情報などが例示される。上記の秘密鍵は、暗号化されていてもよい。本実施形態において、格納部626は、例えば、上記の秘密鍵を、メタデータと合わせたデータファイルとして保管する。
【0104】
格納部626としては、各種の記憶媒体が例示される。上記の記憶媒体としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)などのストレージ又はハードウエアデバイスが例示される。
【0105】
本実施形態において、制御部630は、利用者端末150の動作を制御する。制御部630は、例えば、利用者端末150における各種のプログラムの実行を制御する。制御部630は、プログラムを実行するか否かを決定してもよく、プログラムの実行を停止又は中断するか否かを決定してもよい。
【0106】
本実施形態において、ブラウザ実行部640は、Webブラウザを実行する。一実施形態において、ブラウザ実行部640は、Webブラウザの基本機能を利用して、利用者端末150のコンピュータに各種の処理を実行させる。他の実施形態において、ブラウザ実行部640は、Webブラウザに実装された拡張機能を利用して、利用者端末150のコンピュータに各種の処理を実行させる。Webブラウザの基本機能及び拡張機能は協調して動作してよい。
【0107】
本実施形態においては、ウォレット生成部642及びウォレット実行部644がWebブラウザの基本機能により実現され、制限部646が、Webブラウザに組み込まれた拡張機能により実現される場合を例として、ブラウザ実行部640の各部の詳細が説明される。しかしながら、Webブラウザの基本機能により実現される要素と、Webブラウザに組み込まれた拡張機能により実現される要素との組み合わせは、本実施形態に限定されない。他の実施形態において、制限部646は、Webブラウザの基本機能により実現されてもよい。
【0108】
本実施形態において、ウォレット生成部642は、ウォレットアプリケーションを実行する。これにより、デジタル資産に紐づけられ得る秘密鍵及び公開鍵のペアが生成される。その結果、利用者端末150の上で機能するウォレットが生成される。
【0109】
具体的には、ウォレット生成部642は、ウォレット提供サーバ120にアクセスして、ウォレットアプリケーション(実行処理の対象となるウォレットアプリケーションと称される場合がある。)を取得する。ウォレット生成部642は、制限部646から指示に従って、ウォレットアプリケーションを実行するか否かを決定する。例えば、ウォレット生成部642は、制限部646から、ウォレットアプリケーションの実行を制御するための信号(制御信号と称される場合がある。)を取得する。ウォレット生成部642は、制御信号に従ってウォレットアプリケーションを実行する。
【0110】
例えば、ウォレット生成部642は、制限部646からウォレットアプリケーションの実行を指示する信号(実行指示信号と称される場合がある。)を受信した場合に、ウォレットアプリケーションを実行する。ウォレット生成部642は、制限部646から実行指示信号を受信したことに応じて、ウォレットアプリケーションの実行を開始してもよい。
【0111】
一実施形態において、制限部646がウォレットアプリケーションの実行を許可する又は制限しないことを決定した場合、ウォレット生成部642は、ウォレットアプリケーションを実行する。他の実施形態において、制限部646がウォレットアプリケーションの実行を許可しないことを決定した場合、ウォレット生成部642は、ウォレットアプリケーションを実行しない。さらに他の実施形態において、制限部646がウォレットアプリケーションの実行を制限することを決定した場合、ウォレット生成部642は、ウォレットアプリケーションの少なくとも一部を実行しない。例えば、ウォレット生成部642は、上述された生成手順を実行しない。
【0112】
ウォレット生成部642は、実行対象となるウォレットアプリケーションを取得した後、当該ウォレットアプリケーションの少なくとも一部を符号化して、制限部646における検証処理に用いられるデータ(検証用データと称される場合がある。)を生成してもよい。上記の符号化処理は、ウォレット監査サーバ130における符号化処理と同様の処理であってよい。ウォレット生成部642における符号化処理は、ウォレット監査サーバ130において用いられたハッシュ関数と同一のハッシュ関数を用いてハッシュ値を導出する処理であってよい。ウォレット生成部642は、上記の検証用データを、制限部646に出力してよい。
【0113】
本実施形態において、ウォレット実行部644は、ウォレット生成部642において生成されたウォレットを利用して、デジタル資産を利用するための処理を実行する。例えば、ウォレット実行部644は、ウォレットの有効化処理を実行する。
【0114】
本実施形態において、制限部646は、ウォレット生成部642を制御する。制限部646は、例えば、ウォレット生成部642におけるウォレット生成処理の少なくとも一部の実行を制限するか否かを決定する。制限部646は、例えば、監査結果データベース140に格納された検査情報を参照して、実行処理の対象となるウォレットアプリケーションの安全性が確認されているか否かを判定する。上記のウォレットアプリケーションの安全性が確認されていると判定された場合、制限部646は、ウォレットアプリケーションの実行が許可される又は制限されていないことを示す制御信号を、ウォレット生成部642に出力する。
【0115】
具体的には、制限部646は、まず、監査結果データベース140にアクセスして、上記のウォレットアプリケーションの検査情報を取得する。この場合において、制限部646は、上記のウォレットアプリケーションの検査情報及び符号化データを取得してよい。
【0116】
次に、制限部646は、検査によりウォレットアプリケーションの安全性が確認されたことを示す検査情報を取得した場合、制限部646は、ウォレットアプリケーションの実行を許可する又は制限しないことを決定する。制限部646が上記の検査情報を取得し、且つ、ウォレット実行部644が出力した検証用データと、上記の符号化データとが合致する場合、制限部646は、ウォレットアプリケーションの実行を許可する又は制限しないことを決定してもよい。
【0117】
一方、制限部646が、検査によりウォレットアプリケーションの安全性が確認されたことを示す検査情報を取得できない場合、制限部646は、ウォレットアプリケーションの実行を許可しない又は制限することを決定する。例えば、監査結果データベース140にウォレットアプリケーションのURIが登録されていない場合、制限部646は、ウォレットアプリケーションの実行を許可しない又は制限することを決定する。制限部646が上記の検査情報を取得できない場合、又は、ウォレット実行部644が出力した検証用データと、上記の符号化データとが合致しない場合、制限部646は、ウォレットアプリケーションの実行を許可しない又は制限することを決定してもよい。
【0118】
本実施形態において、入出力制御部650は、入出力部624を制御する。本実施形態において、通信制御部660は、通信部622を制御する。
【0119】
制御部630は、実行装置、判定装置又は情報処理システムの一例であってよい。ブラウザ実行部640は、実行装置、判定装置又は情報処理システムの一例であってよい。ウォレット生成部642は、プログラム取得部、検証用データ取得部、プログラム出力部、制御情報取得部、プログラム実行部、実行装置又は情報処理システムの一例であってよい。制限部646は、判定装置又は情報処理システムの一例であってよい。制御信号は、制御情報の一例であってよい。実行指示信号は、制御情報の一例であってよい。
【0120】
(別実施形態の一例)
本実施形態においては、ウォレットの秘密鍵が、利用者端末150に配された格納部626に格納される場合を例として、デジタル資産管理システム100の詳細が説明された。しかしながら、デジタル資産管理システム100は、本実施形態に限定されない。他の実施形態において、ウォレットの秘密鍵は、利用者端末150の外部の記憶媒体に格納されてもよく、オンラインストレージサービス又はクラウドストレージサービスにより提供される仮想的な記憶媒体に格納されてもよい。
【0121】
図7は、利用者端末150における情報処理の一例を概略的に示す。本実施形態によれば、まず、S722において、ウォレット生成部642がウォレットアプリケーションのコンテンツを取得する。次に、S724において、制限部646がウォレットアプリケーションの安全性を確認する。ウォレットアプリケーションの安全性が確認された場合、S732において、ウォレット生成部642がウォレットアプリケーションを実行する。ウォレットアプリケーションが実行されると、まず、ウォレットを生成するための準備処理が実行される。上記の準備処理が完了したことが確認された場合、S734において、ウォレットの生成処理が実行される。その後、S742において、ウォレットの認証処理又は有効化処理が実行される。
【0122】
図8は、入出力部624から出力される画面800の一例を概略的に示す。画面800は、例えば、ブラウザ実行部640が、ウォレット提供サーバ120にアクセスしてウォレットアプリケーションを取得するときに、入出力部624の表示装置に表示される。
【0123】
本実施形態において、画面800は、Webブラウザの実行結果が表示されるブラウザ表示領域820を含む。上述されたとおり本実施形態においては、ウォレットアプリケーションは、Webブラウザを介して実行される。そのため、本実施形態において、ブラウザ表示領域820の内部には、ウォレットアプリケーションの実行結果が表示されるウォレット表示領域840が配される。
【0124】
本実施形態において、ウォレット表示領域840には、例えば、各種のメッセージを表示するためのオブジェクト842と、コンピュータにウォレットアプリケーションを取得するための処理を実行させるためのコマンドが埋め込まれたオブジェクト844とが配される。また、上述されたとおり、本実施形態においては、Webブラウザに拡張機能が実装されている。そのため、ウォレット表示領域840には、拡張機能が有効であることを示すオブジェクト862と、拡張機能からユーザ20に提示される各種のメッセージが表示されるオブジェクト864とが配される。
【0125】
図9は、入出力部624から出力される画面900の一例を概略的に示す。画面900は、例えば、制限部646がウォレットアプリケーションの実行を許可することを決定し、ウォレット生成部642がウォレットアプリケーションを実行することを決定したときに、入出力部624の表示装置に表示される。
【0126】
本実施形態においては、例えば、オブジェクト864の内側に、コンピュータにウォレットアプリケーションを実行させるためのコマンドが埋め込まれたオブジェクト966が配される。ユーザ20が、利用者端末150を操作して、オブジェクト966をクリックすると、ウォレット生成部642がウォレットアプリケーションの実行処理を開始する。ウォレットアプリケーションの実行処理が開始されると、まず、ウォレットを生成するための準備処理が実行される。上記の準備処理が完了すると、ウォレットアプリケーションの実行処理が一時的に中断される。
【0127】
図10は、入出力部624から出力される画面1000の一例を概略的に示す。画面1000は、ウォレットを生成するための準備処理が完了したときに、入出力部624の表示装置に表示される。
【0128】
本実施形態においては、例えば、オブジェクト864の内側に、コンピュータにウォレットアプリケーションの実行処理を続行させるためのコマンドが埋め込まれたオブジェクト1066が配される。ユーザ20が、利用者端末150を操作して、オブジェクト1066をクリックすると、ウォレット生成部642がウォレットアプリケーションの実行処理を続行する。これにより、ウォレットの生成処理が実行される。具体的には、利用者端末150が外部のネットワークから切断されていることを確認するための処理と、秘密鍵及び公開鍵のペアを生成するための処理とが実施される。
【0129】
図11は、ウォレットアプリケーション(図中、ウォレットアプリと省略される場合がある。)の安全性確認処理の一例を概略的に示す。本実施形態によれば、まず、S1122において、ユーザ20が利用者端末150を操作して、ウォレットアプリケーションが提供されるWebサイト(アプリ提供サイトと称される場合がある。)へのアクセスを指示する。アプリ提供サイトは、例えば、ウォレット提供サーバ120により提供される。
【0130】
利用者端末150がユーザ20からのアクセス指示を受け付けると、ブラウザ実行部640がWebブラウザを起動して、ウォレット提供サーバ120にアクセスする。Webブラウザがウォレット提供サーバ120にアクセスすると、S1124において、ウォレット生成部642が、ウォレット提供サーバ120に、上記のアプリ提供サイトのコンテンツの送信を要求する。また、S1126において、ウォレット提供サーバ120が上記の要求に応答して、上記のアプリ提供サイトのコンテンツを利用者端末150に送信する。ウォレット生成部642は、上記のコンテンツを処理して、アプリ提供サイトの画面を入出力部624の表示装置に提示する。入出力部624は、例えば、上述された画面800をユーザ20に提示する。上述されたとおり、画面800には、ウォレットアプリケーションのダウンロードを開始するためのコマンドが埋め込まれたオブジェクト844が配される。
【0131】
次に、S1132において、ユーザ20が、画面800を閲覧し、利用者端末150を操作して、画面800に配されたオブジェクト844をクリックする。オブジェクト844がクリックされると、S1134において、ウォレット生成部642が、ウォレット提供サーバ120に、ウォレットアプリケーションのコンテンツの送信を要求する。また、S1136において、ウォレット提供サーバ120が上記の要求に応答して、上記のウォレットアプリケーションのコンテンツを利用者端末150に送信する。
【0132】
次に、ウォレット生成部642が、ウォレットアプリケーションのコンテンツを取得すると、S1140において、ウォレットアプリケーションのコンテンツ内に展開する各JavaScriptのハッシュ値が導出される。上述されたとおり、ハッシュ値は、符号化データの一例であってよい。
【0133】
本実施形態においては、ウォレットアプリケーションの安全性確認処理の理解を容易にすることを目的として、ウォレットアプリケーシのコンテンツ内に展開する全てのJavaScriptのハッシュ値が導出される場合を例として、ウォレットアプリケーションの安全性確認処理の詳細が説明される。しかしながら、ウォレットアプリケーションの安全性確認処理は、本実施形態に限定されない。他の実施形態によれば、例えば、ウォレットアプリケーシのコンテンツ内に展開する複数のJavaScriptの一部について、ハッシュ値が導出される。
【0134】
(ハッシュ値の導出手順の一例)
一実施形態によれば、まず、ウォレット生成部642が、ウォレットアプリケーシのコンテンツ、又は、当該コンテンツ内に展開する各JavaScriptを、制限部646に送信する。次に、制限部646は、予め定められたハッシュ関数を用いて各JavaScriptのハッシュ値を導出することで、検証用コードを生成する。これにより、制限部646は、ウォレットアプリケーシのコンテンツ内に展開する各JavaScriptのハッシュ値(つまり、検証用コードである。)を取得することができる。
【0135】
本実施形態によれば、ウォレット生成部642から制限部646への不正なデータ又は不正確な検証用データの送信が抑制される。不正なデータとしては、ウォレット提供サーバ120から提供されたウォレットアプリケーションのコンテンツ内に展開する各JavaScriptから導出されたハッシュ値とは異なるデータ、マルウエアなどが例示される。
【0136】
(ハッシュ値の導出手順の他の例)
他の実施形態によれば、まず、ウォレット生成部642が、予め定められたハッシュ関数を用いて、ウォレットアプリケーシのコンテンツ内に展開する各JavaScriptのハッシュ値を導出する。これにより、上述された検証用コードが生成される。ウォレット生成部642は、生成された検証用コードを制限部646に出力する。これにより、制限部646は、ウォレットアプリケーシのコンテンツ内に展開する各JavaScriptのハッシュ値(つまり、検証用コードである。)を取得することができる。
【0137】
次に、S1152において、制限部646は、監査結果データベース140に格納された検査情報を参照して、ウォレット生成部642が取得したウォレットアプリケーションの安全性が確認されているか否かを判定する。上記のウォレットアプリケーションの安全性が確認されていると判定された場合、S1154において、制限部646は、例えば、検査の結果と、ウォレットアプリケーションが実行可能であることとをユーザ20に提示するための画面を、入出力部624の表示装置に提示する。入出力部624は、例えば、上述された画面900をユーザ20に提示する。上述されたとおり、画面900には、ウォレットアプリケーションの実行を開始するためのコマンドが埋め込まれたオブジェクト966が配される。これにより、ウォレットアプリケーションの安全性確認処理が終了する。
【0138】
ウォレットアプリケーシのコンテンツは、管理プログラムの少なくとも一部の一例であってよい。ウォレットアプリケーシのコンテンツ内に展開する各JavaScriptは、管理プログラムの一部の一例であってよい。
【0139】
図12は、ウォレットの生成準備処理の一例を概略的に示す。本実施形態によれば、まず、S1222において、ユーザ20が、画面900を閲覧し、利用者端末150を操作して、画面900に配されたオブジェクト966をクリックする。オブジェクト966がクリックされると、制限部646が、ユーザからの指示を受け付け、ウォレットアプリケーションの実行を許可することを決定する。
【0140】
次に、S1224において、制限部646は、ウォレットアプリケーションの実行が許可されることを示す制御信号を生成し、当該制御信号をウォレット生成部642に出力する。上記の制御信号は、ウォレット生成部642に、ウォレットを生成するための準備処理を実行するためのスクリプトを実行させるための命令であってもよく、当該命令を含んでもよい。これにより、ウォレット生成部642が上記の制御信号を取得すると、ウォレット生成部642は、ウォレットを生成するための準備処理を実行する。
【0141】
具体的には、まず、S1232において、ウォレット生成部642が、ウォレット提供サーバ120に、チャレンジCの生成及び送信を要求する。次に、S1234において、ウォレット提供サーバ120がチャレンジCを生成する。ウォレット提供サーバ120は、ユーザ20の識別情報と、チャレンジCとを対応付けて適切な記憶媒体に格納する。ウォレット提供サーバ120は、ウォレット生成部642からの要求に対する応答として、チャレンジCを利用者端末150に送信する。これにより、S1236において、ウォレット生成部642が、チャレンジCを取得する。
【0142】
チャレンジCは、リクエスト毎に変更又は生成されるランダムなデータであってよい。ユーザ20の識別情報と、チャレンジCとを対応付けて格納する工程において、チャレンジCの払出先がユーザ20であることの識別は、例えば、ウォレットアプリケーションを利用する際のログイン認証により実施される。上記のログイン認証時に、ユーザ20は、例えば、ユーザ20に対して事前に割り当てられた識別情報を入力する。上記の識別情報としては、会員番号などが例示される。
【0143】
次に、S1242において、ウォレット生成部642は、ネットワークの切断を促すユーザインタフェースを、入出力部624の表示装置に提示させる。ウォレット生成部642は、制限部646からの指示に従って、上記のユーザインタフェースを表示装置に提示させてよい。上記の指示は、例えば、S1224において、制限部646がウォレット生成部642に送信した制御信号に含まれる。
【0144】
S1244において、ユーザ20は、例えば、利用者端末150を操作して、利用者端末150をオフラインの環境とする。例えば、利用者端末150のネットワーク機能を無効にすることで、利用者端末150がオフラインとなる。これにより、後述されるウォレット生成処理において、秘密鍵をセキュアに生成することができる。
【0145】
なお、利用者端末150をオフラインの環境とするための手順は、上記の実施形態に限定されない。他の実施形態において、ウォレット生成部642又は制限部646が、利用者端末150のネットワーク機能を強制的に無効にする。
【0146】
次に、S1242において、ウォレット生成部642が、ネットワークの切断を検知する。その後、S1252において、ウォレット生成部642は、上述された準備処理が完了したことを、制限部646に通知する。
【0147】
制限部646は、例えば、ウォレットを生成するための準備が完了し、ウォレットの生成処理が開始可能であることをユーザ20に提示するための画面を、入出力部624の表示装置に提示させる。入出力部624は、例えば、上述された画面1000をユーザ20に提示する。上述されたとおり、画面900には、ウォレットアプリケーションの実行を続行するためのコマンドが埋め込まれたオブジェクト1066が配される。これにより、上述された準備処理が終了する。
【0148】
ウォレットを生成するための準備処理は、コンピュータを秘密鍵管理装置として機能させるための手順の一例であってよい。ネットワークの切断を促すユーザインタフェースは、コンピュータを外部のネットワークから切断することを促すための情報の一例であってよい。
【0149】
図13は、ウォレットの生成処理の一例を概略的に示す。本実施形態によれば、まず、S1322において、ユーザ20が、画面1000を閲覧し、利用者端末150を操作して、画面1000に配されたオブジェクト1066をクリックする。オブジェクト1066がクリックされると、制限部646が、ユーザからの指示を受け付け、ウォレットアプリケーションの実行を続行することを決定する。
【0150】
次に、S1324において、制限部646は、まず、利用者端末150及び外部のネットワークの接続が切断されていることを確認する。ネットワークの切断が確認されると、S1326において、制限部646が、ウォレット生成部642を制御して、ウォレットの生成処理を実行させる。その後、S1330において、ウォレット生成部642がウォレットの生成処理を実行する。ウォレットの生成処理の詳細は後述される。ウォレットが生成されると、S1332において、ウォレット生成部642は、ウォレットが生成されたことを制限部646に通知する。
【0151】
次に、S1342において、制限部646は、ウォレットに関連するデータのエクスポートを促すためのユーザインタフェースを、入出力部624の表示装置に提示させる。ウォレットに関連するデータとしては、暗号化済み秘密鍵、公開鍵、チャレンジC、署名値などが例示される。S1344において、ユーザ20が、利用者端末150を操作して、ウォレットに関連するデータのエクスポートを制限部646に指示すると、S1344において、制限部646は、ウォレット生成部642に対して、上記のデータのエクスポートを指示する。
【0152】
次に、S1348において、ウォレット生成部642が、上述されたWebアプリケーションを制御して、上記のデータを利用者端末150にダウンロードする。これにより、上記のデータが、利用者端末150の格納部626に格納される。一実施形態において、ダウンロードされた各データは、別々のファイルとして格納される。他の実施形態において、ダウンロードされた各データは、1つのファイルとして格納される。上記のデータは、例えば、圧縮ファイルのように一つのファイルにまとめられた状態として格納される。
【0153】
次に、S1352において、ブラウザの終了を促すためのユーザインタフェースを、入出力部624の表示装置に提示させる。これにより、ウォレットアプリケーションの実行処理が終了する。
【0154】
図14は、ステップ1330における情報処理の一例を概略的に示す。上述されたとおり、S1330は、オフライン環境で実行される。
【0155】
本実施形態によれば、まず、S1422において、ウォレット生成部642が、ウォレットとしての秘密鍵/公開鍵のペアを生成する。なお、このとき、利用者端末150はネットワークからは切断されており、上記の鍵の生成は、サーバサイドではなくクライアントサイドで実行される。この場合において、暗号学的な処理には、例えば、Webブラウザに標準仕様として実装されているWeb Crypto APIが利用される。
【0156】
次に、S1424において、ウォレット生成部642は、S1236においてウォレット生成部642が取得したチャレンジCに対して、S1422において生成された秘密鍵を用いて電子署名を行い、得られた署名値を保持する。署名値には、例えば、公開鍵、秘密鍵で暗号化されたチャレンジCなどが含まれる。
【0157】
次に、S1426において、ユーザ20は、利用者端末150を操作して、上記の秘密鍵を暗号化するためのパスワードを設定する。その後、S1428において、ウォレット生成部642は、秘密鍵を上記のパスワードで暗号化する。これにより、ステップ1330の処理が終了する。
【0158】
(別実施形態の一例)
本実施形態においては、S1422が実行された後、S1424、S1426及びS1428が実行される場合を例として、ステップ1330における情報処理の詳細が説明された。しかしながら、ステップ1330における情報処理は本実施形態に限定されない。他の実施形態において、S1424、S1426及びS1428の少なくとも1つが実行されなくてもよい。
【0159】
図15は、ウォレットの有効化処理の一例を概略的に示す。本実施形態によれば、S1522において、ユーザ20は、利用者端末150を操作して、ウォレットの有効化サービスが提供されるWebサイト(アクティベーションサイトと称される場合がある。)へのアクセスを指示する。アクティベーションサイトは、例えば、ウォレット提供サーバ120により提供される。
【0160】
例えば、ウォレット提供サーバ120において、ユーザ20がウォレットを利用する正当な権限を有することを認証ための処理が実行され、当該認証が完了することにより、ウォレットがアクティベーションされる。これにより、ユーザ20がウォレットの持ち主であること、ユーザ20が秘密鍵を所有していること、ユーザ20がブロックチェーン上のアドレスを所有していることなどが示される。その結果、様々なウォレット管理機能が実現される。例えば、ウォレット提供サーバ120は、ユーザ20のアドレスへの入金を追跡したり、不正な入出金取引を停止したりすることができる。
【0161】
利用者端末150がユーザ20からのアクセス指示を受け付けると、ブラウザ実行部640がWebブラウザを起動して、ウォレット提供サーバ120にアクセスする。Webブラウザがウォレット提供サーバ120にアクセスすると、S1524において、ウォレット実行部644が、ウォレット提供サーバ120に、上記のアクティベーションサイトのコンテンツの送信を要求する。また、S1526において、ウォレット提供サーバ120が上記の要求に応答して、上記のアクティベーションサイトのコンテンツを利用者端末150に送信する。ウォレット実行部644は、上記のコンテンツを処理して、アクティベーションサイトの画面を入出力部624の表示装置に提示させる。
【0162】
次に、S1532において、署名値の提出処理が実行される。具体的には、まず、ウォレット提供サーバ120は、ユーザ20がアクティベーションサイトアクセスしていることを識別する。一実施形態において、ID及びパスワードを用いたログイン認証により、ユーザ20が識別される。他の実施形態において、ユーザ20に割り当てられた会員番号が入力されることにより、ユーザ20が識別される。
【0163】
次に、ユーザ20は、利用者端末150を操作して、ウォレットの生成工程において作成された署名値をアクティベーションサイトに提出する。上述されたとおり、署名値は、ウォレット提供サーバ120から払い出されたチャレンジCに対する電子署名である。署名値としては、例えば、ECDSA(Elliptic Curve Digital Signature Algorithm)署名による署名値が用いられ得る。
【0164】
次に、S1534において、ウォレット提供サーバ120は、上記の秘密鍵に対応する公開鍵を取得する。例えば、上記の電子署名の署名形式がEthereumのECDSA署名形式である場合、署名値から公開鍵を復元することができる。上記の電子署名の署名形式が署名値から公開鍵を復元することができない署名方式である場合、ウォレット提供サーバ120は、ユーザ20から、署名値とは別に公開鍵を入手してよい。
【0165】
次に、S1536において、ウォレット提供サーバ120は、上記の公開鍵を用いて、ユーザ20から提出された署名値がチャレンジCに対する電子署名であるか否かを検証する。署名値がチャレンジCに対する電子署名であることが検証された場合、ウォレット提供サーバ120は、ユーザ20が公開鍵に紐づくウォレットの持ち主であると認証する。これにより、ウォレットの有効化処理が終了する。
【0166】
図16は、本発明の複数の態様が全体的又は部分的に具現化されてよいコンピュータ3000の一例を示す。デジタル資産管理システム100の少なくとも一部は、コンピュータ3000により実現されてよい。例えば、ウォレット提供サーバ120の少なくとも一部が、コンピュータ3000により実現される。例えば、ウォレット監査サーバ130の少なくとも一部が、コンピュータ3000により実現される。例えば、監査結果データベース140の少なくとも一部が、コンピュータ3000により実現される。例えば、利用者端末150の少なくとも一部が、コンピュータ3000により実現される。
【0167】
コンピュータ3000にインストールされたプログラムは、コンピュータ3000に、本発明の実施形態に係る装置に関連付けられるオペレーション又は当該装置の1又は複数の「部」として機能させ、又は当該オペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ3000に、本発明の実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ3000に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU3012によって実行されてよい。
【0168】
本実施形態によるコンピュータ3000は、CPU3012、RAM3014、グラフィックコントローラ3016、及びディスプレイデバイス3018を含み、それらはホストコントローラ3010によって相互に接続されている。コンピュータ3000はまた、通信インターフェース3022、ハードディスクドライブ3024、DVD-ROMドライブ3026、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ3020を介してホストコントローラ3010に接続されている。コンピュータはまた、ROM3030及びキーボード3042のようなレガシの入出力ユニットを含み、それらは入出力チップ3040を介して入出力コントローラ3020に接続されている。
【0169】
CPU3012は、ROM3030及びRAM3014内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ3016は、RAM3014内に提供されるフレームバッファ等又はそれ自体の中に、CPU3012によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス3018上に表示されるようにする。
【0170】
通信インターフェース3022は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ3024は、コンピュータ3000内のCPU3012によって使用されるプログラム及びデータを格納する。DVD-ROMドライブ3026は、プログラム又はデータをDVD-ROM3001から読み取り、ハードディスクドライブ3024にRAM3014を介してプログラム又はデータを提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
【0171】
ROM3030はその中に、アクティブ化時にコンピュータ3000によって実行されるブートプログラム等、及び/又はコンピュータ3000のハードウェアに依存するプログラムを格納する。入出力チップ3040はまた、様々な入出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ3020に接続してよい。
【0172】
プログラムが、DVD-ROM3001又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもあるハードディスクドライブ3024、RAM3014、又はROM3030にインストールされ、CPU3012によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ3000に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ3000の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
【0173】
例えば、通信がコンピュータ3000及び外部デバイス間で実行される場合、CPU3012は、RAM3014にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェース3022に対し、通信処理を命令してよい。通信インターフェース3022は、CPU3012の制御の下、RAM3014、ハードディスクドライブ3024、DVD-ROM3001、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
【0174】
また、CPU3012は、ハードディスクドライブ3024、DVD-ROMドライブ3026(DVD-ROM3001)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM3014に読み取られるようにし、RAM3014上のデータに対し様々なタイプの処理を実行してよい。CPU3012は次に、処理されたデータを外部記録媒体にライトバックしてよい。
【0175】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU3012は、RAM3014から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM3014に対しライトバックする。また、CPU3012は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU3012は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0176】
上で説明したプログラム又はソフトウェアモジュールは、コンピュータ3000上又はコンピュータ3000近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それにより、上記のプログラムを、ネットワークを介してコンピュータ3000に提供する。
【0177】
上記実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
【0178】
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0179】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
【0180】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0181】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。また、技術的に矛盾しない範囲において、特定の実施形態について説明した事項を、他の実施形態に適用することができる。また、各構成要素は、名称が同一で、参照符号が異なる他の構成要素と同様の特徴を有してもよい。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0182】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0183】
12 ブロックチェーンネットワーク
14 通信ネットワーク
20 ユーザ
100 デジタル資産管理システム
120 ウォレット提供サーバ
130 ウォレット監査サーバ
140 監査結果データベース
150 利用者端末
320 アプリケーション提供部
330 ウォレット認証部
420 監査要求取得部
430 アプリケーション取得部
440 監査部
450 監査結果登録部
622 通信部
624 入出力部
626 格納部
630 制御部
640 ブラウザ実行部
642 ウォレット生成部
644 ウォレット実行部
646 制限部
650 入出力制御部
660 通信制御部
800 画面
820 ブラウザ表示領域
840 ウォレット表示領域
842 オブジェクト
844 オブジェクト
862 オブジェクト
864 オブジェクト
900 画面
966 オブジェクト
1000 画面
1066 オブジェクト
3000 コンピュータ
3001 DVD-ROM
3010 ホストコントローラ
3012 CPU
3014 RAM
3016 グラフィックコントローラ
3018 ディスプレイデバイス
3020 入出力コントローラ
3022 通信インターフェース
3024 ハードディスクドライブ
3026 DVD-ROMドライブ
3030 ROM
3040 入出力チップ
3042 キーボード
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
【手続補正書】
【提出日】2024-09-03
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータを、デジタルデータの暗号化に用いられる秘密鍵を管理する秘密鍵管理装置として機能させるためのプログラムである管理プログラムを、管理プログラム提供サーバから取得するプログラム取得部と、
前記管理プログラム提供サーバから提供される管理プログラムのURIと、前記管理プログラム提供サーバから提供される前記管理プログラムの少なくとも一部が符号化されたデータである符号化データとを対応付けて格納する検査情報格納装置にアクセスして、前記管理プログラム提供サーバから取得した前記管理プログラムの実行を制御する制限部と、
を備え、
前記検査情報格納装置に格納されている前記管理プログラムのURIは、前記管理プログラム提供サーバから提供される前記管理プログラム安全性に関する第三者による検査の結果を示し、
前記制限部は、前記検査情報格納装置にアクセスして、前記検査情報格納装置に、前記プログラム取得部が取得した前記管理プログラムの前記少なくとも一部を符号化して得られる検証用データと、前記プログラム取得部が取得した前記管理プログラムのURIとが対応づけて格納されているか否かを確認し
前記制限部は、
前記検査情報格納装置に、前記検証用データと、前記プログラム取得部が取得した前記管理プログラムのURIとが対応づけて格納されている場合、前記管理プログラムの実行を許可する又は制限しないことを決定し、
前記検査情報格納装置に、前記検証用データと、前記プログラム取得部が取得した前記管理プログラムのURIとが対応づけて格納されていない場合、前記管理プログラムの実行を許可しない又は制限することを決定
前記管理プログラムは、Webアプリケーションとして提供され、
前記制限部の機能は、ブラウザ拡張機能により実現される
情報処理システム。
【請求項2】
前記検査情報格納装置は、ブロックチェーンネットワークを利用した分散型台帳システムにより構築される
請求項1に記載の情報処理システム。
【請求項3】
前記ブラウザ拡張機能を実装するための拡張プログラムは、前記管理プログラムの提供元とは異なるドメインにより配信される
請求項1又は2に記載の情報処理システム。
【請求項4】
コンピュータを、デジタルデータの暗号化に用いられる秘密鍵を管理する秘密鍵管理装置として機能させるためのプログラムである管理プログラムを、管理プログラム提供サーバから取得するプログラム取得部と、
前記管理プログラム提供サーバから提供される管理プログラムのURIと、前記管理プログラム提供サーバから提供される前記管理プログラムの少なくとも一部が符号化されたデータである符号化データとを対応付けて格納する検査情報格納装置にアクセスして、前記管理プログラム提供サーバから取得した前記管理プログラムの実行を制御する制限部と、
を備え、
前記検査情報格納装置に格納されている前記管理プログラムのURIは、前記管理プログラム提供サーバから提供される前記管理プログラムの安全性に関する第三者による検査の結果を示し、
前記制限部は、前記検査情報格納装置にアクセスして、前記検査情報格納装置に、前記プログラム取得部が取得した前記管理プログラムの前記少なくとも一部を符号化して得られる検証用データと、前記プログラム取得部が取得した前記管理プログラムのURIとが対応づけて格納されているか否かを確認し、
前記制限部は、
前記検査情報格納装置に、前記検証用データと、前記プログラム取得部が取得した前記管理プログラムのURIとが対応づけて格納されている場合、前記管理プログラムの実行を許可する又は制限しないことを決定し、
前記検査情報格納装置に、前記検証用データと、前記プログラム取得部が取得した前記管理プログラムのURIとが対応づけて格納されていない場合、前記管理プログラムの実行を許可しない又は制限することを決定し、
前記検査情報格納装置は、ブロックチェーンネットワークを利用した分散型台帳システムにより構築される
情報処理システム。
【請求項5】
前記制限部が、前記管理プログラムの実行を許可する又は制限しないことを決定した場合に、前記コンピュータが外部のネットワークから切断されていることが確認された後、前記管理プログラムを実行することにより、前記秘密鍵と、前記秘密鍵に対応する公開鍵とを生成する生成部
をさらに備える請求項1又は4に記載の情報処理システム。
【請求項6】
前記生成部は、前記制限部が、前記管理プログラムの実行を許可する又は制限しないことを決定した場合に、前記管理プログラムを実行することにより、
前記管理プログラム提供サーバから、チャレンジコードを取得し、
前記コンピュータが外部のネットワークから切断されていることが確認された後、前記秘密鍵と、前記秘密鍵に対応する公開鍵とを生成し、
前記チャレンジコードに対して前記秘密鍵を用いて電子署名を行うことによって署名値を取得し、
ユーザによって前記管理プログラム提供サーバへのアクセスが指示された場合に、前記管理プログラム提供サーバに、前記署名値を送信する
請求項5に記載の情報処理システム。
【請求項7】
前記管理プログラムは、前記管理プログラム提供サーバから取得した前記管理プログラムを実行する実行装置により実行され、
前記制限部は、前記検査情報格納装置にアクセスして、前記プログラム取得部が取得した前記管理プログラムのURI及び前記符号化データを取得し、
前記制限部は、
前記実行装置による実行処理の対象となる前記管理プログラムの前記少なくとも一部を符号化して得られる検証用データを取得し、
前記プログラム取得部が取得した前記管理プログラムのURIを取得し、且つ、前記検証用データと、記符号化データとが合致する場合に、前記管理プログラムの実行を許可する又は制限しないことを決定し、
前記プログラム取得部が取得した前記管理プログラムのURIを取得しない場合、又は、前記検証用データと、記符号化データとが合致しない場合に、前記管理プログラムの実行を許可しない又は制限することを決定する、
請求項1又は4に記載の情報処理システム。
【請求項8】
前記コンピュータを前記秘密鍵管理装置として機能させるための手順は、前記秘密鍵と、前記秘密鍵に対応する公開鍵とを生成する生成手順を有し、
前記符号化データは、前記生成手順の少なくとも一部に対応するコード、スクリプト又はプログラムが符号化された生成手順符号化データを含む、
請求項に記載の情報処理システム。
【請求項9】
前記実行装置は、
前記プログラム取得部と、
前記プログラム取得部が取得した前記管理プログラムの前記少なくとも一部、又は、前記管理プログラムの前記少なくとも一部を符号化して得られた前記検証用データを前記制限部に出力するプログラム出力部と、
を備える、
請求項に記載の情報処理システム。
【請求項10】
前記管理プログラムの安全性を検査する検査部と、
前記検査部が検査した前記管理プログラムの前記少なくとも一部を符号化して、前記符号化データを生成する符号化データ生成部と、
前記管理プログラムのRIと、前記符号化データとを対応付けて、前記検査情報格納装置に登録する登録部と、
をさらに備える、
請求項に記載の情報処理システム。
【請求項11】
前記管理プログラム提供サーバから取得した前記管理プログラムを実行する実行装置をさらに備え、
前記実行装置は、
前記制限部が前記管理プログラムの実行を許可する又は制限しない場合、前記管理プログラムを実行し、
前記制限部が前記管理プログラムの実行を許可しない場合、前記管理プログラムを実行せず、
前記制限部が前記管理プログラムの実行を制限する場合、前記管理プログラムの少なくとも一部を実行しない、
請求項1又は4に記載の情報処理システム。
【請求項12】
コンピュータを、請求項1、2及び4の何れか一項に記載の情報処理システムとして機能させるためのプログラム。