JP2020071880A - デバイス証明技術 - Google Patents

デバイス証明技術 Download PDF

Info

Publication number
JP2020071880A
JP2020071880A JP2019194632A JP2019194632A JP2020071880A JP 2020071880 A JP2020071880 A JP 2020071880A JP 2019194632 A JP2019194632 A JP 2019194632A JP 2019194632 A JP2019194632 A JP 2019194632A JP 2020071880 A JP2020071880 A JP 2020071880A
Authority
JP
Japan
Prior art keywords
secret code
verification
identifier
certification
hash value
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.)
Pending
Application number
JP2019194632A
Other languages
English (en)
Inventor
ヘイトン リチャード
Hayton Richard
ヘイトン リチャード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Trustonic Ltd
Original Assignee
Trustonic Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Trustonic Ltd filed Critical Trustonic Ltd
Publication of JP2020071880A publication Critical patent/JP2020071880A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】デバイスがデバイスに関するアサーションを証明可能とする。【解決手段】システム100において、検証装置140は、証明識別子と、証明識別子に対応する基本秘密コードを生成することと、証明識別子及び検証秘密コードを、アサーションとともに記憶する。照明方法は、検証秘密コードが、基本秘密コードに基づいていることと、証明識別子及びデバイス秘密コードをデバイスに提供するためのアダプタ又は製造者に提供し、デバイス秘密コードは基本秘密コードに基づいていることと、を含む。【選択図】図1

Description

本技術は、電子デバイスの分野に関する。より具体的には、本技術は、デバイスに関するアサーションをデバイスが証明できるようにするための証明を提供することに関する。
モバイルバンキング、ヘルスケアサービスへのアクセス又は雇用の詳細の取り扱いなど、潜在的に機密性の高い情報の取り扱いを伴う可能性のあるサービスへのアクセスに電子デバイスが使用されることが増えている。また、モノのインターネット(IoT)の発展に伴い、温度データ又は例えばユーザが存在するか否かを示す近接情報などのセンサ情報を提供する可能性のある電子デバイスによって提供される情報に基づいて、暖房、空調、又は街路照明などのシステムが制御されることが一般的になりつつある。これらのシナリオでは、サービスプロバイダは、電子デバイスとの対話が安全であることを信頼するために、電子デバイスが特定の要件を満たしていることを検証できることが重要である。サービスプロバイダは、電子デバイスの製造に使用される製造プロセス中、又はそのライフサイクル中のデバイスのその後の適応中に特定のイベントが発生したことを確信する必要がある場合がある。例えば、このようなイベントは、デバイス製造者によって構成要素に埋め込まれているシステムオンチップ、特定の品質保証ステップを通過するデバイス、又は、デバイスに提供されているいくつかの特定のソフトウェアを含み得る。
外部エンティティがそのようなイベントが発生したことを検証できるようにする詳細な証明情報をデバイスに記憶する暗号技術が提供され得る。ただし、このような技術では通常、デバイス自体に大量の情報を記憶する必要がある。センサ、アクチュエータ、又はIoT内の他のデバイスなどの非常に小さなコンピューティングデバイスでは、メモリ記憶容量、処理能力及び通信帯域幅が非常に制限される可能性があるため、このようなアプローチは実行できない。更に、そのような情報をデバイスに記憶すると、情報が抽出されて別のデバイスに複製され、偽装デバイスがイベントの証明を受けたと誤って証明できる「偽装」デバイスを作成できる可能性がある。
本開示の少なくとも特定の実施形態は、上述のこれらの問題のうちの1つ以上に対処する。
特定の態様及び実施形態は、添付の特許請求の範囲に記載されている。
一観点から見ると、デバイスがデバイスに関するアサーションを証明できるようにする証明を提供する方法を提供でき、証明識別子と、証明識別子に対応する基本秘密コードを生成することと、証明識別子及び検証秘密コードを、アサーションとともに記憶するための検証装置に提供し、検証秘密コードは、基本秘密コードに基づいていることと、証明識別子及びデバイス秘密コードをデバイスに提供するためのアダプタ又は製造者に提供し、デバイス秘密コードは基本秘密コードに基づいていることと、を含む。
異なるエンティティに異なる秘密コードを提供すると、あるエンティティから秘密コードが抽出され、別のエンティティの偽装バージョンを作成するために使用されるリスクが軽減される。例えば、検証装置から検証秘密コードを抽出しても、どのデバイス秘密コードが製造者又はアダプタに提供されたのかを判定できず、したがって検証装置からのデータ盗難の影響が軽減される。更に、このアプローチでは、アサーション自体をデバイスから離れた場所に記憶できるため、デバイスの記憶領域を節約できる。いくつかの例では、証明識別子は証明生成器を使用して生成される。証明生成器は、検証装置とは物理的に別個のデバイスであってもよく、又は証明生成器及び検証装置の両方が同じ物理デバイスに配置されていてもよい。いくつかの例では、証明生成器はデバイス秘密コード及び/又は検証秘密コードを生成する。
いくつかの例では、証明識別子及びデバイス秘密コードは、製造者又はアダプタによってデバイスに提供される。それにより、デバイス秘密コードは、製造者又はアダプタの制御下でデバイスに配布される。したがって、この配布は、証明識別子及び基本秘密コードを生成する検証装置又はデバイス(例えば、証明生成器)の直接の関与、あるいは証明識別子及び基本秘密コードを生成する検証装置又はデバイス(例えば、証明生成器)への配布に関する情報の提供なしに行うことができる。
いくつかの例では、デバイス秘密コードは基本秘密コードと同じである。これにより、デバイス秘密コードを生成するための追加処理の必要性を回避できる。
いくつかの例では、基本秘密コードは検証装置に提供されない。これにより、検証装置は基本秘密コードにアクセスできないため、検証装置からの情報の盗難により悪意のあるエンティティがデバイス秘密コード(基本秘密コードに基づく)を生成できなくなり、したがって、この情報を使用して偽装デバイスを作成することはできない。
いくつかの例では、検証秘密コードは、第1の所定のハッシュ関数を使用して基本秘密コードをハッシュすることにより生成される。そのため、一方向関数(ハッシュ関数など)を使用して検証秘密コードを生成することにより、一般にハッシュ関数を逆にして検証秘密コードから基本秘密コードを生成することはできない。いくつかの例では、検証秘密コードのこの生成は、検証秘密コードを検証装置に提供する前に、証明生成器によって実行される。他の例では、基本秘密コードが証明生成器に提供され、証明生成器は検証秘密コード自体を生成する。
いくつかの例では、デバイス秘密コードは基本秘密コードと同じであり、デバイスへの証明識別子及びデバイス秘密コードの提供に応じて、デバイスは検証秘密コードを生成するための第1の所定のハッシュ関数を使用してデバイス秘密コードをハッシュする。これにより、デバイスで一方向関数(ハッシュ関数など)を使用して派生秘密コード(検証秘密コード)を生成することにより、基本秘密/デバイス秘密コードをデバイスに記憶する必要がなくなり、したがって、デバイスからの情報の盗難により、悪意のある者が基本秘密/デバイス秘密コードを第2のデバイスに提供して、偽装デバイスを作成することはできない。
いくつかの例では、デバイスは、第2の所定のハッシュ関数を使用して、ローカルで利用可能な情報の1つ以上の項目と組み合わせて検証秘密コードを更にハッシュして、ハッシュ値を生成する。それにより、デバイスは、ローカルで利用可能な情報を使用してのみ生成できる、更なる派生秘密コード(ハッシュ値)を生成する。したがってこれは、ハッシュ値は、デバイスのローカルで利用可能な情報にアクセスできるデバイスによってのみ生成され、ハッシュ値を生成できるデバイスを制限することを意味する。検証の目的で(検証装置などで)、検証エンティティは、検証時にローカルで利用可能な情報にアクセスできることだけが必要である。つまり、この時点まで、デバイスはローカルで利用可能な情報をプライベートに保つことができる。更に、デバイスが検証秘密コードを記憶する必要がないため、デバイスからの情報の盗難により、デバイスに関する証明の検証が許可されないことを意味する。
いくつかの例では、第1の所定のハッシュ関数及び第2の所定のハッシュ関数は同じ計算関数を使用するが、異なるデータ入力で動作する。それにより、単一の計算ハッシュ関数のみをデバイスに記憶する必要があり、したがってスペースを節約し、一般に、ハッシュ関数のパフォーマンスの更なるハードウェア/ソフトウェア最適化を可能にする。
いくつかの例では、証明識別子及びデバイス秘密コードがデバイスに提供される初期証明識別子及び初期デバイス秘密コードである場合、ローカルで利用可能な情報の1つ以上の項目はデバイス識別子を含み、証明識別子及びデバイス秘密コードがデバイスに提供される初期証明識別子及び初期デバイス秘密コードでない場合、ローカルに記憶された情報の1つ以上の項目は以前のハッシュ値を含む。
それにより、初期証明識別子/デバイス秘密コードに対する第2の所定のハッシュ関数の使用は、デバイスの識別子を使用することによりデバイス自体に結び付けられたハッシュ値を生成する。更に、初期証明識別子/デバイス秘密コードの後の証明識別子/デバイス秘密コード上で第2の所定のハッシュ関数を使用する場合、以前のハッシュ値を使用することによって、生成された更なるハッシュ値は以前のハッシュ値(単数又は複数)に部分的に基づく。
それにより、更なるハッシュ値は、直接的又は間接的に入力された全ての以前のハッシュ値の「ダイジェスト」として機能する(つまり、第2の所定のハッシュ関数が複数の以前の証明識別子及びデバイス秘密コードに対応する以前のハッシュ値のチェーンに繰り返し適用された)。そのため、「ダイジェスト」は、全ての中間ハッシュ値をデバイスに記憶する必要なしに、ダイジェストを作った全ての証明識別子/デバイス秘密コードに対応する証明の検証に使用できる。
いくつかの例では、以前のハッシュ値は最新の以前のハッシュ値である。それにより、第2の所定のハッシュ関数は以前の全てのハッシュ値に繰り返し適用されるため、デバイスによって受信された全ての証明識別子/デバイス秘密コードに対応する証明の検証に最終ハッシュ値を使用できる。
いくつかの例では、ハッシュ値の生成後、デバイスはハッシュ値を記憶するが、デバイス秘密コード又は検証秘密コードは記憶しない。これにより、悪意のある者がデバイスに記憶された情報にアクセスした場合でも、盗まれた情報により、悪意のある者が偽装デバイスを作成したり、デバイスに関する証明を検証したりすることはできない。
いくつかの例では、デバイスは最新のハッシュ値のみを記憶する。最新のハッシュ値は以前の全てのハッシュ値の「ダイジェスト」として機能できるため、最新のハッシュ値を記憶すると、以前のハッシュ値自体を記憶することによってデバイス上の記憶装置を消費する必要なく、以前のハッシュ値のそれぞれに対応する証明を検証するのに十分である。
いくつかの例では、デバイスは検証秘密コードを証明識別子と組み合わせて更にハッシュし、ハッシュ値を生成する。それにより、ハッシュへの入力としてより多くの要素を含めることにより、ハッシュを逆にすることをより難しくすることによりセキュリティが強化される。
いくつかの例では、ハッシュ値の生成後、デバイスは証明識別子を記憶する。これにより、ハッシュ値がどの証明(単数又は複数)に対応するかを識別し、特定の例では証明を検証するために必要である、情報をデバイス自体が直接提供できる。
いくつかの例では、ローカルで利用可能な情報の1つ以上の項目は、メタデータを更に含む。これにより、より多くの要素をハッシュへの入力として含めることでセキュリティを強化し、ハッシュを逆にするのを更に難しくすることができる。更に、メタデータは、ハッシュ値が生成された時に、特定の情報(例えば、デバイスの内部ステータス、情報ペイロード、外部ソースからデバイスが受信した情報)がデバイスで利用できたことを確立できる。いくつかの例では、メタデータは、デバイスに存在するコードの一部又は全てと、デバイスに記憶されている1つ以上の公開キーとを含んでもよい。追加又は代替として、メタデータは、デバイスソフトウェアの状態(例えば、ソフトウェア名、バージョン、ソフトウェアに署名するために使用されるハッシュ/公開キー)、ハッシュ値が生成された時刻/日付、関与する人/マシン動作(単数又は複数)あるいは動作が行われた地理的位置に関する情報を含んでもよい。
いくつかの例では、ハッシュ値の生成後、デバイスはメタデータを記憶する。これにより、特定の例では、証明(単数又は複数)を検証するために必要なメタデータを、デバイス自体が直接提供できる。
一観点から見ると、検証装置がデバイスに関するアサーションを証明するデバイスからの証明を検証する方法を提供することができ、証明データベースから1つ以上のエントリを取得し、各エントリは証明識別子、検証秘密コード及びアサーションを含むことと、デバイスから1つ以上の証明識別子及びハッシュ値を取得することと、デバイスから取得したハッシュ値を検証するために、証明データベースから取得した対応する検証秘密コードとともに、デバイスから取得した1つ以上の証明識別子に対して検証動作を実行することと、検証動作の検証結果に応じて、デバイスから取得された1つ以上の証明識別子に関連付けられた1つ以上のアサーションが、デバイスに関して妥当か否かを判定することとを含む。言い換えれば、いくつかの例では、デバイスは1つ以上の証明識別子及びハッシュ値を検証装置に単純に提供するが、別個の証明データベースから取得されるアサーション自体(つまり、証明の実際の意味論上の意味)は提供しない。また、特定の例では、アサーションを追加又は代替としてデバイス自体に記憶できることも明確に企図されている。
証明識別子を証明データベース及びデバイスの両方から取得することにより、デバイスからのハッシュ値を検証秘密コード及び証明デバイスから受信した証明と照合することができ、検証装置は、検証秘密コード又はアサーションをデバイス自体に記憶する必要なしに、デバイスに関して様々な証明が正しいか否か検証できるため、スペースを節約できる。これは更に、どちらのエンティティも、単独又は組み合わせで偽装デバイスの作成を可能にする情報を記憶しないため、デバイス又は証明データベースのいずれからの情報の盗難のリスクも低減する。更に、証明を検証するには、デバイスと証明データベースの両方から情報を取得する必要がある。いくつかの例では、証明データベースは検証装置と同じ物理デバイス上に配置される及び/又は検証装置の一部である。他の例では、証明データベースは検証装置とは別個の物理デバイスに配置される。
いくつかの例では、デバイス識別子はデバイスから更に取得され、検証動作がデバイス識別子に対して更に実行される。これにより、特定のデバイス識別子に関してアサーションが特に妥当であると判定でき、一般に、少なくとも製造者/アダプタは、デバイス識別子がどの物理デバイスに属しているかを認識している。
いくつかの例では、デバイスからメタデータが更に取得され、メタデータに対して検証動作が更に実行される。それにより、検証プロセスの一部として、検証装置は、ハッシュ値が生成された時点でメタデータが既知であったことを証明できる。追加又は代替として、デバイスからの証明を検証する試みが行われた時点でメタデータが既知であったことを証明するために、デバイスからメタデータを取得することができる。
いくつかの例では、検証動作は、デバイスから取得された証明識別子ごとに少なくとも1つのハッシュ関数を含み、各ハッシュ関数は、以前のハッシュ関数の結果に繰り返し作用し、それぞれの連続するハッシュ関数は、少なくとも以前のハッシュ関数で入力として以前に使用されていない証明識別子を入力として取得する。それにより、以前のハッシュ関数(単数又は複数)の結果(単数又は複数)を取得することにより、ハッシュ関数が互いに計算に依存する結果として、特定のシーケンスで複数の証明が生成されたことを検証できる。
いくつかの例では、複数の証明識別子がデバイスから取得され、最新のハッシュ値に対応する1つのハッシュ値のみがデバイスから取得され、デバイスから取得された複数の証明識別子に関連付けられた複数のアサーションのうちの全てが、検証動作による検証結果に応じてデバイスに関して妥当であるか、又は、デバイスから取得された複数の証明識別子に関連付けられた複数のアサーションのうちの、検証動作による検証結果に応じてデバイスに関して妥当であるアサーションはないか、が判定される。これにより、デバイスから単一のハッシュ値を受信するだけで複数のアサーションを検証できるため、通信帯域幅を節約し、デバイスが単一の最新のハッシュ値より多くを記憶する必要性を減らす。
いくつかの例では、複数の証明識別子がデバイスから取得され、複数のハッシュ値がデバイスから取得され、検証動作は複数の検証動作を含み、それによって、デバイスから取得された複数の証明識別子に関連付けられた複数のアサーションのサブセットが、複数の検証動作の検証結果に応じて妥当であるか否かが判定される。したがって、複数のハッシュ値を受信することにより、検証装置はアサーションのサブセットを個別に検証できるため、ネガティブ検証の場合、アサーション(単数又は複数)のどの特定のサブセットが偽であるかを少なくとも部分的に識別することができる。したがって、例えば、(例えば、特に対話するデバイス又はエンティティへの)偽のアサーションのソースを絞り込むことができる場合がある。例えば、いくつかの例では、2、3、又は4つの証明識別子ごとにハッシュ値を取得してもよい。
いくつかの例では、検証装置は、特定の証明識別子に関連する複数の検証秘密コード及びアサーションを証明データベースから取得し、特定の証明識別子がデバイスから取得されると、それぞれの可能な検証秘密コードを使用して検証動作が試行される。それにより、非固有の証明識別子の使用を徹底して、証明を妥当な時間で検証できるようにしながら、短い証明識別子を使用することができる(従って、デバイスの記憶スペースを節約できる)。例えば、各証明識別子に対して3つの検証秘密コード及び3つのアサーションがある場合、最悪の場合検証動作を3回試行して、あるとすればどのアサーションが妥当であるかを判定する必要がある。ただし、テストされた最初のアサーションが妥当であることが示されている場合、いくつかの例では、検証動作は2番目と3番目のアサーションをチェックしない。
一観点から見ると、デバイスがデバイスに関するアサーションを証明できるようにする情報をデバイスに記憶する方法を提供することができ、デバイスで、基本秘密コード及び対応する証明識別子を受信することと、デバイスで、第1の所定のハッシュ関数を使用して、基本秘密コードをハッシュし、検証秘密コードを生成することと、デバイスで第2の所定のハッシュ関数を使用して、第2の所定のハッシュ関数を使用してローカルで利用可能な情報の1つ以上の項目と組み合わせて検証秘密コードをハッシュして、ハッシュ値を生成することとを含み、ハッシュ値の生成後、デバイスはハッシュ値を記憶する。
デバイスで2つのハッシュを実行して記憶されているハッシュ値を生成することにより、デバイスは基本秘密コード又は検証秘密コードのいずれも記憶する必要がない。これにより、デバイスはスペースを節約できるが、ハッシュ値がデバイスから盗まれた場合(例えば、ハッシュ値のみがデバイスに記憶されているため)、偽装デバイスを作成できないため、複製にも耐性がある。デバイスによって実行される2つのハッシュ動作は一方向の動作であるため、一般に基本秘密コードはハッシュ値から再作成できないため、偽装は作成できず、したがって、基本秘密コードは偽装を作成する第2のデバイスに提供できない。
一観点から見ると、デバイスを制御して上記の方法のいずれかを実行するためのコンピュータプログラムが提供され得る。いくつかの例では、コンピュータプログラムは記憶媒体に記憶される。
一観点から見ると、装置を提供することができ、データ処理を実行するための処理回路と、上記の方法のいずれかを実行するために処理回路を制御するためのコンピュータプログラムを記憶するデータストレージとを含む。
他の態様も、本開示を検討すると、特に図面の簡単な説明、発明を実施するための形態及び特許請求の範囲を検討すると明らかになるであろう。
本開示の例は、添付の図面を参照して、例としてのみ説明される。
開示の例を実装するためのシステム例を概略的に示す。 デバイスに関するアサーションをデバイスが証明できるようにするための証明を提供する方法を概略的に示す。 検証装置が、デバイスに関するアサーションを検証するデバイスからの証明を検証するための方法を概略的に示す。 証明データベースの情報コンテンツの例を概略的に示す。 デバイスが、情報をデバイスに記憶し、デバイスに関するアサーションをデバイスが証明できるようにする方法を概略的に示す。 電子デバイスの例を概略的に示す。
本開示は様々な修正及び代替形態の影響を受けやすいが、特定の例示的なアプローチが図面に例として示されており、本明細書で詳細に説明される。ただし、添付の図面及び詳細な説明は、開示を開示された特定の形態に限定するものではなく、開示は、特許請求された発明の精神及び範囲に含まれる全ての修正、均等物、及び代替物を網羅するものであることを理解されたい。
本開示の上述の例の特徴は、任意の適切な組み合わせで便利にかつ交換可能に使用できることが認識されるであろう。
図1は、本開示の例を実施するためのシステム100の概略図を示している。このシステムは、証明生成器110、製造者/アダプタ120、デバイス130、検証装置140及び証明データベース150を含む。これらの各要素は、図6及びその対応する以下の説明に示す電子デバイスを使用して実装できる。
図1には、様々な要素間の複数のリンケージの例も示されている。これらのリンケージは、要素間の通信チャネルを表す。これらの通信チャネルは、有線の電気接続(イーサネット(登録商標)など)を使用して、有線の光学接続(光ファイバケーブルなど)、無線接続(Wi−Fi(登録商標)、Bluetooth(登録商標)、ZigBee(登録商標)など)を使用して、又は要素がデータを通信できるようにする他の適切な技術を使用して実装してもよい。
複数の主要なリンケージが示されているが、特定の例では他のリンケージもまた存在してもよい。例えば、製造者/アダプタ120は、証明データベース150への直接リンクを有してもよく、又は証明生成器110はデバイス130に直接連結されてもよい。また、特定の例では、示されている全てのリンケージが存在するわけではないことも理解されよう。例えば、デバイス130と検証装置140との間のリンケージは存在しなくてもよく、代わりにデバイス130は、製造者/アダプタ120及び証明生成器110を介して検証装置140と通信してもよい。
また、特定の例では、全てのリンケージが永続的であるとは限らず、代わりに一時的又は周期的であることも理解される。例えば、製造者/アダプタ120は、製造中又は適応中にのみデバイス130に接続されてもよく、別の例として、デバイス130と検証装置140との間の接続は、デバイスの検証中にのみ利用可能であってもよい。
証明生成器110は、証明識別子及び対応する基本秘密コードの生成を担当する。特定の例では、証明生成器は、証明プロセスを全体的に制御している第一者によって制御される中央サーバである。
製造者/アダプタ120は、証明識別子(単数又は複数)及び対応する基本秘密コード(単数又は複数)のデバイス130への提供を担当するエンティティである。特定の例では、製造者/アダプタ120は、少なくとも部分的に完成デバイス130の作製を担当する第2者によって制御される製造、組立、又は適応機器に対応する。
デバイス130は、デバイスに関するアサーションの証明が行われているエンティティである。特定の例では、デバイスはモノのインターネット(IoT)デバイスに対応する。このようなIoTデバイスは通常、センサ、アクチュエータ、又はIoT内の他のデバイスなどの非常に小さいコンピューティングデバイスであり、メモリ記憶容量、処理能力及び通信帯域幅が非常に制限される可能性がある。
検証装置140は、デバイスに関するアサーションが妥当であるか否かを検証する役割を果たすエンティティである。特定の例では、検証装置は、第一者(すなわち、証明生成器と同じ当事者)によって制御されるサーバである。特定の例では、検証装置はクラウドホスト型Webサービスである。
証明データベース150は、証明識別子をアサーション、並びにデバイスに関するアサーションの検証に使用される秘密コードと連結する情報を記憶するエンティティである。特定の例では、証明データベースは検証装置と同じ物理デバイス上に配置される及び/又は検証装置の一部である。他の例では、証明データベースは検証装置とは別個の物理デバイスに配置され、通信チャネル(リンケージ)で接続される。
証明データベースの場所の選択に加えて、他の要素を組み合わせることができる。特定の例では、要素はより大きなエンティティのソフトウェア又はハードウェアモジュールとして実装できる。例えば、証明生成器110及び検証装置140は、同じ物理的/論理的デバイス上に配置されてもよい。別の例として、製造者/アダプタ120及び検証装置140は、同じ物理的/論理的デバイス上に配置されてもよい。
システム100は、複数の様々な要素を含むことができることも理解されよう。例えば、システム100は、複数のデバイス130に作用して、それぞれが検証された自身に関するアサーションを有することができるようにすることができる。別の例として、システム100は、全て単一のデバイス130に作用するか、又はそれぞれ異なるデバイス130に作用してもよい複数の製造者/アダプタ120を含むことができる。
図2は、デバイス130が以下のステップを含むデバイス130に関するアサーションを証明できるようにするための証明を提供する方法200の概略図を示す。
ステップS210で、証明識別子と、証明識別子に対応する基本秘密コードとが生成される。特定の例では、生成は証明生成器110によって実行される。
ステップS220で、証明識別子及び検証秘密コードが検証装置140に提供され、検証秘密コードは基本秘密コードに基づいている。特定の例では、証明識別子及び検証秘密コードは、証明生成器110によって提供される。特定の例では、基本秘密コードは検証装置140に提供されない。
特定の例では、検証秘密コードは、第1の所定のハッシュ関数を使用して基本秘密コードをハッシュすることにより生成される。第1の所定のハッシュ関数は、「一方向」関数のセキュリティを更に強化するための暗号化ハッシュ関数であってもよい。適切なハッシングアルゴリズムの例には、MD5、SHAファミリー(SHA−256など)又はその他の適切なハッシングアルゴリズムが含まれる。また、いくつかの例では、第1の所定のハッシュ関数は、巡回冗長検査などの非暗号化ハッシュ関数であってもよいことも明確に企図されている。特定の例では、検証秘密コードは、証明生成器110で生成され、検証装置140が基本秘密コードに決してアクセスできないように検証装置140に送信される。他の例では、基本秘密コードは、検証装置140に送信され、検証装置140は、第1のハッシングアルゴリズムを使用してハッシュを実行し、検証秘密コードに到達する。
ステップS230で、証明識別子及びデバイス秘密コードが、デバイス130への提供のために製造者又はアダプタ120に提供される。特定の例では、証明識別子及びデバイス秘密コードは、証明生成器110によって提供される。特定の例では、デバイスの秘密コードは基本秘密コードと同じである。
ステップS240で、証明識別子及びデバイス秘密コードは、製造者又はアダプタ120によってデバイス130に提供される。特定の例では、デバイス秘密コードは基本秘密コードと同じであり、デバイス130への証明識別子及びデバイス秘密コードの提供に応じて、デバイス130は検証秘密コードを生成するための第1の所定のハッシュ関数を使用してデバイス秘密コードをハッシュする。この第1の所定のハッシュ関数は、検証装置140に検証秘密コードを提供するために使用されるものと同じであり、したがって、検証装置140及びデバイス130の両方は、このコードを両方のデバイスに配布することなく同じ検証秘密コードのコピーで終わる。
特定の例では、デバイスは次に、第2の所定のハッシュ関数を使用して、ローカルで利用可能な情報の1つ以上の項目と組み合わせて検証秘密コードを更にハッシュして、ハッシュ値を生成する。第2の所定のハッシュ関数は、第1の所定のハッシュ関数に使用されるものと同じ計算関数(例えば、SHA−256)であってもよいが、異なる入力に対して単に動作するだけでもよい。
特定の例では、デバイス130は、証明識別子及びそれが受け取るデバイス秘密コードが、受信した初期(つまり最初に)のそのような証明識別子及びデバイス秘密コードであるか、又はその後受信した証明識別子及びデバイス秘密コードであるかに応じて、異なるローカルで利用可能な情報を使用してもよい。特定の例では、証明識別子及びデバイス秘密コードがデバイス130に提供される初期証明識別子及び初期デバイス秘密コードである場合、ローカルで利用可能な情報の1つ以上の項目はデバイス識別子を含み、証明識別子及びデバイス秘密コードがデバイス130に提供される初期証明識別子及び初期デバイス秘密コードでない場合、ローカルに記憶された情報の1つ以上の項目は以前のハッシュ値を含む。言い換えれば、第2の所定のハッシュ関数は、第2の所定のハッシュ関数の以前の繰り返しの以前のハッシュ値を取得して、新しい証明識別子及びデバイス秘密コードが受信されるたびに繰り返し適用される。これは、最終的なハッシュ値を、少なくともいくつかの以前のハッシュ値、したがってこれらの以前のハッシュ値を生成した対応する証明識別子及びデバイス秘密コード、の「ダイジェスト」にすることと考えることができる。いくつかの例では、以前のハッシュ値は以前のハッシュ値であり、この反復動作を通じて最終ハッシュ値はデバイス130で生成された全てのハッシュ値のダイジェストとして機能する。いくつかの例では、所定のハッシュ値の生成後、ハッシュ値はデバイス130によって記憶されるが、対応するデバイス秘密コード及び検証秘密コードは破棄され、デバイス130に記憶されない。更に、いくつかの例では、最新のハッシュ値のみが記憶され、最新のハッシュ値が生成された後に以前の全てのハッシュ値が破棄される。前述のように、最新のハッシュ値は以前の全てのハッシュ値のダイジェストとして機能するため、ハッシュ値自体が破棄された場合でも、以前の全てのハッシュ値の妥当性を依然として確認することができる。
特定の例では、データの他の項目をハッシュ関数への入力として含めて、セキュリティを更に強化できる。例えば、特定の例では、第2の所定のハッシュ関数は、証明識別子及び/又はメタデータ(例えば、デバイスの内部ステータスに関する情報、情報ペイロード、外部ソースからデバイスが受信した情報)を入力として更に取得することができる。いくつかの例では、メタデータは、デバイスに存在するコードの一部又は全てと、デバイスに記憶されている1つ以上の公開キーとを含んでもよい。追加又は代替として、メタデータは、デバイスソフトウェアの状態(例えば、ソフトウェア名、バージョン、ソフトウェアに署名するために使用されるハッシュ/公開キー)、ハッシュ値が生成された時刻/日付、関与する人/マシン動作(単数又は複数)あるいは動作が行われた地理的位置に関する情報を含んでもよい。これらの追加の入力が使用される場合、ハッシュ値が生成された後、デバイス130に記憶することもできる。
方法のステップは特定の順序で描かれているが、任意の適切な順序でステップを実行できることが明確に企図されていることが認識されよう。例えば、ステップS230は、ステップS220の前に実行することができ、ステップS240は、ステップS230が実行された後の任意の時点で実行することができる。
図3は、検証装置140が、以下のステップを含むデバイス130に関するアサーションを証明するデバイス130からの証明を検証する方法300の概略図を示す。
ステップS310で、検証装置140は、証明データベース150から1つ以上のエントリを取得し、各エントリは、証明識別子、検証秘密コード及びアサーションを含む。特定の例において、特定の証明識別子に関連する複数の検証秘密コード及びアサーションは、証明データベース150から検証装置140によって取得される。言い換えれば、証明識別子は特定の検証秘密コード及びアサーションを一意に識別しない場合がある。
ステップS320では、検証装置140は、デバイス130から1つ以上の証明識別子及びハッシュ値を取得する。特定の例では、デバイス識別子及び/又はメタデータもまたデバイスから取得される。追加又は代替として、いくつかの例では、複数の証明識別子がデバイスから取得され、最新のハッシュ値に対応する1つのハッシュ値のみがデバイス130から取得される。他の例では、複数の証明識別子がデバイスから取得され、複数のハッシュ値がデバイスから取得される。
ステップ330で、検証装置140は、証明データベース150から取得した対応する検証秘密コードとともに、デバイス130から取得した1つ以上の証明識別子に対して検証動作を実行して、デバイス130から取得したハッシュ値を検証する。特定の例では、デバイス識別子及び/又はメタデータもまた、デバイスから取得されると、検証動作がデバイス識別子及び/又はメタデータに対して更に実行される。
特定の例では、検証動作は、デバイス130から取得された証明識別子ごとに少なくとも1つのハッシュ関数を含む。各ハッシュ関数は、以前のハッシュ関数の結果に繰り返し作用し、それぞれの連続するハッシュ関数は、少なくとも以前のハッシュ関数で入力として以前に使用されていない証明識別子を入力として取得する。言い換えれば、例えば、検証装置140により受信されたハッシュ値がデバイス130上で実行された反復動作により生成された場合(すなわち、送信されたハッシュ値が1つ以上の以前のハッシュ値に部分的に基づいてデバイス130で生成された場合)、検証動作は、この「ダイジェスト」ハッシュ値に繰り返し作用して、受信したハッシュ値の各「レイヤ」を連続的に検証し、最終的にハッシュ値のチェーン全体を検証できる。
特定の例では、複数の証明識別子がデバイスから取得され、最新のハッシュ値に対応する1つのハッシュ値のみがデバイスから取得され、デバイスから取得された複数の証明識別子に関連付けられた複数のアサーションのうちの全てが、検証動作による検証結果に応じてデバイスに関して妥当であるか、又は、デバイスから取得された複数の証明識別子に関連付けられた複数のアサーションのうちの、検証動作による検証結果に応じてデバイスに関して妥当であるアサーションはないか、を検証動作は判定する。
他の例では、複数の証明識別子がデバイスから取得され、複数のハッシュ値がデバイスから取得され、検証動作は複数の個々の検証動作を含み、それによって、デバイスから取得された複数の証明識別子に関連付けられた複数のアサーションのサブセットが、複数の検証動作の検証結果に応じて妥当であるか否かが判定される。
更なる例では、検証装置140は、特定の証明識別子に関連する複数の検証秘密コード及びアサーションを証明データベース150から取得し、検証動作は、それぞれの可能な検証秘密コードを使用して、デバイスから取得した証明識別子に関連して試行される。言い換えると、検証動作は、一意ではない証明識別子に関連付けられた全ての可能な検証秘密コードに対して試行される。
ステップ340で、検証装置140は、デバイス130から取得された1つ以上の証明識別子に関連付けられた1つ以上のアサーションが検証動作の検証結果に応じて、デバイス130に関して妥当か否かを判定する。
方法のステップは特定の順序で描かれているが、任意の適切な順序でステップを実行できることが明確に企図されていることが認識されよう。例えば、ステップS320は、ステップS310の前に実行することができる。
図4は、証明データベース150の例示的な情報コンテンツ400を概略的に示す。示されている特定の例では、証明識別子、検証秘密コード、アサーション、追加フィールド1及び追加フィールド2の5つのフィールドが示されている。3つのサンプルエントリが示される。最初の行には、1001の証明識別子、AB47EF89の検証秘密コード及びデバイスプロパティ1のアサーションがある(例えば、データストレージ620のセキュリティ領域630がある)。2番目の行には、1002の証明識別子、749DABE6の検証秘密コード及びイベント1のアサーションがある(例えば、特定の製造者/アダプタ120によってインストールされた通信I/F 640がある)。3番目の行には、1003の証明識別子、BF56DEF0の検証秘密コード及び品質保証1のアサーションがある(例えば、データストレージ620に記憶されているOSの整合性が検証されている)。
更に、各行には2つの追加フィールド、1及び2がある。これらには、例えば、特定の証明識別子が割り当てられた特定の製造者/アダプタ、2回又は特定のアサーションを検証する要求が行われた回数など、必要な追加情報を含めることができる。実質的に任意の所望の情報をこれらのフィールドに記憶できると考えられる。いくつかの例では、フィールド(単数又は複数)は、証明が以前に見られたデバイス(単数又は複数)の識別子(例えば、デバイス識別子)を含むことができ、フィールド(単数又は複数)は証明の検証中に更新される。
上述したように、証明データベース150のこの例示的な情報コンテンツ400は、1つの可能なフォーマットにすぎない。例えば、情報コンテンツの行と列の数は少なくても多くてもよい。例えば、情報コンテンツには、0、1、3、4、又は5つの追加フィールドがあってもよい。情報コンテンツには、実質的に必要な任意の数の行を含めることができる。証明識別子、検証秘密コード及びアサーションのエントリに表示される特定の形式は、単なる一例の形式であることが更に明確に認識される。例えば、証明識別子及び検証秘密コードは、より多く又はより少ない数の記号で構成でき、これらの記号は、例えば、10進数、16進数、又はASCII文字セットで構成できる。
図5は、デバイス130が情報をデバイス130に記憶し、デバイス130が以下のステップを含むデバイス130に関するアサーションを証明できるようにするための方法500の概略図を示す。
ステップS510で、基本秘密コード及び対応する証明識別子がデバイス130で受信される。
ステップS520で、基本秘密コードは、第1の所定のハッシュ関数を使用してデバイス130でハッシュされ、検証秘密コードを生成する。
ステップS530で、検証秘密コードは、第2の所定のハッシュ関数を使用して、ローカルで利用可能な情報の1つ以上の項目と組み合わせてデバイスでハッシュされて、ハッシュ値を生成する。
ステップS540では、ハッシュ値がデバイス130に記憶される。
図6は、電子デバイス600の一例を概略的に示す。デバイスは、プログラム命令に応じてデータ処理を実行するための処理回路610、処理回路610によって処理されるデータ及び命令を記憶するためのデータストレージ620を有する。データストレージ620は、ハードウェアメカニズム(例えば、信頼できる実行環境を提供するメモリ保護ユニット又はセキュリティメカニズムを使用)又はソフトウェアメカニズム(例えば、暗号化)により保護されるセキュア領域630を有することができ、その結果、セキュア領域630に記憶されたデータには、信頼できる環境内で実行されていないソフトウェアはアクセスできない。デバイス600は、外部デバイスと通信するための通信インタフェース640を有する。例えば、通信インタフェース640は、イーサネット(登録商標)、WiFi(登録商標)、ブルートゥース(登録商標)、ZigBee(登録商標)などのような他の範囲の異なる通信プロトコルを使用することができる。デバイスは、温度、圧力、近くのユーザの近接などの特定の外部条件を感知するための1つ以上のセンサ650を有してもよい。提供される特定のセンサ650は、デバイスの目的に依存し得る。図6は、デバイスに提供され得る可能なハードウェアの単なる例であり、他の構成要素も提供され得ることが理解されるであろう。例えば、情報をユーザに表示し、ユーザからの入力を受信するために、ユーザとの対話が予想されるいくつかのデバイスに、ディスプレイ及び/又はユーザインタフェースモジュールを提供することができる。他の種類のデバイスは、単にデータをキャプチャして外部デバイスにデータを送信するセンサであってもよいため、これらの種類のデバイスはユーザインタフェイスやディスプレイを必要としない場合がある。証明生成器110、製造者/アダプタ120、検証装置140又は証明データベース150のいずれかを実装する場合は、電子デバイス600に対して、デバイス130を実装する場合よりも処理回路がより強力であり、データストレージがより大きくなり得ることが理解されよう。
上述の方法は、装置で実行されるコンピュータプログラムの制御下で実行され得る。したがって、コンピュータプログラムは、上記の方法のいずれかを実行するための装置を制御するための命令を含むことができる(証明生成器110、製造者/アダプタ120、デバイス130、検証装置140及び証明データベース150のいずれかで実行される方法を含む)。プログラムは、記憶媒体に記憶できる。記憶媒体は、非一時的な記録媒体又は一時的な信号媒体であってもよい。
本出願において、「〜ように構成される」という用語は、装置の要素が定義された動作を実行することができる構成を有することを意味するために使用される。この文脈において、「構成」は、ハードウェア又はソフトウェアの相互接続の配置又は方法を意味する。例えば、装置は、定義された動作を提供する専用のハードウェアを有することができ、又はプロセッサ若しくは他の処理装置が機能を実行するようにプログラムされてもよい。「〜ように構成される」は、定義された動作を提供するために装置要素を何らかの方法で変更する必要があることを意味しない。
本開示の例示的な教示を添付の図面を参照して詳細に説明したが、本発明はこれらの厳密な教示に限定されず、様々な変更及び修正が添付の特許請求の範囲によって規定される本発明の範囲及び趣旨から逸脱することなく、当業者により本発明の範囲内において行うことができる。

