JP2023544050A - 不揮発性メモリデバイスおよび対応するシステムからの高速の安全なブートのための方法ならびにそのためのデバイス - Google Patents

不揮発性メモリデバイスおよび対応するシステムからの高速の安全なブートのための方法ならびにそのためのデバイス Download PDF

Info

Publication number
JP2023544050A
JP2023544050A JP2023520235A JP2023520235A JP2023544050A JP 2023544050 A JP2023544050 A JP 2023544050A JP 2023520235 A JP2023520235 A JP 2023520235A JP 2023520235 A JP2023520235 A JP 2023520235A JP 2023544050 A JP2023544050 A JP 2023544050A
Authority
JP
Japan
Prior art keywords
nvm
code
host
value
host device
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
JP2023520235A
Other languages
English (en)
Inventor
大輔 中田
伸介 岡田
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.)
Infineon Technologies LLC
Original Assignee
Infineon Technologies LLC
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 Infineon Technologies LLC filed Critical Infineon Technologies LLC
Publication of JP2023544050A publication Critical patent/JP2023544050A/ja
Pending legal-status Critical Current

Links

Images

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/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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • G06F21/575Secure boot
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • 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/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
    • 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/84Vehicles

Landscapes

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

Abstract

方法は、ホストデバイスによって実行可能なホストコードを不揮発性メモリ(NVM)デバイス内に格納し、NVMデバイスによって実行可能なNVMコードを格納するステップを含むことができる。NVMデバイスは、所定の条件に応答してNVMコードのインテグリティを有効化することができ、NVMコードを有効化するためのコードインテグリティ値を生成することができる。コードインテグリティ値は、ホストコードのサイズに無関係のサイズを有する。少なくともコードインテグリティ値によって生成される認証コードは、ホストデバイスに送信可能である。ホストデバイスからの読み出し要求に応答して、ホストデバイスによる実行のためのホストコードの少なくとも部分を返信する。対応するデバイスおよびシステムも開示される。

Description

