JP2023533734A - プログラマブルデバイスを遠隔でプログラミングするための方法 - Google Patents
プログラマブルデバイスを遠隔でプログラミングするための方法 Download PDFInfo
- Publication number
- JP2023533734A JP2023533734A JP2023501233A JP2023501233A JP2023533734A JP 2023533734 A JP2023533734 A JP 2023533734A JP 2023501233 A JP2023501233 A JP 2023501233A JP 2023501233 A JP2023501233 A JP 2023501233A JP 2023533734 A JP2023533734 A JP 2023533734A
- Authority
- JP
- Japan
- Prior art keywords
- program code
- programmable device
- unique
- programmable
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 230000006870 function Effects 0.000 claims description 80
- 238000004891 communication Methods 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 28
- 230000002441 reversible effect Effects 0.000 claims description 20
- 230000004913 activation Effects 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 3
- 238000007620 mathematical function Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000010367 cloning Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000008672 reprogramming Effects 0.000 description 1
Images
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/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/3271—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 challenge-response
- H04L9/3278—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 challenge-response using physically unclonable functions [PUF]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/75—Protecting 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 inhibiting the analysis of circuitry or operation
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/76—Protecting 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 in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
予想されるセンシティブ結果(45)を提供するように設計されたプログラマブルデバイス(35)を遠隔でプログラミングするための方法であって、方法が、-第1のプログラムコード(41)をプログラマブルデバイス(35)に伝送することであって、第1のプログラムコード(41)が、プログラマブルデバイス(35)に一意かつ物理的に固有の少なくとも1つの特有データ(35d)を得るように構成されている、伝送することと、-予想されるセンシティブ結果(45)を提供するように構成された第2のプログラムコード(42)を、第2のプログラムコード(42)が特有データ(35d)を生成しているプログラマブルデバイス(35)上で実行される場合に、生成するために特有データ(35e)を検索することと、-第2のプログラムコード(42)をプログラマブルデバイス(35)にロードするように、第2のプログラムコード(42)をプログラマブルデバイス(35)に伝送することと、を含む、方法。
Description
本開示は、遠隔の信頼できないプラットフォーム上でセンシティブサービスを提供するように、又は安全化される機能を実行するように設計されたハードウェアなどの、遠隔プログラマブルデバイスの分野に関する。この目的のために、本開示は、予想されるセンシティブ結果を提供するように設計されたプログラマブルデバイスを遠隔でプログラミングするための方法に関する。本開示は、そのようなプログラマブルデバイス、並びにそのようなプログラマブルデバイスにプログラムコードを遠隔で提供するためのプロバイダに更に関する。
信頼できない環境におけるプラットフォームは、センシティブ情報又は貴重な情報を検索し、活用するために、傍受され、模造され、又はハッキングされる傾向がある。遠隔の情報ソースに基づく環境内では、ハッカーが遠隔のソースとの通信を迂回し、そのような情報又はサービスへのアクセスを得るために信頼できるシステムの一部であるように見せかけることが可能である。
不正行為に対処しなければならないリスクはまた、他の動作中、例えば、そのようなプログラマブルデバイス上でソフトウェアを遠隔でアップグレードするときにも存在し得る。ソフトウェアは、いくつかの目的のために外部当事者によって行われるリバースエンジニアリング攻撃など、悪意のある攻撃を受ける可能性がある。いくつかの攻撃は、ソフトウェアを修正すること、例えば、特定の特徴をバイパスすること、若しくは悪意のあるコードセグメントをそこに追加すること、それがどのように動作するかを理解するためにソフトウェアをコピーすること、又はそれを読み出すことを行おうとし得る。
そのような懸念を克服する試みでは、いくつかのデバイスは、ハードウェア乱数生成器(HRNG:Hardware Random Number Generator)としても知られる、いわゆる真の乱数生成器(TRNG:True Random Number Generator)を使用して識別子を生成するように構成されている。そのような生成器は、単にアルゴリズムに基づくのではなく、物理的プロセスから乱数を生成するデバイスである。そのような生成器によって使用される物理的プロセスは、低レベル信号を生成する微視的現象に基づいていることを考慮すると、予測不可能であると定義される。しかしながら、一意の数を提供するためにTRNGを使用して数を生成することは、一旦生成された値が知られると、任意のハッカーが複製目的のために解決策を模造することができるため、十分に効率的ではない。
米国特許出願公開第2019/305927(A1)号は、ノードロックに基づくビットストリームセキュリティを開示する。より具体的には、この文書は、暗号化なしの無線再構成を可能にしながら、フィールド内ビットストリーム再プログラミングに対する保護、並びに知的財産(IP:Intellectual Property)侵害に対する保護を提供するFPG
A(フィールドプログラマブルゲートアレイ:Field Programmable Gate Array)セキュ
リティへのアプローチを開示する。
A(フィールドプログラマブルゲートアレイ:Field Programmable Gate Array)セキュ
リティへのアプローチを開示する。
米国特許出願公開第2014/258736(A1)号は、信頼できないコンピューティングプラットフォームにおいて完全性及びセキュリティを維持するためのシステム及び方法を開示する。より具体的には、この文献は、信頼できるプロセッサの少なくとも1つのハードウェアコンポーネントにおいて物理複製困難関数(PUF:physically unclonable function)に基づいて秘密暗号キーを生成し、次いで、前述の秘密暗号キーを使用して第1の公開キー及び第1の秘密キーを生成し、第1のソフトウェアプログラムに対応す
る命令コードを実行する方法を開示する。
る命令コードを実行する方法を開示する。
米国特許第8,918,647(B1)号は、認証システムを開示しており、より具体的には、ハードウェア検証、並びに置換による改ざん及び破壊から保護するためのバインディング認証に関する。
したがって、そのような脅威を防止し、前述の問題及び欠点を少なくとも部分的に克服するための効率的かつ信頼できる解決策に対する必要性が存在する。より具体的には、そのような解決策は、遠隔プラットフォーム上のそのようなプログラマブルデバイスが設計される貴重なサービス又は情報の完全性及びセンシティブ性を少なくとも保護することが可能であるべきである。この解決策は、貴重な関連製品又はサービスの複製を効率的に防止することができ、もしあれば、遠隔プラットフォームの安全なアップグレードを提供することが更に可能であるべきである。
この懸念に対処するために、本開示は、第1の態様として、予想されるセンシティブ結果を提供するように設計されたプログラマブルデバイスを遠隔でプログラミングするための方法であって、方法が、
-第1のプログラムコードをプログラマブルデバイスに伝送することであって、第1のプログラムコードが、プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データを得るように構成されている、伝送することと、
-予想されるセンシティブ結果を提供するように構成された第2のプログラムコードを、第2のプログラムコードが特有データを生成しているプログラマブルデバイス上で実行される間に、生成するために特有データを検索することと、
-第2のプログラムコードをプログラマブルデバイスにロードするように、第2のプログラムコードをプログラマブルデバイスに伝送することと、を含む、方法を提案する。
-第1のプログラムコードをプログラマブルデバイスに伝送することであって、第1のプログラムコードが、プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データを得るように構成されている、伝送することと、
-予想されるセンシティブ結果を提供するように構成された第2のプログラムコードを、第2のプログラムコードが特有データを生成しているプログラマブルデバイス上で実行される間に、生成するために特有データを検索することと、
-第2のプログラムコードをプログラマブルデバイスにロードするように、第2のプログラムコードをプログラマブルデバイスに伝送することと、を含む、方法を提案する。
本解決策のおかげで、第2のプログラムコードの機能的状態は、第2のプログラムコードが、単一の、かつ特定のプログラマブルデバイス、すなわち、一意のプログラマブルデバイス上で、より詳細には、第1のプログラムコードを実行した後に特有データを生成しているデバイス上で実行されるときにのみ、予想されるセンシティブ結果を提供することができるように、改変されることができる。これは、第2のプログラムコードが、特有データを生成しているものと同様の第三者のプログラマブルデバイス上でそれを実行するために第三者に利用可能にされた場合であっても、このデバイスによって提供される結果は、予想されるセンシティブ結果とは異なるであろうことを意味する。したがって、第2のプログラムコードは、有利に、一意のプログラマブルデバイスに結び付けられ、その結果、このデバイスが、多数の悪意のある攻撃を受ける可能性がある遠隔の信頼できないプラットフォーム上に物理的に配置されているにもかかわらず、この一意のプログラマブルデバイスによって実行された場合にのみ、第2のプログラムコードが予想されるセンシティブ結果を提供するので、この第2のプログラムコードによって提供される結果は、そのような攻撃に対して効率的に保護されたままである。更に、第2のプログラムコードは、リバースエンジニアリングがより困難になり、その実際の設計が特定のプログラマブルデバイス上で実行される場合にのみ再構成されるように改変され得る。
好ましくは、第1のプログラムコード及び第2のプログラムコードは、通信チャネルを介してプログラマブルデバイスに遠隔でリンクされたプロバイダによって設計される。
一実施形態によれば、特有データは、プログラマブルデバイスの少なくとも1つのコンポーネントに適用される物理複製困難関数(PUF)から生じるか、又は導出される。
一実施形態では、第2のプログラムコードは、特有データに応じる可逆関数によって変換される。好ましくは、可逆関数は、数学関数又は論理関数である。
別の実施形態では、第2のプログラムコードは、特有データから検索可能な少なくとも1つのプログラムコード部分を、改変された部分で置き換えることによって変換される。
一実施形態によれば、第2のプログラムコードは、区別可能なプログラマブルデバイスのセットに共通のグローバルプログラムコードであり、セットの少なくとも1つのプログラマブルデバイスのための個別設定メッセージによって個別化されるように構成されており、個別設定メッセージは、関連するプログラマブルデバイスの特有データに基づいている。
好ましくは、関連するプログラマブルデバイスは、一意関数を備え、一意関数が、一意関数において入力データとして使用される個別設定メッセージから第1のキーを提供するように構成されており、第1のキーは、グローバルプログラムコードから予想されるセンシティブ結果を提供するためのグローバルプログラムコードの入力として更に使用される。
一実施形態では、グローバルプログラムコードは、暗号アルゴリズムである。
好ましくは、予想されるセンシティブ結果は、第2のキー、好ましくはアクティブ化キー又は暗号キーである。
一実施形態では、伝送するステップ及び検索するステップのうちの少なくとも1つは、認証プロセス及び暗号化プロセスのうちの少なくとも1つによって安全化される。
別の実施形態では、第1のプログラムコード及び第2のプログラムコードのうちの少なくとも1つは、ネットリスト、ソースコード、又は機械コードである。
好ましくは、通信チャネルがグローバルネットワークによって、又は信頼できない通信チャネルによって少なくとも部分的に提供される場合には、第1のプログラムコードは、第1のプログラムコードの真正性及び完全性を保証するように安全な様式でプログラマブルデバイスに伝送される。
第2の態様によれば、本開示はまた、予想されるセンシティブ結果を提供するために、その実施形態のいずれかに従って、又はこれらの実施形態の任意の可能な組み合わせに従って実行されることができる上述の方法に従って、遠隔でプログラムされるように設計されたプログラマブルデバイスに関する。このプログラマブルデバイスは、
-プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データと、
-特有データを得るように構成された第1のプログラムコードと、特有データに基づいて予想されるセンシティブ結果を提供するように構成された第2のプログラムコードと、を受信するための通信インターフェースと、
-第1及び第2のプログラムコードを記憶するための少なくとも1つのメモリと、
-第1及び第2のプログラムコードを実行するためのプロセッサ又はハードウェア状態機械と、を備える。
-プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データと、
-特有データを得るように構成された第1のプログラムコードと、特有データに基づいて予想されるセンシティブ結果を提供するように構成された第2のプログラムコードと、を受信するための通信インターフェースと、
-第1及び第2のプログラムコードを記憶するための少なくとも1つのメモリと、
-第1及び第2のプログラムコードを実行するためのプロセッサ又はハードウェア状態機械と、を備える。
第3の態様では、本開示は、その実施形態のいずれかに従って、又はこれらの実施形態の任意の可能な組み合わせに従って実行されることができる上述の方法に従って少なくとも1つのプログラマブルデバイスにプログラムコードを遠隔で提供するためのプロバイダに関する。このプロバイダは、
-プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データを得るように構成された第1のプログラムコードと、特有データに基づいて予想されるセンシティブ結果を提供するように構成された第2のプログラムコードと、を生成するためのプログラムコード生成器と、
-第1及び第2のプログラムコードをプログラマブルデバイスに送信し、そこから特有データを受信するための通信チャネルに接続されるように構成された通信インターフェースと、を備える。
-プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データを得るように構成された第1のプログラムコードと、特有データに基づいて予想されるセンシティブ結果を提供するように構成された第2のプログラムコードと、を生成するためのプログラムコード生成器と、
-第1及び第2のプログラムコードをプログラマブルデバイスに送信し、そこから特有データを受信するための通信チャネルに接続されるように構成された通信インターフェースと、を備える。
他の実施形態及び利点は、詳細な記載において開示される。
本開示において提案される解決策及び実施形態は、非限定的な例として解釈されるべきであり、添付の図面を参照することによってより良好に理解されるであろう。
本方法が実施され得る典型的な環境の実施例である。
本解決策の方法のフローチャートを、この方法に含まれる主要な実体と共に示す。
図2に示される方法の変形例を示す。
図1は、3つの主要な実体、すなわち、プロバイダ10と、ユーザユニット20と、少なくともプログラマブルデバイス35を備えるプラットフォーム30と、を備える、環境の概略図を示す。これらの実体は、ネットワーク、典型的にはインターネットなどの信頼できないネットワークを通して互いに接続され得る。ただし、プライベートネットワークなどのローカルエリアネットワーク(LAN:local area network)はまた、ワイドエリアネットワーク(WAN:wide area network)の代わりに、又はWANに加えて使用さ
れ得る。好ましくは、プロバイダ10及びユーザユニット20は、両方ともプラットフォーム30に遠隔で接続され、それにより、プラットフォーム30は、クラウド内に配置されているとみなされ得る。本解決策の原理を理解するために、例えば、データ又はメッセージを交換するために、ユーザユニット20がプロバイダ10に接続される必要はないことに留意されたい。したがって、プロバイダ10とユーザ20との間には、図1に示されるような直接的な接続又はリンクは存在しないが、実際にはそうである場合もあり得る。
れ得る。好ましくは、プロバイダ10及びユーザユニット20は、両方ともプラットフォーム30に遠隔で接続され、それにより、プラットフォーム30は、クラウド内に配置されているとみなされ得る。本解決策の原理を理解するために、例えば、データ又はメッセージを交換するために、ユーザユニット20がプロバイダ10に接続される必要はないことに留意されたい。したがって、プロバイダ10とユーザ20との間には、図1に示されるような直接的な接続又はリンクは存在しないが、実際にはそうである場合もあり得る。
プロバイダ10は、好ましくは、安全エリア内に配置される。プロバイダは、典型的には、プログラムコード40、特に、プラットフォーム30内に物理的に配置されたプログラマブルデバイス35向けのプログラムコードを提供するように設計されている。そのようなプログラムコード40はまた、当業者によって「ネットリスト」とも称される。いわゆるネットリストは、一旦プログラムされると、少なくとも1つの所望の機能又はアプリケーションを有するデバイスをプログラミングするためのコードの形態で提示されるソースデータのセットとみなされ得る。コードは、高水準ソフトウェア言語であり得、プログラムコード40は、いわゆるソースファイルに格納され得る。プログラムコードは、典型的には、コンピュータプログラム、又はプログラムを実行するために異なるシーケンスでプロセッサによって実行される命令を含むソフトウェアプログラムに対応する命令コードに関連し得る。
ユーザユニット20は、プラットフォーム30のサービス、特に、プログラマブルデバイス35のサービスを必要とする任意の種類のデバイスであるとみなされ得る。したがって、プログラマブルデバイス35が、例えば、タスクを実行するように、及び/又は特定のサービス若しくは結果を提供するように構成されたアプリケーションでプログラムされている場合、ユーザユニット20は、そのようなサービス又は結果を受信するために必要であり得るクライアントユニットなどのデバイスであるとみなされることができる。この
ため、好ましくは、図1に概略的に示されるように、ユーザユニット20とプラットフォーム30との間に確立され得る双方向接続が存在する。単一のユーザユニット20は図1に示される環境の一部であるが、いくつかのユーザユニット20が、プログラマブルデバイス35のサービスの利益を得るためにプラットフォーム30に接続され得ることが理解されるべきである。
ため、好ましくは、図1に概略的に示されるように、ユーザユニット20とプラットフォーム30との間に確立され得る双方向接続が存在する。単一のユーザユニット20は図1に示される環境の一部であるが、いくつかのユーザユニット20が、プログラマブルデバイス35のサービスの利益を得るためにプラットフォーム30に接続され得ることが理解されるべきである。
したがって、図1に概略的に示されるように、プログラマブルデバイス35は、プロバイダ10から遠隔で、好ましくは、ユーザユニット20から距離を置いて配置される。プログラマブルデバイス35をホストするプラットフォーム30は、信頼できないプラットフォームであり得る。プログラマブルデバイス35は、例えば、プリント回路基板上に構築された電子回路などの電子デバイスであり、プログラマブルデバイスに少なくとも1つの特定の特徴又は機能を提供するために、少なくとも1つのプログラムコード40がその上にロードされ得る。そのような機能は、予想される結果を出力45として返報で提供するために、入力44を処理するように設計される可能性がある。入力44は、復号されるべき入力信号、処理されるべき入力データ若しくはメッセージ、又は単に要求であり得る。出力45は、ユーザユニット20に返送される応答として使用され得る。更に好ましくは、図1及び図2に示されるように、プログラマブルデバイス35は、いわゆるフィールドプログラマブルゲートアレイ(FPGA)などの再プログラマブルハードウェア要素である。
各実体10、20、30は、インターネットなどのネットワークの一部であり得る少なくとも1つの通信チャネル1を通してデータを交換するための通信インターフェース11、21、31を備える。図1は、典型的には、プロバイダ10がプログラマブルデバイス35にロードされるプログラムコード40を生成することを任される従来のアーキテクチャを典型的に表す。プログラムコード40は、通信路1を介して、遠隔プラットフォーム30に送信される。プラットフォーム30によって一旦受信されると、プログラムコード40は、典型的には、コンパイラなどの変換ツール33によって、プログラマブルデバイス35によって理解可能なフォーマットに変換される前に、記憶デバイス32に格納される。そのようなフォーマットに一旦変換されると、変換されたプログラムコード40’は、プログラマブルデバイス35にロードされるために、その通信インターフェース35aを介して、プログラマブルデバイス35に伝送される。一旦ロードされると、プログラマブルデバイス35は、ユーザユニット20によって入力44として送信されたデータを処理し、プログラマブルデバイスの出力45として応答又は結果を送り返すための特定の機能を獲得する。
しかしながら、そのような方式は、いくつかの弱点を有する。実際に、プログラムコード40は、プロバイダ10とプログラマブルデバイス35との間の様々な場所でハッキングされる可能性があり、特に、プログラマブルデバイスが配置されているプラットフォーム30が、安全化されていない若しくは信頼できない実体で、又は、例えばクラウドにおける共有プラットフォームである可能性さえあるという事実のためである。第1の攻撃ポイントは、プロバイダ10とプラットフォーム30との間、すなわち、通信チャネル1内又はワイドエリアネットワーク内に配置される。この転送中に、悪意のある人は、誰も気付かずにプログラムコード40を傍受し、コピーし、修正し、又は窃取し得る。第2及び第3の攻撃ポイントは、ハッカーにとって他のエントリポイントとなり得る、格納デバイス32内及び変換ツール33内に配置される。第4の攻撃ポイントは、変換ツール33をプログラマブルデバイス35にリンクする接続において配置される可能性がある。最後の攻撃ポイントは、プログラマブルデバイス35において、例えば、プログラマブルデバイス35内に変換されたプログラムコード40’を格納するように設計されたメモリにおいて配置される可能性がある。
そのような欠点を克服するために、本解決策は、主に図2に示されている方法を開示する。この方法は、予想されるセンシティブ結果45を提供するように設計されたプログラマブルデバイス35を遠隔でプログラミングするように構成されている。そのような結果は、上で提示されたように、攻撃を受ける対象となる可能性があるので、センシティブであると定義される。センシティブ結果45は、プログラマブルデバイス35によって提供される任意のタイプのデータであり得る。例えば、センシティブ結果は、事業価値(business value)又は暗号キーであり得る。
本方法の第1のステップS1は、第1のプログラムコード41をプログラマブルデバイス35に伝送することを目的とする。この第1のプログラムコード41は、特徴付けネットリスト又は設定ネットリストであるとみなされ得る。したがって、第1のプログラムコード41は、図1に示されるプログラムコード40と混同されるべきではない。実際に、プログラムコード40は、プログラマブルデバイス35などのデバイス上に一旦ロードされると、センシティブな予想される結果45を提供するために直接使用可能な機能的プログラムコードである。他方では、第1のプログラムコード41は、そのような目的のために設計されていないので、そのような予想される結果45を提供することが不可能である。実際に、第1のプログラムコード41は、プログラマブルデバイス35に一意かつ物理的に固有の少なくとも1つの特有データ35dを得るように構成されている。図2において、この特有データ35dは、プログラマブルデバイスのDNA部分によって概略的に示され、第1のプログラムコード41は、そのようなDNA部分を収集するためにバイアルで概略的にスタンプされる。
そのような特有データは、発振器、例えば、同じタイプの別のリング発振器の周波数と正確に同一ではない特定の周波数を有するリング発振器35eから導出され得る。これは、2つの発振器の両方が単一の生産ラインによって同じ製造プロセスに従って生産されている場合であっても当てはまる。実際に、各発振器は、製造中に受けている小さな変動から本質的に生じる固有周波数を有する。これらのわずかな変動は、製造プロセス公差から生じ、それらの固有の特性のおかげで発振器を一意にする。他の電子部品又は回路についても同様であるので、発振器のみから特有データ35dを抽出する必要はなく、他の電子部品が使用され得る。電子部品から特有データ35を得ることは、電子部品上で1つ以上の物理量を測定することによって実行され得る。この目的のために、シャープな(sharp)測定デバイス及び/又はプロセスが、適用され得る。更に、両方ともメモリ挙動に依存する磁気抵抗ランダムアクセスメモリ(MRAM:Magnetoresistive Random Access
Memory)又はスタティックランダムアクセスメモリ(SRAM:Static Random Access Memory)に基づく技術など、他の技術を使用して物理複製困難関数を作成することができることに留意されたい。
Memory)又はスタティックランダムアクセスメモリ(SRAM:Static Random Access Memory)に基づく技術など、他の技術を使用して物理複製困難関数を作成することができることに留意されたい。
本方法の第2のステップ(S2’及びS2”)は、まず、第2のプログラムコード42を生成するために、特有データ35dを検索することを目的とする。図2において、この動作S2’は、プログラマブルデバイス35のDNA部分を含むバイアルのサンプリングによって概略的に示されている。そのようなデータを検索することは、プラットフォーム30から、例えば、プログラマブルデバイス35から、又はプログラマブルデバイスの特有データ35dを得るように構成されたプラットフォームの任意の他のデバイスから特有データ35dを受信することによって達成され得る。この目的のために、後者は、例えば、第1のプログラムコード41のおかげで、その特有データ35dをプロバイダ10に伝送するように構成され得る。好ましくは、そのような伝送は、プログラマブルデバイス35の特有データ35dが取得されるとすぐに実行され得る。この伝送は、例えば、暗号プロセスを、好ましくは認証プロセスと同様に、プロバイダ10へのその伝送前に特有データ35dに適用することによって安全化され得る。暗号化プロセスは、任意の種類の暗号化アルゴリズムを指し得、認証プロセスは、典型的には、デジタル署名方式に基づくもの
であり得る。
であり得る。
例えば、プロバイダ10によって一旦検索されると、後者は、第2のプログラムコード42を生成するためにバイアルによって収集されたDNAを使用することによって図2に概略的に例解される、S2”で示される動作中に第2のプログラムコード42を生成することが可能である。この動作は、第2のステップの第2の部分とみなされ得る。
第2のプログラムコード42は、特有データ35dを生成しているプログラマブルデバイス35上で実行される場合に、予想されるセンシティブ結果45を提供するように構成されたプログラムコードである。言い換えれば、第2のプログラムコード42が、特有データ35dが取得されたプログラマブルデバイス35とは異なるデバイス上で実行される場合、第2のプログラムコード42によって提供される結果は、予想されるセンシティブ結果45とは異なることになる。これは、第2のプログラムコード42が、プログラマブルデバイス35の「DNA」の一部に従って、より具体的には、特定のプログラマブルデバイス35に一意かつ物理的に固有の特有データ35dに従って構成されているためである。したがって、第2のプログラムコード42がこのプログラマブルデバイス35にロードされる場合、特有データ35dが抽出されている単一かつ一意のプログラマブルデバイス35のみが、予想されるセンシティブ結果45を提供することが可能である。センシティブ結果は、それが正しい場合、予想されるセンシティブ結果45として定義されることに更に留意されたい。第2のプログラムコード42が、第3のデバイス上で、すなわち、特有データ35dを生成しているプログラマブルデバイス35とは異なるデバイス上にロードされて実行される場合、この第3のデバイスによって提供されるセンシティブ結果は、不正確になる。これは、第2のプログラムコード42が第3のデバイス上で、すなわち、必ずしもシステムエラーを引き起こすことなく動作され得るが、この第3のデバイスによって提供される結果は、予想されるセンシティブ結果45とは異なることを意味する。
本方法の第3のステップS3は、第2のプログラムコード42をプログラマブルデバイスにロードするように、第2のプログラムコード42をプログラマブルデバイス35に伝送することを目的とする。
本方法のおかげで、第1のプログラムコード41はそのような目的のために設計されていないので予想されるセンシティブ結果45を提供することができず、第2のプログラム42は、特有データ35dを生成しているプログラマブルデバイス35上で実行されるときにのみ予想されるセンシティブ結果45を提供することができるのであれば、典型的には、プロバイダ10とプログラマブルデバイス35との間に、もはや効率的な攻撃ポイントは存在しない。更に、予想されるセンシティブ結果45は、通常、プログラマブルデバイス35によって入力44に提供される応答であることに留意されたい。それは、予想されるセンシティブ結果45が、特有データ35dからのみでなく、入力44からも依存し得ることを意味する。特有データ35dが、予想されるセンシティブ結果45を計算するためにプログラマブルデバイス35に物理的に結び付けられていることを考えると、ハッカーが、ソフトウェアよりもハードウェアに近いとみなされ得るそのような特有データ35dを遠隔で得る可能性はない。したがって、プログラマブルデバイスの特有データ35dを取得することは、ソフトウェア攻撃ではなくハードウェア攻撃が必要となる。しかしながら、ハードウェア攻撃は、プログラマブルデバイス35が配置されているサイトにハッカーが物理的に行くことを必要とするので、除外されると考えられる。
一実施形態によれば、第1のプログラムコード41及び第2のプログラムコード42は、通信チャネル1を介してプログラマブルデバイス35に遠隔でリンクされたプロバイダ10によって設計される。プロバイダ10は、好ましくは、安全プロバイダ、すなわち、安全エリア内に配置されるプロバイダである。したがって、第1及び第2のプログラムコ
ード41、42を生成することは、信頼できる環境内で、好ましくはプロバイダ10内に配置され得るプログラムコード生成器14によって安全に達成され得る。プロバイダ10とプログラマブルデバイス35又はプラットフォーム30との間の通信チャネル1は、安全チャネルである必要はなく、インターネットなどの任意のネットワーク内のチャネルであり得る。概して言えば、通信チャネル1は、グローバルネットワーク(例えば、インターネット)によって、又は信頼できない通信チャネルによって少なくとも部分的に提供される。それにもかかわらず、通信チャネル1が信頼できないチャネルである場合、第1のプログラムコードは、好ましくは、その真正性及びその完全性を保証するように安全な様式でプログラマブルデバイスに伝送される。この目的のために、第1のプログラムコード41は、プロバイダ10とプログラマブルデバイス35との間の伝送中に第1のプログラムコードに変更が行われていないことを保証するために、デジタル署名と共に暗号化された形態で伝送され得る。
ード41、42を生成することは、信頼できる環境内で、好ましくはプロバイダ10内に配置され得るプログラムコード生成器14によって安全に達成され得る。プロバイダ10とプログラマブルデバイス35又はプラットフォーム30との間の通信チャネル1は、安全チャネルである必要はなく、インターネットなどの任意のネットワーク内のチャネルであり得る。概して言えば、通信チャネル1は、グローバルネットワーク(例えば、インターネット)によって、又は信頼できない通信チャネルによって少なくとも部分的に提供される。それにもかかわらず、通信チャネル1が信頼できないチャネルである場合、第1のプログラムコードは、好ましくは、その真正性及びその完全性を保証するように安全な様式でプログラマブルデバイスに伝送される。この目的のために、第1のプログラムコード41は、プロバイダ10とプログラマブルデバイス35との間の伝送中に第1のプログラムコードに変更が行われていないことを保証するために、デジタル署名と共に暗号化された形態で伝送され得る。
好ましい実施形態では、特有データ35dは、プログラマブルデバイス35の少なくとも1つのコンポーネント35eに適用される物理複製困難関数(PUF)から生じるか、又は導出される。PUF機能は、コンポーネント35eなどの電子部品の製造プロセス変動を活用することを目的とし、これらの電子部品の固有の特性のおかげで、プログラマブルデバイス35の電子回路を一意にする。リング発振器35eが図2の例解図において実施例として使用されているが、PUF機能をリング発振器に限定する必要はないことに留意されたい。PUF機能は、第1のプログラムコード41の一部である機能、又はプログラマブルデバイス35若しくは別の好適なデバイスの一部である、例えば、第1のプログラムコード41によってトリガされ得る機能であり得る。
一実施形態では、第2のプログラムコード42は、特有データ35dに従ってパラメータ化及び/又は改変される。例えば、第2プログラムコード42は、特有データ35dに応じる可逆関数によって変換されているプログラムコードであり得る。言い換えれば、第2プログラムコード42は、特有データ35dに依存する可逆関数によって引き受けられる変換を受けたものであり得る。好ましくは、可逆関数は、例えば、XOR関数などの数学関数又は論理関数である。
一実施形態では、第2のプログラムコード42は、少なくとも1つのプログラムコード部分を改変された部分で置き換えることによって変換される。この場合、置き換えられている前述のプログラムコード部分は、特有データ35dを使用して検索可能なままである。例えば、プログラムコード部分は、可逆関数によって、より具体的には、特有データ35dによってパラメータ化された全単射可逆関数(例えば、暗号化関数)によって変換され得る。
図3に概略的に示される別の実施形態によれば、第2のプログラムコード42は、区別可能なプログラマブルデバイス35のセットに共通のグローバルプログラムコード42’である。言い換えれば、単一のグローバルプログラムコード42’は、複数のプログラマブルデバイス35によって使用されるように意図され、又は構成される。したがって、この実施形態は、より費用対効果が高いとみなされ得る。加えて、この実施形態は、複数のプログラマブルデバイス35が考慮される場合に、各プログラマブルデバイス35に対して第2のプログラムコード42を生成する必要がないことを考えると、実装がより容易である。したがって、グローバルプログラムコード42’は、次いで、例えば、プログラマブルデバイス35に、すなわち、複数のそのようなデバイスが考慮される場合には各プログラマブルデバイスに、又は複数のプログラマブルデバイス35のうちの少なくとも1つのプログラマブルデバイス35に、個別設定メッセージ43を送信することによって、個別化され得る汎用の第2のプログラムコード42とみなされ得る。
個別設定メッセージ43は、関連するプログラマブルデバイス35の特有データ35dに基づくべきである。例えば、個別設定メッセージ43は、PUF値(すなわち、プログラマブルデバイスに適用されるPUF機能によって提供される値)と組み合わせて、グローバルプログラムコードに含まれる変数の内容を提供し得る値であり得る。したがって、第2のプログラムコードがグローバルであり、したがって複数のプログラマブルデバイス35に共通であっても、出力として提供される予想されるセンシティブ結果45は、各プログラマブルデバイス35に特定かつ一意であり得る。
有利に、個別設定メッセージを生成することは、各プログラマブルデバイス35に対して第2のプログラムコード42を生成することよりも少ないコンピュータリソースを必要とする。加えて、そのような実施形態はまた、第2のプログラムコードを適合又は修正する必要なく、後の段階で更なるプログラマブルデバイス35を容易に追加することを可能にするので、より柔軟である。実際に、任意の新たに追加されたプログラマブルデバイス35の特有データ35dは、第1のプログラムコード41を使用することによって依然として収集され得る。次いで、例えば、プロバイダ10によって生成された個別設定メッセージ43は、プログラマブルデバイス35でグローバルプログラムコード42’を遠隔で個別化するために、好ましくは、グローバルプログラムコード42’によって提供される予想されるセンシティブ結果45を遠隔で個別化するために、プログラマブルデバイス35に送信され得る。
例えば、プログラマブルデバイス35が、予想されるセンシティブ結果45として、一意のキーK2などの特定データを提供することが可能である場合では、したがって、このプログラマブルデバイスは、個別設定メッセージ43、すなわち、プログラマブルデバイス35に特定であり、かつ設定目的のために構成されている、一意のメッセージを受信するべきである。より具体的には、個別設定メッセージ43は、グローバルプログラムコード42’をパラメータ化又は設定するように構成されており、その結果、プログラマブルデバイス35は、予想されるセンシティブ結果45として適切なデータ(例えば、前述の一意のキーK2)を提供する。グローバルプログラムコード42’を設定することは、例えば、グローバルプログラムコードの少なくとも1つの関数又は少なくとも1つの変数に特定データを提供することによって達成され得る。
別の実施形態によれば、グローバルプログラムコード42’及び関連する個別設定メッセージ43が送信されたプログラマブルデバイス35は、一意関数35fを備える。この一意関数35fは、図3に示されるように、この一意関数において入力データとして使用される個別設定メッセージ43から第1のキーK1を提供するように構成され得る。この第1のキーK1は、そこから予想されるセンシティブ結果45を提供するために、グローバルプログラムコード42’の入力として更に使用され得る。
一実施形態によれば、グローバルプログラムコード42’は、暗号化アルゴリズム、例えば、AESなどの標準化された暗号化アルゴリズムである。この実施形態では、第1のキーK1は、そのような標準化されたアルゴリズムの入力として使用され得る。AESなどのアルゴリズムの一般的な動作がハッカーによく知られている場合であっても、このアルゴリズムに注入されるキー(すなわち、第1のキーK1)は、秘密のままであり、関連するプログラマブルデバイス35に一意に結び付けられていることを考えると、これは問題ではない。
別の実施形態によれば、予想されるセンシティブ結果45は、第2のキーK2、好ましくはアクティブ化キー又は暗号キーである。そのような第2のキーは、次いで、例えば、任意の目的のためにユーザユニット20によって使用され得る。
一実施形態では、伝送するステップ及び受信するステップのうちの少なくとも1つは、認証プロセス及び暗号化プロセスのうちの少なくとも1つによって安全化される。例えば、予想されるセンシティブ結果45は、ユーザユニット20に送信される前に、プログラマブルデバイス35によって、又はプラットフォーム30の任意の他の好適なデバイスによって暗号化され得る。別の実施例として、第1のプログラムコード41によって提供される特有データ35dは、本方法の第2のステップの動作S2’中に、暗号化された形態においてプロバイダ10に伝送され得る。同様に、プログラマブルデバイス35のうちの少なくとも1つによって受信される個別設定メッセージ43はまた、暗号化機構によって保護され得る。加えて、例えば、第2のプログラムコード42において使用されるアルゴリズムがデジタル資産である場合、典型的には、(標準化されたアルゴリズムとは対照的に)秘密に保たれるべき独自のアルゴリズムなどの特定の特性を有するアルゴリズムである場合、第2のプログラムコード42は、暗号化された形態でプログラマブルデバイス35に伝送され得る。したがって、プラットフォーム30、好ましくはプログラマブルデバイス35又は関連付けられたデバイスは、暗号プロセス、例えば、暗号化動作及び/又は復号化動作、並びにあれば認証プロセスが行われるように構成された暗号モジュール35k(図2)を備え得る。
一実施形態では、第1のプログラムコード41及び第2のプログラムコード42のうちの少なくとも1つは、ネットリスト、ソースコード、又は機械コードである。
第2の態様によれば、本解決策はまた、上で説明される方法に従って、より具体的には、この方法の任意の実施形態に、又はこの方法の実施形態の任意の可能な組み合わせに従って、遠隔でプログラムされるように設計されたプログラマブルデバイス35に関する。このように、プログラマブルデバイスは、予想される結果45を提供するためにプログラムされる。図2に示されるように、プログラマブルデバイス35は、
-プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データ35dと、
-通信インターフェース35aであって、
-前述の特有データ35dを得るように構成された第1のプログラムコード41と、
-特有データ35dに基づいて予想されるセンシティブ結果45を提供するように構成された第2のプログラムコード42と、を受信するための通信インターフェース35aと、
-第1及び第2のプログラムコード41、42を記憶するための少なくとも1つのメモリ35bと、
-第1及び第2のプログラムコード41、42を実行するためのプロセッサ35c又はハードウェア状態機械と、を備える。
-プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データ35dと、
-通信インターフェース35aであって、
-前述の特有データ35dを得るように構成された第1のプログラムコード41と、
-特有データ35dに基づいて予想されるセンシティブ結果45を提供するように構成された第2のプログラムコード42と、を受信するための通信インターフェース35aと、
-第1及び第2のプログラムコード41、42を記憶するための少なくとも1つのメモリ35bと、
-第1及び第2のプログラムコード41、42を実行するためのプロセッサ35c又はハードウェア状態機械と、を備える。
プログラマブルデバイス35は、好ましくは、例えば、PUF機能などの一意関数35fを備える。特有データ35dは、発振器35e、より具体的にはリング発振器などのプログラマブルデバイス35の少なくとも1つのコンポーネントから導出され得る。一意関数35fは、プロセッサ35cによって処理され得、もしあれば、プロセッサ自体又はメモリ35bに格納され得る。代替的に、一意関数35fは、例えば、いくつかのカスタムロジックによって、プログラマブルデバイス35のファブリック内で処理され得、プログラマブルデバイス構造内に格納され得る。前述の方法の実施形態に応じて、プログラマブルデバイス35は、暗号モジュール35、並びに他の特定タスクを実行するように構成された他のモジュール又はユニットを更に備え得る。好ましくは、プログラマブルデバイス35は、いわゆるFPGAである。
第3の態様では、本解決策は、上で説明される方法に従って、より具体的には、この方法の任意の実施形態に、又はこの方法の実施形態の任意の可能な組み合わせに従って、プ
ログラムコード41、42をプログラマブルデバイス35に、特に少なくとも1つのプログラマブルデバイス35に遠隔で提供するためのプロバイダ10に関する。このプロバイダ10は、
-プログラムコード生成器14であって、
-プログラマブルデバイス35に一意かつ物理的に固有の少なくとも1つの特有データ35dを得るように構成されている第1のプログラムコード41と、
-特有データ35dに基づいて予想されるセンシティブ結果45を提供するように構成された第2のプログラムコード42と、を生成するためのプログラムコード生成器14と、
-第1及び第2のプログラムコード41、42をプログラマブルデバイス35に送信し、そこから特有データ35dを受信するための通信チャネル1に接続されるように構成された通信インターフェース11と、を備える。前述の方法の実施形態に応じて、プロバイダ10は、プログラマブルデバイス35の暗号モジュール35kが意図され得るものと同様のタスクを実行するように、暗号モジュール(図示せず)を更に備え得る。
ログラムコード41、42をプログラマブルデバイス35に、特に少なくとも1つのプログラマブルデバイス35に遠隔で提供するためのプロバイダ10に関する。このプロバイダ10は、
-プログラムコード生成器14であって、
-プログラマブルデバイス35に一意かつ物理的に固有の少なくとも1つの特有データ35dを得るように構成されている第1のプログラムコード41と、
-特有データ35dに基づいて予想されるセンシティブ結果45を提供するように構成された第2のプログラムコード42と、を生成するためのプログラムコード生成器14と、
-第1及び第2のプログラムコード41、42をプログラマブルデバイス35に送信し、そこから特有データ35dを受信するための通信チャネル1に接続されるように構成された通信インターフェース11と、を備える。前述の方法の実施形態に応じて、プロバイダ10は、プログラマブルデバイス35の暗号モジュール35kが意図され得るものと同様のタスクを実行するように、暗号モジュール(図示せず)を更に備え得る。
本方法に関連して開示される任意の特徴又は特徴の組み合わせは、適用可能な場合、プログラマブルデバイス35及びプロバイダ10のうちの少なくとも1つの一部でもあり得ることに留意されたい。
最終的考慮事項
本発明の主題の概要が特定の例示的な実施形態を参照して記載されてきたが、様々な修正及び変更は、本発明の実施形態のより広い趣旨及び範囲から逸脱することなく、これらの実施形態に対して行われ得る。例えば、その特徴の様々な実施形態は、当業者によって混合され得るか、適合され得るか、又は任意選択的にされ得る。したがって、「発明を実施するための形態」は、限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は、添付の特許請求の範囲によってのみ、そのような特許請求の範囲が権利を与えられる均等物の全範囲と共に定義される。
本発明の主題の概要が特定の例示的な実施形態を参照して記載されてきたが、様々な修正及び変更は、本発明の実施形態のより広い趣旨及び範囲から逸脱することなく、これらの実施形態に対して行われ得る。例えば、その特徴の様々な実施形態は、当業者によって混合され得るか、適合され得るか、又は任意選択的にされ得る。したがって、「発明を実施するための形態」は、限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は、添付の特許請求の範囲によってのみ、そのような特許請求の範囲が権利を与えられる均等物の全範囲と共に定義される。
本開示は、遠隔の信頼できないプラットフォーム上でセンシティブサービスを提供するように、又は安全化される機能を実行するように設計されたハードウェアなどの、遠隔プログラマブルデバイスの分野に関する。この目的のために、本開示は、予想されるセンシティブ結果を提供するように設計されたプログラマブルデバイスを遠隔でプログラミングするための方法に関する。本開示は、そのようなプログラマブルデバイス、並びにそのようなプログラマブルデバイスにプログラムコードを遠隔で提供するためのプロバイダに更に関する。
信頼できない環境におけるプラットフォームは、センシティブ情報又は貴重な情報を検索し、活用するために、傍受され、模造され、又はハッキングされる傾向がある。遠隔の情報ソースに基づく環境内では、ハッカーが遠隔のソースとの通信を迂回し、そのような情報又はサービスへのアクセスを得るために信頼できるシステムの一部であるように見せかけることが可能である。
不正行為に対処しなければならないリスクはまた、他の動作中、例えば、そのようなプログラマブルデバイス上でソフトウェアを遠隔でアップグレードするときにも存在し得る。ソフトウェアは、いくつかの目的のために外部当事者によって行われるリバースエンジニアリング攻撃など、悪意のある攻撃を受ける可能性がある。いくつかの攻撃は、ソフトウェアを修正すること、例えば、特定の特徴をバイパスすること、若しくは悪意のあるコードセグメントをそこに追加すること、それがどのように動作するかを理解するためにソフトウェアをコピーすること、又はそれを読み出すことを行おうとし得る。
そのような懸念を克服する試みでは、いくつかのデバイスは、ハードウェア乱数生成器(HRNG:Hardware Random Number Generator)としても知られる、いわゆる真の乱数生成器(TRNG:True Random Number Generator)を使用して識別子を生成するように構成されている。そのような生成器は、単にアルゴリズムに基づくのではなく、物理的プロセスから乱数を生成するデバイスである。そのような生成器によって使用される物理的プロセスは、低レベル信号を生成する微視的現象に基づいていることを考慮すると、予測
不可能であると定義される。しかしながら、一意の数を提供するためにTRNGを使用して数を生成することは、一旦生成された値が知られると、任意のハッカーが複製目的のために解決策を模造することができるため、十分に効率的ではない。
不可能であると定義される。しかしながら、一意の数を提供するためにTRNGを使用して数を生成することは、一旦生成された値が知られると、任意のハッカーが複製目的のために解決策を模造することができるため、十分に効率的ではない。
米国特許出願公開第2019/305927(A1)号は、ノードロックに基づくビットストリームセキュリティを開示する。より具体的には、この文書は、暗号化なしの無線再構成を可能にしながら、フィールド内ビットストリーム再プログラミングに対する保護、並びに知的財産(IP:Intellectual Property)侵害に対する保護を提供するFPGA(フィールドプログラマブルゲートアレイ:Field Programmable Gate Array)セキュリティへのアプローチを開示する。
米国特許出願公開第2014/258736(A1)号は、信頼できないコンピューティングプラットフォームにおいて完全性及びセキュリティを維持するためのシステム及び方法を開示する。より具体的には、この文献は、信頼できるプロセッサの少なくとも1つのハードウェアコンポーネントにおいて物理複製困難関数(PUF:physically unclonable function)に基づいて秘密暗号キーを生成し、次いで、前述の秘密暗号キーを使用して第1の公開キー及び第1の秘密キーを生成し、第1のソフトウェアプログラムに対応する命令コードを実行する方法を開示する。
米国特許第8,918,647(B1)号は、認証システムを開示しており、より具体的には、ハードウェア検証、並びに置換による改ざん及び破壊から保護するためのバインディング認証に関する。
したがって、そのような脅威を防止し、前述の問題及び欠点を少なくとも部分的に克服するための効率的かつ信頼できる解決策に対する必要性が存在する。より具体的には、そのような解決策は、遠隔プラットフォーム上のそのようなプログラマブルデバイスが設計される貴重なサービス又は情報の完全性及びセンシティブ性を少なくとも保護することが可能であるべきである。この解決策は、貴重な関連製品又はサービスの複製を効率的に防止することができ、もしあれば、遠隔プラットフォームの安全なアップグレードを提供することが更に可能であるべきである。
この懸念に対処するために、本開示は、第1の態様として、請求項1に定義されるように、予想されるセンシティブ結果を提供するように設計されたプログラマブルデバイスを遠隔でプログラミングするための方法を提案する。
実施形態では、本方法は、
-第1のプログラムコードをプログラマブルデバイスに伝送することであって、第1のプログラムコードが、プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データを得るように構成されている、伝送することと、
-予想されるセンシティブ結果を提供するように構成された第2のプログラムコードを、第2のプログラムコードが特有データを生成しているプログラマブルデバイス上で実行される間に、生成するために特有データを検索することと、
-第2のプログラムコードをプログラマブルデバイスにロードするように、第2のプログラムコードをプログラマブルデバイスに伝送することと、を含む。
-第1のプログラムコードをプログラマブルデバイスに伝送することであって、第1のプログラムコードが、プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データを得るように構成されている、伝送することと、
-予想されるセンシティブ結果を提供するように構成された第2のプログラムコードを、第2のプログラムコードが特有データを生成しているプログラマブルデバイス上で実行される間に、生成するために特有データを検索することと、
-第2のプログラムコードをプログラマブルデバイスにロードするように、第2のプログラムコードをプログラマブルデバイスに伝送することと、を含む。
本解決策のおかげで、第2のプログラムコードの機能的状態は、第2のプログラムコードが、単一の、かつ特定のプログラマブルデバイス、すなわち、一意のプログラマブルデバイス上で、より詳細には、第1のプログラムコードを実行した後に特有データを生成しているデバイス上で実行されるときにのみ、予想されるセンシティブ結果を提供すること
ができるように、改変されることができる。これは、第2のプログラムコードが、特有データを生成しているものと同様の第三者のプログラマブルデバイス上でそれを実行するために第三者に利用可能にされた場合であっても、このデバイスによって提供される結果は、予想されるセンシティブ結果とは異なるであろうことを意味する。したがって、第2のプログラムコードは、有利に、一意のプログラマブルデバイスに結び付けられ、その結果、このデバイスが、多数の悪意のある攻撃を受ける可能性がある遠隔の信頼できないプラットフォーム上に物理的に配置されているにもかかわらず、この一意のプログラマブルデバイスによって実行された場合にのみ、第2のプログラムコードが予想されるセンシティブ結果を提供するので、この第2のプログラムコードによって提供される結果は、そのような攻撃に対して効率的に保護されたままである。更に、第2のプログラムコードは、リバースエンジニアリングがより困難になり、その実際の設計が特定のプログラマブルデバイス上で実行される場合にのみ再構成されるように改変され得る。
ができるように、改変されることができる。これは、第2のプログラムコードが、特有データを生成しているものと同様の第三者のプログラマブルデバイス上でそれを実行するために第三者に利用可能にされた場合であっても、このデバイスによって提供される結果は、予想されるセンシティブ結果とは異なるであろうことを意味する。したがって、第2のプログラムコードは、有利に、一意のプログラマブルデバイスに結び付けられ、その結果、このデバイスが、多数の悪意のある攻撃を受ける可能性がある遠隔の信頼できないプラットフォーム上に物理的に配置されているにもかかわらず、この一意のプログラマブルデバイスによって実行された場合にのみ、第2のプログラムコードが予想されるセンシティブ結果を提供するので、この第2のプログラムコードによって提供される結果は、そのような攻撃に対して効率的に保護されたままである。更に、第2のプログラムコードは、リバースエンジニアリングがより困難になり、その実際の設計が特定のプログラマブルデバイス上で実行される場合にのみ再構成されるように改変され得る。
好ましくは、第1のプログラムコード及び第2のプログラムコードは、通信チャネルを介してプログラマブルデバイスに遠隔でリンクされたプロバイダによって設計される。
一実施形態によれば、特有データは、プログラマブルデバイスの少なくとも1つのコンポーネントに適用される物理複製困難関数(PUF)から生じるか、又は導出される。
一実施形態では、第2のプログラムコードは、特有データに応じる可逆関数によって変換される。好ましくは、可逆関数は、数学関数又は論理関数である。
別の実施形態では、第2のプログラムコードは、特有データから検索可能な少なくとも1つのプログラムコード部分を、改変された部分で置き換えることによって変換される。
一実施形態によれば、第2のプログラムコードは、区別可能なプログラマブルデバイスのセットに共通のグローバルプログラムコードであり、セットの少なくとも1つのプログラマブルデバイスのための個別設定メッセージによって個別化されるように構成されており、個別設定メッセージは、関連するプログラマブルデバイスの特有データに基づいている。
好ましくは、関連するプログラマブルデバイスは、一意関数を備え、一意関数が、一意関数において入力データとして使用される個別設定メッセージから第1のキーを提供するように構成されており、第1のキーは、グローバルプログラムコードから予想されるセンシティブ結果を提供するためのグローバルプログラムコードの入力として更に使用される。
一実施形態では、グローバルプログラムコードは、暗号アルゴリズムである。
好ましくは、予想されるセンシティブ結果は、第2のキー、好ましくはアクティブ化キー又は暗号キーである。
一実施形態では、伝送するステップ及び検索するステップのうちの少なくとも1つは、認証プロセス及び暗号化プロセスのうちの少なくとも1つによって安全化される。
別の実施形態では、第1のプログラムコード及び第2のプログラムコードのうちの少なくとも1つは、ネットリスト、ソースコード、又は機械コードである。
好ましくは、通信チャネルがグローバルネットワークによって、又は信頼できない通信チャネルによって少なくとも部分的に提供される場合には、第1のプログラムコードは、
第1のプログラムコードの真正性及び完全性を保証するように安全な様式でプログラマブルデバイスに伝送される。
第1のプログラムコードの真正性及び完全性を保証するように安全な様式でプログラマブルデバイスに伝送される。
第2の態様によれば、本開示はまた、予想されるセンシティブ結果を提供するために、その実施形態のいずれかに従って、又はこれらの実施形態の任意の可能な組み合わせに従って実行されることができる上述の方法に従って、遠隔でプログラムされるように設計されたプログラマブルデバイスに関する。このプログラマブルデバイスは、特許請求の範囲に定義されている。実施形態では、プログラマブルデバイスは、
-プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データと、
-特有データを得るように構成された第1のプログラムコードと、特有データに基づいて予想されるセンシティブ結果を提供するように構成された第2のプログラムコードと、を受信するための通信インターフェースと、
-第1及び第2のプログラムコードを記憶するための少なくとも1つのメモリと、
-第1及び第2のプログラムコードを実行するためのプロセッサ又はハードウェア状態機械と、を備える。
-プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データと、
-特有データを得るように構成された第1のプログラムコードと、特有データに基づいて予想されるセンシティブ結果を提供するように構成された第2のプログラムコードと、を受信するための通信インターフェースと、
-第1及び第2のプログラムコードを記憶するための少なくとも1つのメモリと、
-第1及び第2のプログラムコードを実行するためのプロセッサ又はハードウェア状態機械と、を備える。
第3の態様では、本開示は、その実施形態のいずれかに従って、又はこれらの実施形態の任意の可能な組み合わせに従って実行されることができる上述の方法に従って少なくとも1つのプログラマブルデバイスにプログラムコードを遠隔で提供するためのプロバイダに関する。このプロバイダは、特許請求の範囲に定義されている。実施形態では、本プロバイダは、
-プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データを得るように構成された第1のプログラムコードと、特有データに基づいて予想されるセンシティブ結果を提供するように構成された第2のプログラムコードと、を生成するためのプログラムコード生成器と、
-第1及び第2のプログラムコードをプログラマブルデバイスに送信し、そこから特有データを受信するための通信チャネルに接続されるように構成された通信インターフェースと、を備える。
-プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データを得るように構成された第1のプログラムコードと、特有データに基づいて予想されるセンシティブ結果を提供するように構成された第2のプログラムコードと、を生成するためのプログラムコード生成器と、
-第1及び第2のプログラムコードをプログラマブルデバイスに送信し、そこから特有データを受信するための通信チャネルに接続されるように構成された通信インターフェースと、を備える。
他の実施形態及び利点は、詳細な記載において開示される。
本開示において提案される解決策及び実施形態は、非限定的な例として解釈されるべきであり、添付の図面を参照することによってより良好に理解されるであろう。
本方法が実施され得る典型的な環境の実施例である。
本解決策の方法のフローチャートを、この方法に含まれる主要な実体と共に示す。
図2に示される方法の変形例を示す。
図1は、3つの主要な実体、すなわち、プロバイダ10と、ユーザユニット20と、少なくともプログラマブルデバイス35を備えるプラットフォーム30と、を備える、環境の概略図を示す。これらの実体は、ネットワーク、典型的にはインターネットなどの信頼できないネットワークを通して互いに接続され得る。ただし、プライベートネットワークなどのローカルエリアネットワーク(LAN:local area network)はまた、ワイドエリアネットワーク(WAN:wide area network)の代わりに、又はWANに加えて使用され得る。好ましくは、プロバイダ10及びユーザユニット20は、両方ともプラットフォーム30に遠隔で接続され、それにより、プラットフォーム30は、クラウド内に配置されているとみなされ得る。本解決策の原理を理解するために、例えば、データ又はメッセージを交換するために、ユーザユニット20がプロバイダ10に接続される必要はないこ
とに留意されたい。したがって、プロバイダ10とユーザ20との間には、図1に示されるような直接的な接続又はリンクは存在しないが、実際にはそうである場合もあり得る。
とに留意されたい。したがって、プロバイダ10とユーザ20との間には、図1に示されるような直接的な接続又はリンクは存在しないが、実際にはそうである場合もあり得る。
プロバイダ10は、好ましくは、安全エリア内に配置される。プロバイダは、典型的には、プログラムコード40、特に、プラットフォーム30内に物理的に配置されたプログラマブルデバイス35向けのプログラムコードを提供するように設計されている。そのようなプログラムコード40はまた、当業者によって「ネットリスト」とも称される。いわゆるネットリストは、一旦プログラムされると、少なくとも1つの所望の機能又はアプリケーションを有するデバイスをプログラミングするためのコードの形態で提示されるソースデータのセットとみなされ得る。コードは、高水準ソフトウェア言語であり得、プログラムコード40は、いわゆるソースファイルに格納され得る。プログラムコードは、典型的には、コンピュータプログラム、又はプログラムを実行するために異なるシーケンスでプロセッサによって実行される命令を含むソフトウェアプログラムに対応する命令コードに関連し得る。
ユーザユニット20は、プラットフォーム30のサービス、特に、プログラマブルデバイス35のサービスを必要とする任意の種類のデバイスであるとみなされ得る。したがって、プログラマブルデバイス35が、例えば、タスクを実行するように、及び/又は特定のサービス若しくは結果を提供するように構成されたアプリケーションでプログラムされている場合、ユーザユニット20は、そのようなサービス又は結果を受信するために必要であり得るクライアントユニットなどのデバイスであるとみなされることができる。このため、好ましくは、図1に概略的に示されるように、ユーザユニット20とプラットフォーム30との間に確立され得る双方向接続が存在する。単一のユーザユニット20は図1に示される環境の一部であるが、いくつかのユーザユニット20が、プログラマブルデバイス35のサービスの利益を得るためにプラットフォーム30に接続され得ることが理解されるべきである。
したがって、図1に概略的に示されるように、プログラマブルデバイス35は、プロバイダ10から遠隔で、好ましくは、ユーザユニット20から距離を置いて配置される。プログラマブルデバイス35をホストするプラットフォーム30は、信頼できないプラットフォームであり得る。プログラマブルデバイス35は、例えば、プリント回路基板上に構築された電子回路などの電子デバイスであり、プログラマブルデバイスに少なくとも1つの特定の特徴又は機能を提供するために、少なくとも1つのプログラムコード40がその上にロードされ得る。そのような機能は、予想される結果を出力45として返報で提供するために、入力44を処理するように設計される可能性がある。入力44は、復号されるべき入力信号、処理されるべき入力データ若しくはメッセージ、又は単に要求であり得る。出力45は、ユーザユニット20に返送される応答として使用され得る。更に好ましくは、図1及び図2に示されるように、プログラマブルデバイス35は、いわゆるフィールドプログラマブルゲートアレイ(FPGA)などの再プログラマブルハードウェア要素である。
各実体10、20、30は、インターネットなどのネットワークの一部であり得る少なくとも1つの通信チャネル1を通してデータを交換するための通信インターフェース11、21、31を備える。図1は、典型的には、プロバイダ10がプログラマブルデバイス35にロードされるプログラムコード40を生成することを任される従来のアーキテクチャを典型的に表す。プログラムコード40は、通信路1を介して、遠隔プラットフォーム30に送信される。プラットフォーム30によって一旦受信されると、プログラムコード40は、典型的には、コンパイラなどの変換ツール33によって、プログラマブルデバイス35によって理解可能なフォーマットに変換される前に、記憶デバイス32に格納される。そのようなフォーマットに一旦変換されると、変換されたプログラムコード40’は
、プログラマブルデバイス35にロードされるために、その通信インターフェース35aを介して、プログラマブルデバイス35に伝送される。一旦ロードされると、プログラマブルデバイス35は、ユーザユニット20によって入力44として送信されたデータを処理し、プログラマブルデバイスの出力45として応答又は結果を送り返すための特定の機能を獲得する。
、プログラマブルデバイス35にロードされるために、その通信インターフェース35aを介して、プログラマブルデバイス35に伝送される。一旦ロードされると、プログラマブルデバイス35は、ユーザユニット20によって入力44として送信されたデータを処理し、プログラマブルデバイスの出力45として応答又は結果を送り返すための特定の機能を獲得する。
しかしながら、そのような方式は、いくつかの弱点を有する。実際に、プログラムコード40は、プロバイダ10とプログラマブルデバイス35との間の様々な場所でハッキングされる可能性があり、特に、プログラマブルデバイスが配置されているプラットフォーム30が、安全化されていない若しくは信頼できない実体で、又は、例えばクラウドにおける共有プラットフォームである可能性さえあるという事実のためである。第1の攻撃ポイントは、プロバイダ10とプラットフォーム30との間、すなわち、通信チャネル1内又はワイドエリアネットワーク内に配置される。この転送中に、悪意のある人は、誰も気付かずにプログラムコード40を傍受し、コピーし、修正し、又は窃取し得る。第2及び第3の攻撃ポイントは、ハッカーにとって他のエントリポイントとなり得る、格納デバイス32内及び変換ツール33内に配置される。第4の攻撃ポイントは、変換ツール33をプログラマブルデバイス35にリンクする接続において配置される可能性がある。最後の攻撃ポイントは、プログラマブルデバイス35において、例えば、プログラマブルデバイス35内に変換されたプログラムコード40’を格納するように設計されたメモリにおいて配置される可能性がある。
そのような欠点を克服するために、本解決策は、主に図2に示されている方法を開示する。この方法は、予想されるセンシティブ結果45を提供するように設計されたプログラマブルデバイス35を遠隔でプログラミングするように構成されている。そのような結果は、上で提示されたように、攻撃を受ける対象となる可能性があるので、センシティブであると定義される。センシティブ結果45は、プログラマブルデバイス35によって提供される任意のタイプのデータであり得る。例えば、センシティブ結果は、事業価値(business value)又は暗号キーであり得る。
本方法の第1のステップS1は、第1のプログラムコード41をプログラマブルデバイス35に伝送することを目的とする。この第1のプログラムコード41は、特徴付けネットリスト又は設定ネットリストであるとみなされ得る。したがって、第1のプログラムコード41は、図1に示されるプログラムコード40と混同されるべきではない。実際に、プログラムコード40は、プログラマブルデバイス35などのデバイス上に一旦ロードされると、センシティブな予想される結果45を提供するために直接使用可能な機能的プログラムコードである。他方では、第1のプログラムコード41は、そのような目的のために設計されていないので、そのような予想される結果45を提供することが不可能である。実際に、第1のプログラムコード41は、プログラマブルデバイス35に一意かつ物理的に固有の少なくとも1つの特有データ35dを得るように構成されている。図2において、この特有データ35dは、プログラマブルデバイスのDNA部分によって概略的に示され、第1のプログラムコード41は、そのようなDNA部分を収集するためにバイアルで概略的にスタンプされる。
そのような特有データは、発振器、例えば、同じタイプの別のリング発振器の周波数と正確に同一ではない特定の周波数を有するリング発振器35eから導出され得る。これは、2つの発振器の両方が単一の生産ラインによって同じ製造プロセスに従って生産されている場合であっても当てはまる。実際に、各発振器は、製造中に受けている小さな変動から本質的に生じる固有周波数を有する。これらのわずかな変動は、製造プロセス公差から生じ、それらの固有の特性のおかげで発振器を一意にする。他の電子部品又は回路についても同様であるので、発振器のみから特有データ35dを抽出する必要はなく、他の電子
部品が使用され得る。電子部品から特有データ35を得ることは、電子部品上で1つ以上の物理量を測定することによって実行され得る。この目的のために、シャープな(sharp)測定デバイス及び/又はプロセスが、適用され得る。更に、両方ともメモリ挙動に依存する磁気抵抗ランダムアクセスメモリ(MRAM:Magnetoresistive Random Access
Memory)又はスタティックランダムアクセスメモリ(SRAM:Static Random Access Memory)に基づく技術など、他の技術を使用して物理複製困難関数を作成することができることに留意されたい。
部品が使用され得る。電子部品から特有データ35を得ることは、電子部品上で1つ以上の物理量を測定することによって実行され得る。この目的のために、シャープな(sharp)測定デバイス及び/又はプロセスが、適用され得る。更に、両方ともメモリ挙動に依存する磁気抵抗ランダムアクセスメモリ(MRAM:Magnetoresistive Random Access
Memory)又はスタティックランダムアクセスメモリ(SRAM:Static Random Access Memory)に基づく技術など、他の技術を使用して物理複製困難関数を作成することができることに留意されたい。
本方法の第2のステップ(S2’及びS2”)は、まず、第2のプログラムコード42を生成するために、特有データ35dを検索することを目的とする。図2において、この動作S2’は、プログラマブルデバイス35のDNA部分を含むバイアルのサンプリングによって概略的に示されている。そのようなデータを検索することは、プラットフォーム30から、例えば、プログラマブルデバイス35から、又はプログラマブルデバイスの特有データ35dを得るように構成されたプラットフォームの任意の他のデバイスから特有データ35dを受信することによって達成され得る。この目的のために、後者は、例えば、第1のプログラムコード41のおかげで、その特有データ35dをプロバイダ10に伝送するように構成され得る。好ましくは、そのような伝送は、プログラマブルデバイス35の特有データ35dが取得されるとすぐに実行され得る。この伝送は、例えば、暗号プロセスを、好ましくは認証プロセスと同様に、プロバイダ10へのその伝送前に特有データ35dに適用することによって安全化され得る。暗号化プロセスは、任意の種類の暗号化アルゴリズムを指し得、認証プロセスは、典型的には、デジタル署名方式に基づくものであり得る。
例えば、プロバイダ10によって一旦検索されると、後者は、第2のプログラムコード42を生成するためにバイアルによって収集されたDNAを使用することによって図2に概略的に例解される、S2”で示される動作中に第2のプログラムコード42を生成することが可能である。この動作は、第2のステップの第2の部分とみなされ得る。
第2のプログラムコード42は、特有データ35dを生成しているプログラマブルデバイス35上で実行される場合に、予想されるセンシティブ結果45を提供するように構成されたプログラムコードである。言い換えれば、第2のプログラムコード42が、特有データ35dが取得されたプログラマブルデバイス35とは異なるデバイス上で実行される場合、第2のプログラムコード42によって提供される結果は、予想されるセンシティブ結果45とは異なることになる。これは、第2のプログラムコード42が、プログラマブルデバイス35の「DNA」の一部に従って、より具体的には、特定のプログラマブルデバイス35に一意かつ物理的に固有の特有データ35dに従って構成されているためである。したがって、第2のプログラムコード42がこのプログラマブルデバイス35にロードされる場合、特有データ35dが抽出されている単一かつ一意のプログラマブルデバイス35のみが、予想されるセンシティブ結果45を提供することが可能である。センシティブ結果は、それが正しい場合、予想されるセンシティブ結果45として定義されることに更に留意されたい。第2のプログラムコード42が、第3のデバイス上で、すなわち、特有データ35dを生成しているプログラマブルデバイス35とは異なるデバイス上にロードされて実行される場合、この第3のデバイスによって提供されるセンシティブ結果は、不正確になる。これは、第2のプログラムコード42が第3のデバイス上で、すなわち、必ずしもシステムエラーを引き起こすことなく動作され得るが、この第3のデバイスによって提供される結果は、予想されるセンシティブ結果45とは異なることを意味する。
本方法の第3のステップS3は、第2のプログラムコード42をプログラマブルデバイスにロードするように、第2のプログラムコード42をプログラマブルデバイス35に伝送することを目的とする。
本方法のおかげで、第1のプログラムコード41はそのような目的のために設計されていないので予想されるセンシティブ結果45を提供することができず、第2のプログラム42は、特有データ35dを生成しているプログラマブルデバイス35上で実行されるときにのみ予想されるセンシティブ結果45を提供することができるのであれば、典型的には、プロバイダ10とプログラマブルデバイス35との間に、もはや効率的な攻撃ポイントは存在しない。更に、予想されるセンシティブ結果45は、通常、プログラマブルデバイス35によって入力44に提供される応答であることに留意されたい。それは、予想されるセンシティブ結果45が、特有データ35dからのみでなく、入力44からも依存し得ることを意味する。特有データ35dが、予想されるセンシティブ結果45を計算するためにプログラマブルデバイス35に物理的に結び付けられていることを考えると、ハッカーが、ソフトウェアよりもハードウェアに近いとみなされ得るそのような特有データ35dを遠隔で得る可能性はない。したがって、プログラマブルデバイスの特有データ35dを取得することは、ソフトウェア攻撃ではなくハードウェア攻撃が必要となる。しかしながら、ハードウェア攻撃は、プログラマブルデバイス35が配置されているサイトにハッカーが物理的に行くことを必要とするので、除外されると考えられる。
一実施形態によれば、第1のプログラムコード41及び第2のプログラムコード42は、通信チャネル1を介してプログラマブルデバイス35に遠隔でリンクされたプロバイダ10によって設計される。プロバイダ10は、好ましくは、安全プロバイダ、すなわち、安全エリア内に配置されるプロバイダである。したがって、第1及び第2のプログラムコード41、42を生成することは、信頼できる環境内で、好ましくはプロバイダ10内に配置され得るプログラムコード生成器14によって安全に達成され得る。プロバイダ10とプログラマブルデバイス35又はプラットフォーム30との間の通信チャネル1は、安全チャネルである必要はなく、インターネットなどの任意のネットワーク内のチャネルであり得る。概して言えば、通信チャネル1は、グローバルネットワーク(例えば、インターネット)によって、又は信頼できない通信チャネルによって少なくとも部分的に提供される。それにもかかわらず、通信チャネル1が信頼できないチャネルである場合、第1のプログラムコードは、好ましくは、その真正性及びその完全性を保証するように安全な様式でプログラマブルデバイスに伝送される。この目的のために、第1のプログラムコード41は、プロバイダ10とプログラマブルデバイス35との間の伝送中に第1のプログラムコードに変更が行われていないことを保証するために、デジタル署名と共に暗号化された形態で伝送され得る。
好ましい実施形態では、特有データ35dは、プログラマブルデバイス35の少なくとも1つのコンポーネント35eに適用される物理複製困難関数(PUF)から生じるか、又は導出される。PUF機能は、コンポーネント35eなどの電子部品の製造プロセス変動を活用することを目的とし、これらの電子部品の固有の特性のおかげで、プログラマブルデバイス35の電子回路を一意にする。リング発振器35eが図2の例解図において実施例として使用されているが、PUF機能をリング発振器に限定する必要はないことに留意されたい。PUF機能は、第1のプログラムコード41の一部である機能、又はプログラマブルデバイス35若しくは別の好適なデバイスの一部である、例えば、第1のプログラムコード41によってトリガされ得る機能であり得る。
一実施形態では、第2のプログラムコード42は、特有データ35dに従ってパラメータ化及び/又は改変される。例えば、第2プログラムコード42は、特有データ35dに応じる可逆関数によって変換されているプログラムコードであり得る。言い換えれば、第2プログラムコード42は、特有データ35dに依存する可逆関数によって引き受けられる変換を受けたものであり得る。好ましくは、可逆関数は、例えば、XOR関数などの数学関数又は論理関数である。
一実施形態では、第2のプログラムコード42は、少なくとも1つのプログラムコード部分を改変された部分で置き換えることによって変換される。この場合、置き換えられている前述のプログラムコード部分は、特有データ35dを使用して検索可能なままである。例えば、プログラムコード部分は、可逆関数によって、より具体的には、特有データ35dによってパラメータ化された全単射可逆関数(例えば、暗号化関数)によって変換され得る。
図3に概略的に示される別の実施形態によれば、第2のプログラムコード42は、区別可能なプログラマブルデバイス35のセットに共通のグローバルプログラムコード42’である。言い換えれば、単一のグローバルプログラムコード42’は、複数のプログラマブルデバイス35によって使用されるように意図され、又は構成される。したがって、この実施形態は、より費用対効果が高いとみなされ得る。加えて、この実施形態は、複数のプログラマブルデバイス35が考慮される場合に、各プログラマブルデバイス35に対して第2のプログラムコード42を生成する必要がないことを考えると、実装がより容易である。したがって、グローバルプログラムコード42’は、次いで、例えば、プログラマブルデバイス35に、すなわち、複数のそのようなデバイスが考慮される場合には各プログラマブルデバイスに、又は複数のプログラマブルデバイス35のうちの少なくとも1つのプログラマブルデバイス35に、個別設定メッセージ43を送信することによって、個別化され得る汎用の第2のプログラムコード42とみなされ得る。
個別設定メッセージ43は、関連するプログラマブルデバイス35の特有データ35dに基づくべきである。例えば、個別設定メッセージ43は、PUF値(すなわち、プログラマブルデバイスに適用されるPUF機能によって提供される値)と組み合わせて、グローバルプログラムコードに含まれる変数の内容を提供し得る値であり得る。したがって、第2のプログラムコードがグローバルであり、したがって複数のプログラマブルデバイス35に共通であっても、出力として提供される予想されるセンシティブ結果45は、各プログラマブルデバイス35に特定かつ一意であり得る。
有利に、個別設定メッセージを生成することは、各プログラマブルデバイス35に対して第2のプログラムコード42を生成することよりも少ないコンピュータリソースを必要とする。加えて、そのような実施形態はまた、第2のプログラムコードを適合又は修正する必要なく、後の段階で更なるプログラマブルデバイス35を容易に追加することを可能にするので、より柔軟である。実際に、任意の新たに追加されたプログラマブルデバイス35の特有データ35dは、第1のプログラムコード41を使用することによって依然として収集され得る。次いで、例えば、プロバイダ10によって生成された個別設定メッセージ43は、プログラマブルデバイス35でグローバルプログラムコード42’を遠隔で個別化するために、好ましくは、グローバルプログラムコード42’によって提供される予想されるセンシティブ結果45を遠隔で個別化するために、プログラマブルデバイス35に送信され得る。
例えば、プログラマブルデバイス35が、予想されるセンシティブ結果45として、一意のキーK2などの特定データを提供することが可能である場合では、したがって、このプログラマブルデバイスは、個別設定メッセージ43、すなわち、プログラマブルデバイス35に特定であり、かつ設定目的のために構成されている、一意のメッセージを受信するべきである。より具体的には、個別設定メッセージ43は、グローバルプログラムコード42’をパラメータ化又は設定するように構成されており、その結果、プログラマブルデバイス35は、予想されるセンシティブ結果45として適切なデータ(例えば、前述の一意のキーK2)を提供する。グローバルプログラムコード42’を設定することは、例えば、グローバルプログラムコードの少なくとも1つの関数又は少なくとも1つの変数に
特定データを提供することによって達成され得る。
特定データを提供することによって達成され得る。
別の実施形態によれば、グローバルプログラムコード42’及び関連する個別設定メッセージ43が送信されたプログラマブルデバイス35は、一意関数35fを備える。この一意関数35fは、図3に示されるように、この一意関数において入力データとして使用される個別設定メッセージ43から第1のキーK1を提供するように構成され得る。この第1のキーK1は、そこから予想されるセンシティブ結果45を提供するために、グローバルプログラムコード42’の入力として更に使用され得る。
一実施形態によれば、グローバルプログラムコード42’は、暗号化アルゴリズム、例えば、AESなどの標準化された暗号化アルゴリズムである。この実施形態では、第1のキーK1は、そのような標準化されたアルゴリズムの入力として使用され得る。AESなどのアルゴリズムの一般的な動作がハッカーによく知られている場合であっても、このアルゴリズムに注入されるキー(すなわち、第1のキーK1)は、秘密のままであり、関連するプログラマブルデバイス35に一意に結び付けられていることを考えると、これは問題ではない。
別の実施形態によれば、予想されるセンシティブ結果45は、第2のキーK2、好ましくはアクティブ化キー又は暗号キーである。そのような第2のキーは、次いで、例えば、任意の目的のためにユーザユニット20によって使用され得る。
一実施形態では、伝送するステップ及び受信するステップのうちの少なくとも1つは、認証プロセス及び暗号化プロセスのうちの少なくとも1つによって安全化される。例えば、予想されるセンシティブ結果45は、ユーザユニット20に送信される前に、プログラマブルデバイス35によって、又はプラットフォーム30の任意の他の好適なデバイスによって暗号化され得る。別の実施例として、第1のプログラムコード41によって提供される特有データ35dは、本方法の第2のステップの動作S2’中に、暗号化された形態においてプロバイダ10に伝送され得る。同様に、プログラマブルデバイス35のうちの少なくとも1つによって受信される個別設定メッセージ43はまた、暗号化機構によって保護され得る。加えて、例えば、第2のプログラムコード42において使用されるアルゴリズムがデジタル資産である場合、典型的には、(標準化されたアルゴリズムとは対照的に)秘密に保たれるべき独自のアルゴリズムなどの特定の特性を有するアルゴリズムである場合、第2のプログラムコード42は、暗号化された形態でプログラマブルデバイス35に伝送され得る。したがって、プラットフォーム30、好ましくはプログラマブルデバイス35又は関連付けられたデバイスは、暗号プロセス、例えば、暗号化動作及び/又は復号化動作、並びにあれば認証プロセスが行われるように構成された暗号モジュール35k(図2)を備え得る。
一実施形態では、第1のプログラムコード41及び第2のプログラムコード42のうちの少なくとも1つは、ネットリスト、ソースコード、又は機械コードである。
第2の態様によれば、本解決策はまた、上で説明される方法に従って、より具体的には、この方法の任意の実施形態に、又はこの方法の実施形態の任意の可能な組み合わせに従って、遠隔でプログラムされるように設計されたプログラマブルデバイス35に関する。このように、プログラマブルデバイスは、予想される結果45を提供するためにプログラムされる。図2に示されるように、プログラマブルデバイス35は、
-プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データ35dと、
-通信インターフェース35aであって、
-前述の特有データ35dを得るように構成された第1のプログラムコード41と、
-特有データ35dに基づいて予想されるセンシティブ結果45を提供するように構成された第2のプログラムコード42と、を受信するための通信インターフェース35aと、
-第1及び第2のプログラムコード41、42を記憶するための少なくとも1つのメモリ35bと、
-第1及び第2のプログラムコード41、42を実行するためのプロセッサ35c又はハードウェア状態機械と、を備える。
-プログラマブルデバイスに一意かつ物理的に固有の少なくとも1つの特有データ35dと、
-通信インターフェース35aであって、
-前述の特有データ35dを得るように構成された第1のプログラムコード41と、
-特有データ35dに基づいて予想されるセンシティブ結果45を提供するように構成された第2のプログラムコード42と、を受信するための通信インターフェース35aと、
-第1及び第2のプログラムコード41、42を記憶するための少なくとも1つのメモリ35bと、
-第1及び第2のプログラムコード41、42を実行するためのプロセッサ35c又はハードウェア状態機械と、を備える。
プログラマブルデバイス35は、好ましくは、例えば、PUF機能などの一意関数35fを備える。特有データ35dは、発振器35e、より具体的にはリング発振器などのプログラマブルデバイス35の少なくとも1つのコンポーネントから導出され得る。一意関数35fは、プロセッサ35cによって処理され得、もしあれば、プロセッサ自体又はメモリ35bに格納され得る。代替的に、一意関数35fは、例えば、いくつかのカスタムロジックによって、プログラマブルデバイス35のファブリック内で処理され得、プログラマブルデバイス構造内に格納され得る。前述の方法の実施形態に応じて、プログラマブルデバイス35は、暗号モジュール35、並びに他の特定タスクを実行するように構成された他のモジュール又はユニットを更に備え得る。好ましくは、プログラマブルデバイス35は、いわゆるFPGAである。
第3の態様では、本解決策は、上で説明される方法に従って、より具体的には、この方法の任意の実施形態に、又はこの方法の実施形態の任意の可能な組み合わせに従って、プログラムコード41、42をプログラマブルデバイス35に、特に少なくとも1つのプログラマブルデバイス35に遠隔で提供するためのプロバイダ10に関する。このプロバイダ10は、
-プログラムコード生成器14であって、
-プログラマブルデバイス35に一意かつ物理的に固有の少なくとも1つの特有データ35dを得るように構成されている第1のプログラムコード41と、
-特有データ35dに基づいて予想されるセンシティブ結果45を提供するように構成された第2のプログラムコード42と、を生成するためのプログラムコード生成器14と、
-第1及び第2のプログラムコード41、42をプログラマブルデバイス35に送信し、そこから特有データ35dを受信するための通信チャネル1に接続されるように構成された通信インターフェース11と、を備える。前述の方法の実施形態に応じて、プロバイダ10は、プログラマブルデバイス35の暗号モジュール35kが意図され得るものと同様のタスクを実行するように、暗号モジュール(図示せず)を更に備え得る。
-プログラムコード生成器14であって、
-プログラマブルデバイス35に一意かつ物理的に固有の少なくとも1つの特有データ35dを得るように構成されている第1のプログラムコード41と、
-特有データ35dに基づいて予想されるセンシティブ結果45を提供するように構成された第2のプログラムコード42と、を生成するためのプログラムコード生成器14と、
-第1及び第2のプログラムコード41、42をプログラマブルデバイス35に送信し、そこから特有データ35dを受信するための通信チャネル1に接続されるように構成された通信インターフェース11と、を備える。前述の方法の実施形態に応じて、プロバイダ10は、プログラマブルデバイス35の暗号モジュール35kが意図され得るものと同様のタスクを実行するように、暗号モジュール(図示せず)を更に備え得る。
本方法に関連して開示される任意の特徴又は特徴の組み合わせは、適用可能な場合、プログラマブルデバイス35及びプロバイダ10のうちの少なくとも1つの一部でもあり得ることに留意されたい。
最終的考慮事項
本発明の主題の概要が特定の例示的な実施形態を参照して記載されてきたが、様々な修正及び変更は、本発明の実施形態のより広い趣旨及び範囲から逸脱することなく、これらの実施形態に対して行われ得る。例えば、その特徴の様々な実施形態は、当業者によって混合され得るか、適合され得るか、又は任意選択的にされ得る。したがって、「発明を実施するための形態」は、限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は、添付の特許請求の範囲によってのみ、そのような特許請求の範囲が権利を与えられる均等物の全範囲と共に定義される。
本発明の主題の概要が特定の例示的な実施形態を参照して記載されてきたが、様々な修正及び変更は、本発明の実施形態のより広い趣旨及び範囲から逸脱することなく、これらの実施形態に対して行われ得る。例えば、その特徴の様々な実施形態は、当業者によって混合され得るか、適合され得るか、又は任意選択的にされ得る。したがって、「発明を実施するための形態」は、限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は、添付の特許請求の範囲によってのみ、そのような特許請求の範囲が権利を与えられる均等物の全範囲と共に定義される。
Claims (15)
- 予想されるセンシティブ結果(45)を提供するように設計されたプログラマブルデバイス(35)を遠隔でプログラミングするための方法であって、前記方法が、
-第1のプログラムコード(41)を前記プログラマブルデバイス(35)に伝送することであって、前記第1のプログラムコード(41)が、前記プログラマブルデバイス(35)に一意かつ物理的に固有の少なくとも1つの特有データ(35d)を得るように構成されている、伝送することと、
-前記予想されるセンシティブ結果(45)を提供するように構成された第2のプログラムコード(42)を、前記第2のプログラムコード(42)が前記特有データ(35d)を生成している前記プログラマブルデバイス(35)上で実行される場合に、生成するために前記特有データ(35e)を検索することと、
-前記第2のプログラムコード(42)を前記プログラマブルデバイス(35)にロードするように、前記第2のプログラムコード(42)を前記プログラマブルデバイス(35)に伝送することと、を含む、方法。 - 前記第1のプログラムコード(41)及び前記第2のプログラムコード(42)が、通信チャネル(1)を介して前記プログラマブルデバイス(35)に遠隔でリンクされたプロバイダ(10)によって設計される、請求項1に記載の方法。
- 前記特有データ(35d)が、前記プログラマブルデバイス(35)の少なくとも1つのコンポーネント(35e)に適用される物理複製困難関数(35f)から生じるか、又は導出される、請求項1又は2に記載の方法。
- 前記第2のプログラムコード(42)が、前記特有データ(35d)に応じる可逆関数によって変換される、請求項1~3のいずれか一項に記載の方法。
- 前記可逆関数が、数学関数又は論理関数である、請求項4に記載の方法。
- 前記第2のプログラムコード(42)が、前記特有データ(35d)から検索可能な少なくとも1つのプログラムコード部分を、改変された部分で置き換えることによって変換される、請求項4又は5に記載の方法。
- 前記第2のプログラムコード(42)が、区別可能なプログラマブルデバイス(35)のセットに共通のグローバルプログラムコード(42’)であり、前記セットの少なくとも1つのプログラマブルデバイス(35)のための個別設定メッセージ(43)によって個別化されるように構成されており、前記個別設定メッセージ(43)が、関連するプログラマブルデバイス(35)の前記特有データ(35d)に基づいている、請求項1~6のいずれか一項に記載の方法。
- 前記関連するプログラマブルデバイス(35)が、一意関数(35f)を備え、前記一意関数(35f)が、前記一意関数(35f)において入力データとして使用される前記個別設定メッセージ(43)から第1のキー(K1)を提供するように構成されており、前記第1のキー(K1)が、前記グローバルプログラムコード(42’)から予想されるセンシティブ結果(45)を提供するための前記グローバルプログラムコード(42’)の入力として更に使用される、請求項7に記載の方法。
- 前記グローバルプログラムコード(42’)が、暗号アルゴリズムである、請求項7又は8に記載の方法。
- 前記予想されるセンシティブ結果(45)が、第2のキー(K2)、好ましくはアクティブ化キー又は暗号キーである、請求項1~9のいずれか一項に記載の方法。
- 前記伝送するステップ及び検索するステップのうちの少なくとも1つが、認証プロセス及び暗号化プロセスのうちの少なくとも1つによって安全化される、請求項1~10のいずれか一項に記載の方法。
- 前記第1のプログラムコード(41)及び前記第2のプログラムコード(42)のうちの少なくとも1つが、ネットリスト、ソースコード、又は機械コードである、請求項1~11のいずれか一項に記載の方法。
- 前記通信チャネル(1)が信頼できない通信チャネルによって少なくとも部分的に提供される場合には、前記第1のプログラムコード(41)が、前記第1のプログラムコード(41)の真正性及び完全性を保証するように安全な様式で前記プログラマブルデバイス(35)に伝送される、請求項2~12のいずれか一項に記載の方法。
- 予想されるセンシティブ結果(45)を提供するために、請求項1~13のいずれか一項に記載の方法に従って遠隔でプログラムされるように設計されたプログラマブルデバイス(35)であって、前記プログラマブルデバイス(35)が、
-前記プログラマブルデバイス(35)に一意かつ物理的に固有の少なくとも1つの特有データ(35d)と、
-前記特有データ(35d)を得るように構成された第1のプログラムコード(41)と、前記特有データ(35d)に基づいて前記予想されるセンシティブ結果(45)を提供するように構成された第2のプログラムコード(42)と、を受信するための通信インターフェース(35a)と、
-前記第1及び第2のプログラムコード(41、42)を記憶するための少なくとも1つのメモリ(35b)と、
-前記第1及び第2のプログラムコード(41、42)を実行するためのプロセッサ(35c)又はハードウェア状態機械と、を備える、プログラマブルデバイス(35)。 - 請求項1~13のいずれか一項に記載の方法に従って、少なくとも1つのプログラマブルデバイス(35)にプログラムコード(41、42)を遠隔で提供するためのプロバイダ(10)であって、前記プロバイダが、
-前記プログラマブルデバイス(35)に一意かつ物理的に固有の少なくとも1つの特有データ(35d)を得るように構成された第1のプログラムコード(41)と、前記特有データ(35d)に基づいて予想されるセンシティブ結果(45)を提供するように構成された第2のプログラムコード(42)と、を生成するためのプログラムコード生成器(14)と、
-前記第1及び第2のプログラムコード(41、42)を前記プログラマブルデバイス(35)に送信し、そこから前記特有データ(35d)を受信するための通信チャネル(1)に接続されるように構成された通信インターフェース(11)と、を備える、プロバイダ(10)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20184290.3 | 2020-07-06 | ||
EP20184290.3A EP3937449A1 (en) | 2020-07-06 | 2020-07-06 | Method for remotely programming a programmable device |
PCT/EP2021/068605 WO2022008487A1 (en) | 2020-07-06 | 2021-07-06 | Method for remotely programming a programmable device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023533734A true JP2023533734A (ja) | 2023-08-04 |
Family
ID=71522966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023501233A Pending JP2023533734A (ja) | 2020-07-06 | 2021-07-06 | プログラマブルデバイスを遠隔でプログラミングするための方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230224173A1 (ja) |
EP (2) | EP3937449A1 (ja) |
JP (1) | JP2023533734A (ja) |
KR (1) | KR20230037588A (ja) |
CN (1) | CN116158051A (ja) |
WO (1) | WO2022008487A1 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014138626A1 (en) * | 2013-03-08 | 2014-09-12 | Robert Bosch Gmbh | Systems and methods for maintaining integrity and secrecy in untrusted computing platforms |
US20150134966A1 (en) * | 2013-11-10 | 2015-05-14 | Sypris Electronics, Llc | Authentication System |
US20190305927A1 (en) * | 2016-03-18 | 2019-10-03 | University Of Florida Research Foundation Incorporated | Bitstream security based on node locking |
-
2020
- 2020-07-06 EP EP20184290.3A patent/EP3937449A1/en not_active Withdrawn
-
2021
- 2021-07-06 JP JP2023501233A patent/JP2023533734A/ja active Pending
- 2021-07-06 CN CN202180057344.4A patent/CN116158051A/zh active Pending
- 2021-07-06 KR KR1020237003964A patent/KR20230037588A/ko unknown
- 2021-07-06 WO PCT/EP2021/068605 patent/WO2022008487A1/en unknown
- 2021-07-06 EP EP21742339.1A patent/EP4176567A1/en active Pending
- 2021-07-06 US US18/004,416 patent/US20230224173A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022008487A1 (en) | 2022-01-13 |
CN116158051A (zh) | 2023-05-23 |
EP3937449A1 (en) | 2022-01-12 |
KR20230037588A (ko) | 2023-03-16 |
US20230224173A1 (en) | 2023-07-13 |
EP4176567A1 (en) | 2023-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10395012B2 (en) | Media client device authentication using hardware root of trust | |
van Oorschot | Computer Security and the Internet | |
WO2018046008A1 (zh) | 一种区块链加密射频芯片存储设计方法 | |
US8949607B2 (en) | Digital data authentication | |
US20090249492A1 (en) | Fabrication of computer executable program files from source code | |
GB2555496A (en) | Establishing crytographic identity for an electronic device | |
CN101114326A (zh) | 用于计算机装置验证的系统和方法 | |
EP2064648A1 (en) | Fabrication of computer executable program files from source code | |
US20190363888A1 (en) | System and Method for Measuring and Reporting IoT Boot Integrity | |
WO2019199813A2 (en) | Managed high integrity blockchain and blockchain communications that utilize containers | |
Halpin | The W3C web cryptography API: motivation and overview | |
CN113597627A (zh) | 区块链报头验证中的动态变换 | |
Garcia et al. | Wirelessly lockpicking a smart card reader | |
Feng et al. | Secure code updates for smart embedded devices based on PUFs | |
CN113722749A (zh) | 基于加密算法的区块链baas服务的数据处理方法及装置 | |
US20230224173A1 (en) | Method for remotely programming a programmable device | |
Badrignans et al. | Sarfum: security architecture for remote FPGA update and monitoring | |
Thompson | UDS Security Access for Constrained ECUs | |
Falas et al. | Hardware-enabled secure firmware updates in embedded systems | |
Lin et al. | Ransomware Analysis | |
Rawat et al. | Enhanced Security Mechanism for Cryptographic File Systems Using Trusted Computing | |
Zhao et al. | A Lightweight Hardware-Assisted Security Method for eFPGA Edge Devices | |
Κασαγιάννης | Security evaluation of Android Keystore | |
Badrignans et al. | Embedded systems security for FPGA | |
Natti et al. | Implementations of Secure Reconfigurable Cryptoprocessor a Survey |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230309 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240509 |