(57)【要約】      （修正有）【課題】コンピューティングシステム上の組み込みデバイスにおけるファームウェアアップデートの信頼性を向上させるシステム及びその方法を提供する。【解決手段】ストレージデバイス２０８で組み込みデバイスから格納されている公開鍵２２０を受信し、ファームウェアの転送前に、コントローラ２１６及びストレージデバイス２０８上の秘密鍵２１８を用いて受信した公開鍵２２０を検証し、正当な公開鍵であることを確認する。また、ストレージデバイス２０８においてファームウエアのハッシュを秘密鍵２１８で署名し、組み込みデバイス２０２で公開鍵２２０を使用して署名を検証し、検証が成功すると、ストレージデバイス２０８から組み込みデバイス２０２にファームウェアをコピーする。【選択図】図２
2019071053.tif 000002
【特許請求の範囲】
【請求項１】
公開鍵が格納されている組み込みデバイスに対するファームウェアをアップデートする方法であって、
前記組み込みデバイスと、コントローラ、メモリ、及びストレージデバイスでのみアクセスされる前記組み込みデバイスの製造業者に関連する秘密鍵を有する前記ストレージデバイスの間の接続を開始することと、
前記組み込みデバイスで、前記ストレージデバイス上の前記組み込みデバイスに対するファームウェアのアップデートを検出することと、
前記ストレージデバイスの前記コントローラで、前記格納されている公開鍵を前記組み込みデバイスから受信することと、
前記ストレージデバイスのコントローラ及び前記ストレージデバイス上の前記秘密鍵を用いて前記格納されている公開鍵を検証することと、
前記ストレージデバイスのコントローラを用いて、前記ストレージデバイスのメモリから前記ファームウェアのアップデートを読み込むことと、
前記格納されている公開鍵が検証されると、前記組み込みデバイス上で前記ファームウェアをアップデートすることとを含む、前記方法。
【請求項２】
前記ストレージデバイスが外部大容量ストレージデバイスである、請求項１に記載の方法。
【請求項３】
前記秘密鍵が、前記外部大容量ストレージデバイスに焼き付けられている、請求項２に記載の方法。
【請求項４】
前記秘密鍵が前記外部大容量ストレージデバイス内のワンタイムプログラマブル領域の中にプログラム化される、請求項２に記載の方法。
【請求項５】
ストレージデバイスが組み込みマルチメディアコントローラメモリコントローラである、請求項１に記載の方法。
【請求項６】
前記秘密鍵が、前記組み込みマルチメディアコントローラメモリコントローラに焼き付けられている、請求項５に記載の方法。
【請求項７】
前記秘密鍵が、前記組み込みマルチメディアコントローラメモリコントローラ内のワンタイムプログラマブル領域の中にプログラム化される、請求項５に記載の方法。
【請求項８】
ファームウェアをアップデートするシステムであって、
コンピューティングシステムと、
前記コンピューティングシステム上の少なくとも１つの組み込みデバイスであって、ファームウェア、プロセッサ、メモリ、及び前記少なくとも１つの組み込みデバイスの前記メモリに格納されている公開鍵を有する前記組み込みデバイスと、
ストレージデバイス上の前記組み込みデバイスの製造業者に関連し前記ストレージデバイスでのみアクセスされる秘密鍵を有する前記ストレージデバイスであって、コントローラを有する前記ストレージデバイスと、
前記ストレージデバイスのメモリに格納されており、前記少なくとも１つの組み込みデバイスによって前記ファームウェアのアップデートが検出され、前記ストレージデバイスの前記コントローラでチェックサムが生成され、前記ストレージデバイス上の前記秘密鍵を用いて前記ストレージデバイスで前記チェックサムに署名され、前記組み込みデバイスで前記署名済みチェックサムが検証され、前記署名済みチェックサムが検証されると前記組み込みデバイスに対するファームウェアのアップデートが行われる際、前記少なくとも１つの組み込みデバイスに転送される前記ファームウェアのアップデートとを備える、前記システム。
【請求項９】
前記ストレージデバイスが外部大容量ストレージデバイスである、請求項８に記載のシステム。
【請求項１０】
前記秘密鍵が前記外部大容量ストレージデバイスに焼き付けられている、請求項９に記載のシステム。
【請求項１１】
前記秘密鍵が、前記外部大容量ストレージデバイス内のワンタイムプログラマブル領域の中にプログラム化される、請求項９に記載のシステム。
【請求項１２】
前記外部大容量ストレージデバイスが、前記秘密鍵を含む別のハードウェアセキュリティモジュールをさらに備える、請求項９に記載のシステム。
【請求項１３】
前記ストレージデバイスが、組み込みマルチメディアコントローラメモリコントローラをさらに備える、請求項８に記載のシステム。
【請求項１４】
前記秘密鍵が前記組み込みマルチメディアコントローラメモリコントローラに焼き付けられている、請求項１３に記載のシステム。
【請求項１５】
前記秘密鍵が、前記組み込みマルチメディアコントローラメモリコントローラ内のワンタイムプログラマブル領域の中にプログラム化される、請求項１３に記載のシステム。
【請求項１６】
前記組み込みマルチメディアコントローラメモリコントローラが、前記秘密鍵を含む別のハードウェアセキュリティモジュールをさらに備える、請求項１３に記載のシステム。
【請求項１７】
前記ストレージデバイスが、モノのインターネットのデバイスに、組み込みマルチメディアコントローラをさらに備える、請求項１３に記載のシステム。
【請求項１８】
ストレージデバイスから組み込みデバイスに転送されるファイルのバリデーションチェックの方法であり、
前記ストレージデバイス上のコントローラを用いて、転送される前記ファイルを読み込むステップと、
前記ストレージデバイスで、前記組み込みデバイス上に格納されている公開鍵を受信するステップと、
前記ファイルの転送前に、前記格納されている公開鍵を、前記ストレージデバイス上の前記コントローラ及び前記ストレージデバイス上でのみアクセスされる秘密鍵を用いて検証するステップと、
前記格納されている公開鍵が検証されると、前記ファイルを前記ストレージデバイスから前記組み込みデバイスに転送するステップとを含む、前記方法。
【請求項１９】
前記ストレージデバイスが外部大容量ストレージデバイスであり、前記外部大容量ストレージデバイス上の前記秘密鍵が、前記外部大容量ストレージデバイスに焼き付けられる、前記外部大容量ストレージデバイスのワンタイムプログラマブル領域の中にプログラム化される、または、前記外部大容量ストレージデバイス上の別のハードウェアセキュリティモジュールに包含される、請求項１８に記載の方法。
【請求項２０】
前記ストレージデバイスが組み込みマルチメディアコントローラメモリであり、前記組み込みマルチメディアコントローラメモリ上の前記秘密鍵が、前記組み込みマルチメディアコントローラメモリコントローラに焼き付けられる、前記組み込みマルチメディアコントローラメモリコントローラのワンタイムプログラマブル領域の中にプログラム化される、または、前記組み込みマルチメディアコントローラメモリコントローラ上の別のハードウェアセキュリティモジュールに包含される、請求項１８に記載の方法。
【請求項２１】
組み込みシステムに適用されるファイルのバリデーションチェックの方法であって、
前記組み込みシステム上のｅＭＭＣメモリコントローラを用いて、適用される前記ファイルを読み込むステップと、
前記ｅＭＭＣメモリコントローラで、前記組み込みシステム上に格納されている公開鍵を受信するステップと、
前記ファイルの適用前に、前記ｅＭＭＣメモリコントローラ、及び前記ｅＭＭＣメモリコントローラ上でのみアクセスされる秘密鍵を用いて、前記格納されている公開鍵を検証するステップと、
前記格納されている公開鍵が検証されると、前記ファイルを前記ｅＭＭＣメモリコントローラから前記組み込みシステムに転送するステップとを含む、前記方法。
【請求項２２】
前記ｅＭＭＣメモリコントローラ上の前記秘密鍵が、前記ｅＭＭＣメモリコントローラ上に焼き付けられる、前記ｅＭＭＣメモリコントローラのワンタイムプログラマブル領域の中にプログラム化される、または、前記ｅＭＭＣメモリコントローラの別のハードウェアセキュリティモジュール上に包含される、請求項２１に記載の方法。
【請求項２３】
前記組み込みシステムが、モノのインターネットのデバイスの一部である、請求項２２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の主題は、コンピューティングシステムの組み込みデバイスでのファームウェアのアップデートのシステム及び方法を対象とする。
【背景技術】
【０００２】
コンピューティングシステムの組み込みデバイスは、消費者市場、自動車市場、ヘルスケア市場及び産業市場において広範な用途を有する。組み込みデバイスは、通常、特殊目的のコンピューティングシステム内に含まれる。組み込みデバイスの多くは、システムを制御するためのファームウェアに依存する。多くの場合、ファームウェアによって制御されるデバイスの機能性は、ファームウェアに対するアップデートを必要とする。例えば、オペレーティングシステムとの互換性を維持するために、新規の機能性を追加するために、不具合を修正するために、またはセキュリティ上の理由のためである。ファームウェアのアップデートは、通常、大容量ストレージデバイスに格納され、組み込みデバイスと大容量ストレージデバイスの間で必要な前提条件が満たされると組み込みデバイスに転送される。現在は、大容量ストレージデバイスから組み込みデバイスに対してファームウェアのアップデートを行うとき、アップデートにかかる時間の約半分は、ハッシュ及び署名をチェックすることによりアップデートの信頼性及び整合性を検証するための情報の初期読込みから構成される。一致すると、アップデートを進めることが承認される。それ以外の場合、アップデートは拒絶される。
【０００３】
大容量ストレージデバイスから組み込みデバイスへファームウェアのアップデートを行う速度を加速させるシステム及び方法が必要とされる。
【発明の概要】
【課題を解決するための手段】
【０００４】
公開鍵が格納された組み込みデバイスに対してファームウェアをアップデートするシステム及び方法が提供される。方法は、組み込みデバイスとストレージデバイスの間の接続を開始する。ストレージデバイスは、コントローラ、メモリ、及び組み込みデバイスの製造業者に関連する秘密鍵を有する。組み込みデバイスで、ストレージデバイス上のファームウェアのアップデートが検出される。格納されている公開鍵が、ストレージデバイスのコントローラで組み込みデバイスから受信される。格納されている公開鍵は、コントローラ及びストレージデバイス上の組み込みデバイスの製造業者に関連する秘密鍵を用いて検証される。ファームウェアのアップデートが、ストレージデバイス上のコントローラを用いてストレージデバイスのメモリから読み込まれる。そして格納されている公開鍵が検証されると、ファームウェアは組み込みデバイス上でアップデートされる。
【０００５】
ストレージデバイス上の秘密鍵は、ストレージデバイス上に焼き付けられる。ストレージデバイスは外部大容量ストレージデバイスであってもよく、または、ストレージデバイスは組み込みマルチメディアコントローラメモリコントローラであってもよい。
本発明は、例えば、以下の項目を提供する。
（項目１）
公開鍵が格納されている組み込みデバイスに対するファームウェアをアップデートする方法であって、
前記組み込みデバイスと、コントローラ、メモリ、及びストレージデバイスでのみアクセスされる前記組み込みデバイスの製造業者に関連する秘密鍵を有する前記ストレージデバイスの間の接続を開始することと、
前記組み込みデバイスで、前記ストレージデバイス上の前記組み込みデバイスに対するファームウェアのアップデートを検出することと、
前記ストレージデバイスの前記コントローラで、前記格納されている公開鍵を前記組み込みデバイスから受信することと、
前記ストレージデバイスのコントローラ及び前記ストレージデバイス上の前記秘密鍵を用いて前記格納されている公開鍵を検証することと、
前記ストレージデバイスのコントローラを用いて、前記ストレージデバイスのメモリから前記ファームウェアのアップデートを読み込むことと、
前記格納されている公開鍵が検証されると、前記組み込みデバイス上で前記ファームウェアをアップデートすることとを含む、前記方法。
（項目２）
前記ストレージデバイスが外部大容量ストレージデバイスである、上記項目に記載の方法。
（項目３）
前記秘密鍵が、前記外部大容量ストレージデバイスに焼き付けられている、上記項目のいずれか一項に記載の方法。
（項目４）
前記秘密鍵が前記外部大容量ストレージデバイス内のワンタイムプログラマブル領域の中にプログラム化される、上記項目のいずれか一項に記載の方法。
（項目５）
ストレージデバイスが組み込みマルチメディアコントローラメモリコントローラである、上記項目のいずれか一項に記載の方法。
（項目６）
前記秘密鍵が、前記組み込みマルチメディアコントローラメモリコントローラに焼き付けられている、上記項目のいずれか一項に記載の方法。
（項目７）
前記秘密鍵が、前記組み込みマルチメディアコントローラメモリコントローラ内のワンタイムプログラマブル領域の中にプログラム化される、上記項目のいずれか一項に記載の方法。
（項目８）
ファームウェアをアップデートするシステムであって、
コンピューティングシステムと、
前記コンピューティングシステム上の少なくとも１つの組み込みデバイスであって、ファームウェア、プロセッサ、メモリ、及び前記少なくとも１つの組み込みデバイスの前記メモリに格納されている公開鍵を有する前記組み込みデバイスと、
ストレージデバイス上の前記組み込みデバイスの製造業者に関連し前記ストレージデバイスでのみアクセスされる秘密鍵を有する前記ストレージデバイスであって、コントローラを有する前記ストレージデバイスと、
前記ストレージデバイスのメモリに格納されており、前記少なくとも１つの組み込みデバイスによって前記ファームウェアのアップデートが検出され、前記ストレージデバイスの前記コントローラでチェックサムが生成され、前記ストレージデバイス上の前記秘密鍵を用いて前記ストレージデバイスで前記チェックサムに署名され、前記組み込みデバイスで前記署名済みチェックサムが検証され、前記署名済みチェックサムが検証されると前記組み込みデバイスに対するファームウェアのアップデートが行われる際、前記少なくとも１つの組み込みデバイスに転送される前記ファームウェアのアップデートとを備える、前記システム。
（項目９）
前記ストレージデバイスが外部大容量ストレージデバイスである、上記項目のいずれか一項に記載のシステム。
（項目１０）
前記秘密鍵が前記外部大容量ストレージデバイスに焼き付けられている、上記項目のいずれか一項に記載のシステム。
（項目１１）
前記秘密鍵が、前記外部大容量ストレージデバイス内のワンタイムプログラマブル領域の中にプログラム化される、上記項目のいずれか一項に記載のシステム。
（項目１２）
前記外部大容量ストレージデバイスが、前記秘密鍵を含む別のハードウェアセキュリティモジュールをさらに備える、上記項目のいずれか一項に記載のシステム。
（項目１３）
前記ストレージデバイスが、組み込みマルチメディアコントローラメモリコントローラをさらに備える、上記項目のいずれか一項に記載のシステム。
（項目１４）
前記秘密鍵が前記組み込みマルチメディアコントローラメモリコントローラに焼き付けられている、上記項目のいずれか一項に記載のシステム。
（項目１５）
前記秘密鍵が、前記組み込みマルチメディアコントローラメモリコントローラ内のワンタイムプログラマブル領域の中にプログラム化される、上記項目のいずれか一項に記載のシステム。
（項目１６）
前記組み込みマルチメディアコントローラメモリコントローラが、前記秘密鍵を含む別のハードウェアセキュリティモジュールをさらに備える、上記項目のいずれか一項に記載のシステム。
（項目１７）
前記ストレージデバイスが、モノのインターネットのデバイスに、組み込みマルチメディアコントローラをさらに備える、上記項目のいずれか一項に記載のシステム。
（項目１８）
ストレージデバイスから組み込みデバイスに転送されるファイルのバリデーションチェックの方法であり、
前記ストレージデバイス上のコントローラを用いて、転送される前記ファイルを読み込むステップと、
前記ストレージデバイスで、前記組み込みデバイス上に格納されている公開鍵を受信するステップと、
前記ファイルの転送前に、前記格納されている公開鍵を、前記ストレージデバイス上の前記コントローラ及び前記ストレージデバイス上でのみアクセスされる秘密鍵を用いて検証するステップと、
前記格納されている公開鍵が検証されると、前記ファイルを前記ストレージデバイスから前記組み込みデバイスに転送するステップとを含む、前記方法。
（項目１９）
前記ストレージデバイスが外部大容量ストレージデバイスであり、前記外部大容量ストレージデバイス上の前記秘密鍵が、前記外部大容量ストレージデバイスに焼き付けられる、前記外部大容量ストレージデバイスのワンタイムプログラマブル領域の中にプログラム化される、または、前記外部大容量ストレージデバイス上の別のハードウェアセキュリティモジュールに包含される、上記項目のいずれか一項に記載の方法。
（項目２０）
前記ストレージデバイスが組み込みマルチメディアコントローラメモリであり、前記組み込みマルチメディアコントローラメモリ上の前記秘密鍵が、前記組み込みマルチメディアコントローラメモリコントローラに焼き付けられる、前記組み込みマルチメディアコントローラメモリコントローラのワンタイムプログラマブル領域の中にプログラム化される、または、前記組み込みマルチメディアコントローラメモリコントローラ上の別のハードウェアセキュリティモジュールに包含される、上記項目のいずれか一項に記載の方法。
（項目２１）
組み込みシステムに適用されるファイルのバリデーションチェックの方法であって、
前記組み込みシステム上のｅＭＭＣメモリコントローラを用いて、適用される前記ファイルを読み込むステップと、
前記ｅＭＭＣメモリコントローラで、前記組み込みシステム上に格納されている公開鍵を受信するステップと、
前記ファイルの適用前に、前記ｅＭＭＣメモリコントローラ、及び前記ｅＭＭＣメモリコントローラ上でのみアクセスされる秘密鍵を用いて、前記格納されている公開鍵を検証するステップと、
前記格納されている公開鍵が検証されると、前記ファイルを前記ｅＭＭＣメモリコントローラから前記組み込みシステムに転送するステップとを含む、前記方法。
（項目２２）
前記ｅＭＭＣメモリコントローラ上の前記秘密鍵が、前記ｅＭＭＣメモリコントローラ上に焼き付けられる、前記ｅＭＭＣメモリコントローラのワンタイムプログラマブル領域の中にプログラム化される、または、前記ｅＭＭＣメモリコントローラの別のハードウェアセキュリティモジュール上に包含される、上記項目のいずれか一項に記載の方法。
（項目２３）
前記組み込みシステムが、モノのインターネットのデバイスの一部である、上記項目のいずれか一項に記載の方法。
（摘要）
ストレージデバイスから組み込みデバイスに転送されるファイルのバリデーションチェックの方法であって、ストレージデバイス上のコントローラを用いて、転送されるファイルを読み込むことと、ストレージデバイスで組み込みデバイスから格納されている公開鍵を受信することと、ファイルの転送前に、コントローラ及びストレージデバイス上の秘密鍵を用いて、格納されている公開鍵を検証することと、格納されている公開鍵が検証されると、ストレージデバイスから組み込みデバイスにファイルを転送することとを含む方法が提供される。コントローラを有するストレージデバイスは、外部大容量ストレージデバイスであってもよくまたはｅＭＭＣメモリコントローラであってもよい。
【図面の簡単な説明】
【０００６】
【図１】車両上のインフォテインメントユニットとして示されるコンピューティングシステムと大容量ストレージデバイスを受けるＵＳＢポートとを含むアップデートシナリオのブロック図である。
【図２】大容量ストレージデバイスと通信する少なくとも１つの組み込みデバイスを有するコンピューティングシステムのブロック図である。
【図３】大容量ストレージデバイスを用いてファームウェアをアップデートする方法のフローチャートである。
【０００７】
図における要素及びステップは、簡潔性及び明瞭性のために例示されるものであり、任意の特定の順序にしたがっているとして必ずしも表されていない。例えば、同時にまたは異なる順序で行われ得るステップが、発明の主題の実施形態の理解の向上を助けるために図に例示される。
【発明を実施するための形態】
【０００８】
発明の主題の様々な態様が特定の例示的な実施形態を参照して記載されるが、発明の主題はそうした実施形態に限定されておらず、さらなる修正、適用及び実施形態が発明の主題から逸脱することなく実装され得る。図において、同様の参照番号は、同じ構成要素を示すのに用いられる。当業者は、本明細書中に記載された様々な構成要素は発明の主題の範囲と異なることなく変更され得ることを認識するであろう。
【０００９】
図１は、ナビゲーションデバイス、マルチメディアデバイス、インフォテインメントユニット、パーソナルコンピュータ、タブレット、スマートフォン、または消費者電子デバイスで用いられる他のコンピューティングシステムといったコンピューティングシステム１０２を含むアップデートシナリオ１００のブロック図である。図１に示すコンピューティングシステム１０２は、車両用インフォテインメントユニットであり、単に例示目的で示されている。コンピューティングシステム１０２に対する、ＵＳＢポート１０４といった、大容量ストレージデバイス（図１に示さず）をコンピューティングシステム１０２に接続する手段１０４も図１に示される。ＵＳＢポートが示されるが、やはりこれも単に例示目的である。コンピューティングデバイスと大容量ストレージデバイスを接続するバスを提供する他の例として、以下に限定するものではないが、ＳＡＴＡ、Ｗｉ−Ｆｉ、ｌｉｇｈｔｎｉｎｇ、Ｅｔｈｅｒｎｅｔ（登録商標）、ＵＦＳ、５Ｇなども含まれる。コンピューティングシステム１０２は、専用オペレーティングシステム、複数のソフトウェアプログラム、及び／または、グラフィックス、音声、ワイヤレスネットワーキング、イネーブリングアプリケーション、車両構成要素の統合ハードウェア、システム、ならびにスマートフォン、タブレット及びナビゲーションシステムなどが例として挙げられる外部デバイスといったインターフェース用プラットフォームを用いて動作し得る１つまたは複数の組み込みデバイス（図示せず）を有する。組み込みデバイスにおけるファームウェアに対するアップデートは、最適なパフォーマンスを確保するためにほとんどの場合必要である。
【００１０】
ここで図２を参照すると、図１に示すコンピューティングシステムの組み込みデバイス２０２及びストレージデバイス２０８のブロック図２００が示される。ストレージデバイス２０８は、通信バス２１０を通じてコンピューティングシステム１０２に接続するためのＵＳＢポートによって受けられ得る。図２に示す例では、ストレージデバイスは、ＵＳＢドライブなどの外部大容量ストレージデバイスである。しかしながら、ストレージデバイスは、ホストに対して内部的なストレージデバイス、例えば、組み込みマルチメディアカード（ｅＭＭＣ）、またはＳＳＤカードなどの他のソリッドステートストレージデバイスであり得る可能性がある。
【００１１】
組み込みデバイス２０２の任意の１つまたは複数は、種々のプログラミング言語及び／または技術を用いて作成されたコンピュータプログラムからコンパイルまたは解釈され得るコンピュータ実行可能命令を含むコンピューティングデバイスなどの処理ユニット２０６を含む。一般に、プロセッサ（マイクロプロセッサなど）は、例えばメモリ２１２、コンピュータ可読媒体などから命令を受信し、命令を実行する。処理ユニット２０６は、ソフトウェアプログラムの命令を実行可能な非一時的なコンピュータ可読ストレージ媒体を含む。コンピュータ可読ストレージ媒体は、以下に限定されるものではないが、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁気ストレージデバイス、半導体ストレージデバイスまたはそれらの任意の適切な組み合わせであってもよい。コンピューティングシステム及びその組み込みシステムの任意の１つまたは複数はファームウェアに依存し、このファームウェアは、オペレーティングシステムとの互換性、改良及びさらなる機能性、セキュリティのアップデートなどを確保するために時々のアップデートを必要とし得る。組み込みデバイス２０２は、検証目的で、１つまたは複数の公開鍵２２０を保持する。
【００１２】
ストレージデバイス２０８は、ファームウェアのアップデートを格納し、ファームウェアのアップデートがコンピューティングシステム１０２及び／または組み込みデバイス２０２に通信されるべきときにアクセスされる。ストレージデバイス２０８は、メモリチップ２１４及びコントローラ２１６を含む。ストレージデバイスのコントローラ２１６は、種々のプログラミング言語及び／または技術を用いて作成されたコンピュータプログラムからコンパイルまたは解釈され得るコンピュータ実行可能命令を含むプロセッサを有する。一般に、プロセッサ（マイクロプロセッサなど）は、例えばメモリ、コンピュータ可読媒体などから命令を受信し、命令を実行する。プロセッサは、ＲＯＭ及びＲＡＭを含む、ソフトウェアプログラムの命令を実行可能な非一時なコンピュータ可読ストレージ媒体を含む。ストレージデバイス２０８は、組み込みシステム上のファームウェアに対するアップデートを送信するために組み込みシステムへの接続を容易にするコネクタ、例えばＵＳＢコネクタを含む。
【００１３】
ストレージデバイス２０８は、製造業者の秘密鍵２１８を保持する。秘密鍵２１８は、ストレージデバイス２０８のシリコン内に物理的に組み込まれる、焼き付けられる、または焼かれる。例えば、秘密鍵が組立ての際に焼かれ／プログラム化され決して修正することはできない、集積回路またはＳｏＣの内部のワンタイムプログラマブル（ＯＴＰ）領域を用いる。代替として、ストレージデバイス上の、製造業者の秘密鍵を含む別のハードウェアセキュリティモジュール（ＨＳＭ）が用いられ得、読み込みバイトは、署名を生成するために、ストレージデバイス上のメモリからストレージデバイス上のＨＳＭに渡され得る。製造業者の秘密鍵２１８は、ストレージデバイス２０８でのみアクセスされ得る。製造業者の秘密鍵２１８は、例えばホストにまたはホストのリクエストで、読み出されることまたは送信されることはできない。秘密鍵２１８は、ストレージデバイスのコントローラ２１６によってのみアクセスされて、ファイルまたはメモリ領域のチェックサム及び公開鍵／証明書を用いて組み込みデバイスによって検証される署名済みチェックサムを生成する。
【００１４】
図３は、ストレージデバイスを用いて組み込みデバイス上のファームウェアに対してユーザによって開始されたアップデートを行う方法３００のフローチャートである。ストレージデバイスは、組み込みデバイス上のファームウェアに対するアップデートを含む。組み込みデバイスは、図３を参照して「ホスト」と称される。アップデートは、ユーザによって開始される３０２。例えば、ユーザは、ストレージデバイスを、ＵＳＢポートなどの外部的に利用可能なバスを通して組み込みデバイスに接続することによってアップデートを開始し得る。デバイスの列挙とも称される、ＵＳＢデバイスに対するドライバの検出、識別及びロードのプロセスが、ストレージデバイスとホストの間で行われる。ホストは、ストレージデバイス上の利用可能なアップデートのクエリを行って３０４、検出する３０６。ホストは、ストレージデバイスからの信頼できるチェックサムをリクエストする３０８。
【００１５】
続く数ステップは、ストレージデバイス上で実行される。通常ストレージデバイスから組み込みデバイスに対するファームウェアのアップデートを行うとき、アップデートにかかる時間の最大５０％は、ハッシュ及び署名をチェックすることによってアップデートの信頼性及び整合性を検証するのに費やされる。この読込みのすべてが、ストレージデバイスの制限された実効転送速度により、アップデートに対してボトルネックを生じさせる。ストレージデバイスの転送速度は通常３０ＭＢ／秒である。しかしながら、ストレージデバイス上のｅＭＭＣチップは、２７０ＭＢ／秒といった大幅に速い転送速度が可能であるチップを含む。したがって、ストレージデバイスのコントローラ上で読み込み、ハッシング及びチェックサムの署名を行うことによって、大幅に速いアップデートが実現され得る。結果として、アップデートにかかる時間の大きな部分、４０％程度が解消され得る。ストレージデバイスは、パーティションのチェックサムを生成し３１０、組み込まれている製造業者の秘密鍵を用いてチェックサムに署名する３１２。組み込みデバイスは組み込みデバイス上に製造業者からの信頼できる公開鍵を有し（図２、２０２を参照）、ストレージデバイスは、組み込みデバイスの製造業者に関連する秘密鍵を有するので、ストレージデバイスによって生成されたハッシュが認証済みのまたは既知のソースからのものであると自動的に検証され、ソース（すなわち大容量ストレージデバイス）を信頼することができる。
【００１６】
ストレージデバイスは、ホストに、署名済みチェックサムを戻す３１４。ホストは、チェックサムを読み込み３１６、署名済みチェックサムを、ホストに既に格納されている製造業者の公開鍵に対して検証する３１８。検証が成功すると、次いで、ファームウェアのアップデートがホスト上にコピーされる３２０。
【００１７】
発明の主題は、チェックをストレージデバイスのコントローラ（図２の２１６を参照）上で行うことによって、加速及び認証チェックを可能にする。秘密鍵はストレージデバイス上に焼き付けられているので、ハッシュへの署名はストレージデバイス上で行われ、結果のみがホストすなわち組み込みデバイスに転送される。また、ストレージデバイス上で読み込みを行うことによって、チェックは、より遅い外部インターフェースを通して組み込みデバイス上にデータをコピーする場合よりも大幅に速くなる。
【００１８】
本明細書中の記載はストレージデバイスを対象とするが、ハッシング及び署名は内部組み込みマルチメディアカード（ｅＭＭＣ）にも適用され得る。ｅＭＭＣは通常ホスト上にあるが、秘密鍵はｅＭＭＣでアクセスされ、秘密鍵を読み出すことまたは送信することは同じくできない。ハッシングは加速され、セキュアブートに対するさらなるセキュリティが提供される。また、処理及びハッシュ計算がホストからオフロードされ得る。さらに、発明の主題は、ダウンロードされたファームウェアのアップデートに加え内部ストレージ上のファイルの整合性をチェックするのに用いられ得る。例えば、ファームウェア無線配信（ＦＯＴＡ）のアップデート、または、Ｇｏｏｇｌｅ  ＰｌａｙあるいはＡｐｐｌｅのＡｐｐｌｅｓｔｏｒｅなどのソースからのアプリケーションは、ｅＭＭＣにインストールされる前に、それらが整合し認証済みであることを確かなものとするために検証され得る。家庭電気製品または任意の組み込みシステムといったモノのインターネット（ＩｏＴ）のデバイスにおいて、内部ｅＭＭＣメモリコントローラは利用され得る。内部ハッシング速度はより速く、より安全となろう。
【００１９】
前述の明細書において、発明の主題は、具体的な例示的な実施形態を参照して記載されてきた。様々な修正及び変更が、特許請求の範囲に記載された発明の主題の範囲から逸脱せずにではあるが、なされ得る。明細書及び図は限定的というより例示的であり、修正は発明の主題の範囲内に含まれることが意図される。したがって、発明の主題の範囲は、単に記載された例によってではなく、特許請求の範囲及びそれらの法的均等物によって決定付けられるべきである。
【００２０】
例えば、任意の方法またはプロセスクレームに列挙されたステップは、任意の順序で実行され得、特許請求の範囲に提示された特定の順序に限定されるものではない。さらに、任意の装置クレームに列挙された構成要素及び／または要素は組み合わされ得、または、様々な順列で動作可能に構成され得、したがって特許請求の範囲に列挙された具体的な構成に限定されるものではない。
【００２１】
利益、他の利点及び問題に対する解決策が特定の実施形態に関して上述されてきたが、いずれの利益、利点、問題に対する解決策も、または、任意の特定の利益、利点あるいは解決策を生じさせ得るあるいはより明白にし得るいずれの要素も、特許請求の範囲の一部または全部の重要な、必須のまたは不可欠な特徴または構成要素として解釈されない。
【００２２】
用語「ｃｏｍｐｒｉｓｅ（含む）」、「ｃｏｍｐｒｉｓｅｓ（含む）」、「ｃｏｍｐｒｉｓｉｎｇ（含む）」、「ｈａｖｉｎｇ（含む）」、「ｉｎｃｌｕｄｉｎｇ（含む）」、「ｉｎｃｌｕｄｅｓ（含む）」またはその任意の変形は、要素のリストを備えるプロセス、方法、物品、構成または装置が列挙された要素のみを含むものではなく、明確にリスト化されていないまたはそうしたプロセス、方法、物品、構成あるいは装置に固有の他の要素も含み得るような、非排他的な包含を指すことが意図される。発明の主題を実施する際に用いられる上述した構造、構成、用途、割合、要素、材料または構成要素の他の組み合わせ及び／または修正、加えて具体的に列挙されていないものは、その一般原則から逸脱せずに、変更され得、または、具体的な環境、製造仕様、設計パラメータあるいは他の動作要件に特に適合され得る。
【図１】
2019071053.tif 000003
【図２】
2019071053.tif 000004
【図３】
2019071053.tif 000005