関連出願
この出願は、2020年12月15日に出願された米国特許出願第17/122,927号の国際出願であり、2020年10月2日に出願された米国仮特許出願第63/086,750号の優先権および利益を主張し、その内容のすべては、本願明細書において参照によって組み込まれる。
本開示は、概して、不揮発性メモリデバイス上に格納されるコードを実行するホストデバイスを有するシステムに関するものであり、より詳しくは、ホストデバイスが不揮発性メモリデバイス上に格納されるコードを認証するシステムに関するものである。
プロセッサを含むシステムは、プロセッサによる実行のためのコード、例えば、ソフトウェア(SW)またはファームウェア(FW)がメモリデバイスからロード可能なブート動作を有することができる。ブート動作は、例えば、パワーオンおよび/またはリセットイベントに応答して発生しうる。ブート動作のためのコードは、典型的には、不揮発性メモリ(NVM)デバイス内に格納される。
「安全な」ブートを有する能力は、多くのシステムにとって重要となりうる。安全なブートは、コードがプロセッサによって実行される前に、コードのインテグリティを確立することに依存する。従来は、コードのインテグリティは、システムのブートアップ時にコード内容を査定するホストデバイスによって確立可能である。コード内容を査定することは、不揮発性デバイスによって格納されるコード(例えば、SWイメージ)のサイズに依存する。全ブートアップ時間(time)は、
time=tbl+tapp tapp=BWmeasure×Sizeapp
によって与えられ、tblはブートローダのローディング時間であり、tappはアプリケーション査定(インテグリティチェック)時間であり、BWmeasureは転送速度(例えば、バイト当たりの時間)であり、SizeappはSWイメージのサイズ(例えば、バイト)である。したがって、ブートアップ時間は、SWイメージのサイズに依存しうる。
図17は、システム1701のための従来のブートアップシーケンスを示すブロック図である。システム1701は、NVMデバイス1703およびホストデバイス1705を含むことができる。ブートアップシーケンスにおいて、NVMデバイス1703内のパワーオンリセット回路1707-0は、パワーオンまたはリセット条件を検出し、NVMデバイス1703の電源を入れ、NVMデバイス1703を動作可能にする。
ホストデバイス1705内で、ホストPOR回路1707-1は、パワーオンまたはリセット条件を検出することができる。応答して、ホストデバイス1705は、読み取り専用メモリ(ROM)ブート動作1709を実行することができ、ROMからブートデータをロードすることができる。次に、ホストデバイス1705は、ブートローディング動作1715を実行することができ、ブートローディング動作1715は、NVMデバイス1703からブートローディングデータ1711を読み出すことを含む。ブートローディングデータ1711のインテグリティは、査定動作1717-0の対象となりうる。これは、ハッシュ関数1713によってブートローディングデータ1711からハッシュ値を生成すること、および/または、解読機能1719によってブートローダデータを解読することを含むことができる。ROMブート動作1709およびブートローディング動作1715は、ブートロード時間tbl1721の間発生しうる。
次に、ホストデバイス1705は、アプリケーションソフトウェア(AppSW)インテグリティ動作1723を実行することができる。これは、NVMデバイス1703上に格納されるAppSW1725の査定動作1717-1を含むことができる。AppSWインテグリティ動作1723は、時間tapp1727を占めることができ、時間tapp1727は、上述したように、AppsSWのサイズに従って変化しうる。
図17のような従来のブートシーケンスの欠点は、SWサイズが増加するにつれて、ブート時間が増加することである。一例として、これは、いくつかのシステムにおいて、例えば、ブート時間がより大きいSWサイズのためのバス応答制限時間を上回りうるコントローラ・エリア・ネットワーク(CAN)上で動作するシステムにおいて、問題となりうる。
一実施形態に従って、ホストデバイスおよび不揮発性メモリ(NVM)デバイスを有するシステムのための認証方法を示すブロック図のシーケンスである。 一実施形態に従って、NVMデバイス内に格納されるソフトウェアを認証する方法を示すブロック図である。 一実施形態に従って、対称暗号によりNVMデバイス状態を認証するシステムおよび対応する方法のブロック図である。 一実施形態に従って、非対称暗号によりNVMデバイス状態を認証するシステムおよび対応する方法のブロック図である。 他の実施形態に従って、非対称暗号によりNVMデバイス状態を認証するシステムおよび対応する方法のブロック図である。 さまざまな実施形態のブート時間と比較して、従来のブート時間を示す図である。 一実施形態に従うNVMデバイスのブロック図である。 一実施形態に含まれうるNVMアレイのブロック図である。 一実施形態に従う集積回路のNVMデバイスのブロック図である。 一実施形態に従うホストデバイスのブロック図である。 一実施形態に従う自動車システムのブロック図である。 他の実施形態に従う自動車システムのブロック図である。 一実施形態に従うNVMデバイスの認証方法のフロー図である。 一実施形態に従うホストデバイスの認証方法のフロー図である。 一実施形態に従う認証方法のフロー図である。 一実施形態に従うコード(例えば、ファームウェア)更新動作のフロー図である。 従来の安全なブート動作のブロック図である。
実施形態によれば、不揮発性メモリ(NVM)デバイスは、ホストデバイスによる実行のためのホストコードおよびNVMデバイス自体による実行のためのNVMコードを格納することができる。所定の条件(例えば、パワーオンまたはリセット)に応答して、NVMデバイスは、NVMコードのインテグリティをチェックすることができる。NVMデバイスは、コードインテグリティ値を格納することができ、コードインテグリティ値は、認証コードにおいて、ホストデバイスに伝送される。ホストデバイスは、格納されたホストコードを査定することによってではなく、認証コードに基づいて、NVMによって格納されたコードを認証することができる。
いくつかの実施形態では、コードインテグリティ値は、NVMコードの周知の良好なバージョンのハッシュ値とすることができる。
いくつかの実施形態では、NVMデバイスは、秘密鍵により認証コードを暗号化することができ、ホストデバイスは、公開鍵により認証コードを解読することができる。
いくつかの実施形態では、NVMデバイスは、ホストデバイスによって読み出されるNVMコードのハッシュ値を生成することができる。ホストデバイスは、NVMデバイスから読み出されるハッシュ値を周知の有効なハッシュ値と比較し、NVMデバイスを認証し、したがって、NVMデバイスによって格納されるホストコードを認証することができる。
以下のさまざまな実施形態では、類似のアイテムは、同一の参照符号であるが、その第1の桁が図面番号に対応する参照符号によって参照される。
図1Aから図1Cは、一実施形態に従うシステム100のブロック図である。システム100は、NVMデバイス102およびホストデバイス104を含むことができる。NVMデバイス102は、NVMユーザ空間106、ホストファームウェア(FW)108、NVMファームウェア109、コードインテグリティ値110およびコードインテグリティチェッカ112を含むことができる。NVMユーザ空間106は、ホストFW(例えば、コード)108およびNVM FW109を含むデータを格納するためのNVMセルの1つまたは複数のアレイを含むことができる。NVMアレイは、NOR構成を含むがこれに限定されない任意の適切な形をとることができる。ホストFW108は、ホストデバイス104によって実行可能であるファームウェアイメージとすることができる。NVM FW109は、NVMデバイス102によって実行可能であるファームウェアイメージとすることができる。いくつかの実施形態では、NVM FW109は、NVMデバイス102の安全なメモリ領域内に格納され、NVMデバイスの外側ではアクセス可能ではないか、または、安全なアクセス手順によってのみアクセス可能である。
コードインテグリティ値110は、NVMデバイス102のインテグリティを表現する値とすることができ、したがって、ホストFW108のインテグリティを認証することができる。コードインテグリティ値110は、ホストデバイス104により用いられ、NVMデバイス102を認証することができ、したがって、従来の方法のように、ホストデバイス104が査定動作によりホストFW108を評価することを必要としない。コードインテグリティ値110は、ホストFW108のサイズに従って変化しないビットサイズを有することができる。いくつかの実施形態では、コードインテグリティ値110は、NVM FW109の周知の有効なバージョン上で実行されるハッシング関数によって生成されるハッシュ値とすることができる。いくつかの実施形態では、コードインテグリティ値110は、NVMデバイス102の安全な場所(図示せず)内に格納可能である。安全な場所は、セキュリティ手順(一例として、認証)によってのみアクセスできる記憶領域とすることができる。いくつかの実施形態では、コードインテグリティ値110は、暗号化されていない状態で(例えば、安全な領域内に)格納可能である。しかしながら、他の実施形態では、この種の値は、暗号化された状態でNVMデバイス102上に格納可能である。
コードインテグリティチェッカ112は、NVMデバイス102(したがってNVMデバイス102によって格納されるホストFW108)のインテグリティ評価に用いられるように、NVM FW109の査定をすることができる。この種の動作は、NVM FW109の全部または一部を査定することを含む任意の適切な形をとることができる。いくつかの実施形態では、コードインテグリティチェッカ112は、NVM FW109から単一のハッシュ値を生成することができる。いくつかの実施形態では、この種の生成されたハッシュ値は、周知の有効なハッシュ値(例えば、コードインテグリティ値110)と比較可能である。コードインテグリティチェッカ112は、格納された命令を実行するNVMプロセッサおよび/または機能のために設計される論理回路を含むがこれらに限定されない任意の適切な形をとることができる。いくつかの実施形態において、コードインテグリティチェッカ112が、格納されたNVM FW109が有効でないと決定する場合、NVM102は、ホストFW108への任意のアクセスを防止することができる(有効であると保証することができない)。
ホストデバイス104は、有線または無線の接続を含む任意の適切な手段を介して、NVM102と通信することができる。いくつかの実施形態では、ホストデバイス104は、シリアルバス上でNVMデバイス102と通信することができる。ホストデバイス104は、認証機能114およびホストFW実行機能116を含むことができる。認証機能114は、NVM102から提供されるコードインテグリティ値110を用いて、FW108を認証することができる。ホストFW実行機能116は、NVMデバイス102上に格納されるホストFW108を実行し、さまざまなシステムアプリケーションを提供することができる。いくつかの実施形態では、ホストFW実行機能116は、NVM102から直接コードを実行するeXecute-in-place(XIP)機能とすることができる。しかしながら、他の実施形態では、ホストFW実行機能116は、ホストFW108をホストデバイス104上のホストメモリ(例えば、図示しないDRAM)内にロードすることができる。次に、ホストデバイス104は、ホストメモリからホストFWを実行することができる。
以下、システム100の動作を説明する。
図1Aを参照すると、ある条件に応答して、NVMデバイス102は、NVM FW109のインテグリティをチェックすることができる(1)。いくつかの実施形態では、この種の条件は、パワーオンまたはリセットを含むことができる。しかしながら、インテグリティチェック動作は、ホストデバイス104によって出される所定のコマンドを含む他の任意の適切な条件に応答してトリガ可能である。FWインテグリティチェック動作(1)は、本願明細書において記載されているものまたは均等物の任意の形をとることができる。
図1Bを参照すると、NVMデバイス102は、暗号化されたコードインテグリティ値110’をホストデバイス104に送信することができる(2)。ホストデバイス104は、暗号化されたコードインテグリティ値110’に基づいて、NVM FW109を認証することができる。いくつかの実施形態では、ホストデバイス104は、NVMデバイス102にアクセスして、認証動作において追加のデータを読み出すことができる(例えば、現在格納されたFW108のハッシュ値を検索するために)。暗号化されたコードインテグリティ値110’は、ホストFW108のサイズに無関係のサイズを有することができ、したがって、所定の時間(例えば、1つの読み出し動作)でアクセス可能である。その結果、ブート動作のための時間は、従来の方法より高速になりうる、および/または、より決定的になりうる。NVM FW109を認証することは、NVMデバイス102の状態、およびしたがって、NVMデバイス102によって格納されるホストFW108の状態を認証することができる。
図1Cを参照すると、一旦、ホストデバイス104がホストFW108を認証すると、ホストデバイス104は、FW実行機能116による実行のために、ホストFW108にアクセスすることができる(3)。いくつかの実施形態では、ホストFW108は、適所で実行可能である。他の実施形態では、FW108は、ホストメモリ(図示せず)内にロード可能である。
実施形態によれば、ホストデバイスが、査定動作によってNVMデバイス内に格納されるコード(例えば、SW、FW)のインテグリティを証明する代わりに、ホストデバイスは、NVMデバイスの暗号の状態のインテグリティを証明することができる。NVMデバイスのハードウェア(HW)およびNVM FWが有効な暗号の状態であるということを証明することは、改竄がNVMデバイスによって発生しなかったということを証明することができる。すなわち、NVMデバイス内にプログラムされる内容(例えば、コード)は、有効な暗号の状態において正しいことが照合可能である。したがって、NVMデバイスが改竄されなかった場合、NVMデバイス内に格納される内容(例えば、ホストコード)は、侵入されたはずがない。
NVMデバイスによって格納されるイメージ(例えば、SW)の暗号の状態とは対照的に、NVMデバイスの暗号の状態を証明することは、一定の時間動作とすることができ、イメージサイズに無関係である。これは、図17に示したような従来の方法とは対照的である。
図2は、一実施形態に従って、ブートアップシーケンスを示すシステム200のブロック図である。システム200は、安全なNVMデバイス202およびホストデバイス204を含むことができる。NVMデバイス202は、ホストデバイス204による実行のためのアプリケーションソフトウェア(AppSW)208を格納することができる。NVMデバイス202は、パワーオンリセット(POR)回路218-0、ハッシング関数220-0、ブートローダコード222および暗号機能224-0を含むことができる。ホストデバイス204は、POR回路218-1、ホストハッシング関数220-1および査定機能228を含むことができる。
ブートアップシーケンスにおいて、パワーオンまたはリセット条件に応答して、POR回路218-0は、NVMデバイス202の電源を入れることができる。いくつかの実施形態では、ハッシュ関数220-0を用いて、NVMデバイス202によって格納されるNVMコードからコードインテグリティ値を生成することができる。
ホストデバイス204内で、POR回路218-1は、ホストデバイス204をスタートアップすることができ、ホストデバイス204は、読み取り専用メモリ(ROM)ブート動作226に入ることができる。これは、処理回路(図示せず)が、読み取り専用メモリ(ROM)ブートコードにアクセスし、最初の機能をイネーブルにすることを含むことができる。
一旦、ホストデバイス204の電源が入り、機能すると、234-0において、NVMデバイス202からブートローダコードを読み出すことができる。ROMブートコードの動作によって、ホストデバイス204は、ブートローダコード222上の査定動作228を実行することができ、ブートローダコード222が有効である場合、ブートローダコード222をロードする。ブートローディング機能222において、インストールされたブートローダコード222の動作によって、ホストデバイス204は、NVMデバイス202(および、したがってその格納されたAppsSW208)を認証することができる。いくつかの実施形態では、ホストデバイス204は、読み出しコマンドにより認証データにアクセスすることができるなどである。ホストデバイス204によってNVMデバイス202から読み出される認証データ234-1は、限られたサイズとすることができ、NVMデバイス202によって格納されるファームウェアのサイズに無関係である。認証データ234-1は、本願明細書において記載されているコードインテグリティ値または均等物を含むことができる。
一旦、NVMデバイス202の状態が認証されると、ホストデバイス204は、アプリケーション実行動作232を実行することができ、アプリケーション実行動作232は、NVMデバイス202上に格納されるソフトウェア(例えば、AppsSW208)にアクセスし、実行することができる。いくつかの実施形態では、これは、適所で実行するために、または、ホストデバイス204上のホストメモリ内に記憶して実行するために、NVMデバイス202からソフトウェアを読み出すこと234-2を含むことができる。
ホストデバイス204がNVMデバイス202をブートアップし、アンロックする(例えば、認証する)のに必要な時間(tbl_unlock236として示される)は、ROMブート動作226およびブートローダ動作230を含むことができる。図17の従来のブートアップシーケンスとは対照的に、時間tbl_unlock236が、NVMデバイス202によって格納されるファームウェアのサイズに無関係の設定値とすることができることを理解されたい。なぜなら、この種のファームウェアの査定は存在せず、ブートローダコード222の査定のみが存在するからである。
NVMデバイスとホストデバイスとの間の認証動作は、任意の適切な形をとることができるが、いくつかの実施形態では、認証は、対称暗号に基づくことができる。図3は、そのような一実施形態を示す。
図3は、NVMデバイス302およびホストデバイス304を含むシステム300を示す。システム300では、NVMデバイス302がブート時にそれ自身のFWインテグリティをチェックすることができると仮定される。さらに、NVMデバイス302およびホストデバイス304は、秘密鍵を共有する。
実施形態によれば、ブート(例えば、パワーオンまたはリセット)時に、ホストデバイス304は、チャレンジをNVMデバイス302に送信することができる。チャレンジに応答して、NVMデバイス302は、応答を生成することができる。ホストデバイス304は、応答を有効化することができる。NVMデバイス302の応答が有効である場合、NVMデバイス302(および、その格納されたFW)を認証することができ、FWは、ホストデバイス304による実行のためにアクセス可能である。
図3を依然として参照すると、NVMデバイス302は、1つまたは複数の接続上でホストデバイス304と通信することができる。この種の接続は、有線または無線の接続を含むことができ、特定の実施形態では、シリアルバスを含むことができる。
NVMデバイス302は、いくつかの認証または他のセキュリティ手順なしでは、NVMデバイス302の外側からアクセスできない記憶場所を有する安全なデバイスとすることができる。NVMデバイス302は、ユーザ空間306を含み、秘密鍵338を格納し、認証コード310を生成し、コードチェック値312を生成するためにチェック可能なNVMコードを格納することができる。ユーザ空間306は、他のデバイス(例えば、ホストデバイス304)によってアクセスでき、ホストデバイス304による実行のためのホストFWを含む記憶場所を含むことができる。ユーザ空間306は、1つまたは複数のNVMアレイによって形成可能である。秘密鍵338は、NVMデバイス302上の安全な場所内に格納可能である。いくつかの実施形態では、この種の安全な場所は、安全なアクセスのために設計されるNVMアレイまたはNVMアレイの部分とすることができる。認証コード生成部310は、任意の適切な方法に従って認証コードを生成することができ、図示した実施形態において、ハッシュベースのメッセージ認証コード(HMAC)を生成することができる。認証コード(R)は、暗号化されたコードインテグリティ値(FW Hash)によって生成可能である。コードインテグリティ値(FW Hash)を用いて、NVMデバイス302によって格納されるNVM FWを有効化することができる。図示の実施形態では、FW Hashは、周知の良好なNVM FWイメージから生成されるハッシュ値とすることができる。コードインテグリティ値生成部312は、NVMデバイス302によって現在格納される(が、有効なことは必ずしも知られていない)NVM FWのためのコードチェック値(FW Hash_r)を生成することができる。
ホストデバイス304は、NVMデバイス302と同じ秘密鍵338を格納することができ、ホストノンス値(Nonce_host)340を生成することができ、NVMデバイス302と同じ方法で、チェック認証値310’を生成することができ、認証値344を比較することができる。
システム300の構成要素を記載してきたので、以下、システム300のための認証動作を説明する。
(1)において、NVMデバイス302およびホストデバイス304は、(対称認証のための)同じ秘密鍵を格納することができる。
(2)において、NVMデバイス302は、NVM FWのためのコードチェック値(FW Hash_r)を生成することができる。コードチェック値(FW Hash_r)は、NVMデバイス302上に現在格納されるNVM FWの査定を表現することができる。図示の実施形態では、FW Hash_rは、NVMデバイス302によって格納される有効コードインテグリティ値(FW Hash)を生成するのに用いるのと同じハッシュ関数によって生成されるNVM FWのハッシュ値とすることができる。
(3)において、ホストデバイス304は、NVMデバイス302からコードチェック値(FW Hash_r)342を読み出すことができる。これは、ホストデバイス304が査定動作のためにNVMユーザ空間306からホストFWのすべてを読み出すことができる従来の方法とは対照的である。
(4)において、ホストデバイス304は、ホストノンス値(nonce_host)をNVMデバイス302に送信することができる。ホストノンス値は、任意の適切な方法によって生成される1回限りの値とすることができ、格納されたノンス値を検索するか、または、ホストデバイス304上に位置するノンス生成部(例えば、乱数または疑似乱数生成部)を用いることを含むがこれらに限定されるものではない。Nonce_hostは、任意の適切な方法でNVMデバイス302に送信可能であり、ノンス値を含む所定のコマンドを伝送するか、または、NVMデバイス302の所定の場所(例えば、レジスタ)に書き込むことを含むがこれらに限定されるものではない。
(5)において、NVMデバイス302は、認証コード(R)310を生成し、それをホストデバイス304に送信することができる。図示の実施形態では、認証コード(R)310は、秘密鍵338により、以下を暗号化することによって生成可能であり、以下とは、コードインテグリティ値FW Hash、nonce_host値およびNVMによって生成されるノンス値(nonce_nvm)である。結果として生じる暗号化された値は、HMAC機能の対象となり、ハッシュ値を生成し、Rを生成することができる。次に、認証値Rは、nonce_nvm値を伴ってホストデバイス304に送信可能である。値Rおよびnonce_nvmは、任意の適切な方法で、これに限定されるものではないが、例えば、ホストデバイス304からの読み出し要求(例えば、レジスタ読み出し)に応答するデータとして、ホストデバイス304に送信可能である。
(6)において、ホストデバイス304は、比較認証コード(R’)を生成することができる。図示の実施形態では、比較認証コード(R’)310’は、NVMデバイス302から読み出されたコードインテグリティ値FW Hash_r、nonce_host値およびNVMデバイスから受信したnonce_nvm値を、秘密鍵338により暗号化することによって生成可能である。結果として生じる暗号化された値は、NVMデバイスと同じHMAC機能の対象となり、R’を生成することができる。
(7)において、ホストデバイス304は、NVMデバイス302から受信した認証コード(R)310をその生成された比較認証コード(R’)310’と比較することができる。2つの認証コードが一致する場合(R’=R)、NVMデバイス302を認証することができ、ホストデバイス304は、ユーザ空間306内に格納されるFWにアクセスし、用いることができる。
図3は、1つの特定の認証コード(HMAC)の使用を示すが、本願明細書の実施形態は、暗号ベースの認証コード、例えば、AES-CMACまたは他の暗号機能を含むがこれらに限定されない任意の適切な認証コードおよび認証コードプロセスを含むことができる。他の実施形態は、Device Identity Composition Engine(DICE)によって生成されるもののようなコンパウンドデバイス識別子を含む固有のデバイス識別子を含むことができる。
NVMデバイスとホストデバイスとの間の認証動作は、対称暗号を含むことができるが、他の実施形態は、非対称暗号を利用することができる。図4は、そのような一実施形態を示す。
図4は、NVMデバイス402およびホストデバイス404を含むシステム400を示す。システム400では、NVMデバイス402がブート時にそれ自身のNVM FWインテグリティをチェックすることができ、デジタル証明書410がNVMデバイス402によって格納されると仮定される。デジタル証明書410は、秘密鍵を用いて、ホストデバイス404に関連付けられたエンティティ(例えば、相手先商標製造会社、OEM)によって、生成可能かつ署名可能である。デジタル証明書410は、秘密鍵に対応する公開鍵を含むことができる。デジタル署名は、暗号化されたコードインテグリティ値(例えば、FWハッシュ)を含むことができる。ホストデバイス404が公開鍵のそれ自身のバージョンを格納するということも仮定される。
実施形態によれば、ブート時に、ホストデバイス404は、公開鍵およびNVMデバイスにより提供されるデジタル署名を有効化することができる。次に、ホストデバイス404は、コードインテグリティ値をコードチェック値と比較することができ、コードチェック値は、NVMデバイス402によって生成され、その格納されたNVM FWを査定するものである。
図4を依然として参照すると、NVMデバイス402は、1つまたは複数の接続上でホストデバイス404と通信することができる。NVMデバイス402は、ユーザ空間406を含み、デジタル証明書410を格納し、コードインテグリティ値412を生成するためにチェック可能なNVMコードを格納することができる。デジタル証明書410は、公開鍵446およびコードインテグリティ値を含むことができる。いくつかの実施形態では、デジタル証明書410は、X.509標準と互換性を有することができる。デジタル証明書410は、秘密鍵によって生成されるデジタル署名452を含むことができる。後述するように、デジタル証明書410は、ホストデバイス404によってNVMデバイス402内にロード可能である。
ホストデバイス404は、NVMデバイス402と同じ公開鍵446’を格納することができる。いくつかの実施形態では、公開鍵446’は、ホストデバイス404上に位置する不揮発性回路、例えば、1回限りのプログラム可能な(OTP)メモリセルまたは「eFuse」型回路に格納可能である。ホストデバイス404は、後述するように、他の機能を実行することもできる。
以下、システム400のための認証動作を説明する。
(1)において、ホストデバイス404は、デジタル証明書410をNVMデバイス402内にインストールすることができる。図示の実施形態では、デジタル証明書410は、公開鍵、有効コードインテグリティ値(FWハッシュ)450および公開鍵に対応する秘密鍵によって署名されるデジタル署名を有することができる。
(2)において、NVMデバイス402は、格納されるNVM FWのためのコードチェック値(FW Hash_r)を生成することができる。FW Hash_r値は、デジタル証明書410に含まれるコードインテグリティ値(FW Hash)を生成するのに用いられるのと同じハッシュ関数によって生成される格納されたNVM FWのハッシュ値とすることができる。
(3)において、ホストデバイス404は、NVMデバイス402によって格納される公開鍵446を受信し、それ自身の格納された公開鍵446’との比較動作448を実行することができる。公開鍵が一致する場合、認証動作を継続することができる。公開鍵が一致しない場合、NVMデバイス402は認証に失敗しうる。いくつかの実施形態では、この種の比較動作448は、NVMデバイス402のアドレス可能な場所(例えば、メモリアドレスおよび/またはレジスタアドレス)からの読み出しを含むことができる。
(4)において、ホストデバイス404は、署名照合動作456を実行し、NVMデバイス402から提供されるデジタル署名452を照合することができる。NVMデバイス402は、デジタル証明書410に対応するデジタル署名452をホストデバイス404に提供することができる。デジタル署名452は、公開鍵446/446’に対応する秘密鍵によって以前暗号化された値とすることができる。いくつかの実施形態では、NVMデバイス402は、ハッシュ関数454を用いて、デジタル証明書(例えば、公開鍵446、FWハッシュ450)の全部または一部からハッシュ値を生成することができる。結果として生じるハッシュ値は、認証プロセスに用いられるように、ホストデバイス404に提供可能である。この種の場合には、デジタル署名452は、ハッシュ値(例えば、秘密鍵によって暗号化されるハッシュ値を含む)に対応することができる。しかしながら、他の実施形態では、署名照合動作456は、NVMデバイス402が対応するデジタル署名452を有するデジタル証明書410を送信することを含むことができる。公開鍵446’を用いて、ホストデバイス404は、デジタル署名452を解読することができる。解読された署名がその対応するメッセージ(例えば、ハッシュ値、デジタル証明書)に一致する場合、デジタル証明書に含まれるコードインテグリティ値(FW Hash)を有効化することができる。いくつかの実施形態では、署名照合値は、ホストデバイスコマンド(例えば、メモリまたはレジスタアドレスからの読み出しコマンド)に応答して、NVMデバイス402からホストデバイス404まで送信可能である。
(5)において、ホストデバイス404は、コードインテグリティ値(FW Hash)をNVMデバイス402によって生成されるコードチェック値(FW Hash_r)と比較することができる。2つの値が一致する場合(FW Hash=FW Hash_r)、NVMデバイス402を認証することができ、ホストデバイス404は、ユーザ空間406内に格納されるホストFWにアクセスし、用いることができる。いくつかの実施形態では、コードインテグリティ値(FW Hash)は、デジタル証明書410とともに受信することができた。しかしながら、ハッシュ値が署名照合のために用いられる実施形態では、ホストデバイス404は、NVMデバイス402から有効コードインテグリティ値(FW Hash)を読み出すことができる。
実施形態は、ホストデバイスから生じる秘密鍵(例えば、OEM秘密鍵)を利用する非対称暗号による認証を含むことができるが、他の実施形態は、NVMデバイスから生じる秘密鍵を利用することができる。図5は、この種の一実施形態のブロック図である。
図5は、NVMデバイス502およびホストデバイス504を含むシステム500を示す。システム500では、NVMデバイス502がブート時にそれ自身のNVM FWインテグリティをチェックすることができ、ホストデバイス504によってアクセス可能ではない秘密暗号鍵(NVM秘密鍵)を安全に格納することができると仮定される。ホストデバイス504がNVM秘密鍵に対応する公開鍵を格納するということも仮定される。
実施形態によれば、ブート時に、ホストデバイス504は、ノンス値をNVMデバイス502に送信することができる。NVMデバイス502は、オンザフライで生成されるデジタル署名を有する証明書を返信することができる。ホストデバイス504は、署名を有効化して、NVMデバイス502を認証することができる。
図5を依然として参照すると、NVMデバイス502は、1つまたは複数の接続上でホストデバイス504と通信することができる。NVMデバイス502は、秘密鍵(NVM秘密鍵)558および対応する公開鍵(NVM公開鍵)560を含むことができる。NVMデバイス502はまた、NVM秘密鍵を用いて、コードチェック値およびデジタル署名をオンザフライで生成することができる。
ホストデバイス504は、NVMデバイス502と同じ公開鍵560’を格納することができる。いくつかの実施形態では、公開鍵560’は、ホストデバイス上に位置する不揮発性回路に格納可能である。ホストデバイス504はまた、後述するように、他の機能を実行することもできる。
以下、システム500のための認証動作を説明する。
(1)において、NVMデバイス502は、それ自身のNVM FWのインテグリティをチェック512することができる。いくつかの実施形態では、この種のアクションは、NVM FWからハッシュ値を生成することと、それを有効なハッシュ値と比較することと、を含むことができ、有効なハッシュ値は、例えば、NVMデバイス502上の安全な場所内に格納可能である。いくつかの実施形態では、NVMデバイス502は、NVM FWのインテグリティ(またはその欠如)を示すことができる。いくつかの実施形態において、NVM FWのインテグリティチェック512に失敗する場合、NVMデバイスは、ホストFWを含み、NVMデバイスが格納するFWへの任意のアクセスをロックアウトすることができる。
(2)において、ホストデバイス504は、ノンス値(nonce_host)をNVMデバイス502に送信することができる。いくつかの実施形態では、この種のアクションは、ホストデバイスがnonce_host値を有するコマンドを送信すること、および/または、nonce_host値をNVMデバイス502内の所定の場所(例えば、レジスタまたはメモリアドレス)に書き込むことを含むことができるが、これらに限定されるものではない。
(3)において、NVMデバイス502は、NVM秘密鍵558を用いてデジタル署名562を生成することができる。デジタル署名562は、「オンザフライで」(例えば、ホストデバイス504が認証動作を開始することに応答して)生成可能である。デジタル署名562は、デジタル証明書から生成可能であり、デジタル証明書は、NVM公開鍵560(NVMデバイス502によって格納される)、受信したnonce_host値540、および、オプションでFW_State値を含む。デジタル署名562は、デジタル証明書の実際値から生成可能であるか、または、デジタル証明書から生成されるハッシュ値から生成可能であるか、または、両方の組み合わせから生成可能である。いくつかの実施形態では、NVMデバイス502は、デジタル証明書の全部または一部をホストデバイス504に送信することができる。
(4)において、ホストデバイス504は、ホストデバイス504が格納する公開鍵(560’)を、NVMデバイス502から受信した公開鍵(560)と比較することができる。いくつかの実施形態では、ホストデバイス504は、署名されたデジタル証明書の一部としてNVMデバイス502から公開鍵(560)を受信することができる。公開鍵が一致しない場合、NVMデバイス502は、認証に失敗しうる。
(5)において、ホストデバイス504は、署名照合動作556を実行し、NVMデバイス502から提供されるデジタル署名562を照合することができる。NVMデバイス502は、デジタル証明書に対応するデジタル署名562をホストデバイス504に提供することができる。上述したように、いくつかの実施形態において、NVMデバイス502は、ハッシュ関数554を用いて、デジタル証明書の全部または一部からハッシュ値を生成することができる。実施形態において、FW_state値561は、メッセージデータとしてハッシュ値に含まれうる。結果として生じるハッシュ値(任意の対応するメッセージデータを有する)は、認証プロセスに用いられるように、ホストデバイス504に提供可能である。他の実施形態では、署名照合動作556は、NVMデバイス502が、対応するデジタル署名562を有するデジタル証明書(例えば、NVM公開鍵560、nonce_host540、および、オプションでFW_state)を送信することを含むことができる。
公開鍵560’を用いて、ホストデバイス504は、デジタル署名562を解読することができる。認証プロセスがハッシュ関数554を用いる場合、ホストデバイス504は、同じハッシュ関数を用いて、一致するハッシュ値を(例えば、公開鍵560’およびnonce_host540から)生成することができる。解読された値が期待された値に一致する場合、NVMデバイス502を認証することができる。FW_state値561を含む実施形態において、格納されたFWがインテグリティチェック(すなわち、512)に失敗したということをFW_state値561が示す場合、NVMデバイス502は、認証に失敗しうる(したがって、NVMユーザ空間506内の任意の内容、例えば、ホストデバイス504によって実行可能なホストコードもまた、認証に失敗しうる)。
実施形態によれば、システムは、アプリケーション(例えば、FW、SW)コードサイズに無関係とすることができる、高速で安全なブート時間を有することができる。図6は、本願明細書において開示されるさまざまな方法のためのコードサイズに対してブート時間を比較するグラフである。ブート時間は、Y軸に対数スケールで示され、パワーオンまたはリセットから、ホストコード(例えば、ホストFW、アプリケーションSW)が認証されて、利用できるようになるまでの時間に対応することができる。図6は、4つの応答を示し、応答664は、図17に示したような従来の方法とすることができ、応答666-0は、図3に示した実施形態のような方法とすることができ、応答666-1は、図4に示した実施形態のような方法とすることができ、応答666-2は、図5に示した実施形態のような方法とすることができる。図示するように、実施形態(666-0、666-1、666-2)は、ホストコードサイズに無関係の一定のブート時間を提供することができる。対照的に、従来の方法664は、ホストコードサイズが増加するにつれて、より長くなるブート時間を有しうる。
図7は、一実施形態に従うNVMデバイス702のブロック図である。NVMデバイス702は、NVMアレイ757、デバイス記憶領域768-0、安全な記憶領域768-1、アレイアクセス回路772、制御セクション774、POR回路786および入出力(I/O)回路784を含むことができる。NVMアレイ757は、任意の適切なタイプのNVMセルを有するように形成される1つまたは複数のアレイを含むことができ、デコーダ回路および書き込み回路(例えば、プログラム、消去、照合)を含むことができる。NVMアレイ757は、ホストデバイスによる実行のためのホストコード708を格納することができるユーザ領域706を含むことができる。
デバイス記憶領域768-0は、NVMデバイス702によって用いられる値を格納することができる。この種の値は、デジタル署名752(NVMデバイスにロードされるかまたはNVMデバイスによって生成される)、デジタル証明書710および/または公開鍵760(例えば、非対称暗号動作のため)のいずれかを含むことができる。デバイス記憶領域768-0はまた、構成レジスタ770-0を含むことができ、NVMデバイス702のためのパラメータおよび/または識別情報770-1を格納することができる。デバイス記憶領域768-0は、安全な領域でもよいし、安全な領域でなくてもよい。デバイス記憶領域768-0の部分は、NVMアレイ757の部分でもよいし、部分でなくてもよい。
安全な記憶領域768-1は、秘密に維持されるべきデータ値を格納することができる。安全な記憶領域768-1は、NVMコード709、(例えば、非対称暗号動作のための)1つまたは複数の秘密鍵758、および/または、(例えば、対称暗号動作のための)1つまたは複数の秘密鍵738を格納することができる。安全な記憶領域768-1の部分は、NVMアレイ757の部分でもよいし、部分でなくてもよい。NVMコード709は、NVMデバイス702による実行のためのコードであり、さまざまな機能を提供することができる。
アレイアクセス回路772は、制御セクション774から受信した信号およびデータに応答して、NVMアレイ757へのアクセスを可能にすることができる。いくつかの実施形態では、アレイアクセス回路772は、処理コマンドのためのコマンドデコード論理を含むことができる。安全な領域768-1を含むNVMデバイス702のために、アレイアクセス回路772は、安全なアクセス回路772-0を含むことができ、安全なアクセス回路772-0は、所定のセキュリティプロトコル(例えば、暗号ベースの認証)に応答してのみ、外部のエンティティから安全な領域768-1へのアクセスを可能にする。
制御セクション774は、実施形態に従う認証動作を含む、NVMデバイス702の機能を制御することができる。制御セクション774は、コントローラ776、入力バッファ778および出力バッファ780を含むことができる。コントローラ776は、命令776-1を実行することができるプロセッサ回路776-0を含むことができる。命令776-1は、ハッシュ関数754、暗号機能762、ノンス値生成部782、コードインテグリティチェッカ712を含むがこれらに限定されないさまざまな認証機能を含むことができる。ハッシュ関数754は、NVMデバイス702によって格納または受信されるデータのためのハッシュ値を生成することができる。いくつかの実施形態では、ハッシュ関数754は、対応するホストデバイスにより用いられるハッシュ関数に一致することができるかまたは一致するように構成可能である。暗号機能762は、NVMデバイス702によって格納される値を暗号化および/または解読することならびに鍵値を用いて認証コードを作成することを含むがこれらに限定されないさまざまな暗号動作を実行することができる。ノンス生成部782は、認証動作に用いられるように、ノンス値(例えば、nonce_nvm)を生成することができる。コードインテグリティチェッカ712は、NVMコード709を含む、NVMユーザアレイ内に格納されるコードのインテグリティをチェックすることができる。いくつかの実施形態では、コードインテグリティチェッカ712は、ハッシュ関数(例えば、754)とすることができる。
入力バッファ778は、NVMデバイス702によって受信される入力コマンドおよび/またはデータを受信することができる。この種のコマンドは、アレイアクセス回路772によって処理され、NVMアレイ757、デバイス記憶領域768-0および安全な記憶領域768-1にアクセスすることができる。出力バッファ780は、NVMアレイ757、デバイス記憶領域768-0および安全な記憶領域768-1からのデータを含む、NVMデバイス702から出力されるデータを転送することができる。安全な記憶領域768-1は、I/O回路784を介して露出されなくてもよい。
POR回路786は、パワーオンおよびリセット条件を検出し、NVMデバイス702のさまざまな部分に電源を入れることができる。いくつかの実施形態では、POR回路786は、プロセッサ回路776-0による実行のための基本的な機能命令(例えば、ROMデータ)をロードするための回路を含むことができる。
I/O回路784は、1つまたは複数のバス788によって他のデバイス(例えば、ホストデバイス)に接続可能である。いくつかの実施形態では、バス788は、コントローラ・エリア・ネットワーク(CAN)、シリアル・ペリフェラル・インタフェース(SPI)およびICの任意とシリアル互換を有するシリアルバスとすることができるが、これらに限定されるものではない。I/O回路784は、物理インタフェース(PHY)、シリアライゼーションおよびデシリアライゼーション回路を含むがこれらに限定されない、NVMデバイス702および他の信号回路のための入力および出力を含むことができる。
実施形態は、任意の適切なNVMアレイ構造およびNVMセルタイプを含むことができるが、いくつかの実施形態は、1-トランジスタ(1T)NORタイプのアレイを含むことができる。図8は、一実施形態に含まれうる1T NORアレイ857の概略図である。アレイ857は、行および列に配置される多くのメモリセル(1つが857-0として示される)を含むことができ、同じ行のメモリセルは、同じワードライン(1つが857-2として示される)に接続され、同じ列のメモリセルは、同じビットライン857-3に接続されている。いくつかの実施形態では、メモリセル(857-0)は、単一のトランジスタ構造により形成可能である制御ゲートとチャネルとの間の電荷蓄積構造857-1を有する。電荷蓄積構造857-1は、1つまたは複数のビットのデータを電荷として蓄積することができる。
実施形態は、ホストデバイスと連動して動作するメモリデバイスを備えるシステムを含むことができるが、実施形態はまた、メモリデバイスの状態およびそれゆえデバイスによって格納されるコードの状態を認証することができるスタンドアロンのメモリデバイスを含むこともできる。この種の認証は、短い時間内にすることができ、本願明細書および均等物において記載されるように、コードのサイズに従って変化することがない。この種のメモリデバイスは、同じパッケージ内に形成される複数の集積回路を含むことができるが、いくつかの実施形態では、メモリデバイスは、有利には、コンパクトな単一の集積回路(すなわち、チップ)とすることができる。図9は、パッケージ化された単一のチップであるNVMデバイス902を示す。しかしながら、実施形態によるメモリデバイスが、メモリデバイスチップを回路基板上に直接的にボンディングすることを含む他の任意の適切なパッケージングタイプを含むことができることを理解されたい。
図10は、一実施形態に従うホストデバイス1004のブロック図である。ホストデバイス1004は、1つまたは複数のホストプロセッサ1092、主記憶装置1094およびI/O回路1096を含むことができる。主記憶装置1094は、ブート機能1094-0および不揮発性記憶装置1094-1を含むことができる。不揮発性記憶装置1094-1は、ホストデバイス1004によって用いられる値を不揮発性の方法で格納することができる(例えば、OTP回路、eFuses)。格納された値は、公開鍵1046および秘密鍵1038を含むことができる。いくつかの実施形態では、不揮発性記憶装置1094-1の全部または一部は、安全な記憶装置1098とすることができる。
ブート機能1094-0は、読み出しコードインテグリティ機能1042、ノンス値生成部1044、暗号機能1024-1、鍵比較機能1048およびハッシュ関数1049を含むことができるが、これらに限定されるものではない。読み出しコードインテグリティ機能1042は、認証動作で用いられるNVMデバイスから、チェック値(例えば、FW Hash_r)を読み出すことができる。いくつかの実施形態では、この種のアクションは、所定のレジスタまたはメモリアドレスに対する読み出しを含むことができる。ノンス生成部1044は、認証動作に用いられるように、ノンス値(例えば、nonce_host)を生成することができる。この種のノンス値は、NVMデバイスに伝送可能である。暗号機能1024-1は、ホストデバイス1004上に格納されるかまたはホストデバイス1004によって受信される値を暗号化および/または解読すること、ならびに、暗号鍵値(例えば、1046、1038)を用いて認証コードを作成することを含むがこれらに限定されない暗号機能を実行することができる。鍵比較機能1048は、ホストデバイス1004によって格納される鍵(例えば、1046)を、他のデバイス(例えば、NVMデバイス)から受信される鍵と比較することができる。ハッシュ関数1049は、ホストデバイス1004によって格納または受信されるデータのためのハッシュ値を生成することができる。いくつかの実施形態では、ハッシュ関数1049は、対応するNVMデバイスにより用いられるハッシュ関数に一致することができるかまたは一致するように構成可能である。
不揮発性記憶装置1094-1は、認証動作においてホストデバイス1004によって用いられる値を格納することができる。この種の値は、公開鍵1046および/または秘密鍵1038を含むことができるが、これらに限定されるものではない。秘密鍵1038は、本願明細書において記載されているように、アクセスするのに所定の手順を必要としうる安全な記憶装置1098内に格納可能である。
I/O回路1096は、1つまたは複数のバス1088によって他のデバイス(例えば、ホストデバイス)に接続可能である。I/O回路1096は、本願明細書において記載されているものの任意の形をとることができる。
実施形態は、他のデバイス内に格納されるデータを迅速に認証する必要があるデバイスを有する任意の適切なシステムを含むことができる。しかしながら、実施形態は、ブートデータを高信頼性メモリデバイス内に格納するシステム、例えば、自動車システムにおいて有利になりうる。図11は、一実施形態に従う自動車システム1100を示す。システム1100は、第1のNVMデバイス1102-0、第2のNVMデバイス1102-1、システム・オン・チップ(SoC)1104-0、自動車マイクロコントローラ(MCU)1104-1、ダイナミック・ランダム・アクセス・メモリ(DRAM)デバイス1197、センサ1193、自動車制御1195-0、自動車通信システム1195-1および自動車パワーシステム1195-2を含むことができる。
SoC1104-0および第1のNVMデバイス1102-0は、本願明細書において図示した実施形態のいずれかに従うホストデバイスおよび対応するNVMデバイスとすることができる。パワーオンまたはリセット時に、SoC1104-0は、本願明細書において図示した実施形態のいずれかに従って第1のNVMデバイス1102-0内に格納されるコードまたは均等物を認証することができる。同様に、MCU1104-1および第2のNVM1102-1は、本願明細書において図示した実施形態のいずれかに従うホストデバイスおよび対応するNVMデバイスまたは均等物とすることができる。
図12を参照すると、一実施形態に従う自動車1291が図面に示される。自動車1291は、NVMデバイスからブートされるファームウェアによって動作する多数のサブシステム(2つが1200-0および1200-1として示される)を有することができる。この種のサブシステム(1200-0、1200-1)は、電子制御ユニット(ECU)および/または先進運転支援システム(ADAS)を含むことができる。しかしながら、他の実施形態では、この種のサブシステムは、多数の可能な例のうちのわずか2つとして、ダッシュボードディスプレイ/制御サブシステムおよび/または情報エンターテイメントサブシステムを含むことができる。各サブシステム(1200-0、1200-1)は、ホストデバイスおよび1つまたは複数のNVMデバイスを含むことができ、本願明細書において記載されているファームウェア認証動作または均等物を使用することができる。
上述した実施形態は、さまざまなシステム、デバイスおよび対応する方法を示すが、以下、追加の方法は、フロー図を参照して記載されている。
図13は、一実施形態に従うNVMデバイスのための認証方法1391のフロー図である。方法1391は、1391-0において、NVMデバイスが、パワーオンまたはリセットイベントのようなブートアップトリガイベントを経験することを含むことができる。1391-1において、NVMデバイスは、ホストデバイスから認証要求メッセージを受信することができる。この種のアクションは、NVMデバイスが、通信リンク、例えば、多くの可能な例のうちのわずか1つとしてのシリアルバス上でホストデバイスから所定のコマンドを受信することを含むことができる。
1391-3において、認証要求メッセージに応答して、NVMデバイスは、NVMデバイスが有効化するホストコードに無関係のサイズを有する、暗号化されたFWインテグリティ値を返信することができる。FWインテグリティ値を用いて、NVMデバイス上に格納されるコード(例えば、SWまたはFW)を有効化することができる。いくつかの実施形態では、FWインテグリティ値は、NVMコードの周知の良好なセット(例えば、周知の良好なNVMコードのハッシュ)から生成可能である。この種のアクションは、NVMデバイスが、通信リンク上でFWインテグリティ値を返信することを含むことができる。ホストデバイスは、FWインテグリティコードを用いて、NVMデバイスによって格納されるコードを有効化することができる。FWインテグリティ値が格納されたコードのサイズに無関係のサイズを有することができるので、認証に必要な時間は、高速かつ決定的になりうる。
ホストデバイスが、暗号化された有効なFWインテグリティ値によりNVMコードを認証する場合、1391-5において、NVMデバイスは、NVMデバイスによって格納されるホストFWにアクセスするための読み出し要求を受信することができる。1391-7において、この種の読み出し要求に応答して、NVMデバイスは、FWデータを送信することができる。いくつかの実施形態では、これは、ホストデバイスによる実行のためのコードを送信することを含むことができる。
図14は、一実施形態に従うホストデバイスのための認証方法1491のフロー図である。方法1491は、1491-0において、ホストデバイスが、ブートアップトリガイベント(例えば、POR)を経験することを含むことができる。。
1491-1において、ホストデバイスは、バス上のNVMデバイスを検出することができる。この種のアクションは、通信規格に従って発見プロトコルを実行することを含むことができる。NVMデバイスが検出される場合、方法1491は、1491-3において、検出されたNVMデバイスの認証を開始することができる。この種のアクションは、ホストデバイスが、バスまたは他の適切な通信リンク上でNVMデバイスに認証チャレンジ(例えば、所定のコマンド)を出すことを含むことができる。
1491-5において、認証要求メッセージに応答して、ホストデバイスは、ホストデバイスが有効化するホストコードに無関係のサイズを有する、暗号化されたFWインテグリティ値を受信することができる。FWインテグリティ値を用いて、NVMデバイス上に格納されるホストコード(例えば、SWまたはFW)を有効化することができる。いくつかの実施形態では、有効なFWインテグリティ値は、NVMコードの周知の良好なセット(例えば、NVMデバイスによって安全に格納される周知の良好なNVMコードのハッシュ)から生成可能である。この種のアクションは、NVMデバイスが、通信リンク上で有効なFWインテグリティ値を返信することを含むことができる。1491-7において、ホストデバイスは、FWインテグリティコードを用いて、NVMデバイスによって格納されるコードを有効化することができる。有効なFWインテグリティ値が、格納されたホストコードのサイズに無関係のサイズを有することができるので、認証に必要な時間は、高速かつ決定的になりうる。
ホストデバイスが、暗号化されたFWインテグリティ値によりNVMコードを認証する場合(1491-7においてY)、1491-11において、ホストデバイスは、NVMデバイスによって格納されるホストFWにアクセスすることができる。この種のアクションは、XiPコード動作のための読み出し命令を出すことを含むことができる。ホストデバイスがNVMコードを認証しない場合(1491-7においてN)、1491-9において、ホストデバイスは、無効なコード指示を生成することができる。この種の指示に応答して、ホストデバイスは、ホストFWにアクセスするのを防止することができる。いくつかの実施形態では、ホストデバイスは、ホストFWが無効であるとみなされたことを示すブートエラーコードを生成することができる。
図15は、ホストデバイス1504とNVMデバイス1502との間の認証方法1591のフロー図である。NVMデバイス1502またはホストデバイス1504は、ブートアップイベント(例えば、POR)を経験することができる(1591-0H/0N)。NVMデバイスのブートアップに応答して、1591-1において、NVMデバイスは、格納されているNVM FWのためのハッシュ値(FW Hash_r)を生成することができる。NVM FWは、NVMデバイス機能をイネーブルするためにNVMデバイスによって実行可能なFWとすることができる。NVM FWは、安全な場所内に格納可能であり、NVMデバイスの外部のエンティティによってアクセスできないか、または、安全なアクセス機能を介してのみアクセス可能である。1591-2において、ホストデバイスは、読み出しコマンドをNVMデバイスに送信し、FW Hash_rにアクセスすることができる。この種の読み出し要求に応答して、1591-3において、NVMデバイスは、FW Hash_r値をホストデバイスに返信することができる。
方法1591は、1591-4において、ホストデバイスがNVMデバイスから認証値を要求することを含むことができる。いくつかの実施形態において、この種の要求に応答して、1591-5において、NVMデバイスは、有効なハッシュ値FW Hashを用いて、認証値を生成することができる。有効なハッシュ値(FW Hash)は、NVM FWの周知の良好なバージョンによって生成される値とすることができる。いくつかの実施形態では、NVMデバイスは、オンザフライでデータを暗号化することによって、認証値を生成することができる。この種の暗号化は、対称とすることができる(すなわち、ホストデバイスによっても格納される秘密鍵による)か、非対称とすることができる(すなわち、ホストデバイスによって格納される対応する公開鍵を有する秘密鍵による)。しかしながら、他の実施形態では、NVMデバイスは、認証値(例えば、デジタル署名を有するデジタル証明書)を予めロードすることができる。認証値がNVMデバイスによって生成されるかまたはNVMデバイス内に予めロードされるかにかかわらず、1591-6において、NVMデバイスは、認証コードをホストデバイスに返信することができる。
1591-7において、ホストデバイスは、NVMデバイスから受信した認証コードの全部または一部を解読し、有効なFWハッシュ値を引き出すことができる。1591-8において、有効なFWハッシュ値は、NVMデバイスから読み出された値(FW Hash_r)と比較され、NVMデバイス(および、それゆえ、NVMデバイスが格納する任意のホストFW)を有効化することができる。すなわち、値が一致する場合、NVMデバイスによって格納されるホストFWは、ホストデバイスによって用いられるように認証可能である。値が一致しない場合、NVMデバイスによって格納されるホストFWは、認証されるべきでないと決定可能である。
図16は、一実施形態に従って、ホストデバイス1604が、NVMデバイス1602内のNVM FWを更新する方法1691のフロー図である。方法1691は、1691-0において、ホストデバイスが更新動作のための新規なNVM FWを受信することを含むことができる。この種のアクションは、ホストデバイスと新規なNVM FWのソースとの間の認証動作を含む任意の適切な方法を含むことができる。ホストデバイス1604は、NVMデバイスおよび古いFW(NVMデバイスによって現在格納されるFW)を認証することができる(1691-1/2)。この種の動作は、本願明細書において記載されている方法または均等物を含む任意の適切な方法を含むことができる。1691-3において、ホストデバイス1604は、新規なNVM FWをNVMデバイス内に書き込むことができる。いくつかの実施形態では、この種のアクションは、NVMデバイスによって実行可能なNVM FWイメージを書き込むことを含むことができる。
1691-4において、NVMデバイスは、新規なNVM FWを安全に格納することができる。この種のアクションは、NVMデバイス構成によって、または、ホストデバイスによって決定される所定の場所にNVM FWを書き込むことを含むことができる。1691-5において、NVMデバイスは、新規なNVM FWのための新規なハッシュ値(FW Hash)を生成することができる。1691-6において、この種の値は、将来の認証動作、例えば、本願明細書において記載されている動作または均等物に用いられるように、NVM内に安全に格納可能である。一旦、新規なNVM FWが格納され、有効なFWハッシュ値が生成されると、1691-7において、NVMデバイスは、NVM FW更新動作が完了しているという通知をホストデバイスに送信することができる。
実施形態によれば、ホストデバイスは、NVMデバイス状態を認証し、このことにより、NVMデバイスによって格納されるコードを認証することができる。この種の方法は、従来の方法で行われているような、ホストデバイスが、認証動作においてNVMデバイスによって格納されるホストコードにアクセスする必要を除去することができる。その結果、システムは、高速であり、かつ、NVMデバイスによって格納されるコードのサイズに無関係の安全なブート時間を有することができる。
実施形態は、ホストデバイスの認証メカニズムが、NVMデバイスによって格納されるホストコードの状態ではなく、NVMデバイスの状態を認証することができるという点で、従来の方法と異なることができる。さらに、NVMデバイスは、NVMデバイスが現在格納するNVMコードのインテグリティを証明するメカニズムを含むことができる。いくつかの実施形態では、これは、NVMデバイスが、NVMデバイスによって格納されるNVMコードのインテグリティを証明するために用いられるコードインテグリティ値を格納するための安全な記憶場所を有することを含むことができる。
この明細書全体にわたって、「一実施形態」または「実施形態」に対する参照は、その実施形態に関連して記載されている特定の特徴、構造または特性が、本発明の少なくとも1つの実施形態に含まれることを意味するということを理解されたい。それゆえ、この明細書のさまざまな部分における「実施形態」または「一実施形態」または「代替実施形態」の2つ以上の参照が、必ずしもすべて同じ実施形態を参照しているわけではないことを強調し、認識すべきである。さらに、特定の特徴、構造または特性は、本発明の1つまたは複数の実施形態において適切に組み合わせられてもよい。
同様に、上述した本発明の例示的な実施形態において、本発明のさまざまな特徴がさまざまな発明の態様の1つまたは複数を理解するのを支援する開示を合理化するために、時には単一の実施形態、図面またはその説明において一緒にグループ化されることを理解されたい。しかしながら、開示のこの方法は、請求項が各請求項において明示的に詳述されるものより多くの特徴を必要とするという意図を表すこととして解釈されるべきではない。むしろ、発明の態様は、単一の上述した開示の実施形態のすべての特徴より少ない。したがって、詳細な説明に続く請求項は、この詳細な説明に明示的に組み込まれ、各請求項は、本発明の別々の実施形態として単独で成立する。

Claims (23)

  1. ホストデバイスによって実行可能なホストコードを不揮発性メモリ(NVM)デバイス内に格納し、前記NVMデバイスによって実行可能なNVMコードを格納するステップと、
    前記NVMデバイスの動作によって、
    所定の条件に応答して前記NVMコードのインテグリティを有効化するステップと、
    前記NVMコードを有効化するためのコードインテグリティ値を生成するステップであって、前記コードインテグリティ値は、前記ホストコードのサイズに無関係のサイズを有するステップと、
    少なくとも前記コードインテグリティ値によって生成される認証コードを前記ホストデバイスに送信するステップと、
    前記ホストデバイスからの読み出し要求に応答して、前記ホストデバイスによる実行のための前記ホストコードの少なくとも部分を返信するステップと、
    を含む方法。
  2. 前記コードインテグリティ値は、前記NVMコードの少なくとも一部のハッシュを備える、
    請求項1に記載の方法。
  3. 前記コードインテグリティ値は、メッセージ認証コード(MAC)および固有のデバイス識別子の群から選択される、
    請求項1に記載の方法。
  4. 前記方法は、
    前記NVMデバイスの動作によって、前記NVMコードのハッシュ値を生成するステップと、
    ホストデバイスからの要求に応答して、前記ハッシュ値によって生成される認証コードを前記ホストデバイスに送信するステップと、
    をさらに含む、
    請求項1に記載の方法。
  5. 前記方法は、
    前記NVMデバイスの動作によって、前記NVMデバイスに特有の値および前記NVMコードの少なくとも一部を有する認証コードを生成するステップと、
    前記ホストデバイスの動作によって、前記ホストデバイスによって格納される安全な値を用いて、前記認証コードを認証するステップと、
    をさらに含む、
    請求項1に記載の方法。
  6. 前記方法は、
    前記NVMデバイスでホストノンス値を受信するステップと、
    少なくとも前記ホストノンス値および前記コードインテグリティ値上で暗号機能を実行して、前記認証コードを生成するステップと、
    をさらに含む、
    請求項1に記載の方法。
  7. 前記方法は、少なくとも前記ホストノンス値、前記コードインテグリティ値およびNVMデバイスノンス値を暗号化して、前記認証コードを生成するステップをさらに含む、
    請求項6に記載の方法。
  8. 前記方法は、
    デジタル証明書を前記NVMデバイス内に格納するステップであって、前記デジタル証明書は、公開鍵と、前記コードインテグリティ値と、秘密鍵によって生成されるデジタル署名と、を含むステップと、
    ホストデバイスからの証明書の要求に応答して、前記デジタル証明書を前記ホストデバイスに送信するステップと、
    をさらに含む、
    請求項1に記載の方法。
  9. 不揮発性メモリ(NVM)デバイスであって、前記NVMデバイスは、
    ホストデバイスによる実行のためのホストコードおよび前記NVMによる実行のためのNVMコードを格納するように構成される複数のNVMセルを備える少なくとも1つのNVMアレイと、
    少なくとも1つの通信リンク上でホストデバイスと通信するように構成される入出力(I/O)回路と、
    前記NVMコードを有効化するためのコードインテグリティ値を格納するように構成される記憶領域であって、前記コードインテグリティ値は、前記ホストコードのサイズに無関係のサイズを有する記憶領域と、
    NVMコントローラセクションと、
    を備え、
    前記NVMコントローラセクションは、
    前記NVMデバイスのスタートアップ時に、前記NVMコードのインテグリティを有効化し、
    前記ホストデバイスからの要求に応答して、前記I/O回路を介して認証コードを出力する、
    ように構成され、
    前記認証コードは、少なくとも前記コードインテグリティ値によって生成され、
    前記少なくとも1つのNVMアレイ、I/O回路、記憶領域およびコントローラセクションは、同じ集積回路基板により形成される、
    NVMデバイス。
  10. 前記NVMコントローラセクションは、NVMデバイスプロセッサ命令を実行するように構成される少なくとも1つのプロセッサを備える、
    請求項9に記載のNVMデバイス。
  11. 前記NVMコントローラセクションは、前記NVMコードからハッシュ値を生成するように構成されるハッシュ生成部を含む、
    請求項9に記載のNVMデバイス。
  12. 前記NVMコントローラセクションは、所定の暗号鍵によって、少なくとも前記コードインテグリティ値を生成するように構成される暗号回路を含む、
    請求項9に記載のNVMデバイス。
  13. 前記暗号回路は、非対称暗号回路を含み、前記所定の暗号鍵は、公開鍵に対応する秘密鍵を含む、
    請求項12に記載のNVMデバイス。
  14. 前記NVMコントローラセクションは、ノンス値生成部を含む、
    請求項9に記載のNVMデバイス。
  15. 前記NVMコントローラセクションは、少なくとも前記コードインテグリティ値を含むメッセージ認証コード(MAC)を生成するように構成される認証回路を含み、前記NVMコントローラセクションは、前記MACを前記ホストデバイスに送信するように構成される、
    請求項9に記載のNVMデバイス。
  16. 前記少なくとも1つのNVMアレイは、安全な記憶領域を含み、前記安全な記憶領域は、その中に格納されるNVMコードへのアクセスを、少なくとも1つの安全なアクセス手順に応答してのみ可能にするように構成される、
    請求項9に記載のNVMデバイス。
  17. 不揮発性メモリ(NVM)デバイスを備えるシステムであって、前記NVMデバイスは、
    ホストデバイスによって実行可能なホストコードおよび前記NVMデバイスによって実行可能なNVMコードを格納するように構成される少なくとも1つのNVMセルアレイと、
    NVMコントローラ回路と、
    を含み、
    前記NVMコントローラ回路は、
    前記NVMデバイスのスタートアップ時に、前記NVMコードのインテグリティを有効化し、
    コードインテグリティ値上でNVM暗号機能を実行することによって生成される認証コードを出力する、
    ように構成され、
    前記コードインテグリティ値は、前記ホストコードのサイズに無関係のサイズを有し、
    前記ホストデバイスは、少なくとも1つのホストプロセッサを含み、前記ホストプロセッサは、
    前記NVMデバイスを認証する前記認証コードおよび前記NVMデバイスによって格納されるホストコードに応答して、ホスト暗号機能を実行し、
    前記NVMデバイスによって格納される前記ホストコードを実行する、
    ように構成される、
    システム。
  18. 前記少なくとも1つのNVMセルアレイは、NORフラッシュアレイを備える、
    請求項17に記載のシステム。
  19. 前記少なくとも1つのホストプロセッサは、前記NVMデバイスへの伝送のためのホストノンス値を生成するようにさらに構成される、
    請求項17に記載のシステム。
  20. 前記少なくとも1つのホストプロセッサは、前記認証を受信することに応答して、ホスト鍵にアクセスし、前記ホスト鍵により暗号機能を実行するようにさらに構成される、
    請求項17に記載のシステム。
  21. 前記ホストプロセッサは、バスによって前記NVMデバイスに結合されている、
    請求項17に記載のシステム。
  22. 前記ホストデバイスは、前記NVMデバイスから直接、前記ホストコードを実行するように構成される、
    請求項17に記載のシステム。
  23. 前記ホストデバイスおよび前記NVMデバイスは、自動車内のサブシステムの一部である、
    請求項17に記載のシステム。
JP2023520235A 2020-10-02 2021-10-01 不揮発性メモリデバイスおよび対応するシステムからの高速の安全なブートのための方法ならびにそのためのデバイス Pending JP2023544050A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063086750P 2020-10-02 2020-10-02
US63/086,750 2020-10-02
US17/122,927 2020-12-15
US17/122,927 US11809566B2 (en) 2020-10-02 2020-12-15 Methods for fast, secure boot from nonvolatile memory device and corresponding systems and devices for the same
PCT/US2021/053138 WO2022072810A1 (en) 2020-10-02 2021-10-01 Methods for fast, secure boot from nonvolatile memory device and corresponding systems and devices for the same

Publications (1)

Publication Number Publication Date
JP2023544050A true JP2023544050A (ja) 2023-10-19

Family

ID=80931406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023520235A Pending JP2023544050A (ja) 2020-10-02 2021-10-01 不揮発性メモリデバイスおよび対応するシステムからの高速の安全なブートのための方法ならびにそのためのデバイス

Country Status (5)

Country Link
US (1) US11809566B2 (ja)
JP (1) JP2023544050A (ja)
CN (1) CN116324992A (ja)
DE (1) DE112021005155T5 (ja)
WO (1) WO2022072810A1 (ja)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8104085B2 (en) 2003-06-27 2012-01-24 Oracle America, Inc. Hybrid system implementing distinct and co-existing application execution environments and methods for implementing the same
US20080082819A1 (en) * 2006-09-28 2008-04-03 Jack Brizek Authenticating data returned from non-volatile memory commands
IL187044A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Fast secure boot implementation
KR101642819B1 (ko) 2009-08-31 2016-07-26 삼성전자주식회사 비휘발성 메모리 장치, 그것의 구동 방법, 그것을 포함하는 메모리 시스템
US9612979B2 (en) * 2010-10-22 2017-04-04 Intel Corporation Scalable memory protection mechanism
US8866213B2 (en) 2013-01-30 2014-10-21 Spansion Llc Non-Volatile memory with silicided bit line contacts
US9613214B2 (en) 2013-07-09 2017-04-04 Micron Technology, Inc. Self-measuring nonvolatile memory devices with remediation capabilities and associated systems and methods
US20170063853A1 (en) 2015-07-10 2017-03-02 Infineon Technologies Ag Data cipher and decipher based on device and data authentication
KR101887974B1 (ko) * 2016-12-01 2018-08-13 현대오트론 주식회사 엔진제어기의 안전부팅을 위한 시스템 및 방법
TWI647610B (zh) * 2017-11-14 2019-01-11 慧榮科技股份有限公司 認證韌體資料之資料儲存裝置與資料儲存方法
US11347861B2 (en) * 2018-04-10 2022-05-31 Raytheon Company Controlling security state of commercial off the shelf (COTS) system
US10956576B2 (en) * 2018-09-06 2021-03-23 Micron Technology, Inc. Secure boot via system and power management microcontroller
US11106796B2 (en) * 2018-11-07 2021-08-31 Dell Products L.P. Staging memory for accessory firmware update
US20220021544A1 (en) * 2020-07-15 2022-01-20 Micron Technology, Inc. Secure Serial Peripheral Interface (SPI) Flash

Also Published As

Publication number Publication date
DE112021005155T5 (de) 2023-08-10
US20220108016A1 (en) 2022-04-07
WO2022072810A1 (en) 2022-04-07
CN116324992A (zh) 2023-06-23
US11809566B2 (en) 2023-11-07

Similar Documents

Publication Publication Date Title
US10244394B2 (en) Method and update gateway for updating an embedded control unit
US9830456B2 (en) Trust transference from a trusted processor to an untrusted processor
US11411747B2 (en) Nonvolatile memory device with regions having separately programmable secure access features and related methods and systems
US10091183B2 (en) Method and decision gateway for authorizing a function of an embedded control unit
US20090285390A1 (en) Integrated circuit with secured software image and method therefor
KR20090007123A (ko) 보안 부팅 방법 및 그 방법을 사용하는 반도체 메모리시스템
US11816202B2 (en) Run-time code execution validation
US11270003B2 (en) Semiconductor device including secure patchable ROM and patch method thereof
US20230351056A1 (en) Sram physically unclonable function (puf) memory for generating keys based on device owner
US20230273977A1 (en) Managing ownership of an electronic device
KR20210130240A (ko) 암호화 해시를 사용하여 메모리에 저장된 데이터 검정
CN112384922A (zh) 加密密钥分布
WO2023212178A1 (en) Sram physically unclonable function (puf) memory for generating keys based on device owner
KR20210132212A (ko) 차량의 전자 제어 유닛 비준
US11669643B2 (en) Block chain based validation of memory commands
JP2022527904A (ja) 無線更新の有効性確認
US20220317184A1 (en) Secured debug
US11809566B2 (en) Methods for fast, secure boot from nonvolatile memory device and corresponding systems and devices for the same
US20240193275A1 (en) Electronic device and secure booting method thereof
TW202343231A (zh) 管理電子設備的所有權
CN116776333A (zh) 用于执行计算单元的安全启动序列的方法
GB2605168A (en) An integrated circuit having a secure area

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230531

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240528