JP2022527904A - 無線更新の有効性確認 - Google Patents

無線更新の有効性確認 Download PDF

Info

Publication number
JP2022527904A
JP2022527904A JP2021557305A JP2021557305A JP2022527904A JP 2022527904 A JP2022527904 A JP 2022527904A JP 2021557305 A JP2021557305 A JP 2021557305A JP 2021557305 A JP2021557305 A JP 2021557305A JP 2022527904 A JP2022527904 A JP 2022527904A
Authority
JP
Japan
Prior art keywords
update
memory
host
signature
received
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
JP2021557305A
Other languages
English (en)
Inventor
アルベルト トロイア
アントニノ モンデッロ
Original Assignee
マイクロン テクノロジー,インク.
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 マイクロン テクノロジー,インク. filed Critical マイクロン テクノロジー,インク.
Publication of JP2022527904A publication Critical patent/JP2022527904A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/047Key management, e.g. using generic bootstrapping architecture [GBA] without using a trusted network node as an anchor
    • H04W12/0471Key exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/121Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
    • H04W12/122Counter-measures against attacks; Protection against rogue devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]

Abstract

本開示は、無線による更新の有効性確認のための装置、方法、及びシステムを含む。実施形態は、メモリ、及びメモリに関連付けられた回路を含み、回路は、無線更新の受信についてメモリを監視し、受信した更新をメモリのセキュアアレイに記憶し、受信した更新に関連付けられた署名のハッシュを受信し、受信した署名のハッシュをメモリのレジスタに記憶し、受信した更新が本物であるというインディケーションであって、期待署名のハッシュを含むインディケーションを受信し、受信した更新が本物であるというインディケーションに応答して、アクションを取るように構成される。

Description