Claims (27)

  1. デバイスが前記デバイスに関するアサーションを証明できるようにする証明を提供する方法であって、
    証明識別子と、前記証明識別子に対応する基本秘密コードを生成することと、
    前記証明識別子及び検証秘密コードを、前記アサーションとともに記憶するための検証装置に提供し、前記検証秘密コードは、前記基本秘密コードに基づいていることと、
    前記証明識別子及びデバイス秘密コードをデバイスに提供するためのアダプタ又は製造者に提供し、前記デバイス秘密コードは前記基本秘密コードに基づいていることと
    を含む、方法。
  2. 前記証明識別子及び前記デバイス秘密コードが、前記製造者又はアダプタによって前記デバイスに提供される、請求項1に記載の方法。
  3. 前記デバイス秘密コードは、前記基本秘密コードと同じである、請求項1又は2に記載の方法。
  4. 前記基本秘密コードは、前記検証装置に提供されない、請求項1〜3のいずれか一項に記載の方法。
  5. 前記検証秘密コードは、第1の所定のハッシュ関数を使用して前記基本秘密コードをハッシュすることにより生成される、請求項1〜4のいずれか一項に記載の方法。
  6. 前記デバイス秘密コードは前記基本秘密コードと同じであり、前記デバイスへの前記証明識別子及び前記デバイス秘密コードの提供に応じて、前記デバイスは前記検証秘密コードを生成するための前記第1の所定のハッシュ関数を使用して前記デバイス秘密コードをハッシュする、請求項5に記載の方法。
  7. 前記デバイスは、第2の所定のハッシュ関数を使用して、ローカルで利用可能な情報の1つ以上の項目と組み合わせて前記検証秘密コードを更にハッシュして、ハッシュ値を生成する、請求項6に記載の方法。
  8. 前記第1の所定のハッシュ関数及び第2の所定のハッシュ関数は、同じ計算関数を使用するが、異なるデータ入力で動作する、請求項7に記載の方法。
  9. 前記証明識別子及びデバイス秘密コードが前記デバイスに提供される初期証明識別子及び初期デバイス秘密コードである場合、ローカルで利用可能な情報の前記1つ以上の項目はデバイス識別子を含み、
    前記証明識別子及びデバイス秘密コードが前記デバイスに提供される前記初期証明識別子及び前記初期デバイス秘密コードでない場合、ローカルに記憶された情報の前記1つ以上の項目は以前のハッシュ値を含む、請求項7又は8に記載の方法。
  10. 前記以前のハッシュ値は、最新の以前のハッシュ値である、請求項9に記載の方法。
  11. 前記ハッシュ値の生成後、前記デバイスは前記ハッシュ値を記憶するが、前記デバイス秘密コード又は検証秘密コードは記憶しない、請求項9又は10に記載の方法。
  12. 前記デバイスは、前記最新のハッシュ値のみを記憶する、請求項11に記載の方法。
  13. 前記デバイスは、前記検証秘密コードを前記証明識別子と組み合わせて更にハッシュして、前記ハッシュ値を生成する、請求項7〜12のいずれか一項に記載の方法。
  14. 前記ハッシュ値の生成後、前記デバイスが前記証明識別子を記憶する、請求項13に記載の方法。
  15. 前記ローカルで利用可能な情報の1つ以上の項目は、メタデータを更に含む、請求項7〜14のいずれか一項に記載の方法。
  16. 前記ハッシュ値の生成後、前記デバイスは前記メタデータを記憶する、請求項15に記載の方法。
  17. 検証装置が前記デバイスに関するアサーションを証明するデバイスからの証明を検証する方法であって、
    証明データベースから1つ以上のエントリを取得し、各エントリは証明識別子、検証秘密コード及びアサーションを含むことと、
    前記デバイスから1つ以上の証明識別子及びハッシュ値を取得することと、
    前記デバイスから取得した前記ハッシュ値を検証するために、前記証明データベースから取得した前記対応する検証秘密コードとともに、前記デバイスから取得した前記1つ以上の証明識別子に対して検証動作を実行することと、
    前記検証動作の検証結果に応じて、前記デバイスから取得された1つ以上の証明識別子に関連付けられた前記1つ以上のアサーションが、前記デバイスに関して妥当か否かを判定することと
    を含む、方法。
  18. デバイス識別子が前記デバイスから更に取得され、前記検証動作が前記デバイス識別子に対して更に実行される、請求項17に記載の方法。
  19. 前記デバイスからメタデータが更に取得され、前記メタデータに対して前記検証動作が更に実行される、請求項17又は18に記載の方法。
  20. 前記検証動作は、前記デバイスから取得された証明識別子ごとに少なくとも1つのハッシュ関数を含み、各ハッシュ関数は、前記以前のハッシュ関数の前記結果に繰り返し作用し、それぞれの連続するハッシュ関数は、少なくとも前記以前のハッシュ関数で入力として以前に使用されていない証明識別子を入力として取得する、請求項17〜19のいずれか一項に記載の方法。
  21. 複数の証明識別子が前記デバイスから取得され、前記最新のハッシュ値に対応する1つのハッシュ値のみが前記デバイスから取得され、
    前記デバイスから取得された前記複数の証明識別子に関連付けられた前記複数のアサーションのうちの全てが、前記検証動作による前記検証結果に応じて前記デバイスに関して妥当であるか、又は、前記デバイスから取得された前記複数の証明識別子に関連付けられた前記複数のアサーションのうちの、前記検証動作による前記検証結果に応じて前記デバイスに関して妥当であるアサーションはないか、が判定される、請求項17〜20のいずれか一項に記載の方法。
  22. 複数の証明識別子が前記デバイスから取得され、複数のハッシュ値が前記デバイスから取得され、前記検証動作は複数の検証動作を含み、それによって、前記デバイスから取得された前記複数の証明識別子に関連付けられた複数のアサーションのサブセットが、前記複数の検証動作の前記検証結果に応じて妥当であるか否かが判定される、請求項17〜20のいずれか一項に記載の方法。
  23. 前記検証装置は、特定の証明識別子に関連する複数の検証秘密コード及びアサーションを前記証明データベースから取得し、前記特定の証明識別子が前記デバイスから取得されると、それぞれの前記可能な検証秘密コードを使用して前記検証動作が試行される、請求項17〜22のいずれか一項に記載の方法。
  24. デバイスが前記デバイスに関するアサーションを証明できるようにする情報を前記デバイスに記憶する方法であって、
    前記デバイスで、基本秘密コード及び対応する証明識別子を受信することと、
    前記デバイスで、第1の所定のハッシュ関数を使用して、前記基本秘密コードをハッシュし、検証秘密コードを生成することと、
    前記デバイスで第2の所定のハッシュ関数を使用して、第2の所定のハッシュ関数を使用してローカルで利用可能な情報の1つ以上の項目と組み合わせて前記検証秘密コードをハッシュして、ハッシュ値を生成することと
    を含み、
    前記ハッシュ値の生成後、前記デバイスは前記ハッシュ値を記憶する、方法。
  25. 請求項1〜24のいずれか一項に記載の方法を実行するためにデバイスを制御するためのコンピュータプログラム。
  26. 請求項25に記載のコンピュータプログラムを記憶する記憶媒体。
  27. データ処理を実行するための処理回路と、
    請求項1〜24のいずれか一項に記載の方法を実行するために前記処理回路を制御するためのコンピュータプログラムを記憶するデータストレージと
    を含む装置。
