(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-03
(54)【発明の名称】SIM暗号鍵ストレージ
(51)【国際特許分類】
H04L 9/08 20060101AFI20240327BHJP
H04L 9/32 20060101ALI20240327BHJP
H04L 9/10 20060101ALI20240327BHJP
H04W 12/0431 20210101ALI20240327BHJP
H04W 12/03 20210101ALI20240327BHJP
【FI】
H04L9/08 B
H04L9/08 E
H04L9/32 200Z
H04L9/10 A
H04W12/0431
H04W12/03
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023562473
(86)(22)【出願日】2022-04-06
(85)【翻訳文提出日】2023-12-05
(86)【国際出願番号】 GB2022050858
(87)【国際公開番号】W WO2022214804
(87)【国際公開日】2022-10-13
(32)【優先日】2021-04-09
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】523382100
【氏名又は名称】ダブコ・リミテッド
【氏名又は名称原語表記】DABCO LIMITED
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ポシュケ,ニルス
(72)【発明者】
【氏名】パーマー,デイビッド
(72)【発明者】
【氏名】ベント,ジョージ
【テーマコード(参考)】
5K067
【Fターム(参考)】
5K067AA21
5K067EE02
5K067EE10
5K067HH23
5K067HH36
(57)【要約】
分散型台帳にトランザクションを記録するための方法およびシステムであって、方法は、デバイスのUICC内およびブートストラッピングサーバ機能、BSFに格納された事前プロビジョニングされた鍵を使用して、デバイスとBSFとの間にセキュアなチャネルを作成するステップと、セキュアなチャネルを介してデバイスとBSFとの間で秘密を共有するステップと、デバイスのUICC上に共有秘密を格納するステップと、1つ以上のトランザクションを分散型台帳のブロックに追加するステップであって、1つ以上のトランザクションが共有秘密を使用して識別される、ステップとを含む。
【特許請求の範囲】
【請求項1】
分散型台帳にトランザクションを記録する方法であって、前記方法が、
デバイスのUICC内およびブートストラッピングサーバ機能、BSFに格納された事前プロビジョニングされた鍵を使用して、前記デバイスと前記BSFとの間にセキュアなチャネルを作成するステップと、
セキュアなチャネルを介して前記デバイスと前記BSFとの間で秘密を共有するステップと、
前記デバイスの前記UICC上に前記共有秘密を格納するステップと、
分散型台帳のブロックに1つ以上のトランザクションを追加するステップであって、前記1つ以上のトランザクションが前記共有秘密を使用して識別される、ステップと
を含む、方法。
【請求項2】
前記共有秘密を前記BSFからサーバに送信するステップであって、前記共有秘密が、前記デバイスと前記サーバとの間の通信チャネルを保護するために使用され、前記サーバが、前記1つ以上のトランザクションを前記分散型台帳の前記ブロックに追加する、ステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
前記1つ以上のトランザクションが、前記分散型台帳内の前記サーバのウォレット識別子に関連付けられ、前記1つ以上のトランザクションが、
前記サーバが、前記分散型台帳の前記ブロックに追加された前記1つ以上のトランザクションのトランザクション識別子を、前記デバイスからリモートに格納すること、および
前記サーバが、前記格納されたトランザクション識別子を前記共有秘密にマッピングすること
によって識別される、請求項2に記載の方法。
【請求項4】
前記トランザクション識別子が、前記UICCのアイデンティティおよび前記共有秘密に基づく、請求項2または3に記載の方法。
【請求項5】
前記ブロックに追加された前記トランザクションが、前記UICCのアイデンティティおよび前記共有秘密に基づいてウォレット識別子によって識別される、請求項1に記載の方法。
【請求項6】
前記共有秘密が、前記UICCの信頼できる実行環境、TEE内に格納される、先行する請求項のいずれかに記載の方法。
【請求項7】
前記共有秘密が対称鍵である、先行する請求項のいずれかに記載の方法。
【請求項8】
前記デバイスと前記BSFとの間に前記セキュアなチャネルを作成し、前記セキュアなチャネルを介して前記デバイスと前記BSFとの間で前記秘密を共有することが、汎用ブートストラップアーキテクチャ、GBAを使用し、および/またはGSMA IoTセキュリティアプレットインターフェース記述、IoT SAFEに従う、先行する請求項のいずれかに記載の方法。
【請求項9】
前記デバイスが、IoTデバイス、UE、スマートフォン、車両、自動車、または無人航空機のいずれか1つである、先行する請求項のいずれかに記載の方法。
【請求項10】
分散型台帳と、
ブートストラッピングサーバ機能、BSFと、
UICCを有するデバイスと、
1つ以上のプロセッサおよびメモリであって、前記メモリが、前記1つ以上のプロセッサに、
前記デバイスの前記UICC内および前記BSFに格納された事前プロビジョニングされた鍵を使用して、前記デバイスと前記BSFとの間にセキュアなチャネルを作成すること、
前記セキュアなチャネルを介して前記デバイスと前記BSFとの間で秘密を共有すること、および
前記デバイスの前記UICC上に前記共有秘密を格納すること、および、
前記分散型台帳のブロックに1つ以上のトランザクションを追加することであって、前記1つ以上のトランザクションが前記共有秘密を使用して識別されること
を行わせるプログラム命令を含む、1つ以上のプロセッサおよびメモリと
を備えるシステム。
【請求項11】
サーバ
をさらに備え、
前記BSFが、前記共有秘密を前記サーバに送信するように構成され、
前記プログラム命令がさらに、前記1つ以上のプロセッサに、前記デバイスと前記サーバとの間の通信チャネルを保護するために前記共有秘密を使用させ、前記サーバが、前記1つ以上のトランザクションを前記分散型台帳のブロックに追加する、請求項10に記載のシステム。
【請求項12】
前記1つ以上のトランザクションが、前記サーバのウォレット識別子に関連付けられ、前記サーバがさらに、前記分散型台帳の前記ブロックに追加された前記1つ以上のトランザクションのトランザクション識別子を格納するように構成されたデータベースと、前記格納されたトランザクション識別子の前記共有される共有秘密へのマッピングとをさらに備える、請求項11に記載のシステム。
【請求項13】
前記トランザクション識別子が、前記UICCのアイデンティティおよび前記共有秘密に基づく、請求項11または12に記載のシステム。
【請求項14】
前記ブロックに追加された前記トランザクションが、前記UICCのアイデンティティおよび前記共有秘密に基づいてウォレット識別子によって識別される、請求項10に記載のシステム。
【請求項15】
前記デバイスが、前記1つ以上のプロセッサと、前記1つ以上のプロセッサに前記1つ以上のトランザクションを前記分散型台帳の前記ブロックに追加させるためのプログラム命令を含む前記メモリとを備える、請求項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
本発明は、分散型台帳にトランザクションを記録するための、特にデバイスまたはオブジェクトがそのようなトランザクションを安全に生成するためのシステムおよび方法に関する。
【背景技術】
【0002】
発明の背景
異なるエンティティが価値を交換するために互いに対話および取引することが一般的に必要とされている。しかしながら、これがトランザクションの各当事者にとって安全かつセキュアな方法で行われるためには、トランザクションエンティティ間に信頼のレベルが存在する必要がある。そのような信頼がない場合、強制可能な契約および第三者機関または仲介者などの他の構造および手順が必要である。
【0003】
暗号通貨は、代替通貨(または私有通貨)の形態であるデジタル通貨である。それらは通常、中央制御された政府発行通貨(例えば、法定不換通貨)とは異なり、非中央集権型または分散型の通貨および/または交換媒体を提供する。デジタル通貨は、ある所有者またはエンティティから別の所有者またはエンティティに取引または送信されてもよく、商品の購入、サービスの購入、またはデータの取得などの任意の目的に使用されてもよい。したがって、デジタル通貨は、従来の通貨の代替手段を表す。
【0004】
暗号通貨の一例はビットコインであるが、他の多くの暗号通貨システムが考案されている。ビットコインは、Satoshi Nakamotoによって開発され、ビットコイン技術および原理の基本を概説するオリジナルの論文「Bitcoin:A Peer-to-Peer Electronic Cash System」はhttps://bitcoin.org/bitcoin.pdfに記載されている。
【0005】
分散型台帳などの分散型暗号通貨の基礎となる技術は、他のタイプのトランザクションを記録するために使用することもでき、エンティティ間に存在する信頼を必要とせずに、交換の検証可能な履歴または他の形態のデータを形成することができる。ブロックチェーンなどの分散型台帳は、そのような信頼がない場合にトランザクションおよび価値の交換を行うことを可能にする。しかしながら、これは、個々の当事者またはエンティティによる破壊または制御が困難なコンセンサスを形成するために、公開ブロックチェーンの使用を必要とする。これは通常、プルーフ・オブ・ワークに基づいてコンセンサスを得ようとする競争の形をとるが、これ自体が計算および電力の形で非常に高いレベルのリソースを消費する可能性がある。
【0006】
代替的な手法は、プライベート型ブロックチェーンを使用するが、当事者とプライベート型ブロックチェーン自体の所有者およびコントローラとの間で信頼を築く必要性が再び生じる。
【0007】
信頼は、エンティティのアイデンティティまたは他の特性を決定および検証することによって築くことができるが、この努力は、オーバーヘッドおよび追加の作業を導入し、コンピュータまたは電気通信ネットワークの非効率性および追加の負荷につながる可能性がある。さらに、そのような検証またはチェックは、多くの場合、別個の情報源に依存し、その各々も検証および承認または信頼される必要があり得る。これは、かなりの帯域幅および処理リソースを必要とし得る。したがって、この手法は、オーバーヘッドが大きな負担にならない、特定の価値を超えて取引する特定のエンティティにのみ適切であり得る。これはまた、互いに新しいエンティティ間の新しい価値の交換、または低価値であるが大量の一時的な交換を妨げる。モノのインターネットまたは他の低計算量のパワーデバイスを形成するものなどの小型または多数のエンティティまたはデバイスの場合、オーバーヘッドは小さな価値交換を大幅に上回る可能性がある。したがって、これは、特に自律型または監視されていないデバイスのために、価値またはデータパッケージを交換するために必要な効率およびスケーラビリティを制限する。
【0008】
したがって、これらの問題を克服する方法およびシステムが必要とされている。
【発明の概要】
【課題を解決するための手段】
【0009】
発明の概要
トランザクションは、好ましくはブロックチェーンにブロックを追加することによって、分散型台帳に記録される。分散型台帳は、作業および報酬の証明システムを使用して個々のエンティティが制御を引き継ぐことを防止する公開台帳またはブロックチェーンである必要はない。代わりに、分散型台帳をプライベートにすることができる。イベントおよびトランザクションの検証可能な記録を提供する分散型台帳と価値を交換するエンティティとの間に信頼が築かれる必要がある。さらに、異なる当事者が、誰と取引しているかを確実に知る必要がある。これを達成するために、トランザクションが発生するデバイスは、SIMなどのUICCを含む。SIMが製造またはパーソナライズされると、固有の1つまたは複数の鍵がSIM内のセキュアなメモリ内に格納される。(SIMに固有の)同じ鍵が、SIMを発行または所有する電気通信ネットワークに格納されるかまたは利用可能である。この鍵は、SIMの識別子に関連付けられ得る。この鍵は、SIM(またはSIMを収容するデバイス)とブートストラッピングサーバ機能(BSF)との間にセキュアな通信チャネルを作成するために使用される。BSFは、汎用ブートストラッピングアーキテクチャ(GBA)を実装するために使用される電気通信ネットワーク内の要素である。
【0010】
予め格納された鍵を使用してデバイスとBSFとの間で通信チャネルが確保されると、この確保されたチャネルを介してBSFとSIMとの間で(デバイス内で)秘密が共有される。この共有秘密は、SIMのセキュアなストレージ内に格納される。そして、デバイスは、この共有秘密を使用して、分散型台帳のブロックに追加されたエントリまたはトランザクションを識別する。GBAを使用して共有される共有秘密を使用してまたはそれに基づいてトランザクションを識別することができるため、いずれの当事者もトランザクションを信頼することができ、その起源または発信元は宣言されたとおりである。SIM上のデータストアは暗号的に保護され、(デバイスによってさえ)改ざん防止されるので、これは追加のセキュリティを提供し、信頼を維持する。
【0011】
トランザクションを追加することは、例えば、この共有秘密自体をトランザクション識別子の一部もしくは全部として使用することによって、またはそれから導出されることによって、トランザクション識別子内で直接共有秘密を使用し得る。しかしながら、プロキシサーバ(すなわち、デバイスと分散型台帳との間の中間部)などのサーバは、それ自体の識別子またはウォレット識別子(またはそのウォレット識別子のセットのうちの1つ)を使用してトランザクションをブロックに追加し、SIMおよびデバイスに関連付けられた共有秘密にトランザクションをマッピングする機能を実行することができる。そのようなマッピングは、プロキシサーバ内または外部にあるがプロキシサーバによってアクセス可能なデータベースまたは他のデータストアに格納され得る。したがって、トランザクション、ひいてはトランザクションが発生するエンティティは、SIMの信頼されている性質により、他の当事者またはエンティティによって信頼され得る。この実装例では、異なるエンティティ、機能、またはトランザクションタイプに対して異なるサーバが動作してもよい。
【0012】
第1の態様によれば、分散型台帳にトランザクションを記録する方法が提供され、本方法は、
デバイスのUICC内およびBSFに格納された事前プロビジョニングされた鍵を使用して、デバイスとブートストラッピングサーバ機能、BSFとの間にセキュアなチャネルを作成するステップと、
セキュアなチャネルを介してデバイスとBSFとの間で秘密を共有するステップと、
デバイスのUICC上に共有秘密を格納するステップと、
分散型台帳のブロックに1つ以上のトランザクションを追加するステップであって、1つ以上のトランザクションが共有秘密を使用して識別される、ステップと
を含む。したがって、分散型台帳へのトランザクションまたはエントリは、高度にセキュアなSIM鍵配布を無効にすることなく、改ざんが困難または不可能な方法で、それらの識別子を特定のデバイスにリンクできるので、より信頼できる。
【0013】
任意選択で、本方法は、
共有秘密をBSFからサーバに送信するステップであって、共有秘密が、デバイスとサーバとの間の通信チャネルを保護するために使用され、サーバが、1つ以上のトランザクションを分散型台帳のブロックに追加する、ステップ
をさらに含む。したがって、サーバは、デバイスと分散型台帳またはブロックチェーンとの間のプロキシとして機能する。これにより、スケーラビリティを向上させることができる。例えば、各々が異なるデバイスもしくは機能のセットにサービスを提供する、または負荷分散の目的のための、複数のサーバが存在してもよい。
【0014】
好ましくは、1つ以上のトランザクションは、分散型台帳内のサーバのウォレット識別子に関連付けられてもよく、1つ以上のトランザクションは、
サーバが、分散型台帳のブロックに追加された1つ以上のトランザクションのトランザクション識別子を、デバイスからリモートに格納すること、および
サーバが、格納されたトランザクション識別子を共有秘密にマッピングすること
によって識別される。デバイスとの関連付けは、他の代替機構を使用して達成されてもよい。
【0015】
任意選択で、トランザクション識別子は、UICCのアイデンティティおよび共有秘密に基づいてもよい。トランザクション識別子は、追加的に、デバイスの識別子(例えばIMSI)に基づくか、またはそれから導出されてもよい。
【0016】
任意選択で、ブロックに追加されてもよいトランザクションは、UICCのアイデンティティおよび共有秘密に基づいてウォレット識別子によって識別される。
【0017】
好ましくは、共有秘密は、UICCの信頼できる実行環境、TEE内に格納され得る。これにより、セキュリティがさらに向上する。
【0018】
有利には、共有秘密は対称鍵であり得る。対称鍵を生成および使用するために使用される例示的なアルゴリズムには、Twofish、Serpent、AES、Camellia、Salsa20、ChaCha20、Blowfish、CAST5、Kuznyechik、DESなどが含まれるが、これらに限定されない。
【0019】
任意選択で、デバイスとBSFとの間にセキュアなチャネルを作成し、セキュアなチャネルを介してデバイスとBSFとの間で秘密を共有することは、汎用ブートストラップアーキテクチャ、GBAを使用してもよく、および/またはGSMA IoTセキュリティアプレットインターフェース記述、IoT SAFEに従ってもよい。
【0020】
任意選択で、デバイスは、IoTデバイス、UE、スマートフォン、車両、自動車、または無人航空機のいずれか1つであってもよい。他のデバイスが使用されてもよく、または本方法を実施してもよい。
【0021】
第2の態様によれば、
分散型台帳と、
ブートストラッピングサーバ機能、BSFと、
UICCを有するデバイスと、
1つ以上のプロセッサおよびメモリであって、メモリが、1つ以上のプロセッサに、
デバイスのUICC内およびBSFに格納された事前プロビジョニングされた鍵を使用して、デバイスとBSFとの間にセキュアなチャネルを作成すること、
セキュアなチャネルを介してデバイスとBSFとの間で秘密を共有すること、および
デバイスのUICC上に共有秘密を格納すること、および
1つ以上のトランザクションを分散型台帳のブロックに追加し、1つ以上のトランザクションが共有秘密を使用して識別されること
を行わせるプログラム命令を含む、1つ以上のプロセッサおよびメモリと
を備えるシステムが提供される。システムは、電気通信ネットワークを介して通信する構成要素を有し得る。
【0022】
任意選択で、本システムは、
サーバをさらに備え、
BSFは、共有秘密をサーバに送信するように構成され、
プログラム命令はさらに、1つ以上のプロセッサに、デバイスとサーバとの間の通信チャネルを保護するために共有秘密を使用させ、サーバは、1つ以上のトランザクションを分散型台帳のブロックに追加する。
【0023】
任意選択で、1つ以上のトランザクションは、サーバのウォレット識別子に関連付けられてもよく、サーバはさらに、分散型台帳のブロックに追加された1つ以上のトランザクションのトランザクション識別子を格納するように構成されたデータベースと、格納されたトランザクション識別子の共有される共有秘密へのマッピングとをさらに備える。
【0024】
任意選択で、トランザクション識別子は、UICCのアイデンティティおよび共有秘密に基づいてもよい。
【0025】
好ましくは、ブロックに追加されたトランザクションは、UICCのアイデンティティおよび共有秘密に基づいて、ウォレットまたは他の識別子によって識別され得る。
【0026】
好ましくは、デバイスは、1つ以上のプロセッサと、1つ以上のプロセッサに1つ以上のトランザクションを分散型台帳のブロックに追加させるためのプログラム命令を含むメモリとを備える。
【0027】
上述の方法は、コンピュータを動作させるためのプログラム命令を含むコンピュータプログラムとして実装され得る。コンピュータプログラムは、コンピュータ可読媒体に記憶されてもよい。
【0028】
コンピュータシステムは、中央処理装置(CPU)などの1つまたは複数のプロセッサ(例えば、ローカル、仮想、またはクラウドベース)、および/または単一もしくは集合のグラフィックス処理装置(GPU)を含み得る。プロセッサは、ソフトウェアプログラムの形態のロジックを実行し得る。コンピュータシステムは、揮発性および不揮発性記憶媒体を含むメモリを含んでもよい。ロジックまたはプログラム命令を記憶するために、コンピュータ可読媒体が含まれてもよい。システムの異なる部分は、ネットワーク(例えば、無線ネットワークおよび有線ネットワーク)を使用して接続され得る。コンピュータシステムは、1つ以上のインターフェースを含むことができる。コンピュータシステムは、例えば、Java(登録商標)、UNIX(登録商標)、Windows(登録商標)(RTM)またはLinux(登録商標)などの適切なオペレーティングシステムを含むことができる。
【0029】
上記の任意の特徴は、本発明の任意の特定の態様または実施形態で使用され得ることに留意されたい。
【0030】
図面の簡単な説明
本発明は、いくつかの方法で実施することができ、ここで、添付の図面を参照して、単なる例として実施形態を説明する。
【図面の簡単な説明】
【0031】
【
図1】分散型台帳にトランザクションを記録するための例示的な方法のフローチャートを示す。
【
図2】SIMを有するデバイスを含む、分散型台帳にトランザクションを記録するためのシステムの概略図を示す。
【
図3】
図2のシステムの高レベル機能を示す概略図である。
【
図4】
図2のシステムのいくつかのアーキテクチャ構成要素の概略図を示す。
【
図5】デバイスおよびSIM、プロキシサーバおよび分散型台帳を含む、
図2のシステムの例示的な実装形態の概略図を示す。
【
図6】
図2のシステムのさらなる例示的な実装形態の概略図を示す。
【
図7】
図5のシステムに従って動作するデバイスのシステムの概略図を示す。
【
図8】
図5のシステムに従って動作するデバイスのシステムのより詳細な概略図を示す。
【
図9】
図5のシステムの例示的な実装形態の概略図を示す。
【
図10】1つ以上のノードを含む、
図2のシステムのさらなる例示的な実装形態の概略図を示す。
【
図12】
図10のシステムによって実行される方法ステップの概略図を示す。
【
図13】
図6のシステムの例示的な実装形態の概略図を示す。
【
図14】
図5のSIMの例示的な実装形態の概略図を示す。
【
図15】
図5のデバイスの例示的な実装形態の概略図を示す。
【
図16】
図1の方法で使用される鍵を管理するための方法のフローチャートを示す。
【
図17】
図6の例示的な実装形態で使用される構成要素の概略図を示す。
【
図18】
図6の例示的な実装形態で使用される構成要素の対話の概略図を示す。
【
図19】
図6の例示的な実装形態において鍵を生成するために使用される方法ステップを示す概略図である。
【
図20】
図6の例示的な実装形態においてデータを交換するために使用される方法ステップを示す概略図である。
【
図21】
図2のシステム内のデバイスアーキテクチャの概略図を示す。
【
図22】
図2のSIM内のセキュアエレメントと対話するために使用されるアーキテクチャミドルウェアの概略図を示す。
【
図23】
図1の方法に従ってトランザクションに署名するための手順のシーケンス図を示す。
【
図24】
図22のSIMのセキュアエレメントを使用してトランザクションに署名するための手順内の方法ステップの概略図を示す。
【
図25】PKIを使用し、
図22のSIMを使用するTLS認証プロセスの概略図を示す。
【
図26】
図2の分散型台帳の例示的な実装形態の概略図を示す。
【
図27】
図1の方法を実装する例示的なユースケースを示す。
【
図28】データ交換内でオファーを照合するための方法の一部のシーケンス図を示す。
【
図30】
図2のシステム内で使用されるメッセージングシステムの概略図を示す。
【
図31】
図2のシステムの例示的な実装形態の概略図を示す。
【
図32】
図30のメッセージングシステム内で使用される方法ステップのシーケンス図を示す。
【
図33】
図30のメッセージングシステム内で使用されるさらなる方法ステップのシーケンス図を示す。
【
図34】
図1の方法の例示的な実装形態のシーケンス図を示す。
【
図35】
図1の方法で使用するためのデバイスをプロビジョニングするための方法ステップを示す概略図である。
【
図36】
図1の方法で使用するデバイスをセットアップするための方法ステップを示す概略図である。
【
図37】
図1の方法で使用するためのデバイスをセットアップするための方法ステップを示す概略図である。
【
図38】
図36および
図37のデバイスと共に使用するためにユーザを認証するための方法ステップを示す概略図である。
【
図39】
図36および
図37のデバイスと共に使用するためにユーザを認証するための方法ステップを示す概略図である。
【
図40】
図1の方法の例示的な実装形態の方法ステップを示す概略図である。
【
図41】
図1の方法の例示的な実装形態のさらなる方法ステップを示す概略図である。
【
図42】
図1の方法の例示的な実装形態のさらなる方法ステップを示す概略図である。
【
図43】
図1の方法の例示的な実装形態のさらなる方法ステップを示す概略図である。
【
図44】
図2のシステムの例示的な実装形態の概略図を示す。
【
図45】
図2のシステムの例示的なアーキテクチャ構成要素を示す概略図である。
【
図46】
図2のシステムの一部の例示的な実装形態を示す概略図である。
【
図47】
図2のシステム内のデバイスの例示的な実装形態を示す概略図である。
【
図48】
図2のシステムとの相互作用の例示的な実装形態を示す概略図である。
【発明を実施するための形態】
【0032】
図面は簡略化のために示されており、必ずしも縮尺通りに描かれていないことに留意されたい。同様の特徴には同じ参照番号が付されている。
【0033】
好ましい実施形態の詳細な説明
「モノのインターネット」は成長しており、「モノの経済」(EoT)に移行しつつある。IoTデバイスの数は増加しており、大量のデータを生成している。IoTデバイスおよびスマートサービスは、所有権ドメインにわたって対話および相互運用し、データおよびスマートサービス価値トランザクションをほぼリアルタイムで自動的にサポートする可能性を提供する。これにより、相互運用性および機能性を向上させることができる。
【0034】
「モノの経済」は、デバイス/サービスが互いに識別し、信頼し、必要に応じて直接またはピアツーピア機能を使用して自動的に価値を取引する能力を必要とする。デジタルID、連合セキュリティ、ならびにIoTに必要なトランザクションアプリケーションおよびサービスをサポートする分散型台帳、セキュアエレメント、暗号およびデバイスウォレットに及ぶ様々な技術があるが、それらは断片化されており、コストが高く、十分にスケーラブルではない。
【0035】
トランザクションを安全に生成するためのシステムおよび方法を実装するために、様々な構成要素が使用される。
図1は、分散型台帳にトランザクションを記録する方法10のフローチャートを示す。
図2は、この方法を実装するためのシステム100の高レベルの概略図を示す。この例示的な実装形態では、分散型台帳はブロックチェーン(適切な構成要素によって生成される)150であり、デバイス110はスマートフォンなどのモバイルデバイスである。しかしながら、多くの異なるデバイスが使用されてもよい。適切なブロックチェーン技術の例については後述する。
【0036】
対称暗号化は方法10で実施される。ステップ20で、デバイス110(またはデバイス110内のSIM120)とブートストラッピングサーバ機能(BSF)との間にセキュアな通信チャネルが作成される。ステップ30で、BSFとデバイスとの間で秘密(すなわち、対称鍵)が共有される。ステップ40で、この共有秘密はSIM内(例えば、SIM内のセキュアな格納場所)に格納される。ステップ50で、トランザクションまたはエントリが分散型台帳150に追加される。トランザクションの識別子は、共有秘密に基づいて生成されるか、共有秘密から導出されるか、または共有秘密を使用して識別可能である。この識別子は、例えば、特定のアルゴリズムを使用して導出され得るか、または共有秘密(例えば、データベース)とのマッピングを使用して間接的に識別され得る。
【0037】
GBA(例えば、SIMトラスト)を使用して、デバイス110とIoTバックエンドまたはサーバ140との間にセキュアなチャネルを作成してもよい。これは、デバイスとアプリケーションサーバとの間でセキュアな鍵を迅速に生成、配布、および更新することができるセキュアな鍵管理解決策を提供する。SIMトラストは対称鍵を生成する(例えば256ビット)。顧客および他のエンティティは、以下を含む多くの方法で対称鍵を使用することができる。
【0038】
否認防止:メッセージまたはトランザクションのソース(認証)および完全性を証明する。
【0039】
機密性:エンドツーエンドの暗号化を提供する(無線インターフェースだけではない)。
【0040】
したがって、この機構は、SIMカード120とコアネットワーク(HLR、ホームロケーションレジスタ)との間の相互認証および鍵合意の上でアプリケーション層上にセキュアなチャネルを構築する。結果として、分散型台帳技術(DLT)ノードは、SIMのアイデンティティを使用してブロックチェーンと対話し、デバイス110が誰であるかを確認することができる。
【0041】
トランザクションは、直接(すなわち、デバイス110が分散型台帳150と直接対話してブロックチェーン上にブロックを追加することによって)または仲介者、サーバもしくはプロキシサーバ140を介して分散型台帳150に追加され得る。このプロキシサーバ140は、デジタルアセットブローカ、DAB、またはDABサービスとして説明され得る。この例示的な実装形態では、プロキシサーバ140は、プロキシサーバ140を識別する識別子を用いてトランザクションをブロックチェーンに追加する。そして、プロキシサーバ140は、1つ以上のデバイスの公開鍵に基づく識別子に対して追加されたトランザクションのデータストアを保持することができるが(システムは1つ以上のプロキシサーバ140を有してもよい)、より多くのデバイスが各々1つ以上のプロキシサーバに関連付けられる。
【0042】
したがって、ブロックチェーン上のトランザクションの識別子は、デバイス110のUICC 120に格納された公開鍵を含むか、または公開鍵から導出されてもよく、または公開鍵から導出された識別子にマッピングされるトランザクション識別子であってもよい。識別子を導出することはまた、デバイス110またはユーザの一意のアイデンティティを使用することもできる。これは、例えば、IMSIであってもよい。他の導出方式を使用してもよい。プロキシサーバ140を使用すると、少ない識別情報が必要とされるほど分散型台帳の処理を簡素化することができる。
【0043】
図3は、システムの高レベル機能を概略的に示す。
UICC(SIM)
システム内の役割:信頼のチェーン(顧客のアセットとしてのSIM)にセキュアなエントリポイントを提供する。本開示を通して、SIMおよびUICCという用語は、アプリケーションおよびアプレットと同様に交換可能に使用され得る。
【0044】
バリアント:
・好ましくはGSMA IoT SAFEアプレットをサポートする、SIM上のセキュアエレメント、または
・3GPP(登録商標)汎用ブートストラッピングアーキテクチャ(GBA)に基づくVodafone SIMトラスト。
【0045】
システムの異なる実装形態が存在する。一実装形態では、SIMまたはUICCアプレットは、1つ以上の暗号鍵ペアを生成する。別の実装形態では、SIMまたはUICCは暗号材料でプロビジョニングされてもよい。例えば、これは3GPP GBAを使用することができる。しかしながら、全体を通して説明する特徴および実装形態の例または組み合わせのいずれも、いずれかまたは両方の実装形態と共に使用することができる。
【0046】
デバイス
システム内の役割:上位層に統合器を提供し(デジタルアセットブローカ、DAB、管理コア)、通信を調和させる(異なる電気通信ネットワークからのSIMまたは非SIMデバイスについても)。デバイスは、例えば、単純なIoTデバイス(例えば、需給計器)から車両まで様々な形態をとることができる。
【0047】
構成要素
・IoT SAFEアプレット用DABミドルウェア(例示としての一例)、または
・SIMトラスト用DABミドルウェア(
図1を参照して説明した方法10で使用される実装例)、
・貨幣化可能イベント検出のためのセンサデータ抽出
DAB管理コア
エコシステム内の役割:オンチェーンおよびオフチェーン機能を使用するためのDABシステム内の対話の仲介。
【0048】
構成要素
・フローオーケストレーションエンジン
・共通API
DAB管理サービス
エコシステム内の役割:MVP(MasterCard、VISA、PayPal)のためのフローの簡素化およびDABのカスタマイズ。
【0049】
構成要素
・カスタマイズされたオフチェーン処理(オフチェーン)
・カスタマイズされたAPI
DABブロックチェーンサービス
エコシステム内の役割:DAB対話をブロックチェーン言語に変換するコネクタを提供する。
【0050】
構成要素
・モノの台帳(Ledger of Things)
・DABエクスチェンジ
・スマートコントラクトエンジンを含むブロックチェーンハブ
アーキテクチャ構成要素
図4は、システムおよび方法の様々なアーキテクチャ構成要素を概略的に示す。
【0051】
IoT SAFEアプレットの実装(例示的な一例)は便利な機能を提供するが、GBAプロビジョニング(例えば、Vodafone SIMトラスト)の使用は、既に展開されている可能性があるレガシーSIMのシステム内での使用を可能にする。したがって、(システム内で同時にまたは別々に機能することができる)両方の実装形態の組み合わせは、できるだけ多くの参加者がシステムを使用することを可能にする。デバイスファームウェアは、レガシーデバイスのために無線で更新することができ、したがって、GBA実装(例えば、SIMトラスト)は、デバイス内のUICCまたはSIMを変更することなく使用することができる。
【0052】
図5および
図6は、システム100による両方の実装形態の使用を高レベルで示す。機構は独立しているが交換可能であり、異なるユースケースに適している場合がある。新規およびレガシーSIMに柔軟性を提供するだけでなく、各実装オプションには異なる利点がある。例えば、銀行および公共サービスは、対称鍵をサポートするので、
図6に示すGBA実装(例えば、SIMトラスト)と対話することを好む場合がある。
図5に示すSIMアプレット実装(例えばIoT SAFE)は、中間またはプロキシサーバ140を必要とせずにUICCまたはSIMによってトランザクションに直接署名できるため、改善されたブロックチェーン対話を提供する。したがって、両方の機構は、互いに企図し、特定の技術的要件を満たす。
【0053】
高いレベルでは、これらの2つの機構の主な違いは暗号手法にある。IoT SAFEアプレットは、主に非対称暗号化(公開鍵基盤、PKIとしても知られる)のための鍵を格納および管理するためにSIM上のセキュアエレメントを使用し、公開鍵と秘密鍵のペアが生成および格納される。GBA(例えば、SIMトラスト)手法では、SIMとエンドポイント(例えば、DABサーバなどのサーバ)との間の対称暗号化を確立するためにモバイルネットワーク機能が使用される。
【0054】
非対称暗号化またはPKIは、公開/秘密鍵ペアを使用してhttpsおよびサーバ間の他の接続を保護するために多くのITインフラストラクチャによって使用される技術である。
【0055】
図7および
図8は、SIM 120と共に実行されるIoT Safeアプレットを使用して、IoTデバイスとサーバとの間でセキュアな通信チャネルがどのように設定され得るかを概略的に示す。
図8は、デバイスがサーバとのセキュアな接続をどのように開始するかをより詳細に示す。
【0056】
デバイスには、クライアントPKI証明書(例えば、UICCまたはSIM内)が事前プロビジョニングされる。
図9に示す例では、デバイスは車両であるが、モバイルまたはその他の任意のデバイスであってもよい。クライアントPKI証明書は、好ましくは、認証機関によって調達され署名されたパブリックトラスト証明書である。サーバは、同様のサーバ証明書を保持している。通信チャネルがクライアントによってサーバに対して開始されると、両方の当事者が認証機関(CA)を使用して互いを認証して他方の当事者の正当性を確認する交換が行われる。
【0057】
CAを使用して実装される機構は、一緒に使用される鍵のペアを利用し、一方は暗号化し、他方は解読する。鍵は、第1の暗号化関数を実行するいずれかで使用することができ、他方の鍵は復号化演算を実行するために使用することができる。これらの機能を実行する2つの異なる鍵の非対称性のために、これはしばしば「非対称」暗号と呼ばれる。これらの鍵の一方は公開されており、他方は秘密である。公開暗号化システムでは、受信者の公開鍵を使用して誰でもメッセージを暗号化することができるが、受信者のみが秘密鍵を使用してメッセージを復号することができる。
【0058】
暗号化手法とは別に、IoT SAFEに基づく解決策は、分散型台帳(例えば、ブロックチェーン)関連環境で使用され得るさらなる機能を容易にするいくつかの追加機能を提供する。
【0059】
対称暗号化アルゴリズムは、暗号化と復号化の両方に同じ暗号鍵を使用する。鍵は、実際には、個人情報リンクを維持するために使用することができる2者以上の当事者間の共有秘密を表す。両方の当事者が同じ秘密鍵にアクセスできるという要件は、非対称暗号化と比較して、対称鍵暗号化の主な欠点の1つである。モバイル通信空間では、この解決策は、電気通信ネットワークサービスへの接続を有するモバイルSIMを含むデバイスによって促進される。携帯電話は、元々IoTデバイス空間に存在する多くの要件を有し、これらの問題に対する標準ベースの解決策を使用する。これらは、20年を超える期間にわたって開発され、精査されており、したがって、多くのエンティティおよび組織によって信頼され得る。
【0060】
電話機器が移動セルラネットワークに接続すると、電話機器は、
・モバイルネットワークとの間で認証すること、および
・モバイルネットワークとの通信を暗号化するために使用できる鍵に同意すること
を含む少なくとも2つのアクションを実行する。
【0061】
これは、典型的には、標準ベースの認証および鍵合意(AKA)プロトコルを使用して達成される。したがって、AKAプロトコルは、モバイル機器(ローミングまたはその他)と(場合によっては信頼されていない)セルラネットワークとの間に信頼を作り出し、その結果、2つの当事者は機密保護を伴って通信することができる。
【0062】
この代替技術は、例えばSIMトラストのVodafone実装などの汎用ブートストラッピングアーキテクチャ(GBA)として形式化されている同じAKAプロトコルを使用するが、従来のセルラ使用事例とは異なり、信頼は、ユーザまたは顧客の直接制御下でデバイスとアプリケーションプラットフォームとの間に作成される。
【0063】
図13は、このGBA実装を示す。UICCまたはSIMがアプリケーションサーバへの標準モバイル接続を作成している間、AKAプロトコルは、デバイスと訪問先モバイルネットワークとの間の機密保護された通信を作成するために使用される。SIMトラスト(GBAプロトコルを使用)は、AKAフローを繰り返してデバイスとアプリサーバとの間の対称暗号化を作成することによって別の信頼層を追加する。その結果、2つのエンドポイント間の通信のための相互に認証されたセキュアなチャネルが得られる。
【0064】
図10は、個々のデバイスが分散型台帳ネットワーク内のノードと通信する例示的なネットワーク構成を示す。このネットワーク構成は、特定の暗号化方式(例えば、対称暗号化または非対称暗号化を使用することができる)から独立していてもよい。
図11は、個々のノードの形態を概略的に示す。1つ以上のノードがネットワーク内に存在してもよい。
【0065】
より詳細には、
図10および
図11は、以下の特徴を示す。SIM上(デバイス内)またはノード上のセキュアなアプレット(例えば、DLTアプレット)は、鍵を安全に生成および保持する。これらの鍵は、(ブロックチェーンを使用した)セキュアな価値交換に使用されるウォレット、証明書、および/または他のモードのデジタルトラストの表現であり得る。セキュアなアプレットは、論理的には、ホーム加入者サーバ(HSS)のハードウェアセキュアモジュール(通信会社または事業者のコアネットワークの奥深くにある既存のネットワークエレメント)の拡張であってもよい。SIM上のセキュアなアプレットとのHSSの関係は、SIMと直接セキュアな通信チャネルを作成するために使用されるマシンであり得る別の既存のネットワークエレメント(例えば、無線OTAサーバ)によって管理され得る。Telcoノードは、例えば、セキュアなアプリケーション配信、更新、許可、およびデコミッショニングアクティビティのライフサイクルを管理するために必要な証明書を作成および管理するために、各DABノードの非中央集権型機関との管理で動作するDLTノータリーの役割を果たす。
【0066】
telcoノードはまた、システム(例えば、DLTセキュアサービス)によって提供されるサービスのCA(認証機関)としても機能する。HSSの強化されたセキュリティがDLTセキュアサービスを介してSIMに拡張されると、DAB DLTはSIMおよび格納された鍵を使用して新しいコンセンサスプロトコル(「プルーフ・オブ・セキュアSIM」)を作成し、SIMは、ネットワーク全体にわたる高価で高処理のプルーフ・オブ・ワーク/ステークタイプの処理を必要とせずに、各トランザクション時にシステム(DAB)上でその有効性を証明するように求められる。これにより、各DABノードが軽量になり、SIMの計算要件が制限される(PUB/PRV鍵は非同期的に生成され、トランザクション開始時点で検証のためにDAB DLTに提供され得るため)。
【0067】
デバイス所有者または他のエンティティは、異なるシステムからの異種デバイスが共通のルートオブトラスト(すなわち、SIMおよびセキュアなアプレットまたはGBA対応デバイス)を使用して互いに対話できるように、スマートコントラクトまたは他の条件をプログラムまたは定義することができる。これは、デバイスが対話することを可能にする機構およびプロトコルを提供する。これは、1つ以上のノードと対話する複数のデバイス(およびそれらのSIM)で大規模に行うことができる。このプロトコルは、従来APIを使用して解決されてきたユースケースである、デバイスがトークンをトークンに交換し、さらにトークンとデータを交換することを可能にする。さらに、このようにして有効にされたデバイス(DABデバイス)は、アクション(例えば、アクセス制御)からデータストリーム(例えば、デバイス位置)に及ぶ価値のためにそれらの1つ以上のウォレット内のトークンを自律的に交換してもよく、二次「親」ノードは、例えば、サービス消費を管理および追跡するためにこれらのウォレットをリチャージすることができる。このシステムは、マイクロペイメントおよびマイクロビリングシステム、ならびに非中央集権型台帳のクレジット/デビットと結合され得る価値交換の要求/送信/決済を提供する。
【0068】
以下では、
図10の例示的なネットワーク構成を動作させるときにとられるステップを説明する。以下の番号は、異なる構成要素間で生じる方法ステップを示す
図12に示す番号に対応する。ここでも、いずれの暗号化方式(対称または非対称)を使用してもよい。
【0069】
0.背景:AおよびBは、DAB NWに登録されており、互いに価値を交換することを許可されている。
【0070】
1.AおよびBの所有者は、スマートコントラクトに合意している(すなわち、「データXをくれたら、Yトークンをあげる」)。
【0071】
2.Bが所定のスマートコントラクト(C)に基づいてAにデータを要求する。
3.Bの要求は、DLTセキュアBセキュリティで署名され、Dapp C(プルーフ・オブ・セキュアSIM)によって検証される。
【0072】
4.「購入」トランザクションは、DAB DLTネットワーク上でBに代わって公開される。
【0073】
5.Aは、トランザクション決定の適用可能な要求をダウンロードする。
6.DLTセキュアAは、要求(4)を検証する。
【0074】
7.デバイスAは、「販売」したいことをDAB DLTにシグナリングする。
8.デバイスAは、センサAからデータAを受信してパッケージ化する。
【0075】
9.DLTセキュアAは、パッケージAに署名する。
10.Aは、呼び出されるべきスマートコントラクトC上のDLT呼び出し上の交換を確認応答する。
【0076】
11.Aは、パッケージAをBに送る(オンチェーンまたはオフチェーンのいずれか)。
【0077】
12.DLTセキュアBは、DLT、DLT記録を更新し、スマートコントラクトCを使用して決済を開始する。
【0078】
13.デバイスBはCを満たす。
14.デバイスAは、トークン受領を確認にする。
【0079】
15.DLTはCクロージャを検証する。
16.デバイスBはパッケージAを分析し、アクションAの実行を決定する。
【0080】
次の2つのセクションは、2つの実装がどのように動作するかについての詳細を提供する。
【0081】
UICCアプレット実装は、UICC(例えば、SIM)内のセキュアエレメントを使用する。SIMは、暗号鍵および通信を保護するハードウェアウォレットとして機能する。この実装は、重要なセキュリティ機能の容易かつ効率的な実装のために、SIMがIoTデバイスのためのルートオブトラストを提供することを可能にする。SIMは、トランザクション署名鍵を安全に格納し、セキュアな環境内で安全に暗号アセットトランザクション署名を実行することができる。
【0082】
図14は、SIMおよびOTAサーバのアーキテクチャ設計の概略図を示す。SIMにはGSMA IoT SAFEアプレットが設けられていてもよい。トランザクション署名用のSIM暗号化ウォレットを保持することに加えて、これにより、GSMA仕様https://www.gsma.com/iot/wp-content/uploads/2019/12/IoT.05-v1-IoT-Security-Applet-Interface-Description.pdfで定義されているように、SIMハードウェアのルートオブトラストにバインドされた相互認証されたTLS接続が可能になる。
【0083】
GSMA IoT SAFEベースの解決策は、IoT展開のためにチップからクラウドまでのセキュリティを提供する。ハードウェアのセキュアエレメント、すなわち「ルートオブトラスト」を使用して、IoT SAFEベースの解決策は、エンドツーエンドのセキュリティを提供する。GSMA標準化セキュアエレメントおよびIoT SAFEアプレットの使用は、さらに、異なる企業間の相互運用性およびIoTデバイス製造業者による一貫した使用を保証する。
【0084】
SIM上に位置するIoT SAFEアプレットと外部(例えば、プロキシサーバ、ブロックチェーンなど)との間の通信のために、暗号ミドルウェアライブラリもデバイス内で実行されるが、必ずしもSIM内では実行されない。
【0085】
この実装形態では、SIMとデバイスとの間、ならびにSIMと無線(OTA)サーバとの間で標準的な認証機構が発生する。これらの機構はまた、SIM上のセキュアエレメントを含んでもよい。これは、アプリケーションおよび/またはSIMをロック解除するための基本的な機構(例えば、PIN保護を使用することによって)、SIMロック機構、SIMとデバイスアプリケーションとの間の相互認証などによって結合される。ブロックチェーントランザクションは、トランザクションの一部として送信されたデジタル署名を含むプロトコルを使用してブロックチェーンノードによって検証される。
【0086】
汎用スマートSIMウォレット
IoT SAFEアプレットを使用することにより、SIMは、SIMのセキュアエレメント内の1つ以上の鍵コンテナまたはストレージへのアクセスを提供する。これらのコンテナは、異なるユースケースに使用されてもよく、同じユースケースまたは動作のための複数のアイデンティティを提供するために使用されてもよい。
図15は、SIM内の複数のアイデンティティのストレージを概略的に示す。各アイデンティティは、ユーザが異なるアプリケーション内でトランザクションを認証および署名することを可能にするSIMウォレットとして使用することができる。これはブロックチェーンに限定されず、従来の決済レール(例えば、他のデバイスまたは企業との直接通信)などのオフチェーン機構内で使用することもできる。SIMの無線(OTA)更新機能は、特定の実装で使用するための新しいコンテナおよび鍵管理機能の追加を可能にする。
【0087】
SIMは、異なるブロックチェーンネットワーク用の鍵に署名するための追加の鍵コンテナでパーソナライズすることができる。好ましい実装形態では、SIMにはデフォルトで利用可能な3つの鍵コンテナがある。2つのコンテナはSECP256 K1 ECDSA鍵ペアを保持し、1つのコンテナはSECP256 R1 ECDSA鍵ペアを保持する。しかしながら、異なる鍵ペアタイプを任意の組み合わせで使用してもよい。
【0088】
エンドツーエンドの解決策を考慮すると、IoT(または他の)デバイス内の、SIMをハードウェアのルートオブトラストとして使用するSIM暗号ウォレットは、以下の機能のいずれかまたはすべてを提供し得る。
【0089】
・ハードウェアウォレット(署名支払い/デジタルアセット送信トランザクション)
・署名されたトランザクションの検証
・セキュアな通信
・機密データのセキュアなストレージ
したがって、SIM自体は、以下の機能のいずれかまたはすべてを提供することができる。
【0090】
・追加の暗号化機能
・IoTデバイスIDメタデータストレージ
・セキュアなバックアップ/復元、鍵管理
・デバイス開始ブートストラップ
SIM内で暗号鍵ボールトを使用すると、秘密鍵および秘密の改ざん防止および安全が保たれる。SIMは、一般に、専用の暗号プロセッサおよび高度に安全なSIM OSを備えた改ざん防止ハードウェアであり、秘密鍵を安全にするために必要なレベルの保証を提供する。このようにしてSIMに格納された鍵は、SIM上で生成され、好ましくはSIMから離れない。
【0091】
表1は、使用される好ましい暗号アルゴリズムのリストをまとめたものである。他のアルゴリズムが使用されてもよい。
【0092】
【0093】
ブロックチェーンおよび暗号通貨ネットワークは通常、それらのトランザクションがピアツーピアまたは参加者のグループ内であるため、非対称暗号に依存する。異なるトランザクション間の参加者のリストは異なり得る。ブロックチェーントランザクションのこのピアツーピアの性質を考えると、対称暗号の使用は実現不可能であり得る。さらに、非対称暗号を使用すると、ブロックチェーンおよびDLTトランザクションは、第三者によって監査可能である。現在のシステム内でPKIを使用することにより、エンティティまたは人が秘密鍵にアクセスすることなくトランザクションを検証することが可能になる。
【0094】
EMVトークン
EMVは、Eurocard(RTM)、MasterCard(RTM)、Visa(RTM)の略称であり、決済アプリケーションのための定義された仕様を表し、今日のほとんどの銀行カードチップに実装されている。それは、銀行カードチップ上に安全に格納された認証情報にアクセスすることによって対称暗号と協働する。現在の環境では、EMVを使用して支払いトランザクションに署名し、それらを既存の決済レールに送信してトランザクションを可能にすることができる。したがって、SIMウォレットは、支払いアプリケーションのための(対称)鍵値を保持するために使用され、その後デバイスミドルウェアによって使用され、本システムを介したEMV支払いを容易にする。
【0095】
(記載されたいずれの実装形態とも使用される)この拡張されたまたはオプションの機能では、これは、EMVによってブロックチェーンまたは既存の決済レールを使用して支払いを選択するためのオプションをユーザに提供する。セキュリティの観点から、SIMカードはすでに銀行カードの認証を通過することができる。
【0096】
複数のウォレット中のウォレット
SIMは、所望の支払い方法に関連する鍵を提供するために使用される。支払いに使用されるウォレット自体は、SIMに格納されている必要はない(しかし、格納されていてもよい)。分散型台帳と直接対話するために使用されるウォレットは、別個のエンティティ、サーバもしくはプロキシサーバ、またはブローカ(例えば、DAB)によって提供され、特定のユースケースに応じた支払い方法の好みに基づいて選択され得る。
【0097】
第三者文書は、SIM無線(OTA)上に展開され得る。デバイス上のウォレットアプリケーションは、アプリケーション(アプレット)のSIM部分と安全に対話し、(同様にOTAを介して)バインディングを確立する。これは、セキュリティドメインのセキュリティおよび認証プロセス、ならびに外部アプリケーションとの統合のための承認に従う。
【0098】
鍵管理
トランザクション管理で使用される鍵のライフサイクルを管理するための明確に定義された機構が実装され得る。暗号鍵のライフサイクル管理には、鍵のバックアップ、復元、鍵の失効および更新が含まれ、紛失、盗難、および/または侵入されたデバイスを処理するためのセキュリティポリシーが実装されてもよい。秘密鍵は最も機密性の高いアセットであり、クリアな環境または保護されていない環境ではバックアップされない。ブロックチェーンのトランザクション署名鍵のバックアップおよび復元には、使用されるいくつかの異なる機構がある。
【0099】
例えば、ビットコインは、シードを生成し、BIP39/BIP32仕様に基づいてシードを使用して鍵ペアを生成するために、人間が読める一連の単語に基づいて決定論的鍵生成を定義する。BIP39の実装は、鍵を復元するために記憶されて再入力され得るニーモニックから鍵を導出することを指定する。BIP32は、シードおよびインデックス値に基づいて鍵を導出する階層決定性ウォレットを定義する。そのような機構は、本システムで使用することができ、
図16に概略的に示されている。
【0100】
別の例示的な実装形態では、SIMバックアップボールトサービスは、単一のSIMが完全な値を持たないように、透過的に他のSIM上に秘密鍵の構成要素または一部をバックアップする。鍵を復元することは、バックアッププロセスで使用されたSIMのクラスタからバックアップされた値(N個のうちのk個)の構成要素を収集することを含む協調努力であり得る。
【0101】
さらなる例示的な実装形態では、ブロックチェーンスマートコントラクトベースの解決策は、バックアップおよび復元プロセスの複雑さを低減する。例えば、スマートコントラクトアカウントは、指定された条件が満たされるまで、エスクロー機構と同様のデジタルアセットを保持する。IoTデバイスに関連付けられたアカウントは、マイクロペイメントのみを扱い、デジタル値または暗号通貨を独自に保持しない。スマートコントラクトアカウントは、例えば、いくつかのデバイスが故障しているシナリオを解決するためのルール、およびアカウントを他のデバイスに送信する方法を定義することができる。
【0102】
汎用ブートストラッピングアーキテクチャ(GBA)
汎用ブートストラッピングアーキテクチャ(GBA)としても知られている技術仕様(3GPP TS 33 220)に基づくVodafone SIMトラストアーキテクチャ。証明書と同様に、GBAは当事者間の信頼を確立するために使用される。一方、証明書は、暗号機能をサポートするために互いに組み合わせて使用できる異なる鍵ペアを作成するために非対称暗号に依存する。GBAは、ハードウェアベースの信頼できる実行環境(TEE)を使用して対称鍵を格納し、これらの対称鍵を使用して、認証、機密保護、および完全性保護の少なくとも3つの機能をサポートするために使用できる一時鍵を導出する機能を提供する。GBA規格に関するさらなる詳細は、ETSI Technical Specification TS 33.221 V14.0(2017-05)に見出すことができる。
【0103】
IoT環境では、GBA TEEはSIMによって提供される。SIMは、認証鍵導出および鍵合意機能をサポートするための資格情報を格納するために使用される。
【0104】
対称暗号化には、互いに通信する必要があるすべての当事者間で鍵を配布および共有する必要があるという欠点がある。これを鍵配布問題と呼ぶ。電気通信業界は、SIM製造プロセス中に鍵が配布され、対称鍵が2つの場所に格納される対称暗号に依存している。
【0105】
1.携帯電話またはIoTデバイスであり得るユーザ機器(UE)に格納されたハードウェアトークンデバイスである加入者識別モジュール(SIM)、および
2.認証センタ(AuC)上のオペレータコアネットワークの中央にあり、ホームロケーションレジスタ(HLR)を介してアクセスされる。
【0106】
この配布プロセスのセキュリティは、この鍵資料の管理においてSIM製造業者および携帯電話事業者が従う安全なプロセスに依存している。
【0107】
しかしながら、この鍵資料の配布に関与するプロセスおよび人々を標的とする多くのエンティティが知られている。アセットを保護するためにSIMに依存する産業は、厳しいセキュリティプロセスおよびベンダ選択を使用することによってこの鍵配布攻撃の問題に対抗してきた。しかしながら、これは費用がかかる可能性がある。
【0108】
通信フロー
SIMカードは、アプリケーション層でのエンドツーエンドの認証および暗号化を大規模に実現するために使用できる共有鍵を導出するためのルートオブトラストとして使用される。一般に、このプロセスは3G AKAプロセス(AKA=認証および鍵合意)に依存する。AKAプロセスは、任意のモバイルデバイスがモバイルネットワーク(>2G)に接続し、相互認証および鍵合意を実行するときに使用される。
図17および
図18は、GBAのSIMトラスト実装に使用される通信フローを高レベルで示す。
【0109】
デバイスとバックエンドアプリケーションとの間にセキュアなチャネルを確立するためのステップは、鍵を生成するステップと、鍵を使用してセキュアなチャネルを介してデータを交換するステップとの2つのステップからなる。
【0110】
鍵生成プロセス
鍵生成プロセスは、
図19に概略的に示されている。SIMはデバイス内のデバイスAPIと対話し、デバイスは、コアネットワークと通信しているSIMトラストサーバから対称鍵を取得する。デバイスは、httpを介してSIMトラストサーバと通信して、対称鍵の形式で共有秘密を導出する。この対称鍵は、認証されてSIM内に格納される。
【0111】
鍵を使用してセキュアなチャネルを介してデータを交換する。
共有秘密(対称鍵)が導出されると、それはデータを通信するためのチャネルを保護するために使用され得る。これは、
図20に概略的に示されている。
【0112】
各ネットワークエンティティを通る通信フローを以下に説明する。
デバイス管理(DM)クライアントは、汎用認証アーキテクチャ(GAA)サーバに鍵を問い合わせる。
【0113】
GAAサーバはSIM(AT+CSIM)のアイデンティティを確立する。
一方、GAAサーバは、待機するようにDMクライアントに通知する。
【0114】
DMクライアントは、待機中に他の作業を処理することができる。
GAAサーバは、アイデンティティを使用してUbProxyに認証ベクトルを求める。
【0115】
UbProxyは要求を検証し、正しいブートストラッピングサーバ機能(BSF)にルーティングする。
【0116】
BSFはHLRにAVを要求する。
HLRはBSFにAVを返す。
【0117】
BSFは資格情報を格納し、401コードでUbProxyにベクトルのバージョンを返す。
【0118】
UbProxyは、同じメッセージおよびエラーコードをGAAサーバに返す。
これはSIMに認証を要求する。
【0119】
有効な応答(開始時のDB)は、有効な応答が抽出されてUbProxyに送信されることを可能にする。
【0120】
それは次にそれをBSFに送信する。
それは先にHLRから受信したものに対してメッセージに含まれる応答を検証し、200応答を送信する。
【0121】
UbProxyはGAAサーバに200応答を返す。
GAAサーバは鍵を計算し、それをDMクライアントに返す。
【0122】
DMクライアントは、必要に応じて鍵を使用し、そのサーバにIDを渡す。
DMサーバが鍵を必要とするとき、IDを使用してNAFを介してUbProxyに問い合わせる。
【0123】
UbProxyは、適切なBSFに鍵要求を送信する。
それは鍵を計算し、それを返す。
【0124】
UbProxyは鍵をDMサーバに返す。
DMサーバは必要に応じて鍵を使用する。
【0125】
SIMトラストから(例えばVodafoneから)開始して、デバイス側のミドルウェアは、デバイスがネットワーク内のSIMとSIMトラストプラットフォーム(ブートストラッピングサーバ機能、BSF)との間でメッセージを送信することを可能にする。デバイスは、SIMトラストデバイスライブラリをサポートし、統合ソフトウェアライブラリ(DDK)を有する。バックエンド側では、アプリケーションがAPIハブを介してアプリケーション処理インターフェース(API)呼び出しを使用してSIMトラストプラットフォームから共有鍵を取得する。
【0126】
特定のグローバル・データ・サービス・プラットフォーム(GSDP)は、特定のSIMカードまたはIMSI範囲に対してGBA(例えば、SIMトラスト)を有効にすることができる。
【0127】
デバイス
汎用アーキテクチャ
SIMとDABとの間の統合器層としてデバイスを使用するために、例示的に4つの相互連結された構成要素を設けることができる。
【0128】
SIM中心:SIMカード(セキュアエレメントと、暗号鍵を格納し、トランザクションおよびデータを認証および署名することができるハードウェアコンポーネントとを含む)。
【0129】
SIM製造業者によって提供されるライブラリ:接続されたアプリケーション(例えば、記載された暗号ミドルウェア)による使用のためにSIMの機能を公開するライブラリのセット。
【0130】
ミドルウェア:SIM製造業者のライブラリを直接組み込むことができないアプリケーション、またはデバイスの外部で実行されるアプリケーションおよびデバイス(例えば、データ収集ネットワーク)のためのSIMアプレットのインフラストラクチャ機能を公開するミドルウェアコンポーネント。
【0131】
イベント検出:DABサービスの残りの部分と、またはブロックチェーンおよびマーケットプレイスおよび/またはエクスチェンジのいずれかと直接、イベントを検出および取引するアプリケーション/アルゴリズム。
【0132】
これらの構成要素は、
図21に概略的に示されている。
本サービス、およびGDSP(管理されたIoT接続性のためのVodafoneのグローバルデータサービスプラットフォーム)、SIMトラスト、またはIoT SAFEなどの既存の機能の使用と共に、デバイスは、ブロックチェーンウォレットおよび信頼された認証者の機能を果たすエッジ統合ポイントと見なすことができる。それらはまた、セキュアな自律的イベントを提供する能力、または単純なハードウェアセキュアモジュール(HSM)として使用される能力を開く。
【0133】
ミドルウェアは、デバイスがトランザクションエコシステムに円滑に参加することを可能にし、アプリケーションが製造者ライブラリを組み込み、鍵プロビジョニングおよびトランザクション署名のためにSIM機能を消費することを可能にする。接続されたデバイスの外部で実行されるアプリケーションは、これらの機能を利用して、そのAPIを介してミドルウェアにアクセスすることもできる。
【0134】
デバイスは、直接読み取りから計算分析(例えば、貨物占有評価)までの範囲のデータを処理または収集し、(SIMの場合はPKIで、)暗号化され、SIMカードの秘密鍵で署名されると、任意のブロックチェーンにトークン化するか、または垂直横断的な使用のためにプラットフォーム内の他の場所に格納することができる。
【0135】
SIM上のセキュアエレメント用ミドルウェア
図22に示すような典型的なIoT展開は、機密データおよびデバイス認証のセキュアな送信を提供するGSMA IoT SAFEから直接利益を得ることができる。それにもかかわらず、SIMアプレットとアプリケーション側との間の通信を容易にするために、デバイス上の上述のミドルウェアが必要とされる。
【0136】
アーキテクチャ
SIM上のセキュアエレメント用ミドルウェアは、モジュール式アプリケーションを介して異種のアプレット管理を抽象化し、デバイスとデジタルアセットブローカ(DAB)サービスプラットフォームとの統合を可能にする。それは、製造業者に関係なく、アプレット管理のための統一された単一のRESTful API(SIMサービスAPI)を提供する。
【0137】
SIM機能をデバイスに公開するために、暗号ミドルウェアライブラリは、アプレット実行プラットフォームを提供し、それとインターフェースする。ライブラリは、Java、Android、またはSwift用のOSレベルCライブラリおよび/またはフレームワーク対応モジュールを含むことができ、(展開、削除、更新など)アプレット自体を管理するための方法、ならびに各々によって利用可能にされる動作を提供する。DABミドルウェアコンポーネントの概要を
図22に示す。
【0138】
SIMサービスAPIは、前述の統一された動作を公開するベースエンドポイントのセットであり、各受信された要求に対して、暗号化コアは、例えば外部または組み込まれたJavaライブラリであっても、第三者ベンダ統合オプションと対話するために必要なステップを編成する役割を果たす。これらの各々は、アプレット管理および利用のための独自のロジックフローを備えているので、個々のアダプタコンポーネントは、DABミドルウェアプロバイダコモンズ層によってインターフェース接続され得る。これにより、異なる製造業者によって提供される動作が利用可能になる。
【0139】
実装
例示的な実装形態では、SIMカードのセキュアエレメント内で実行されるIoT SAFEアプレットと整列した2つのデバイス構成が提供される。
【0140】
1.携帯電話で実行されているDABアプリケーションは、DABサービスによって指示されたようにデータセットに署名して検証するために、組み込まれたAndroidライブラリを介してそのSIMカードに直接アクセスする。
【0141】
2.4G接続された自動車用M2Mルータ(テストでは、RaspberryPiおよびVodafone USB Connect 4G v2ドングルを使用してシミュレートされるが、他の適切なハードウェアを使用してもよい)はSIMを含むが、DABミドルウェアを介してその暗号化機能を他のアプリケーションに公開する。
【0142】
実装されたDABミドルウェアは、以下の例示的な技術を使用する。
Spring Boot;
OpenAPI;
Java Native Interface(JNI);and
iot-safe-middleware.他の技術が使用されてもよい。
【0143】
1つの例示的な実装形態では、Java Spring Bootは、製造業者ライブラリとの多数の可能な統合シナリオをカバーする。これはまた、それらがJVMを実行することができる限り、スマートデバイスまたはIoTゲートウェイを含むいくつかの種類のデバイスにそれを含める可能性を開く。CPUおよびメモリが制約され得るローエンドデバイスの場合、JVMを使用することは最も効率的な実装ではないが、ハードウェアの違いを抽象化する。
【0144】
これは、提供される各ライブラリのために拡張することができる構成可能モジュールに分割することができ、コードモジュールを直接インポートすること、またはOSレベルのライブラリと対話すること(例えば、SIM製造業者によって提供されるCライブラリがJNI外部機能インターフェースを介してインターフェース接続される必要がある場合)のいずれかによって、統合方法のより容易な統合を提供するための手法である。これは、通信ユニットに接続された同じデバイス上で実行されるスタンドアロンアプリケーションとしてインスタンス化されてもよく、またはイベント検出ソフトウェア(例えばJavaベースの場合)に組み込まれてもよい。
【0145】
SIMにインストールされたIoT SAFEアプレットによって利用可能にされる暗号化機能に関する、4つの例示的なSIMサービス動作を定義することができる。これらの動作は、Thales暗号ミドルウェアC++ライブラリによって利用可能にされたAPIメソッドの非常に類似したシグネチャをミラーリングしている(https://github.com/ThalesGroup/iot-safe-middlewareも参照)。Thalesによって提供される暗号ミドルウェアライブラリは、それ自体で2つの方法またはコンパイル、すなわち、通常のAndroidアプリ内からの直接アプレット通信用のJava Androidライブラリ、または上述のミドルウェア手法に適したC++ビルドで使用することができる。
【0146】
DABミドルウェアAPI
例示的な実装形態では、SIMにインストールされたIoT SAFEアプレットによって利用可能にされる暗号化機能に関するSIMサービス動作は、公開鍵を取得するかまたはメッセージに署名する必要性に応じてアプリケーションによって呼び出される。それらはすべて「コンテナ」ベースの手法に従い(「コンテナ」は、各々がクライアント証明書および鍵ペアを保持するセキュアなメモリ空間である)、展開された各DABユースケースは、それがどの鍵タイプまたはデジタル署名アルゴリズムを必要とするかを認識することができる。したがって、DABミドルウェアを呼び出すときにどのパラメータ/コンテナを使用するかを認識することもできる。
【0147】
一例では、APIを以下のように簡単に要約することができる。
/コンテナ:SIMのコンテナに関する情報をリストする、
/証明書:特定のコンテナのクライアント証明書を取得する、
/公開鍵:特定のクライアント証明書/コンテナの公開鍵を読み取る、および
/署名:特定のクライアント証明書/コンテナを使用してメッセージに署名する。
【0148】
このビジネスロジックを
図23に示す。
アプリケーション
SIMウォレットを用いたトランザクション署名
ブロックチェーン、暗号通貨ネットワーク、および他のマイクロペイメントの解決策は、トランザクションに署名するノードの能力に依存している。これらのトランザクションのこのピアツーピアの性質により、ノードがトランザクションに参加したことを証明して、否認されないことを保証できることが重要である。したがって、ブロックチェーンアドレスに関連付けられた秘密鍵を安全な場所(理想的には、改ざん防止暗号モジュール)に保持することが重要である。
【0149】
DABミドルウェアが用意したトランザクションは、SIMに安全に保存された秘密鍵を用いて署名される。この例を
図24に概略的に示す。
【0150】
TLS認証
SIM(例えば、IoT SAFE SIM)に安全に格納されたクライアント鍵およびサーバルート証明書は、DABブロックチェーンアプリケーションをサポートするためだけでなく、デバイスとクラウドで実行されているサービスとの間の相互認証されたTLSセッションを実行するためにも使用できる。これを
図25に概略的に示す。
【0151】
DABミドルウェアはまた、SIMにインストールされたアプレットの鍵生成、ウォレット管理、および管理(インストール、削除など)に対する制御を配信することができる。これは、例えば、新しい鍵ペアを生成するため、またはデジタル署名アルゴリズムを修正するために、IoT SAFEアプレットに対する制御を公開することを伴い得る。
【0152】
SIMおよびデバイス製造業者の多様性のために、DABミドルウェアは、複数の言語およびオペレーティングシステム用のソフトウェア開発キット(SDK)として利用可能であり、OEMが独自のデバイスにそれを円滑に組み込むことを可能にする。そのJavaベースの性質を考えると、別のオプションは、それをJavaカード技術に移植し、すぐに使用できるDABアクセス可能性のためにすべてのSIMに予めインストールされ得る単一のアプリケーションを配信することを含む。
【0153】
SIMサービスAPIは、(許可されている場合には)DABプラットフォームに接続されたアプリケーションアクセラレータまたは第三者アプリケーションによる直接デバイス管理のためにDAB APIインベントリで利用可能である。好ましくは、これは、それ自体のユースケースで取引しているデバイスを制御するために、各DABサービスインスタンスによって消費され得る。
【0154】
イベント検出のためのセンサデータ抽出
例示的な実装形態では、IoT展開は、様々な機能を有することができるデバイスをエンドノードとして使用することができる。これらは、以下を含むことができる。
【0155】
センサデータを上位層(クラウドまたはサーバ)に直接転送する、または
同じ機能を実行するゲートウェイと通信する。
【0156】
センサデータは、例えば、デバイス内で発生し得る。
スマートデバイスおよびセキュアエレメントはますます普及しており、結果として得られるデータに基づいて知識を抽出したりアクションを生成したりする能力は、IoTの自律性の鍵となりつつある。データセットを認証する能力、検出アルゴリズムを実行するアプリケーションは、SIM暗号化アプレットにアクセスするための互換性のあるライブラリを直接組み込むか、またはDABミドルウェアを使用して選択可能な秘密鍵で情報に署名することを可能にし、変更できないデータセットをもたらすことができる。
【0157】
DABデバイスはまた、DAB駆動のユースケース(例えば、検出アルゴリズム展開、ウォレット管理など)で機能することができるデバイス側機能を展開するための制御点として機能し得る。DAB駆動デバイスは、DABサービスがそれらの検出ソフトウェアおよびSIMアプレットを管理するためにアクセス可能であり得る。
【0158】
DABフレームワーク
例示的な実装形態では、DABサービスは、DABスタックのインスタンス化されたコンポーネントであり、DABエコシステムのトランザクションおよび認証プラットフォームとして機能する。それは、IoTデバイスがサービス/データの価値を取引する機能を提供し、モバイルIoTデバイス、複数のタイプのブロックチェーン技術、および任意の第三者外部システム間の接続性を処理する。このために、DABサービスは、トランザクションコミッタル、デジタルアイデンティティ管理、および第三者サービスアクセスのための、ユースケースオーケストレーションのセットアップのためのRESTベースのAPIを提供することができる。
【0159】
好ましくは、システムはJava Spring Bootフレームワークを使用する。これにより、ほとんどのオンプレミスまたはクラウドベースのマシンで実行可能なモジュール性が可能になる。これはまた、ライブラリ、ドライバ、および通信スタックであっても、異なる種類のソフトウェアおよびハードウェアアプリケーションと相互接続するための柔軟な環境である。しかしながら、他のフレームワークが使用されてもよい。
【0160】
例示的な実装形態では、DABサービスは、以下の技術を使用することができる。
Spring Boot、Web3J、OpenAPI、Firebase Java SDK、Spring Quartz、Liquibase、フェイルセーフSDK、JJWT lib、Paho MQTT、PostgreSQL 10、および/またはSpring Reactor。
【0161】
エコシステム内の役割
DABサービスは、エコシステム、管理デバイス、ユースケース、フロー、およびエンティティのエンジンである。APIを通じて公開されるすべての機能に加えて、DABサービスは、第三者マーケットプレイスからの外部システム、他の電気通信コンポーネント、または追加のブロックチェーンネットワークを統合する。
【0162】
ネットワークへの接続に加えて、デバイスは管理およびアクセスされ、DABサービスを用いて、デバイスの接続、管理、認証および証明が行われる。外部エンティティ(例えば、会社)がエコシステムに参加したい場合、それはDABサービスを「サービスとして」使用してもよい。別のエンティティがデバイスの周りでより多くの制御を得たい場合、DABサービスのインスタンスは、それら自体のデバイスでの特定の使用のために展開され、それら自体のエコシステムの部分を制御することができる。
【0163】
IoTデバイスは、計算能力が低いセンサまたは低エネルギーデバイスとして機能し得る。また、デバイスは毎回接続する必要はなく、分散型台帳(例えば、ブロックチェーン)や他のタイプのネットワークに必ずしも常時接続している必要はない。デバイスの計算負荷を低減するために、DABサービスは、デバイスを任意の種類のネットワークと接続するためのプロキシ(またはプロキシサーバ)として機能し得る。これにより、デバイスからのデータを処理する負担が軽減され、あまり強力でないデバイスをエコシステムの一部にすることができる。
【0164】
DAB管理コア
DAB管理コアは、フローオーケストレーションエンジンおよびAPIコンポーネントからなる、すべての当事者間の主要な通信層として機能する。フローオーケストレーションエンジンは、3つの構成要素からなる。各コンポーネントはAPIを通じてアクセス可能である。
【0165】
フローオーケストレーションエンジン
プロビジョニングエンジンは、各DABサービスインスタンスでインスタンス化されたユースケースのセットアップと管理の両方を処理し、特定の実装または技術とのユースケースのリンクアップを抽象化する役割を担う。さらに、プロビジョニングエンジンは、これらの技術および第三者サービスの構成を処理する。それは、(SIMサービスAPIを介して)アルゴリズムおよび鍵管理を展開するためのDABスタックに参加するデバイスの管理のためのアクセス層を配信する。このコンポーネントでは、以下の機能が処理される。
【0166】
ビジネスルール:各デバイスが特定のネットワークまたはマーケットプレイス/エクスチェンジと行うことができる対話を定義するルールのセット。
【0167】
ユースケース管理:各DABインスタンスの利用可能なユースケースの管理(作成・編集・削除)。また、デバイスがトリガできる使用可能なユースケースをデバイスにプロビジョニングする役割も担う。
【0168】
接続性:SIM管理、位置サービスなどのためのGDSPなどの他のプラットフォームとの統合。
【0169】
アルゴリズム:SIMサービスAPIを活用する、DAB駆動デバイスへのアルゴリズムの管理、カタログ作成、および展開。この機能は、好ましくは無線でアップグレードされたデバイス上に高レベルのカスタマイズおよび可能性を提供し、その結果、デバイスからデータがなくなることなく、それら自体のデータに基づいて新しいイベントを発見することができる。
【0170】
認証エンジン
認証エンジンは、接続されたデバイスおよび作成されたスマートサービスのすべてのデジタルアイデンティティロジックを処理する役割を担う。デバイスからパートナーまたはサービスまでの範囲のエンティティは、ビジネスをペアリングおよび接続する(所与の時間に互いにアクセス可能なものを管理する)ために使用することができるデジタルアイデンティティを有する。したがって、このエンジンは、外部バックエンドのネットワーク内にIoTデバイスエンティティを作成し、それぞれのレジストリに対して認証する能力を提供する。したがって、認証エンジンは、好ましくは一意の識別子によって、DABエコシステムにわたってアイデンティティを一義的にアサートする。プロビジョニングされた鍵を保持し、アイデンティティおよびトランザクションの信頼性に関するコンテキストを提供するデバイスは、プラグインを許可され、実証された実証可能な由来をデータに提供することができる。
【0171】
トランザクションエンジン
ユースケースに応じて、異なる機能を起動することができ、このカスタマイズはDABプラットフォームの追加の利点である。このようにしてデバイスを認証することにより、受信したトランザクションが信頼できるデバイスから、すなわちSIMカードの秘密鍵を介して、暗号化および署名されることが保証され、由来およびアイデンティティが保証される。したがって、複数のマーケットプレイス/エクスチェンジ(通常、各々が特定のドメインに焦点を合わせている)でトランザクションを直ちに実行することができる。
【0172】
このように、トランザクションエンジンは、受信されたデバイストランザクションおよびAPI呼び出しを処理する傾向があるロジックを処理する役割を担うことができる。これは、DABサービス層にわたって情報をリダイレクトし、コンポーネント間要求を行うことを必要とする。例えば、これは、データベース、外部システム、またはブロックチェーン統合にアクセスすることを含むことができる。候補イベントを受信すると、DABサービスは、含まれるデータ以上に依存してどのユースケースを適用するかを決定してもよく、デバイスで選択されたアルゴリズムまたはそれらのデータ上で生成されたインサイトをチェックしてもよい。
【0173】
トランザクションが「長い」処理またはマーケットプレイスタイプのオファー/デマンド照合手順を必要とする場合、トランザクションエンジンは、セキュアなCPUエンクレーブ内で特別なアルゴリズムを実行するためのサービスを提供するDAB管理サービスのオフチェーン処理コンポーネントにインターフェースを提供する。これは、DABサービスまたは第三者によって制御されるサービスを含み得る。
【0174】
トランザクションエンジンは、データセットがDABスタックに入るイングレスエンドポイントを提供する。これらは同期HTTP POSTによってDAB(または他の通信プロトコル)に配信されてもよく、それらは解析され適用可能なユースケースにルーティングされ、それに関連する(構成された)編成されたフローが開始される。
【0175】
典型的な価値取引プロセスは、3つのステップに従うことができる。これらは、ほとんどのユースケースに適用可能であり、ユースケース実装がどのようにアプローチされるかを示す。
【0176】
受信されたメッセージは、価値取引プロセスの開始をトリガする。例えば、これは、DAB駆動デバイスによって送信されたトランザクション(トランザクションエンジンを参照)、または第三者による消費のためにDABサービスによって展開されたカスタムAPI上で受信された特定のメッセージであってもよい。
【0177】
プロデューサのアイデンティティが検証され、アクティブ化されたユースケースが識別される。トランザクションをブロックチェーンに展開する、または外部システムもしくはDABデバイスにメッセージもしくは信号を配信するなど、結果として生じるアクションが生成される。
【0178】
アプリケーションは、商業的使用のための実行可能な実用的アプリケーションとして生じるセッション記録およびデータセット照合の概念など、単純なトークン転送を超えるいくつかの種類のユースケースをカバーすることができる。トランザクション可能な多くの種類のデータを一般化するために、トランザクションエンジンは、どのユースケースのフローをアクティブにするかを示すために必要なすべての情報を含むように、できるだけ一般的であるように概説されたAPIメッセージフォーマットを実施することができる。
【0179】
例示的な実装形態において、例示的なJSONコードを以下に示す。メッセージプロパティは、以下を示すことができる。
【0180】
transactionId-デバイスによって生成され、メッセージごとに一意のUUID、
usecaseType-使用されるブロックチェーン技術とユースケースの動作モード(例えば、イーサリウム、セッションベースなど)の両方を一義的に識別する必要がある、
transactionType-すべてのユースケースで使用されるが、その動作モードの各ステップを記述するために必要なキーワードに限定される(例えば、開始セッション、オープンセッション、支払い)、
fromDevice-SSID-各SIMのグローバルに一意の識別コード-デバイス識別に使用される、
creationDate-デバイスによって生成されたタイムスタンプ、
transactionObject-現在位置を示すデバイスによって送信されたGPSデータを搬送する「locationObject」プロパティと共に、ブロックチェーン(blockchainObject)に挿入されるデータを含む、
dataType-ブロックチェーンに挿入されるデータのタイプ(「blockchainObject」内に含まれるデータ)を示すために使用される。これは、そのJSONフォーマットを区別するために使用され得る。
【0181】
{
“transactionId”:“{{v4uuid}}”,
“transactionType”:“newdata”,
“fromDevice”:“8981300999090900006F”,
“creationDate”:“2020-04-27T17:32:47.020154Z”,
“useCaseType”:“service”,
“dataType”:“generaldata”,
“transactionObject”:{
“blockchainObject”:“{\“borrower\”:\“Daimler\”,…}”,
“locationObject”:“{\“location_data\”:{\“lat\”:51…}}”}
}
データ永続性サービスなどのサポート機能
データ永続性サービスは、ユースケースオーケストレーション、デバイス構成、デバイスサービス関連データ、およびデータセットハッシュを記述する情報を格納するためにDABサービスが必要とするすべてのデータベース接続性を扱う。これは、特にタイミングが重要になるときに使用され得る。
【0182】
DAB管理コアの機能は、プラットフォームGUIによってサポートされてもよい。これは、INVENTによって実施されてもよいが、他の技術を使用してもよい。
【0183】
共通API
フローオーケストレーションエンジンは、ユースケース、認証およびトランザクションを構築および管理するのに適したエンドポイントを提供するために、コア機能の共通APIのセットを必要とする場合がある。
【0184】
DAB管理サービス
DAB管理サービス機能は、特定の業界垂直またはユースケースに関連するカスタマイズされたデータ処理を実施することができる場所として機能する。それは、DAB管理コアから独立していてもよく、DAB対話のために第三者サービスを統合する必要が生じたときにいつでも定義および開発することができる独自のAPIを有してもよい。スケーラビリティを向上させるために、コア要素はカスタマイズされた要素から独立していてもよい。
【0185】
カスタマイズされたオフチェーン処理
トランザクションが照合処理を必要とする場合(例えば、トラック容量)、またはマイクロペイメント集約の場合(例えば、料金徴収サービス)、アルゴリズムは、Pythonおよびソフトウェアガードエクステンション(SGX)エンクレーブで実行することができる。
【0186】
カスタマイズされたAPI
ユースケースが外部システムによってトリガされるために特定の統合が必要な場合、DABサービスによって公開されたエンドポイントは、このコンポーネントに編成され得る。これらのユースケースは、一般に、DABにデジタルデバイスのアイデンティティを問い合わせる、署名を要求する、またはブロックチェーントランザクションをトリガするなど、DABスタックに既に存在するデータに依存する。これらの特注の制御点は、RESTを超えて、SOAP、MQTTなどのJavaによってサポートされる任意の他の技術で利用可能にすることができる。
【0187】
DABブロックチェーンサービス
モノの台帳
モノの台帳は、例えば、Cordaネットワークに基づいてデジタルIDを作成、維持、および使用する能力を提供する(他の分散型台帳技術が使用されてもよい)。これはその後、認証およびトランザクション署名のためにDAB管理コアによって消費される。モノの台帳上のデバイスのバルクプロビジョニングは、企業が多数のデバイスのデジタルツインを容易かつ同時に作成することを可能にする。DABエクスチェンジは、デバイスおよびユースケースを互いに自動的にマッピングするための重要な差別化要因となるイベント検出を含む。
【0188】
ブロックチェーンハブおよびスマートコントラクトエンジン
ブロックチェーンハブ
ブロックチェーンハブは、ブロックチェーン実装によって選択された異なる統合機構を管理し、DABコアサービスに相互接続機能を提供する。これらの機構は、組み込みJavaライブラリの使用から、DABサービス自体と共に実行される外部アプリケーションとのシステムレベルの相互作用にまで及ぶ場合がある。したがって、層は、それらの使用に必要なすべてのロジックを技術またはパートナーによって分離する異なるクラスを提供する。(プロビジョニングエンジンを介して)ユースケースを構築するとき、プログラマは、これらのコネクタのうちの1つを容易に選択し、特定のノード、サーバ、または資格情報を使用するようにそれを構成し、トランザクション管理のための単純な方法を提供されることを期待する。
【0189】
異なるタイプの分散型台帳を使用してもよい。例えば、以下の3つの異なるブロックチェーンを使用することができる。
【0190】
Cordaネットワークでは、DLTネットワークのいくつかのノードとのRESTful APIを介してトランザクションが行われる。RPCコネクタを使用することも可能であるが、RESTful APIは低摩擦で容易な統合を提供する。
【0191】
iExecネットワークでは、連続するオペレーティングシステムプロセスが実行され、(パートナーのドキュメントに記載されているような)順序付けられたコマンドのセットが、DABインスタンスと並んでインストールされたNodeJSクライアント(iExec SDK)に発行され、DABによって処理および解釈される必要があるテキストJSON出力を同期して実行および返す。
【0192】
EWFは、データマーケットプレイスとしてイーサリウムブロックチェーンを使用するシステムを構築したが、デバイスの参加はMQTTメッセージを受信するのみのデータ処理能力のない(dumb)デバイスに限定されることを考慮している。したがって、それらのEWFをDABサービスに統合するために、MQTTクライアント/コネクタは、DABサービスが許可するすべてのデバイスのすべてのEWFフローを管理する。
【0193】
既存のブロックチェーン実装の複雑さを考慮すると、GethおよびWeb3などのライブラリに基づいてさらなるコネクタを統合して、きめ細かい接続オプションを強化することが可能である。
【0194】
例示的なユースケース
ユースケース:「サービスの支払い」
このユースケースは、駐車または料金(自動車)のようなサービスを使用および支払いするためにトークン交換がどのように使用され得るかを示す。R3 Corda技術は、ワンタイムトークン/支払いトランザクションを作成するためにトークンSDKフレームワークを実装する。ネットワーク内の5つのノードは、権限ノードとして機能する1つのノータリー、サービス用の2つのノード、およびコンシューマ用の2つのノードを含む。R3 Cordaブロックチェーン上の各ノードは、サービス会社(例えば、駐車、料金徴収会社またはEV充電提供者)などの主要エンティティ、および自動車会社などのコンシューマ企業を表す。各デバイスはトランザクションをトリガすることができるが、そのアイデンティティは必ずしもブロックチェーン自体にミラーリングされるわけではなく、トリガしているスマートコントラクト上に表されてもよい。これを
図26に概略的に示す。
【0195】
スマートコントラクト(Corda上のフロー)に関しては、ネットワークを管理するためのすべてのフローに加えて、各エンティティの各デバイスによって行われるトランザクションを作成および記録するためのメインフロー(すべてのトランザクションの閲覧、情報の収集、または計算の実行を含む)。CoinTokenTypeContractは、CreateEvolvableTokenFlowオブジェクトを表す。そのフローをトリガするとき、フローを開始しているデバイスのアイデンティティなどのいくつかの必須フィールドがあり、そのエンティティは、サービスのコンシューマであるそのデバイスを表す。APIは、ネットワーク上のトランザクションを管理およびトリガし、それらを外部ポータルおよびアプリケーションと統合する。
【0196】
ネットワークは、アクセスおよびネットワーク利用可能なポートおよびAPIに基づいて定義された構造を有するエンティティによって分離された、AWS(または他の)環境に展開され得る。各ノードは、独自のAPIを提供し、かつ利用可能なネットワークの残りの部分とは独立して動作することができる、独自のウェブサーバを有する。
【0197】
機能の統合は、スマートフォンまたは他のデバイス(例えば、Android携帯)内で行われている。プラットフォームは、ネットワークを監視し、手動でアクションをトリガすることができる。この解決策は、RESTおよびSSHを使用して、ノード上で直接R3 Cordaインスタンスとインターフェースし、ネットワークトランザクションの監視、新しいトランザクションのトリガ、およびNode-CLIを介したノードの制御などの管理された機能を提供する。次のイメージは、その機能を詳細に示している。
【0198】
自動車のシナリオでは、R3 Cordaブロックチェーン機能を使用することによって、サービスに対する支払いを自動的に達成することができる。
【0199】
インターフェース/依存関係
様々なインターフェースは、RESTful(または他の)APIを介してノード上のトランザクションの制御およびトリガを可能にする。RPCおよびSSHを含む他のインターフェースが使用されてもよい(
図26参照)。
【0200】
以下は、それらの機能の説明と共に、使用され得る例示的なAPIのリストを提供する。これらのAPIは、内部で使用されてもよく、または外部エンティティによってアクセスされてもよい。
【0201】
名称 説明
getMe ノードが誰であるかに関する情報を取得する。
【0202】
getPeers ネットワーク上の他のノードに関する情報を取得する。
getNetworkMap 接続のネットワークマップを取得する。
【0203】
getNetworkFeed トランザクションのネットワークフィードを取得する。
【0204】
getNetworkParameters ネットワーク実装パラメータを取得する。
【0205】
getRegisteredFlows そのノードの実行可能なフローのリストを取得する。
【0206】
getTransactionsID ノードが関与したトランザクションIDのリストを取得する。
【0207】
getTransactionsInfoByID IDによりトランザクションの情報を取得する。
【0208】
getNumberOfTransactions ネットワーク内のトランザクション数を取得する。
【0209】
getTransactionsInvolved ノードが関与したトランザクション情報のリストを取得する。
【0210】
getNumberOfTransactionsInvolved ノードが関与したトランザクションの数を取得する。
【0211】
getNodeInfo ノード自体に関する情報を取得する。
getNodeTime ノードの現在時刻を取得する。
【0212】
getTransactions すべてのトランザクションの情報のリストを取得する。
【0213】
getVodacoins 「Vodacoins」の残高の数字を取得する。
postCreateTx ネットワーク上でトランザクションを作成する。ビジネスロジックの項に記載
分散型台帳内(例えば、ブロックチェーンネットワーク)の各ノードについて、APIは複製可能であり、ネットワークの残りの部分と対話するために同じタイプのフローを実行することができる。
【0214】
ビジネスロジック
DLT(例えば、Corda)との対話は、確立されたRESTエンドポイントおよびSSH接続のセットを介して行われるため、DABブロックチェーンサービスコネクタは、台帳からのデータの挿入および取得に必要なコールフローを調整する。これらのシナリオをトリガするために、DABアプリ内のユーザレイアウトの集合は、公開層に記述されたメッセージフォーマットに従ってトランザクションを構築する。
【0215】
この機能のために、サービス支払いシナリオ(useCaseType「service」)は、「newdata」トランザクションタイプのみを必要とする。例えば、アプリケーション(DABアプリ)を使用していくつかのユースケースおよびシナリオを手動でトリガすることが可能である。
【0216】
混雑課金、ワン・タイム・パーキング、または任意の他のサービスのようなサービスの支払いのために、ユーザは、DABアプリ上でメニューエントリ「新しい貨幣化可能データ」、タブ「サービス」を選択し、フィールドに入力する。
【0217】
借り手-トークン/価値を譲渡したい相手(サービスプロバイダ)
価値-トークン数
タイプ:
MIN-持続時間量(例えば、分)
CC-金銭的価値における混雑課金額
支払い-金銭的価値における任意の他の支払い
サブ値-選択された支払いタイプに対応する数値(例えば、3分、3ユーロ、3ボーダコイン)
VIN-車両Vin
スロットID-例えば、駐車スロットまたは料金所を指定するために使用できる任意選択のフィールド
場所-例えば、混雑領域入口点または駐車場所を指定するために使用することができる任意選択のフィールド
ICCID-SIMカードICCIDまたはUICC
これは、JSONオブジェクトに変換され得る。
【0218】
自動的なトリガおよび統合(例えば、自動車の統合)は、ブロックチェーンとの改善された直接対話を提供する。さらに、ネットワークパーティ間の決済が容易になり得る。ブロックチェーンは、コンシューマまたは当事者間で行われたすべてのトランザクションを登録することができるため、サービスは、それらの間で決済が行われながら同じネットワークで取引することができる。スマートコントラクト/フローは、特定の債務を決定し、ある当事者から別の当事者に資金を自動的に送信することができる。あるいは、外部請求システムは、ネットワーク上に存在するすべての単一トランザクションを集約することができる。
【0219】
ユースケース:「イベント駆動フリート」
このユースケースは、データを生成し、ブロックチェーンベースのマーケットプレイス/エクスチェンジを提供するために直接使用することができる。これは、異なる状況およびシナリオで実施され得る。例示的な実施態様では、物流会社は貨物輸送能力を完全に利用しない場合がある。センサ生成データは、エッジ秘密計算ユニットを使用して処理され、マーケットプレイスまたはエクスチェンジで共有されると、他の当事者またはエンティティによって検索および入札または購入され得る「オファー」データセットを構築することができる。この例では、iExecプラットフォームを使用して、DABサービスによってキューに入れられ、Intel SGXエングレーブを使用して実行されるiExecを使用してスクリプト化されたカスタムオフチェーンアルゴリズムによって実行されるジョブを照合した。これを
図27に概略的に示す。
【0220】
販売者は、ルートを販売したいときはいつでも、手動または自動でDABアプリのUIに入力し、それをiExecマーケットプレイスの他のエクスチェンジに挿入するようにDABサービスに要求する。別のエンティティは、アプリケーション内の同様のプロセスまたはレイアウトを使用して、それらのニーズを記述してもよい。互換性のあるオファー(過去と未来の両方)を検索して照合してもよい。DABサービスは、これらのクエリを受信し、照合ジョブを展開し、一致するものが見つかった場合に双方に通知する。
【0221】
検出アルゴリズムによって生成されたデータセットの自動展開を使用してもよい。
インターフェース/依存関係
テストシステムでは、オファーおよびデマンドトランザクションを構築し、それらをDABサービスのトランザクションエンジンに送信するために、DABアプリ(AndroidまたはiOSベース)にユーザインターフェースのセットが作成されている。
【0222】
マーケットプレイス/エクスチェンジを使用するために、DABサービスはiExec SDKと対話する。このアプリケーションは、独自のイーサリウムトランザクションロジック、およびデータ挿入と検索を調整するための別のブロックチェーン統合レイヤコネクタをラップする、コマンドラインNodeJSツールである。これらの動作は各々、実行されるべきいくつかのOS呼び出しを伴い、順序付けられたコマンドのセットがSDKに発行され、SDKは、DABサービスによって処理および解釈されるテキストJSON出力を同期的に実行および返す。すべてのiExecオフチェーンアルゴリズムはセキュアなエンクレーブで実行されるため、それらが使用するデータセットはそれらのブロックチェーンに直接挿入されない。代わりに、これらは、SDKによって生成された秘密で暗号化されると、公開IPFSネットワーク(または他のファイルシステム)に展開される。この秘密は、データセットのIPFSハッシュと共に、挿入フロー中にiExecに各々プッシュされ、秘密は秘密管理サービスに送信され、ハッシュはブロックチェーンに送信される。IPFSピンニングサービスの場合、Pinataが使用されてもよい。この実装はAPIも使用する。
【0223】
iExec SDK v4.0.3は、同じマシン内のDABサービスインスタンスと共にインストールされ、NodeJS 8.10.0およびDocker 19.03.6の構成を必要とした。
【0224】
DABアプリは、DABサービスに送信されるトランザクションを構築するユーザインターフェースのセットを作成するために使用される。これは、オファーおよびデマンドの容量をシミュレートする。しかしながら、そのようなプロセスは、異なるエンティティおよびプロセスによってオファーおよび許容が生成される生成システムにおいて自動化される。同様のメッセージフォーマットは、2つの異なるタイプのトランザクションで使用される。
【0225】
「transactionType」が「newdata」に等しい場合、オファーデータセットが含まれ、それをブロックチェーン/マーケットプレイス/エクスチェンジに展開するようにDABサービスをトリガする;
「lookingfordata」に等しい場合、所望のトリップパラメータを含むデマンドデータセットを搬送する。
【0226】
iExecによって準備された照合アルゴリズムは、オファーとデマンドの両方に類似した厳密なデータセット形式、出荷会社が特定の価格、日付およびルートで雇用のために利用可能なトラックスペースを販売するテストシナリオを特徴付けるJSON構造を扱うので、両方のデータセットはプロパティ「transactionObject」内にある。
【0227】
取引情報
トラックトリップのための空間提供を記述するデータセットを手動で作成するために、ユーザはDABアプリ上でメニューエントリ「新しい貨幣化可能データ」、タブ「トラック容量」を選択し、フィールドに入力する。生成システムでは、データセットは、容量を示すことができるセンサを有する個々のトラックによって作成される。データセットは以下を含む。
【0228】
サービスプロバイダ-サービスプロバイダの名称、
提供スペース-利用可能な貨物ユニットの数量、
起点-トリップ起点、
終点-トリップ目的地、
日付-トリップ日付、
価格-希望価格、
トラックトリップの要求を記述するデータセットを手動で作成するために、ユーザはDABアプリ上でメニューエントリ「データを探す」を選択し、フィールドに入力する。
【0229】
サービスプロバイダ-貨物空間を探すエンティティの名称、
必要な空間-必要な貨物ユニット、
起点-トリップ起点、
終点-トリップ目的地、
日付-トリップ日付、
価格-入札価格。
【0230】
ここでも、生成システムでは、貨物空間の入札は、そのようなサービスを必要とするエンティティに対して自動的に生成され得る。
【0231】
「newdata」または「lookingfordata」を受信すると、DABサービスは、iExec SDKとの一連のシステムレベルの対話を開始する。iExecブロックチェーンに挿入されるのは、オファーデータセット自体ではなく、そのIPFSハッシュ(他の関連するiExecデータと共に)である。
【0232】
「newdata」トランザクションがマーケットプレイス/エクスチェンジに挿入されるデータセットを識別する場合、「lookingfordata」はDAB側フローをトリガし、DAB側フローは、以前に挿入された「newdata」データセットをループして、(iExecによって管理されるIntel SGXエンクレーブワーカープールで実行される)オフチェーン照合タスクを順次展開してポーリングすることを必要とする。このプロセスを
図28に概略的に示す。
【0233】
照合プロセスは、DABサービスが、対の相手のないオファーおよびデマンドデータセットのハッシュを選択し、それらをiExecワーカープール内の「タスク」に挿入することを伴う。これらのタスクは、iExecワーカープールによってピックアップされて実行され、結果が計算されるまでDABサービスによって繰り返しポーリングされる。DABサービスは、そのデータベース内のすべてのデータセットハッシュを含む更新されたリストを保持する。このプロセスを
図29に概略的に示す。
【0234】
これらのオフチェーンタスクは同時に複数の比較を実行することができないため、DABサービスはデータセットごとに実行を発行する役割を担う。オファーとデマンドとの間に一致が見つかった場合、それらのデータセットハッシュがDABサービスデータベースに登録され、購入者のデバイスに通知される。
【0235】
オファーおよびデマンドデータセットの両方を挿入したデバイスに一致を通信するため、特にAndroidアプリケーションのメッセージおよびプッシュ通知のためのクロスプラットフォームクラウドによる解決策であるために、Firebaseクラウドメッセージングプラットフォームが使用され得る。コンポーネントは、DAB駆動デバイスのためのFirebaseメッセージングを処理し、すべてのデバイスは、起動時にそれらのFirebase接続トークンを登録するようにされる(DABサービスにポストされたデバイス登録メッセージに沿って送信される)。したがって、それらは起動の準備ができている。ここでも、生成システムでは、メッセージを異なる方法で処理してもよい。
【0236】
マーケットプレイス/エクスチェンジへのデータの自動供給は、異なる機構を使用して達成してもよい。例えば、AIおよびセンサネットワークは、自動化された市場交渉で設定することができる。既製の照合アルゴリズムを、ワーカープールを保護するために展開してもよい。
【0237】
代替の実装形態には、
IPFSをより高速な分散ストレージによる解決策に置き換えること、
複数のデータセットを同時に扱うことができる照合アルゴリズムを展開すること、
DABサービスがデマンドデータセットをアンロードし、一致が見つかったときに非同期通知を提供する連続分析のためのデータセットハッシュを提供する、専用のワーカープールを設定すること、が含まれる。
【0238】
ユースケース:「エネルギーアイデンティティおよび支払い」
この使用により、「DAB対応デバイス」(SIMおよびそれぞれのミドルウェア上のセキュアエレメントを有する)をEnergy Web Foundationスマートエネルギープラットフォームに統合し、アクティブな参加者になることが可能になる。
【0239】
接続されたデバイスは、Flexhub MQTTブローカからのメッセージ(すべてJWTストリングに符号化されている)を排他的に読み取り、デジタル署名する。アセット所有者は、(電力を売買するための)オファー割当をプログラムしており、FlexHubプラットフォームによって管理および処理される。DABプラットフォームは、ドメイン相互接続を追加する。これは、DABサービスがトランザクションされたデータを認識し、これらのデータを操作することを必要とする。したがって、統合アーキテクチャは、デバイスのためにDABサービスブローカを使用し、それらに代わってFlexHubノードとのメッセージングを処理する。EWFデバイス側コード(元々Pythonで書かれている)は、FlexHub機能に何ら影響を与えることなく、現在は複数のデバイスにサービスするDABコア上で実行されているSpring Bootコンポーネントに移植される。このシステムの概略図を
図30に示す。
【0240】
EWFによって定義された関連するユーザ/当事者/役割には、以下が含まれる。
TSO(伝送システムオペレータ)は柔軟性の要求を提出し、制約および制限を定義し、確認済みアセットをアクティブ化する。
【0241】
アセット所有者は、その個人アセットの各々がそれらのパラメータと一致するオファーを提出できるように、オファーパラメータを定義する。
【0242】
インストーラは、アセット所有者のアセットの登録を承認する。
管轄機関は、市場に参加している他の当事者の役割の登録を承認する。
【0243】
TSOは、それらのエネルギー柔軟性要求および制約をシステムに提出し、アセット所有者は、それらのオファーを提出し(自身で、またはインテリジェンスの第三者プロバイダを介して)、Flex systemは、要求を満たすための最低コストの方法を決定する。
【0244】
他の強化には、以下が含まれ得る。
登録、プロビジョニング、オファー作成の自動化。
【0245】
AndroidまたはJavaを使用しているデバイス以外のデバイス。
デバイスは、トランザクションに署名するように要求され、オファーのアクティブ化が通知される。これらは、DABサービスによってトリガされる。これにより、デバイスが、各デバイスから命令のためにそれぞれのFlexHub MQTTキューをポーリングすることが回避される。DABアプリは、以下を含む機能を提供する。
【0246】
デバイスは、署名用のEWFトランザクションを含むメッセージを受信し、それはその後、DABコアサービスAPI上のカスタムエンドポイントにポストされ、DABコアをトリガしてそれぞれのEWFビジネスフローを完了する。
【0247】
アクティブ化メッセージが受信されるときはいつでも、DABアプリはユーザ通知を表示し、これは有用で実際のアクション(例えば、モバイルアプリケーションから到達可能なデバイスをオン/オフする)で置き換えてもよい。これを
図31に概略的に示す。
【0248】
ビジネスロジック
フローは、Flex WebApp内の様々なEWFアクターによって行われた入力から開始される。DABサービスは、EWFビジネスロジック(および任意の種類のフロー状態可観測性)を実装する唯一のコンポーネントであるため、FlexHubが必要とする様々なJWTに署名するようにデバイスに要求する。
【0249】
要求されたメッセージに署名した後、デバイスは、署名されたメッセージを送信したデバイスに対してどのフローが実行されていたかを判定するのに十分な情報とともに、DABサービスにそれらを返す。デバイスは、手元のユースケース(DABスタック目標の1つ)に関係するものとは別の他のJWTに署名する必要があり得る。したがって、Firebase Data Messageフォーマットは、他のシナリオに対する高速な適応を可能にする。「useCase」プロパティは、署名を求めるDABユースケースを指定し、提出時にDABサービスでトリガするアクションを識別するために、サーバがその特定のユースケース内のアクションの追加のコースを区別できるようにする追加の「useCaseAction」プロパティを含めることが適切であると本発明者らは感じた。
図32および
図33は、このプロセスのシーケンス図を示す。
【0250】
この統合のために、プロパティ「useCase」は「ewf」としてタグ付けされ、「useCaseAction」フィールドは、デバイスの署名を最初に必要とした特定のEWFビジネスフローを示すために使用された。
【0251】
特定のアセットによって実行される所与のオファーのアクティブ化チャートを確認するために、Flex WebAppをアセット所有者が使用することもでき、ダッシュボードを介してユーザは作成されたオファーのリストにアクセスし、チャート化したいオファーの「データシート」アイコンを選択することができる。
【0252】
デバイスは、EWFネットワークの一部になり、これは、発電機、バッテリなどをオン/オフするなどのさらなる実用的な動作に拡張することができる。同じことが、電気自動車充電(EVC)または単純なスマートメータデータの貨幣化を含む、フレックスグリッド以外の他のマーケットプレイスにも適用可能である。
【0253】
ユースケース:「企業およびコンシューマ駐車」
このユースケースでは、デジタルID(人、サービス、および物に対する)を使用して、支払いの有無にかかわらず自動車をサービスとペアリングできる完全なエンドツーエンド体験を作成する。
【0254】
1.運転者のいずれかによって行われる(コンシューマB2Cシナリオ-運転者のデジタル識別情報および銀行プラットフォーム内の関連する個人口座を使用する)、
2.後の処理のためにDLT上で使用が維持される車自体に課金される(企業B2Bシナリオ-車が第三者、例えばレンタル会社に属する場合)、
DABサービスは、フローを管理および編成する(およびB2B支払いに使用するためのCorda DLTをホストする)。車両は、DABミドルウェアアプリケーションおよびDABアプリのカスタマイズされたバージョン(例えば、タブレットアプリ)を実行する内部ルータを含み得る。これは、組み込み(例えば、iOSまたはAndroidベース)ダッシュボードコンピュータにインストールすることができる。
【0255】
インターフェース/依存関係
SPOT駐車システムは、「サービス支払い」ユースケースと同様に、同じ場所およびCorda台帳にインストールすることができる。
【0256】
SIMによる保護
トランザクションに署名するために、前述のSIM手法によって保護されたものが使用されてもよく、SIM上でPKIを消費する。SIMは、プロセッサまたは他のデバイス(例えば、車両)に差し込まれたUSBドングルに追加される。DABミドルウェアがデバイス上で実行され、前述したように、署名のためにDABミドルウェアAPIを公開する。
【0257】
駐車インフラストラクチャにインストールされたSPOT駐車システムは、そのゲートを横切る車両を検出し、カスタムAPIセット(上記参照)でエンドポイントを呼び出すことによってDABサービスと共に動作する。このカスタマイズは、SPOTがDABサービスにナンバープレートおよびゲート情報を送信するために使用され、次に、以下の場合にはリターンコードを予期する。
【0258】
入庫時:有効化された支払いが設定されたため、バリアを開くことができる、
出庫時:精算が完了し、車は出庫することができる。
【0259】
FINN
B2Cシナリオを管理するために、FINN(RTM)を使用した。これは、IoTの支払いをスマートデバイスに追加するツールキットを含む商用プラットフォーム上に構築されたIoTの解決策の貨幣化に特化している。要約すると、
「製品」は、サービスを提供し、それと対話するための様々なアクションを定義し、それぞれに利用価格を割り当てる。
【0260】
デバイスは、「製品」を使用するように登録し、そのアクションは、クレジットカードなど、デバイス所有者によって設定された支払い方法に課金される。
【0261】
デバイスが「製品」アクションをトリガするときはいつでも、FINNエコシステムにマイクロペイメントが登録される。
【0262】
FINNの場合、「製品」は、実世界で作動する任意の実システム(「製品」アクションを任意の自動化されたアクティビティと接続するためのFINN IOT SDKと統合する)またはオフラインサービスを表す抽象エンティティとすることができる。SPOT内のすべての使用ロジックは、DABサービスコンポーネントによって制御される。この「製品」のための構成された動作は、ゲート入口および出口を含み、それぞれ滞在期間に基づいて0および駐車料金が課金される。
【0263】
駐車セッションのシーケンス図を
図34に示す。
これらのシナリオをトリガするために、DABアプリ内のユーザレイアウトの集合は、DAB管理コアに記載されたメッセージフォーマットに従ってトランザクションを構築する。駐車シナリオ(ユースケースタイプ「駐車」)の場合、セッション開始と終了は、それらの「transactionType」の値(「newdata」および「endcordasession」)と、「transactionObject」の内容によって区別される。この最後のフィールドは、DLTにコミットされる購入者(車)および供給者(駐車場)の両方の情報を搬送する。地理的情報と共に、DABサービスは、各デバイスのプロキシサーバとして機能する(必要に応じてデバイスの位置を検証するために使用される)。
【0264】
シミュレートされた駐車セッションを開始するために、ユーザはDABアプリ上でメニューエントリ「新しい貨幣化可能データ、:タブ「駐車、を選択し、以下のフィールドに入力する。
【0265】
イニシエータ-駐車セッションを開始するデバイス(デバイスのSIM IDが自動的に入力される)、
ターゲット-車両が登録されているCordaノード、
ターゲットUUID-イニシエータ車両のコード識別子(UUID)、
ソースUUID-車両を駐車するために選択された駐車スロットのコード識別子(UUID)、
GPSオプション:
MOCK_HAPPY_PATH-GPS位置を使用してパーキングセッションを開始する:常に結果は成功したアクションになる、
REAL_GPS-Android OSから読み取られるように、実際のGPS位置を使用して駐車セッションを開始する。このオプションを使用して正常な駐車セッションを開始する場合、イニシエータデバイスと駐車スロットは、互いに最大6mでなければならない。
【0266】
駐車セッションを終了するために、ユーザは、
「トランザクション」メニューエントリ内のセッションを開き、以下のフィールドに入力する。
【0267】
ブロックチェーンに課金される分/価値単位、
GPSオプション:
MOCK_HAPPY_PATH-GPS位置を使用して駐車セッションを停止する、この結果は成功したアクションになる、
REAL_GPS-デバイスの実際のGPS位置を使用して駐車セッションを終了する、
MOCK_END_SESSION_CAR_STILL_PARKE D-車が駐車場所を離れていないかのように動作するようにCorda DAppに指示するテストフラグ。
【0268】
ビジネスロジック
このユースケースでは、「製品」を使用するデバイスは車両である。しかしながら、その「アクション」は、B2Cシナリオでアクティブ化されてもよい。したがって、「スマートサービス」の概念が使用されており、ユーザのデジタルアイデンティティとDABスタックによって提供されるサービスとの間の関連付けである。
【0269】
DABはデバイス(車)をSIMに関連付ける:これはFINNベースのスマートサービスであるため、DABサービスは、それを使用したいデバイスに渡すために、SPOT駐車「製品」に関連するすべてのFINNデータを知る必要がある。これは、車両タブレットアプリ(または車両もしくはデバイス内の他のプロセッサ)が起動するたびに行われ、それと一緒にインストールされるのは、FINNコアバックエンドに登録され、必要に応じていつでもSPOT駐車「製品」を使用する準備ができるようにその車両を自動的にセットアップするためのコードを含む、FINN提供アプリ(FINN IOT SDKを組み込む)である。このプロビジョニングフローは
図35に示されており、以下を含む。
【0270】
ステップ 説明 トリガ
1 製造業者がSCB-DABシステムに新しい車を追加する 製造業者
2 DABは、その車のアイデンティティのための新しいスマートコントラクトをDDIブロックチェーンネットワークに展開する DAB
3 DDIブロックチェーンネットワークは対応するdidで応答する DDIブロックチェーン
4 DABはそれを車のナンバープレートと関連付ける DAB
5 DABは対応する車に車のdidを送信する DAB
6 車は自分のデータベースに自分のdidを保存する 車
スマートサービスのオンボーディング:ユーザが「スマートサービス」のオンボーディングを実行したいときはいつでも、特別に開発されたAndroidアプリケーション(以下、「スマートサービスアプリケーション」として知られる)を使用して実行する。アプリは、デジタルアイデンティティを選択するためのDIDアプリケーションと協働し、そのUIから選択されたスマートサービスをそれに関連付ける。これを
図36に概略的に示す。
【0271】
この時点で、ユーザが「SPOT駐車スマートサービス」を使用するためにオンボードしている場合、DABサービスは、ユーザ側のFINN支払い方法を構成するのに十分なデータ(最初にタブレットアプリによって送信されたデータ)で応答しており、このために、スマートサービスアプリは、最初にユーザに有効な支払いクレジットカードを要求し、次いでそれをSPOT駐車製品のコンシューマとして登録する、別のFINN供給アプリケーション(FINNモバイルSDKを組み込む)とインテントを介して自動的に通信する。これを
図37に概略的に示す。この例示的な実装形態では、以下のステップをとることができる。
【0272】
B2Cサービスのオンボーディング(
図37)
ステップ 説明 トリガ
1 スマートサービスアプリは、DABをトリガしてユーザ用の新しいサービスを作成する スマートサービスアプリ
2 DABはプロファイルタイプ(個人の場合)をチェックし、ユーザデータを保存する DAB
3 DABは、ユーザ側初期化に必要なデータ:ユーザプロファイルデータ+サービスデータで応答する DAB
4 スマートサービスアプリは、(インテントを介して)新しいサービスを作成するためにFinnモバイルアプリをトリガする スマートサービスアプリ
5 FinnモバイルアプリがFINNコアに要求を転送する FINNモバイルアプリケーション
6 FINNコアは、成功またはエラーメッセージで応答する FINNコア
7 Finnモバイルアプリは、成功またはエラーメッセージで応答する(インテントリターンを介して)FINNモバイルアプリケーション
9 スマートサービスアプリは、Finnのオンボーディング確認を/サービス/確認にポストする スマートサービスアプリ
デバイスを識別する(例えば車):ユーザがどの車を運転しているかを決定するために(および車両がFINN SPOT駐車「製品」アクションをトリガすることを理解するために)、ユーザと物との間のセッションを作成するためにデジタルアイデンティティ機能を活用するログイン機構がDABプラットフォームで確立される。このようにして、車が入口ゲートを横切るときはいつでも、DABサービスは誰がそれを運転しているかを知る。このフローは、運転者がDABアプリ(車の車載されたタブレットに予めインストールされている)に車のナンバープレートを入力したときにトリガされ、その後のアクティビティは以下の2つの段階に分けることができる。
【0273】
QRコード(登録商標)の生成:DABアプリは、認証プロセスを進めるために、運転者がスキャンするためのQRコードをタブレット上に生成する、および
運転者認証:運転者はQRコードをスキャンし、DDIアプリをトリガして開く。そこから、運転者は、車両と共有したい個人情報を許可する(または許可しない)。このデータの一部は強制的であるが、他は任意であり、これは(すべての車両のプロキシとして機能する)DABで構成された設計決定である。ユーザによって共有されるすべての許可された情報は、DABに格納され得る。これを
図38に概略的に示す。
【0274】
QRコードを介した運転者-車ログイン(
図38)
ステップ 説明 トリガ
1 運転者は、車のタブレットアプリにナンバープレートを入力する タブレットアプリ
2 タブレットアプリは、ログイン要求をDABに送信する タブレットアプリ
3 DABは、そのログイン「セッション」を識別するランダムトピックUUIDを生成する DAB
4 DABは、GCLにノンス+許可IDを要求する DAB
5 GCL応答:ノンス+authID GCL
6 DABは、トピックをノンス+authID+ステップ2データと関連付ける DAB
7 DABは、QRコードを生成するために必要なデータをタブレットアプリに送信する DAB
8 タブレットアプリは、認証用QRコードを生成する タブレットアプリ
非中央集権化デジタルID(DDI)を介した運転者-車ログイン(
図39)
ステップ 説明 トリガ
1 運転者は、自分の電話でQRコードを読み取る(トピック+車のDIDアイデンティティを含む)運転者
2 DDIアプリが開き、運転者は自身について共有したいデータを選択および/または許可する。DDIアプリ
3 DDIアプリは、その情報を共有する GCL
4 GCLは、提供された車のアイデンティティに格納されたDABリターンURLをブロックチェーンに要求する GCL
5 GCLは、そのエンドポイントをポストし、トピックの存在をチェックするトピックが存在する場合、DABは、ログインしようとしているユーザに関係する指示されたuserDidを格納する GCL
6 DABは、GCLにOkまたはエラー応答を送信する DAB
7 GCLは、ログイン結果をDDIアプリに送信する GCL
8 ログイン結果が成功すると、DDIアプリはユーザプロファイル+プロファイルタイプをDABにポストする DDIアプリ
9 DABは、このユーザ/車セッションのユーザプロファイル+プロファイルタイプを保存する DAB
10 DABは、ログイン結果をタブレットアプリに送信する DAB
11 タブレットアプリは成功メッセージを表示する タブレットアプリ
DABサービス:DABサービスは、SPOTがカスタムAPI(既存のSPOTインフラストラクチャの仕様に従って実装される)のカスタムRESTエンドポイントに検出された車両ナンバープレートに関する情報をポストするたびにトリガされる。次のロジックは、SPOTビジネスフローを管理するためにDABコア内に統合される追加のコンポーネントを必要としたが、これは以下のように要約することができる。
【0275】
車両が駐車場に進入したときに、
スマートサービスにB2Bプロファイルがオンボードされていた場合、DABサービスは、ブロックチェーン統合層のCordaコネクタを使用して、Corda DLT上でその車両のセッションを開く(「駐車および料金」ユースケースをミラーリングする)、
スマートサービスにB2Cプロファイルがオンボードされていた場合、Firebaseメッセージが車両のタブレットアプリにプッシュされて、SPOT製品識別子のFinnバックエンドで製品のアクティブ化がトリガされる。
【0276】
車両が駐車場を出るときに、
スマートサービスにB2Bプロファイルがオンボードされていた場合、DABサービスはその車両の以前に開かれたDLTセッションを閉じる、
スマートサービスにB2Cプロファイルがオンボードされていた場合、Firebaseメッセージが車両のタブレットアプリにプッシュされて、SPOT製品識別子のFinnバックエンドで製品の非アクティブ化がトリガされる。
【0277】
B2Bは、駐車フローの詳細を開始する(
図40)。
ステップ 説明 トリガ
1 入口ゲートのカメラは、ナンバープレートを走査する 駐車ゲート
2 駐車ゲートは、そのナンバープレートに対する新しい駐車セッションを開始するようにDABに要求する 駐車ゲート
3 DABは、駐車サービスのオンボーディングに使用されるユーザのDIDプロファイルタイプをチェックする(企業の場合)DAB
4 DABは、Corda駐車ブロックチェーン内の新しい駐車セッションをトリガする DAB
5 ブロックチェーンからDABへの応答-成功またはエラー 駐車ブロックチェーン
6 DABは、新しい駐車セッションを通知するFirebase通知をタブレットアプリに送信し、適切なメッセージでステップ2を返し、次にゲートをトリガして開く DAB
7 タブレットアプリは、新しい駐車セッションに関する情報を画面に表示する タブレットアプリ
B2Cは、駐車フローの詳細を開始する(
図41)
ステップ 説明 トリガ
1 駐車ゲートのカメラは、ナンバープレートを走査する 駐車ゲート
2 駐車ゲートは、そのナンバープレートに対する駐車セッションを開始するようにDABに要求する 駐車ゲート
3 DABは、駐車サービスのオンボーディングに使用されるユーザのDIDプロファイルタイプをチェックする(個人の場合)DAB
4 DABは、Firebase通知をタブレットアプリに送信し、Finnアクション(入庫)をトリガする DAB
5 タブレットアプリは、インテントを介してFINN IoT SDKに入庫アクションをトリガする タブレットアプリ
6 FINN IoT SDKは、DABミドルウェアを使用して、対応する鍵ペアでトランザクションに署名する FINN IoT SDK
7 FINN IoT SDKは、FINNコア内の入庫アクションをトリガする FINN IoT SDK
8 FINN IoT SDKに対するFINNコアからの応答-成功またはエラー FINNコア
9 FINN IoT SDKは、インテントリターンを介して操作結果をシグナリングし、タブレットアプリは通知ポップアップを表示する FINN IoT SDK
10 DABはステップ2で行われたポストから戻り、ゲートをトリガして開く タブレットアプリ
B2Bは、駐車フローの詳細を終了する(
図42)。
【0278】
ステップ 説明 トリガ
1 出口ゲートのカメラは、ナンバープレートを走査する 駐車ゲート
2 ゲートは、そのナンバープレートに対する駐車セッションを終了するようにDABに要求する 駐車ゲート
3 DABは、駐車サービスのオンボーディングに使用されるユーザのDIDプロファイルタイプをチェックする(企業の場合)DAB
4 DABは、Corda駐車ブロックチェーン内の駐車セッションのクローズをトリガする DAB
5 ブロックチェーンからDABへの応答-成功またはエラー 駐車ブロックチェーン
6 DABは、駐車セッションの価格および持続時間を含むFirebase通知をタブレットアプリに送信し、適切なメッセージでステップ2を返し、次にゲートをトリガして開く DAB
7 タブレットアプリは、新しい駐車セッションに関する情報を画面に表示する タブレットアプリ
B2Bは、駐車フローの詳細を終了する(
図43)。
【0279】
ステップ 説明 トリガ
1 出口ゲートのカメラは、ナンバープレートを走査する 駐車ゲート
2 ゲートは、そのナンバープレートに対する駐車セッションを終了するようにDABに要求する 駐車ゲート
3 DABは、駐車サービスのオンボーディングに使用されるユーザのDIDプロファイルタイプをチェックする(個人の場合)DAB
4 DABは、駐車セッションの価格および持続時間を含むFirebase通知をタブレットアプリケーションに送信し、Finnアクション(出庫)をトリガする DAB
5 タブレットアプリは、インテントを介してFINN IoT SDKに出庫アクションをトリガする タブレットアプリ
6 FINN IoT SDKは、DABミドルウェアを使用して、対応する鍵ペアでトランザクションに署名する FINN IoT SDK
7 FINN IoT SDKは、FINNコア内の出庫アクションをトリガする FINN IoT SDK
8 FINN IoT SDKに対するFINNコアからの応答-成功またはエラー FINNコア
9 FINN IoT SDKは、インテントリターンを介して操作結果をシグナリングし、タブレットアプリは通知ポップアップを表示する FINN IoT SDK
10 DABはステップ2で行われたポストから戻り、ゲートをトリガして開く タブレットアプリ
同様の解決策は、異なる駐車の解決策に適用することができ、また、例えば、EV充電および料金が同じフローに従うことができるスマートシティにおける異なるドメインにも適用することができる。コンシューマデジタルIDおよび支払いに関して、エンドツーエンド体験の改善が行われている。
【0280】
DABユーザインターフェース
テスト環境には、以下の2つの主なユーザインターフェース(UI)がある。
【0281】
DAB APP:Android(または他の)モバイルアプリケーション
DAB AEP:DAB Cordaブロックチェーンを接続するためのThingworx拡張
UIは、顧客がすべての機能を利用できるようにするだけでなく、運用および保守チームがエコシステムおよび解決策を管理し、情報を監視および抽出できるようにするために重要である。
【0282】
図44~
図48は、例示的なプラットフォーム環境を示す。他のサーバタイプおよびサービスが使用されてもよい。
【0283】
これはテストシナリオを説明しているが、実際の駐車セッションは、同様だがアプリケーションを必要としない方法で処理される場合がある。すべてのメッセージは、車両(または駐車位置)の内部または周囲のセンサおよび検出されたイベントから開始され得る。
【0284】
当業者には理解されるように、上記の実施形態の詳細は、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく変更することができる。
【0285】
例えば、異なる分散型台帳または台帳技術を使用することができる。UICCは、例えば、組み込みSIMであってもよい。例えば、移動式、可動式、固定式、監視付き、監視なし、家庭用、商業用または工業用デバイスを含む多くの異なるタイプのデバイスが使用されてもよい。
【0286】
上記の実施形態の特徴に対する多くの組み合わせ、修正、または変更は、当業者には容易に明らかであり、本発明の一部を形成することを意図している。1つの実施形態または例に具体的に関連して説明した特徴のいずれも、適切な変更を行うことによって任意の他の実施形態で使用され得る。
【国際調査報告】