本開示は、一般的に、半導体メモリ及び方法に関し、より具体的には、メモリを使用して無線による更新の有効性を確認することに関する。
メモリデバイスは典型的には、コンピュータまたは他の電子デバイスにおいて内部半導体、集積回路、及び/または外部リムーバブルデバイスとして提供される。揮発性メモリ及び不揮発性メモリを含む、多くの異なるタイプのメモリが存在する。揮発性メモリは、そのデータを維持するための電力を必要とすることがあり、とりわけ、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、及び同期ダイナミックランダムアクセスメモリ(SDRAM)を含み得る。不揮発性メモリは、電力供給されていないときに記憶されたデータを保持することによって永続的データを提供することができ、NANDフラッシュメモリ、NORフラッシュメモリ、リードオンリメモリ(ROM)、ならびに、相変化ランダムアクセスメモリ(PCRAM)、抵抗性ランダムアクセスメモリ(RRAM)、及び磁気ランダムアクセスメモリ(MRAM)など、抵抗可変メモリを含み得る。
メモリデバイスを組み合わせて、ソリッドステートドライブ(SSD)、組み込みマルチメディアカード(e.MMC)、及び/またはユニバーサルフラッシュストレージ(UFS)デバイスを形成することができる。SSD、e.MMC、及び/またはUFSデバイスは、様々なタイプの不揮発性メモリ及び揮発性メモリの中でも、不揮発性メモリ(例えば、NANDフラッシュメモリ及び/またはNORフラッシュメモリ)、及び/または揮発性メモリ(例えば、DRAM及び/またはSDRAM)を含み得る。不揮発性メモリは、とりわけ、パーソナルコンピュータ、ポータブルメモリスティック、デジタルカメラ、携帯電話、MP3プレイヤなどのポータブルミュージックプレイヤ、ムービープレイヤなどの広範囲の電子用途において使用されてよい。
フラッシュメモリデバイスは、例えば、フローティングゲートなどの電荷蓄積構造にデータを記憶するメモリセルを含み得る。フラッシュメモリデバイスは典型的には、高メモリ密度、高信頼性、及び低電力消費を可能にする1トランジスタメモリセルを使用する。抵抗可変メモリデバイスは、記憶素子(例えば、可変抵抗を有する抵抗性メモリ素子)の抵抗状態に基づいてデータを記憶することができる抵抗性メモリセルを含み得る。
メモリセルはアレイ状に配置することができ、アレイアーキテクチャのメモリセルはターゲット(例えば、所望の)状態にプログラムすることができる。例えば、フラッシュメモリセルの電荷蓄積構造(例えば、フローティングゲート)に電荷をかけて、または電荷蓄積構造から電荷を除去して、セルを特定のデータ状態にプログラムすることができる。セルの電荷蓄積構造に蓄積された電荷は、セルの閾値電圧(Vt)を示すことができる。フラッシュメモリセルの状態は、セルの電荷蓄積構造に蓄積された電荷(例えば、Vt)を検知することによって決定することができる。
メモリデバイスのメモリセルに記憶されたデータに影響を及ぼし得る多くの脅威がある。このような脅威は、例えば、メモリデバイスにおいて発生する障害、及び/またはハッカーもしくは他の悪意のあるユーザからの脅威を含み得る。このような脅威は、重大な金銭的損失を生じさせることがある、及び/または重大な安全及び/またはセキュリティ問題を提示することがある。
本開示の実施形態による、いくつかの物理ブロックを有するメモリアレイの一部分の図を示す。 本開示の実施形態による、ホストとメモリデバイスの形態の装置とを含むコンピューティングシステムのブロック図である。 本開示の実施形態による、例示的なメモリデバイスを使用して無線更新の有効性を確認する例示的なシステムを示す。 本開示の実施形態による、例示的なメモリデバイスを使用して無線更新の有効性を確認する例示的なフロー図を示す。 本開示の実施形態による、セキュアメモリアレイを定義するために使用されるレジスタのペアの例を示す。 本開示の実施形態に従って定義されたセキュアメモリアレイを含むメモリアレイの一部分の図を示す。 本開示の実施形態による、ホスト及びメモリデバイスを含む例示的なシステムのブロック図である。 本開示の実施形態による、いくつかのパラメータを決定する例示的なプロセスのブロック図である。 本開示の実施形態による、いくつかのパラメータを決定する例示的なプロセスのブロック図である。 本開示の実施形態による、証明書を検証する例示的なプロセスのブロック図である。 本開示の実施形態による、署名を検証する例示的なプロセスのブロック図である。 本開示の実施形態による、例示的なメモリデバイスのブロック図である。
本開示は、メモリを使用して無線による更新の有効性を確認するための装置、方法、及びシステムを含む。ある実施形態は、メモリと、有効性確認のために無線更新についてメモリデバイスを監視するように構成された回路とを含む。更新は、ホストデバイスからメモリデバイスによって受信されてよく、ホストデバイスは、ホストデバイスが監視するデバイスを対象とした更新を無線で送信する。例えば、ホストデバイスは、ネットワーク環境内の複数のデバイスを監視するサーバであってよい。監視対象デバイスが更新を必要とするとき、サーバは、監視対象デバイスに更新を伝えてよい。無線による更新は、ワイヤレスコンピューティングネットワークを使用してワイヤレスで更新を送信することができる。更新は、データ(例えば、トランザクション、ソフトウェア更新、ハードウェア更新、またはその他のソフトウェア、ハードウェア、コード、ファームウェア、もしくはコードの一部などを修正するデータなど)を含む。
メモリデバイスは、単一のホストまたは複数のホストに関連付けられてよい。各ホストは、単一のデバイスまたは複数のデバイスを監視してよく、ホストによって生成された各更新は、単一のデバイス、複数のデバイス、及び/または特定のカテゴリもしくは指定のデバイスに関連付けられてよい(例えば、特定の地理的位置にあるすべてのデバイス、特定のデバイスタイプ、デバイスブランド、デバイスIDなどの更新)。いくつかの例では、ホストによって監視されるデバイスは、更新を実装する前に更新の有効性を確認するためのメモリまたはコンピューティング機能を備えていない場合がある。
このようなデバイスは、更新が必要となり得るモノのインターネット(IoT)デバイスの場合があるが、更新を保護及び/または更新の有効性を確認するために必要なコントローラ、メモリ、ハードウェアセキュリティモジュール(HSM)などを欠いている場合がある。例えば、ホスト(例えば、サーバ)が、更新について複数のデバイス及び/またはデバイスタイプ(例えば、デバイスのタイプ、ブランドなど)を監視することがある。本明細書で使用される場合、デバイスのタイプは、例えば、センサ、コンピューティングデバイス、ウェアラブルデバイス、自動車デバイスなど、デバイスメトリックに基づいたデバイスのカテゴリ及び/またはグループを指す。監視されるデバイスの一部は、より複雑で高コストの強力なデバイスの高度さに欠ける低コストのデバイスであり得る。例えば、センサはIoT機能を含んでよく、ホスト(サーバなど)によって監視され得るが、自身の更新の有効性を確認、保護、及び/または検証するコンポーネントを欠いている。対照的に、自動運転車両のコンピューティングコンポーネントなどのより複雑なデバイスは、更新を受信したときに更新を検証、有効性確認、または他の方法で保護するためのHSMコンポーネントなどを含み得る。いくつかの例では、ホスト(例えば、サーバ)は、デバイス(例えば、IoTセンサ)の製造に関連付けられてよく、サーバが監視する様々なIoTセンサに更新が必要な場合、更新をプッシュしてよい。IoTセンサは、更新の有効性を確認するための高度な機能を欠いている場合があるため、サーバは外部のブートメモリデバイス及び回路を利用して、有効性確認のために更新をセキュアメモリアレイに記憶してよい。
デバイスに更新を実装する前に更新の有効性を確認する方法がない場合、デバイス及び/またはホストは、更新によるデバイスへの脅威及び/または不注意な変更に対して脆弱な状態に置かれる。ハッカーによって行われるそのような活動は、デバイスのソフトウェアまたはハードウェアに不正な更新を提供することを含み得る。例えば、悪意のユーザは、数あるタイプのハッキング活動の中でも、(例えば、支払いを検証するコードをスキップすることによって、提供されているサービスに対して支払いが行われたことを偽って示すために)ファームウェアを使用して実行される商用トランザクションに悪影響を及ぼす(例えば、フローをそらす)ために、(例えば、ライセンスを検証するコードをスキップすることによって、ファームウェアのソフトウェアが適切にライセンスされていることを偽って示すために)ファームウェア上で実行されているソフトウェアライセンスチェックに悪影響を及ぼす(例えば、フローをそらす)ために、または、(例えば、部品の真正性、環境的チェック、または、誤作動警告のチェックをスキップするために)メモリを使用して実行されている自動車制御に悪影響を及ぼす(例えば、フローをそらす)ために、ファームウェアに記憶されたデータを更新によって改ざんしようとする場合がある。
例えば、多くの脅威は、ソフトウェア、ハードウェア、ファームウェア、及び/または、そこに記憶されているデータの構成を改ざんすることにより、デバイスの動作に影響を与え得る。ハッカーまたは他の悪意のユーザは、ソフトウェア、ハードウェア、ファームウェア、及び/または、そこに記憶されているデータを、悪意の目的で変更することにより、デバイスの動作に不正な変更を加える活動(攻撃など)を実行しようとする場合がある。デバイスの動作への変更は、デバイスに送信される更新(例えば、ファームウェア更新)を通して実装され得る。例えば、更新は、メモリデバイスに関連付けられたホストによって監視されるIoTデバイスを構成する命令を含み得る。いくつかの例では、ハッキング攻撃は、デバイスが承認されたホストであるかのように動作する更新を不正に伝える場合がある。そのようなハッキング活動は、重大な金銭的損失を生じさせることがある、及び/または重大な安全及び/またはセキュリティ問題を提示し得る。
したがって、デバイスへの安全な更新を保証するために、デバイスに記憶されたデータ(例えば、ファームウェア)への更新が真正(例えば、正確、本物の/承認されたエンティティから)であり、改ざんされていないこと、及び/またはハッキング活動もしくは他の不正な及び/または意図しない変更によって不正に提供されていないこととを確認(例えば、認証及び/または証明)することが重要である。
本明細書の例示的な実施形態は、更新が承認されたホストからのものであり、受信した更新が改ざんも妨害もされていないことを確認するためにメモリを使用するシステム、装置、及び方法を説明する。ホストに関連付けられたメモリと回路とは、更新と更新に対応する署名とを受信して、更新が更新対象のデバイスに関連付けられたホストからのものであることを検証することができる。メモリデバイスは、期待署名を受信した署名と比較することにより、ホストによって監視されているデバイスに対する更新の有効性を確認することができる。
有効性を確認すると、メモリデバイスは、検証された更新をメモリアレイの異なる部分にコピーすることにより、更新対象のデバイスが更新を利用できるようにし得る。この方法を使用して、デバイスは、高度な計算能力を必要とせずに、外部メモリデバイスを介してホストから確認済みの更新を受信し得る。例えば、本開示の実施形態は、メモリに追加の(例えば、新たな)コンポーネントまたは回路を追加する必要なしに、メモリの既存の回路(例えば、外部メモリデバイスの既存のファームウェア)を修正、利用、及び/または異なるように動作させて、メモリを、無線による更新の有効性を確認するデバイスとして使用することができる。
本明細書で使用される場合、「a」、「an」、または「いくつかの(a number of)」は、1つまたは複数のものを指すことができ、「複数の(a plurality of)」は、2つ以上のものを指すことができる。例えば、メモリデバイス(a memory device)は、1つまたは複数のメモリデバイスを指すことができ、複数のメモリデバイス(a plurality of memory devices)は、2つ以上のメモリデバイスを指すことができる。さらに、特に図面の参照番号に関して本明細書で使用される指示子「R」、「B」、「S」、及び「N」は、そのように指定されたいくつかの特定の特徴が、本開示のいくつかの実施形態に含まれ得ることを示す。数字は、指定子の間で同一であってもよく、または異なってもよい。
本明細書の図は、最初の数字(複数可)が図面の図番号に対応し、残りの数字が図面の要素またはコンポーネントを識別する番号付け規則に従う。異なる図面間の類似の要素またはコンポーネントは、類似の数字を使用することで識別されてよい。例えば、101は図1の要素「01」を指してよく、類似の要素が図2では201と呼ばれてよい。
図1は、本開示の実施形態による、いくつかの物理ブロックを有するメモリアレイ101の一部分の図を示す。メモリアレイ101は、例えば、NAND及び/またはNORフラッシュメモリアレイなどのフラッシュメモリアレイであってよい。1つの例示的な実施形態では、メモリ101は、NORフラッシュメモリアレイ101である。追加の例として、メモリアレイ101は、とりわけ、PCRAM、RRAM、MMRAM、またはスピントルクトランスファ(STT)アレイなどの抵抗可変メモリアレイであってよい。しかしながら、本開示の実施形態は、特定のタイプのメモリアレイに限定されない。さらに、メモリアレイ101は、本明細書でさらに説明するように、セキュアメモリアレイであってよい。さらに、図1には示さないが、メモリアレイ101は、その動作に関連付けられた様々な周辺回路と共に特定の半導体ダイ上に配置することができる。
図1に示すように、メモリアレイ101は、メモリセルのいくつかの物理ブロック107-0(ブロック0)、107-1(ブロック1)、...、107-B(ブロックB)を有する。メモリセルは、シングルレベルセル、及び/または、例えば、2レベルセル、トリプルレベルセル(TLC)、またはクアッドレベルセル(QLC)などのマルチレベルセルであってよい。例として、メモリアレイ101内の物理ブロックの数は、128個のブロック、512個のブロック、または1024個のブロックであってよいが、実施形態は、メモリアレイ101内の物理ブロックの特定の2のべき乗にも任意の特定の数にも限定されない。
メモリセルのいくつかの物理ブロック(例えば、ブロック107-0、107-1、...、107-B)は、メモリセルの平面に含まれてよく、メモリセルのいくつかの平面は、ダイ上に含まれてよい。例えば、図1に示す例では、各物理ブロック107-0、107-1、…、107-Bは、単一のダイの一部であってよい。すなわち、図1に示すメモリアレイ101の一部分は、メモリセルのダイであってよい。
図1に示すように、各物理ブロック107-0、107-1、...、107-Bは、アクセス線(例えば、ワード線)に結合されたメモリセルのいくつかの物理的な行(例えば、103-0、103-1、...、103-R)を含む。各物理ブロック内の行(例えば、ワード線)の数は、32であってよいが、実施形態は、物理ブロックごとに特定の数の行103-0、103-1、…、103-Rに限定されない。さらに、図1には示さないが、メモリセルは、センス線(例えば、データ線及び/またはデジット線)の列に結合することができる。
当業者が認識するように、各行103-0、103-1、...、103-Rは、メモリセルのいくつかのページ(例えば物理ページ)を含み得る。物理ページは、プログラム及び/または検知する単位(例えば、機能的グループとして一緒にプログラム及び/または検知されるいくつかのメモリセル)を指す。図1に示す実施形態では、各行103-0、103-1、…、103-Rは、メモリセルの1つの物理ページを含む。しかしながら、本開示の実施形態は、そのように限定されない。例えば、ある実施形態では、各行は、メモリセルの複数の物理ページ(例えば、偶数番号のデータ線に結合されたメモリセルの1つまたは複数の偶数ページ、及び奇数番号のデータ線に結合されたメモリセルの1つまたは複数の奇数ページ)を含み得る。さらに、マルチレベルセルを含む実施形態については、メモリセルの物理ページは、データの複数のページ(例えば、論理ページ)(例えば、物理ページ内の各セルがデータの上位ページに向かって1つまたは複数のビット及びデータの下位ページに向かって1つまたは複数のビットを記憶するデータの上位ページ及びデータの下位ページ)を記憶することができる。
図1に示すように、メモリセルのページは、いくつかの物理セクタ105-0、105-1、...、105-S(例えば、メモリセルのサブセット)を含み得る。セルの各物理セクタ105-0、105-1、…、105-Sは、データのいくつかの論理セクタを記憶することができる。さらに、データの各論理セクタは、データの特定のページの一部分に対応し得る。例として、特定の物理セクタに記憶されたデータの第1の論理セクタは、データの第1のページに対応する論理セクタに対応することができ、特定の物理セクタに記憶されたデータの第2の論理セクタは、データの第2のページに対応することができる。各物理セクタ105-0、105-1、…、105-Sは、システムデータ及び/またはユーザデータを記憶することができ、及び/または誤り訂正コード(ECC)データ、論理ブロックアドレス(LBA)データ、及びメタデータなどのオーバヘッドデータを含み得る。
論理ブロックアドレス指定は、データの論理セクタを識別するためにホストが使用できるスキームである。例えば、各論理セクタは、一意の論理ブロックアドレス(LBA)に対応し得る。さらに、LBAは、メモリ内のデータのその論理セクタの物理位置を示し得る物理ブロックアドレス(PBA)などの物理アドレスにも対応(例えば、動的にマッピング)してよい。データの論理セクタは、データのいくつかのバイト(例えば、256バイト、512バイト、1024バイト、または4096バイト)であってよい。しかしながら、実施形態は、これらの例に限定されない。
物理ブロック107-0、107-1、…、107-B、行103-0、103-1、…、103-R、セクタ105-0、105-1、…、105-S、及びページの他の構成が可能であることに留意されたい。例えば、物理ブロック107-0、107-1、…、107-Bの行103-0、103-1、…、103-Rは各々、例えば、データの512未満のバイトまたは512を超えるバイトを含み得る単一の論理セクタに対応するデータを記憶することができる。
図2は、本開示の実施形態による、ホスト202とメモリデバイス206の形態の装置とを含むコンピューティングシステム200のブロック図である。本明細書で使用される場合、「装置」は、例えば、回路(複数可)、ダイ(複数可)、モジュール(複数可)、デバイス(複数可)、または、システム(複数可)などの様々な構造または構造の組み合わせのうちの任意のものを指すことができるが、これらに限定されない。さらに、ある実施形態では、コンピューティングシステム200は、メモリデバイス206に類似するいくつかのメモリデバイスを含み得る。
図2に示す実施形態では、メモリデバイス206は、メモリアレイ201を有するメモリ216を含み得る。メモリアレイ201は、図1に関連して前述したメモリアレイ101に類似し得る。さらに、メモリアレイ201は、本明細書でさらに説明するように、セキュアアレイであってよい。1つのメモリアレイ201を図2に示すが、メモリ216は、メモリアレイ201と同等の任意の数のメモリアレイを含み得る。
図2に示すように、ホスト202は、インタフェース204を介してメモリデバイス206に結合することができる。ホスト202及びメモリデバイス206は、インタフェース204で通信(例えばコマンド及び/またはデータを送信)することができる。ホスト202及び/またはメモリデバイス206は、数あるホストシステムの中で、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル記録及び再生デバイス、携帯電話、PDA、メモリカードリーダ、インタフェースハブ、または、例えば、自動車(例えば、車両及び/または輸送インフラストラクチャ)IoT対応デバイスもしくは医療(例えば、移植可能及び/または健康監視)IoT対応デバイスなどのモノのインターネット(IoT)対応デバイスであってよく、またはそれらの一部であってよく、メモリアクセスデバイス(例えば、プロセッサ)を含み得る。当業者は、「プロセッサ」とは、並列処理システムなどの1つまたは複数のプロセッサ、いくつかのコプロセッサなどを意図し得ることを認識するであろう。
インタフェース204は、規格化された物理インタフェースの形態であってよい。例えば、コンピューティングシステム200に情報を記憶するためにメモリデバイス206が使用されるとき、インタフェース204は、数ある物理コネクタ及び/またはインタフェースの中で、シリアルアドバンスドテクノロジアタッチメント(SATA)物理インタフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)物理インタフェース、ユニバーサルシリアルバス(USB)物理インタフェース、または小型コンピュータシステムインタフェース(SCSI)であってよい。しかしながら、一般に、インタフェース204は、インタフェース204と互換性のあるレセプタを有するメモリデバイス206とホスト(例えば、ホスト202)との間で、制御信号、アドレス信号、情報信号(例えばデータ)、及び他の信号を渡すインタフェースを提供し得る。
他の例では、インタフェース204は、非物理インタフェースであってよい。例えば、メモリデバイス206は、ワイヤレスネットワークの一部としてワイヤレスインタフェースを介して、及び/または物理的な接続がないタッチレスインタフェースを介してホスト202に通信可能に結合されてよい。ワイヤレスネットワークのいくつかの例は、ワイヤレスローカルエリアネットワーク(WLAN)、ワイヤレスパーソナルエリアネットワーク(WPANS)、ワイヤレスメトロポリタンエリアネットワーク(WMANS)、及びワイヤレスワイドエリアネットワーク(WWANS)である。いくつかの例では、ホスト202がネットワークデバイス(例えば、クラウド環境内のサーバ)である場合、インタフェース204は、ワイヤレス環境で利用されてよい。そのような例では、ホスト202は、ホスト202によって監視されているデバイスに更新を無線で(例えば、ワイヤレスで)伝えてよい。
メモリデバイス206は、ホスト202及びメモリ216(例えば、メモリアレイ201)と通信するためのコントローラ208を含む。例えば、コントローラ208は、数ある動作の中でも、データの検知(例えば読み出し)、プログラム(例えば書き込み)、移動、及び/または消去を行う動作を含む、メモリアレイ201に対する動作を実行するコマンドを送信することができる。
コントローラ208は、メモリ216と同一の物理デバイス(例えば、同一のダイ)上に含めることができる。あるいは、コントローラ208は、メモリ216を含む物理デバイスに通信可能に結合された別個の物理デバイス上に含めることができる。ある実施形態では、コントローラ208のコンポーネントは、分散コントローラとして複数の物理デバイス(例えば、メモリと同一のダイ上のいくつかのコンポーネント、及び異なるダイ、モジュール、またはボード上のいくつかのコンポーネント)にわたって分散することができる。
ホスト202は、メモリデバイス206と通信するためのホストコントローラ(図2には示さず)を含み得る。ホストコントローラは、インタフェース204を介してメモリデバイス206にコマンドを送信することができる。ホストコントローラは、メモリデバイス206及び/またはメモリデバイス206上のコントローラ208と通信して、数ある動作の中で、データの読み出し、書き込み、及び/または消去を行うことができる。さらに、ある実施形態では、ホスト202は、サーバ、及び/または、本明細書で前述したように、IoT通信能力を有するIoT対応デバイスであってよい。
例えば、ホスト202は、ワイヤレスネットワーク内の単一の及び/または複数のデバイス(例えば、IoTデバイスなど)を監視するネットワークデバイス(例えば、サーバ)であってよく、デバイスはファームウェア及び/または他の構成変更の更新を必要とする場合がある。ホスト202によって監視されるデバイスは、高機能ではない、低コストの、ごく普通のIoTデバイス(例えば、温度センサなど)の場合があり、これらは、ホスト202から無線で送信された更新の有効性を確認する能力を欠いている可能性がある。これは、有効性確認などを実行する機能を有し得る高度なIoTデバイス(例えば、IoT車両コンピューティングシステムなど)とは対照的である。さらに、ホスト202は、複数のタイプのデバイスの製造に関連付けられたサーバであってよい。本明細書で使用される場合、メモリアレイ201に記憶された更新220の有効性を確認及び/または検証することは、更新が真正である(例えば、当初プログラムされたものと同一である、及び/または関連するホストから受信されている)こと、且つ、ハッカーによって頻繁にもたらされるハッキング活動、または他の承認されていない/意図されない変更を含むことによって改ざんされていないことを認証及び/または証明することを含み得る、及び/または指すことができる。
例えば、ホスト202は、異なるブランドのIoTデバイス、異なるタイプのIoTデバイス(例えば、温度センサ、圧力センサなど)、特定の地理的位置にあるIoTデバイスなどを監視するサーバであってよく、更新を複数のデバイスに無線でプッシュしてよい。これらのIoTデバイスは、ホスト202によってそれらにプッシュされた更新のセキュリティを提供する及び/または維持する能力を欠いている可能性があるため、ホスト202は、更新の有効性確認のためにメモリデバイス206に関連付けられてよい。
メモリデバイス206のコントローラ208及び/またはホスト202のホストコントローラは、制御回路及び/または論理回路(例えばハードウェア及びファームウェア)を含み得る。ある実施形態では、メモリデバイス206のコントローラ208及び/またはホスト202のホストコントローラは、物理インタフェースを含むプリント回路基板に結合された特定用途向け集積回路(ASIC)であってよい。また、メモリデバイス206及び/またはホスト202は、揮発性メモリ及び/または不揮発性メモリ、ならびにいくつかのレジスタのバッファを含み得る。
例えば、図2に示すように、メモリデバイス206は、回路210を含み得る。図2に示す実施形態では、回路210は、コントローラ208に含まれる。しかしながら、本開示の実施形態は、そのように限定されない。例えば、ある実施形態では、回路210は、(例えば、コントローラ208の代わりに)メモリ216(例えば、と同一のダイ上に)に含まれてよい。回路210は、例えば、ハードウェア、ファームウェアを含み得る、及び/または命令を処理リソースに伝達することができる。
回路210は、メモリデバイス206に関連付けられたホスト202から受信した無線更新についてメモリデバイス206を監視するように構成することができる。無線更新がメモリデバイス206によって受信されると、回路210は、受信した更新220をメモリ216のセキュアアレイ201に記憶することができる。メモリ216は、更新220に関連付けられた署名を受信し、受信した署名をメモリ216の専用署名レジスタ218に記憶してよい。受信した署名は、ホスト202によって計算され、更新220に関連して提供される(例えば、更新220と一緒に送信することができる)ハッシュである。
ホスト202は、回路210及び/またはメモリ216から、更新220の有効性確認に使用され、署名レジスタ218に記憶される署名を計算するためのフレッシュネス値を要求する信号を送信してよい。例えば、回路210は、ホスト202が更新220に関連付けられた署名を生成するときに、(例えば、単調カウンタからの)フレッシュネス値を提供するように構成することができる。
受信した更新220が本物であることを示す例は、受信した更新220に関連付けられた署名を受信すること、及び/または更新220の期待署名を計算することであってよい。例えば、メモリ216が、更新220に関連付けられた署名を受信し、受信した署名の有効性確認のために期待署名を計算することによって、受信した更新220が本物であることを示すことができる。回路210は、更新220が本物であるというインディケーションに応答してアクションを取ってよい。例えば、真正性のインディケーションに応答して取られるアクションは、受信した署名を再計算された署名と比較することによって(例えば、期待署名を生成することによって)更新220の有効性をさらに確認することであってよい。受信した更新220を実行するために、ホスト202からメモリデバイス206によって受信された信号に応答して期待署名を生成することができる。本明細書で使用される場合、用語「更新を実行」は、メモリデバイス206が、ホスト202によって監視されるデバイスが更新220を利用できるようにすることを指す。メモリ216は、更新220の有効性を確認し、更新220をメモリアレイ201の異なる部分にコピーして、ホスト202によって監視されるデバイスが更新220を利用できるようにしてよい。
具体的には、回路210は、信号を受信することに応答して、期待署名を生成し、受信した更新220の有効性をチェックする動作の一部として、期待署名を受信した署名と比較することができる。メモリは、更新220と共にメモリに送信する署名を計算するためにホスト202にフレッシュネス値を提供したので、メモリ216は、期待署名と同じ値を生成するはずである。言い換えれば、署名レジスタ218に記憶された受信した署名のハッシュと、メモリ216が更新220の有効性を確認するときにメモリ216によって生成された期待署名のハッシュは、更新220が本物(例えば、有効)であると判定されるときは、同じである。
対照的に、更新220が無効であると判定されるとき、署名レジスタ218に記憶された受信した署名のハッシュと、メモリ216が更新220の有効性を確認するときにメモリ216によって生成された期待署名のハッシュは異なる。無効な更新は、更新が誤ってデバイスにプッシュされたこと、及び/またはハッキングイベントが試みられたことを示すものであってよい。いずれの場合も、メモリデバイス206は、ホストに通知し、更新220を破棄することができる。
期待署名は、メモリアレイ201に記憶されたコンテンツの暗号学的ハッシュであり、ホスト202から受信した更新に含まれるデータによって更新、修正、構成、及び/または、他の方法で、変更することができる。しかしながら、本明細書のこれらの例では、メモリアレイは、メモリデバイス206自体で更新を実行するのではなく、有効性確認のために更新を記憶してよい。いくつかの例では、期待署名は、例えば、SHA-256暗号学的ハッシュを含み得る。さらに、メモリアレイ201に記憶されたデータ(例えば、更新220)の暗号学的ハッシュ、及び受信した署名の暗号学的ハッシュは、それぞれ、256バイトのデータを含み得る。
メモリアレイ201に記憶された更新220の期待署名の暗号学的ハッシュは、例えば、回路210によって生成(例えば、計算)することができる。このような例では、記憶された更新220の期待署名の暗号学的ハッシュは、インタフェース204上で外部データを移動させることなく、メモリデバイス206によって内部的に生成することができる。追加の例として、署名レジスタ218に記憶され、更新220に関連付けられた受信した署名の暗号学的ハッシュは、外部エンティティ(例えば、ホスト202)から通信することができる。例えば、ホスト202は、メモリアレイ201に記憶された更新220に関連付けられた受信した署名の暗号学的ハッシュを生成し、受信した署名の生成した暗号学的ハッシュをメモリデバイス206に送信することができる(例えば、回路210は、ホスト202からメモリアレイ201に記憶された更新220に関連付けられた受信した署名の暗号学的ハッシュを受信することができる)。
更新220に関連付けられた期待署名は、ホスト202から受信されたコマンド(例えば、信号)などの外部コマンドに基づいて(例えば、それに応答して)回路210によって生成(例えば、計算)することができる。例えば、期待署名は、対称暗号化または非対称暗号化を使用して生成することができる。期待署名は、単調カウンタからの値の形式のフレッシュネス値を含み得る(これは、更新220に関連して受信された署名を生成するためにホスト202に提供されるフレッシュネス値と一致する必要がある)。例えば、ホスト202は、署名を生成し、生成した署名をメモリデバイス206に送信(例えば、提供)することができる(例えば、回路210は、ホスト202から署名を受信することができる)。
フレッシュネス値は、更新220がホスト202から受信されるごとに変化し得る。したがって、フレッシュネス値を使用して、着信更新220が有効な更新であることを確認してよい。これは、フレッシュネス値を使用して、更新220に関連付けられた署名を計算するためであり、したがって、ホスト202は、要求したフレッシュネス値を使用して、更新220の署名を生成する。受信した署名が、ホスト202が正しいフレッシュネス値を有するため、着信更新220がホスト202に関連していることを示すとき、更新220は有効であることが検証される。したがって、フレッシュネス値を使用して署名を計算することができるので、署名は、各着信更新220によって異なり得る。
上記のように、署名は、(例えば、公開鍵及び/またはプライベート鍵に基づいた)例えば、非対称暗号を使用して生成されたデジタル署名であってよく、例えば、楕円曲線デジタル署名を含み得る。追加の例として、署名は、(例えば、ホスト202とメモリデバイス206との間で共有された一意の秘密鍵に基づいた)対称暗号を使用して生成することができる。秘密鍵は、任意の非対称プロトコル(例えば、ディフィー・ヘルマンプロトコル)を使用して交換することができる。他の例では、鍵は、セキュア環境(例えば、工場生産、セキュア製造など)内でホスト202と共有されてよい。秘密鍵の生成及び有効性確認を図6~11と関連してさらに説明する。
図2に示すように、更新220、及び更新220に関連付けられた、受信された署名は、メモリアレイ201に記憶することができる。例えば、更新220は、メモリデバイス206、ホスト202によって監視されるデバイス、及び/またはホスト202のユーザがアクセスできないメモリアレイ201の部分に(例えば、メモリアレイ201の「隠された」領域に)記憶することができる。更新220の有効性がメモリ216によって確認されるまで更新220をメモリアレイ201に記憶することにより、ホスト202によって監視されるデバイス上での不正または不注意な更新の実行を防ぐことができる。
ある実施形態では、メモリアレイ201(例えば、メモリアレイ201のサブセット、またはアレイ201全体)は、セキュアアレイ(例えば、制御下に置かれるメモリ216の領域)であってよい。図2は、レジスタ214-1及び214-2のペアを示すが、実施形態はそれに限定されず、1つまたは複数のレジスタ及び/またはレジスタの1つまたは複数のペアを使用することもできる。例えば、メモリアレイ201に記憶されたデータ(例えば、更新220)は、機密のアプリケーションに対して実行されることになるデバイスファームウェア及び/またはコードなどの機密の(例えば、非ユーザ)データを含み得る。そのような実施形態では、不揮発性レジスタのペアを使用して、セキュアアレイを定義することができる。例えば、図2に示す実施形態では、回路210は、セキュアアレイを定義するために使用できるレジスタ214-1及び214-2を含む。例えば、レジスタ214-1は、セキュアアレイのアドレス(例えば、データの開始LBA)を定義でき、レジスタ214-2は、セキュアアレイのサイズ(例えば、データの最終LBA)を定義できる。そのようなレジスタの例、及びセキュアアレイを定義する際のそれらの使用を(図5A~5Bに関連して)本明細書でさらに説明する。
セキュアアレイが定義されると、回路210は、認証され且つアンチリプレイ保護されたコマンドを使用して、本明細書でゴールデンハッシュと呼ばれ得る、セキュアアレイと関連付けられた暗号学的ハッシュを、(例えば、メモリデバイス206のみがゴールデンハッシュを知るように、且つ、メモリデバイス206のみがゴールデンハッシュを生成及び更新できるように)生成(例えば、計算)することができる。ゴールデンハッシュは、メモリアレイ201のアクセス可能でない部分(例えば、更新220が配置された同一のアクセス可能でない部分)に記憶されてよく、セキュアアレイ201の更新220の有効性確認のプロセス中に使用することができる、これについて、ここでさらに説明する。前述の例では、ゴールデンハッシュ値は、更新220の有効性確認のために計算された期待署名である。
具体的には、ホスト202に関連付けられたメモリデバイス206は、ホスト202に関連付けられたデバイスの更新220を受信し、更新220をメモリアレイ220に記憶することができる。前述のように、ホスト202から受信された更新220は、更新に関連付けられた生成された、受信された署名を含む。例えば、メモリデバイス206は、更新220に関連付けられた署名を受信することができる。受信された署名は、フレッシュネス値がメモリデバイス206とホスト202との間で交換されるため、更新220がホスト202に関連付けられていることを示すフレッシュネス値を含む。メモリデバイス206は、更新220の有効性を確認してよい。
例えば、メモリデバイス206は、受信した署名と期待署名(例えば、ゴールデンハッシュ)との間の比較に基づいて、更新220が有効であるかどうかを判定することができる。受信した署名及び同じ値を持つ期待署名は、更新が有効であることを示し、メモリは、受信した署名と期待署名が同じであるという判定に応答して、更新220をセキュアメモリアレイ201からメモリデバイス206の非セキュア部分にコピーすることができる。
更新220をメモリアレイの別の部分にコピーすることは、更新220をメモリアレイ201のセキュア部分からメモリアレイ201の非セキュア部分にコピーすることを含み得る。いくつかの例では、有効性を確認された更新220は、メモリアレイ201の異なるセキュア部分に、またはメモリ216のセキュア部分と非セキュア部分の組み合わせにコピーされてよい。あらゆる実施形態で、更新220の有効性確認に応答して更新220をメモリアレイ201の別の部分にコピーすることにより、ホスト202によって監視されるデバイスが更新220を利用できるようになる。このようにして、ホスト202によって監視されるデバイスは、追加のコンピューティングコンポーネントを必要とせずに、有効性を確認された無線更新を受信してよい。
いくつかの例では、更新220の有効性確認は、ホスト202が信号をメモリデバイス206に送信することによって開始することができる。他の例では、有効性確認は、回路210が、更新220が受信されたことを感知することによって開始される。例えば、回路210は、メモリアレイ201に記憶された更新220、及び署名レジスタ218内の受信された署名を感知する(例えば、読み取る)ことができる。回路が更新220を感知することに応答して、回路は、メモリデバイス206の電力供給(例えば、電源オン及び/または電源投入)に応答して、更新220の有効性を確認するために期待署名(例えば、ゴールデンハッシュ)を生成することができる。したがって、メモリアレイ201に記憶された更新220の有効性確認は、メモリデバイス206に電力を供給すると(例えば、自動で)開始することができる。
例えば、メモリアレイ201がセキュアアレイである実施形態では、本明細書で前述したゴールデンハッシュを使用して、メモリアレイ201に記憶された更新220の有効性を確認してよい。例えば、更新220で受信された(署名レジスタ218に記憶された)受信した署名ハッシュが、生成(例えば、計算)されて、ゴールデンハッシュ(例えば、期待署名)と比較することができる。署名レジスタ218に記憶された受信署名と、期待署名が一致することが比較によって示される場合、セキュアアレイが改ざんされておらず、したがって、そこに記憶されたデータが有効であると判定することができる。さらに、それは、期待署名(例えば、ゴールデンハッシュ)に一致する署名を計算するためにホスト202が正しいフレッシュネス値を持たなければならないので、更新220がホスト202からのものであることを示す。しかしながら、比較が、受信した署名と期待署名が一致しないことを示す場合、これは、セキュアアレイ201に記憶された更新220が、(例えば、ハッカー、メモリの障害、及び/または意図しないアクションによって)変更されたこと、及び/または不正な(例えば、偽者の)ホストから送信されたことを示し、これはホスト202に報告することができる。
図2に示す実施形態は、本開示の実施形態を不明瞭にしないように図示されていない追加の回路、ロジック、及び/またはコンポーネントを含み得る。例えば、メモリデバイス206は、I/O回路を通じてI/Oコネクタにわたって提供されるアドレス信号をラッチするアドレス回路を含み得る。アドレス信号は、メモリアレイ201にアクセスするよう、行デコーダ及び列デコーダによって受信及び復号することができる。さらに、メモリデバイス206は、メモリアレイ201とは別に、及び/またはメモリアレイ201に加えて、例えば、DRAMまたはSDRAMなどのメインメモリを含み得る。メモリデバイス206の追加の回路、ロジック、及び/またはコンポーネントをさらに示す例を(例えば、図11と関連して)本明細書でさらに説明する。
図3は、本開示の実施形態による、例示的なメモリデバイス(例えば、図2に関連して前述したメモリデバイス206)を使用して無線更新の有効性を確認する例示的なシステム309を示す。図3は、ホスト302を含むシステム309を示す。本明細書で述べたように、ホスト302は、各ファームウェアなどに必要な更新について、単一のデバイスまたは複数のデバイス(図3には示されていない)を監視してよい。図3に示すように、ホスト302は、単一の更新及び/または複数の更新(例えば、321-1、321-2、及び321-3)を含んでよく、各更新は対応する署名(例えば、333-1、333-2、及び333-3)を含む。各更新は、無線で各デバイスに送信されてよい。例えば、更新321-1は、ホスト302によって監視される第1のタイプのIoTデバイスを対象としてよく、更新321-2は、ホスト302によって監視される第2のタイプのIoTデバイスを対象としてよく、321-3は、ホスト302によって監視される第3のタイプのIoTデバイスを対象としてよい。IoTデバイスのタイプではなく、更新321-1、321-2、及び321-3が、カテゴリ、地理的地域、ブランド、デバイスの使用年数、環境要因などに適用される場合がある。
メモリ316は、公開鍵及びプライベート鍵をホスト302と交換することによって、ホスト302とのセキュア通信に参加し得る。例えば、メモリ316は、ホスト302に関連付けられたプライベート鍵344を含み得る。公開鍵及びプライベート鍵の交換は、セキュア通信及び/またはセキュア位置(例えば、製造中など)を使用して生じ得る。メモリ316は、プライベート鍵344を使用して、ホスト302からのメッセージ(例えば、更新321-1、321-2、及び321-3)を復号してよく、メモリ316は、更新321に関連付けられた署名333-1、333-2、及び333-3をホスト302の公開鍵(図示せず)を使用して検証してよい。上記のように、秘密鍵(例えば、プライベート鍵344)の生成及び有効性確認は、図6~11と関連してさらに説明する。
いくつかの例では、メモリ316は、複数の更新(例えば、更新321-1、321-2、及び/または 321-3)を同時に、及び/または一定期間中、保護するためにメモリアレイの複数の領域(例えば、セキュアメモリアレイ301)を含み得る。メモリ316は、個々のホスト(例えば、ホスト302)からの、及び/または複数の異なるホストからの複数の更新を記憶することができる。メモリ316が複数の異なるホストから更新を受信する場合、メモリ316は、各ホストに対応する異なるプライベート鍵(例えば、プライベート鍵344)を含み得る。これらの実施形態は、図4に関連してさらに説明する。
更新321の有効性を確認するために、ホスト302は、(図2のインタフェース204と類似の)インタフェース304を介して、更新321をメモリ316に送信してよい。例えば、更新321は、ホスト302が、ホスト302が管理する複数のデバイスを対象とした更新(例えば、321-1、321-2、及び321-3)を送信することに応答して、ホスト302から無線で受信される。このようにして、メモリ316は、ホスト302によって管理される各デバイス(例えば、デバイスの各グループ)の各更新の有効性を確認することができる。
例えば、回路(例えば、図2に関連して説明した回路210)及び/またはメモリ316は、ホスト302から、署名331-1と署名333-1に対応する更新321-1とを受信することができ、更新321-1は、ホスト302によって監視されるデバイスを対象としている。回路は、更新321-1をセキュアメモリアレイ301(例えば、セキュアアレイ)に更新320として記憶することができ(矢印337で示す)、受信した署名333-1を署名レジスタ318に記憶することができる(矢印332で示す)。
前述のように、受信した署名331-1は、メモリ316から取得したフレッシュネス値を使用して、ホスト302によって生成される。例えば、更新321-1に対応する署名333-1を生成するために、ホスト302は、メモリ316の(例えば、単調カウンタによって生成される)フレッシュネスフィールド324からフレッシュネス値を(矢印335で示されるように)受信してよい。フレッシュネス値は更新(例えば、321-1、321-2、及び321-3)ごとに変化するため、各署名(例えば、333-1、333-2、及び333-3)は互いに異なる。したがって、署名333-1は、333-2とは異なり、333-2は、333-3とは異なる。さらに、ホスト302はメモリ316からフレッシュネス値を取得するので、メモリ316及びホスト302のみが同じ署名を生成することができ、したがって、受信した署名333-1及び期待署名(図4に関連してさらに詳細に説明する)が同じであるとき、更新は偽者からのものではないことが検証される。
例えば、回路は、更新320を検証するために期待署名を生成することができ、ここで、更新320は、期待署名と受信した署名333-1が同じであるときに検証される。本明細書で述べたように、いくつかの例では、検証プロセスは、メモリ316の電源がオンになったときに開始されてよい。他の例では、回路は、ホスト302から署名333-1を読み出すコマンドを受信し、期待署名(例えば、ゴールデンハッシュ)を生成してよく、ここで、期待署名は、受信した署名333-1に関連付けられた更新320を記憶しているセキュアアレイ(例えば、セキュアメモリアレイ301)のハッシュである。
受信した署名333-1と生成された期待署名が同じであると判定することによって更新320を検証することに応答して、回路は、更新の対象となるデバイスが更新320を利用できるようにしてよい。例えば、回路は、更新320が検証されるとき、更新320をメモリ316の非セキュアアレイ326(例えば、セキュアメモリアレイ301の非セキュア部分)にコピーすることができる。このようにして、無線更新320を検証することができ、ホスト302によって監視されるデバイス(及び/または複数のデバイス)は、デバイスの高度化に関係なく、非セキュアアレイ326から更新320を取得し、各ファームウェアを更新することができる。図3に関連して説明した方法と構成は、署名333-2に関連付けられた更新321-2、及び署名333-3に関連付けられた更新321-3に適用することができる。
図4は、本開示の実施形態による、例示的なメモリデバイス(例えば、メモリ416)を使用して無線による更新の有効性を確認する例示的なフロー図449を示す。フロー図449は、プライベート鍵444-1及び444-2、署名レジスタ418、フレッシュネスフィールド424、セキュアメモリアレイ401-1及び401-2(例えば、図2のメモリアレイ201及び/またはメモリアレイ201の一部)、ならびに非セキュアアレイ426を含む例示的なメモリ416を示す。図4は、ホスト402から更新(例えば、図3に関連して説明された更新321-1)として受信された後、セキュアメモリアレイ401-1内に記憶された更新420-1を示す。セキュアメモリアレイ401-1及び401-2は、レジスタ(例えば、図2に関連して説明したレジスタ214-1及び214-2)によって定義される。図4は、ホスト402から更新(例えば、図3に関連して説明した更新321-2)として受信された後、セキュアメモリアレイ401-2内に記憶された更新420-2を示す。さらに、図4は、非セキュアアレイ426に記憶された検証済み更新422(検証後の更新420-1及び/または420-2であってよい)を示し、ここで、検証済み更新422は、有効性が確認された更新を示す。これについて図4に関連した実施形態で説明する。
開示の例を曖昧にしないように図4には示されていないが、ホスト402は、それぞれ、署名(例えば、図3に関連して説明した333-1、333-2、及び333-3)を有する更新(例えば、図3に関連した説明した更新321-1、321-2、及び321-3)を含み得る。ホスト402は、インタフェース404を介してメモリ416に通信可能に結合されている。ホスト402は、IoTデバイス448などの単一の及び/または複数のデバイスを監視してよい。単一のデバイス448が図4に示されているが、複数のデバイスがホスト402によって監視されてよい。
単一のホスト402を含むものとして示されているが、メモリ416は、複数のホスト(例えば、ホスト402)から更新420-1、420-2を受信してよい。マルチホストの実施形態では、メモリ416は、各プライベート鍵を特定のホストに関連付けることができる1つまたは複数のプライベート鍵(例えば、444-1、及び444-2)を含み得る。例えば、第1のホスト(例えば、ホスト416)は、プライベート鍵444-1を使用してメモリ416と安全に通信してよく、第2のホスト(図示せず)は、プライベート鍵444-2を使用してメモリ416と安全に通信してよい。
説明を容易にするために、単一のホスト402が示されている。いくつかの例では、ホスト402は、複数の更新(例えば、図3に関連する更新321-1、321-2、及び321-3)を提供してよく、これらは、メモリ416によって受信され、有効性確認のためセキュアメモリアレイに記憶されてよい。例えば、ホスト402は、更新420-1としてセキュアメモリアレイ401-1に記憶される無線による第1の更新(例えば、図3の更新321-1)と、更新420-2としてセキュアメモリアレイ401-2に記憶される第2の更新(例えば、図3の321-2)とを提供してよい。本明細書に記載の方法を使用して、メモリ416は、複数の更新(例えば、更新420-1及び420-2)、及び/または単一の更新に無線更新の有効性確認を提供することができる。
ホスト402は、メモリ416が、ホスト402によって監視されるデバイス(例えば、IoTデバイス448)の無線更新の有効性確認を実行できるように、メモリ416に関連付けられてよい。例えば、メモリデバイス416によって、署名(例えば、333-1)及び署名に対応する更新(321-1)を、ホスト402から受信する。ここで、更新は、ホスト402によって監視されるIoTデバイス448に対するものである。この例では、ホスト402から署名を受信することは、メモリ416が、ホスト402から受信した信号439に応答して、フレッシュネスフィールド424からホスト402にフレッシュネス値を送信することをさらに含む。具体的には、439において、信号(例えば、要求及び/またはデータ送信)を介して、ホスト402は、検証されるべき更新に対応する署名が生成できるように、メモリ416からフレッシュネス値を要求してよい。IoTデバイス448に対応するホスト402から受信された更新420-1は、セキュアアレイ401-1に記憶することでき、メモリ416によって安全に有効性を確認することができる。
例えば、メモリ416によって、更新420-1をセキュアメモリアレイ401-1に記憶し、受信した署名を署名レジスタ418に記憶することにより、受信したが有効性を確認していない更新420-1がIoTデバイス448に利用可能になるのを防ぐ。次に、メモリ416は、署名レジスタ418に記憶された受信した署名を、生成した期待署名(例えば、ゴールデンハッシュ)と比較することができる。例えば、440において、受信した更新420-1を実行するためのコマンドをホスト402から受信することに応答して、メモリ416によって期待署名を生成する。言い換えれば、441で、メモリ416によって、期待署名(例えば、ゴールデンハッシュ)を、(署名レジスタ418に記憶される)受信した署名と比較する。ここで、期待署名は、更新420-1を検証するために生成されている。いくつかの例では、期待署名と受信した署名が一致せず、これは、更新420-1が正しくない、不正である、悪意のある、及び/またはそれ以外の承認されていないことを示し得る。
例えば、442で、メモリ416は、期待署名と受信した署名が一致しないと判定する場合がある(例えば、444で「いいえ」)。この例では、446で、メモリ416は、更新420-1をセキュアメモリアレイ401-1の外部の場所にコピーすることを避けることができる。言い換えると、更新420-1は、レジスタ(例えば、図2に関連して説明したレジスタ214-1及び214-2)によって定義されたセキュアメモリアレイ401-1に記憶されるため、更新420-1は他のユーザ、デバイス、及び/またはホストから保護される。したがって、破損の可能性のある更新420-1は、IoTデバイス448及び/またはホスト402に損傷を与えることなく、メモリ416から除去することができる。他の例では、期待署名と受信した署名が一致し、更新420-1がホスト402からのものであり、更新が検証されることを示している。
例えば、442で、メモリ416は、期待署名と受信した署名が一致する(例えば、443で「はい」)と判定する場合がある。この例では、矢印445によって示されるように、メモリ416は、更新420-1をセキュアメモリアレイ401-1の外側の場所にコピーすることができる(例えば、コピーは、非セキュアアレイ426内の検証済み更新422である)。例えば、更新420-1が検証されて、検証済み更新422となることに応答して、メモリ416によって、メモリ416のセキュアメモリアレイ401-1からアレイ426の非セキュア部分に更新420-1をコピーする。ここで、検証済み更新422は、更新420-1がコピーされた(検証済み更新422になった)とき、IoTデバイス448に利用可能になる。言い換えれば、検証済み更新422は、非セキュアアレイ426に記憶されているので、検証済み更新422は、ユーザ、デバイス、及び/またはホストに利用可能である。さらに、いくつかの例では、メモリ416は、検証済み更新422を、無線更新を受信する対象である、ホスト402によって監視されるデバイスに送信することができる。
図4に関連してここで説明する方法は、複数の更新に適用することができる。例えば、更新420-1に適用される無線更新の有効性確認の方法及び例は、セキュアメモリアレイ401-2に記憶された更新420-2に適用することができる。
図5Aは、本開示の実施形態による、セキュアメモリアレイを定義するために使用されるレジスタ514-1及び514-2のペアの例を示し、図5Bは、本開示の実施形態による、レジスタ514-1及び514-2を使用して定義されたセキュアメモリアレイを含むメモリアレイ501の一部分の図を示す。レジスタ514-1及び514-2は、例えば、図2と関連して、それぞれ、前述したレジスタ214-1及び214-2であってよく、セキュアメモリアレイ501は、例えば、図2と関連して前述したメモリアレイ201であってよい。例えば、図5Bに示すように、セキュアメモリアレイ501は、メモリセルのいくつかの物理ブロック507-0、507-1、…、507-Bを含むことができ、各物理ブロックは、図1と関連して前述したメモリアレイ101と同様の方式で、メモリセルのいくつかのセクタを有するいくつかの物理行503-0、503-1、…、503-Rを含む。
図5Aに示すように、レジスタ514-1は、セキュアアレイのアドレス(例えば、セキュアアレイの異なる部分のアドレス)を定義することができ、レジスタ514-2は、セキュアアレイのサイズ(例えば、セキュアアレイの異なる部分のサイズ)を定義することができる。レジスタ514-1によって定義されたセキュアアレイのアドレスは、例えば、セキュアアレイの開始点(例えば、開始LBA)(例えば、セキュアアレイの異なる部分の開始点)に対応することができ、レジスタ514-2によって定義されたセキュアアレイのサイズは、例えば、セキュアアレイの終了点(例えば、終了LBA)(例えば、セキュアアレイの異なる部分の終了点)に対応することができる。
例えば、図5Aに示すように、レジスタ514-1及び514-2は、値のN個のペアを定義することができ、各ペアは、レジスタ514-1によって定義されたアドレス値(例えば、addr)及びレジスタ514-2によって定義されたサイズ値(例えば、size)を含む。例えば、図5Aに示す例では、Pairは、アドレス値addr及びサイズ値size(例えば、Pair=[addr,size])を含み、Pairは、アドレス値addr及びサイズ値size(例えば、Pair=[addr,size])を含み、Pairは、アドレス値addr及びサイズ値size(例えば、Pair=[addr,size])を含む。ペアのアドレス値は、セキュアアレイの一部分の開始点(例えば、開始LBA)に対応することができ、そのペアのアドレス値及びサイズ値の合計は、セキュアアレイのその部分の終了点(例えば、終了LBA)に対応することができる。したがって、セキュアアレイの全体(例えば、セキュアアレイの全体を含む部分)は、[addr,addr+size]∪[addr,addr+size]∪…∪[addr,addr+size]によって与えることができる。
レジスタ514-2によって定義されたサイズ値がゼロである第1のペアは、セキュアアレイの定義を停止することができる。例えば、図5Aに示す例では、Pairのサイズ値がゼロである場合、セキュアアレイは、[addr,addr+size]∪[addr,addr+size]によって与えられる。
レジスタ514-1及び514-2によって定義されたセキュアアレイの例(例えば、非ゼロとしてレジスタ514-2によって定義された全てのサイズ値を有する)が図5Bに示される。例えば、図5Bに示すように、メモリアレイ501のセクタ505-0と関連付けられたアドレス(例えば、LBA)は、addrであり、メモリアレイ501のセクタ505-1と関連付けられたアドレスは、addr+sizeであり、メモリアレイ501のセクタ505-2と関連付けられたアドレスは、addrであり、メモリアレイ501のセクタ505-3と関連付けられたアドレスは、addr+sizeであり、メモリアレイ501のセクタ505-4と関連付けられたアドレスは、addrであり、メモリアレイ501のセクタ505-5と関連付けられたアドレスは、addr+sizeである。したがって、セキュアアレイは、セクタ(例えば、セクタに記憶されたデータ)505-0~505-1、セクタ505-2~505-3、及び505-4~505-5を含む。しかしながら、メモリアレイ501のセクタ505-0の前にあるセクタ、及びメモリアレイ501のセクタ505-1~505-2は、セキュアアレイの一部ではない(例えば、セキュアアレイは、アレイ501のサブセットを含む)。
図6は、本開示の実施形態による、ホスト602及びメモリデバイス606を含む例示的なシステムのブロック図である。ホスト602及びメモリデバイス606は、例えば、それぞれ、図2と関連して前述したホスト202及びメモリデバイス206であってよい。
コンピューティングデバイスは、レイヤを使用して段階的にブートすることができ、各レイヤは、後続のレイヤを認証及びロードし、レイヤごとに次第に高度化されるランタイムサービスを提供する。あるレイヤは、前のレイヤによってサービスを提供されてよく、後続のレイヤにサービスを提供することができ、それによって、下位レイヤの上に構築されて、高位レイヤにサービスを提供するレイヤの相互接続ウェブを作成する。図6に示すように、レイヤ0(「L」)651及びレイヤ1(「L」)653は、ホスト内にある。レイヤ0 651は、レイヤ1 653にFirmware Derivative Secret(FDS)鍵652を提供することができる。FDS鍵652は、レイヤ1 653のコードのID及び他のセキュリティ関連データを記述することができる。ある例では、特定のプロトコル(ロバストなモノのインターネット(RIOT)コアプロトコルなど)は、それがロードするレイヤ1 653のコードの有効性を確認するために、FDS652を使用することができる。ある例では、特定のプロトコルは、デバイスID構成エンジン(DICE)及び/またはRIOTコアプロトコルを含み得る。例として、FDSは、レイヤ1のファームウェアイメージ自体、承認されたレイヤ1のファームウェアを暗号によって識別するマニフェスト、セキュアブートの実施のコンテキストにおいて署名されたファームウェアのファームウェアバージョン番号、及び/またはデバイスについてのセキュリティ重要構成設定を含み得る。デバイスシークレット658は、FDS652を生成するために使用することができ、ホスト602と関連付けられたメモリに記憶することができる。
ホストは、矢印654によって示されるように、メモリデバイス606にデータを送信することができる。送信されたデータは、公開している外部ID、証明書(例えば、外部ID証明書)、及び/または外部公開鍵を含み得る。メモリデバイス606のレイヤ2(「L」)655は、送信されたデータを受信することができ、オペレーティングシステム(「OS」)657のオペレーションにおいて、ならびに第1のアプリケーション659-1及び第2のアプリケーション659-2上でデータを実行することができる。
例示的なオペレーションでは、ホスト602は、デバイスシークレット658を読み込むことができ、レイヤ1 653のIDをハッシュすることができ、以下を含む計算を実行することができる。
L1=KDF[Fs(s),Hash(“immutable information”)]
ここで、KL1は、外部公開鍵であり、KDF(例えば、米国国立標準技術研究所(NIST)特別刊行物800-108において定義されたKDF)は、鍵導出関数(例えば、HMAC-SHA256)であり、及びFs(s)は、デバイスシークレット658である。FDS652は、以下を実行することによって決定することができる。
FDS=HMAC-SHA256[Fs(s),SHA256(“immutable information”)]
同様に、メモリデバイス606は、矢印656によって示されるように、ホスト602にデータを送信することができる。
図7は、本開示の実施形態による、いくつかのパラメータを決定する例示的なプロセスのブロック図である。図7は、矢印754によって示されるように、メモリデバイス(例えば、図6における606)のレイヤ2(例えば、レイヤ2 655)に送信される、外部公開ID、外部証明書、及び外部公開鍵を含むパラメータの決定の例である。図7におけるレイヤ0(「L」)751は、図6におけるレイヤ0 651に対応し、同様に、FDS752は、FDS652に対応し、レイヤ1 753は、レイヤ1 653に対応し、矢印754及び756は、矢印654及び656それぞれに対応する。
レイヤ0 751からのFDS752は、レイヤ1 753に送信され、非対称ID生成器761によって使用されて、公開ID(「IDlk public」)765及びプライベートID767が生成される。省略形「IDlk public」では、「lk」は、レイヤk(この例では、レイヤ1)を示し、「public」は、IDが公然に共有されることを示す。公開ID765は、ホストのレイヤ1 753の右側及び外側に延びる矢印によって共有されるとして示されている。生成されたプライベートID767は、暗号化器773に入力される鍵として使用される。暗号化器773は、データを暗号化するために使用される任意のプロセッサ、コンピューティングデバイスなどであってよい。
ホストのレイヤ1 753は、非対称鍵生成器763を含み得る。少なくとも1つの例では、乱数生成器(RND)736は任意選択で、非対称鍵生成器763に乱数を入力することができる。非対称鍵生成器763は、図6におけるホスト602などのホストと関連付けられた公開鍵(「KLk public」)769(外部公開鍵と称される)及びプライベート鍵(「KLK private」)771(外部プライベート鍵と称される)を生成することができる。外部公開鍵769は、暗号化器773への(「データ」としての)入力であってよい。暗号化器773は、外部プライベートID767及び外部公開鍵769の入力を使用して、結果K’775を生成することができる。外部プライベート鍵771及び結果K’775は、追加の暗号化器777に入力することができ、出力K’’779を結果としてもたらす。出力K’’779は、レイヤ2(図6の655)に送信される外部証明書(「IDL1 certificate」)781である。外部証明書781は、デバイスから送信されたデータの起点を検証及び/または認証する能力を提供することができる。例として、ホストから送信されたデータは、図9と関連してさらに説明するように、証明書を検証することによって、ホストのアイデンティティと関連付けることができる。さらに、外部公開鍵(「KL1 public key」)783は、レイヤ2に送信することができる。したがって、ホストの公開ID765、証明書781、及び外部公開鍵783は、メモリデバイスのレイヤ2に送信することができる。
図8は、本開示の実施形態による、いくつかのパラメータを決定する例示的なプロセスのブロック図である。図8は、デバイスID(「IDL2 public」)866、デバイス証明書(「IDL2 Certificate」)882、及びデバイス公開鍵(「KL2 public key」)884を生成するメモリデバイス(例えば、図6におけるメモリデバイス606)のレイヤ2 855を示す。
図7において説明したように、ホストのレイヤ1からメモリデバイスのレイヤ2 855に送信される外部公開鍵(「KL1 public key」)883が、メモリデバイスの非対称ID生成器862によって使用されて、メモリデバイスの公開ID(「IDlk public」)866及びプライベートID868が生成される。省略形「IDlk public」では、「lk」は、レイヤk(この例では、レイヤ2)を示し、「public」は、IDが公然に共有されることを示す。公開ID866は、レイヤ2 855の右側及び外側に延びる矢印によって共有されるとして示されている。生成されたプライベートID868は、暗号化器874に入力される鍵として使用される。
図8に示すように、外部公開鍵883と共に、外部証明書881及び外部ID865が、証明書検証器847によって使用される。証明書検証器847は、ホスト(例えば、ホスト602)から受信された外部証明書881を検証することができ、外部証明書881が検証されること、または検証されないことに応答して、ホストから受信されたデータを受諾するか破棄するかを判定することができる。外部証明書881を検証することのさらなる詳細は、図9と関連して説明する。
メモリデバイスのレイヤ2 855は、非対称鍵生成器864を含み得る。少なくとも1つの例では、乱数生成器(RND)838は任意選択で、非対称鍵生成器864に乱数を入力することができる。非対称鍵生成器864は、図6におけるメモリデバイス606などのメモリデバイスと関連付けられた公開鍵(「KLk public」)870(デバイス公開鍵と称される)及びプライベート鍵(「KLK private」)872(デバイスプライベート鍵と称される)を生成することができる。デバイス公開鍵870は、暗号化器874への(「データ」としての)入力であってよい。暗号化器874は、デバイスプライベートID868及びデバイス公開鍵870の入力を使用して、結果K’876を生成することができる。デバイスプライベート鍵872及び結果K’876は、追加の暗号化器878に入力することができ、出力K’’880を結果としてもたらす。出力K’’880は、レイヤ1(図6の653)に返信されるデバイス証明書(「IDL2 Certificate」)882である。デバイス証明書882は、デバイスから送信されたデータの起点を検証及び/または認証する能力を提供することができる。例として、メモリデバイスから送信されたデータは、図9と関連してさらに説明するように、証明書を検証することによって、メモリデバイスのアイデンティティと関連付けることができる。さらに、デバイス公開鍵(「KL2 public key」)884は、レイヤ1に送信することができる。したがって、メモリデバイスの公開ID866、証明書882、及びデバイス公開鍵884は、ホストのレイヤ1に送信することができる。
ある例では、ホストがメモリデバイスから公開鍵を受信したことに応答して、ホストは、メモリデバイスに送信するデータを、デバイス公開鍵を使用して暗号化することができる。逆に、メモリデバイスは、ホストに送信するデータを、外部公開鍵を使用して暗号化することができる。メモリデバイスが、デバイスの公開鍵を使用して暗号化されたデータを受信することに応答して、メモリデバイスは自身のデバイスのプライベート鍵を使用してデータを復号することができる。同様に、ホストが外部公開鍵を使用して暗号化されたデータを受信することに応答して、ホストは自身の外部プライベート鍵を使用してデータを復号することができる。デバイスプライベート鍵がメモリデバイスの外部の別のデバイスと共有されず、外部プライベート鍵がホストの外部の別のデバイスと共有されないので、メモリデバイス及びホストに送信されたデータは、安全なままである。
図9は、本開示の実施形態による、証明書を検証する例示的なプロセスのブロック図である。図9に示す例では、公開鍵983、証明書981、及び公開ID965は、ホストから(例えば、図6におけるホスト602のレイヤ1 653から)提供される。証明書981及び外部公開鍵983のデータは、復号器985への入力として使用することができる。復号器985は、データを復号するために使用される任意のプロセッサ、コンピューティングデバイスなどであってよい。証明書981及び外部公開鍵983の復号の結果は、公開IDと共に二次復号器987への入力として使用することができ、出力を結果としてもたらす。外部公開鍵983及び復号器987からの出力は、989において示されるように、証明書が比較によって検証されるかどうかを示すことができ、出力として「はい」または「いいえ」を結果としてもたらす(991)。証明書が検証されたことに応答して、検証対象のデバイスから受信されたデータは、受諾、復号、及び処理することができる。証明書が検証されないことに応答して、検証対象のデバイスから受信されたデータは、破棄、除去、及び/または無視することができる。このようにして、不正なデータを送信する不正なデバイスを検出して回避することができる。例として、処理するデータを送信するハッカーを識別することができ、ハッキングデータは処理されない。
図10は、本開示の実施形態による、署名を検証する例示的なプロセスのブロック図である。その後の拒絶を回避するために検証され得るデータをデバイスが送信している場合、署名をデータと共に生成及び送信することができる。例として、第1のデバイスが、第2のデバイスに要求を行う場合があり、第2のデバイスが要求を実行すると、第1のデバイスは、第1のデバイスがそのような要求を行わなかったことと示す場合がある。署名の使用などの拒絶回避アプローチによって、第1のデバイスによる拒絶を回避することができ、第2のデバイスは、その後の困難なしに要求されたタスクを実行することを確実にすることができる。
メモリデバイス1006(図2におけるメモリデバイス206など)は、ホスト(図2におけるホスト202など)にデータ1090を送信することができる。メモリデバイス1006は、1094において、デバイスプライベート鍵1071を使用して署名1096を生成することができる。署名1096は、ホスト1002に送信することができる。ホスト1002は、1098において、前に受信されたデータ1092及び外部公開鍵1069を使用して署名を検証することができる。このようにして、署名は、プライベート鍵を使用して生成され、公開鍵を使用して検証される。このようにして、受信デバイスが、検証のために送信デバイスの公開鍵を使用して署名を復号することを可能にしながら、一意の署名を生成するために使用されるプライベート鍵は、署名を送信するデバイスに対してプライベートなままにすることができる。これは、受信デバイスの公開鍵を使用して送信デバイスによって暗号化され、受信者のプライベート鍵を使用して受信デバイスによって復号されるデータの暗号化/復号化とは対照的である。少なくとも1つの例では、デバイスは、内部暗号化プロセス(例えば、楕円曲線デジタル署名(ECDSA))または同様のプロセスを使用することによってデジタル署名を検証することができる。
図11は、本開示の実施形態による、例示的なメモリデバイス1106のブロック図である。メモリデバイス1106は、例えば、図2と関連して前述したメモリデバイス206であってよい。
図11に示すように、メモリデバイス1106は、いくつかのメモリアレイ1101-1~1101-7を含み得る。メモリアレイ1101-1~1101-7は、図1と関連して前述したメモリアレイ101と類似していてよい。さらに、図11に示す例では、メモリアレイ1101-3は、セキュアアレイであり、メモリアレイ1101-6のサブセット1111は、セキュアアレイを含み、メモリアレイ1101-7のサブセット1113及び1115は、セキュアアレイを含む。サブセット1111、1113、及び1115は各々、例えば、4キロバイトのデータを含み得る。しかしながら、本開示の実施形態は、メモリアレイまたはセキュアアレイの特定の数または配置に限定されない。
図11に示すように、メモリデバイス1106は、修復(例えば、回復)ブロック1117を含み得る。修復ブロック1117は、メモリデバイス1106の動作中に生じ得る誤り(例えば、不一致)のケースにおいてデータのソースとして使用することができる。修復ブロック1117は、ホストによってアドレス指定可能であるメモリデバイス1106の領域の外側であってよい。
図11に示すように、メモリデバイス1106は、シリアルペリフェラルインタフェース(SPI)1104及びコントローラ1108を含み得る。メモリデバイス1106は、(例えば、図2に関連して)本明細書で前述したように、SPI1104及びコントローラ1108を使用して、ホスト及びメモリアレイ1101-1~1101-7と通信することができる。
図11に示すように、メモリデバイス1106は、メモリデバイス1106のセキュリティを管理するためのセキュアレジスタ1119を含み得る。例えば、セキュアレジスタ1119は、アプリケーションコントローラを構成することができ、アプリケーションコントローラと外部で通信することができる。さらに、セキュアレジスタ1119は、認証コマンドによって修正可能であってよい。
図11に示すように、メモリデバイス1106は、鍵1121を含み得る。例えば、メモリデバイス1106は、ルート鍵、DICE-RIOT鍵、及び/または他の外部セッション鍵などの鍵を記憶するための8個の異なるスロットを含み得る。
図11に示すように、メモリデバイス1106は、電子的消去可能プログラマブルリードオンリメモリ(EEPROM)1123を含み得る。EEPROM1123は、データの個々のバイトを消去及びプログラムすることができる、ホストに対して利用可能な安全な不揮発性領域を提供することができる。
図11に示すように、メモリデバイス1106は、カウンタ(例えば、単調カウンタ)1125を含み得る。カウンタ1125は、ホストから受信された、及び/またはホストに送信された(例えば、コマンドセットまたはシーケンスに署名するための)コマンドのアンチリプレイ機構(例えば、フレッシュネス生成器)として使用することができる。例えば、メモリデバイス1106は、6つの異なる単調カウンタを含むことができ、そのうちの2つは、認証されたコマンドに対してメモリデバイス1106によって使用されてよく、そのうちの4つは、ホストによって使用されてよい。
図11に示すように、メモリデバイス1106は、SHA-256暗号学的ハッシュ関数1127及び/またはHMAC-SHA256暗号学的ハッシュ関数1129を含み得る。SHA-256暗号学的ハッシュ関数1127及び/またはHMAC-SHA256暗号学的ハッシュ関数1129は、メモリデバイス1106によって使用されて、例えば、図2に関連して本明細書で前述した更新220の暗号学的ハッシュ、及び/または本明細書で前述したメモリアレイ1101-1~1101-7に記憶されたデータの有効性を確認するために使用されるゴールデンハッシュなど、暗号学的ハッシュを生成することができる。さらに、メモリデバイス1106は、DICE-RIOT1131のL0及びL1をサポートすることができる。
本明細書では特定の実施形態を示し、説明したが、示した特定の実施形態は、同じ結果を達成するように計算された構成と置き換えることができることを、当業者は理解するであろう。この開示は、本開示のいくつかの実施形態の適合または変形を含むことを意図している。上記の説明は、例示的な形式でなされており、限定的なものではないことを理解されたい。上記の実施形態と、本明細書に具体的に説明されていない他の実施形態との組み合わせは、上記の説明を考察すれば当業者にとって明らかとなるであろう。本開示のいくつかの実施形態の範囲は、上記の構造及び方法が使用される他の用途を含む。したがって、本開示のいくつかの実施形態の範囲は、添付の特許請求の範囲を、係る特許請求の範囲によって権利が与えられる均等物の全範囲と共に参照して決定されるべきである。
前述の「発明を実施するための形態」では、本開示を簡素化する目的のために、単一の実施形態にいくつかの特徴を一緒にまとめている。開示のこの方法は、本開示の開示された実施形態が、各請求項に明示的に記載されたものよりも多くの特徴を使用する必要があるという意図を反映したものとして解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示される実施形態の全ての特徴より少ない特徴にある。したがって、下記の特許請求の範囲は、本明細書では発明を実施するための形態に組み込まれ、各請求項は、別個の実施形態として独立している。

