JP2019004391A - デバイスプロビジョニングシステム - Google Patents
デバイスプロビジョニングシステム Download PDFInfo
- Publication number
- JP2019004391A JP2019004391A JP2017119016A JP2017119016A JP2019004391A JP 2019004391 A JP2019004391 A JP 2019004391A JP 2017119016 A JP2017119016 A JP 2017119016A JP 2017119016 A JP2017119016 A JP 2017119016A JP 2019004391 A JP2019004391 A JP 2019004391A
- Authority
- JP
- Japan
- Prior art keywords
- provisioning
- trail
- public key
- data
- key
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2129—Authenticate client device independently of the user
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
- H04L2209/805—Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
Abstract
【課題】正当なデバイスに対して正当なプロビジョニングデータを提供し、不正なデバイスが入り込むことを防ぐことのできる、プロビジョニングシステムを提供すること。【解決手段】デバイス4a1〜4a3、4b1〜4b3・・・のプロビジョニングを行うためのプロビジョニングデータを各デバイスへ提供する、デバイスプロビジョニングシステムであって、デバイスごとに一意である第1の公開鍵と第1の証跡とを紐づけて格納するブロックチェーン2より、第1の証跡を用いた問い合わせに応じて第1の公開鍵を取得する、公開鍵提供手段と、各デバイスからの第1の証跡を用いた問い合わせに応じて、公開鍵提供手段によって第1の公開鍵を取得し、当該第1の公開鍵によって暗号化したプロビジョニングデータをデバイスに送信する、プロビジョニングデータ提供手段と、を備えることを特徴とする。【選択図】図1
Description
本発明は、デバイスに対して適切なリソースの提供などを行う、デバイスプロビジョニングシステムに関する。
現在では、携帯電話やスマートフォン、パーソナルコンピュータといった、ユーザが直接的に利用するデバイスや、センサによって取得した情報などを自動でサーバへと送信するようなIoT(Internet of Things)デバイスなど、様々なデバイスが普及している。
そして、上述したようなデバイスに対して、多くの場合には、ソフトウェアの更新プログラムが行われる。これは、古くは、物理メディアなどがデバイスのベンダからユーザへと配布され、各自が更新作業を行う、といったものであった。しかし、高速なインターネット網が普及した昨今においては、インターネットを経由してのダウンロードによって更新プログラムが配布され、それをユーザの操作によって、あるいは自動で、デバイスへと適用する、といった方式がとられることが多い。
また、デバイス上で使用するアプリケーションプログラムやオペレーティングシステム、ファームウェアなどのプログラムファイル、それらによって利用される設定ファイルといったようなリソースを、デバイスへと提供するような形態がとられることもある。このように、デバイスに対してリソースの提供を行い、所定の動作を行う準備を整える、といった処理を、プロビジョニングと呼称する。
例えば、特許文献1には、コンピュータなどのハードウェアプラットフォームのブート時にファームウェアの有効性を確認し、不足がある場合や破損している場合などに、USB(Universal Serial Bus)ポートやEthernet(登録商標)ポートといった外部インターフェースからファームウェアを取得する、プロビジョニング方法が記載されている。
また、IoTデバイスを利用したシステムにおいては、エッジコンピューティングという手法がしばしば用いられる。図30に、従来のIoTシステムの構成の一例を示す。これは、8a1、8a2、8a3、8b1、8b2、8b3として示す複数のIoTデバイス8によって取得したデータの、管理サーバ6による収集や解析などを行うものである。ここで、このようなシステムを構成する際に、IoTデバイス8と管理サーバ6との直接的な通信を行わず、それらの間に7a、7bとして示すようなエッジサーバ7を用意する構成を採用する場合がある。
これにより、個々のエッジサーバ7とそれによって管理されるIoTデバイス8との間はLANa、LANbとして示すようなLAN(Local Area Network)等を介して接続され、エッジサーバ7と管理サーバ6との間はインターネットなどのWANを介して接続される、といったように、ネットワークが複数のセグメントに分割される構成となる。
エッジサーバ7を用いず、IoTデバイス8をWANに直接接続する場合、セキュリティ面のリスクが高まり、個々のIoTデバイス8における対応を行う必要が生じてしまう。例えば、SSL(Security Sockets Layer)を利用したセキュアな通信を行うことや、それに使用するための個々のIoTデバイス8についての電子証明書の発行などが挙げられる。これには、通信の暗号化などのためのIoTデバイス8における処理コストの増加や、電子証明書の発行、管理に係る運用コストの増大などの問題がある。
こういった点から、図30に示すような、エッジサーバ7と個々のIoTデバイス8とをWANと比較してセキュリティリスクの低いLANによって接続し、IoTデバイス8よりも処理コストに余裕のあるエッジサーバ7のみをWANへと接続する、といった構成がとられる。
上述したように様々なデバイスが使用される中で、デバイスが、それを正しく管理する者が不在な状況での使用や、何らかの事情で管理対象から外れてしまうことにより、セキュリティ面での問題などが生じる事態が発生している。特に、IoTデバイスに関しては、このように正しい管理が行われなくなった、いわゆる野良IoTデバイスによるセキュリティリスクが高く、気づかないうちに攻撃の踏み台に利用されていた、といったケースも実際に発生している。
特許文献1に記載されるような方法によれば、コンピュータなどの起動時に必要に応じてファームウェアを外部インターフェースから取得することにより、コンピュータが不正な動作をすることを防ぐことができる。しかし、特にIoTデバイスのように、様々な場所で使用されるようなデバイスにおいて使用することを考えると、上述した野良IoTデバイスのような不正なデバイスがシステムに入り込むのを防ぐ、といった向きでは、デバイスの正当性を十分に確保し、管理できるとは言えない。
また、図30を参照して説明したようなエッジサーバ7を介して個々のIoTデバイス8からのデータの収集などを行う構成においては、個々のIoTデバイス8がLANなどのプライベートネットワークにのみ接続されるため、これらの管理をWANなどのグローバルネットワークをまたいで統合的に行うことが難しいという問題があった。
そこで、本発明では、正当なデバイスに対して正当なプロビジョニングデータを提供し、不正なデバイスが入り込むことを防ぐことのできる、デバイスプロビジョニングシステムを提供することを課題とする。
上記課題を解決するために、本発明に係るデバイスプロビジョニングシステムは、
デバイスのプロビジョニングを行うためのプロビジョニングデータをデバイスへ提供し、前記デバイス上での前記プロビジョニングデータの展開を行う、デバイスプロビジョニングシステムであって、
前記デバイスごとに一意である第1の公開鍵と前記デバイスごとに一意である第1の証跡とを紐づけて格納するブロックチェーンより、前記第1の証跡を用いた問い合わせに応じて前記第1の公開鍵を取得する、公開鍵提供手段と、
前記デバイスからの前記第1の証跡を用いた問い合わせに応じて、前記公開鍵提供手段によって前記第1の公開鍵を取得し、当該第1の公開鍵によって暗号化した前記プロビジョニングデータを前記デバイスに送信する、プロビジョニングデータ提供手段と、を備え、
前記デバイスが、
前記第1の公開鍵に対応する第1の秘密鍵を格納するセキュア領域と、前記第1の証跡を格納する通常領域と、を含む記憶部と、
前記第1の証跡を用いた前記プロビジョニングデータ提供手段への問い合わせによって前記プロビジョニングデータを取得し、前記プロビジョニングデータを前記第1の秘密鍵を用いて復号する、プロビジョニング実行手段と、を備えることを特徴とする。
デバイスのプロビジョニングを行うためのプロビジョニングデータをデバイスへ提供し、前記デバイス上での前記プロビジョニングデータの展開を行う、デバイスプロビジョニングシステムであって、
前記デバイスごとに一意である第1の公開鍵と前記デバイスごとに一意である第1の証跡とを紐づけて格納するブロックチェーンより、前記第1の証跡を用いた問い合わせに応じて前記第1の公開鍵を取得する、公開鍵提供手段と、
前記デバイスからの前記第1の証跡を用いた問い合わせに応じて、前記公開鍵提供手段によって前記第1の公開鍵を取得し、当該第1の公開鍵によって暗号化した前記プロビジョニングデータを前記デバイスに送信する、プロビジョニングデータ提供手段と、を備え、
前記デバイスが、
前記第1の公開鍵に対応する第1の秘密鍵を格納するセキュア領域と、前記第1の証跡を格納する通常領域と、を含む記憶部と、
前記第1の証跡を用いた前記プロビジョニングデータ提供手段への問い合わせによって前記プロビジョニングデータを取得し、前記プロビジョニングデータを前記第1の秘密鍵を用いて復号する、プロビジョニング実行手段と、を備えることを特徴とする。
このように、デバイスごとに一意な秘密鍵、公開鍵のペアを用いてプロビジョニングデータの提供を行うことにより、プロビジョニングデータが第三者に不正に取得されるような可能性を排除し、高いセキュリティを保ってデバイスのプロビジョニングを行うことができる。そして、公開鍵をブロックチェーンへ格納し、それをもって正当性の担保を行うことによって、それぞれのデバイスごとに電子証明書を用意するような費用や手間をかけずとも、デバイスごとの公開鍵の正当性を担保することができる。ここで、デバイスごとに一意な公開鍵をブロックチェーンへ格納しておくことは、すなわち、ブロックチェーンへの登録状況によってデバイスを管理することとなり、管理外の不正なデバイスのシステムへの混入を防ぐことができる。また、対象とするデバイス以外ではプロビジョニングデータの展開ができないという特性から、デバイスとの間の通信経路の暗号化などを簡略化、あるいは省略することができるため、処理能力の比較的低いデバイスを用いる場合においても、プロビジョニングデータの提供をセキュアに行うことができる。
本発明の好ましい形態では、デバイスプロビジョニングシステムが、前記ブロックチェーンへの前記第1の公開鍵の登録による前記第1の証跡の取得を行う証跡登録手段を更に備え、
前記デバイスが、前記プロビジョニングデータの提供を受けていない初期状態において、
前記セキュア領域に前記デバイスごとに一意な初回用秘密鍵を、
前記通常領域に前記初回用秘密鍵に対応する初回用公開鍵を含むデバイス識別データを、それぞれ格納した状態であり、
前記プロビジョニングデータ提供手段が、前記デバイスより送信される前記デバイス識別データに基づいた当該デバイスの正当性の検証に成功した場合に、
前記第1の秘密鍵及び前記第1の公開鍵の生成と、
前記証跡登録手段による前記第1の公開鍵の前記ブロックチェーンへの登録による前記第1の証跡の取得と、
前記第1の秘密鍵と、前記第1の証跡と、を含み、前記初回用公開鍵によって暗号化された初回用データの当該デバイスへの送信と、を行い、
前記プロビジョニング実行手段が、前記初回用秘密鍵を用いた前記初回用データの復号と、前記第1の秘密鍵の前記セキュア領域への格納と、前記第1の証跡の前記通常領域への格納と、を行うことを特徴とする。
このように、デバイス識別データの正当性の検証に基づいて、初期状態であるデバイスに対してプロビジョニングデータの提供を行うことにより、システムへのデバイスの登録を安全に行うことができる。
前記デバイスが、前記プロビジョニングデータの提供を受けていない初期状態において、
前記セキュア領域に前記デバイスごとに一意な初回用秘密鍵を、
前記通常領域に前記初回用秘密鍵に対応する初回用公開鍵を含むデバイス識別データを、それぞれ格納した状態であり、
前記プロビジョニングデータ提供手段が、前記デバイスより送信される前記デバイス識別データに基づいた当該デバイスの正当性の検証に成功した場合に、
前記第1の秘密鍵及び前記第1の公開鍵の生成と、
前記証跡登録手段による前記第1の公開鍵の前記ブロックチェーンへの登録による前記第1の証跡の取得と、
前記第1の秘密鍵と、前記第1の証跡と、を含み、前記初回用公開鍵によって暗号化された初回用データの当該デバイスへの送信と、を行い、
前記プロビジョニング実行手段が、前記初回用秘密鍵を用いた前記初回用データの復号と、前記第1の秘密鍵の前記セキュア領域への格納と、前記第1の証跡の前記通常領域への格納と、を行うことを特徴とする。
このように、デバイス識別データの正当性の検証に基づいて、初期状態であるデバイスに対してプロビジョニングデータの提供を行うことにより、システムへのデバイスの登録を安全に行うことができる。
本発明の好ましい形態では、デバイスプロビジョニングシステムが、前記ブロックチェーンにおける前記第1の証跡及び前記第1の公開鍵の無効化を行う証跡無効化手段を更に備え、
新たな初回用秘密鍵と、前記新たな初回用秘密鍵に対応する新たな初回用公開鍵を含む新たなデバイス識別データと、を前記デバイスへと送信する、再初期化指示手段を更に備え、
前記デバイスが、前記新たな初回用秘密鍵の前記セキュア領域への格納と、前記第1の秘密鍵の前記セキュア領域からの抹消と、前記新たなデバイス識別データの前記通常領域への格納と、前記第1の証跡の前記通常領域からの抹消と、前記証跡無効化手段への前記ブロックチェーンにおける前記第1の証跡及び前記第1の公開鍵の無効化の依頼と、を行う、再初期化手段を更に備えることを特徴とする。
このように、ブロックチェーン上での証跡、公開鍵の無効化と、デバイス上からのデータの削除などを行うことにより、システムにおけるデバイスの無効化を確実なものとし、また、デバイスを初期状態へと戻すことができる。
新たな初回用秘密鍵と、前記新たな初回用秘密鍵に対応する新たな初回用公開鍵を含む新たなデバイス識別データと、を前記デバイスへと送信する、再初期化指示手段を更に備え、
前記デバイスが、前記新たな初回用秘密鍵の前記セキュア領域への格納と、前記第1の秘密鍵の前記セキュア領域からの抹消と、前記新たなデバイス識別データの前記通常領域への格納と、前記第1の証跡の前記通常領域からの抹消と、前記証跡無効化手段への前記ブロックチェーンにおける前記第1の証跡及び前記第1の公開鍵の無効化の依頼と、を行う、再初期化手段を更に備えることを特徴とする。
このように、ブロックチェーン上での証跡、公開鍵の無効化と、デバイス上からのデータの削除などを行うことにより、システムにおけるデバイスの無効化を確実なものとし、また、デバイスを初期状態へと戻すことができる。
本発明の好ましい形態では、前記プロビジョニングデータ提供手段が、
前記ブロックチェーンに登録された前記第1の証跡及び前記第1の公開鍵の更新の要否の確認を行い、前記第1の証跡及び前記第1の公開鍵の更新が必要だと判定された場合に、
新たな第1の秘密鍵及び新たな第1の公開鍵の生成と、
前記証跡登録手段による前記ブロックチェーンへの前記新たな第1の公開鍵の登録による新たな第1の証跡の取得と、を行い、
前記プロビジョニングデータに、前記新たな第1の秘密鍵及び前記新たな第1の証跡を含め、
前記プロビジョニング実行手段が、
前記新たな第1の秘密鍵の前記セキュア領域への格納と、
前記新たな第1の証跡の前記通常領域への格納と、
前記第1の秘密鍵の前記セキュア領域からの抹消と、
前記第1の証跡の前記通常領域からの抹消と、を行うことを特徴とする。
このように、必要に応じてデバイスごとに一意な鍵を再生成し、ブロックチェーンに格納するデータと、デバイスに格納するデータとの更新を行うことで、プロビジョニングに使用するデバイスごとの鍵の更新を行い、システムをセキュアな状態に保つことができる。
前記ブロックチェーンに登録された前記第1の証跡及び前記第1の公開鍵の更新の要否の確認を行い、前記第1の証跡及び前記第1の公開鍵の更新が必要だと判定された場合に、
新たな第1の秘密鍵及び新たな第1の公開鍵の生成と、
前記証跡登録手段による前記ブロックチェーンへの前記新たな第1の公開鍵の登録による新たな第1の証跡の取得と、を行い、
前記プロビジョニングデータに、前記新たな第1の秘密鍵及び前記新たな第1の証跡を含め、
前記プロビジョニング実行手段が、
前記新たな第1の秘密鍵の前記セキュア領域への格納と、
前記新たな第1の証跡の前記通常領域への格納と、
前記第1の秘密鍵の前記セキュア領域からの抹消と、
前記第1の証跡の前記通常領域からの抹消と、を行うことを特徴とする。
このように、必要に応じてデバイスごとに一意な鍵を再生成し、ブロックチェーンに格納するデータと、デバイスに格納するデータとの更新を行うことで、プロビジョニングに使用するデバイスごとの鍵の更新を行い、システムをセキュアな状態に保つことができる。
本発明の好ましい形態では、前記プロビジョニングデータが、前記デバイス上で動作するプログラムファイルを含むことを特徴とする。
このように、プロビジョニングデータにプログラムファイルを含めることによって、デバイスに対して期待する動作をさせることが可能となる。
このように、プロビジョニングデータにプログラムファイルを含めることによって、デバイスに対して期待する動作をさせることが可能となる。
本発明の好ましい形態では、前記プログラムファイルが前記デバイスの起動プログラムファイルであり、
プロビジョニング実行手段が、前記デバイスの起動時に前記プロビジョニングデータの取得を行うことを特徴とする。
このように、デバイスの起動時に起動プログラムファイルの配布を行うことによって、デバイスを正常な状態で起動することができる。
プロビジョニング実行手段が、前記デバイスの起動時に前記プロビジョニングデータの取得を行うことを特徴とする。
このように、デバイスの起動時に起動プログラムファイルの配布を行うことによって、デバイスを正常な状態で起動することができる。
本発明の好ましい形態では、前記ブロックチェーンが、更に、第2の証跡と第2の公開鍵を紐づけて記憶し、
前記プロビジョニングデータ提供手段が、前記プロビジョニングデータに前記第2の公開鍵に対応する第2の秘密鍵による電子署名を付した状態で前記暗号化を行い、
前記通常領域が、前記第2の証跡を更に格納し、
前記プロビジョニング実行手段が、前記公開鍵提供手段への前記第2の証跡を用いた問い合わせによる前記第2の公開鍵の取得と、前記第2の秘密鍵による電子署名の前記第2の公開鍵を用いた検証と、を行うことを特徴とする。
このように、電子署名によってプロビジョニングデータの正当性の担保を行うことにより、デバイスに対する不正なプロビジョニングデータの提供を防ぐことができる。
前記プロビジョニングデータ提供手段が、前記プロビジョニングデータに前記第2の公開鍵に対応する第2の秘密鍵による電子署名を付した状態で前記暗号化を行い、
前記通常領域が、前記第2の証跡を更に格納し、
前記プロビジョニング実行手段が、前記公開鍵提供手段への前記第2の証跡を用いた問い合わせによる前記第2の公開鍵の取得と、前記第2の秘密鍵による電子署名の前記第2の公開鍵を用いた検証と、を行うことを特徴とする。
このように、電子署名によってプロビジョニングデータの正当性の担保を行うことにより、デバイスに対する不正なプロビジョニングデータの提供を防ぐことができる。
本発明の好ましい形態では、デバイスプロビジョニングシステムが、前記公開鍵提供手段を有するデバイス認証サーバと、
前記プロビジョニングデータ提供手段を有するプロビジョニングサーバと、を備えることを特徴とする。
このように、デバイス認証サーバと、プロビジョニングサーバとを備える構成とすることによって、プロビジョニングの対象とするデバイスごとや、デバイスを製造するベンダごとといった態様でプロビジョニングサーバを用意し、様々なデバイスのプロビジョニング処理を行うことができる。
前記プロビジョニングデータ提供手段を有するプロビジョニングサーバと、を備えることを特徴とする。
このように、デバイス認証サーバと、プロビジョニングサーバとを備える構成とすることによって、プロビジョニングの対象とするデバイスごとや、デバイスを製造するベンダごとといった態様でプロビジョニングサーバを用意し、様々なデバイスのプロビジョニング処理を行うことができる。
本発明に係るプロビジョニング方法は、
デバイスのプロビジョニングを行うためのプロビジョニングデータをデバイスへ提供し、前記デバイス上での前記プロビジョニングデータの展開を行う、プロビジョニング方法であって、
前記デバイスが、
前記デバイスごとに一意である第1の公開鍵に対応する、第1の秘密鍵を格納するセキュア領域と、
前記第1の公開鍵と紐づけられた状態でブロックチェーンに格納される、前記デバイスごとに一意である第1の証跡を格納する通常領域と、を含む記憶部を備えるものであって、
前記デバイスからの前記第1の証跡を用いた問い合わせに基づいて、前記ブロックチェーンより前記第1の公開鍵を取得するステップと、
前記第1の公開鍵によって前記プロビジョニングデータを暗号化し、前記デバイスに送信するステップと、
前記デバイスが、前記プロビジョニングデータを前記第1の秘密鍵を用いて復号するステップと、を備えることを特徴とする。
デバイスのプロビジョニングを行うためのプロビジョニングデータをデバイスへ提供し、前記デバイス上での前記プロビジョニングデータの展開を行う、プロビジョニング方法であって、
前記デバイスが、
前記デバイスごとに一意である第1の公開鍵に対応する、第1の秘密鍵を格納するセキュア領域と、
前記第1の公開鍵と紐づけられた状態でブロックチェーンに格納される、前記デバイスごとに一意である第1の証跡を格納する通常領域と、を含む記憶部を備えるものであって、
前記デバイスからの前記第1の証跡を用いた問い合わせに基づいて、前記ブロックチェーンより前記第1の公開鍵を取得するステップと、
前記第1の公開鍵によって前記プロビジョニングデータを暗号化し、前記デバイスに送信するステップと、
前記デバイスが、前記プロビジョニングデータを前記第1の秘密鍵を用いて復号するステップと、を備えることを特徴とする。
プロビジョニングデータが第三者に不正に取得されるような可能性を排除し、高いセキュリティを保ってデバイスのプロビジョニングを行うことができ、また、デバイスごとに一意な公開鍵をブロックチェーンへ格納し、デバイスを管理することで、管理外の不正なデバイスのシステムへの混入を防ぐことができる、デバイスプロビジョニングシステムを提供することができる。
以下、本発明の一実施形態について、図面を参照して詳細に説明する。図1は、本実施形態に係るデバイスプロビジョニングシステムの構成を示す図である。ここに示すように、本実施形態に係るデバイスプロビジョニングシステムは、デバイス認証サーバ1と、ブロックチェーン2と、3a、3bを含むプロビジョニングサーバ3(以下、特に区別の必要がない場合、単にプロビジョニングサーバ3と呼称する)と、4a1、4a2、4a3、4b1、4b2、4b3を含むデバイス4(以下、特に区別の必要がない場合、単にデバイス4と呼称する)を備えるものである。
デバイス認証サーバ1は、ブロックチェーン2、プロビジョニングサーバ3とインターネットなどのネットワークNWを介して通信可能に構成される。また、プロビジョニングサーバ3aはデバイス4a1、4a2、4a3とネットワークNWaを介して、プロビジョニングサーバ3bはデバイス4b1、4b2、4b3とネットワークNWを介して、それぞれ通信可能に構成される。ここでのネットワークNWaとしては、例えば、インターネットから独立したLAN(Local Area Network)や、ZigBee(登録商標)のような、近距離無線通信規格によって構成されるネットワークなどを採用することができる。また、デバイス4b1、4b2、4b3のネットワークNWへの接続については、3Gや4Gといったような移動体通信網を介し、行われるような構成とすることができる。
ここで、プロビジョニングサーバ3a、デバイス4a1、4a2、4a3を囲む枠組みは、これらの装置を特定の企業や団体などの組織(ここでは、「エンタープライズ」と呼称する)が管理する領域を示すものである。プロビジョニングサーバ3b、デバイス4b1、4b2、4b3についても同様であり、また、図示しない他のプロビジョニングサーバ3やデバイス4を管理する他のエンタープライズが更に存在するような構成としてよい。このように、エンタープライズごとにプロビジョニングサーバ3、デバイス4を設けるような構成とすることにより、各エンタープライズの業務内容などに特化したデバイス4を、本実施形態に係るデバイスプロビジョニングシステムの管理下に置くことができる。
なお、ブロックチェーン2は元来、仮想通貨であるビットコインにおいて分散型台帳として利用されるものであり、多数のノードによって構成されるものであるが、ここでは説明の簡単のために、図1に示すように、単一の構成要素として示す。
ブロックチェーン2は、ブロックと呼ばれるデータの連鎖によって構成されるものであり、各ブロックはその前のブロックのハッシュ値の情報を含むものであるため、何れかのブロックの改ざんが行われた場合には、連鎖関係に不整合が生じる。また、多数のノードによって構成される分散型のシステムであることからも、単一のノードの操作などによって、そのような不正な改ざん処理や、ブロックの削除などを行うことができないという特性を有する。なお、本明細書においては、デバイス4に関する情報やデバイス4ごとに一意な公開鍵(デバイス公開鍵)などのデータの登録によって生成されたブロックを、証跡と呼称する。
なお、ここでの公開鍵とは、秘密鍵とペアで公開鍵暗号方式に用いられるものである。これは、秘密鍵によって暗号化されたデータは対応する公開鍵によってのみ復号することができ、逆に公開鍵によって暗号化されたデータは対応する秘密鍵によってのみ復号することができる、というものである。
本実施形態に係るデバイスプロビジョニングシステムにおいては、大別すると3種類の秘密鍵、公開鍵、及び公開鍵のブロックチェーン2上への登録によって得られる証跡の組を利用する。1つ目は、上述したデバイス公開鍵とそれに対応するデバイス秘密鍵、及びデバイス公開鍵のブロックチェーン2への登録によって得られるデバイス証跡であり、これらは、各々のデバイス4に対して一意なものである。2つ目は、デバイス4の開発チームや開発プロジェクトといった単位ごとに一意に用意される、開発秘密鍵、開発公開鍵、開発証跡である。これはすなわち、デバイス4の製品種別ごと、といった単位で一意になるものである。そして、3つ目は、デバイス4の製造を行うベンダなどの組織ごとに一意に用意される、組織秘密鍵、組織公開鍵、組織証跡である。このように、同一の組織に属する開発チームや開発プロジェクトにおいて同一の組織秘密鍵、組織公開鍵、組織証跡を、同一の開発チームや開発プロジェクトに属するデバイス4において同一の開発秘密鍵、開発公開鍵、開発証跡を、そして、デバイス秘密鍵、デバイス公開鍵、デバイス証跡については、デバイス4ごとに一意なものをそれぞれ利用する、といったように、これらの鍵や証跡には、上下関係があるものといえる。
なお、本実施形態においては、後述する各処理において必要となるため、上述したような組織ごと、開発チームや開発プロジェクトごと、デバイス4ごとの、3階層の秘密鍵、公開鍵、証跡を用いる構成を示したが、本発明はこれに限るものではない。必要に応じて、より多くの、あるいは少ない種別の秘密鍵、公開鍵、証跡を用いるような構成としてもよい。また、例えば、同一の開発チームや開発プロジェクトによって扱われる同一の製品種別であるデバイス4に対して、使用される地域ごとに異なる開発秘密鍵、開発公開鍵、開発証跡を用いるといったように、本実施形態において例示する3階層の秘密鍵、公開鍵、証跡を用いながら、より詳細に使い分けることで、セキュリティを高めるような構成としてもよい。
また、本実施形態においては、組織公開鍵のブロックチェーン2への登録による組織証跡の取得、開発公開鍵のブロックチェーン2への登録による開発証跡の取得については、予め完了しているものとする。これには、プロビジョニングサーバ3、あるいは図示しない他のコンピュータ装置の操作などに基づいて、予め、ブロックチェーン2へのそれぞれの公開鍵の登録による証跡の取得を行っておけばよい。
そして、組織秘密鍵、組織証跡、開発秘密鍵、開発証跡は、任意の方法により、予め必要な個所に配備されるものである。それぞれの使用については後述する各処理の説明において詳細に述べるが、プロビジョニングサーバ3には組織証跡、組織秘密鍵、開発証跡、開発秘密鍵が、生産拠点システム5には、組織秘密鍵が、それぞれ配備される。そして、各処理において必要となる公開鍵の取得は、後述するような、証跡を用いたデバイス認証サーバ1への問い合わせによって行われる。ただし、生産拠点システム5については、ネットワークNWと隔絶された環境とするために、開発公開鍵についても予め生産拠点システム5に配備されることが好ましい。なお、それぞれの秘密鍵、証跡の配備はそれらを管理する組織、開発チームや開発プロジェクトの管理者等により、任意の方法によって配備されればよいが、特に、秘密鍵の配備に際しては、流出等のリスクを考慮し、物理記憶媒体による移動などのセキュアな手段によって行われる必要がある。また、それぞれの証跡や秘密鍵、公開鍵については、それらを管理する組織や開発チーム等により、定期的な更新等、適切な管理が行われることが好ましい。
また、更に、デバイス認証サーバ1が使用する秘密鍵、公開鍵を別途用意し、上述したような証跡の配布に際して、この秘密鍵による電子署名を付与する、あるいは証跡に含めるような構成としてもよい。このような構成とすれば、証跡を用いた公開鍵の取得要求をデバイス認証サーバ1が受信した際に、その証跡が自身で発行した正規のものであるか、公開鍵を用いた電子署名の検証によって確認することができる。
本実施形態に係るプロビジョニングシステムにおいては、デバイス4のプロビジョニングなどの処理に際して使用する公開鍵の信頼性の担保を、ブロックチェーン2を利用して行うものである。これはすなわち、上述したような、不正な改ざん処理や、ブロックの削除などを行うことができないというブロックチェーン2の特性を利用し、後述するようなデバイス認証サーバ1による正当な処理によってのみブロックチェーン2上への公開鍵の登録、証跡の生成を可能とすることにより、ブロックチェーン2上に有効な状態で存在する公開鍵が、不正な改ざん処理などを受けていない正当なものであるということを担保することができる、というものである。
なお、本実施形態においては、ブロックチェーン2上に公開鍵等を登録し、証跡を得る構成を示したが、本発明はこれに限るものではない。例えば、ブロックチェーン2上への、デバイスに関する情報や開発チームに関する情報、組織に関する情報といったような情報の登録によって証跡の取得を行い、公開鍵自体については、別途セキュアに管理されるデータベースなどを用意し、証跡と紐づけて管理する、といった構成としてもよい。
図2は、各エンタープライズのデバイス4の生産拠点のシステム構成を示す図である。図2(a)は、デバイス4a1、4a2、4a3の管理を行うエンタープライズの生産拠点を示すものであり、ここでは、生産拠点システム5aによってデバイス4a1、4a2、4a3へとデータの書き込みなどが行われる。また、図2(b)は、デバイス4b1、4b2、4b3の管理を行うエンタープライズの生産拠点を示すものであり、ここでは、生産拠点システム5bとデバイス4b1、4b2、4b3が、生産拠点内におけるLANなどのネットワークNWbを介して接続され、データの書き込みなどが行われる。各エンタープライズの生産拠点内におけるシステム構成は、後に詳細に説明するような、生産拠点システム5によるデバイス4への必要なデータの書き込みが可能であれば、任意のものであってよい。
<各部の構成>
図3は、デバイス4の機能ブロック図である。ここに示すように、デバイス4は、自身が初期状態であるか否かを判定する初期プロビジョニング確認手段41と、プロビジョニングサーバ3からのプロビジョニングデータの取得や、取得したプロビジョニングデータの展開などを行うプロビジョニング実行手段42と、デバイス4の起動時における種々の処理を行うシステム起動手段43と、自身を初期状態へと戻すために再初期化処理を行う再初期化手段44と、記憶部45と、を備える。
図3は、デバイス4の機能ブロック図である。ここに示すように、デバイス4は、自身が初期状態であるか否かを判定する初期プロビジョニング確認手段41と、プロビジョニングサーバ3からのプロビジョニングデータの取得や、取得したプロビジョニングデータの展開などを行うプロビジョニング実行手段42と、デバイス4の起動時における種々の処理を行うシステム起動手段43と、自身を初期状態へと戻すために再初期化処理を行う再初期化手段44と、記憶部45と、を備える。
ここで、記憶部45は、セキュア領域45aと通常領域45bとを含むものである。セキュア領域45aは、通常領域45bとは扱いが異なる領域であり、初期プロビジョニング確認手段41やプロビジョニング実行手段42などによってのみアクセスが可能なものである。
デバイス4としては、CPU(Central Processing Unit)などの演算装置、RAM(Random Access Memory)などの主記憶装置、HDD(Hard Disk Drive)やSSD(Solid State Drive)、フラッシュメモリなどの補助記憶装置、ネットワークへの接続手段を含む種々の入出力装置等を備えた、一般的なコンピュータ装置を利用することができる。なお、演算装置や主記憶装置、補助記憶装置などを単一のチップとして実装した、SoC(System on a Chip)を備えるような構成であってもよい。より詳細には、製造時などに、補助記憶装置に上述したような各手段としてデバイス4を動作させるためのプログラムを格納しておき、それらのプログラムを主記憶装置上に展開して演算装置による演算を行い、入出力手段の制御などを行うことで、コンピュータ装置を本実施形態に係るデバイスプロビジョニングシステムにおけるデバイス4として利用することができる。このようなコンピュータ装置として、例えば、監視カメラや車載機器のような、いわゆるIoTデバイスなどであってもよいし、パーソナルコンピュータやスマートフォンなどのような端末であってもよい。
なお、セキュア領域45aは、例えば、TPM(Trasted Platform Module)のような、専用のハードウェアを利用するような構成であってもよいし、補助記憶装置上の一部の領域を物理的に、あるいは論理的に切り離し、それを利用するような構成であってもよい。すなわち、上述したように、初期プロビジョニング確認手段41やプロビジョニング実行手段42などによってのみアクセスが可能な構成とすることができればよい。また、セキュア領域45aに対する読み出しや書き込みなどのアクセスに際しては、常にログが取得され、管理されるような構成とすることが好ましい。
図29は、デバイス4の論理的な構成の概略を示す図である。ここに示すように、デバイス4では、CPUやRAMなどのハードウェア資源を利用して、OS(Operating System)が動作する。そして、OS上で、設定情報やアプリケーションデータを利用するアプリケーションプログラムが動作する。ここで、初期プロビジョニング確認手段41、プロビジョニング実行手段42、再初期化手段44等を含むプロビジョニング処理部は、OSを介さずにハードウェア資源を利用して、独立した動作を行えるよう構成されるものである。プロビジョニング処理部は、プロビジョニング対象として図中に破線で示す、OSやアプリケーションプログラム、設定情報などを含むプロビジョニングデータをプロビジョニングサーバ3より受信し、展開する。なお、ここで、プロビジョニング処理部自体を破線の内側に示している通り、プロビジョニング処理部自体についてもプロビジョニング処理の対象とするような構成としてよい。
また、デバイス4上では、例えば、Windows(登録商標)やLinux(登録商標)、組み込み機器に利用されるようなRTOSなど、任意のOSが動作する。このようなOSは、予めデバイス4の補助記憶装置上に配されるような構成としてもよいし、後述するようなデバイス4のプロビジョニング処理において、起動プログラムとしてプロビジョニングサーバ3からの提供を受けるような構成としてもよい。
図4は、プロビジョニングサーバ3の機能ブロック図である。ここに示すように、プロビジョニングサーバ3は、プロビジョニングデータの生成やデバイス4への提供などを行うプロビジョニングデータ提供手段31と、デバイス4の再初期化処理を行うためのライブラリであるデバイス初期化ライブラリ32と、デバイス4の起動時に実行されるプログラムである起動プログラムを記憶する起動プログラム記憶部33と、エンタープライズによって管理されるデバイス4についての情報を記憶するデバイス情報記憶部34と、を備える。デバイス初期化ライブラリ32は、デバイス4の再初期化処理に際して、後述するデバイス識別データの提供を行うデバイス識別データ提供手段32aと、同じく後述するアクティベート鍵の提供を行うアクティベート鍵提供手段32bと、を有する。
なお、ここでの起動プログラムとは、図29中にプロビジョニング対象として示したように、デバイス4上で稼働するOSそのものを含むようなプログラムファイルであってもよいし、OS上で稼働するアプリケーションプログラムやその設定情報などのリソースを含むものであってもよい。また、デバイス4の補助記憶装置上に予め格納されるOSを呼び出すためのプログラムなどであってもよい。
プロビジョニングサーバ3としては、CPUなどの演算装置、RAMなどの主記憶装置、HDDやSSD、フラッシュメモリなどの補助記憶装置、ネットワークNWへの接続手段を含む種々の入出力装置等を備えた、一般的なコンピュータ装置を利用することができる。より詳細には、補助記憶装置に予め、あるいはプロビジョニングサーバ3の管理者の操作などによって、上述したような各手段としてプロビジョニングサーバ3を動作させるためのプログラムを格納しておき、それらのプログラムを主記憶装置上に展開して演算装置による演算を行い、入出力手段の制御などを行うことで、コンピュータ装置を本実施形態に係るデバイスプロビジョニングシステムにおけるプロビジョニングサーバ3として利用することができる。なお、本実施形態においては、単一のコンピュータ装置によってプロビジョニングサーバ3を実現する構成を示したが、本発明はこれに限るものではない。例えば、各記憶部を別のコンピュータ装置に備えるような構成など、複数のコンピュータ装置によってプロビジョニングサーバ3を実現するような構成としてもよい。
図5は、生産拠点システム5の機能ブロック図である。ここに示すように、生産拠点システム5は、デバイス4の製造時における初期化処理を行うためのライブラリであるデバイス初期化ライブラリ51と、生産拠点において初期化処理を行ったデバイス4に関する情報を記憶するデバイス情報記憶部52と、を備える。デバイス初期化ライブラリ51は、デバイス4の初期化処理に際してデバイス識別データの提供を行うデバイス識別データ提供手段51aと、アクティベート鍵の提供を行うアクティベート鍵提供手段51bと、を有する。なお、生産拠点システム5の備えるデバイス初期化ライブラリ51は、プロビジョニングサーバ3の備えるデバイス初期化ライブラリ32と同様のものでよい。
生産拠点システム5は、デバイス4の製造設備により実現することができる。これは例えば、デバイス4へのデータの書き込みなどを行う専用の装置などにデバイス初期化ライブラリ51やデバイス情報記憶部52を付加する構成としてもよいし、上述したような専用の装置を介して、あるいは、直接的にデバイス4へのデータの書き込みを行うための、デバイス初期化ライブラリ51やデバイス情報記憶部52を備えるコンピュータ装置を設けるような構成としてもよい。
図6は、デバイス認証サーバ1の機能ブロック図である。ここに示すように、デバイス認証サーバ1は、ブロックチェーン2への証跡の登録を行う証跡登録手段11と、ブロックチェーン2上の証跡の無効化を行う証跡無効化手段12と、ブロックチェーン2上の公開鍵のプロビジョニングサーバ3などへの提供を行う公開鍵提供手段13と、を備える。
デバイス認証サーバ1としても、CPUなどの演算装置、RAMなどの主記憶装置、HDDやSSD、フラッシュメモリなどの補助記憶装置、ネットワークNWへの接続手段を含む種々の入出力装置等を備えた、一般的なコンピュータ装置を利用することができる。より詳細には、補助記憶装置に予め、あるいはデバイス認証サーバ1の管理者の操作などによって、上述したような各手段としてデバイス認証サーバ1を動作させるためのプログラムを格納しておき、それらのプログラムを主記憶装置上に展開して演算装置による演算を行い、入出力手段の制御などを行うことで、コンピュータ装置を本実施形態に係るデバイスプロビジョニングシステムにおけるデバイス認証サーバ1として利用することができる。なお、本実施形態においては、単一のコンピュータ装置によってデバイス認証サーバ1を実現する構成を示したが、本発明はこれに限るものではない。例えば、各記憶部を別のコンピュータ装置に備えるような構成など、複数のコンピュータ装置によってデバイス認証サーバ1を実現するような構成としてもよい。あるいは、プロビジョニングサーバ3の備える手段や記憶部をデバイス認証サーバ1が備えるような構成として、プロビジョニングサーバ3とデバイス認証サーバ1とを単一のコンピュータ装置としてもよい。
<デバイス製造時の処理>
図12は、生産拠点システム5による、デバイス4の製造時の初期化処理の流れを示すフローチャートである。初期化処理においては、まず、ステップS101において、開発公開鍵の取得処理が行われる。ここで、開発公開鍵は、上述したように、任意の方法による生産拠点システム5への配備が予めなされているものである。
図12は、生産拠点システム5による、デバイス4の製造時の初期化処理の流れを示すフローチャートである。初期化処理においては、まず、ステップS101において、開発公開鍵の取得処理が行われる。ここで、開発公開鍵は、上述したように、任意の方法による生産拠点システム5への配備が予めなされているものである。
続くステップS102では、アクティベート鍵提供手段51bによるアクティベート鍵ペアの生成処理を行う。ここでのアクティベート鍵ペアとは、後述するデバイス4の初期プロビジョニング処理において利用するアクティベート秘密鍵とそれに対応するアクティベート公開鍵のペアであり、これはデバイス4ごとに一意となるよう生成される。
ステップS103では、初期プロビジョニング処理においてデバイス4を識別するためのデバイス識別データの生成を行う。これは、ステップS102において生成したアクティベート公開鍵に対し、組織秘密鍵による電子署名を付与し、それらを開発公開鍵によって暗号化したものである。ここで、組織秘密鍵は、上述したように、任意の方法による生産拠点システム5への配備が予めなされているものである。
ステップS104では、ステップS102で生成したアクティベート秘密鍵と、ステップS103で生成したデバイス識別データのデバイス4への書き込みを行う。ここで書き込むデータを、製造時書き込みデータDMとして図9に示す。これは、先に説明したように、アクティベート公開鍵UAに組織秘密鍵による電子署名SOを付与し、それを開発公開鍵によって暗号化したデバイス識別データIDと、アクティベート秘密鍵RAを含むものである。この内、デバイス識別データIDを記憶部45の備える通常領域45bに、アクティベート秘密鍵RAを記憶部45の備えるセキュア領域45aに、それぞれ書き込む。
そして、ステップS105において、ステップS102で生成したアクティベート公開鍵UAを、初期化処理を行ったデバイス4についての情報として、デバイス情報記憶部52へと記録する。ここで、更に、デバイス4を一意に識別するための情報として、例えば、ネットワークインタフェースの持つMACアドレスや、デバイス4のシリアル番号などを、共に記録するような構成としてもよい。このようにしてデバイス情報記憶部52へと記録されたデバイス4に関する情報は、後にデバイス4の初期プロビジョニング処理に使用するために、プロビジョニングサーバ3へと提供され、デバイス情報記憶部34に格納される。
以上の処理によって初期化処理が完了した後の記憶部45に含まれるデータの構造を、図7に示す。ここに示すように、セキュア領域45aには、アクティベート秘密鍵RAが、通常領域45bには、デバイス識別データIDが、それぞれ含まれる状態となる。なお、通常領域45bには、開発公開鍵と紐づく開発証跡EDと、組織公開鍵と紐づく組織証跡EOも含まれる。これらの証跡は、同一の組織における、同一の開発チーム等によって製造されるデバイス4については、すべて同一である。そのため、図12を参照して説明したデバイスの初期化処理の前、あるいは後に、生産拠点システム5によって製造されるすべてのデバイス4に対して書き込むような処理としてもよいし、ステップS104において、同時に書き込むような構成としてもよい。以上のような、生産拠点における初期化処理が完了した後に、デバイス4は出荷される。
<プロビジョニング処理>
図13は、デバイス4の起動時における処理の流れを示すフローチャートである。これは、電源、ネットワークケーブルなどの必要な接続といった作業が行われた後に、デバイス4の電源が投入された際に実行される処理である。
図13は、デバイス4の起動時における処理の流れを示すフローチャートである。これは、電源、ネットワークケーブルなどの必要な接続といった作業が行われた後に、デバイス4の電源が投入された際に実行される処理である。
まず、ステップS201において、デバイス4の起動確認が行われる。ここでは、デバイス4の機種ごとに必要な処理が行われる。例えば、デバイス4b1、4b2、4b3のようにインターネットなどのネットワークNWへと接続されるデバイス4であれば、DNS(Domain Name System)サーバへの接続やゲートウェイ情報の設定、IPアドレスの取得といった、ネットワーク接続に関する処理が挙げられる。また、デバイス4a1、4a2、4a3のように、ネットワークNWとは異なるネットワークへの接続がなされるデバイス4についても、接続するネットワークの種別に適したネットワーク接続設定などを行えばよい。また、デバイス4の利用(設置)場所の気温などについて、デバイス4が適切に動作するための条件を満たしているか、といった確認や、後述するプロビジョニング処理による解消が不可能であるデバイス4の構成上の不備(例えばハードウェア自体の欠損や故障等)の有無の確認など、デバイス4に合わせた処理を行うような構成とすればよい。なお、ここで起動確認に失敗した場合においては、例えばデバイス4の備えるスピーカからのビープ音の出力や、LED(Light Emitting Diode)による表示などにより、デバイス4の起動確認に失敗したことを通知し、デバイスの起動処理を終了することが好ましい。
ステップS201における起動確認が正常に完了した後には、ステップS202において、デバイス4が初期状態であるか否かの判定が行われる。ここでの判定は、記憶部45に格納されるデータの状況を確認することによって行うことができる。すなわち、デバイスの初期状態においては、図7に示したように、セキュア領域45aにアクティベート秘密鍵RAが、通常領域45bにデバイス識別データIDがそれぞれ含まれる状態である。このような場合に、デバイス4が初期状態であると判定することができる。
ステップS202において、デバイス4が初期状態であると判定された場合には、ステップS203へと進み、デバイス4の初期プロビジョニング処理が行われる。図14は、初期プロビジョニング処理の流れを示すフローチャートである。
まず、ステップS301において、通常領域45bに格納されるデバイス識別データIDをプロビジョニングサーバ3へと送信し、初期プロビジョニングデータの提供を依頼する。そして、ステップS302でプロビジョニングサーバ3はそれを受信し、デバイス4への初期プロビジョニングデータの提供に係る処理を開始する。
ステップS303では、プロビジョニングサーバ3による、デバイス4より受信したデバイス識別データIDの検証処理が行われる。ここでの検証は、デバイス識別データIDに含まれるアクティベート公開鍵UAが、デバイス情報記憶部34に格納されているか否かの確認によって行うことができる。すなわち、上述したように予めプロビジョニングサーバ3に配備された開発秘密鍵と組織証跡を用いて、開発秘密鍵によるデバイス識別データIDの復号、組織証跡による公開鍵提供手段13への問い合わせによる組織公開鍵の取得、組織公開鍵を用いた、組織秘密鍵による電子署名SOの検証を行い、復号、正当性の検証が完了したアクティベート公開鍵UAが、デバイス情報記憶部34に格納されるものであるか、確認する。
ここで、デバイス情報記憶部34には、生産拠点におけるデバイス4の初期化処理時にデバイス情報記憶部52へと記録されたアクティベート公開鍵UAが格納されているため、デバイス識別データIDから取り出したアクティベート公開鍵UAと同一のものがデバイス情報記憶部34に格納されていることをもって、デバイス4が生産拠点システム5によって初期化された正当なものであることが担保できる。なお、デバイス4の初期化処理時に、アクティベート公開鍵UAの他に、更に、デバイス4を一意に識別するための情報が共に記録される場合には、デバイス識別データIDと共にそれに対応する情報を送信し、ステップS303においてそれらの情報を用いた検証を併せて行うことができ、デバイスの正当性の担保をより強固なものとすることができる。
ステップS303におけるデバイス識別データの検証が成功し、デバイス4が正当なものであると判定された場合には、ステップS304からステップS305へと進み、初期プロビジョニングデータの生成処理が行われる。
図15は、プロビジョニングデータ提供手段31による初期プロビジョニングデータの生成処理の流れを示すフローチャートである。まず、ステップS401においては、デバイス認証サーバ1によるブロックチェーン2へのデバイス証跡の登録処理が行われる。ここで、デバイス証跡とは、先に述べたようにそれぞれのデバイス4ごとに一意なものであり、同じくデバイス4ごとに一意であるデバイス秘密鍵、デバイス公開鍵と対応するものである。図16に、デバイス証跡の登録処理の流れを示す。
デバイス証跡の登録処理においては、まず、ステップS501で、プロビジョニングサーバ3により、デバイス秘密鍵とそれに対応するデバイス公開鍵のペアを生成する。そして、ステップS502で、デバイス公開鍵のブロックチェーン2への登録をデバイス認証サーバ1へと要求する。
そして、ステップS504で、証跡登録手段11によるデバイス公開鍵のブロックチェーン2への登録によってデバイス証跡が取得され、ステップS504で、それがプロビジョニングサーバ3へと返却される。ステップS505でプロビジョニングサーバ3はデバイス証跡を受領し、ステップS501で生成したデバイス秘密鍵と、デバイス証跡とを得ることになる。
以上のような処理によってデバイス証跡の登録を完了した後、ステップS402で、セキュア領域45aに格納するデータを初期プロビジョニングデータへと追加する。図10に、初期プロビジョニングデータPIの構造を示す。ここに示すように、セキュア領域45aへと格納するデータは、ステップS401で得たデバイス秘密鍵R1であるため、それを初期プロビジョニングデータへと追加する。
続くステップS403では、通常領域45bに格納するデータを初期プロビジョニングデータへと追加する。ここでは、図10に示すように、ステップS401で得たデバイス証跡E1を、通常領域に格納するデータとして初期プロビジョニングデータへと追加する。
そして、ステップS404においては、プロビジョニングサーバ3の所持する開発秘密鍵による電子署名SDの付与を行う。これは、例えば、ここまでに初期プロビジョニングデータへと追加したデータのハッシュ値を算出し、それに対して、開発秘密鍵による暗号化を行う、といった処理によって行えばよい。なお、先に述べたように、開発秘密鍵はプロビジョニングサーバ3に予め配備されるものである。
その後、ステップS405において、ここまでに初期プロビジョニングデータに追加したデバイス秘密鍵R1、デバイス証跡E1、開発秘密鍵による電子署名SDを、デバイス識別データIDより取り出したアクティベート公開鍵によって暗号化し、初期プロビジョニングデータの生成が完了する。
このように、アクティベート公開鍵によって暗号化することにより、それに対応するアクティベート秘密鍵を所持するデバイス4、すなわち、プロビジョニングサーバ3へとデバイス識別データIDを送信し、初期プロビジョニングデータの提供を依頼したデバイス4においてのみ、初期プロビジョニングデータを展開可能な構成とすることができる。
以上のようにしてステップS305における初期プロビジョニングデータの生成処理が完了した後には、ステップS306でそれをプロビジョニングサーバ3よりデバイス4へと送信する。そして、ステップS307で、初期プロビジョニングデータの受信と展開処理を行う。
なお、ここで送信される初期プロビジョニングデータは、先に述べたように、デバイスごとに一意であるアクティベート公開鍵によって暗号化されたものである。すなわち、それに対応するアクティベート秘密鍵を保持するデバイス4以外に不正に取得された場合においても、復号を行うことはできないといえる。そのため、ここでのプロビジョニングサーバ3からデバイス4への初期プロビジョニングデータの送信に際しては、HTTPS(HyperText Transfer Protocol Secure)のような、セキュリティを確保するために処理コストを要する通信プロトコルでなく、通常のHTTP(HyperText Transfer Protocol)などの、比較的軽量な通信プロトコルを用いることができる。
図17に、デバイス4による初期プロビジョニングデータの展開処理の流れを示す。まず、ステップS601において、アクティベート秘密鍵による初期プロビジョニングデータの復号が行われる。
続くステップS602では、開発秘密鍵による電子署名SDの検証処理が行われる。図18に、デバイス4による電子署名の検証処理の流れを示す。まず、ステップS701において、電子署名の検証に必要となる公開鍵のプロビジョニングサーバ3への要求が、それに対応する証跡を送信することによって行われる。ここでは、開発秘密鍵による電子署名SDの検証を目的としており、それに必要となるのは開発公開鍵であるため、通常領域45bに格納される開発証跡EDが送信される。
ステップS701でデバイス4よりプロビジョニングサーバ3へと送信された開発公開鍵の取得の要求は、ステップS702で、プロビジョニングサーバ3から公開鍵提供手段13へと送信される。公開鍵提供手段13は、ステップS703において、ブロックチェーン2を参照し、受信した開発証跡に紐づいてブロックチェーン2上に登録される開発公開鍵の取得を行う。
ステップS703においてブロックチェーン2より取得された開発公開鍵は、ステップS704でプロビジョニングサーバ3へと返却され、更に、ステップS705において、プロビジョニングサーバ3からデバイス4へと返却される。デバイス4は、ステップS706でそれを受領する。
ステップS707では、ステップS706で受領した開発公開鍵を用いて、開発秘密鍵による電子署名SDの復号を行う。ここで、先に述べたように、開発秘密鍵による電子署名SDは、初期プロビジョニングデータPIに含まれるデバイス秘密鍵R1、デバイス証跡E1のハッシュ値を開発秘密鍵によって暗号化したものである。そのため、それらのデータのハッシュ値の算出を行い、その結果と開発秘密鍵による電子署名SDの復号結果が一致すれば、初期プロビジョニングデータPIの不正な改ざん等は行われていないと判断することができる。
本実施形態に係るデバイスプロビジョニングシステムにおいては、上述したように、ブロックチェーン2上に証跡が登録されていることをもって、それに対応する公開鍵の信頼性の担保を行うものである。そのため、従来の電子証明書による公開鍵の正当性の担保が行われる場合のように、電子証明書の発行者の確認、発行者の公開鍵の取得、電子証明書に含まれる発行者による電子署名の検証、といった煩雑な処理をデバイス4上で行わずとも、証跡を用いた問い合わせにより、正当性の担保された公開鍵を得ることができる。
そして、このように、開発秘密鍵による電子署名を初期プロビジョニングデータへ付与し、デバイス4において電子署名の検証を行うことにより、仮にプロビジョニングサーバ3を装った不正なサーバからデバイス4に対して不正なプロビジョニングデータが提供された場合にも、それを判別することができる。
以上のような処理によってステップS602における開発公開鍵による電子署名の検証を行い、検証が成功した場合には、ステップS603からステップS604へと進み、セキュア領域45aへのデータの格納を行う。ここでは、初期プロビジョニングデータPIに、セキュア領域45aに格納するデータとしてデバイス秘密鍵R1が含まれるので、これをセキュア領域45aへと格納する。
ステップS605では、セキュア領域45a上の旧データの抹消を行う。ここで、セキュア領域45aには、ステップS604において格納したデバイス秘密鍵R1よりも古いデータとして、先に図7に示した通りアクティベート秘密鍵RAが含まれる状態であるため、これを抹消する。なお、ここでは、ステップS604におけるデータの格納により不要となるデータの抹消を行えばよく、これは、事前に定義されるものであってもよいし、あるいは、初期プロビジョニングデータPIに抹消対象とするデータの指示を含めておくような構成としてもよい。
続くステップS606では、通常領域45bへのデータの格納を行う。ここでは、初期プロビジョニングデータPIに、通常領域45bに格納するデータとしてデバイス証跡E1が含まれるので、これを通常領域45bへと格納する。
そして、ステップS607では、通常領域45b上の旧データの抹消を行う。ここで、通常領域45bには、先に図7に示したようにデバイス識別データIDが含まれる状態であるため、これを抹消する。ここでも、ステップS605におけるセキュア領域45aからのデータの抹消と同様、ステップS606におけるデータの格納により不要となるデータを事前に定義するような構成であってもよいし、あるいは、初期プロビジョニングデータPIに抹消対象とするデータの指示を含めておくような構成としてもよい。
このようにして、デバイス4上での初期プロビジョニングデータPIの展開処理が完了した後には、記憶部45上のデータは、図8(a)に示すようになる。すなわち、セキュア領域45aには、初期プロビジョニングデータPIに含まれていたデバイス秘密鍵R1が、通常領域45bには、同じく初期プロビジョニングデータPIに含まれていたデバイス証跡E1、及び、デバイスの初期状態において含まれている開発証跡ED、組織証跡EOが含まれる状態となる。
なお、ステップS602における開発公開鍵を用いた電子署名の検証に失敗した場合には、初期プロビジョニングデータPIに不正な改ざんが行われた可能性や、他のデバイス4のための初期プロビジョニングデータPIの展開を試みている可能性があり、すなわち、初期プロビジョニング処理の対象とするデバイス4に対する正当な初期プロビジョニングデータPIでないデータが用いられようとしていると判断できる。そのため、電子署名の検証に失敗した場合には、ステップS603の後に処理を終了し、初期プロビジョニングデータPIの展開を中止する。
以上のようにして、ステップS307における初期プロビジョニングデータの展開処理が完了した後には、ステップS308で、初期プロビジョニング処理の終了通知を行う。これは、デバイス4よりプロビジョニングサーバ3に対し、デバイス4の初期プロビジョニングが正常に完了したこと、あるいは、何れかの処理において失敗した場合には、失敗した原因などの情報を送信するものである。ここで、このような情報を受信したプロビジョニングサーバ3は、それをデバイス認証サーバ1へと送信し、ブロックチェーン2への書き込みを行う。この際、デバイスの起動処理が行われた時刻や場所など、付加的な情報を共に扱うことが好ましい。
デバイス4の初期プロビジョニング処理において特に重要であるのは、デバイス4ごとに一意であるデバイス証跡のブロックチェーン2への登録を行うという点である。これはすなわち、本実施形態に係るデバイスプロビジョニングシステムにおけるデバイス4が、ブロックチェーン2に登録されて管理されるものであるといえる。これにより、いわゆる野良IoTデバイスのように、素性の不明なデバイスがシステム内に混入することを防ぎ、セキュアなシステムを構築することができるものである。
ここまでに説明したような処理により、ステップS203におけるデバイス4の初期プロビジョニング処理が完了した後には、ステップS204で、デバイス4の再起動が指示される。再起動後には、再びステップS201における起動確認処理が行われ、そして、ステップS202において、デバイス4が初期状態であるか否かの確認が行われる。
ここで、正常に初期プロビジョニング処理が完了している場合には、先に述べた通り、記憶部45上のデータ構造は図8(a)に示すようになっているはずである。そのため、ここで、セキュア領域45a中のデバイス秘密鍵R1の有無、通常領域45b中のデバイス証跡E1の有無などを確認し、それらのデータが存在するのであれば、デバイス4は初期状態ではないと判定され、ステップS205のプロビジョニング処理が実行される。
図19は、デバイス4のプロビジョニング処理の流れを示すフローチャートである。デバイス4のプロビジョニング処理においては、まず、ステップS801で、デバイス4よりプロビジョニングサーバ3へと、デバイス証跡を送信し、プロビジョニングデータの提供を依頼する。
ステップS802では、プロビジョニングデータ提供手段31による、デバイス4より受信したデバイス証跡に基づいた、プロビジョニングデータの生成処理が行われる。図20に、プロビジョニングデータの生成処理の流れを示す。
まず、ステップS901では、デバイス証跡の更新の有無の判定を行う。これは例えば、デバイス証跡に予め有効期限を定めておき、それに基づいて更新の有無を決定する、あるいは、プロビジョニングサーバ3の管理者の指示に基づいて更新の有無を決定するなど、任意のタイミングでデバイス証跡の更新を行うか否かを決定するような構成とすればよい。ここで、デバイス証跡に有効期限を定めることは、すなわち、それに対応するデバイス秘密鍵、デバイス公開鍵に有効期限を設けることとなる。
ステップS901において、デバイス証跡の更新を行うと判定された場合には、ステップS902へと進み、新たなデバイス証跡の登録処理が行われる。これは、先に図16を参照して説明した処理と同様の処理によって行うことができる。
続くステップS903では、セキュア領域45aに追加するデータの有無の確認を行い、それがある場合には、ステップS904で、プロビジョニングデータへの追加を行う。ここでのセキュア領域45aへの追加を行うデータとしては、例えば、ステップS902で生成した新たなデバイス秘密鍵が挙げられる。
ステップS905では、通常領域45bに追加するデータの有無の確認を行い、それがある場合には、ステップS906で、プロビジョニングデータへの追加を行う。ここでの通常領域45bへの追加を行うデータとしては、例えば、起動プログラム記憶部33に格納される、デバイス4に適した起動プログラムや、ステップS902で登録した新たなデバイス証跡が挙げられる。
そして、ステップS907においては、プロビジョニングサーバ3の所持する開発秘密鍵による電子署名SDの付与を行う。これは、例えば、ここまでにプロビジョニングデータへと追加したデータのハッシュ値を算出し、それに対して、開発秘密鍵による暗号化を行う、といった処理によって行えばよい。
その後、ステップS908において、ここまでに初期プロビジョニングデータに追加したデータを、プロビジョニングデータの提供対象とするデバイス4のデバイス公開鍵によって暗号化し、初期プロビジョニングデータの生成が完了する。ここで、デバイス公開鍵は、デバイス4より送信されたデバイス証跡を用いた、公開鍵提供手段13への問い合わせによって取得することができるものである。
このように、デバイス公開鍵によって暗号化することにより、それに対応するデバイス秘密鍵を所持するデバイス4、すなわち、プロビジョニングサーバ3へとデバイス証跡を送信し、プロビジョニングデータの提供を依頼したデバイス4においてのみ、プロビジョニングデータを展開可能な構成とすることができる。
以上のような処理により、ステップS802におけるプロビジョニングデータの生成が完了した後には、ステップS803でそれをデバイス4へと送信する。デバイス4は、ステップS804において、プロビジョニングデータの受信と展開処理を行う。
なお、ここで送信されるプロビジョニングデータは、先に述べたように、デバイスごとに一意であるデバイス公開鍵によって暗号化されたものであり、それに対応するデバイス秘密鍵を保持するデバイス4以外に不正に取得された場合においても、復号を行うことはできない。そのため、初期プロビジョニングデータの送信と同様に、HTTPなどの比較的に軽量な通信プロトコルを用いることができる。
図21に、デバイス4によるプロビジョニングデータの展開処理の流れを示す。まず、ステップS1001において、デバイス秘密鍵によるプロビジョニングデータの復号が行われる。
続くステップS1002では、開発秘密鍵による電子署名SDの検証処理が行われる。これは、先に図18を参照して説明したような処理によって行えばよい。ここでの検証が成功した場合に、ステップS1003からステップS1004へと進む。
ステップS1004では、プロビジョニングデータに、セキュア領域45aへと格納するためのデータが含まれるか否かの確認が行われる。ここでは、先にプロビジョニングデータの生成処理で説明したように、デバイス4のための新たなデバイス秘密鍵などが、セキュア領域45aに格納するデータとして扱われる。
ステップS1004で、セキュア領域45aへ格納するデータがあると判定された場合には、ステップS1005にて、それをセキュア領域45aへと格納する。そして、ステップS1006で、それに対応する旧データのセキュア領域45aからの抹消を行う。これは例えば、デバイス4のための新たなデバイス秘密鍵のセキュア領域45aへの格納を行った後に、現状で使用しているデバイス秘密鍵の抹消を行う、といったものである。
ステップS1007では、プロビジョニングデータに、通常領域45bへと格納するためのデータが含まれるか否かの確認が行われる。ここでは、先にプロビジョニングデータの生成処理で説明したように、デバイス4に適した起動プログラムや、デバイス4のための新たなデバイス証跡などが、通常領域45bに格納するデータとして扱われる。
ステップS1007で、通常領域45bへ格納するデータがあると判定された場合には、ステップS1008にて、それを通常領域45bへと格納する。そして、ステップS1009で、それに対応する旧データの通常領域45bからの抹消を行う。これは例えば、起動プログラムの格納を行った後に、以前に取得した起動プログラムが通常領域45b上にある場合には、その抹消を行う、デバイス4のための新たなデバイス証跡の格納を行った後に、現状で使用しているデバイス証跡の抹消を行う、といったものである。
ステップS1010では、デバイス4のデバイス証跡の更新を行ったか否か、すなわち、ステップS1005における新たなデバイス秘密鍵のセキュア領域45aの格納や、ステップS1008における新たなデバイス証跡の通常領域45bへの格納を行ったか否かの確認を行う。ここで、デバイス証跡の更新があったと判定された場合には、ステップS1011へと進み、更新前の旧デバイス証跡の無効化処理が行われる。
図22に、デバイス証跡の無効化処理の流れを示す。まず、ステップS1101で、デバイス4より、旧デバイス証跡をプロビジョニングサーバ3へと送信し、無効化を依頼する。プロビジョニングサーバ3はステップS1101でそれを受信し、デバイス認証サーバ1へと送信する。
デバイス認証サーバ1は、ステップS1103において、デバイス4よりプロビジョニングサーバ3を介して送信された旧デバイス証跡を受信し、ブロックチェーン2上での無効化処理を行う。ここで、先に述べたように、ブロックチェーン2上では、一度生成されたブロックの削除や改変は不可能である。そのため、例えば、旧デバイス証跡を無効とすることを示す新たな証跡の登録を行う、といった処理により、旧デバイス証跡のブロックチェーン2上での無効化を行う。
以上のような処理により、ステップS804におけるプロビジョニングデータの展開処理は終了する。なお、プロビジョニング処理においては、図20を参照して説明したプロビジョニングデータの生成処理で、デバイス4へと提供する必要のあるデータを適宜、セキュア領域45aに格納するデータ、通常領域45bに格納するデータとして、プロビジョニングデータへ追加し、それを受信したデバイス4が、その内容に合わせて、図21に示したようなプロビジョニングデータの展開処理を行うような構成とすればよい。
例えば、起動プログラムPGを提供すればよいような場合においては、通常領域45bに格納するデータとして起動プログラムPGを含む、図11(a)に示すようなプロビジョニングデータP1を生成し、デバイス4へと提供する。これを受信したデバイス4は、復号や電子署名の検証後に、起動プログラムPGの通常領域45bへの格納を行い、また、以前のプロビジョニング処理において通常領域45bに格納された起動プログラムが存在する場合には、その抹消を行う。
また、起動プログラムPGに加えて、デバイス証跡の更新を行う場合においては、図11(b)に示すような、セキュア領域45aに格納するためのデータとして新たなデバイス秘密鍵R2を、通常領域45bに格納するためのデータとして起動プログラムPGに加えて新たなデバイス証跡E2をそれぞれ含むようなプロビジョニングデータP2を生成し、デバイス4へと提供する。これを受信したデバイス4は、復号や電子署名の検証後に、新たなデバイス秘密鍵R2のセキュア領域45aへの格納と、現状で使用しているデバイス秘密鍵のセキュア領域45aからの抹消と、新たなデバイス証跡E2、起動プログラムPGの通常領域45bへの格納と、現状で使用しているデバイス証跡及び以前のプロビジョニング処理において通常領域45bに格納された起動プログラムの抹消と、を行う。
ここで、先に述べたように、本実施形態に係るデバイスプロビジョニングシステムは、デバイス4がブロックチェーン2に登録されて管理されるものである。そのため、ブロックチェーン2に登録されたデバイス証跡の更新を行うことは、すなわち、デバイスプロビジョニングシステムにおけるデバイス4の登録の更新を行うことに等しいといえる。
そして、ステップS805で、プロビジョニング処理の終了通知を行う。これは、デバイス4よりプロビジョニングサーバ3に対し、デバイス4のプロビジョニングが正常に完了したこと、あるいは、何れかの処理において失敗した場合には、失敗した原因などの情報を送信するものである。ここで、このような情報を受信したプロビジョニングサーバ3は、それをデバイス認証サーバ1へと送信し、ブロックチェーン2への書き込みを行う。この際、デバイスの起動処理が行われた時刻や場所など、付加的な情報を共に扱うことが好ましい。
以上のようにして、ステップS205におけるプロビジョニング処理が正常に完了した後には、記憶部45は図8(b)に示すように、セキュア領域45aにデバイス秘密鍵R1が、通常領域45bに、デバイス証跡E1、起動プログラムPG、開発証跡ED、組織証跡EOが、それぞれ含まれる状態となる。
ステップS206では、ステップS805におけるプロビジョニング処理の終了通知の内容や、記憶部45に含まれるデータの状態より、プロビジョニングが成功したか否かの判定を行う。正常に終了している場合には、デバイス4を正規の手順によって起動する準備が整っているものであるため、ステップS207へと進み、システム起動手段43によるシステムの起動を行う。ここでは、例えば、上述したように、起動プログラムPGがデバイス4上で稼働するOSそのものを含むようなものであれば、それを用いたデバイス4の起動を行えばよいし、あるいは、起動プログラムPGがOSを呼び出すためのプログラムなどである場合には、デバイス4の補助記憶装置に予め配されるOSによるデバイス4の起動を行えばよい。また、デバイス秘密鍵R1やデバイス証跡E1、開発証跡ED、組織証跡EOの内の一部、あるいは全部を、OS上で使用できるように引き渡すような構成としてもよい。
なお、ステップS207におけるシステムの起動後には、デバイス4上でOSやアプリケーションプログラムが稼働することになる。これらのログ等について、プロビジョニングサーバ3上に図示しない記憶部を設け、蓄積するような構成とすることが好ましい。これはすなわち、例えば、デバイス4がデータの収集等を目的としたIoTデバイスであれば、その収集対象とするデータの蓄積を行う、といったように、デバイス4の目的に応じたものであればよい。
<デバイス再初期化処理>
図24は、デバイス4の再初期化処理の流れを示すフローチャートである。これは、デバイスに不具合が生じた場合や、デバイスの使用を停止する場合などに、デバイス4に対する再初期化処理の指示操作を受け、実行されるものである。ここでの指示操作は、例えば、デバイス4に専用のボタンを設けるような構成や、デバイス4に電源を投入するボタンの長押しなど、任意の操作を定めておくような構成とすればよい。
図24は、デバイス4の再初期化処理の流れを示すフローチャートである。これは、デバイスに不具合が生じた場合や、デバイスの使用を停止する場合などに、デバイス4に対する再初期化処理の指示操作を受け、実行されるものである。ここでの指示操作は、例えば、デバイス4に専用のボタンを設けるような構成や、デバイス4に電源を投入するボタンの長押しなど、任意の操作を定めておくような構成とすればよい。
まず、ステップS1201において、上述したような再初期化処理の指示を受けたデバイス4より、プロビジョニングサーバ3へと再初期化処理が要求される。ここでは、デバイス4は、自身を特定させるための情報として、セキュア領域45aに格納される自身のデバイス証跡をプロビジョニングサーバ3へと送信する。
プロビジョニングサーバ3は、ステップS1202で再初期化要求を受け付け、アクティベート鍵提供手段32bによるアクティベート鍵ペアの生成を行う。ここでのアクティベート鍵ペアは、デバイス4の製造時の初期化処理におけるステップS102において生成したものと同様、デバイス4ごとに一意なアクティベート秘密鍵と、それに対応するアクティベート公開鍵である。
そして、ステップS1203において、図23(a)に示すような、ステップS1202で生成したアクティベート秘密鍵RAをデバイス4に登録するための、アクティベート秘密鍵登録データRRの生成が行われる。
ここでは、まず、開発秘密鍵による電子署名SDの付与が行われる。これは、アクティベート秘密鍵RAのハッシュ値を算出し、それをプロビジョニングサーバ3の保持する開発秘密鍵によって暗号化する、といった処理により行われる。そして、アクティベート秘密鍵RA、開発秘密鍵による電子署名SDの、デバイス公開鍵による暗号化を行う。ここで、デバイス公開鍵は、ステップS1202において受信したデバイス証跡を用いた公開鍵提供手段13への問い合わせによって取得される。
以上のようにして、ステップS1203におけるアクティベート秘密鍵登録データRRの生成が完了すると、それがデバイス4へと送信される。そして、デバイス4は、ステップS1204において、受信したアクティベート秘密鍵登録データRRを用いたアクティベート秘密鍵の格納処理を行う。図25に、アクティベート秘密鍵の格納処理の流れを示す。
まず、ステップS1301で、自身のデバイス秘密鍵による、アクティベート秘密鍵登録データRRの復号を行う。そして、ステップS1302で、開発公開鍵を用いた、開発秘密鍵による電子署名SDの検証を行う。ここでは、通常領域45bに格納される開発証跡を用いて、図18を参照して説明したような処理を行えばよい。
そして、開発秘密鍵による電子署名SDの検証が成功した場合、すなわち、アクティベート秘密鍵登録データRRが正当なものであると判定された場合には、ステップS1303よりステップS1304へと進み、アクティベート秘密鍵RAをセキュア領域45aへと格納する。
その後、ステップS1305で、セキュア領域45aからの旧データの抹消、すなわち、ここではデバイス秘密鍵の抹消を行い、アクティベート秘密鍵の格納処理は終了する。
このようにして、ステップS1204におけるアクティベート秘密鍵の格納処理を行った後、ステップS1205で、デバイス4よりプロビジョニングサーバ3へ、デバイス識別データの要求がなされる。
そして、プロビジョニングサーバ3は、ステップS1206で、図23(b)に示すような、デバイス識別データIDの生成処理を行う。ここでは、まず、組織秘密鍵による電子署名SOの付与が行われる。これは、アクティベート公開鍵UAのハッシュ値を算出し、それをプロビジョニングサーバ3の保持する組織秘密鍵によって暗号化する、といった処理が行われる。そして、アクティベート秘密鍵RA、組織秘密鍵による電子署名SOの、開発公開鍵による暗号化を行う。ここで、開発公開鍵は、プロビジョニングサーバ3に予め配備される開発証跡を用いた、公開鍵提供手段13への問い合わせによって取得される。
以上のようにして、ステップS1206におけるデバイス識別データIDの生成が完了すると、それがデバイス4へと送信される。そして、デバイス4は、ステップS1207において、受信したデバイス識別データIDの通常領域45bへの格納を行う。
続くステップS1208では、通常領域45bからの旧データの抹消、すなわち、ここでは、デバイス証跡、起動プログラムの抹消が行われる。そして、ステップS1209で、ブロックチェーン2上に格納されたデバイス証跡の無効化処理が行われる。これは、先に図22を参照して説明したように、証跡無効化手段12への依頼によって行うことができる。
ここで、先に述べたように、本実施形態に係るデバイスプロビジョニングシステムは、デバイス4がブロックチェーン2に登録されて管理されるものである。そのため、ブロックチェーン2に登録されたデバイス証跡の無効化を行うことは、すなわち、デバイスプロビジョニングシステムにおけるデバイス4の登録の解除を行うことに等しいといえる。
ステップS1209におけるデバイス証跡の無効化処理が完了した後には、ステップS1210で、デバイス4の再初期化処理の終了通知を行う。これは、デバイス4よりプロビジョニングサーバ3に対し、デバイス4の再初期化が正常に完了したこと、あるいは、何れかの処理において失敗した場合には、失敗した原因などの情報を送信するものである。ここで、このような情報を受信したプロビジョニングサーバ3は、それをデバイス認証サーバ1へと送信し、ブロックチェーン2への書き込みを行う。この際、デバイスの再初期化処理が行われた時刻や場所など、付加的な情報を共に扱うことが好ましい。
以上のような処理により、デバイス4の再初期化が完了した後には、記憶部45内のデータは図7に示すような、図12を参照して説明した生産拠点システム5による初期化処理の完了時と同様の状態となる。このようにして再初期化が行われたデバイス4が再度利用される際には、図13、図14等を参照して説明した、初期プロビジョニング処理が行われ、ブロックチェーン2上への登録が再度行われることになる。
<指示データを用いたプロビジョニングの実行>
以上に説明した、デバイス4のプロビジョニング処理や再初期化処理は、デバイス4の起動時に実行されるものである。本実施形態に係るデバイスプロビジョニングシステムでは、これらの処理に加えて、図13を参照して説明したデバイス4の起動時の処理におけるステップS207の完了後、すなわち、デバイス4上でOSやアプリケーションが稼働している状態からも、プロビジョニング処理が実行可能に構成される。
以上に説明した、デバイス4のプロビジョニング処理や再初期化処理は、デバイス4の起動時に実行されるものである。本実施形態に係るデバイスプロビジョニングシステムでは、これらの処理に加えて、図13を参照して説明したデバイス4の起動時の処理におけるステップS207の完了後、すなわち、デバイス4上でOSやアプリケーションが稼働している状態からも、プロビジョニング処理が実行可能に構成される。
図27は、稼働中のデバイス4に対し、プロビジョニングサーバ3からの指示に基づいてプロビジョニング処理を行う場合の処理の流れを示すフローチャートである。まず、ステップS1401で、デバイス4に対するプロビジョニング指示が必要か否かを判定し、必要と判定されるまで待機する。
ここでの判定の基準は、プロビジョニングサーバ3に予め登録されていればよい。例えば、所定の期間毎に必ずプロビジョニング処理が行われるような設定や、プロビジョニングサーバ3への操作によって随時プロビジョニング処理を行うことができるような構成とすればよい。また、プロビジョニング指示の対象とするデバイスについても、事前の設定等によって決定できるような構成とすることが好ましい。例えば、前回のプロビジョニング処理から一定以上の期間が経過したデバイス4を対象とする、デバイス4が位置情報をプロビジョニングサーバ3へ送信するような構成であれば、特定の範囲に含まれる地域で稼働するデバイス4を対象とする、といった条件が挙げられる。
そして、ステップS1401でプロビジョニング指示が必要であると判定された場合には、ステップS1402へと進み、図26に示すような指示データDNの生成が行われる。これは、プロビジョニング実行指示ENに対して、開発秘密鍵による電子署名SDを付与し、デバイス公開鍵による暗号化を行う、といった処理となる。なお、ここで用いるデバイス公開鍵は、プロビジョニング指示の対象とするデバイス4のデバイス証跡を用いた公開鍵提供手段13への問い合わせによって取得できる。なお、ここでプロビジョニングサーバ3より適切なデバイスへのプロビジョニングを行うために、先に図16を参照して説明した処理によるブロックチェーン2へのデバイス公開鍵の登録、デバイス証跡の取得時に、自身が登録したデバイス4、すなわち、自身が管理の対象とするデバイス4のデバイス証跡をプロビジョニングサーバ3上に蓄積しておくような構成とすることが好ましい。
そして、ステップS1402で生成された指示データDNが、プロビジョニング指示の対象となるデバイス4へと送信される。指示データDNを受信したデバイス4は、ステップS1403で、セキュア領域45aに格納されるデバイス秘密鍵による指示データDNの復号を行い、ステップS1404で、指示データDNに含まれる開発秘密鍵による電子署名SDの検証を行う。ここでの開発秘密鍵による電子署名SDの検証処理は、先に図18を参照して説明したような処理によって行えばよい。
ステップS1404における開発秘密鍵による電子署名SDの検証処理に成功し、指示データDN内に正常なプロビジョニング実行指示ENが含まれることが確認された場合には、ステップS1405よりステップS1406へと進み、デバイス4の再起動が行われる。そして、ステップS1407で、先に図13を参照して説明したようなデバイスの起動時処理が実行される。
以上のような処理により、稼働中のデバイス4の、プロビジョニングサーバ3からの指示に基づいたプロビジョニング処理を実行することができる。これにより、上述したように、プロビジョニングサーバ3側で予め、あるいは管理者の操作等に基づいた任意のタイミングで、デバイス4のプロビジョニング処理を実行することができる。
なお、先に述べたように、これは、デバイス4上でOS等が稼働している状況で実行される処理である。すなわち、ステップS1403における指示データDNの受信からステップS1406における再起動までの処理については、デバイス4のOS上で稼働するサービス等が実行するよう構成すればよい。
本実施形態に係るデバイスプロビジョニングシステムによるプロビジョニング処理の更なる例として、図28に、デバイス4側からの指示に基づいたプロビジョニング処理の流れを示す。まず、ステップS1501で、デバイス4は自身のプロビジョニング処理の実施が必要か否かを判定し、必要と判定されるまで待機する。
なお、ここでの判定の基準は、デバイス4に予め登録されていればよい。例えば、所定の期間毎に必ずプロビジョニング処理が行われるような設定や、稼働中のデバイス4の操作によって随時プロビジョニング処理を行うことができるような構成とすればよい。また、デバイス4が位置情報の取得手段を備えるのであれば、所定以上の移動が行われた場合にプロビジョニング処理を行うなど、デバイス4の状況の変化に応じてプロビジョニング処理の実行を行うような構成としてもよい。
そして、ステップS1501でプロビジョニング指示が必要であると判定された場合には、ステップS1502へと進み、図26に示すような指示データDNの、プロビジョニングサーバ3への要求が行われる。これは、デバイス4が通常領域45bに記録される、自身のデバイス証跡をプロビジョニングサーバ3に送信することで行われる。
以降のステップS1503からステップS1508までの各処理については、先に図27を参照して説明した、プロビジョニングサーバ3からの指示に基づいたプロビジョニング処理を行う場合の、ステップS1402からステップS1407の処理と同様にして行われる。
以上のような処理により、稼働中のデバイス4自身からの指示に基づいたプロビジョニング処理を実行することができる。これにより、上述したように、OS等が稼働中のデバイス4側で予め、あるいは管理者の操作等に基づいた任意のタイミングで、プロビジョニング処理を実行することができる。
なお、先に述べたように、これは、デバイス4上でOS等が稼働している状況で実行される処理であるため、先に図27を参照して説明した、プロビジョニングサーバ3からの指示に基づいたプロビジョニング処理を行う場合と同様、ステップS1504における指示データDNの受信からステップS1507における再起動までの処理については、デバイス4のOS上で稼働するサービス等が実行するよう構成すればよい。
ここで、図27ではプロビジョニングサーバ3からの指示に基づいたプロビジョニング処理を、図28では稼働中のデバイス4自身からの指示に基づいたプロビジョニング処理を、それぞれ実行する例を示したが、デバイス4の再初期化処理についても、同様に行えるような構成とすることが好ましい。すなわち、ステップS1406、S1507におけるデバイス4の再起動処理時に、再起動後のステップS1407、S1508において通常の起動時の処理を行うのではなく、図24に示した再初期化処理を行わせるようなパラメータの受け渡しなどを行うことができるような構成とすることが好ましい。
以上のように、本実施形態に係るデバイスプロビジョニングによれば、デバイスごとに一意なデバイス秘密鍵、デバイス公開鍵を用いてプロビジョニングデータの配布を行うことにより、高いセキュリティを保ってデバイスのプロビジョニングを行うことができる。
また、ブロックチェーンの、一度登録されたデータに対する不正な改ざん処理や、ブロックの削除などを行うことが困難であるという特性を活かし、ブロックチェーン上でデバイス公開鍵の管理を行うことにより、デバイスごとの秘密鍵、公開鍵を用いる構成としながらも、多量の電子証明書を必要とすることがない。
そして、ブロックチェーン上にデバイスごとに一意であるデバイス公開鍵の登録をし、管理をすることはすなわち、ブロックチェーン上でデバイスそのものの管理を行うことにもつながり、不正なデバイスがシステム内に入り込むようなことを防ぎ、セキュアなシステムを構築することができる。
1 デバイス認証サーバ
11 証跡登録手段
12 証跡無効化手段
13 公開鍵提供手段
2 ブロックチェーン
3 プロビジョニングサーバ
31 プロビジョニングデータ提供手段
32 デバイス初期化ライブラリ
32a デバイス識別データ提供手段
32b アクティベート鍵提供手段
33 起動プログラム記憶部
34 デバイス情報記憶部
4 デバイス
41 初期プロビジョニング確認手段
42 プロビジョニング実行手段
43 システム起動手段
44 再初期化手段
45 記憶部
45a セキュア領域
45b 通常領域
5 生産拠点システム
51 デバイス初期化ライブラリ
51a デバイス識別データ提供手段
51b アクティベート鍵提供手段
52 デバイス情報記憶部
11 証跡登録手段
12 証跡無効化手段
13 公開鍵提供手段
2 ブロックチェーン
3 プロビジョニングサーバ
31 プロビジョニングデータ提供手段
32 デバイス初期化ライブラリ
32a デバイス識別データ提供手段
32b アクティベート鍵提供手段
33 起動プログラム記憶部
34 デバイス情報記憶部
4 デバイス
41 初期プロビジョニング確認手段
42 プロビジョニング実行手段
43 システム起動手段
44 再初期化手段
45 記憶部
45a セキュア領域
45b 通常領域
5 生産拠点システム
51 デバイス初期化ライブラリ
51a デバイス識別データ提供手段
51b アクティベート鍵提供手段
52 デバイス情報記憶部
上記課題を解決するために、本発明に係るデバイスプロビジョニングシステムは、
デバイスのプロビジョニングを行うためのプロビジョニングデータをデバイスへ提供し、前記デバイス上での前記プロビジョニングデータの展開を行う、デバイスプロビジョニングシステムであって、
前記デバイスごとに一意である第1の公開鍵と前記デバイスごとに一意である第1の証跡とを紐づけて格納するブロックチェーンより、前記第1の証跡を用いた問い合わせに応じて前記第1の公開鍵を取得する、公開鍵提供手段と、
前記デバイスからの前記第1の証跡を用いた問い合わせに応じて、前記公開鍵提供手段によって前記第1の公開鍵を取得し、当該第1の公開鍵によって暗号化した前記プロビジョニングデータを前記デバイスに送信する、プロビジョニングデータ提供手段と、を備え、
前記デバイスが、
前記第1の公開鍵に対応する第1の秘密鍵を格納するセキュア領域と、前記第1の証跡を格納する通常領域と、を含む記憶部と、
前記第1の証跡を用いた前記プロビジョニングデータ提供手段への問い合わせによって暗号化された前記プロビジョニングデータを取得し、暗号化された前記プロビジョニングデータを前記第1の秘密鍵を用いて復号する、プロビジョニング実行手段と、を備えることを特徴とする。
デバイスのプロビジョニングを行うためのプロビジョニングデータをデバイスへ提供し、前記デバイス上での前記プロビジョニングデータの展開を行う、デバイスプロビジョニングシステムであって、
前記デバイスごとに一意である第1の公開鍵と前記デバイスごとに一意である第1の証跡とを紐づけて格納するブロックチェーンより、前記第1の証跡を用いた問い合わせに応じて前記第1の公開鍵を取得する、公開鍵提供手段と、
前記デバイスからの前記第1の証跡を用いた問い合わせに応じて、前記公開鍵提供手段によって前記第1の公開鍵を取得し、当該第1の公開鍵によって暗号化した前記プロビジョニングデータを前記デバイスに送信する、プロビジョニングデータ提供手段と、を備え、
前記デバイスが、
前記第1の公開鍵に対応する第1の秘密鍵を格納するセキュア領域と、前記第1の証跡を格納する通常領域と、を含む記憶部と、
前記第1の証跡を用いた前記プロビジョニングデータ提供手段への問い合わせによって暗号化された前記プロビジョニングデータを取得し、暗号化された前記プロビジョニングデータを前記第1の秘密鍵を用いて復号する、プロビジョニング実行手段と、を備えることを特徴とする。
本発明の好ましい形態では、デバイスプロビジョニングシステムが、前記ブロックチェーンへの前記第1の公開鍵の登録による前記第1の証跡の取得を行う証跡登録手段を更に備え、
前記デバイスが、前記プロビジョニングデータの提供を受けていない初期状態において、
前記セキュア領域に前記デバイスごとに一意な初回用秘密鍵を、
前記通常領域に前記初回用秘密鍵に対応する初回用公開鍵を含むデバイス識別データを、それぞれ格納した状態であり、
前記プロビジョニングデータ提供手段が、前記デバイスより送信される前記デバイス識別データに基づいた当該デバイスの正当性の検証に成功した場合に、
前記第1の秘密鍵及び前記第1の公開鍵の生成と、
前記証跡登録手段による前記第1の公開鍵の前記ブロックチェーンへの登録による前記第1の証跡の取得と、
前記第1の秘密鍵と、前記第1の証跡と、を含み、前記初回用公開鍵によって暗号化された初回用データの当該デバイスへの送信と、を行い、
前記プロビジョニング実行手段が、前記初回用秘密鍵を用いた暗号化された前記初回用データの復号と、前記第1の秘密鍵の前記セキュア領域への格納と、前記第1の証跡の前記通常領域への格納と、を行うことを特徴とする。
このように、デバイス識別データの正当性の検証に基づいて、初期状態であるデバイスに対してプロビジョニングデータの提供を行うことにより、システムへのデバイスの登録を安全に行うことができる。
前記デバイスが、前記プロビジョニングデータの提供を受けていない初期状態において、
前記セキュア領域に前記デバイスごとに一意な初回用秘密鍵を、
前記通常領域に前記初回用秘密鍵に対応する初回用公開鍵を含むデバイス識別データを、それぞれ格納した状態であり、
前記プロビジョニングデータ提供手段が、前記デバイスより送信される前記デバイス識別データに基づいた当該デバイスの正当性の検証に成功した場合に、
前記第1の秘密鍵及び前記第1の公開鍵の生成と、
前記証跡登録手段による前記第1の公開鍵の前記ブロックチェーンへの登録による前記第1の証跡の取得と、
前記第1の秘密鍵と、前記第1の証跡と、を含み、前記初回用公開鍵によって暗号化された初回用データの当該デバイスへの送信と、を行い、
前記プロビジョニング実行手段が、前記初回用秘密鍵を用いた暗号化された前記初回用データの復号と、前記第1の秘密鍵の前記セキュア領域への格納と、前記第1の証跡の前記通常領域への格納と、を行うことを特徴とする。
このように、デバイス識別データの正当性の検証に基づいて、初期状態であるデバイスに対してプロビジョニングデータの提供を行うことにより、システムへのデバイスの登録を安全に行うことができる。
本発明に係るプロビジョニング方法は、
デバイスのプロビジョニングを行うためのプロビジョニングデータをデバイスへ提供し、前記デバイス上での前記プロビジョニングデータの展開を行う、プロビジョニング方法であって、
前記デバイスが、
前記デバイスごとに一意である第1の公開鍵に対応する、第1の秘密鍵を格納するセキュア領域と、
前記第1の公開鍵と紐づけられた状態でブロックチェーンに格納される、前記デバイスごとに一意である第1の証跡を格納する通常領域と、を含む記憶部を備えるものであって、
前記デバイスからの前記第1の証跡を用いた問い合わせに基づいて、前記ブロックチェーンより前記第1の公開鍵を取得するステップと、
前記第1の公開鍵によって前記プロビジョニングデータを暗号化し、前記デバイスに送信するステップと、
前記デバイスが、暗号化された前記プロビジョニングデータを前記第1の秘密鍵を用いて復号するステップと、を備えることを特徴とする。
デバイスのプロビジョニングを行うためのプロビジョニングデータをデバイスへ提供し、前記デバイス上での前記プロビジョニングデータの展開を行う、プロビジョニング方法であって、
前記デバイスが、
前記デバイスごとに一意である第1の公開鍵に対応する、第1の秘密鍵を格納するセキュア領域と、
前記第1の公開鍵と紐づけられた状態でブロックチェーンに格納される、前記デバイスごとに一意である第1の証跡を格納する通常領域と、を含む記憶部を備えるものであって、
前記デバイスからの前記第1の証跡を用いた問い合わせに基づいて、前記ブロックチェーンより前記第1の公開鍵を取得するステップと、
前記第1の公開鍵によって前記プロビジョニングデータを暗号化し、前記デバイスに送信するステップと、
前記デバイスが、暗号化された前記プロビジョニングデータを前記第1の秘密鍵を用いて復号するステップと、を備えることを特徴とする。
Claims (9)
- デバイスのプロビジョニングを行うためのプロビジョニングデータをデバイスへ提供し、前記デバイス上での前記プロビジョニングデータの展開を行う、デバイスプロビジョニングシステムであって、
前記デバイスごとに一意である第1の公開鍵と前記デバイスごとに一意である第1の証跡とを紐づけて格納するブロックチェーンより、前記第1の証跡を用いた問い合わせに応じて前記第1の公開鍵を取得する、公開鍵提供手段と、
前記デバイスからの前記第1の証跡を用いた問い合わせに応じて、前記公開鍵提供手段によって前記第1の公開鍵を取得し、当該第1の公開鍵によって暗号化した前記プロビジョニングデータを前記デバイスに送信する、プロビジョニングデータ提供手段と、を備え、
前記デバイスが、
前記第1の公開鍵に対応する第1の秘密鍵を格納するセキュア領域と、前記第1の証跡を格納する通常領域と、を含む記憶部と、
前記第1の証跡を用いた前記プロビジョニングデータ提供手段への問い合わせによって前記プロビジョニングデータを取得し、前記プロビジョニングデータを前記第1の秘密鍵を用いて復号する、プロビジョニング実行手段と、を備えることを特徴とする、デバイスプロビジョニングシステム。 - 前記ブロックチェーンへの前記第1の公開鍵の登録による前記第1の証跡の取得を行う証跡登録手段を更に備え、
前記デバイスが、前記プロビジョニングデータの提供を受けていない初期状態において、
前記セキュア領域に前記デバイスごとに一意な初回用秘密鍵を、
前記通常領域に前記初回用秘密鍵に対応する初回用公開鍵を含むデバイス識別データを、それぞれ格納した状態であり、
前記プロビジョニングデータ提供手段が、前記デバイスより送信される前記デバイス識別データに基づいた当該デバイスの正当性の検証に成功した場合に、
前記第1の秘密鍵及び前記第1の公開鍵の生成と、
前記証跡登録手段による前記第1の公開鍵の前記ブロックチェーンへの登録による前記第1の証跡の取得と、
前記第1の秘密鍵と、前記第1の証跡と、を含み、前記初回用公開鍵によって暗号化された初回用データの当該デバイスへの送信と、を行い、
前記プロビジョニング実行手段が、前記初回用秘密鍵を用いた前記初回用データの復号と、前記第1の秘密鍵の前記セキュア領域への格納と、前記第1の証跡の前記通常領域への格納と、を行うことを特徴とする、請求項1に記載のデバイスプロビジョニングシステム。 - 前記ブロックチェーンにおける前記第1の証跡及び前記第1の公開鍵の無効化を行う証跡無効化手段を更に備え、
新たな初回用秘密鍵と、前記新たな初回用秘密鍵に対応する新たな初回用公開鍵を含む新たなデバイス識別データと、を前記デバイスへと送信する、再初期化指示手段を更に備え、
前記デバイスが、前記新たな初回用秘密鍵の前記セキュア領域への格納と、前記第1の秘密鍵の前記セキュア領域からの抹消と、前記新たなデバイス識別データの前記通常領域への格納と、前記第1の証跡の前記通常領域からの抹消と、前記証跡無効化手段への前記ブロックチェーンにおける前記第1の証跡及び前記第1の公開鍵の無効化の依頼と、を行う、再初期化手段を更に備えることを特徴とする、請求項2に記載のデバイスプロビジョニングシステム。 - 前記プロビジョニングデータ提供手段が、
前記ブロックチェーンに登録された前記第1の証跡及び前記第1の公開鍵の更新の要否の確認を行い、前記第1の証跡及び前記第1の公開鍵の更新が必要だと判定された場合に、
新たな第1の秘密鍵及び新たな第1の公開鍵の生成と、
前記証跡登録手段による前記ブロックチェーンへの前記新たな第1の公開鍵の登録による新たな第1の証跡の取得と、を行い、
前記プロビジョニングデータに、前記新たな第1の秘密鍵及び前記新たな第1の証跡を含め、
前記プロビジョニング実行手段が、
前記新たな第1の秘密鍵の前記セキュア領域への格納と、
前記新たな第1の証跡の前記通常領域への格納と、
前記第1の秘密鍵の前記セキュア領域からの抹消と、
前記第1の証跡の前記通常領域からの抹消と、を行うことを特徴とする、請求項3に記載のデバイスプロビジョニングシステム。 - 前記プロビジョニングデータが、前記デバイス上で動作するプログラムファイルを含むことを特徴とする、請求項1から請求項4の何れかに記載のデバイスプロビジョニングシステム。
- 前記プログラムファイルが前記デバイスの起動プログラムファイルであり、
プロビジョニング実行手段が、前記デバイスの起動時に前記プロビジョニングデータの取得を行うことを特徴とする、請求項5に記載のデバイスプロビジョニングシステム。 - 前記ブロックチェーンが、更に、第2の証跡と第2の公開鍵を紐づけて記憶し、
前記プロビジョニングデータ提供手段が、前記プロビジョニングデータに前記第2の公開鍵に対応する第2の秘密鍵による電子署名を付した状態で前記暗号化を行い、
前記通常領域が、前記第2の証跡を更に格納し、
前記プロビジョニング実行手段が、前記公開鍵提供手段への前記第2の証跡を用いた問い合わせによる前記第2の公開鍵の取得と、前記第2の秘密鍵による電子署名の前記第2の公開鍵を用いた検証と、を行うことを特徴とする、請求項1から請求項6の何れかに記載のデバイスプロビジョニングシステム。 - 前記公開鍵提供手段を有するデバイス認証サーバと、
前記プロビジョニングデータ提供手段を有するプロビジョニングサーバと、を備えることを特徴とする、請求項1から請求項7の何れかに記載のデバイスプロビジョニングシステム。 - デバイスのプロビジョニングを行うためのプロビジョニングデータをデバイスへ提供し、前記デバイス上での前記プロビジョニングデータの展開を行う、プロビジョニング方法であって、
前記デバイスが、
前記デバイスごとに一意である第1の公開鍵に対応する、第1の秘密鍵を格納するセキュア領域と、
前記第1の公開鍵と紐づけられた状態でブロックチェーンに格納される、前記デバイスごとに一意である第1の証跡を格納する通常領域と、を含む記憶部を備えるものであって、
前記デバイスからの前記第1の証跡を用いた問い合わせに基づいて、前記ブロックチェーンより前記第1の公開鍵を取得するステップと、
前記第1の公開鍵によって前記プロビジョニングデータを暗号化し、前記デバイスに送信するステップと、
前記デバイスが、前記プロビジョニングデータを前記第1の秘密鍵を用いて復号するステップと、を備えることを特徴とする、プロビジョニング方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017119016A JP6340120B1 (ja) | 2017-06-16 | 2017-06-16 | デバイスプロビジョニングシステム |
US16/333,943 US11296934B2 (en) | 2017-06-16 | 2018-05-25 | Device provisioning system |
PCT/JP2018/020121 WO2018230305A1 (ja) | 2017-06-16 | 2018-05-25 | デバイスプロビジョニングシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017119016A JP6340120B1 (ja) | 2017-06-16 | 2017-06-16 | デバイスプロビジョニングシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6340120B1 JP6340120B1 (ja) | 2018-06-06 |
JP2019004391A true JP2019004391A (ja) | 2019-01-10 |
Family
ID=62487288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017119016A Active JP6340120B1 (ja) | 2017-06-16 | 2017-06-16 | デバイスプロビジョニングシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11296934B2 (ja) |
JP (1) | JP6340120B1 (ja) |
WO (1) | WO2018230305A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020178344A (ja) * | 2019-04-19 | 2020-10-29 | 株式会社リコー | 装置認証方法、サービスアクセスの制御方法、装置及び記録媒体 |
JP2021026441A (ja) * | 2019-08-02 | 2021-02-22 | 日本電気株式会社 | 情報処理装置、プロビジョニングデータを生成する方法、およびプログラム |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11582024B2 (en) * | 2018-07-28 | 2023-02-14 | Kan Yang | Blockchain-based decentralized public key management system |
WO2020026382A1 (ja) * | 2018-08-01 | 2020-02-06 | 株式会社モールサービス | 電子チケット管理システム、電子チケット管理方法及び電子チケット管理プログラム |
JP6545888B1 (ja) * | 2018-11-09 | 2019-07-17 | 国立大学法人東北大学 | 情報処理システム、公開鍵の変更方法、およびプログラム |
US10841153B2 (en) * | 2018-12-04 | 2020-11-17 | Bank Of America Corporation | Distributed ledger technology network provisioner |
US11888992B2 (en) | 2019-02-28 | 2024-01-30 | Advanced New Technologies Co., Ltd. | System and method for generating digital marks |
JP7235941B2 (ja) * | 2019-03-18 | 2023-03-09 | 株式会社野村総合研究所 | 情報管理システム及びその方法 |
US11126425B2 (en) * | 2019-04-19 | 2021-09-21 | Sarcos Corp. | Version history management using a blockchain |
JP7394867B2 (ja) * | 2019-05-10 | 2023-12-08 | エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー | デバイスの識別と監視のための方法およびシステム |
JP7176488B2 (ja) * | 2019-07-08 | 2022-11-22 | 株式会社デンソー | データ保存装置、及びデータ保存プログラム |
KR20210009791A (ko) * | 2019-07-18 | 2021-01-27 | 삼성전자주식회사 | 블록 체인을 이용한 전자 인증 장치 및 그 방법 |
JP6671701B1 (ja) * | 2019-07-19 | 2020-03-25 | Eaglys株式会社 | 演算装置、演算方法、演算プログラム、および演算システム |
EP3817332B1 (en) | 2019-10-30 | 2024-04-24 | Secure Thingz Limited | Data provisioning device for provisioning a data processing entity |
TWI772721B (zh) * | 2019-12-06 | 2022-08-01 | 中華電信股份有限公司 | 運用區塊鏈管理網路設備之系統及方法 |
KR102528678B1 (ko) * | 2020-12-30 | 2023-05-08 | 한국전자통신연구원 | 원격 검증 관리 장치 및 방법 |
WO2022195824A1 (ja) * | 2021-03-18 | 2022-09-22 | 日本電気株式会社 | 証跡収集システム、証跡収集方法、証跡提供装置、証跡提供方法、及びコンピュータ可読媒体 |
KR102642034B1 (ko) * | 2021-11-09 | 2024-02-28 | 주식회사 디사일로 | 개인 정보 보호 데이터 분석을 위한 컴퓨팅 방법 및 시스템 |
US20230205895A1 (en) * | 2021-12-29 | 2023-06-29 | Arm Limited | Methods and apparatus for provisioning a device |
US20230318919A1 (en) * | 2022-04-05 | 2023-10-05 | Reliance Jio Infocomm Usa, Inc. | Cloud automation microbots and method of use |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005104431A1 (ja) * | 2004-04-21 | 2005-11-03 | Matsushita Electric Industrial Co., Ltd. | コンテンツ提供システム、情報処理装置及びメモリカード |
JP2009124520A (ja) * | 2007-11-16 | 2009-06-04 | Fujitsu Ltd | データ送付方法および電子機器 |
US20150244690A1 (en) * | 2012-11-09 | 2015-08-27 | Ent Technologies, Inc. | Generalized entity network translation (gent) |
JP2017017616A (ja) * | 2015-07-03 | 2017-01-19 | Kddi株式会社 | ソフトウェア配布処理装置、車両、ソフトウェア配布処理方法及びコンピュータプログラム |
JP2017108212A (ja) * | 2015-12-07 | 2017-06-15 | Kddi株式会社 | 鍵生成方法、鍵生成システム、及びコンピュータプログラム |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8752165B2 (en) | 2008-05-29 | 2014-06-10 | Apple Inc. | Provisioning secrets in an unsecured environment |
EP2391053A1 (en) * | 2009-01-23 | 2011-11-30 | Vanios Consulting, S.l. | Secure access control system |
WO2011130713A1 (en) * | 2010-04-15 | 2011-10-20 | General Instrument Corporation | Online secure device provisioning with updated offline identity data generation and offline device binding |
US10031737B2 (en) * | 2012-02-16 | 2018-07-24 | Microsoft Technology Licensing, Llc | Downloading and distribution of applications and updates to multiple devices |
JP5582231B2 (ja) | 2013-07-18 | 2014-09-03 | 株式会社リコー | 情報処理装置、真正性確認方法、及び記録媒体 |
US9594910B2 (en) | 2014-03-28 | 2017-03-14 | Intel Corporation | In-system provisioning of firmware for a hardware platform |
US9819485B2 (en) * | 2014-05-01 | 2017-11-14 | At&T Intellectual Property I, L.P. | Apparatus and method for secure delivery of data utilizing encryption key management |
US20180240107A1 (en) * | 2015-03-27 | 2018-08-23 | Black Gold Coin, Inc. | Systems and methods for personal identification and verification |
SI3073670T1 (sl) * | 2015-03-27 | 2021-07-30 | Black Gold Coin, Inc. | Sistem in postopek za osebno identifikacijo in verifikacijo |
US9667600B2 (en) * | 2015-04-06 | 2017-05-30 | At&T Intellectual Property I, L.P. | Decentralized and distributed secure home subscriber server device |
US20160321752A1 (en) * | 2015-05-01 | 2016-11-03 | Medici, Inc. | Digitally Encrypted Securities Platform, Along With Methods And Systems For The Same |
US9887842B2 (en) * | 2015-06-30 | 2018-02-06 | International Business Machines Corporation | Binding software application bundles to a physical execution medium |
KR101637854B1 (ko) * | 2015-10-16 | 2016-07-08 | 주식회사 코인플러그 | 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법 |
WO2017147696A1 (en) * | 2016-02-29 | 2017-09-08 | Troy Jacob Ronda | Systems and methods for distributed identity verification |
EP3295350B1 (en) * | 2016-05-13 | 2018-07-11 | Nchain Holdings Limited | A method and system for verifying ownership of a digital asset using a distributed hash table and a peer-to-peer distributed ledger |
JP6550353B2 (ja) * | 2016-07-21 | 2019-07-24 | 株式会社日立製作所 | 署名検証システム、署名検証方法及びプログラム |
WO2018057510A1 (en) * | 2016-09-20 | 2018-03-29 | United States Postal Service | Methods and systems for a digital trust architecture |
US10749684B2 (en) * | 2016-09-30 | 2020-08-18 | Entrust, Inc. | Methods and apparatus for providing blockchain participant identity binding |
US10284378B2 (en) * | 2016-10-05 | 2019-05-07 | The Toronto-Dominion Bank | Certificate authority master key tracking on distributed ledger |
US10049218B2 (en) * | 2016-12-07 | 2018-08-14 | Google Llc | Rollback resistant security |
US10574648B2 (en) * | 2016-12-22 | 2020-02-25 | Dashlane SAS | Methods and systems for user authentication |
US10382485B2 (en) * | 2016-12-23 | 2019-08-13 | Vmware, Inc. | Blockchain-assisted public key infrastructure for internet of things applications |
CN110383760A (zh) * | 2017-01-03 | 2019-10-25 | 斯塔万格大学 | 用户控制的、分散式、分布式且安全的内容分发 |
US20180254898A1 (en) * | 2017-03-06 | 2018-09-06 | Rivetz Corp. | Device enrollment protocol |
US11509486B2 (en) * | 2017-05-24 | 2022-11-22 | Nxm Labs, Inc. | Identity attestation system and method |
-
2017
- 2017-06-16 JP JP2017119016A patent/JP6340120B1/ja active Active
-
2018
- 2018-05-25 US US16/333,943 patent/US11296934B2/en active Active
- 2018-05-25 WO PCT/JP2018/020121 patent/WO2018230305A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005104431A1 (ja) * | 2004-04-21 | 2005-11-03 | Matsushita Electric Industrial Co., Ltd. | コンテンツ提供システム、情報処理装置及びメモリカード |
JP2009124520A (ja) * | 2007-11-16 | 2009-06-04 | Fujitsu Ltd | データ送付方法および電子機器 |
US20150244690A1 (en) * | 2012-11-09 | 2015-08-27 | Ent Technologies, Inc. | Generalized entity network translation (gent) |
JP2017017616A (ja) * | 2015-07-03 | 2017-01-19 | Kddi株式会社 | ソフトウェア配布処理装置、車両、ソフトウェア配布処理方法及びコンピュータプログラム |
JP2017108212A (ja) * | 2015-12-07 | 2017-06-15 | Kddi株式会社 | 鍵生成方法、鍵生成システム、及びコンピュータプログラム |
Non-Patent Citations (5)
Title |
---|
XIWEI XU, ET AL.: "The Blockchain as a Software Connector", 2016 13TH WORKING IEEE/IFIP CONFERENCE ON SOFTWARE ARCHITECTURE, JPN6017020446, April 2016 (2016-04-01), US, pages 182 - 191, XP032927547, ISSN: 0003790478, DOI: 10.1109/WICSA.2016.21 * |
佐古 和恵: "透明性と公平性を実現するブロックチェーン技術", 情報処理, vol. 第57巻 第9号, JPN6017020449, 15 August 2016 (2016-08-15), JP, pages 864 - 869, ISSN: 0003790476 * |
武田 敦志 ほか: "P2Pネットワークのための分散型認証システムの設計", 情報処理学会研究報告, vol. 2008, no. 54, JPN6013035738, 12 June 2008 (2008-06-12), JP, pages 63 - 68, ISSN: 0003790474 * |
淵田 康之: "特集:イノベーションと金融 ブロックチェーンと金融取引の革新", 野村資本市場クォータリー, vol. 第19巻第2号(通巻74号), JPN6016047552, 1 November 2015 (2015-11-01), JP, pages 11 - 35, ISSN: 0003790475 * |
渡辺 弘幸: "ブロックチェーン技術にけるPKIの最適解!!(後編)", サイバートラスト 会社情報, vol. 技術者向け, JPN6018015267, 7 March 2016 (2016-03-07), ISSN: 0003790477 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020178344A (ja) * | 2019-04-19 | 2020-10-29 | 株式会社リコー | 装置認証方法、サービスアクセスの制御方法、装置及び記録媒体 |
JP7052818B2 (ja) | 2019-04-19 | 2022-04-12 | 株式会社リコー | 装置認証方法、サービスアクセスの制御方法、装置及び記録媒体 |
JP2021026441A (ja) * | 2019-08-02 | 2021-02-22 | 日本電気株式会社 | 情報処理装置、プロビジョニングデータを生成する方法、およびプログラム |
JP7342504B2 (ja) | 2019-08-02 | 2023-09-12 | 日本電気株式会社 | 情報処理装置、システム、プロビジョニングデータを生成する方法、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6340120B1 (ja) | 2018-06-06 |
WO2018230305A1 (ja) | 2018-12-20 |
US11296934B2 (en) | 2022-04-05 |
US20190207813A1 (en) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6340120B1 (ja) | デバイスプロビジョニングシステム | |
CN108628658B (zh) | 一种容器的许可证管理方法及装置 | |
JP6340107B1 (ja) | 電子証明システム | |
JP4902207B2 (ja) | ファイルの暗号化と復号化のための複数のキーを管理するシステムと方法 | |
JP6082589B2 (ja) | 暗号鍵管理プログラム、データ管理システム | |
US9197408B2 (en) | Systems and methods for providing a secure data exchange | |
KR101000191B1 (ko) | 보안 소프트웨어 갱신 | |
JP6414863B2 (ja) | 仮想化システムにおける暗号復号方法および装置、およびシステム | |
JP7174237B2 (ja) | 鍵生成装置、鍵更新方法および鍵更新プログラム | |
CN104205723A (zh) | 用于透明地主存在云中的组织的身份服务 | |
JP2011507091A (ja) | モバイル・コンピューティング装置上のソフトウェア・アプリケーションを管理するための方法およびシステム | |
JP5631940B2 (ja) | 情報処理装置、方法、プログラム | |
JP6480528B2 (ja) | 電子証明システム | |
JP2011134037A (ja) | ファイル管理装置、ファイル管理プログラム、およびファイル管理方法 | |
JP2017157018A (ja) | 情報処理装置、情報処理方法、情報処理プログラム、及びトラステッド・プラットフォーム・モジュール | |
JP2006155585A (ja) | 文書管理サービス提供装置、認証サービス提供装置、文書管理サービス提供プログラム、認証サービス提供プログラム、記録媒体、文書管理サービス提供方法及び認証サービス提供方法 | |
JP7053031B2 (ja) | 情報処理システム、情報処理装置、情報処理方法及び情報処理プログラム | |
JP2009187364A (ja) | アクセス権管理システム | |
JP2022528710A (ja) | 分散台帳のためのエイリアスに基づくアドレッシングを実施する、コンピュータにより実施されるシステム及び方法 | |
US8732456B2 (en) | Enterprise environment disk encryption | |
JP7462903B2 (ja) | 利用者端末、認証者端末、登録者端末、管理システムおよびプログラム | |
WO2019163040A1 (ja) | アクセス管理システム、及びそのプログラム | |
US11310272B2 (en) | Method and system creating and using data confidence fabric processing paths | |
CN103858127A (zh) | 用于删除信息以维持安全级别的方法、系统、中介服务器、客户端和计算机程序 | |
JP2008217300A (ja) | 生体情報付きファイル暗号化システム及び復号化システム、並びにその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20180508 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180511 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6340120 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |