(57)【要約】【課題】取引の安全性をより向上させることができる。【解決手段】本開示の一実施形態に係る情報処理装置は端末に搭載され、アクセス制御手段と、署名手段とを含む。アクセス制御手段は、前記端末のオペレーティングシステム上で動作するソフトウェアによりトランザクションが生成された場合、当該トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定し、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定された場合に限り、前記端末のセキュアエレメントにアクセスさせることで、マルウェアの介在による不正なトランザクションへの署名を防止させる。署名手段は、前記アクセス制御手段によるアクセスを契機として、前記端末のセキュアエレメントに格納される秘密鍵を用いて前記トランザクションに対するデジタル署名の付与処理を、前記セキュアエレメント内で実行する。【選択図】図２
2020061727.tif 000002
【特許請求の範囲】
【請求項１】
端末に搭載される情報処理装置であって、
前記端末のオペレーティングシステム上で動作するソフトウェアによりトランザクションが生成された場合、当該トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定し、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定された場合に限り、前記端末のセキュアエレメントにアクセスさせることで、マルウェアの介在による不正なトランザクションへの署名を防止させるアクセス制御手段と、
前記アクセス制御手段によるアクセスを契機として、前記端末のセキュアエレメントに格納される秘密鍵を用いて前記トランザクションに対するデジタル署名の付与処理を、前記セキュアエレメント内で実行する署名手段と、
を具備する情報処理装置。
【請求項２】
前記アクセス制御手段は、前記トランザクションを生成したソフトウェアが公認されたソフトウェアでないと判定された場合、当該トランザクションの処理を中止する請求項１に記載の情報処理装置。
【請求項３】
前記セキュアエレメント内に、認証局により公認されたソフトウェアに関する署名検証鍵を格納する格納手段をさらに具備し、
前記アクセス制御手段は、前記ソフトウェアに付与されたデジタル署名を前記署名検証鍵を用いて検証することで、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定する請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記トランザクションに関する内容をユーザに提示する提示手段をさらに具備し、
前記アクセス制御手段は、前記デジタル署名が付与されたトランザクションに関する内容を表示するソフトウェアが、前記公認されたソフトウェアであるか否かを判定する請求項１から請求項３のいずれか１項に記載の情報処理装置。
【請求項５】
前記デジタル署名が付与されたトランザクションを、ブロックチェーン技術を用いるＰ２Ｐ（Peer to Peer）ネットワークにブロードキャスト送信する送信手段をさらに具備する請求項１から請求項４のいずれか１項に記載の情報処理装置。
【請求項６】
公開鍵および秘密鍵のペアを生成する生成手段をさらに具備し、
前記格納手段は、前記秘密鍵を格納する請求項３に記載の情報処理装置。
【請求項７】
前記公開鍵および前記秘密鍵のペアは、仮想通貨ごとに生成される請求項６に記載の情報処理装置。
【請求項８】
前記生成手段は、前記トランザクションが仮想通貨に関する口座開設指示である場合に、前記公開鍵および前記秘密鍵のペアを作成し、
作成された前記公開鍵は、前記公認されたソフトウェアで利用される、請求項６または請求項７に記載の情報処理装置。
【請求項９】
前記トランザクションは、仮想通貨の取引に関する指示である請求項１から請求項７のいずれか１項に記載の情報処理装置。
【請求項１０】
端末のオペレーティングシステム上で動作するソフトウェアによりトランザクションが生成された場合、当該トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定し、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定された場合に限り、前記端末のセキュアエレメントにアクセスさせることで、マルウェアの介在による不正なトランザクションへの署名を防止させ、
前記セキュアエレメントへのアクセスを契機として、前記端末のセキュアエレメントに格納される秘密鍵を用いて前記トランザクションに対するデジタル署名の付与処理を、前記セキュアエレメント内で実行する、情報処理方法。
【請求項１１】
コンピュータに、
端末のオペレーティングシステム上で動作するソフトウェアによりトランザクションが生成された場合、当該トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定し、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定された場合に限り、前記端末のセキュアエレメントにアクセスさせることで、マルウェアの介在による不正なトランザクションへの署名を防止させるアクセス制御機能と、
前記アクセス制御機能によるアクセスを契機として、前記端末のセキュアエレメントに格納される秘密鍵を用いて前記トランザクションに対するデジタル署名の付与処理を、前記セキュアエレメント内で実行する署名機能と、
を実現させる情報処理プログラム。
【請求項１２】
端末のオペレーティングシステム上で動作するソフトウェアによりトランザクションを生成し、前記トランザクションの生成を契機として、当該トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定し、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定された場合に限り、前記端末のセキュアエレメントにアクセスさせることで、マルウェアの介在による不正なトランザクションへの署名を防止させる第１の処理回路と、
秘密鍵を格納するメモリと第２の処理回路とを含むセキュアエレメントと、を具備し、
前記第２の処理回路は、前記第１の処理回路によるアクセスを契機として、前記秘密鍵を用いて前記トランザクションに対するデジタル署名の付与処理を、前記セキュアエレメント内で実行する、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、方法及びプログラムに関する。
【背景技術】
【０００２】
仮想通貨（暗号通貨ともいう）取引では、マルウェアなどによる取引記録の改ざんにより、仮想通貨の盗難などの不正流出事件が社会問題化している。このような仮想通貨の不正流出を防ぐため、利用者は仮想通貨をどのように保管するかに苦心している。仮想通貨の保管とは、実際には秘密鍵を管理することと同義である。秘密鍵は、いわゆる「ウォレット」で管理される。
【０００３】
ウォレットの種類としては、ウェブウォレット、ソフトウェアウォレット、ハードウェアウォレット、ペーパーウォレットなどがある。ウェブウォレットは、サーバ上にあるウェブサービスを利用してサーバ上で秘密鍵を管理する。ソフトウェアウォレットは、スマートフォンやパーソナルコンピュータ（ＰＣ）のハードディスク（ＨＤＤ：Hard Disc Drive）などの記憶領域に秘密鍵を記憶する。ウェブウォレットおよびソフトウェアウォレットは、どちらもコンピュータ内で秘密鍵を記憶するため、当該コンピュータがマルウェアに感染することによる秘密鍵の流出の危険性またはハッキングによる秘密鍵の漏えいの危険性がある。
【０００４】
一方、ペーパーウォレットは、紙等の物理媒体に秘密鍵を記載して保管する。ペーパーウォレットはネットワークから物理的に切り離されているため、ネットワークを介した流出の危険性はないが、その分仮想通貨の利用時に処理が煩雑となり、利便性が悪い。さらに、ペーパーウォレット自体の保管場所に注意する必要があり、紛失した場合には復元することができない。
【０００５】
そこで、流出の危険性及び仮想通貨利用時の利便性を考慮して、「ハードウェアウォレット」を利用する利用者が増加している。ハードウェアウォレットは、仮想通貨の秘密鍵を保管するドングル型の専用装置であり、スマートフォンまたはＰＣとは別体に構成され、専用装置をＰＣにＵＳＢ（Universal Serial Bus）接続することで使用可能となる。ハードウェアウォレットは、ソフトウェアウォレットと比較して秘密鍵をネットワークから物理的に切り離して保管できるため、安全であるといわれている。また、ハードウェアウォレットは、専用装置自体で、取引データ（トランザクション）にデジタル署名できるため、ペーパーウォレットと比較して利便性も高い。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−２０７８６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、安全であると言われていたハードウェアウォレットもマルウェアによる被害が報告されており、ＰＣからソフトウェアを介して生成されたトランザクションがマルウェアにより書き換えられるという事例がある。具体的には、利用者が本来送金したかった送信先アドレスが、マルウェアにより攻撃者のアドレスに書き換えられ、利用者が意図しない不正なトランザクションが生成される。利用者は、ハードウェアウォレットに表示される送信先アドレスの確認を怠ると、不正なトランザクションに対し秘密鍵を用いてデジタル署名を付与してしまい、デジタル署名が付与された不正なトランザクションがネットワーク上に送信される。不正なトランザクションが認証されてしまうと、利用者から攻撃者の口座に仮想通貨が送金され、結果として仮想通貨が盗難される恐れがある。
【０００８】
本発明は、上述した事情を考慮してなされたものであり、取引の安全性をより高めることができる情報処理装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述の課題を解決するため、本実施形態に係る情報処理装置は端末に搭載され、アクセス制御手段と、署名手段とを含む。アクセス制御手段は、前記端末のオペレーティングシステム上で動作するソフトウェアによりトランザクションが生成された場合、当該トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定し、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定された場合に限り、前記端末のセキュアエレメントにアクセスさせることで、マルウェアの介在による不正なトランザクションへの署名を防止させる。署名手段は、前記アクセス制御手段によるアクセスを契機として、前記端末のセキュアエレメントに格納される秘密鍵を用いて前記トランザクションに対するデジタル署名の付与処理を、前記セキュアエレメント内で実行する。
【発明の効果】
【００１０】
本発明の情報処理装置、方法及びプログラムによれば、取引の安全性をより向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る情報処理装置を含む取引システムを示す概念図。
【図２】本実施形態に係る情報処理装置を示すブロック図。
【図３】本実施形態に係るウォレットアプリ（仮想通貨利用ソフトウェア）のインストール処理及びアクティベート処理（仮想通貨口座の新規開設処理）の一例を示すシーケンス図。
【図４】本実施形態に係る公認ウォレットアプリを用いて仮想通貨口座を開設する場合の一例を示すシーケンス図。
【図５】本実施形態に係る公認ウォレットアプリを用いて仮想通貨の取引を行う場合の一例を示すシーケンス図。
【図６】公認ウォレットアプリではないウォレットアプリにより、仮想通貨口座の開設または仮想通貨の取引を行う場合の一例を示すシーケンス図。
【図７】本実施形態に係る公認ウォレットアプリの検証処理の詳細を示すフローチャート。
【図８】本実施形態に係る提示部によるメッセージの表示例を示す図。
【図９】本実施形態に係る情報処理装置の装置構成例を示すブロック図。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら本発明の実施形態に係る情報処理装置、方法及びプログラムについて詳細に説明する。なお、以下の実施形態中では、同一の番号を付した部分については同様の動作を行うものとして、重ねての説明を省略する。
【００１３】
本実施形態に係る情報処理装置による仮想通貨（暗号通貨ともいう）の取引システムについて図１を参照して説明する。本実施形態では、取引に用いる仮想通貨としてビットコイン（登録商標）を想定する。なお、ビットコインに限らず、秘密鍵を格納して当該秘密鍵によりデジタル署名を行う他の仮想通貨、つまりオルトコイン（altcoin）の取引でもよい。または、イーサリアム（Ethereum）などを用いたスマートコントラクト（契約と当該契約の履行との関係）を用いる取引など秘密鍵の保管が必要となるシステムであれば、本実施形態に係る情報処理装置を同様に適用できる。
【００１４】
図１に示す取引システム１では、本実施形態に係る情報処理装置を含む端末１０及び端末３０とブロックチェーンネットワーク２０とを含む。図１は、ユーザが操作する端末１０から送金先である端末３０へブロックチェーンネットワーク２０を介して仮想通貨を送金する例を示す。
【００１５】
なお、端末１０と端末３０とは同様の構成を有するため、以下では端末１０を例に説明する。また、説明の便宜上、端末１０および端末３０とブロックチェーンネットワーク２０とを区別して記載しているが、端末１０および端末３０もブロックチェーンネットワーク２０の一部を形成する。
【００１６】
端末１０は、ＳＩＭ（Subscriber Identity Module）を含む通信端末であり、例えばフィーチャーフォン、スマートフォン等の携帯電話、タブレット端末、タブレットＰＣなどを想定する。端末１０は、本実施形態に係る情報処理装置１００を含む。
【００１７】
ブロックチェーンネットワーク２０は、ブロックチェーン技術を用いるＰ２Ｐ（Peer to Peer）ネットワークであり、ネットワークに参加する通信媒体２１それぞれがノードとして相互に繋がっている。Ｐ２Ｐネットワークは、中央集権型のネットワークと異なり、サーバおよび階層構造はなく、基本的に全てのノードがサービスの処理に関する負荷を分担するように「フラット」な状態で接続される。ブロックチェーンネットワーク２０に参加する通信媒体２１は、スマートフォンなどの携帯電話、タブレットＰＣ、ノートＰＣおよびデスクトップＰＣなど、ネットワークを介して通信可能な様々な通信媒体である。このような通信媒体２１により、Ｐ２Ｐ形式のネットワークが構築される。各通信媒体２１は、これまでの仮想通貨の取引に関するトランザクションが取り込まれた公開台帳２５を有する。
【００１８】
各公開台帳２５は、ブロックチェーン技術で用いられる、これまでのビットコインの取引が記録されたデータである。各公開台帳２５は、プルーフオブワークの仕組みにより新たにトランザクションがブロックとして取り込まれ、各公開台帳２５にて共有される。なお、本実施形態で想定するブロックチェーン技術は、一般的なビットコインの取引において用いられる処理を想定するため、ここでの説明は省略する。
【００１９】
次に、本実施形態に係る情報処理装置１００について図２のブロック図を参照して説明する。
本実施形態に係る情報処理装置１００は、端末１０のアーキテクチャである、セキュアエレメント領域１２０、オペレーティングシステム（ＯＳ）領域１４０およびアプリケーション領域１６０の各領域間で相互に協働して実現されることを想定する。
本実施形態に係る情報処理装置１００は、アクセス制御部１０１と、格納部１０２と、署名部１０３と、提示部１０４と、送信部１０５と、生成部１０６とを含む。
【００２０】
セキュアエレメント領域１２０は、例えばＳＩＭ、ＵＳＩＭ（Universal SIM）、ｅＳＩＭ（embedded SIM）のような耐タンパー性を有したハードウェアであるセキュアエレメントに含まれるソフトウェア領域である。セキュアエレメント領域１２０には、格納部１０２と、署名部１０３と、生成部１０６とが含まれる。
【００２１】
ＯＳ領域１４０は、システムを動作させるための一般的なＯＳが動作する領域であり、本実施形態では、例えば、アンドロイド（登録商標）ＯＳが動作する場合を想定する。ＯＳ領域１４０には、アクセス制御部１０１が含まれる。
【００２２】
アプリケーション領域１６０は、ＯＳの機能を介して、ユーザが利用するソフトウェア（アンドロイドアプリなどのアプリケーション）が動作する領域である。本実施形態では、仮想通貨を利用するためのソフトウェアであるウォレットアプリが、アプリケーション領域１６０で動作すると想定する。アプリケーション領域１６０には、提示部１０４と、送信部１０５とが含まれる。
【００２３】
なお、アクセス制御部１０１と、署名部１０３と、提示部１０４と、送信部１０５と、生成部１０６とは、１つの処理回路により実現されてもよい。または、アクセス制御部１０１、提示部１０４および送信部１０５が１つの処理回路により実現され、署名部１０３および生成部１０６が別の処理回路により実現されてもよい。さらには、各部（アクセス制御部１０１、署名部１０３、提示部１０４、送信部１０５および生成部１０６）は、特定用途向け処理回路（ＡＳＩＣ：Application Specific Integrated Circuit）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：Field Programmable Gate Array）等によって、それぞれ構成されてもよい。
【００２４】
アクセス制御部１０１は、端末１０のＯＳ上で動作するソフトウェアによりトランザクションが生成された場合、当該トランザクションを生成したソフトウェアを検証し、当該ソフトウェアが認証局で公認されたソフトウェアであるかどうかを判定する。トランザクションは、仮想通貨の取引に関する取引データであり、具体的には、仮想通貨のアドレス、仮想通貨の送金額などが含まれる。アクセス制御部１０１は、トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定した場合、セキュアエレメント領域１２０にアクセスする。例えば、アクセス制御部１０１は、セキュアエレメントに対して、トランザクションにデジタル署名を付与する指示を与える。
一方、トランザクションを生成したソフトウェアが公認されたソフトウェアでない場合、アクセス制御部１０１は、セキュアエレメントへのアクセスおよびデジタル署名の付与といった、当該トランザクションに関する処理を中止する。
【００２５】
格納部１０２は、セキュアエレメント内に署名検証鍵と秘密鍵とを格納する。署名検証鍵は、トランザクションを生成するソフトウェアが信頼できるソフトウェアであるか否かを検証するための鍵である。秘密鍵は、生成部１０６により仮想通貨の口座を開設したときに生成され、仮想通貨の取引を可能とするための鍵である。すなわち、情報処理装置１００は、セキュアエレメントを秘密鍵のウォレットとして用いることを想定する。
【００２６】
署名部１０３は、アクセス制御部１０１による検証により、トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定した場合、セキュアエレメント領域１２０の格納部１０２に格納される秘密鍵を用いて、当該トランザクションに対しデジタル署名を付与する。
【００２７】
提示部１０４は、デジタル署名が付与されたトランザクションに関する内容を、例えば端末１０のディスプレイに提示する。
【００２８】
送信部１０５は、デジタル署名が付与されたトランザクションをブロックチェーンネットワーク２０にブロードキャスト送信する。
生成部１０６は、仮想通貨の口座を開設したときに、秘密鍵と公開鍵とのペアを生成する。
【００２９】
なお、上述するアーキテクチャに限らず、少なくとも秘密鍵がセキュアエレメント領域１２０内の格納部１０２に格納されており、アクセス制御部１０１により認証された場合のみ格納部１０２の秘密鍵にアクセス可能とする構成であれば、各部がアーキテクチャ構成のうちのどの領域に存在してもよい。
【００３０】
次に、本実施形態に係る情報処理装置１００を用いることで利用可能となる仮想通貨のウォレットアプリ（仮想通貨利用ソフトウェア）のインストール処理、及びアクティベート処理（仮想通貨口座の開設処理）ついて、図３および図４のシーケンス図を参照して説明する。
【００３１】
図３は、ソフトウェア認証局５０と端末１０との間のやりとりを時系列で示すシーケンス図である。端末１０については、より詳細に、セキュアエレメント領域１２０およびアプリケーション領域１６０での処理を時系列で示す。
ソフトウェア認証局は、提出されたソフトウェアに対し、信頼性を証明するデジタル証明書を発行する機関である。
【００３２】
本実施形態に係る情報処理装置１００を含む端末１０は、アンドロイドＯＳ（登録商標）を用いる通信端末である。
【００３３】
ステップＳ３０１では、ソフトウェア認証局５０が、ウォレットアプリの認証を行う。具体的には、ソフトウェア認証局５０は、提出されたウォレットアプリが、不正なアプリかどうか及び悪意のあるプログラムが組み込まれているかどうかを、端末１０で当該ウォレットアプリが利用される前に認証する。なお、ソフトウェア認証局５０での認証は一般的な手法が適用されればよいため、ここでの詳細な説明は省略する。
【００３４】
ステップＳ３０２では、ソフトウェア認証局５０でウォレットアプリが不正なアプリでは無く、悪意のあるプログラムも組み込まれておらず、問題ないと認証されれば、ウォレットアプリを公認した証拠として、ソフトウェア認証局５０よりウォレットアプリにコード署名が施される。その後、ウォレットアプリが端末１０でダウンロード可能となるように、ウェブ上に、例えばGoogle Play（登録商標）上に公開される。なお、公認されたウォレットアプリ（正規のウォレットアプリ）を公認ウォレットアプリと呼ぶ。
【００３５】
ステップＳ３０３では、端末１０が、ソフトウェア認証局５０から公認ウォレットアプリをダウンロードする。このとき、公認ウォレットアプリに施されたコード署名を検証するためのコード署名検証鍵も併せてダウンロードする。コード署名検証鍵は、ここでは公開鍵暗号方式の公開鍵を想定する。
【００３６】
ステップＳ３０４では、端末１０が、公認ウォレットアプリをインストールする。
ステップＳ３０５では、ウォレットアプリが端末１０にインストールされると、セキュアエレメント領域１２０の格納部１０２が、アプリケーション領域１６０よりコード署名検証鍵を受け取って格納する。公認ウォレットアプリのインストールが完了すると、公認ウォレットアプリがアプリケーション領域１６０で動作可能となる。
【００３７】
以上の処理により、端末１０で公認ウォレットアプリが動作可能な状態となるが、公認ウォレットアプリに対応する仮想通貨の口座を所有していない場合、仮想通貨の受け取り及び仮想通貨の送信を行うことができないため、新規に口座を開設する必要がある。
【００３８】
続いて、ウォレットアプリを用いて端末１０で仮想通貨口座を開設する場合について図４のシーケンスを参照して説明する。
【００３９】
ステップＳ４０１では、アプリケーション領域１６０における公認ウォレットアプリが、ユーザの操作に応じて仮想通貨口座の生成指示を示すトランザクションを生成する。
ステップＳ４０２では、ＯＳ領域１４０におけるアクセス制御部１０１が、公認ウォレットアプリからトランザクションを受け取る。アクセス制御部１０１は、セキュアエレメント領域１２０に格納されたコード署名検証鍵を用いて、トランザクションを生成したウォレットアプリを検証する。これは、本実施形態に係る情報処理装置１００では、公認ウォレットアプリであるか非公認のウォレットアプリであるかは前もって分からないため、どのウォレットアプリに対しても検証処理をする必要があるからである。
【００４０】
具体的には、トランザクションを生成したウォレットアプリが公認ウォレットアプリであるか否かを判定する。詳細な検証方法については、図６を参照して後述する。図４では、検証の結果、トランザクションを生成したウォレットアプリが公認ウォレットアプリであると判定される。公認ウォレットアプリにより生成されたトランザクションは、正規なトランザクションである。（図４、検証結果ＯＫ）。
【００４１】
ステップＳ４０３では、セキュアエレメント領域１２０における生成部１０６が、アクセス制御部１０１から正規なトランザクションである旨の通知を受け取り、秘密鍵および公開鍵のペアを生成する。
ステップＳ４０４では、セキュアエレメント領域１２０における格納部１０２が、ステップＳ４０３で生成された秘密鍵を格納する。
【００４２】
ステップＳ４０５では、アプリケーション領域１６０における公認ウォレットアプリが、セキュアエレメント領域１２０から公開鍵を受け取る。これにより、公開鍵を用いて仮想通貨アドレスを生成でき、仮想通貨の取引が可能となる。以上により、公認ウォレットアプリのインストール処理及びアクティベート処理を終了する。
【００４３】
なお、本実施形態では、ビットコイン１種類のためのウォレットを想定して説明するが、他の仮想通貨についても同様に口座を開設し、１つのウォレットで管理できる。具体的には、生成部１０６が、仮想通貨ごとに公開鍵および秘密鍵のペアを生成し、格納部１０２が、仮想通貨ごとに区別して秘密鍵を格納すればよい。
【００４４】
次に、公認ウォレットアプリを用いて仮想通貨の取引を行う場合のシーケンスについて図５を参照して説明する。ここでは、端末１０から他の端末３０の口座宛てに仮想通貨を送金する場合を想定する。
【００４５】
ステップＳ５０１では、ユーザが公認ウォレットアプリを介して、仮想通貨の送金に関するトランザクションを生成する。
ステップＳ５０２では、ＯＳ領域１４０におけるアクセス制御部１０１が、公認ウォレットアプリからトランザクションを受け取る。アクセス制御部１０１が、セキュアエレメント領域１２０に格納されたコード署名検証鍵を用いて、トランザクションを生成したウォレットアプリを検証する。ここでは検証の結果、トランザクションを生成したウォレットアプリが公認ウォレットアプリであると判定される。図４の場合と同様に、ステップＳ５０１で生成されたトランザクションは、正規なトランザクションである（図５、検証結果ＯＫ）。
【００４６】
ステップＳ５０３では、セキュアエレメント領域１２０における署名部１０３が、アクセス制御部１０１からトランザクションを受け取る。署名部１０３は、トランザクションに対して格納部１０２に記憶される秘密鍵でデジタル署名を施す。
【００４７】
ステップＳ５０４では、アプリケーション領域１６０における提示部１０４が、セキュアエレメント領域１２０からデジタル署名されたトランザクションを受け取る。提示部１０４は、デジタル署名されたトランザクションに関する内容をディスプレイに表示させる。ユーザは、端末１０のディスプレイに表示されたトランザクションの内容を確認し、内容に問題が無ければ承認を実行する。承認の実行は、例えばユーザが確認ボタンをタッチまたは押下したり、ユーザが「ＯＫ」と発声することにより音声認識処理により承認を取得したりするなど、ユーザからのアクションを取得する一般的な手法を用いればよい。
【００４８】
ステップＳ５０５では、アプリケーション領域１６０における送信部１０５が、署名済みトランザクションをブロックチェーンネットワーク２０にブロードキャスト送信する。  なお、ブロックチェーンネットワーク２０では、当該トランザクションがブロックに取り込まれ、公開台帳のブロックに追加されることで取引が成立する。なお、ブロックチェーンネットワークにおけるトランザクションの処理は、一般的なビットコインにおけるトランザクション処理であるので、ここでの説明は省略する。
【００４９】
一方、公認ウォレットアプリではないウォレットアプリにより、仮想通貨口座の開設または仮想通貨の取引を行う場合のシーケンスについて図６を参照して説明する。
ステップＳ６０１では、ユーザがウォレットアプリを介して、仮想通貨口座の開設または仮想通貨の送金に関するトランザクションを生成する。
ステップＳ６０２では、ＯＳ領域１４０におけるアクセス制御部１０１が、公認ウォレットアプリからトランザクションを受け取る。アクセス制御部１０１が、セキュアエレメント領域１２０に格納されたコード署名検証鍵を用いて、トランザクションを生成したウォレットアプリを検証する。ここでは、検証の結果、トランザクションを生成したウォレットアプリが公認ウォレットアプリではないと判定される（図６、検証結果ＮＧ）。
【００５０】
ステップＳ６０３では、ＯＳ領域１４０におけるアクセス制御部１０１が、ステップＳ６０１で生成されたトランザクションが、公認ウォレットアプリにより生成されたトランザクションではないため、改ざんされた可能性があるものとして、当該トランザクションの処理を中止する。
ステップＳ６０４では、必要に応じて、アプリケーション領域１６０における提示部１０４が、トランザクションの処理を中止したことを示すメッセージをユーザに提示する。
【００５１】
次に、ステップＳ４０２、ステップＳ５０２およびステップＳ６０２における、アクセス制御部１０１によるウォレットアプリの検証処理の詳細について、図７のフローチャートを参照して説明する。
【００５２】
ステップＳ７０１では、アクセス制御部１０１が、ウォレットアプリに付与されたコード署名、すなわちソフトウェア認証局の秘密鍵で暗号化されたハッシュ値情報と、コードを取得する。
ステップＳ７０２では、アクセス制御部１０１が、記憶部からコード署名検証鍵を抽出し、暗号化されたハッシュ値情報をコード署名検証鍵で復号し、復号済みハッシュ値を生成する。
【００５３】
ステップＳ７０３では、アクセス制御部１０１が、ステップＳ７０１で受け取ったコードからハッシュ関数を用いてハッシュ値を生成する。
ステップＳ７０４では、アクセス制御部１０１が、復号済みハッシュ値と、ステップＳ５０３で生成したハッシュ値とを比較して、同一であるか否かを判定する。同一であれば、ステップＳ７０５に進み、同一でなければ、ステップＳ７０６に進む。
【００５４】
ステップＳ７０５では、ハッシュ値が同一であるので、ウォレットアプリは公認ウォレットアプリであると判定され、公認ウォレットアプリにより生成されたトランザクションは、正規なトランザクションである。
ステップＳ７０６では、アクセス制御部１０１が、ウォレットアプリは公認ウォレットアプリではない非公認のウォレットアプリであり、非公認のウォレットアプリで生成されたトランザクションは信頼できず、マルウェアにより改ざんされた可能性があると認定できる。
【００５５】
なお、ステップＳ７０７に示すように、改ざんされたトランザクションの可能性があると判定された場合、提示部１０４が、ディスプレイなどに改ざんの可能性がある旨のメッセージを画面に表示してもよい。または、画面表示に代えて、音声案内またはアラート音により改ざんの可能性がある旨のメッセージを通知してもよい。画面表示と音声とを組み合わせてメッセージを通知してもよい。
【００５６】
提示部１０４によるメッセージの表示例について図８に示す。
図８は、端末のディスプレイにおける表示画面８０１の一例である。トランザクションの処理を中止したことを示す文面及び確認画面を提示する。
【００５７】
また、ディスプレイにトランザクションに関する内容を表示する前に、当該内容を表示させるウォレットアプリが公認ウォレットアプリであるか否かが検証されてもよい。具体的には、アクセス制御部１０１が、トランザクションに関する内容を表示するウォレットアプリが公認ウォレットアプリか否かを、コード署名検証鍵を用いて検証する。公認ウォレットアプリであると判定されれば、デジタル署名が付与されたトランザクションに関する内容を表示する。
【００５８】
一方、公認ウォレットアプリではないと判定されれば、表示される内容がデジタル署名が付与されたトランザクションに関する内容ではない可能性もあるため、当該トランザクションに関する内容の表示を中止する。
【００５９】
また、アクセス制御部１０１は、前記提示手段により提示予定のトランザクションに関する内容が、デジタル署名が付与されたトランザクションに関する内容であるか否かを検証してもよい。
【００６０】
また、トランザクションに対しデジタル署名を行う段階で、よりセキュリティ強度を向上させるため、ユーザに既存のバイオ認証を要求してもよい。バイオ認証としては、例えば、指紋認証、顔認証、虹彩認証、静脈認証、声紋認証、耳介認証が挙げられる。
【００６１】
次に、本実施形態に係る情報処理装置１００の装置構成例について図９のブロック図を参照して説明する。
情報処理装置１００を単体で構成する場合を想定すると、情報処理装置１００は、セキュアエレメント９１０と、第１の処理回路９２０とを含む。セキュアエレメント９１０は、メモリ９１１と、第２の処理回路９１２とを含む。
第１の処理回路９２０は、例えば、ＣＰＵ（Central Processing Unit）であり、オペレーティングシステム上で動作するソフトウェアを実行してトランザクションを生成し、トランザクションの生成を契機として、ソフトウェアが公認されたソフトウェアであるか否かを判定する。なお、第１の処理回路９２０は、ＣＰＵに限らず、ＡＳＩＣ（application specific integrated circuit）、ＦＰＧＡ（Field Programmable gate array）等の集積回路で構成されてもよい。
メモリ９１１は、例えば、ＲＡＭ（Random Access Memory）、ＤＲＡＭ（Dynamic RAM）、ＳＲＡＭ(Static RAM)であり、仮想通貨の利用に関する秘密鍵を格納する。
第２の処理回路９１２は、例えば、ＡＳＩＣやＦＰＧＡであり、ソフトウェアが公認されたソフトウェアであると判定された場合、秘密鍵を用いてトランザクションにデジタル署名を付与する。
【００６２】
以上に示した本実施形態によれば、ソフトウェア認証局に認可されたソフトウェアウォレットにより生成されたトランザクションのみに対し、セキュアエレメントのウォレットに格納される秘密鍵を用いてデジタル署名するため、マルウェアを含む非公認のソフトウェア、または改ざんされたトランザクションには、デジタル署名を付与する前の段階で処理を中止することができる。
【００６３】
よって、ＰＣがマルウェアに感染してトランザクションが書き換えられることによる、ドングル型のハードウェアウォレットで生じるようなトランザクションの誤承認の可能性をなくすことができる。さらに、本実施形態に係る情報処理装置は、ドングルなどの別体の専用装置を用いる必要が無く、携帯端末のみで実装することができる。これにより、利便性を大幅に向上させることができる。
【００６４】
また、既存のハードウェアウォレットでは、ＵＳＢ接続するドングルの表示部にトランザクションに関する内容が表示される。ドングルの表示部は、ＰＣのディスプレイと比較して小さく視認性が大きく劣るため、ユーザの誤読、見落としなどにより送金先、送金額などの送金内容が改ざんされていても、ユーザが気づかずに送信してしまう可能性もある。一方、本実施形態に係る情報処理装置によれば、トランザクションの生成時と同様に、デジタル署名が付与されたトランザクションの内容が表示される際も、検証を実行することで、正規なトランザクションの内容のみが表示され、不正な内容は表示されないため、ユーザは安心して取引を実行することができる。
【００６５】
上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した情報処理装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷ、Ｂｌｕ−ｒａｙ（登録商標）Ｄｉｓｃなど）、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をＣＰＵで実行させれば、上述した実施形態の情報処理装置と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合又は読み込む場合はネットワークを通じて取得又は読み込んでもよい。  
また、記録媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワーク等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。  
さらに、本実施形態における記録媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。  
また、記録媒体は１つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本実施形態における記録媒体に含まれ、媒体の構成は何れの構成であってもよい。
【００６６】
なお、本実施形態におけるコンピュータまたは組み込みシステムは、記録媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。  
また、本実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本実施形態における機能を実現することが可能な機器、装置を総称している。
【００６７】
なお、本願発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。
【符号の説明】
【００６８】
１０，３０…端末、２０…ブロックチェーンネットワーク、２１…通信媒体、２５…公開台帳、５０…ソフトウェア認証局、１００…情報処理装置、１０１…アクセス制御部、１０２…格納部、１０３…署名部、１０４…提示部、１０５…送信部、１０６…生成部、１２０…セキュアエレメント領域、１４０…オペレーティングシステム領域（ＯＳ領域）、１６０…アプリケーション領域、７０１…表示画面、９１０…セキュアエレメント、９２０…第１の処理回路、９１１…メモリ、９１２…第２の処理回路。
【図１】
2020061727.tif 000003
【図２】
2020061727.tif 000004
【図３】
2020061727.tif 000005
【図４】
2020061727.tif 000006
【図５】
2020061727.tif 000007
【図６】
2020061727.tif 000008
【図７】
2020061727.tif 000009
【図８】
2020061727.tif 000010
【図９】
2020061727.tif 000011
【手続補正書】
【提出日】令和1年9月5日(2019.9.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
端末に搭載される情報処理装置であって、
前記端末のオペレーティングシステム上で動作するソフトウェアによりトランザクションが生成された場合、当該トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定し、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定された場合に限り、前記端末のセキュアエレメントにアクセスさせることで、マルウェアの介在による不正なトランザクションへの署名を防止させるアクセス制御手段と、
前記アクセス制御手段によるアクセスを契機として、前記端末のセキュアエレメントに格納される秘密鍵を用いて前記トランザクションに対するデジタル署名の付与処理を、前記セキュアエレメント内で実行する署名手段と、
前記トランザクションに関する内容をユーザに提示する提示手段と具備し、
前記アクセス制御手段は、前記デジタル署名が付与されたトランザクションに関する内容を表示するソフトウェアが、前記公認されたソフトウェアであるか否かを判定し、前記提示手段により提示予定のトランザクションに関する内容が、前記デジタル署名が付与されたトランザクションに関する内容であるか否かを検証する、情報処理装置。
【請求項２】
前記アクセス制御手段は、前記トランザクションを生成したソフトウェアが公認されたソフトウェアでないと判定された場合、当該トランザクションの処理を中止する請求項１に記載の情報処理装置。
【請求項３】
前記セキュアエレメント内に、認証局により公認されたソフトウェアに関する署名検証鍵を格納する格納手段をさらに具備し、
前記アクセス制御手段は、前記ソフトウェアに付与されたデジタル署名を前記署名検証鍵を用いて検証することで、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定する請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記デジタル署名が付与されたトランザクションを、ブロックチェーン技術を用いるＰ２Ｐ（Peer to Peer）ネットワークにブロードキャスト送信する送信手段をさらに具備する請求項１から請求項３のいずれか１項に記載の情報処理装置。
【請求項５】
公開鍵および秘密鍵のペアを生成する生成手段をさらに具備し、
前記格納手段は、前記秘密鍵を格納する請求項３に記載の情報処理装置。
【請求項６】
前記公開鍵および前記秘密鍵のペアは、仮想通貨ごとに生成される請求項５に記載の情報処理装置。
【請求項７】
前記トランザクションは、仮想通貨の取引に関する指示である請求項１から請求項６のいずれか１項に記載の情報処理装置。
【請求項８】
アクセス制御手段が、端末のオペレーティングシステム上で動作するソフトウェアによりトランザクションが生成された場合、当該トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定し、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定された場合に限り、前記端末のセキュアエレメントにアクセスさせることで、マルウェアの介在による不正なトランザクションへの署名を防止させ、
署名手段が、前記セキュアエレメントへのアクセスを契機として、前記端末のセキュアエレメントに格納される秘密鍵を用いて前記トランザクションに対するデジタル署名の付与処理を、前記セキュアエレメント内で実行し、
提示手段が、前記トランザクションに関する内容をユーザに提示し、
前記アクセス制御手段が、前記デジタル署名が付与されたトランザクションに関する内容を表示するソフトウェアが、前記公認されたソフトウェアであるか否かを判定し、前記提示手段により提示予定のトランザクションに関する内容が、前記デジタル署名が付与されたトランザクションに関する内容であるか否かを検証する、情報処理方法。
【請求項９】
コンピュータに、
端末のオペレーティングシステム上で動作するソフトウェアによりトランザクションが生成された場合、当該トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定し、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定された場合に限り、前記端末のセキュアエレメントにアクセスさせることで、マルウェアの介在による不正なトランザクションへの署名を防止させるアクセス制御機能と、
前記アクセス制御機能によるアクセスを契機として、前記端末のセキュアエレメントに格納される秘密鍵を用いて前記トランザクションに対するデジタル署名の付与処理を、前記セキュアエレメント内で実行する署名機能と、
前記トランザクションに関する内容をユーザに提示する提示機能とを実現させ、
前記アクセス制御機能は、前記デジタル署名が付与されたトランザクションに関する内容を表示するソフトウェアが、前記公認されたソフトウェアであるか否かを判定し、前記提示手段により提示予定のトランザクションに関する内容が、前記デジタル署名が付与されたトランザクションに関する内容であるか否かを検証する、情報処理プログラム。
【手続補正書】
【提出日】令和1年12月9日(2019.12.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
端末に搭載される情報処理装置であって、
前記端末のオペレーティングシステム上で動作するソフトウェアによりトランザクションが生成された場合、当該トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定し、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定された場合に限り、前記端末のセキュアエレメントにアクセスさせることで、マルウェアの介在による不正なトランザクションへの署名を防止させるアクセス制御手段と、
前記アクセス制御手段によるアクセスを契機として、前記端末のセキュアエレメントに格納される秘密鍵を用いて前記トランザクションに対するデジタル署名の付与処理を、前記セキュアエレメント内で実行する署名手段と、
前記トランザクションに関する内容をユーザに提示するための提示手段とを具備し、
前記アクセス制御手段は、前記デジタル署名が付与されたトランザクションに関する内容を表示するソフトウェアが、前記公認されたソフトウェアであるか否かを判定し、前記提示手段により提示予定のトランザクションに関する内容が、前記デジタル署名が付与されたトランザクションに関する内容であるか否かを検証し、
前記デジタル署名が付与されたトランザクションに関する内容を表示するソフトウェアが、前記公認されたソフトウェアであると判定され、かつ、前記提示手段により提示予定のトランザクションに関する内容が、前記デジタル署名が付与されたトランザクションに関する内容であると検証された場合にのみ、前記提示手段が前記トランザクションに関する内容を前記ユーザに提示する、情報処理装置。
【請求項２】
前記アクセス制御手段は、前記トランザクションを生成したソフトウェアが公認されたソフトウェアでないと判定された場合、当該トランザクションの処理を中止する請求項１に記載の情報処理装置。
【請求項３】
前記セキュアエレメント内に、認証局により公認されたソフトウェアに関する署名検証鍵を格納する格納手段をさらに具備し、
前記アクセス制御手段は、前記ソフトウェアに付与されたデジタル署名を前記署名検証鍵を用いて検証することで、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定する請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記デジタル署名が付与されたトランザクションを、ブロックチェーン技術を用いるＰ２Ｐ（Peer to Peer）ネットワークにブロードキャスト送信する送信手段をさらに具備する請求項１から請求項３のいずれか１項に記載の情報処理装置。
【請求項５】
公開鍵および秘密鍵のペアを生成する生成手段をさらに具備し、
前記格納手段は、前記秘密鍵を格納する請求項３に記載の情報処理装置。
【請求項６】
前記公開鍵および前記秘密鍵のペアは、仮想通貨ごとに生成される請求項５に記載の情報処理装置。
【請求項７】
前記トランザクションは、仮想通貨の取引に関する指示である請求項１から請求項６のいずれか１項に記載の情報処理装置。
【請求項８】
アクセス制御手段が、端末のオペレーティングシステム上で動作するソフトウェアによりトランザクションが生成された場合、当該トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定し、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定された場合に限り、前記端末のセキュアエレメントにアクセスさせることで、マルウェアの介在による不正なトランザクションへの署名を防止させ、
署名手段が、前記セキュアエレメントへのアクセスを契機として、前記端末のセキュアエレメントに格納される秘密鍵を用いて前記トランザクションに対するデジタル署名の付与処理を、前記セキュアエレメント内で実行し、
前記アクセス制御手段が、前記デジタル署名が付与されたトランザクションに関する内容を表示するソフトウェアが、前記公認されたソフトウェアであるか否かを判定し、前記提示手段により提示予定のトランザクションに関する内容が、前記デジタル署名が付与されたトランザクションに関する内容であるか否かを検証し、
前記デジタル署名が付与されたトランザクションに関する内容を表示するソフトウェアが、前記公認されたソフトウェアであると判定され、かつ、提示手段により提示予定のトランザクションに関する内容が、前記デジタル署名が付与されたトランザクションに関する内容であると検証された場合にのみ、前記提示手段が前記トランザクションに関する内容を前記ユーザに提示する、情報処理方法。
【請求項９】
コンピュータに、
端末のオペレーティングシステム上で動作するソフトウェアによりトランザクションが生成された場合、当該トランザクションを生成したソフトウェアが公認されたソフトウェアであるか否かを判定し、前記トランザクションを生成したソフトウェアが公認されたソフトウェアであると判定された場合に限り、前記端末のセキュアエレメントにアクセスさせることで、マルウェアの介在による不正なトランザクションへの署名を防止させるアクセス制御機能と、
前記アクセス制御機能によるアクセスを契機として、前記端末のセキュアエレメントに格納される秘密鍵を用いて前記トランザクションに対するデジタル署名の付与処理を、前記セキュアエレメント内で実行する署名機能と、
前記トランザクションに関する内容をユーザに提示するための提示機能とを実現させ、
前記アクセス制御機能は、前記デジタル署名が付与されたトランザクションに関する内容を表示するソフトウェアが、前記公認されたソフトウェアであるか否かを判定し、前記提示手段により提示予定のトランザクションに関する内容が、前記デジタル署名が付与されたトランザクションに関する内容であるか否かを検証し、
前記デジタル署名が付与されたトランザクションに関する内容を表示するソフトウェアが、前記公認されたソフトウェアであると判定され、かつ、前記提示機能により提示予定のトランザクションに関する内容が、前記デジタル署名が付与されたトランザクションに関する内容であると検証された場合にのみ、前記提示機能が前記トランザクションに関する内容を前記ユーザに提示する、情報処理プログラム。