Claims (24)

  1. メモリと、
    前記メモリに関連付けられた回路と、を含む装置であって、前記回路は、
    無線更新の受信について前記メモリを監視することと、
    受信した更新を前記メモリのセキュアアレイに記憶することと、
    前記受信した更新に関連付けられた署名のハッシュを受信し、前記受信した署名の前記ハッシュを前記メモリのレジスタに記憶することと、
    前記受信した更新が本物であるというインディケーションを受信することであって、前記インディケーションは、期待署名のハッシュを含む、前記受信することと、
    前記受信した更新が本物であるという前記インディケーションに応答して、アクションを取ることと、
    を行うように構成された、前記装置。
  2. 前記回路は、ホストから前記メモリによって受信された信号に応答して、前記期待署名の前記ハッシュを生成して、前記受信した更新を実行するように構成される、請求項1に記載の装置。
  3. 前記更新は、前記メモリに関連付けられたホストによって監視されるモノのインターネット(IoT)デバイスを構成するための命令を含む、請求項1に記載の装置。
  4. 前記回路は、
    信号を受信すること応答して、前記期待署名の前記ハッシュを生成し、且つ、
    前記信号を受信することに応答して、前記受信した更新の有効性をチェックする動作の一部として、前記期待署名の前記ハッシュを前記受信した署名の前記ハッシュと比較する
    ようにさらに構成される、請求項1に記載の装置。
  5. 前記更新が無効であると判定されるとき、前記受信した署名の前記ハッシュと前記期待署名の前記ハッシュは異なる、請求項4に記載の装置。
  6. 前記更新が本物であるとき、前記受信した署名の前記ハッシュと前記期待署名の前記ハッシュは同じである、請求項4に記載の装置。
  7. 前記メモリは、ホストに関連付けられ、前記ホストは、モノのインターネット(IoT)デバイスを管理する、請求項1に記載の装置。
  8. 前記受信した更新は、前記ホストから前記メモリに無線で送信される、請求項7に記載の装置。
  9. 前記メモリは、前記メモリによって、前記受信した更新が有効であると判定されたとき、前記受信した更新を前記IoTデバイスに提供する、請求項7に記載の装置。
  10. 前記アクションは、前記受信した更新を、前記セキュアアレイから、ホストによって監視されているデバイスが前記受信した更新にアクセスできる前記メモリの非セキュア部分にコピーすることである、請求項1に記載の装置。
  11. 前記アクションは、前記受信した更新を、前記セキュアアレイから、ホストによって監視されているデバイスが前記受信した更新にアクセスできる前記メモリの前記セキュアアレイの異なる部分にコピーすることである、請求項1に記載の装置。
  12. ホストに関連付けられたメモリと、
    前記メモリに関連付けられた回路と、を含む装置であって、前記回路は、
    前記ホストに関連付けられた更新を受信し、前記更新を前記メモリのセキュアアレイに記憶することと、
    前記更新に関連付けられた署名を受信することであって、前記受信した署名は、前記更新が前記ホストに関連付けられていることを示すフレッシュネス値を含む、前記受信することと、
    前記受信した署名と期待署名の比較に基づいて、前記更新が有効かどうかを判定することであって、前記受信した署名と前記期待署名の相違は、前記更新が無効であることを示す、前記判定することと、
    前記受信した署名と前記期待署名が同じであるとの前記判定に応答して、前記更新を前記セキュアアレイから前記メモリの非セキュア部分にコピーすることと、
    を行うように構成される、前記装置。
  13. 前記メモリは、前記ホストによって管理されるデバイスの前記更新の有効性を確認する、請求項12に記載の装置。
  14. 前記更新が前記セキュアアレイから前記メモリの前記非セキュア部分にコピーされるとき、前記デバイスは、前記有効性を確認された更新にアクセスする、請求項13に記載の装置。
  15. 前記更新は、前記ホストが前記ホストによって管理される複数のデバイスの前記更新を送信することに応答して、前記ホストから無線で受信される、請求項12に記載の装置。
  16. 前記回路は、前記ホストが、前記更新に関連付けられた前記受信した署名を生成するとき、前記ホストに前記フレッシュネス値を提供するようにさらに構成される、請求項12に記載の装置。
  17. ホストと、
    前記ホストに関連付けられたメモリデバイスと、
    回路と、を備えるシステムであって、前記回路は、
    前記ホストから、署名を受信すること及び前記受信した署名に対応する更新を受信することであって、前記更新は、前記ホストによって監視されているデバイスに対するものである、前記受信することと、
    前記ホストによって監視されている前記デバイスに対応する前記更新を前記メモリデバイスのセキュアアレイに記憶し、前記受信した署名を前記メモリデバイスの署名レジスタに記憶することと、
    前記更新を検証するために期待署名を生成することであって、前記更新は、前記期待署名と前記受信した署名が同じであるとき、検証される、前記生成することと、
    前記更新が検証されるとき、前記更新を前記メモリデバイスの非セキュア部分にコピーすることと、
    を行うように構成される、前記システム。
  18. 前記回路は、
    前記署名を読み出すコマンドを前記ホストから受信し、且つ、
    前記期待署名を生成するようにさらに構成され、前記期待署名は、前記受信した署名に関連付けられた前記更新を記憶している前記セキュアアレイのハッシュである、
    請求項17に記載のシステム。
  19. 前記ホストによって監視される前記デバイスは、モノのインターネット(IoT)センサである、請求項17に記載のシステム。
  20. メモリデバイスによって、ホストから署名と前記署名に対応する更新とを受信することであって、前記更新は、前記ホストによって監視されるモノのインターネット(IoT)デバイスに対するものである、前記受信することと、
    前記メモリデバイスによって、前記更新を前記メモリデバイスのセキュアアレイに記憶し、前記受信した署名を前記メモリデバイスのレジスタに記憶することと、
    前記メモリデバイスによって、期待署名を前記受信した署名と比較することであって、前記期待署名は、前記更新を検証するために生成される、前記比較することと、
    前記更新が検証されたことに応答して、前記メモリデバイスによって、前記メモリデバイスの前記セキュアアレイから前記メモリデバイスの非セキュア部分に前記更新をコピーすることと、を含む方法であって、前記更新は、前記更新が前記メモリデバイスの前記非セキュア部分にコピーされるとき、前記IoTデバイスに利用可能になる、
    前記方法。
  21. 前記ホストから前記署名を受信することは、信号が前記ホストから受信されることに応答して、前記メモリデバイスがフレッシュネス値を前記ホストに送信することをさらに含む、請求項20に記載の方法。
  22. 前記期待署名を前記受信した署名と比較することは、前記ホストから前記受信した更新を実行するコマンドを受信することに応答して、前記期待署名のハッシュを生成することをさらに含む、請求項20に記載の方法。
  23. 前記メモリデバイスの前記セキュアアレイから前記メモリデバイスの前記非セキュア部分に前記更新をコピーすることは、実行のために前記更新を前記IoTデバイスに送信することをさらに含む、請求項20に記載の方法。
  24. 前記ホストは、前記IoTデバイスの製造業者である、請求項20に記載の方法。

JP2021557305A 2019-03-25 2020-03-12 無線更新の有効性確認 Pending JP2022527904A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/362,790 US20200310776A1 (en) 2019-03-25 2019-03-25 Over-the-air update validation
US16/362,790 2019-03-25
PCT/US2020/022212 WO2020197775A1 (en) 2019-03-25 2020-03-12 Over-the-air update validation

Publications (1)

Publication Number Publication Date
JP2022527904A true JP2022527904A (ja) 2022-06-07

Family

ID=72605719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021557305A Pending JP2022527904A (ja) 2019-03-25 2020-03-12 無線更新の有効性確認

Country Status (6)

Country Link
US (1) US20200310776A1 (ja)
EP (1) EP3948522A4 (ja)
JP (1) JP2022527904A (ja)
KR (1) KR20210134053A (ja)
CN (1) CN113826071A (ja)
WO (1) WO2020197775A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11240006B2 (en) * 2019-03-25 2022-02-01 Micron Technology, Inc. Secure communication for a key exchange
US20200412545A1 (en) * 2019-06-26 2020-12-31 Micron Technology, Inc. Payload validation for a memory system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014523035A (ja) * 2011-07-02 2014-09-08 インテル・コーポレーション 管理エンジンを利用したコンポーネント更新

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560823B1 (en) * 2007-04-24 2013-10-15 Marvell International Ltd. Trusted modular firmware update using digital certificate
EP2192485A1 (en) * 2008-11-25 2010-06-02 Research in Motion System and method for over-the-air software loading in mobile device
US8782227B2 (en) * 2010-06-22 2014-07-15 Cleversafe, Inc. Identifying and correcting an undesired condition of a dispersed storage network access request
US8631239B2 (en) * 2012-01-12 2014-01-14 Facebook, Inc. Multiple system images for over-the-air updates
US9183393B2 (en) * 2012-01-12 2015-11-10 Facebook, Inc. Multiple system images for over-the-air updates
WO2016138431A1 (en) * 2015-02-27 2016-09-01 Pcms Holdings, Inc. Systems and methods for secure roll-over of device ownership
US10362114B2 (en) * 2015-12-14 2019-07-23 Afero, Inc. Internet of things (IoT) apparatus and method for coin operated devices
US20180081666A1 (en) * 2016-03-11 2018-03-22 Oleksii Surdu Reliable and Secure Firmware Update for Internet of Things (IoT) Devices
KR101795457B1 (ko) * 2016-09-27 2017-11-10 시큐리티플랫폼 주식회사 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014523035A (ja) * 2011-07-02 2014-09-08 インテル・コーポレーション 管理エンジンを利用したコンポーネント更新

Also Published As

Publication number Publication date
EP3948522A1 (en) 2022-02-09
US20200310776A1 (en) 2020-10-01
WO2020197775A1 (en) 2020-10-01
EP3948522A4 (en) 2022-12-21
KR20210134053A (ko) 2021-11-08
CN113826071A (zh) 2021-12-21

Similar Documents

Publication Publication Date Title
US11960632B2 (en) Data attestation in memory
US11321168B2 (en) Error identification in executed code
US11683155B2 (en) Validating data stored in memory using cryptographic hashes
JP2022528072A (ja) 安全な電子制御装置更新のためのローカル台帳ブロックチェーン
US20220179945A1 (en) Run-time code execution validation
CN111740834A (zh) 安全传感器通信
JP2022527759A (ja) 車両の電子制御ユニットの検証
JP2022527904A (ja) 無線更新の有効性確認
JP2022526936A (ja) ブロックチェーンにおけるブロックとしてのメモリの使用
JP2022526934A (ja) ブロックチェーンを基にしたメモリコマンドの正当性確認
US20220138114A1 (en) Using memory as a block in a block chain

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211110

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221004

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230509