JP2019194632A 2018-11-01 2019-10-25 デバイス証明技術 Pending JP2020071880A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1817901.0A GB2578628B (en) 2018-11-01 2018-11-01 Device attestation techniques
GB1817901.0 2018-11-01

Publications (1)

Publication Number Publication Date
JP2020071880A true JP2020071880A (ja) 2020-05-07

Family

ID=64655689

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019194632A Pending JP2020071880A (ja) 2018-11-01 2019-10-25 デバイス証明技術

Country Status (5)

Country Link
US (1) US11232190B2 (ja)
EP (1) EP3647979B1 (ja)
JP (1) JP2020071880A (ja)
CN (1) CN111143817A (ja)
GB (1) GB2578628B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10791123B2 (en) * 2015-11-25 2020-09-29 Yaron Gvili Selectivity in privacy and verification with applications
US10585882B1 (en) 2019-09-23 2020-03-10 Trace, LLC Systems and methods for writing updates to and/or reading previously stored updates of assets implemented as smart contracts on a decentralized database
US11972440B1 (en) * 2020-06-05 2024-04-30 Trace Labs Llc Systems and methods for providing a decentralized anti-counterfeit solution for supply chain tracking using single-use codes

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8281374B2 (en) * 2005-09-14 2012-10-02 Oracle International Corporation Attested identities
US20060005009A1 (en) * 2004-06-30 2006-01-05 International Business Machines Corporation Method, system and program product for verifying an attribute of a computing device
US20080046752A1 (en) * 2006-08-09 2008-02-21 Stefan Berger Method, system, and program product for remotely attesting to a state of a computer system
US7996891B2 (en) * 2008-01-30 2011-08-09 International Business Machines Corporation Systems, methods and computer program products for generating anonymous assertions
US8225110B2 (en) * 2009-01-09 2012-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Cryptographic protection of usage restrictions in electronic devices
US9077543B2 (en) * 2009-10-09 2015-07-07 Apple Inc. Methods and apparatus for digital attestation
EP2619701B1 (en) * 2010-09-22 2015-04-22 International Business Machines Corporation Attesting use of an interactive component during a boot process
EP2676220A4 (en) * 2011-02-17 2018-01-03 Taasera, Inc. System and method for application attestation
TWI546692B (zh) * 2011-10-27 2016-08-21 電子戰協會公司 包括與已知電路板資訊有關之電路測試及驗證等特徵的裝置鑑別之系統及方法
EP2605178B1 (en) * 2011-12-02 2018-10-17 BlackBerry Limited Method and device for secure notification of identity
US9413538B2 (en) * 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9411962B2 (en) * 2012-07-18 2016-08-09 Sequitur Labs Inc. System and methods for secure utilization of attestation in policy-based decision making for mobile device management and security
US8854115B2 (en) * 2013-03-05 2014-10-07 Lsi Corporation Preventing electronic device counterfeits
US9171163B2 (en) * 2013-03-15 2015-10-27 Intel Corporation Mutually assured data sharing between distrusting parties in a network environment
CA2902285A1 (en) * 2013-03-15 2014-09-18 Ologn Technologies Ag Systems, methods and apparatuses for remote attestation
US10270748B2 (en) * 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
US9680872B1 (en) * 2014-03-25 2017-06-13 Amazon Technologies, Inc. Trusted-code generated requests
US9628270B2 (en) * 2014-09-09 2017-04-18 Microsoft Technology Licensing, Llc Cryptographically-verifiable attestation label
GB201508035D0 (en) * 2015-05-12 2015-06-24 Critical Blue Ltd Crowd sourced fingerprinting
US10193858B2 (en) * 2015-12-22 2019-01-29 Mcafee, Llc Attestation device custody transfer protocol
US10536271B1 (en) * 2016-01-10 2020-01-14 Apple Inc. Silicon key attestation
US10333705B2 (en) * 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
GB201700367D0 (en) * 2017-01-10 2017-02-22 Trustonic Ltd A system for recording and attesting device lifecycle
GB2562454B (en) * 2017-02-20 2019-05-29 Trustonic Ltd Anonymous attestation
US10546130B1 (en) * 2017-02-24 2020-01-28 United States Of America As Represented By The Secretary Of The Air Force Timed attestation process
EP3416334B1 (en) * 2017-06-15 2020-01-15 Accenture Global Solutions Limited Portable biometric identity on a distributed data storage layer
US10503892B2 (en) * 2017-06-25 2019-12-10 Microsoft Technology Licensing, Llc Remote attestation for multi-core processor
US10819696B2 (en) * 2017-07-13 2020-10-27 Microsoft Technology Licensing, Llc Key attestation statement generation providing device anonymity
GB2566265B (en) * 2017-09-01 2020-05-13 Trustonic Ltd Post-manufacture generation of device certificate and private key for public key infrastructure
GB2566264B (en) * 2017-09-01 2020-05-13 Trustonic Ltd Application certificate
US10621350B2 (en) * 2017-10-02 2020-04-14 Microsoft Technology Licensing, Llc System integrity using attestation for virtual trusted platform module
US10635821B2 (en) * 2017-10-13 2020-04-28 Baidu Usa Llc Method and apparatus for launching a device
US11153303B2 (en) * 2017-11-15 2021-10-19 Citrix Systems, Inc. Secure authentication of a device through attestation by another device
US10715536B2 (en) * 2017-12-29 2020-07-14 Square, Inc. Logical validation of devices against fraud and tampering
US10999081B2 (en) * 2018-04-12 2021-05-04 Microsoft Technology Licensing, Llc Dynamic certificate management for a distributed authentication system
US11271908B2 (en) * 2018-07-31 2022-03-08 Hewlett Packard Enterprise Development Lp Systems and methods for hiding identity of transacting party in distributed ledger transaction by hashing distributed ledger transaction ID using secured representation of distributed ledger address of transacting party as a key

