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

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

▶ 富士通株式会社の特許一覧

特許7331714情報処理装置、情報処理方法及びプログラム
<>
  • 特許-情報処理装置、情報処理方法及びプログラム 図1
  • 特許-情報処理装置、情報処理方法及びプログラム 図2
  • 特許-情報処理装置、情報処理方法及びプログラム 図3
  • 特許-情報処理装置、情報処理方法及びプログラム 図4
  • 特許-情報処理装置、情報処理方法及びプログラム 図5
  • 特許-情報処理装置、情報処理方法及びプログラム 図6
  • 特許-情報処理装置、情報処理方法及びプログラム 図7
  • 特許-情報処理装置、情報処理方法及びプログラム 図8
  • 特許-情報処理装置、情報処理方法及びプログラム 図9
  • 特許-情報処理装置、情報処理方法及びプログラム 図10
  • 特許-情報処理装置、情報処理方法及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-15
(45)【発行日】2023-08-23
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
   H04L 9/14 20060101AFI20230816BHJP
   G06F 21/62 20130101ALI20230816BHJP
   H04L 9/32 20060101ALI20230816BHJP
【FI】
H04L9/14
G06F21/62 318
H04L9/32 200Z
【請求項の数】 4
(21)【出願番号】P 2020010593
(22)【出願日】2020-01-27
(65)【公開番号】P2021118444
(43)【公開日】2021-08-10
【審査請求日】2022-10-06
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】竹内 琢磨
(72)【発明者】
【氏名】鎌倉 健
【審査官】青木 重徳
(56)【参考文献】
【文献】国際公開第02/061572(WO,A1)
【文献】特開2017-207961(JP,A)
【文献】特開2004-206519(JP,A)
【文献】特開2008-131058(JP,A)
【文献】米国特許出願公開第2018/0253464(US,A1)
【文献】ABHISHEK PARAKH,COMMUNICATION EFFICIENT OBLIVIOUS TRANSFER USING ELLIPTIC CURVES,2012 IEEE 14TH INTERNATIONAL SYMPOSIUM ON HIGH-ASSURANCE SYSTEMS ENGINEERING (HASE),2012年10月25日,PAGE(S):173 - 174,http://dx.doi.org/10.1109/HASE.2012.14
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/14
G06F 21/62
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
端末が有する第1の秘密鍵に対応する第1の公開鍵によって暗号化されて記憶部に記憶されているプログラムと、前記第1の秘密鍵には対応しない第2の公開鍵によって暗号化されてから前記第1の公開鍵によって暗号化され前記プログラムに対応付けられて前記記憶部に記憶されている、前記プログラムに対する第1の識別子とを前記端末へ送信する送信部と、
前記プログラムを実行した前記端末において前記第1の公開鍵によって復号され、前記第2の公開鍵によって暗号化されている前記第1の識別子を受信すると、前記第2の公開鍵に対応する第2の秘密鍵によって復号された前記第1の識別子を含む取引情報をブロックチェーンに登録する登録部と、
を有することを特徴とする情報処理装置。
【請求項2】
前記取引情報の前記ブロックチェーンへの登録に際し、第2の公開鍵によって暗号化されてから前記第1の公開鍵によって暗号化された、前記第1の識別子とは異なる第2の識別子によって、前記記憶部に記憶されている前記第1の識別子を更新する更新部と、
を有することを特徴とする請求項1記載の情報処理装置。
【請求項3】
端末が有する第1の秘密鍵に対応する第1の公開鍵によって暗号化されて記憶部に記憶されているプログラムと、前記第1の秘密鍵には対応しない第2の公開鍵によって暗号化されてから前記第1の公開鍵によって暗号化され前記プログラムに対応付けられて前記記憶部に記憶されている、前記プログラムに対する第1の識別子とを前記端末へ送信し、
前記プログラムを実行した前記端末において前記第1の公開鍵によって復号され、前記第2の公開鍵によって暗号化されている前記第1の識別子を受信すると、前記第2の公開鍵に対応する第2の秘密鍵によって復号された前記第1の識別子を含む取引情報をブロックチェーンに登録する、
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項4】
端末が有する第1の秘密鍵に対応する第1の公開鍵によって暗号化されて記憶部に記憶されているプログラムと、前記第1の秘密鍵には対応しない第2の公開鍵によって暗号化されてから前記第1の公開鍵によって暗号化され前記プログラムに対応付けられて前記記憶部に記憶されている、前記プログラムに対する第1の識別子とを前記端末へ送信し、
前記プログラムを実行した前記端末において前記第1の公開鍵によって復号され、前記第2の公開鍵によって暗号化されている前記第1の識別子を受信すると、前記第2の公開鍵に対応する第2の秘密鍵によって復号された前記第1の識別子を含む取引情報をブロックチェーンに登録する、
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年のソフトウェア開発において、プログラムの全てを単独のエンジニアが管理することは希であり、クラウドサービスが提供するAPI(Application Program Interface)ライブラリを利用し、APIライブラリを呼び出す処理をプログラム内に取り入れることが盛んである。このようなAPIライブラリの提供者は、ユーザからのAPIライブラリの呼び出し回数に応じてユーザから課金を行うことで、APIライブラリの提供のサービスについての収益を成り立たせている。
【0003】
一方、上記のようなサービスのユーザにとって、APIライブラリを呼び出す処理の再現性の保証は重要である。しかし、一般にAPIライブラリの処理内容は外部からブラックボックス化されている。そのため、サービス内で処理内容の仕様変更が行われた場合、ユーザにとっては、同じAPIの呼び出し処理であっても時間の経過に応じて実行結果が変わる可能性がある。そのため、例えば、APIライブラリの提供者がプログラム仕様変更の履歴を改竄なく公開してくれるという信頼性を前提として、再現性を保証することが考えられる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-117287号公報
【文献】特開2017-204704号公報
【文献】特開2017-208085号公報
【文献】特開2018-139068号公報
【文献】国際公開第2019-004118号
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、ブロックチェーンの透明性を利用し、ブロックチェーン上のデータとしてAPIライブラリの処理ロジック(プログラム)を管理し、ブロックチェーンを用いて処理ロジックのアクセス制御を行えば、サービス提供者への信頼性を要求せずとも再現性を保証できると考えられる。
【0006】
しかし、ブロックチェーンのデータとしての処理ロジックが一度実行されると、全ノードにおいて処理ロジックが共有されるため、ユーザは、以降はAPIを呼び出さずとも同様の処理ロジックを用いることができるようになる。その結果、APIライブラリの提供者が、プログラムの実行回数に応じて課金を行うことが困難となる。
【0007】
そこで、一側面では、本発明は、プログラムの実行回数に応じた課金を可能とすることを目的とする。
【課題を解決するための手段】
【0008】
一つの態様では、情報処理装置は、端末が有する第1の秘密鍵に対応する第1の公開鍵によって暗号化されて記憶部に記憶されているプログラムと、前記第1の秘密鍵には対応しない第2の公開鍵によって暗号化されてから前記第1の公開鍵によって暗号化され前記プログラムに対応付けられて前記記憶部に記憶されている、前記プログラムに対する第1の識別子とを前記端末へ送信する送信部と、前記プログラムを実行した前記端末において前記第1の公開鍵によって復号され、前記第2の公開鍵によって暗号化されている前記第1の識別子を受信すると、前記第2の公開鍵に対応する第2の秘密鍵によって復号された前記第1の識別子を含む取引情報をブロックチェーンに登録する登録部と、を有する。
【発明の効果】
【0009】
一側面として、プログラムの実行回数に応じた課金を可能とすることができる。
【図面の簡単な説明】
【0010】
図1】第1の実施の形態の情報処理システムの構成例を示す図である。
図2】第1の実施の形態におけるブロックチェーンC1の各ノード10のハードウェア構成例を示す図である。
図3】第1の実施の形態におけるブロックチェーンC1の各ノード10の機能構成例を示す図である。
図4】ブロックチェーンC1への処理ロジックの登録処理の処理手順の一例を説明するためのシーケンス図である。
図5】処理ロジック及び処理識別子の暗号化を説明するための図である。
図6】処理ロジックDB121の構成例を示す図である。
図7】処理ロジックの利用時に実行される処理手順の一例を説明するためのシーケンス図である。
図8】処理ロジックの利用時に実行される処理手順の一例を説明するためのシーケンス図である。
図9】処理ロジックの更新処理の処理手順の第1の例を説明するためのシーケンス図である。
図10】処理ロジックの更新処理の処理手順の第2の例を説明するためのシーケンス図である。
図11】第2の実施の形態の情報処理システムの構成例を示す図である。
【発明を実施するための形態】
【0011】
以下、図面に基づいて第1の実施の形態を説明する。図1は、第1の実施の形態の情報処理システムの構成例を示す図である。
【0012】
図1に示される情報処理システム1において、ブロックチェーンC1は、インターネット等のネットワークを介して1以上のアプリ端末20及び1以上のAPI提供者端末30に接続される。
【0013】
アプリ端末20は、ブロックチェーンC1において公開されるAPI(Application Program Interface)を介してアクセス可能なプログラム(以下、「処理ロジック」という。)を利用するアプリケーションプログラム(以下、「アプリa」という。)がインストールされた端末である。
【0014】
API提供者端末30は、上記APIを介してアクセスされる処理ロジックの提供者(以下、「API提供者」という。)が利用する端末である。
【0015】
なお、アプリ端末20及びAPI提供者端末30としては、PC(Personal Computer)、スマートフォン又はタブレット端末等が利用されてもよい。
【0016】
ブロックチェーンC1は、処理ロジックを記憶するブロックチェーンである。
【0017】
図2は、第1の実施の形態におけるブロックチェーンC1の各ノード10のハードウェア構成例を示す図である。図2に示されるように、ノード10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
【0018】
ノード10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0019】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってノード10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
【0020】
なお、記録媒体101の一例としては、CD-ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【0021】
図3は、第1の実施の形態におけるブロックチェーンC1の各ノード10の機能構成例を示す図である。図3に示されるように、各ノード10は、処理ロジック更新部11、処理ロジック参照部12、復号要求受信部13及び取引管理部14等を有する。これら各部は、各ノード10にインストールされた1以上のプログラムが、各ノード10のCPU104に実行させる処理により実現される。例えば、これら各部は、スマートコントラクトとして実装されてよい。各ノード10は、また、処理ロジックDB121及び台帳122を利用する。処理ロジックDB121及び台帳122記憶部は、例えば、各ノード10の補助記憶装置102、又は各ノード10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【0022】
処理ロジック更新部11は、処理ロジックDB121の更新を行う。処理ロジックDB121には、処理ロジックが記憶されている。
【0023】
処理ロジック参照部12は、処理ロジックの参照要求に応じ、処理ロジックDB121に記憶されている処理ロジック群の中で、参照要求に対応する処理ロジックを応答する。
【0024】
復号要求受信部13は、処理ロジックに暗号化されて付与されている処理識別子の復号要求を受信する。本実施の形態において、処理識別子とは、処理ロジックの実行回数を識別するために利用される文字列である。
【0025】
取引管理部14は、ブロックチェーンC1に対する取引情報の登録要求に応じ、当該取引情報を台帳122に記録(登録)する。なお、当該取引情報は、処理ロジックが実行されたことを示す情報であり、当該処理ロジックに対する処理識別子を含む。
【0026】
以下、情報処理システム1において実行される処理手順について説明する。図4は、ブロックチェーンC1への処理ロジックの登録処理の処理手順の一例を説明するためのシーケンス図である。なお、図4以降の各処理手順の説明において、アプリ端末20が実行するステップは、アプリ端末20にインストールされたプログラム(例えば、アプリa)がアプリ端末20に実行させる。一方、API提供者端末30が実行するステップは、API提供者端末30にインストールされたプログラムがAPI提供者端末30に実行させる。
【0027】
ステップS101において、API提供者端末30は、処理ロジックの提供者による入力等に応じ、新規の処理ロジックを生成する。続いて、API提供者端末30は、当該処理ロジックの処理識別子を生成する(S102)。この際、API提供者端末30は、当該処理識別子に対応付けて当該処理ロジックをAPI提供者端末30に記憶しておく。続いて、API提供者端末30は、API提供者の公開鍵Cを用いて当該処理識別子を暗号化する(S103)。続いて、API提供者端末30は、アプリ端末20におけるアプリa(以下、「対象アプリ」という。)の公開鍵Aを用いて、当該処理ロジックに対して暗号化後の処理識別子が付与されたデータ(例えば、ファイル)を暗号化することで暗号文を生成する(S104)。
【0028】
図5は、処理ロジック及び処理識別子の暗号化を説明するための図である。図5に示されるように、まず、処理識別子としての文字列である「処理ID-A01」が公開鍵Cを用いて暗号化され、暗号結果が処理ロジックに付与される。更に、当該暗号結果を含む処理ロジックが公開鍵Aを用いて暗号化され、暗号文が生成される。なお、図5では、処理ロジックがソースコード(例えば、スクリプト等)である例が示されているが、処理ロジックは、コンパイル後のバイナリ形式のデータであってもよい。
【0029】
続いて、API提供者端末30は、処理ロジックの登録要求をブロックチェーンC1に送信する(S105)。当該登録要求には、対象アプリ及び当該処理ロジックの組み合わせに対する識別情報であるアプリIDと、ステップS104において生成された暗号文とが含まれる。ブロックチェーンC1の各ノード10の処理ロジック更新部11は、当該登録要求に応じ、当該登録要求に含まれているアプリIDと暗号文とを対応付けて当該ノード10の処理ロジックDB121に登録する(S106)。
【0030】
図6は、処理ロジックDB121の構成例を示す図である。図6に示されるように、処理ロジックDB121には、アプリIDに対応付けられて暗号文が記憶される。当該暗号文は、公開鍵Cを利用して暗号化された処理識別子を含む処理ロジックが公開鍵Aを利用して暗号化された結果である。なお、アプリIDは、アプリ端末20ごとに異なる。したがって、同一のアプリaについて、アプリ端末20ごとに図4の処理手順が実行される。なお、アプリごとに複数の処理ロジックが登録される場合には、それぞれのアプリIDは異なる値となる。
【0031】
続いて、処理ロジックDB121に登録された処理ロジックをアプリ端末20のアプリが利用する際に実行される処理手順について説明する。図7及び図8は、処理ロジックの利用時に実行される処理手順の一例を説明するためのシーケンス図である。
【0032】
ステップS201において、或るアプリ端末20のアプリa(以下、「対象アプリ」という。)は、利用対象とする処理ロジックに対応するアプリIDが指定された処理ロジックの参照要求をブロックチェーンC1に送信する(S201)。
【0033】
ブロックチェーンC1のいずれかのノード10の処理ロジック参照部12は、当該参照要求を受信すると、当該参照要求に含まれているアプリIDに対応する暗号文を処理ロジックDB121から取得し(S202)、当該暗号文を含む応答を対象アプリへ送信する(S203)。
【0034】
対象アプリは、当該応答を受信すると、当該応答に含まれている暗号文を、対象アプリの秘密鍵a(公開鍵Aに対応する秘密鍵)を用いて復号する(S204)。その結果、平文の処理ロジックと暗号化された処理識別子とが得られる。続いて、対象アプリは、対象アプリにおいて当該処理ロジックのAPIの呼び出し部分において、平文の処理ロジックをアプリ端末20に実行させる(S205)。当該処理ロジックの実行が終了すると、対象アプリは、ステップS204において得られた、暗号化された処理識別子の復号要求をブロックチェーンC1へ送信する(S206)。当該復号要求には、当該暗号化された処理識別子が含まれる。なお、当該復号要求は、実質的には、処理ロジックを実行したことの通知としての意味を有する。
【0035】
当該復号要求は、復号要求受信部13によって受信される。API提供者端末30は、復号要求受信部13によって当該復号要求が受信されたことを検知すると(S207)、当該処理識別子を公開鍵Cに対応する秘密鍵cを用いて復号する(図8のS208)。
【0036】
なお、API提供者端末30は、復号要求受信部13(スマートコントラクト)を監視することによって、当該復号要求の受信を検知してもよいし、例えば、API提供者端末30が定期的にポーリングを行うことにより、当該復号要求の受信を検知してもよい。
【0037】
続いて、API提供者端末30は、平文の当該処理識別子を含む取引情報をブロックチェーンC1に発行するための電子署名を、秘密鍵cを用いて生成する(S209)。続いて、API提供者端末30は、当該処理識別子を含む、当該電子署名付きの取引情報(トランザクション情報)の発行要求をブロックチェーンC1へ送信する(S210)。ブロックチェーンC1の各ノード10の取引管理部14は、台帳122に当該取引情報を登録する(S211)。その結果、当該処理識別子によって識別される処理ロジック(以下、「対象ロジック」という。)の実行が行われたという事実がブロックチェーンC1に登録される。
【0038】
続いて、API提供者端末30は、当該処理識別子(以下、「旧処理識別子」という。)を異なる値(以下、「新処理識別子」という。)に更新する(S212)。続いて、API提供者端末30は、API提供者の公開鍵Cを用いて新処理識別子を暗号化する(S213)。続いて、API提供者端末30は、対象アプリの公開鍵Aを用いて、暗号化後の処理識別子が付与された対象処理ロジック(暗号化後の処理識別子と対象処理ロジックとを含むファイル)を暗号化することで暗号文を生成する(S214)。なお、API提供者端末30は、旧処理識別子に関連付けて対象処理ロジックを記憶している。したがって、API提供者端末30は、旧処理識別子に関連付けられて記憶されている処理ロジックを用いて当該暗号文を生成する。その後、API提供者端末30は、旧処理識別子に代えて新処理識別子を対象処理ロジックに関連付けてAPI提供者端末30に記憶する。
【0039】
続いて、API提供者端末30は、対象処理ロジックの更新要求をブロックチェーンC1に送信する(S215)。当該登録要求には、対象アプリ及び対象処理ロジックの組み合わせに対する識別情報であるアプリIDと、ステップS214において生成された暗号文とが含まれる。ブロックチェーンC1の各ノード10の処理ロジック更新部11は、当該更新要求に応じ、当該更新要求に含まれているアプリIDに対応付けられて処理ロジックDB121に記憶されている暗号文を、当該更新要求に含まれている暗号文によって更新(置換)する(S216)。その結果、対象処理ロジックに対して処理ロジックDB121に記憶される処理識別子が旧処理識別子から新処理識別子に更新される。
【0040】
図9は、処理ロジックの更新処理の処理手順の第1の例を説明するためのシーケンス図である。図9の処理手順は、API提供者(以下、「対象提供者」という。)が、対象処理ロジックを修正(更新)する場合に実行される処理手順である。
【0041】
ステップS301において、API提供者端末30は、対象提供者による操作に応じ、対象処理ロジックの内容を更新する。なお、本実施の形態では、図5に示されるように、対象処理ロジックのファイル内に暗号化された処理識別子が含まれているとする。この場合、当該処理識別子は更新されなくてよい。当該処理識別子は、対象処理ロジックの実行回数を把握するための識別子であるが、たとえば対象処理ロジックのバージョン管理も兼ねて行う場合はステップS301の際に当該処理識別子を更新してもよい。処理識別子がバージョン管理の役割を持たない運用とする場合は、ステップS301の際に当該処理識別子を更新する必要はない。
【0042】
続いて、API提供者端末30は、対象アプリの公開鍵Aを用いて、暗号化された処理識別子が付与された対象処理ロジックを暗号化することで暗号文を生成する(S302)。
【0043】
続いて、API提供者端末30は、対象処理ロジックの更新要求をブロックチェーンC1に送信する(S303)。当該登録要求には、対象アプリ及び対象処理ロジックの組み合わせに対する識別情報であるアプリIDと、ステップS302において生成された暗号文とが含まれる。ブロックチェーンC1の各ノード10の処理ロジック更新部11は、当該更新要求に応じ、当該更新要求に含まれているアプリIDに対応付けられて処理ロジックDB121に記憶されている暗号文を、当該更新要求に含まれている暗号文によって更新(置換)する(S304)。その結果、更新後の対象ロジックが処理ロジックDB121に記憶される。但し、この場合、対象処理ロジックに対する処理識別子は変更されない。
【0044】
図10は、処理ロジックの更新処理の処理手順の第2の例を説明するためのシーケンス図である。図10の処理手順は、アプリ端末20のユーザ(以下、「アプリユーザ」という。)が、対象処理ロジックを修正(更新)する場合に実行される処理手順である。図10中、図9と同一ステップには同一ステップ番号を付し、その説明は省略する。
【0045】
ステップS311において、アプリ端末20は、アプリユーザによって修正(更新)された対象処理ロジックと修正前の処理ロジックに付与されていた暗号化された処理識別子とを含むデータを、API提供者端末30の公開鍵Cによって暗号化する。以下、暗号化されることで生成される暗号文を「更新処理ロジック」という。続いて、アプリ端末20は、更新処理ロジックについて、ブロックチェーンC1上への発行要求をブロックチェーンC1へ送信する(S312)。当該発行要求には、更新処理ロジックが含まれる。
【0046】
ブロックチェーンC1の取引管理部14は、当該発行要求に応じ、対象処理ロジックの更新を示す取引情報(トランザクション情報)を発行する(S313)。その結果、当該取引情報が台帳122に記録される。当該取引情報には、更新処理ロジックが含まれる。続いて、取引管理部14は、対象処理ロジックが更新されたことを示すイベントを出力(発火)する(S314)。
【0047】
API提供者端末30は、当該イベントを検知すると、当該取引情報をブロックチェーンC1から取得する(S315)。続いて、API提供者端末30は、当該取引情報に含まれている、更新処理ロジックを秘密鍵cを用いて復号する(S316)。その結果、公開鍵Cを利用して暗号化された処理識別子が付与された平文の処理ロジック(修正後の処理ロジック)が得られる。
【0048】
ステップS302以降は、当該処理ロジックが処理対象とされて実行される。その結果、アプリ端末20における処理ロジックの修正結果が処理ロジックDB121に反映される。
【0049】
上述したように、第1の実施の形態によれば、処理ロジックの実行に応じて当該処理ロジックに対応する識別子である処理識別子を含む取引情報がブロックチェーンC1へ記録される。したがって、ブロックチェーンC1に記録された処理識別子に基づいて、処理ロジックの実行回数を把握することができる。その結果、処理ロジックに係るプログラムの実行回数に応じた課金を可能とすることができる。
【0050】
また、本実施の形態では、処理ロジックの実行に応じて当該処理ロジックの処理識別子を含む取引情報がブロックチェーンC1へ記録されると、当該処理ロジックの処理識別子が異なる値に更新される。そうすることで、同一の処理ロジックの実行のたびに、異なる処理識別子がブロックチェーンC1に記録されることになる。その結果、アプリ側による同一の処理ロジックの無断での再利用に対して抑止力を与えることができる。すなわち、アプリ端末20では、図7のステップS204において平文の処理ロジックを獲得できるため、次回以降においてステップS201~S203を実行せずとも、当該処理ロジックを実行することができる。この場合、ステップS206では、前回と同じ処理識別子が送信される。したがって、そのことによって、当該処理ロジックの無断利用を検知することができる。
【0051】
なお、アプリ端末20がステップS206を実行しないことも考えられる。そこで、処理識別子を含む取引情報がブロックチェーンC1に記録されていない処理ロジックの実行については、サポートの対象外とするといったような運用が行われるようにしてもよい。サポートの対象外とするとは、例えば、処理ロジックにバグが含まれており、処理ロジックに関して動作不正が発生した場合であっても、当該動作不正に対してAPI提供者による対処が行われないことをいう。
【0052】
次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において、特に言及されない点については、第1の実施の形態と同様でもよい。
【0053】
図11は、第2の実施の形態の情報処理システムの構成例を示す図である。図11において、アプリ端末20は、ブロックチェーンC2を介してブロックチェーンC1に接続される。この場合、第1の実施の形態における各処理手順において、アプリ端末20とブロックチェーンC1との間のやりとりは、ブロックチェーンC2によって中継される。このような構成することにより、例えば、ブロックチェーンC1において取引情報が記録されていなければ、ブロックチェーンC2のスマートコントラクトが、ブロックチェーンC2のノードからブロックチェーンC1のノードに対して直接通信、アプリケーション経由、又はブロックチェーン経由等の方法で問い合わせ、ブロックチェーンC1上に当該取引情報が記録されていない応答を受け取り、応答結果をもとにアプリ端末20からの要求を拒否することで、不正な処理ロジックの利用を抑制することができる。
【0054】
なお、上記各実施の形態において、ノード10は、情報処理装置の一例である。処理識別子は、第1の識別子及び第2の識別子の一例である。処理ロジック参照部12は、送信部の一例である。取引管理部14は、登録部の一例である。処理ロジック更新部11は、更新部の一例である。公開鍵A、秘密鍵aは、それぞれ第1の公開鍵、第1の秘密鍵の一例である。公開鍵C、秘密鍵cは、それぞれ第2の公開鍵、第2の秘密鍵の一例である。
【0055】
以上、第1の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0056】
以上の説明に関し、更に以下の項を開示する。
(付記1)
端末が有する第1の秘密鍵に対応する第1の公開鍵によって暗号化されて記憶部に記憶されているプログラムと、前記第1の秘密鍵には対応しない第2の公開鍵によって暗号化されてから前記第1の公開鍵によって暗号化され前記プログラムに対応付けられて前記記憶部に記憶されている、前記プログラムに対する第1の識別子とを前記端末へ送信する送信部と、
前記プログラムを実行した前記端末において前記第1の公開鍵によって復号され、前記第2の公開鍵によって暗号化されている前記第1の識別子を受信すると、前記第2の公開鍵に対応する第2の秘密鍵によって復号された前記第1の識別子を含む取引情報をブロックチェーンに登録する登録部と、
を有することを特徴とする情報処理装置。
(付記2)
前記取引情報の前記ブロックチェーンへの登録に際し、第2の公開鍵によって暗号化されてから前記第1の公開鍵によって暗号化された、前記第1の識別子とは異なる第2の識別子によって、前記記憶部に記憶されている前記第1の識別子を更新する更新部と、
を有することを特徴とする付記1記載の情報処理装置。
(付記3)
端末が有する第1の秘密鍵に対応する第1の公開鍵によって暗号化されて記憶部に記憶されているプログラムと、前記第1の秘密鍵には対応しない第2の公開鍵によって暗号化されてから前記第1の公開鍵によって暗号化され前記プログラムに対応付けられて前記記憶部に記憶されている、前記プログラムに対する第1の識別子とを前記端末へ送信し、
前記プログラムを実行した前記端末において前記第1の公開鍵によって復号され、前記第2の公開鍵によって暗号化されている前記第1の識別子を受信すると、前記第2の公開鍵に対応する第2の秘密鍵によって復号された前記第1の識別子を含む取引情報をブロックチェーンに登録する、
処理をコンピュータが実行することを特徴とする情報処理方法。
(付記4)
前記取引情報の前記ブロックチェーンへの登録に際し、第2の公開鍵によって暗号化されてから前記第1の公開鍵によって暗号化された、前記第1の識別子とは異なる第2の識別子によって、前記記憶部に記憶されている前記第1の識別子を更新する、
処理をコンピュータが実行することを特徴とする付記3記載の情報処理方法。
(付記5)
端末が有する第1の秘密鍵に対応する第1の公開鍵によって暗号化されて記憶部に記憶されているプログラムと、前記第1の秘密鍵には対応しない第2の公開鍵によって暗号化されてから前記第1の公開鍵によって暗号化され前記プログラムに対応付けられて前記記憶部に記憶されている、前記プログラムに対する第1の識別子とを前記端末へ送信し、
前記プログラムを実行した前記端末において前記第1の公開鍵によって復号され、前記第2の公開鍵によって暗号化されている前記第1の識別子を受信すると、前記第2の公開鍵に対応する第2の秘密鍵によって復号された前記第1の識別子を含む取引情報をブロックチェーンに登録する、
処理をコンピュータに実行させることを特徴とするプログラム。
(付記6)
前記取引情報の前記ブロックチェーンへの登録に際し、第2の公開鍵によって暗号化されてから前記第1の公開鍵によって暗号化された、前記第1の識別子とは異なる第2の識別子によって、前記記憶部に記憶されている前記第1の識別子を更新する、
処理をコンピュータに実行させることを特徴とする付記5記載のプログラム。
【符号の説明】
【0057】
1 情報処理システム
10 ノード
11 処理ロジック更新部
12 処理ロジック参照部
13 復号要求受信部
14 取引管理部
20 アプリ端末
30 API提供者端末
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
121 処理ロジックDB
122 台帳
B バス
C1 ブロックチェーン
C2 ブロックチェーン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11