JP7053031B2 - 情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム - Google Patents
情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム Download PDFInfo
- Publication number
- JP7053031B2 JP7053031B2 JP2018153949A JP2018153949A JP7053031B2 JP 7053031 B2 JP7053031 B2 JP 7053031B2 JP 2018153949 A JP2018153949 A JP 2018153949A JP 2018153949 A JP2018153949 A JP 2018153949A JP 7053031 B2 JP7053031 B2 JP 7053031B2
- Authority
- JP
- Japan
- Prior art keywords
- license
- encrypted data
- information
- processing unit
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims description 29
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000012545 processing Methods 0.000 claims description 110
- 238000012546 transfer Methods 0.000 claims description 37
- 238000000034 method Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 31
- 238000013508 migration Methods 0.000 claims description 16
- 230000005012 migration Effects 0.000 claims description 16
- 230000007704 transition Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000012544 monitoring process Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Description
従来の方法において、クライアント装置は、アプリケーションやコンテンツの実行、利用時にサーバ装置に許諾要求を送信する。許諾要求を受信したサーバ装置は、許諾要求を検証したのち、許諾情報をクライアント装置に送信する。クライアント装置は、この許諾情報を受信したことに応じて、アプリケーションやコンテンツの実行を可能とする。
クライアント装置が送信する許諾要求は、例えば、クライアント装置あるいはユーザ自身を特定する識別情報(ユーザID)と、ライセンスコードのペアである。このような識別情報を受信したサーバ装置は認証用データベースを参照し、該当のペアがデータベースに登録されていれば、許諾情報をクライアント装置に送信する。
または、特許文献1に開示されるシステムでは、利用者端末(クライアント装置)は、鍵生成部と、許諾要求部と、コンテンツ利用部とを備える。鍵生成部は、第1鍵ペアと第2鍵ペアとを生成する。許諾要求部は、第2鍵ペアの公開の暗号鍵を含む許諾要求を、第1鍵ペアの秘密の暗号鍵で電子署名して送信する。
それに対し、権利者端末(サーバ装置)は、鍵管理部と、許諾検証部と、許諾発行部を備える。鍵管理部は、第3鍵ペアとコンテンツ復号鍵とを格納する。許諾検証部は、利用者端末から受信した許諾要求を検証する。許諾発行部は、許諾要求に含まれる第2鍵ペアの公開の暗号鍵を用いてコンテンツ復号鍵を暗号化し、暗号化したコンテンツ復号鍵を含む許諾情報を第3鍵ペアの秘密の暗号鍵で電子署名して送信する。
許諾情報を受信した利用者端末のコンテンツ利用部は、許諾情報から第2鍵ペアの秘密の復号鍵を用いてコンテンツ復号鍵を取得し、コンテンツを利用する。
本願発明は、上記の課題を鑑みてなされたものであり、アプリケーションやコンテンツのライセンス認証を安定的、継続的に実行可能なシステムを提供することを目的とする。
第1の形態は、第1の装置と、第2の装置と、を備え、前記第1の装置は、入力されたデータの暗号化処理を行って暗号化データを出力する暗号化処理部と、前記第2の装置の利用者に対して前記データに係るライセンスの付与を行い、当該ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出するライセンス付与処理部と、を備え、前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含み、前記第2の装置は、前記暗号化データの利用時に、ブロックチェーン上に記録されたライセンス情報に基づく認証を行うライセンス認証処理部と、前記認証が成功した場合に前記暗号化データに対する復号処理を行う復号処理部と、を備える、情報処理システムを特徴とする。
第2の形態は、入力されたデータの暗号化処理を行って暗号化データを出力する暗号化処理部と、他の装置の利用者に対して前記データに係るライセンスの付与を行い、当該ライセンスの付与に係るライセンス情報をブロックチェーンネットワークにする送出するライセンス付与処理部と、を備え、前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含む情報処理装置を特徴とする。
第3の形態は、暗号化データの利用時に、ブロックチェーン上に記憶されたライセンス情報に基づいて認証を行うライセンス認証処理部と、前記認証が成功した場合に前記暗号化データに対する復号処理を行う復号処理部と、を備え、前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含む情報処理装置を特徴とする。
第4の形態は、データに対する暗号化処理を行い、暗号化データを生成する暗号化処理部と、前記データの利用者に対して前記データに係るライセンスの付与を行い、前記ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出するライセンス付与処理部と、前記暗号化データの利用時に前記ライセンス情報に応じて認証を行うために、前記ライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化データに付加する付加部と、を備え、前記付加部は、さらに、前記暗号化データの利用時に前記暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを前記暗号化データに付加する情報処理装置を特徴とする。
第5の形態は、コンピュータによって実行される情報処理方法であって、データに対する暗号化処理を行い、暗号化データを生成し、前記データの利用者に対して前記データに係るライセンスを付与し、前記ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出し、前記暗号化データの利用時に前記ライセンス情報に応じて認証を行うために、前記ライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化データに付加し、前記暗号化データの利用時に前記暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを前記暗号化データに付加する情報処理方法を特徴とする。
第6の形態は、データに対する暗号化処理を行い、暗号化データを生成し、前記データの利用者に対して前記データに係るライセンスを付与し、前記ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出し、前記暗号化データの利用時に前記ライセンス情報に応じて認証を行うために、前記ライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化データに付加し、前記暗号化データの利用時に前記暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを前記暗号化データに付加する処理をコンピュータに実行させる情報処理プログラムを特徴とする。
図1は、本実施形態のシステム構成を示す概略図である。
図1(a)は、本実施形態のシステムに係るネットワーク構成を示す概略図である。
本実施形態に係るシステム1において、アプリケーションの利用者が使用する利用者端末装置10と、アプリケーションの提供者(開発者)が使用する提供者端末装置20と、がインターネットを介して相互に接続されている。
さらにインターネットには、ブロックチェーンネットワークに参加してマイニング作業を行うマイナーが用いる多数のマイナー装置30が接続されている。
これらのブロックチェーンネットワークは、P2P(Peer to Peer)ネットワークであり、ブロックチェーンネットワークxは仮想通貨Xのネットワーク、ブロックチェーンネットワークyは仮想通貨Yのネットワークである。
各ブロックチェーンネットワークには、それぞれマイナー装置30が多く接続されて、プルーフオブワーク(PoW)を行っている。なお、他のブロックチェーンネットワークには、コンセンサスアルゴリズムとしてプルーフオブステーク(PoS)、プルーフオブコンセンサス(PoC)を採用するものがある。
図1(b)を用いて、ブロックチェーンの概略を説明する。
ブロックチェーンは、逐次発生する取引情報などをブロック単位で接続することにより成立する。
ハッシュ関数には一方向性という特徴があり、任意データからハッシュ値を求めることは容易であるが、逆に、ハッシュ値から元のデータを復元することは現実的には不可能であるとされる。
上記のブロックを承認するためのコンセンサスアルゴリズムは、プルーフオブワークと呼ばれる。
プルーフオブワークによる承認作業をすることにより、ブロックチェーンの各ブロックには、図1(b)に示すように、ブロックのデータと、直前のブロックのハッシュ値と、探索されたNonce値と、を含む。
なお途中のブロックを改ざんしようとすると、そのブロック以降全てのブロックのNonceを再計算する必要があるが、上記した総当たりを全てのブロックについて行うしかないため、計算量的に不可能である。
このような特徴を有することで、ブロックチェーンの信頼性は担保されている。
ビットコインにおいて、仮想通貨の送金は、利用者のアドレスにロックされている、ビットコインの額を含む未使用のトランザクションアウトプットをアンロックし、送金先の利用者のアドレスにロックする処理である。ビットコインでは、未使用のトランザクションアウトプットのことを、UTXO(Unspent Transaction Output)ともいう。以下の説明では、トランザクションアウトプットのことを単にアウトプットともいう。
UTXOは、トランザクションにおいて他のトランザクションと接続されていないアウトプットのことであり、所有者のアドレスを記載したScriptPubKeyを含んでいる。なお、所有者のアドレスは、所有者の公開鍵または公開鍵ハッシュである。以下の説明では、所有者のアドレスは、公開鍵ハッシュであるものとして説明する。
所有者は、新たに作成したトランザクションをブロックチェーンネットワークに送信する。そして、マイナー装置がトランザクションを承認し、ブロックチェーンに新たに作成したトランザクションを含むブロックが組み込まれることにより、仮想通貨の送金(UTXOの所有権の移転)が完了する。
端末装置にインストールされたウォレットソフトウェアは、利用者のアドレスに紐付けられたUTXOをブロックチェーンネットワークから検索することによって、利用者が有する仮想通貨の残高を利用者に提示する。
図中の(1)~(7)のステップに従って、処理を概説する。
(1)提供者端末装置20は、アプリケーションを任意の手段で利用者端末装置10に提供する。このアプリケーションは暗号化された暗号化アプリケーションの状態で配布される。利用者端末装置10は、利用者に対する有効なライセンスの存在が確認されることを条件に、暗号化アプリケーションを復号することにより、実行することが出来る。
仮想通貨のウォレットアドレスによって、アプリケーションを利用する利用者が特定され得る。
アプリケーションのライセンスは、特定のウォレットアドレスを有する利用者が、そのアプリケーションを利用可能なように付与される。
端末固有情報が送信される場合、ライセンスは、特定のウォレットアドレスを有する利用者が、そのアプリケーションを特定の利用者端末装置でのみ実行可能なように付与される。
ライセンスを有する利用者が、複数の端末装置でアプリケーションを同時起動することや、ライセンスを複数の利用者で使い回したりすることを防止することが出来る。
アプリケーションごとのウォレットアドレスによって、ライセンスの付与及び認証時に、その対象となるアプリケーションを特定することが出来る。
本実施形態において、アプリケーションのライセンス情報(特定の利用者がアプリケーションのライセンスを有しているか否かを示す情報)はブロックチェーン上に記録される。そして、利用者端末装置10におけるアプリケーションの実行時に、ブロックチェーン上に記録されたライセンス情報に基づいてライセンス認証を行う。
この仕組みは、その他のブロックチェーン(仮想通貨)、例えば、ビットコインやモナコインを用いても基本的に実現可能である。しかしながら、イーサリアムは、他のブロックチェーンシステムが備えないスマートコントラクトという仕組みを有している。
スマートコントラクトは、ブロックチェーンネットワークを構成する各ノードで実行される仮想マシン(EVM:Etheruem Virtual Machine)で行われる分散的な処理によって実現される。
スマートコントラクトは、ブロックチェーン上で、様々な契約や売買を自動化することが出来る。
ライセンス情報は、特定のサーバではなく、ブロックチェーンのメモリ領域に格納され、ライセンス情報を用いた認証はこれも特定のサーバでなく各ノードによる分散処理によって行われる。
すなわち、他のブロックチェーンシステムではなく、時にイーサリアムを用いることで、ブロックチェーン上に記録されたライセンス情報を用いてライセンス認証を行うサーバ装置を別途用意する必要がなくなる。
本実施形態では、利用者にアプリケーションのライセンスを付与し、その付与に係るライセンス情報を登録するために用いるブロックチェーンシステムとして、イーサリアムを用いることを前提に説明を行うものとする。
(4)提供者端末装置20は、作成したライセンストークンを、スマートコントラクトにデプロイする。これにより、利用者に対してアプリケーションのライセンスが付与されたことがブロックチェーンに登録され、ライセンスの付与が完了する。
復号用コードは、復号の条件となるライセンス認証のために、ブロックチェーンネットワーク上で実行されるスマートコントラクトに対する問い合わせを行う。
この問い合わせは、利用者のイーサリアムウォレットアドレス、暗号化アプリケーションに含まれるアプリケーションごとのイーサリアムウォレットアドレス、をクエリとしたブロックチェーンに対する検索である。
アプリケーションごとのイーサリアムウォレットアドレスによっては、ライセンス認証の対象となるアプリケーションを特定することが出来る。
上記(2)乃至(4)のように、ブロックチェーン上には、利用者のイーサリアムウォレットアドレス、端末固有情報、アプリケーションごとのイーサリアムウォレットアドレスに基づいて生成されたライセンストークンが記録されている。
問い合わせを受けて、スマートコントラクトは、クエリに含まれるウォレットアドレスによって、ライセンストークンをトークンリスト中から特定する。
そして、スマートコントラクトは、特定したライセンストークンに含まれる端末固有情報を、利用者端末装置10に返す。あるいは、単にライセンストークンの有無に基づいて、正常なライセンス有無を利用者端末装置10に返す。
(7)利用者端末装置10で実行されている復号用コードは、ブロックチェーン(スマートコントラクト)から返された端末固有情報と、利用者端末装置10の実際の端末固有情報が一致したことを条件に暗号化アプリケーションを復号し、アプリケーションを実行する。
利用者端末装置10にイーサリアムウォレットが存在しない場合、利用者端末装置10では、自動的にイーサリアムウォレットが作成される。
本実施形態において、ライセンス認証は、利用者のイーサリアムウォレットアドレスを用いて行われるため、イーサリアムウォレットが作成されていることが大前提となる。従って、イーサリアムウォレットが存在しない場合、暗号化アプリケーションのライセンスは付与されていないことになる。
利用者端末装置10は、ライセンス付与要求として、イーサリアムウォレットアドレスと、利用者端末装置10の端末固有情報と、を提供者端末装置20に提供する。これらの情報は、電子メールやその他の通信手段を用いて送信することが出来る。
ライセンスの付与とは、具体的には、スマートコントラクトのAPIを呼び出し、受け取ったイーサリアムウォレットアドレスにトークンを追加することである。
トークンには、利用者端末装置10の端末固有情報を含めるため、ノードロックを行うことができる。ノードロックとはすなわち、端末固有情報で特定される特定の端末装置でのみ、暗号化アプリケーションの実行を許可するものである。複数の端末装置でのアプリケーションの同時起動を制限したい場合、トークンに端末固有情報を含めることは好適である。ただし、ライセンスの付与にあたって端末固有情報は必ずしも必要ではない。
利用者端末装置10は、ライセンス付与要求として、イーサリアムウォレットアドレスのみを提供者端末装置20に送信してもよい。
その場合、ライセンス情報(トークン)に端末固有情報は含まれず、上記ノードロックを行うことは出来ないが、アプリケーションを実行可能なハードウェアに制限がなくなるため、後述するライセンスの移行がより容易となる。
提供者端末装置20は、ウォレットアドレスで特定される利用者がライセンスをもっていることを示すトークンを、スマートコントラクトを使用して書き込む。
トークンの実体は、スマートコントラクト上のメモリ領域に格納される。
トークンは、例えば、以下のように記述される。
上記のコードにおいては、PC(利用者端末装置10)の端末固有情報と、アプリケーションごとのイーサリアムウォレットアドレスと、購入者(利用者)のイーサリアムウォレットアドレスと、をトークンに組み込み、トークンリストにマッピングすることが行われている。
これにより、特定のアプリケーションソフトウェアに関する利用者のライセンスがブロックチェーンネットワークに記録されたことになる。
スマートコントラクトが使用できないブロックチェーンを使用する場合は、OP_RETURNにPCの固有ノード情報を記載した、提供者の秘密鍵で署名したトランザクションを購入者のアドレスに送信することによって、ブロックチェーンに書き込む。
イーサリアムウォレットが存在する場合でも、そのアドレスにたいして必ずしも暗号化アプリケーションのライセンスが付与されているとは限らないのは当然である。よって、復号用DLLはライセンス認証として、ブロックチェーンネットワークに対する問い合わせを行う。
この問い合わせは、アプリケーションごとのイーサリアムウォレットアドレスと、利用者のイーサリアムウォレットアドレスと、をクエリ(検索キー)として、ブロックチェーンネットワークの検索を行うことによって行われる。
検索結果は、例えば、クエリに対応する端末固有情報として返される。
復号用DLLは、返された端末固有情報と実際の端末固有情報との照合を行い、これらが一致すれば、正しくライセンスが付与されていると判断する。
ライセンス付与時に端末固有情報を送信していない場合、スマートコントラクトが返す問い合わせ結果は正常なライセンスの有無のみである。
正常なライセンスの存在が確認された結果、復号用DLLは、アプリケーションに含まれる共通鍵によって暗号化アプリケーションを復号してそれを実行可能とする。
従って、任意のサーバで起動しているフルノードに問い合わせを行うことが望ましい。
接続先のフルノードは暗号化アプリケーションの起動時に利用者が選択することができる。
また、ライセンスの二重使用を防ぐため、接続先のフルノードを、提供者端末装置20におけるアプリケーションの暗号化時に限定可能としてもよい。すなわち、アプリケーションが使用することができるフルノードのアドレス(接続先URL)のリストを暗号化時に指定する。すなわち、接続先URLのリストを暗号化アプリケーションに含める。
従って、アプリケーションの提供者がサービスを終了したり、障害が発生したりすることによって、提供者端末装置20の稼働が終了あるいは停止した場合でも、利用者端末装置10は、ブロックチェーン上に記録されたライセンストークンを利用可能である。これにより、利用者端末10は、提供者端末装置20の稼働が終了あるいは停止した場合でも、ライセンス認証を行って暗号化アプリケーションを実行することが出来る。
従来のクライアントサーバ方式の認証では、サーバ装置が稼働しなければライセンス認証を行うことが出来ず、アプリケーションやコンテンツを利用することが出来ない。
しかしながら、ライセンスに必要な情報をブロックチェーン上で管理するともに、ライセンス認証をブロックチェーン上で自動的に行うようにしたことで、上記のような問題を回避することが出来る。
また、認証用のサーバ装置を常時稼働させておく必要もないため、サービスの運営側にとっても、コスト面や運用面でも非常に有利であると言える。
図3は、利用者端末装置の機能構成を示す図であり、(a)はハードウェアによる機能構成を示す図、(b)はソフトウェアによる機能構成を示すブロック図である。
利用者端末装置10は、例えば、図3(a)に示すコンピュータ装置である。
利用者端末装置10は、CPU(Central Processing Unit:プロセッサ)41と、RAM(Random Access Memory)42と、を備える。さらに、利用者端末装置10は、ドライブ装置43と、記録媒体44と、不図示のROM(Read Only Memory)と、ネットワークI/F45と、を備える。
CPU41は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともに、利用者端末装置10の機能を実現するプログラムを実行する。RAM42には、CPU41による処理のために各種のプログラムや一時データ、変数が展開される。
記録媒体44及びROMのすくなくとも一方には、プログラムやデータが格納される。ネットワークI/F45は、利用者端末装置10をネットワークに接続する。
さらに、利用者端末装置10は、マウスやキーボードなどの入力装置46と、液晶ディスプレイなどの表示装置47と、を備える。
ライセンス要求処理部50は、提供者端末装置20によって提供されるアプリケーションに対する初回のラインセンス付与を、提供者端末装置20に対して要求する処理を行う処理部である。
ライセンス認証処理部51、復号処理部52は、提供者端末装置20から提供される暗号化アプリケーションの一部であり、記録媒体44にダウンロードされた暗号化アプリケーションが起動されることによって実行される。
ライセンス認証処理部51は、暗号化アプリケーションの起動時に、ブロックチェーンネットワークに問い合わせを行い、有効なライセンスが存在するか否かを確認するライセンス認証を行う処理部である。ブロックチェーンネットワークへの問い合わせは、ブロックチェーンネットワークに対するライセンスの認証要求であるとも言える。
復号処理部52は、ライセンス認証処理部51による処理によって有効なライセンスが確認されたことを条件に、暗号化アプリケーションを復号して実行可能とする処理部である。
ライセンス移行処理部53は、スマートコントラクトに関連する処理を行い、ライセンストークンを、他の利用者に移譲するためのトランザクションを作成、送信する処理を行う処理部である。
提供者端末装置20は、例えば、図4(a)に示すコンピュータ装置である。
提供者端末装置20は、CPU61と、RAM62と、を備える。さらに、提供者端末装置20は、ドライブ装置63と、記録媒体64と、不図示のROMと、ネットワーク I/F65と、を備える。
CPU61は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともに、提供者端末装置20の機能を実現するプログラムを実行する。RAM62は、CPU61による処理のために各種のプログラムや一時データ、変数が展開される。
記録媒体64及びROMのすくなくとも一方には、プログラムやデータが格納される。ネットワーク I/F65は、提供者端末装置20をネットワークに接続する。
さらに、提供者端末装置20は、マウスやキーボードなどの入力装置66と、液晶ディスプレイなどの表示装置67と、を備える。
暗号化処理部71は、アプリケーションの提供者によるアプリケーションのバイナリデータの入力をうけて、暗号化処理を行い、暗号化アプリケーションを出力する暗号化ツールである。
提供者は1つのアプリケーションについて1つのイーサリアムウォレットを作成し、暗号化アプリケーションには、アプリケーションごとのイーサリアムウォレットアドレスが含まれる。
アプリケーションごとに作成されるイーサリアムウォレットアドレスによって、ライセンスの付与や認証時に、対象のアプリケーションが特定される。
イーサリアム以外のブロックチェーンシステムを用いる場合には、ウォレットアドレスによって、認証のために問い合わせるブロックチェーンを特定することも可能である。
本実施形態のシステムにおいて、提供者端末装置20は、アプリケーションのライセンストークンを、ブロックチェーン上に保持する。
上記のように提供者端末装置20には、暗号化ツールがインストールされている。
暗号化ツールは、暗号化前アプリケーションのデータを暗号化するための暗号化コードを有する。
なお、採用される共通鍵暗号化方式としては、AES(Advanced Encryption Standard)が典型であるが、その他の共通鍵暗号化方式でもよい。
暗号化アプリケーションは、任意のウェブサイトやストアアプリ等から好適にダウンロード可能である。
暗号化ツールは、ブロックチェーンに問い合わせるプログラム、アプリケーションのウォレットアドレス、復合化用の共通鍵を含む復号用ダイナミックリンクライブラリ(DLL)を予め備えている。復号用DLLは、その本体として暗号化データを復号するための復号用コードを有する。
暗号化後の暗号化アプリケーションは、上記復号用DLLと共に出力される。
アプリケーションの暗号化に用いる共通鍵は、暗号化ツールの外部から入力されてもよいし、復号用DLLに含まれるものを用いてもよい。
暗号化前とは異なり、エントリーポイントはスタブプログラムの始点を指し示し、スタブプログラムが、暗号化後のプログラムの始点を指し示す。
すなわち、復号用DLLは、上記のライセンス認証処理部51、復号処理部52の機能に相当するプログラムを含んでいる。
復合用DLLの本体は、利用者端末装置10で実行されたときに復号処理部52として機能する。また、復号用DLLが含むブロックチェーンに問い合わせるプログラムは、利用者端末装置10で実行されたときにライセンス認証処理部51の一部として機能する。
暗号化ツールでは、任意のアプリケーションをフックして暗号化アプリケーション実行時に復号用DLLが呼ばれるようにインジェクションすることで、ブロックチェーンに問い合わせるプログラムが暗号化アプリケーションに自動的に挿入(付加)される。ブロックチェーンに問い合わせるプログラムは、CPU41をライセンス認証処理部51として機能させるプログラムである。
暗号化アプリケーションにおいて暗号化されているのは、図5(b)におけるプログラム本体のみである。暗号化されたプログラム本体は、図5(c)の暗号化アプリケーションにおける暗号化後プログラムとなる。
復号用DLLは、エントリーポイント、リソース、スタブプログラムと同様に、暗号化後プログラムとは別体のコードとして、暗号化後アプリケーション内に挿入される。
復号用DLLは、暗号化アプリケーションの実行バイナリとは別ファイルとして付加されてもよいし、実行バイナリに含まれていてもよい。
CPU61(暗号化処理部71)は、ステップS51において、暗号化対象のアプリケーションのバイナリデータの入力を受け付ける。
上記のように、アプリケーションの実行ファイルは、エントリーポイント、プログラム本体、リソースよりなる。
CPU61(暗号化処理部71)は、ステップS52において、入力されたアプリケーションデータのうちのプログラム本体を、所定の共通鍵を用いて暗号化し、暗号化プログラムを生成する。
上記のように、復号用DLLには、ライセンス認証のためのブロックチェーンへの問い合わせプログラム、アプリケーションごとのイーサリアムウォレットアドレス、復号用の共通鍵を含む。
CPU61(暗号化処理部71)は、ステップS54において、エントリーポイント、暗号化プログラム、リソース、復号用DLLを含む「暗号化アプリケーション」のデータを出力する。
CPU41は、ステップS101において、マウスのダブルクリック操作などによるアプリケーションの起動操作が行われたか否かを判定する。
アプリケーションの起動操作が行われていないと判定した場合(ステップ101でNo)、CPU41は、そのまま処理を終了する。
アプリケーションの起動操作が行われたと判定した場合(ステップS101でYes)、CPU41は、ステップS102において、暗号化されたアプリケーションの起動処理を開始する。
イーサリアムウォレットが利用者端末装置10に存在しないと判定した場合(ステップS103でNo)、CPU41(ライセンス要求処理部50)は、ステップS107において、イーサリアムウォレットを新規に作成する。そして、CPU41(ライセンス要求処理部50)は、ステップS108において、そのイーサリアムウォレットアドレスと、利用者端末装置10の端末固有情報を、提供者端末装置20に対して送信することによりライセンス付与要求を行う。
CPU41は、ステップS105において、ステップS104のライセンス認証が成功したか否か、すなわち、暗号化プログラムが復号されたか否か暗号化が解除されたか否かを判定する。
暗号化が解除されたと判定した場合(ステップS105でYes)、CPU41は、ステップS106において、アプリケーションを起動し、処理を終了する。
暗号化が解除されていないと判定した場合(ステップS105でNo)、CPU41は、アプリケーションを起動できず、そのまま処理を終了する。
ライセンス認証処理部51は、ステップS111において、有効ライセンスの有無をブロックチェーンネットワークに問い合わせる。このときライセンス認証処理部51は、アプリケーションごとのウォレットアドレス、利用者のウォレットアドレスをブロックチェーンネットワークに送信する。
ライセンス認証処理部51は、ステップS112において、ブロックチェーンネットワークから問い合わせ結果(端末固有情報、正常なライセンスの有無)を受信したか否かを判定する。
問い合わせ結果を受信していないと判定した場合(ステップS112でNo)、ライセンス認証処理部51は、ステップ112の処理を繰り返し、問い合わせ結果の受信を待機する。
問い合わせ結果の端末固有情報が実際の端末固有情報と一致する、あるいは問い合わせ結果が正常なライセンスの存在を示すと判定した場合(ステップS113でYes)、ライセンス認証処理部51は、ステップS114において、共通鍵を用いてアプリケーションの暗号化を解除し、処理を終了する。
問い合わせ結果の端末固有情報が実際の端末固有情報と一致しない、あるいは問い合わせ結果が正常なライセンスの存在を示さないと判定した場合(ステップS113でNo)、ライセンス認証処理部51は、そのまま処理を終了し、アプリケーションの暗号化を解除しない。
CPU61(ライセンス付与処理部72)は、ステップS201において、ライセンス付与要求として、利用者のイーサリアムウォレットアドレスと、利用者端末装置10の端末固有情報を受信したか否かを判定する。上記のように、ライセンス付与要求にあたって利用者端末装置10の端末固有情報は必須ではない。
ライセンス付与要求を受信したと判定した場合(ステップS201でYes)、CPU61(ライセンス付与処理部72)は、ステップS202において、スマートコントラクトAPI(スマートコントラクト処理部)を呼び出し、ステップS203において、利用者のウォレットアドレスに対してライセンストークンを付与し、ライセンス付与処理を終了する。
ライセンスを有する利用者は、自身のウォレットの秘密鍵を使って認証することで、ライセンストークンを別の利用者に譲渡することができる。
すなわち利用者は、任意のウォレットに対してライセンスを移行するスマートコントラクトを実行することができる。
イーサリアムにおけるスマートコントラクトの実行にはガスと呼ばれる手数料が必要となるが、利用者のウォレットに対してイーサリアムを自動的に付与することで、利用者がイーサリアムを購入する必要がないようにすることも可能である。
例えば、ライセンスの移行に先だって、一の利用者は、他の利用者にライセンスを移行する旨を示す移行通知を提供者端末装置20に送信する。
この移行通知は、移行元の利用者のウォレットアドレス、移行先の利用者のウォレットアドレスを少なくも含む。
この場合、利用者端末装置10は、図3(b)の処理部に加え、移行通知を送信する移行通知送信部を備える。移行通知送信部は、例えば、電子メールを送信可能な電子メールクライアントソフトウェアである。そして、移行通知は、移行通知送信部によって、提供者端末装置20に送信される。
移行通知を受け取った提供者端末装置20は、移行通知に記載されている移行元となるウォレットアドレスに対するイーサリアムの送金を行う。
この場合、提供者端末装置20は、図4(b)の処理部に加え、移行通知を受信するための移行通知受信部と、利用者のウォレットに仮想通貨(イーサリアム)を付与するトランザクションを作成、公開する処理を行う送金部を備える。
移行通知が電子メールによって送信される場合、移行通知受信部もまた、電子メールを受信可能な電子メールクライアントソフトウェアである。
図3(b)に示したライセンス移行処理部53は、移行元利用者のウォレットを確認し、提供者端末装置20からのイーサリアムが入金されたか否かを確認する。
ライセンス移行処理部53は、入金を確認すると、以下に説明するライセンス移行処理を実行する。
また、提供者端末装置20からの移行通知の送信は、ライセンスを移行するためのスマートコントラクトを実行後に行っても良い。
CPU41(ライセンス移行処理部53)は、ステップS301において、譲渡先の利用者のウォレットに対してライセンストークンを移譲するための移譲トランザクションを作成する。
移譲トランザクションには、当該利用者端末装置を利用する移行元利用者のウォレットの秘密鍵に基づく電子署名と、移行先利用者のウォレットアドレスと、が少なくとも含まれる。
CPU41(ライセンス移行処理部53)は、ステップS302において、ステップS301で作成した譲渡トランザクションをブロックチェーンネットワークに公開する。
これにより、トークンを移行するスマートコントラクトがブロックチェーン上で実行され、ライセンスの移行が実現する。
なお、ライセンス移行に伴う手数料分のイーサリアムの送金は、利用者端末装置10が送信する移行通知に基づいて行われるのではなく、提供者端末装置20がブロックチェーンを監視し、ライセンス移行が行われたことを提供者端末装置20が発見したことを契機に行われても良い。
この場合、提供者端末装置20は、図4(b)の処理部に加え、ブロックチェーンを常時監視するブロックチェーン監視部、利用者に仮想通貨(イーサリアム)を付与するトランザクションを作成、公開する処理を行う送金部を備える。
ブロックチェーンを監視していたブロックチェーン監視部が、ライセンス移行のための譲渡トランザクションを発見すると、送金部は、譲渡トラザクションを公開した利用者のウォレットに対して、イーサリアムを送金する処理を行う。
サーバ装置は、少なくとも、制御部としてCPU、RAMを備え、ネットワークI/Fによってインターネットに接続されている。
サーバ装置のCPUは、ブロックチェーンを常時監視するブロックチェーン監視部、利用者に仮想通貨(イーサリアム)を付与するトランザクションを作成、公開する処理を行う送金部を実行する。
ブロックチェーンを監視していたブロックチェーン監視部が、ライセンス移行のための譲渡トランザクションを発見すると、送金部は、譲渡トラザクションを公開した利用者のウォレットに対して、イーサリアムを送金する処理を行う。
サービス提供側も、認証サーバ(ライセンスサーバ)を常時稼働させる必要がなくなり、コスト面や運用面で有利なシステムとすることが出来る。
それに対し、ブロックチェーン上にライセンス情報を記録するが、ブロックチェーンを探索してライセンスの有無を問い合わせる探索サーバを別途設ける構成としてもよい。
上記で説明したイーサリアム以外のブロックチェーンのプロトコルによっても、ライセンス情報を格納するストレージとしてブロックチェーンを用い、ライセンス認証は別途設けたサーバ装置によって行うことで、類似の仕組みを実現することが出来る。
この場合、復号用DLLに含まれるライセンス認証処理部51は、暗号化アプリケーションの実行時に探索サーバに対して問い合わせを行う。すなわち、アプリケーションのウォレットアドレス、利用者のウォレットアドレスを探索サーバに送信する。
探索サーバは、これらの情報に基づいて、ブロックチェーンのメモリ領域を探索し、ライセンスの有無をライセンス認証処理部51に返す処理を行う。
電子書籍や動画、音楽などのコンテンツについても、同様に適用可能である。
例えば、提供者は、これらのコンテンツデータを暗号化して配信する。暗号化されたコンテンツデータを取得した利用者が用いる端末装置で実行される閲覧ソフトウェアは、コンテンツの表示のたびに、ブロックチェーンネットワークに問い合わせて認証を行う。
認証が成功した場合、閲覧ソフトウェアは、暗号化コンテンツデータを復号して表示を行う。このような構成とすることにより、デジタルコンテンツを提供した提供者がサービスを終了したり、障害が発生したりすることによって提供者端末装置20の稼働が終了あるいは停止した場合でも、利用者端末装置10は、ブロックチェーン上に記録されたライセンストークンを利用して、ライセンス認証を行ってデジタルコンテンツを表示することが出来る。
Claims (11)
- 第1の装置と、第2の装置と、を備え、
前記第1の装置は、
入力されたデータの暗号化処理を行って暗号化データを出力する暗号化処理部と、
前記第2の装置の利用者に対して前記データに係るライセンスの付与を行い、当該ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出するライセンス付与処理部と、を備え、
前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含み、
前記第2の装置は、
前記暗号化データの利用時に、ブロックチェーン上に記録されたライセンス情報に基づく認証を行うライセンス認証処理部と、
前記認証が成功した場合に前記暗号化データに対する復号処理を行う復号処理部と、
を備える、
ことを特徴とする情報処理システム。 - 請求項1に記載の情報処理システムにおいて、
前記ライセンス付与処理部は、前記利用者に係る第2の仮想通貨ウォレットアドレスと、前記第1の仮想通貨ウォレットアドレスと、に基づくライセンス情報を前記ブロックチェーンネットワークに送出することを特徴とする情報処理システム。 - 請求項1に記載の情報処理システムにおいて、
前記ライセンス付与処理部は、前記利用者に係る第2の仮想通貨ウォレットアドレスと、前記第1の仮想通貨ウォレットアドレスと、前記第2の装置に係る固有情報と、に基づくライセンス情報を前記ブロックチェーンネットワークに送出することを特徴とする情報処理システム。 - 請求項1乃至3の何れか一項に記載の情報処理システムにおいて、
前記ライセンス認証処理部は、前記認証時に、ブロックチェーンを記憶する外部装置に対する問い合わせを行い、
前記暗号化処理部は、前記データの暗号化時に、前記ライセンス認証処理部が利用可能な外部装置の接続先リストを前記暗号化データに含めることを特徴とする情報処理システム。 - 請求項1乃至4の何れか一項に記載の情報処理システムにおいて、
前記第2の装置は、前記利用者から他の利用者に前記ライセンスを移行するための移行情報を前記ブロックチェーンネットワークに公開することにより前記ライセンスの移行を行うライセンス移行処理部を備えることを特徴とする情報処理システム。 - 請求項5に記載の情報処理システムにおいて、
前記第2の装置は、前記ライセンスの移行を行うことを通知する移行通知を前記第1の装置に送信する移行通知送信処理部をさらに備え、
前記第1の装置は、前記移行通知に基づいて、前記利用者に仮想通貨を送金する処理を行う送金部をさらに備えることを特徴とする情報処理システム。 - 入力されたデータの暗号化処理を行って暗号化データを出力する暗号化処理部と、
他の装置の利用者に対して前記データに係るライセンスの付与を行い、当該ライセンスの付与に係るライセンス情報をブロックチェーンネットワークにする送出するライセンス付与処理部と、を備え、
前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含む、
ことを特徴とする情報処理装置。 - 暗号化データの利用時に、ブロックチェーン上に記憶されたライセンス情報に基づいて認証を行うライセンス認証処理部と、
前記認証が成功した場合に前記暗号化データに対する復号処理を行う復号処理部と、
を備え、
前記暗号化データは、当該暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを含む、
ことを特徴とする情報処理装置。 - データに対する暗号化処理を行い、暗号化データを生成する暗号化処理部と、
前記データの利用者に対して前記データに係るライセンスの付与を行い、前記ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出するライセンス付与処理部と、
前記暗号化データの利用時に前記ライセンス情報に応じて認証を行うために、前記ライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化データに付加する付加部と、
を備え、
前記付加部は、さらに、
前記暗号化データの利用時に前記暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを前記暗号化データに付加する
ことを特徴とする情報処理装置。 - コンピュータによって実行される情報処理方法であって、
データに対する暗号化処理を行い、暗号化データを生成し、
前記データの利用者に対して前記データに係るライセンスを付与し、
前記ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出し、
前記暗号化データの利用時に前記ライセンス情報に応じて認証を行うために、前記ライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化データに付加し、
前記暗号化データの利用時に前記暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを前記暗号化データに付加する
ことを特徴とする情報処理方法。 - データに対する暗号化処理を行い、暗号化データを生成し、
前記データの利用者に対して前記データに係るライセンスを付与し、
前記ライセンスの付与に係るライセンス情報をブロックチェーンネットワークに送出し、
前記暗号化データの利用時に前記ライセンス情報に応じて認証を行うために、前記ライセンス情報をブロックチェーンネットワークに問い合わせるコードを、前記暗号化データに付加し、
前記暗号化データの利用時に前記暗号化データを特定するために作成された第1の仮想通貨ウォレットアドレスを前記暗号化データに付加する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018153949A JP7053031B2 (ja) | 2018-08-20 | 2018-08-20 | 情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018153949A JP7053031B2 (ja) | 2018-08-20 | 2018-08-20 | 情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020030454A JP2020030454A (ja) | 2020-02-27 |
JP7053031B2 true JP7053031B2 (ja) | 2022-04-12 |
Family
ID=69622479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018153949A Active JP7053031B2 (ja) | 2018-08-20 | 2018-08-20 | 情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7053031B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6730504B1 (ja) * | 2019-11-27 | 2020-07-29 | 株式会社Artrigger | プログラム及び情報処理方法 |
EP4114075A4 (en) | 2020-02-26 | 2024-04-10 | Ntt Docomo, Inc. | TERMINAL DEVICE, WIRELESS COMMUNICATION METHODS AND BASE STATION |
KR102393403B1 (ko) * | 2021-10-28 | 2022-04-29 | 차경운 | 소프트웨어 멀티 소유권 계정 관리 방법 |
JP7442910B1 (ja) * | 2022-07-07 | 2024-03-05 | Sushi Top Marketing株式会社 | 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018075129A1 (en) | 2016-10-20 | 2018-04-26 | Sony Corporation | Blockchain-based digital rights management |
-
2018
- 2018-08-20 JP JP2018153949A patent/JP7053031B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018075129A1 (en) | 2016-10-20 | 2018-04-26 | Sony Corporation | Blockchain-based digital rights management |
Also Published As
Publication number | Publication date |
---|---|
JP2020030454A (ja) | 2020-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7436568B2 (ja) | ブロックチェーンにより実現される方法及びシステム | |
CN109144961B (zh) | 授权文件共享方法及装置 | |
JP6877448B2 (ja) | 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム | |
CN111541727B (zh) | 区块链一体机及其自动建链方法、装置 | |
KR101781583B1 (ko) | 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법 | |
JP7053031B2 (ja) | 情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム | |
CN103098070B (zh) | 用于监视网络服务中数据位置的方法、装置和*** | |
JP5196883B2 (ja) | 情報セキュリティ装置および情報セキュリティシステム | |
JP5365502B2 (ja) | ファイル管理装置、ファイル管理プログラム、およびファイル管理方法 | |
US11729175B2 (en) | Blockchain folding | |
JP6543743B1 (ja) | 管理プログラム | |
JP2013514587A (ja) | 証明書失効リストを用いたコンテンツ管理方法 | |
JP4525609B2 (ja) | 権限管理サーバ、権限管理方法、権限管理プログラム | |
KR102107438B1 (ko) | 블록체인을 이용한 전자 문서 관리 장치 및 이의 동작 방법 | |
KR20210064675A (ko) | 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법 | |
CN108881261B (zh) | 一种容器环境下基于区块链技术的服务认证方法及*** | |
KR102359826B1 (ko) | 블록체인을 기반으로 한 디지털 자산 관리 시스템 및 방법 | |
CN115066863A (zh) | 用于利益拒绝***中的跨账户设备密钥转移的***和技术 | |
TWI636415B (zh) | 基於區塊鏈智能合約的去中心化kyc系統及其方法 | |
WO2019163040A1 (ja) | アクセス管理システム、及びそのプログラム | |
JP7457406B2 (ja) | 仮想通貨システム | |
US8755521B2 (en) | Security method and system for media playback devices | |
US20230283466A1 (en) | Content protection system | |
US7373672B2 (en) | Method for securely managing information in database | |
JPH11331145A (ja) | 情報共有システム、情報保管装置およびそれらの情報処理方法、並びに記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210210 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211029 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211227 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220324 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7053031 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |