JP7134818B2 - 認証の加速のための信頼できるストレージデバイスでのチェックサムの生成 - Google Patents

認証の加速のための信頼できるストレージデバイスでのチェックサムの生成 Download PDF

Info

Publication number
JP7134818B2
JP7134818B2 JP2018188245A JP2018188245A JP7134818B2 JP 7134818 B2 JP7134818 B2 JP 7134818B2 JP 2018188245 A JP2018188245 A JP 2018188245A JP 2018188245 A JP2018188245 A JP 2018188245A JP 7134818 B2 JP7134818 B2 JP 7134818B2
Authority
JP
Japan
Prior art keywords
storage device
embedded
private key
unmodifiable
controller
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.)
Active
Application number
JP2018188245A
Other languages
English (en)
Other versions
JP2019071053A (ja
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 JP2019071053A publication Critical patent/JP2019071053A/ja
Application granted granted Critical
Publication of JP7134818B2 publication Critical patent/JP7134818B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Stored Programmes (AREA)

Description

発明の主題は、コンピューティングシステムの組み込みデバイスでのファームウェアのアップデートのシステム及び方法を対象とする。
コンピューティングシステムの組み込みデバイスは、消費者市場、自動車市場、ヘルスケア市場及び産業市場において広範な用途を有する。組み込みデバイスは、通常、特殊目的のコンピューティングシステム内に含まれる。組み込みデバイスの多くは、システムを制御するためのファームウェアに依存する。多くの場合、ファームウェアによって制御されるデバイスの機能性は、ファームウェアに対するアップデートを必要とする。例えば、オペレーティングシステムとの互換性を維持するために、新規の機能性を追加するために、不具合を修正するために、またはセキュリティ上の理由のためである。ファームウェアのアップデートは、通常、大容量ストレージデバイスに格納され、組み込みデバイスと大容量ストレージデバイスの間で必要な前提条件が満たされると組み込みデバイスに転送される。現在は、大容量ストレージデバイスから組み込みデバイスに対してファームウェアのアップデートを行うとき、アップデートにかかる時間の約半分は、ハッシュ及び署名をチェックすることによりアップデートの信頼性及び整合性を検証するための情報の初期読込みから構成される。一致すると、アップデートを進めることが承認される。それ以外の場合、アップデートは拒絶される。
大容量ストレージデバイスから組み込みデバイスへファームウェアのアップデートを行う速度を加速させるシステム及び方法が必要とされる。
公開鍵が格納された組み込みデバイスに対してファームウェアをアップデートするシステム及び方法が提供される。方法は、組み込みデバイスとストレージデバイスの間の接続を開始する。ストレージデバイスは、コントローラ、メモリ、及び組み込みデバイスの製造業者に関連する秘密鍵を有する。組み込みデバイスで、ストレージデバイス上のファームウェアのアップデートが検出される。格納されている公開鍵が、ストレージデバイスのコントローラで組み込みデバイスから受信される。格納されている公開鍵は、コントローラ及びストレージデバイス上の組み込みデバイスの製造業者に関連する秘密鍵を用いて検証される。ファームウェアのアップデートが、ストレージデバイス上のコントローラを用いてストレージデバイスのメモリから読み込まれる。そして格納されている公開鍵が検証されると、ファームウェアは組み込みデバイス上でアップデートされる。
ストレージデバイス上の秘密鍵は、ストレージデバイス上に焼き付けられる。ストレージデバイスは外部大容量ストレージデバイスであってもよく、または、ストレージデバイスは組み込みマルチメディアコントローラメモリコントローラであってもよい。
本発明は、例えば、以下の項目を提供する。
(項目1)
公開鍵が格納されている組み込みデバイスに対するファームウェアをアップデートする方法であって、
前記組み込みデバイスと、コントローラ、メモリ、及びストレージデバイスでのみアクセスされる前記組み込みデバイスの製造業者に関連する秘密鍵を有する前記ストレージデバイスの間の接続を開始することと、
前記組み込みデバイスで、前記ストレージデバイス上の前記組み込みデバイスに対するファームウェアのアップデートを検出することと、
前記ストレージデバイスの前記コントローラで、前記格納されている公開鍵を前記組み込みデバイスから受信することと、
前記ストレージデバイスのコントローラ及び前記ストレージデバイス上の前記秘密鍵を用いて前記格納されている公開鍵を検証することと、
前記ストレージデバイスのコントローラを用いて、前記ストレージデバイスのメモリから前記ファームウェアのアップデートを読み込むことと、
前記格納されている公開鍵が検証されると、前記組み込みデバイス上で前記ファームウェアをアップデートすることとを含む、前記方法。
(項目2)
前記ストレージデバイスが外部大容量ストレージデバイスである、上記項目に記載の方法。
(項目3)
前記秘密鍵が、前記外部大容量ストレージデバイスに焼き付けられている、上記項目のいずれか一項に記載の方法。
(項目4)
前記秘密鍵が前記外部大容量ストレージデバイス内のワンタイムプログラマブル領域の中にプログラム化される、上記項目のいずれか一項に記載の方法。
(項目5)
ストレージデバイスが組み込みマルチメディアコントローラメモリコントローラである、上記項目のいずれか一項に記載の方法。
(項目6)
前記秘密鍵が、前記組み込みマルチメディアコントローラメモリコントローラに焼き付けられている、上記項目のいずれか一項に記載の方法。
(項目7)
前記秘密鍵が、前記組み込みマルチメディアコントローラメモリコントローラ内のワンタイムプログラマブル領域の中にプログラム化される、上記項目のいずれか一項に記載の方法。
(項目8)
ファームウェアをアップデートするシステムであって、
コンピューティングシステムと、
前記コンピューティングシステム上の少なくとも1つの組み込みデバイスであって、ファームウェア、プロセッサ、メモリ、及び前記少なくとも1つの組み込みデバイスの前記メモリに格納されている公開鍵を有する前記組み込みデバイスと、
ストレージデバイス上の前記組み込みデバイスの製造業者に関連し前記ストレージデバイスでのみアクセスされる秘密鍵を有する前記ストレージデバイスであって、コントローラを有する前記ストレージデバイスと、
前記ストレージデバイスのメモリに格納されており、前記少なくとも1つの組み込みデバイスによって前記ファームウェアのアップデートが検出され、前記ストレージデバイスの前記コントローラでチェックサムが生成され、前記ストレージデバイス上の前記秘密鍵を用いて前記ストレージデバイスで前記チェックサムに署名され、前記組み込みデバイスで前記署名済みチェックサムが検証され、前記署名済みチェックサムが検証されると前記組み込みデバイスに対するファームウェアのアップデートが行われる際、前記少なくとも1つの組み込みデバイスに転送される前記ファームウェアのアップデートとを備える、前記システム。
(項目9)
前記ストレージデバイスが外部大容量ストレージデバイスである、上記項目のいずれか一項に記載のシステム。
(項目10)
前記秘密鍵が前記外部大容量ストレージデバイスに焼き付けられている、上記項目のいずれか一項に記載のシステム。
(項目11)
前記秘密鍵が、前記外部大容量ストレージデバイス内のワンタイムプログラマブル領域の中にプログラム化される、上記項目のいずれか一項に記載のシステム。
(項目12)
前記外部大容量ストレージデバイスが、前記秘密鍵を含む別のハードウェアセキュリティモジュールをさらに備える、上記項目のいずれか一項に記載のシステム。
(項目13)
前記ストレージデバイスが、組み込みマルチメディアコントローラメモリコントローラをさらに備える、上記項目のいずれか一項に記載のシステム。
(項目14)
前記秘密鍵が前記組み込みマルチメディアコントローラメモリコントローラに焼き付けられている、上記項目のいずれか一項に記載のシステム。
(項目15)
前記秘密鍵が、前記組み込みマルチメディアコントローラメモリコントローラ内のワンタイムプログラマブル領域の中にプログラム化される、上記項目のいずれか一項に記載のシステム。
(項目16)
前記組み込みマルチメディアコントローラメモリコントローラが、前記秘密鍵を含む別のハードウェアセキュリティモジュールをさらに備える、上記項目のいずれか一項に記載のシステム。
(項目17)
前記ストレージデバイスが、モノのインターネットのデバイスに、組み込みマルチメディアコントローラをさらに備える、上記項目のいずれか一項に記載のシステム。
(項目18)
ストレージデバイスから組み込みデバイスに転送されるファイルのバリデーションチェックの方法であり、
前記ストレージデバイス上のコントローラを用いて、転送される前記ファイルを読み込むステップと、
前記ストレージデバイスで、前記組み込みデバイス上に格納されている公開鍵を受信するステップと、
前記ファイルの転送前に、前記格納されている公開鍵を、前記ストレージデバイス上の前記コントローラ及び前記ストレージデバイス上でのみアクセスされる秘密鍵を用いて検証するステップと、
前記格納されている公開鍵が検証されると、前記ファイルを前記ストレージデバイスから前記組み込みデバイスに転送するステップとを含む、前記方法。
(項目19)
前記ストレージデバイスが外部大容量ストレージデバイスであり、前記外部大容量ストレージデバイス上の前記秘密鍵が、前記外部大容量ストレージデバイスに焼き付けられる、前記外部大容量ストレージデバイスのワンタイムプログラマブル領域の中にプログラム化される、または、前記外部大容量ストレージデバイス上の別のハードウェアセキュリティモジュールに包含される、上記項目のいずれか一項に記載の方法。
(項目20)
前記ストレージデバイスが組み込みマルチメディアコントローラメモリであり、前記組み込みマルチメディアコントローラメモリ上の前記秘密鍵が、前記組み込みマルチメディアコントローラメモリコントローラに焼き付けられる、前記組み込みマルチメディアコントローラメモリコントローラのワンタイムプログラマブル領域の中にプログラム化される、または、前記組み込みマルチメディアコントローラメモリコントローラ上の別のハードウェアセキュリティモジュールに包含される、上記項目のいずれか一項に記載の方法。
(項目21)
組み込みシステムに適用されるファイルのバリデーションチェックの方法であって、
前記組み込みシステム上のeMMCメモリコントローラを用いて、適用される前記ファイルを読み込むステップと、
前記eMMCメモリコントローラで、前記組み込みシステム上に格納されている公開鍵を受信するステップと、
前記ファイルの適用前に、前記eMMCメモリコントローラ、及び前記eMMCメモリコントローラ上でのみアクセスされる秘密鍵を用いて、前記格納されている公開鍵を検証するステップと、
前記格納されている公開鍵が検証されると、前記ファイルを前記eMMCメモリコントローラから前記組み込みシステムに転送するステップとを含む、前記方法。
(項目22)
前記eMMCメモリコントローラ上の前記秘密鍵が、前記eMMCメモリコントローラ上に焼き付けられる、前記eMMCメモリコントローラのワンタイムプログラマブル領域の中にプログラム化される、または、前記eMMCメモリコントローラの別のハードウェアセキュリティモジュール上に包含される、上記項目のいずれか一項に記載の方法。
(項目23)
前記組み込みシステムが、モノのインターネットのデバイスの一部である、上記項目のいずれか一項に記載の方法。
(摘要)
ストレージデバイスから組み込みデバイスに転送されるファイルのバリデーションチェックの方法であって、ストレージデバイス上のコントローラを用いて、転送されるファイルを読み込むことと、ストレージデバイスで組み込みデバイスから格納されている公開鍵を受信することと、ファイルの転送前に、コントローラ及びストレージデバイス上の秘密鍵を用いて、格納されている公開鍵を検証することと、格納されている公開鍵が検証されると、ストレージデバイスから組み込みデバイスにファイルを転送することとを含む方法が提供される。コントローラを有するストレージデバイスは、外部大容量ストレージデバイスであってもよくまたはeMMCメモリコントローラであってもよい。
車両上のインフォテインメントユニットとして示されるコンピューティングシステムと大容量ストレージデバイスを受けるUSBポートとを含むアップデートシナリオのブロック図である。 大容量ストレージデバイスと通信する少なくとも1つの組み込みデバイスを有するコンピューティングシステムのブロック図である。 大容量ストレージデバイスを用いてファームウェアをアップデートする方法のフローチャートである。
図における要素及びステップは、簡潔性及び明瞭性のために例示されるものであり、任意の特定の順序にしたがっているとして必ずしも表されていない。例えば、同時にまたは異なる順序で行われ得るステップが、発明の主題の実施形態の理解の向上を助けるために図に例示される。
発明の主題の様々な態様が特定の例示的な実施形態を参照して記載されるが、発明の主題はそうした実施形態に限定されておらず、さらなる修正、適用及び実施形態が発明の主題から逸脱することなく実装され得る。図において、同様の参照番号は、同じ構成要素を示すのに用いられる。当業者は、本明細書中に記載された様々な構成要素は発明の主題の範囲と異なることなく変更され得ることを認識するであろう。
図1は、ナビゲーションデバイス、マルチメディアデバイス、インフォテインメントユニット、パーソナルコンピュータ、タブレット、スマートフォン、または消費者電子デバイスで用いられる他のコンピューティングシステムといったコンピューティングシステム102を含むアップデートシナリオ100のブロック図である。図1に示すコンピューティングシステム102は、車両用インフォテインメントユニットであり、単に例示目的で示されている。コンピューティングシステム102に対する、USBポート104といった、大容量ストレージデバイス(図1に示さず)をコンピューティングシステム102に接続する手段104も図1に示される。USBポートが示されるが、やはりこれも単に例示目的である。コンピューティングデバイスと大容量ストレージデバイスを接続するバスを提供する他の例として、以下に限定するものではないが、SATA、Wi-Fi、lightning、Ethernet(登録商標)、UFS、5Gなども含まれる。コンピューティングシステム102は、専用オペレーティングシステム、複数のソフトウェアプログラム、及び/または、グラフィックス、音声、ワイヤレスネットワーキング、イネーブリングアプリケーション、車両構成要素の統合ハードウェア、システム、ならびにスマートフォン、タブレット及びナビゲーションシステムなどが例として挙げられる外部デバイスといったインターフェース用プラットフォームを用いて動作し得る1つまたは複数の組み込みデバイス(図示せず)を有する。組み込みデバイスにおけるファームウェアに対するアップデートは、最適なパフォーマンスを確保するためにほとんどの場合必要である。
ここで図2を参照すると、図1に示すコンピューティングシステムの組み込みデバイス202及びストレージデバイス208のブロック図200が示される。ストレージデバイス208は、通信バス210を通じてコンピューティングシステム102に接続するためのUSBポートによって受けられ得る。図2に示す例では、ストレージデバイスは、USBドライブなどの外部大容量ストレージデバイスである。しかしながら、ストレージデバイスは、ホストに対して内部的なストレージデバイス、例えば、組み込みマルチメディアカード(eMMC)、またはSSDカードなどの他のソリッドステートストレージデバイスであり得る可能性がある。
組み込みデバイス202の任意の1つまたは複数は、種々のプログラミング言語及び/または技術を用いて作成されたコンピュータプログラムからコンパイルまたは解釈され得るコンピュータ実行可能命令を含むコンピューティングデバイスなどの処理ユニット206を含む。一般に、プロセッサ(マイクロプロセッサなど)は、例えばメモリ212、コンピュータ可読媒体などから命令を受信し、命令を実行する。処理ユニット206は、ソフトウェアプログラムの命令を実行可能な非一時的なコンピュータ可読ストレージ媒体を含む。コンピュータ可読ストレージ媒体は、以下に限定されるものではないが、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイスまたはそれらの任意の適切な組み合わせであってもよい。コンピューティングシステム及びその組み込みシステムの任意の1つまたは複数はファームウェアに依存し、このファームウェアは、オペレーティングシステムとの互換性、改良及びさらなる機能性、セキュリティのアップデートなどを確保するために時々のアップデートを必要とし得る。組み込みデバイス202は、検証目的で、1つまたは複数の公開鍵220を保持する。
ストレージデバイス208は、ファームウェアのアップデートを格納し、ファームウェアのアップデートがコンピューティングシステム102及び/または組み込みデバイス202に通信されるべきときにアクセスされる。ストレージデバイス208は、メモリチップ214及びコントローラ216を含む。ストレージデバイスのコントローラ216は、種々のプログラミング言語及び/または技術を用いて作成されたコンピュータプログラムからコンパイルまたは解釈され得るコンピュータ実行可能命令を含むプロセッサを有する。一般に、プロセッサ(マイクロプロセッサなど)は、例えばメモリ、コンピュータ可読媒体などから命令を受信し、命令を実行する。プロセッサは、ROM及びRAMを含む、ソフトウェアプログラムの命令を実行可能な非一時なコンピュータ可読ストレージ媒体を含む。ストレージデバイス208は、組み込みシステム上のファームウェアに対するアップデートを送信するために組み込みシステムへの接続を容易にするコネクタ、例えばUSBコネクタを含む。
ストレージデバイス208は、製造業者の秘密鍵218を保持する。秘密鍵218は、ストレージデバイス208のシリコン内に物理的に組み込まれる、焼き付けられる、または焼かれる。例えば、秘密鍵が組立ての際に焼かれ/プログラム化され決して修正することはできない、集積回路またはSoCの内部のワンタイムプログラマブル(OTP)領域を用いる。代替として、ストレージデバイス上の、製造業者の秘密鍵を含む別のハードウェアセキュリティモジュール(HSM)が用いられ得、読み込みバイトは、署名を生成するために、ストレージデバイス上のメモリからストレージデバイス上のHSMに渡され得る。製造業者の秘密鍵218は、ストレージデバイス208でのみアクセスされ得る。製造業者の秘密鍵218は、例えばホストにまたはホストのリクエストで、読み出されることまたは送信されることはできない。秘密鍵218は、ストレージデバイスのコントローラ216によってのみアクセスされて、ファイルまたはメモリ領域のチェックサム及び公開鍵/証明書を用いて組み込みデバイスによって検証される署名済みチェックサムを生成する。
図3は、ストレージデバイスを用いて組み込みデバイス上のファームウェアに対してユーザによって開始されたアップデートを行う方法300のフローチャートである。ストレージデバイスは、組み込みデバイス上のファームウェアに対するアップデートを含む。組み込みデバイスは、図3を参照して「ホスト」と称される。アップデートは、ユーザによって開始される302。例えば、ユーザは、ストレージデバイスを、USBポートなどの外部的に利用可能なバスを通して組み込みデバイスに接続することによってアップデートを開始し得る。デバイスの列挙とも称される、USBデバイスに対するドライバの検出、識別及びロードのプロセスが、ストレージデバイスとホストの間で行われる。ホストは、ストレージデバイス上の利用可能なアップデートのクエリを行って304、検出する306。ホストは、ストレージデバイスからの信頼できるチェックサムをリクエストする308。
続く数ステップは、ストレージデバイス上で実行される。通常ストレージデバイスから組み込みデバイスに対するファームウェアのアップデートを行うとき、アップデートにかかる時間の最大50%は、ハッシュ及び署名をチェックすることによってアップデートの信頼性及び整合性を検証するのに費やされる。この読込みのすべてが、ストレージデバイスの制限された実効転送速度により、アップデートに対してボトルネックを生じさせる。ストレージデバイスの転送速度は通常30MB/秒である。しかしながら、ストレージデバイス上のeMMCチップは、270MB/秒といった大幅に速い転送速度が可能であるチップを含む。したがって、ストレージデバイスのコントローラ上で読み込み、ハッシング及びチェックサムの署名を行うことによって、大幅に速いアップデートが実現され得る。結果として、アップデートにかかる時間の大きな部分、40%程度が解消され得る。ストレージデバイスは、パーティションのチェックサムを生成し310、組み込まれている製造業者の秘密鍵を用いてチェックサムに署名する312。組み込みデバイスは組み込みデバイス上に製造業者からの信頼できる公開鍵を有し(図2、202を参照)、ストレージデバイスは、組み込みデバイスの製造業者に関連する秘密鍵を有するので、ストレージデバイスによって生成されたハッシュが認証済みのまたは既知のソースからのものであると自動的に検証され、ソース(すなわち大容量ストレージデバイス)を信頼することができる。
ストレージデバイスは、ホストに、署名済みチェックサムを戻す314。ホストは、チェックサムを読み込み316、署名済みチェックサムを、ホストに既に格納されている製造業者の公開鍵に対して検証する318。検証が成功すると、次いで、ファームウェアのアップデートがホスト上にコピーされる320。
発明の主題は、チェックをストレージデバイスのコントローラ(図2の216を参照)上で行うことによって、加速及び認証チェックを可能にする。秘密鍵はストレージデバイス上に焼き付けられているので、ハッシュへの署名はストレージデバイス上で行われ、結果のみがホストすなわち組み込みデバイスに転送される。また、ストレージデバイス上で読み込みを行うことによって、チェックは、より遅い外部インターフェースを通して組み込みデバイス上にデータをコピーする場合よりも大幅に速くなる。
本明細書中の記載はストレージデバイスを対象とするが、ハッシング及び署名は内部組み込みマルチメディアカード(eMMC)にも適用され得る。eMMCは通常ホスト上にあるが、秘密鍵はeMMCでアクセスされ、秘密鍵を読み出すことまたは送信することは同じくできない。ハッシングは加速され、セキュアブートに対するさらなるセキュリティが提供される。また、処理及びハッシュ計算がホストからオフロードされ得る。さらに、発明の主題は、ダウンロードされたファームウェアのアップデートに加え内部ストレージ上のファイルの整合性をチェックするのに用いられ得る。例えば、ファームウェア無線配信(FOTA)のアップデート、または、Google PlayあるいはAppleのApplestoreなどのソースからのアプリケーションは、eMMCにインストールされる前に、それらが整合し認証済みであることを確かなものとするために検証され得る。家庭電気製品または任意の組み込みシステムといったモノのインターネット(IoT)のデバイスにおいて、内部eMMCメモリコントローラは利用され得る。内部ハッシング速度はより速く、より安全となろう。
前述の明細書において、発明の主題は、具体的な例示的な実施形態を参照して記載されてきた。様々な修正及び変更が、特許請求の範囲に記載された発明の主題の範囲から逸脱せずにではあるが、なされ得る。明細書及び図は限定的というより例示的であり、修正は発明の主題の範囲内に含まれることが意図される。したがって、発明の主題の範囲は、単に記載された例によってではなく、特許請求の範囲及びそれらの法的均等物によって決定付けられるべきである。
例えば、任意の方法またはプロセスクレームに列挙されたステップは、任意の順序で実行され得、特許請求の範囲に提示された特定の順序に限定されるものではない。さらに、任意の装置クレームに列挙された構成要素及び/または要素は組み合わされ得、または、様々な順列で動作可能に構成され得、したがって特許請求の範囲に列挙された具体的な構成に限定されるものではない。
利益、他の利点及び問題に対する解決策が特定の実施形態に関して上述されてきたが、いずれの利益、利点、問題に対する解決策も、または、任意の特定の利益、利点あるいは解決策を生じさせ得るあるいはより明白にし得るいずれの要素も、特許請求の範囲の一部または全部の重要な、必須のまたは不可欠な特徴または構成要素として解釈されない。
用語「comprise(含む)」、「comprises(含む)」、「comprising(含む)」、「having(含む)」、「including(含む)」、「includes(含む)」またはその任意の変形は、要素のリストを備えるプロセス、方法、物品、構成または装置が列挙された要素のみを含むものではなく、明確にリスト化されていないまたはそうしたプロセス、方法、物品、構成あるいは装置に固有の他の要素も含み得るような、非排他的な包含を指すことが意図される。発明の主題を実施する際に用いられる上述した構造、構成、用途、割合、要素、材料または構成要素の他の組み合わせ及び/または修正、加えて具体的に列挙されていないものは、その一般原則から逸脱せずに、変更され得、または、具体的な環境、製造仕様、設計パラメータあるいは他の動作要件に特に適合され得る。

Claims (23)

  1. 公開鍵が格納されている組み込みデバイスに対するファームウェアをアップデートする方法であって、前記方法は、
    前記組み込みデバイスとストレージデバイスとの間の接続を開始することであって、前記ストレージデバイスは、コントローラ、メモリ、及び読み出されることまたは送信されることができない修正不可能な秘密鍵を有し、前記修正不可能な秘密鍵は、前記ストレージデバイスでのみアクセスされることと、
    前記組み込みデバイスで、前記ストレージデバイス上の前記組み込みデバイスに対するファームウェアのアップデートを検出することと、
    前記組み込みデバイスが、前記ストレージデバイスの前記コントローラからの信頼できるチェックサムをリクエストすることと、
    前記ストレージデバイスの前記コントローラで、前記修正不可能な秘密鍵を用いて、署名済みチェックサムを生成することと、
    前記署名済みチェックサムを前記組み込みデバイスに戻すことと、
    前記ストレージデバイスの前記コントローラから戻された前記署名済みチェックサムを、前記組み込みデバイスに格納されている前記公開鍵に対して検証することと、
    前記ストレージデバイスの前記コントローラを用いて、前記ストレージデバイスの前記メモリから前記ファームウェアのアップデートを読み込むことと、
    前記ファームウェアのアップデートを前記ストレージデバイスの前記メモリから前記組み込みデバイスにコピーすることと
    を含む方法。
  2. 前記ストレージデバイスが部ストレージデバイスである、請求項1に記載の方法。
  3. 前記修正不可能な秘密鍵が、前記外部ストレージデバイスに焼き付けられている、請求項2に記載の方法。
  4. 前記修正不可能な秘密鍵が前記外部ストレージデバイス内のワンタイムプログラマブル領域の中にプログラム化される、請求項2に記載の方法。
  5. 前記ストレージデバイスが組み込みマルチメディアカードである、請求項1に記載の方法。
  6. 前記修正不可能な秘密鍵が、前記組み込みマルチメディアカードに焼き付けられている、請求項5に記載の方法。
  7. 前記修正不可能な秘密鍵が、前記組み込みマルチメディアカード内のワンタイムプログラマブル領域の中にプログラム化される、請求項5に記載の方法。
  8. ファームウェアをアップデートするシステムであって、
    コンピューティングシステムと、
    前記コンピューティングシステム上の少なくとも1つの組み込みデバイスであって、前記少なくとも1つの組み込みデバイスは、ファームウェア、プロセッサ、メモリ、及び前記少なくとも1つの組み込みデバイスの前記メモリに格納されている公開鍵を有する、少なくとも1つの組み込みデバイスと、
    ストレージデバイスであって、前記ストレージデバイスは、コントローラ、メモリ、及び読み出されることまたは送信されることができない前記ストレージデバイス上の修正不可能な秘密鍵を有し、前記修正不可能な秘密鍵は、前記ストレージデバイスでのみアクセスされるストレージデバイスと、
    前記ストレージデバイスの前記メモリに格納されているファームウェアのアップデートであって、前記ファームウェアのアップデートは、前記少なくとも1つの組み込みデバイスによって前記ファームウェアのアップデートが検出され、前記少なくとも1つの組み込みデバイスからのリクエストにより、前記ストレージデバイスの前記コントローラで、前記修正不可能な秘密鍵を用いて、署名済みチェックサムが生成され、前記署名済みチェックサムが前記組み込みデバイスに戻され、前記ストレージデバイスの前記コントローラから戻された前記署名済みチェックサムが、前記組み込みデバイスに格納されている前記公開鍵に対して検証され、前記ファームウェアのアップデートが前記組み込みデバイスにコピーされる際、前記少なくとも1つの組み込みデバイスに転送されるファームウェアのアップデートと
    を備えるシステム。
  9. 前記ストレージデバイスが部ストレージデバイスである、請求項8に記載のシステム。
  10. 前記修正不可能な秘密鍵が前記外部ストレージデバイスに焼き付けられている、請求項9に記載のシステム。
  11. 前記修正不可能な秘密鍵が、前記外部ストレージデバイス内のワンタイムプログラマブル領域の中にプログラム化される、請求項9に記載のシステム。
  12. 前記外部ストレージデバイスが、前記修正不可能な秘密鍵を含む別のハードウェアセキュリティモジュールをさらに備える、請求項9に記載のシステム。
  13. 前記ストレージデバイスがさらに、組み込みマルチメディアカードである、請求項8に記載のシステム。
  14. 前記修正不可能な秘密鍵が前記組み込みマルチメディアカードに焼き付けられている、請求項13に記載のシステム。
  15. 前記修正不可能な秘密鍵が、前記組み込みマルチメディアカード内のワンタイムプログラマブル領域の中にプログラム化される、請求項13に記載のシステム。
  16. 前記組み込みマルチメディアカードが、前記修正不可能な秘密鍵を含む別のハードウェアセキュリティモジュールをさらに備える、請求項13に記載のシステム。
  17. 前記システムが、モノのインターネットのデバイスの一部である、請求項13に記載のシステム。
  18. ストレージデバイスから組み込みデバイスに転送されるファイルのバリデーションチェックの方法であって、前記ストレージデバイスは、コントローラ、及び読み出されることまたは送信されることができない修正不可能な秘密鍵を有し、前記修正不可能な秘密鍵は、前記ストレージデバイスでのみアクセスされ、前記組み込みデバイスには公開鍵が格納されており、前記方法は、
    前記ストレージデバイスの前記コントローラを用いて、転送される前記ファイルを読み込むステップと
    前記ファイルの転送前に、前記組み込みデバイスが、前記ストレージデバイスの前記コントローラからの信頼できるチェックサムをリクエストするステップと、
    前記ストレージデバイスの前記コントローラで、前記修正不可能な秘密鍵を用いて、署名済みチェックサムを生成するステップと、
    前記署名済みチェックサムを前記組み込みデバイスに戻すステップと、
    前記ストレージデバイスの前記コントローラから戻された前記署名済みチェックサムを、前記組み込みデバイスに格納されている前記公開鍵に対して検証するステップと、
    記公開鍵に対して前記署名済みチェックサムが検証されると、前記ファイルを前記ストレージデバイスのメモリから前記組み込みデバイスに転送するステップと
    を含む方法。
  19. 前記ストレージデバイスが部ストレージデバイスであり、前記外部ストレージデバイス上の前記修正不可能な秘密鍵が、前記外部ストレージデバイスに焼き付けられる、前記外部ストレージデバイスのワンタイムプログラマブル領域の中にプログラム化される、または、前記外部ストレージデバイス上の別のハードウェアセキュリティモジュールに包含される、請求項18に記載の方法。
  20. 前記ストレージデバイスが組み込みマルチメディアカードであり、前記組み込みマルチメディアカード上の前記修正不可能な秘密鍵が、前記組み込みマルチメディアカードに焼き付けられる、前記組み込みマルチメディアカードのワンタイムプログラマブル領域の中にプログラム化される、または、前記組み込みマルチメディアカード上の別のハードウェアセキュリティモジュールに包含される、請求項18に記載の方法。
  21. 組み込みシステムに適用されるファイルのバリデーションチェックの方法であって、前記組み込みシステムには公開鍵が格納されており、前記方法は、
    前記組み込みシステム上のeMMCメモリコントローラを用いて、適用される前記ファイルを読み込むステップであって、前記eMMCメモリコントローラは、読み出されることまたは送信されることができない修正不可能な秘密鍵を有し、前記修正不可能な秘密鍵は、前記eMMCメモリコントローラでのみアクセスされる、ステップと、
    前記ファイルの適用前に、前記組み込みシステムが、前記eMMCメモリコントローラからの信頼できるチェックサムをリクエストするステップと、
    前記eMMCメモリコントローラで、前記修正不可能な秘密鍵を用いて、署名済みチェックサムを生成するステップと、
    前記署名済みチェックサムを前記組み込みシステムに戻すステップと、
    前記eMMCメモリコントローラから戻された前記署名済みチェックサムを、前記組み込みシステムに格納されている前記公開鍵に対して検証するステップと、
    記公開鍵に対して前記署名済みチェックサムが検証されると、前記ファイルを前記eMMCメモリコントローラから前記組み込みシステムに転送するステップと
    を含む方法。
  22. 前記eMMCメモリコントローラ上の前記修正不可能な秘密鍵が、前記eMMCメモリコントローラ上に焼き付けられる、前記eMMCメモリコントローラのワンタイムプログラマブル領域の中にプログラム化される、または、前記eMMCメモリコントローラの別のハードウェアセキュリティモジュール上に包含される、請求項21に記載の方法。
  23. 前記組み込みシステムが、モノのインターネットのデバイスの一部である、請求項22に記載の方法。
JP2018188245A 2017-10-05 2018-10-03 認証の加速のための信頼できるストレージデバイスでのチェックサムの生成 Active JP7134818B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/725,878 US20190108009A1 (en) 2017-10-05 2017-10-05 Generating checksums on trusted storage devices for accelerated authentication
US15/725,878 2017-10-05

Publications (2)

Publication Number Publication Date
JP2019071053A JP2019071053A (ja) 2019-05-09
JP7134818B2 true JP7134818B2 (ja) 2022-09-12

Family

ID=63722189

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018188245A Active JP7134818B2 (ja) 2017-10-05 2018-10-03 認証の加速のための信頼できるストレージデバイスでのチェックサムの生成

Country Status (5)

Country Link
US (1) US20190108009A1 (ja)
EP (1) EP3467647B1 (ja)
JP (1) JP7134818B2 (ja)
KR (1) KR102557005B1 (ja)
CN (1) CN109634628B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102534209B1 (ko) * 2018-01-25 2023-05-17 엘지전자 주식회사 차량용 업데이트 시스템 및 제어 방법
US10776488B2 (en) * 2018-09-24 2020-09-15 Dell Products L.P. Extend root of trust to include firmware of individual components of a device
US11184170B2 (en) * 2019-06-28 2021-11-23 Micron Technology, Inc. Public key protection techniques
KR20210017268A (ko) * 2019-08-07 2021-02-17 삼성전자주식회사 사용자 데이터에 대해 암호화 동작을 수행하는 전자 장치
US11681513B2 (en) * 2020-05-14 2023-06-20 Texas Instmments Incorporated Controlled scope of authentication key for software update
US20230281004A1 (en) * 2022-03-01 2023-09-07 Otis Elevator Company Offline self content management infotainment system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013534377A (ja) 2010-08-27 2013-09-02 ▲華▼▲為▼終端有限公司 無線でのファームウェア配信技術に基づいてファームウェアを処理する方法、装置及びシステム
US20150261521A1 (en) 2014-03-11 2015-09-17 Hyuksang CHOI Mobile system including firmware verification function and firmware update method thereof

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4555591A (en) * 1982-09-07 1985-11-26 At&T Bell Laboratories Integrated circuit devices for secure data encryption
FI115257B (fi) * 2001-08-07 2005-03-31 Nokia Corp Menetelmä informaation käsittelemiseksi elektroniikkalaitteessa, järjestelmä, elektroniikkalaite ja suoritinlohko
FR2861240B1 (fr) * 2003-10-15 2006-03-03 Medialive Procede et systeme repartis securises pour la distribution de flux audiovisuels
US20090204823A1 (en) * 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
US8761390B2 (en) * 2008-06-30 2014-06-24 Gm Global Technology Operations Production of cryptographic keys for an embedded processing device
WO2012109640A2 (en) * 2011-02-11 2012-08-16 Siemens Healthcare Diagnostics Inc. System and method for secure software update
WO2012127266A1 (en) * 2011-03-23 2012-09-27 Sandisk Il Ltd. Storage device and method for updating data in a partition of the storage device
US9183393B2 (en) * 2012-01-12 2015-11-10 Facebook, Inc. Multiple system images for over-the-air updates
EP2854066B1 (en) * 2013-08-21 2018-02-28 Nxp B.V. System and method for firmware integrity verification using multiple keys and OTP memory
JP5907937B2 (ja) * 2013-09-11 2016-04-26 京セラドキュメントソリューションズ株式会社 組込システム
CN103617128B (zh) * 2013-12-11 2016-08-17 长城信息产业股份有限公司 一种嵌入式***及安全操作***的实现方法
KR20150100075A (ko) * 2014-02-24 2015-09-02 삼성전자주식회사 메모리 및 컨트롤러를 포함하는 메모리 장치의 펌웨어를 업데이트하는 방법
US9801044B2 (en) * 2014-05-13 2017-10-24 Samsung Electronics Co., Ltd. Apparatus and method for accessing wireless network
US9524158B2 (en) * 2015-02-23 2016-12-20 Apple Inc. Managing firmware updates for integrated components within mobile devices
US9836296B2 (en) * 2015-06-11 2017-12-05 Telefonaktiebolaget Lm Ericsson (Publ) Methods and systems for providing updates to and receiving data from devices having short range wireless communication capabilities
US9935945B2 (en) * 2015-11-05 2018-04-03 Quanta Computer Inc. Trusted management controller firmware
US10355858B2 (en) * 2016-03-30 2019-07-16 Intel Corporation Authenticating a system to enable access to a diagnostic interface in a storage device
US10728249B2 (en) * 2016-04-26 2020-07-28 Garrett Transporation I Inc. Approach for securing a vehicle access port
US11146401B2 (en) * 2016-08-10 2021-10-12 Ford Global Technologies, Llc Software authentication before software update

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013534377A (ja) 2010-08-27 2013-09-02 ▲華▼▲為▼終端有限公司 無線でのファームウェア配信技術に基づいてファームウェアを処理する方法、装置及びシステム
US20150261521A1 (en) 2014-03-11 2015-09-17 Hyuksang CHOI Mobile system including firmware verification function and firmware update method thereof

Also Published As

Publication number Publication date
KR20190039645A (ko) 2019-04-15
CN109634628B (zh) 2023-12-29
EP3467647A1 (en) 2019-04-10
CN109634628A (zh) 2019-04-16
US20190108009A1 (en) 2019-04-11
EP3467647B1 (en) 2020-06-03
KR102557005B1 (ko) 2023-07-19
JP2019071053A (ja) 2019-05-09

Similar Documents

Publication Publication Date Title
JP7134818B2 (ja) 認証の加速のための信頼できるストレージデバイスでのチェックサムの生成
US10244394B2 (en) Method and update gateway for updating an embedded control unit
US9881162B2 (en) System and method for auto-enrolling option ROMS in a UEFI secure boot database
KR101687277B1 (ko) 시스템 온 칩 디바이스들에서의 키 폐기
US9536080B2 (en) Method for validating dynamically loaded libraries using team identifiers
CN111630513B (zh) 认证所存储代码和代码更新的真实性
TW201732669A (zh) 受控的安全碼鑑認
US20150095652A1 (en) Encryption and decryption processing method, apparatus, and device
US20170255775A1 (en) Software verification systems with multiple verification paths
JP2017033537A (ja) 外部不揮発性メモリに間接アクセスするセキュリティデバイス
CN109445705B (zh) 固件认证方法及固态硬盘
CN112204548B (zh) 应用特定客户端证书的自动生成
KR20170087887A (ko) 애플리케이션 무결성의 검증을 제공하는 방법 및 디바이스
US20220382874A1 (en) Secure computation environment
KR20210095727A (ko) 메모리 디바이스에서 물리적 복제 불가능한 기능
JP2019122030A (ja) コード署名の条件付き規定に基づくセキュアクライアント認証
US20130117808A1 (en) Apparatus and method for enhancing security in heterogeneous computing environment
US8732843B2 (en) Software validity period changing apparatus, method, and installation package
WO2014183643A1 (zh) 具有安全启动功能的芯片的校验方法及校验装置
JP2022527904A (ja) 無線更新の有効性確認
CN110263532B (zh) 可信计算方法、设备及***
KR102089435B1 (ko) 안전한 usb 장치를 보장하는 부트 방법
US11811948B2 (en) Flexible security enclave for protecting data at rest and in motion
WO2022019910A1 (en) Read protection for uefi variables
CN112639783A (zh) 同时的镜像测量和执行

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210916

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220727

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220831

R150 Certificate of patent or registration of utility model

Ref document number: 7134818

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150