Also Published As

Publication number Publication date
EP3647979A1 (en) 2020-05-06
GB2578628A (en) 2020-05-20
US20200143031A1 (en) 2020-05-07
GB201817901D0 (en) 2018-12-19
US11232190B2 (en) 2022-01-25
GB2578628B (en) 2021-09-15
EP3647979B1 (en) 2023-06-14
CN111143817A (zh) 2020-05-12
EP3647979C0 (en) 2023-06-14

Similar Documents

Publication Publication Date Title
CN108140093B (zh) 使用用于设备的硬件信任根来迁移秘密
CN107077574B (zh) 用于客户端设备的信任服务
KR102168502B1 (ko) 침입 및 복제 공격들에 저항하기 위해 메모리 기반-puf(physically unclonable function)들의 동작을 마스킹하기 위한 회로 지연-기반 puf들의 적용
TWI667586B (zh) 用以核對uefi認證變量變化之系統及方法
CN108140085B (zh) 用于提供可信平台的设备和方法
EP3451222B1 (en) Post-manufacture certificate generation
US11388012B2 (en) Application certificate
EP3451218B1 (en) Post-manufacture generation of device certificate and private key for public key infrastructure
CN108337239A (zh) 电子设备的事件证明
US20060005009A1 (en) Method, system and program product for verifying an attribute of a computing device
US6581093B1 (en) Policy validation in a LDAP directory
JP2020071880A (ja) デバイス証明技術
KR102504361B1 (ko) 보안 트랜잭션용 장치의 자가 인증
US20050005161A1 (en) Services and secure processing environments
CN114257376B (zh) 数字证书更新方法、装置、计算机设备和存储介质
CN115146310A (zh) 一种应用容器镜像层度量列表的验证方法及系统
Reed et al. BULWARK: A Framework to Store IoT Data in User Accounts
US11449372B1 (en) System for enforcing use of schemas and interfaces
CN115659288A (zh) 一种变电站嵌入式装置及软件版本管控方法、终端及存储介质
WO2023177831A1 (en) Sensor data authentication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221012

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240207