JP7364674B2 - 安全な無線ファームウェアアップグレード - Google Patents

安全な無線ファームウェアアップグレード Download PDF

Info

Publication number
JP7364674B2
JP7364674B2 JP2021525584A JP2021525584A JP7364674B2 JP 7364674 B2 JP7364674 B2 JP 7364674B2 JP 2021525584 A JP2021525584 A JP 2021525584A JP 2021525584 A JP2021525584 A JP 2021525584A JP 7364674 B2 JP7364674 B2 JP 7364674B2
Authority
JP
Japan
Prior art keywords
firmware
key
embedded device
encrypted
server
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
JP2021525584A
Other languages
English (en)
Other versions
JP2022507151A (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 JP2022507151A publication Critical patent/JP2022507151A/ja
Application granted granted Critical
Publication of JP7364674B2 publication Critical patent/JP7364674B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/0435Network 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 symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • 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

Description

関連アプリケーションの相互参照
この出願は、2018年11月12日に出願された「安全な無線ファームウェアアップグレード」という表題の米国特許出願第16/186,868号の優先権及び利益を主張し、その全体が参照により本明細書に組み込まれる。
この明細書は、組み込み機器のファームウェアをアップグレードするための安全な無線通信のためのシステム、デバイス及び/又は方法に関する。
組み込み機器は、機能の強化、問題の解決及び/又はファームウェアの更新のために、ファームウェアをアップグレードする必要がある。これらの組み込み機器は、ファームウェアアップグレードを受信するための物理インタフェースを有しないワイヤレス組み込み機器である可能性があり、したがって、ワイヤレス組み込み機器は、ワイヤレスリンク又は無線を介してファームウェアアップグレードを受信する必要がある。さらに、これらの組み込み機器は、ファームウェアアップグレードを提供するサービスプロバイダとの継続接続又は常時接続がない場合もあり、したがって、組み込み機器は、ファームウェアの更新を調整する方法でサービスプロバイダのサーバと対話して合意に達する必要がある場合がある。
ファームウェアアップグレードが無線で送信されるとき、パッケージはセキュリティの脆弱性の影響を受けやすくなる。例えば、悪意のある当事者が無線通信を盗聴する又はターゲットデバイスになりすますことによってファームウェアアップグレードにアクセスする可能性がある。他の例では、アクティブな攻撃者がファームウェアアップグレードの変更バージョンを作成し、変更バージョンのファームウェアアップグレードをターゲットデバイスに送信する可能性がある。
したがって、ファームウェアアップグレードへの不正アクセスを防止するのと同時にファームウェアアップグレードのインテグリティ及びソースを検証及び認証するシステム、方法及び/又はデバイスが必要である。
一般的には、本明細書に記載されている主題の一態様は、ファームウェアアップグレードをワイヤレス又は無線で安全に提供するためのデバイス、システム及び/又は装置において具体化されている。システムは、ファームウェアアップグレードを受信するように構成された組み込み機器を有する。システムは、第1の鍵暗号化鍵、ファームウェアアップグレード及びファームウェア鍵を格納するように構成されたメモリを有し、メモリに結合されたプロセッサを有するサーバを有する。プロセッサは、ファームウェアアップグレード、ファームウェア鍵及び第1の鍵暗号化鍵を取得するように構成されている。プロセッサは、ファームウェア鍵を使用してファームウェアアップグレードを暗号化するように構成されている。プロセッサは、ファームウェア鍵を第1の鍵暗号化鍵で暗号化し、暗号化されたファームウェアアップグレード及び暗号化されたファームウェア鍵を組み込み機器に送信するように構成されている。
これらの実施形態及び他の実施形態は、任意選択で、以下の特徴のうちの一つ以上を有してもよい。メモリは、サーバの秘密鍵を格納するように更に構成されてもよい。プロセッサは、暗号化されたファームウェアアップグレード及び暗号化されたファームウェア鍵を組み込み機器に送信する前に、暗号化されたファームウェアアップグレード及び暗号化されたファームウェア鍵にデジタル署名するように更に構成されてもよい。
システムは、コントローラデバイスを有してもよい。コントローラデバイスは、一つ以上の鍵暗号化鍵又はサーバ公開証明書を格納するように構成してもよいメモリを有してもよい。コントローラデバイスは、一つ以上の鍵暗号化鍵を使用してサーバとの接続を確立するように構成してもよいプロセッサを有してもよい。プロセッサは、暗号化されたファームウェアアップグレード及び暗号化されたファームウェア鍵を取得するように構成されてもよく、サーバの公開証明書を使用してデジタル署名を検証してもよい。プロセッサは、一つ以上の鍵暗号化鍵を使用して組み込み機器との接続を確立するように構成されてもよく、暗号化されたファームウェアアップグレード及び暗号化されたファームウェア鍵を組み込み機器に提供してもよい。
サーバのプロセッサは、ファームウェア配信要求を受信するように構成されてもよい。ファームウェア配信要求は、ファームウェアアップグレードの配信モードを有してもよい。配信の異なるモードは、サーバと組み込み機器との間に直接チャネルを確立する第1のモード、オフラインコントローラを介してサーバと組み込み機器との間に間接チャネルを確立する第2のモード及びオンラインコントローラを介してサーバと組み込み機器の間に間接チャネルを確立する第3のモードを有してもよい。
第1の鍵暗号化鍵はセッション鍵であってもよい。ファームウェア鍵は、第3モードのときにセッション鍵を使用して事前暗号化してもよい、又は、第2モードのときに以前のファームウェアバージョン内で難読化されてもよい一般組み込み機器鍵を使用して事前暗号化してもよい。
組み込み機器は、メモリを有してもよい。メモリは、ファームウェア及び第1の鍵暗号化鍵を格納するように構成してもよい。組み込み機器は、メモリに結合されたプロセッサを有してもよい。プロセッサは、暗号化されたファームウェアアップグレード及び暗号化されたファームウェア鍵を格納するように構成されてもよい。プロセッサは、第1の鍵暗号化鍵を使用して、暗号化されたファームウェア鍵を復号化するように構成されてもよい。プロセッサは、ファームウェア鍵を使用して、暗号化されたファームウェアアップグレードを復号化するように構成されてもよい。プロセッサは、ファームウェアアップグレードを使用してファームウェアを更新するように構成されてもよい。
他の態様では、主題は、ファームウェアアップグレードの安全な配信のためのシステムにおいて具体化される。システムは、ファームウェアアップグレードを受信するように構成された組み込み機器を有する。システムは、セッション鍵、ファームウェアアップグレード及びファームウェア鍵を格納するように構成されたメモリを有するサーバを有する。システムは、メモリに結合されたプロセッサを有する。プロセッサは、ファームウェア鍵を使用してファームウェアアップグレードを暗号化するとともにセッション鍵を使用してファームウェア鍵を暗号化するように構成されている。プロセッサは、暗号化されたファームウェアアップグレード及び暗号化されたファームウェア鍵を安全なチャネルを介して組み込み機器に送信するように構成されている。
他の態様では、主題は、ファームウェアの安全な配信のための方法において具体化される。方法は、ファームウェア鍵を使用してファームウェアアップグレードを暗号化することを有する。方法は、セッション鍵を使用してファームウェア鍵を暗号化することを有する。方法は、組み込み機器が第1のモード、第2のモード又は第3のモードにあることを判断することを有する。方法は、ファームウェアアップグレード及び暗号化されたファームウェア鍵を、組み込み機器が第1のモードにあるときに組み込み機器に送信するとともに組み込み機器が第2のモード又は第3のモードにあるときにコントローラデバイスに送信することを有する。
本発明の他のシステム、方法、特徴及び利点は、以下の図面及び詳細な説明を検討することにより、当業者に明らかになる又は明らかになるであろう。そのようなすべての追加のシステム、方法、特徴及び利点は、本明細書に含まれ、本発明の範囲内にあり、添付する特許請求の範囲によって保護されることが意図される。図面に示されている構成部品は、必ずしも一定の縮尺である必要はなく、本発明の重要な特徴を更によく説明するために誇張されている場合がある。図面において、同様の参照番号は、互いに異なる図の全体に亘って同様の部品を示す。
本発明の一態様による、組み込み機器のファームウェアのようなソフトウェアをアップグレードする無線(OTA)アップグレードシステムの例示的なブロック図を示す。 本発明の一態様による、組み込み機器へのファームウェアアップグレードを安全に提供するために図1のOTAアップグレードシステムのサーバ上に実装された例示的なプロセスの流れ図である。 本発明の一態様による、ファームウェアアップグレードを安全に取得及び配信するために図1のOTAアップグレードシステムの組み込み機器上に実装された例示的なプロセスの流れ図である。 本発明の一態様による、ファームウェアアップグレードを安全に取得及び復号化するために図1のOTAアップグレードシステムのコントローラ上に実装された例示的なプロセスの流れ図である。 本発明の一態様による、図1のOTAシステムが直接モードであるときの暗号化されたファームウェアアップグレード及び/又はファームウェア鍵の例を示す。 本発明の一態様による、図1のOTAシステムが間接オフラインモード又は間接オンラインモードであるときの暗号化されたファームウェアアップグレード及び/又はファームウェア鍵の例を示す。
サービスプロバイダのサーバ又は他のコンピューティングデバイスから組み込み機器へのファームウェアアップグレードの無線配信を保護するためのシステム、デバイス及び方法をここに開示する。組み込み機器は、ファームウェアアップグレード又は他のソフトウェアのアップグレードを取得するために、無線又はワイヤレス通信に依存してもよいスマートデバイス又は他の組み込み機器であってもよい。組み込み機器は、ファームウェア又は他のソフトウェアアップグレードを受信又は取得するための物理インタフェースを有しても有しなくてもよく、したがって、ファームウェアアップグレードを無線で送受信する必要がある場合がある。
安全な無線アップグレードシステム(「OTAアップグレードシステム」)は、サーバ及び組み込み機器を有する。サービスプロバイダのコンピューティングデバイスのようなサーバは、スマートウェアラブルデバイス、モノのインターネット(IoT)デバイス、医療機器又は他の組み込み機器のような組み込み機器に、組み込み機器上のソフトウェアを更新するために使用してもよいファームウェアアップグレードのようなソフトウェアパッケージを提供する。OTAアップグレードシステムは、オフライン機能を提供する及び/又はソフトウェアパッケージを一つ以上の組み込み機器に配信するための更なる可動性(mobility)及び/又は適応性(flexibility)を提供するようにサーバと組み込み機器との間をインタフェースで接続するためにコントローラデバイス(「コントローラ」)を利用してもよい。
他の利益及び利点は、OTAアップグレードシステムがサーバ、組み込み機器及び/又はコントローラの間に安全な通信チャネルを確立できることを有する。安全な通信チャネルは、転送前、転送後及び転送中にソフトウェアパッケージを保護するために暗号化、認証、署名及び/又は他のセキュリティ対策(security mechanism)を利用する。例えば、ソフトウェアパッケージは、無線での転送中のソフトウェアパッケージの機密性を保護するために暗号化されてもよい。他の例では、ソフトウェアパッケージは、輸送中のソフトウェアパッケージの変更を防止するとともにソフトウェアパッケージのソースを認証するために署名されてもよい。複数の暗号化アルゴリズム及び/又は鍵を、ソフトウェアパッケージ及び転送中にソフトウェアパッケージの配布に必要な鍵の両方を保護するために使用してもよい。これにより、OTAアップグレードシステムは、検証済み及び認証済みの機密ソフトウェアパッケージを組み込み機器に無線で提供することができる。
図1は、組み込み機器104のファームウェアのようなソフトウェアをサーバ102からアップグレードするOTAアップグレードシステム100のブロック図を示す。以下、組み込み機器上のファームウェアをアップグレード又は更新するファームウェアアップグレードについて言及するとしても、OTAアップグレードシステム100は、組み込み機器104のアプリケーション、オペレーティングシステム又は任意の低レベルソフトウェアを含む他のソフトウェアのような任意のタイプのソフトウェアを同様の方法でアップグレードしてもよい。
OTAアップグレードシステム100は、組み込み機器104及びサーバ102を有する。OTAアップグレードシステム100は、組み込み機器104とサーバ102の間の仲介物であるコントローラデバイス(「コントローラ」)106を有してもよい。組み込み機器104は、ウェアラブルであってもウェアラブルなくてもよいスマートデバイス、医療機器、デジタル時計若しくはオーディオプレーヤーのようなポータブルデバイス、ルータ、スマートフォン、工場用若しくは産業用コントローラ又は他の専用コンピュータ若しくはプロセッサであってもよい。いくつかの実装形態では、OTAアップグレードシステム100は、汎用コンピュータに接続され、ソフトウェアアップグレードを汎用コンピュータに提供してもよい。
組み込み機器104は、プロセッサ108及びメモリ110を有してもよい。プロセッサ108は、単一のプロセッサ又は複数のプロセッサであってもよい。プロセッサ108は、一つ以上のコンポーネントからデータを受信し、受信又は決定したデータに基づいて一つ以上のコンポーネントの動作を制御してもよい。例えば、プロセッサ108は、サーバ102からのファームウェアアップグレードを復号化してもよい、ファームウェアアップグレードを検証及び認証してもよい、及び/又は、ファームウェアアップグレードで組み込み機器104のファームウェアを更新してもよい。
プロセッサ108をメモリ110に結合してもよい。メモリ110は、プロセッサ108上で実行するための命令を格納してもよく、一つ以上のランダムアクセスメモリ(RAM)又は他の揮発性若しくは不揮発性メモリを有してもよい。メモリ110は、ハードディスクドライブ、ソリッドステートディスクドライブ、ハイブリッドディスクドライブ又は他の適切なデータストレージのような非一時的メモリ又はデータストレージデバイスであってもよく、プロセッサ108によってロード及び実行してもよい機械可読命令を更に格納してもよい。メモリ110は、クラウド-組み込み機器鍵のような暗号化及び/又は復号化に使用される一つ以上の鍵、及び/又は、署名検証に使用されるサーバ公開証明書のような一つ以上の証明書を格納してもよい。
組み込み機器104は、物理的インタフェースを有さないことがあるので、組み込み機器104は、ネットワークアクセスインタフェース112を有してもよい。ネットワークアクセスインタフェース112は、一つ以上のWi-Fi(登録商標)ユニット、ブルートゥース(登録商標)ユニット、無線周波数識別(RFID)タグ若しくはリーダー又は(3G、4G、5Gのような)セルラーネットワークにアクセスするためのセルラーネットワークユニットのような通信ポート又はチャネルを有してもよい。ネットワークアクセスインタフェース112は、直接接続されていないデバイスとシステムの間でデータを送受信してもよい。組み込み機器104は、例えば、ネットワーク138を介してサーバ102及び/又はコントローラ106に接続するためにネットワークアクセスインタフェース112を使用してもよい。
ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、セルラーネットワーク、インターネット又はその組合せのようなネットワーク138は、無線又はワイヤレスファームウェアのアップデートを受信するために組み込み機器104をサーバ102に接続する。例えば、組み込み機器104を、サーバ102内のデータベースからアップデートにアクセス及びダウンロードするためにサーバ102に結合してもよい。いくつかの実装形態では、サーバ102は、アップデートを組み込み機器104に転送する。
組み込み機器104は、サーバ102に結合してもよい。サーバは、ファイルへのアクセス又は周辺機器の共有のようなサービスをネットワーク内の他のコンピュータに提供するために使用されるネットワーク内のコンピュータであってもよい。サーバ102は、組み込み機器104にファームウェアアップグレードを提供するサービスプロバイダあってもよい。サーバ102は、プロセッサ114、メモリ116及びネットワークアクセスデバイス118を有する。プロセッサ114は、同様のコンポーネント及び/又は機能を有してもよいが、組み込み機器104のプロセッサ108よりも多くのリソースを有する。プロセッサ114は、パッケージ及び/又はメッセージを暗号化、復号化及び/又は署名するために、クラウド-組み込み機器鍵及び/又はクラウド-コントローラデバイス鍵のような一つ以上の鍵、及び/又は、サーバ秘密鍵のような一つ以上の証明書を使用してもよい。
プロセッサ114をメモリ116に結合してもよい。メモリ116は、同様のコンポーネント及び/又は機能を有してもよいが、メモリ110よりも多くのリソースを有する。 メモリ116は、例えば、クラウド-組み込み機器鍵及び/又はクラウド-コントローラデバイス鍵のような一つ以上の鍵、及び/又は、一つ以上の証明書を格納してもよい。
メモリ116は、データベースを格納してもよい。データベースは、例えば、コンピュータによる検査及び検索のために構成された情報のコレクションであり、データベースは、テーブル、スキーマ、クエリ、レポート又は他のデータ構造で構成されてもよい。データベースは、任意の数のデータベース管理システムを使用してもよい。情報は、リアルタイム情報、定期的に更新される情報又はユーザが入力した情報を有してもよい。例えば、データベースは、様々な組み込み機器の様々なファームウェアアップグレードの複数のバージョンを格納してもよい。データベースは、様々なファームウェアアップグレードを暗号化/復号化するために及び/又は様々な組み込み機器と安全に通信するために使用される一つ以上の鍵及び/又は一つ以上の証明書を格納してもよい。
サーバ102は、ネットワークアクセスデバイス118を有する。ネットワークアクセスデバイス118は、サーバ102、組み込み機器104及び/又はコントローラ106の間で送信及び/又は受信を行うようにネットワーク138にアクセスするために、組み込み機器104のネットワークアクセスインタフェース112と同様の構成要素及び/又は機能を有する。
サーバ102は、ユーザインタフェース120を有してもよい。ユーザインタフェース120は、ユーザインタフェース要素、ボタン、ダイヤル、マイクロフォン、キーボード又はタッチスクリーンのようなユーザ入力を受信することができる入力/出力デバイス122及びディスプレイ、スピーカー又は再生可能な点字ディスプレイのような出力が可能な任意のデバイスを有してもよい。ユーザインタフェース120は、例えば、ファームウェアアップグレード、一つ以上の鍵及び/又は一つ以上の証明書を含むユーザ入力を受け取ってもよい。他の例では、ユーザインタフェース120は、バージョン番号のようなファームウェアアップグレードを補足するための追加情報及び/又は一つ以上の不変の識別子のような一つ以上の証明書を補足するための追加情報を受信してもよい。
OTAアップグレードシステム100は、コントローラ106を有してもよい。コントローラ106は、組み込み機器104とサーバ102の間にオンラインインタフェース又はオフラインインタフェースを提供してもよい。コントローラ106がオンラインインタフェースを提供するとき、サーバ102及び組み込み機器104は、ネットワーク138を使用してコントローラ106を介して接続を確立し、三つのデバイスの全てが同時に接続される。サーバ102は、確立された接続を通じてコントローラ106を介して組み込み機器104にファームウェアアップグレードを提供する。コントローラ106が組み込み機器104とサーバ102の間にオフラインインタフェースを提供するとき、サーバ102は、コントローラ106が組み込み機器104に接続するときとは別個にかつ異なるようにコントローラ106に接続する。サーバ102は、転送中に組み込み機器104に接続されていないコントローラ106にファームウェアアップグレードを提供する。その後、コントローラ106は、接続を確立し、組み込み機器104にファームウェアアップグレードを提供する。
コントローラ106は、プロセッサ124及びメモリ126を有する。プロセッサ124は、プロセッサ108,114と同様の構成要素及び/又は機能を有してもよい。メモリ126は、メモリ110,116と同様の構成要素及び/又は機能を有してもよい。いくつかの実装形態では、メモリ126は、暗号化されたメモリであってもよい。コントローラ106は、ユーザインタフェース128及び/又はネットワークアクセスデバイス130を有してもよい。ユーザインタフェース128及び/又はネットワークアクセスデバイス130はそれぞれ、ユーザインタフェース120及び/又はネットワークアクセスデバイス118又はネットワークアクセスインタフェース112と同様の構成要素及び/又は機能を有する。
コントローラ106は、信頼できる実行環境(「信頼できる環境」)134及び/又は信頼できない実行環境(「信頼できない環境」)136を有してもよい。信頼できる環境134内のコンポーネントは、信頼できない環境136内の他のコンポーネントから論理的及び/又は物理的に分離及び/又はサンドボックス(sandboxed)されている。信頼できる環境134は、別個の及び/又は異なるオペレーティングシステムを実行するとともに信頼できない環境136とは異なるリソースを有してもよい。信頼できる環境134及び信頼できない環境136は、例えば、互いに異なるプロセッサを有してもよい。
コントローラ106は、セキュアエレメント132を有してもよい。セキュアエレメント132は、鍵生成、鍵記憶及び/又は他の暗号化機能を提供してもよい。いくつかの実装形態では、セキュアエレメント132は、コントローラ106に含まれる、コントローラ106の中に埋め込まれる又はコントローラ106に挿入される。セキュアエレメント132は、別個のハードウェアトークン若しくはデバイス又は証明書、鍵若しくは他の認証若しくは識別情報データを安全に格納する集積回路及び/又はメモリのようなセキュアエレメントチップであってもよい。コントローラ106は、サーバ102及び/又は組み込み機器104との安全な接続のペアリング又は確立及び/又はコントローラ106がオフラインであるときのファームウェアアップグレードの格納のような安全な機能を実行するために、セキュアエレメント132及び/又は信頼できる環境134を利用してもよい。
プロセッサ124、メモリ126、ユーザインタフェース128又はネットワークアクセスデバイス130のようなコントローラ106の構成要素のいずれか、全て又は一部は、信頼できる実行環境134、セキュアエレメント132及び/又は信頼できない実行環境136内にあってもよい。
図2は、組み込み機器104にファームウェアアップグレードを安全に提供するためにサーバ102上に実装されたプロセス200の流れ図である。適切にプログラムされた、図1のOTAアップグレードシステム100の一つ以上のコンピュータ又はデータ処理装置、例えば、サーバ102のプロセッサ114は、ファームウェアアップグレードを組み込み機器104に供給、送信又は伝送することができる。
サーバ102は、一つ以上のファームウェアアップグレード、一つ以上の鍵、一つ以上の不変の識別子及び/又は一つ以上の証明書を取得してもよい(202)。サーバ102は、一つ以上のファームウェアアップグレード、一つ以上の鍵、一つ以上の不変の識別子及び/又は一つ以上の証明書をユーザから取得してもよい。OTAアップグレードシステム100の管理者は、一つ以上のファームウェアアップグレード、一つ以上の鍵、一つ以上の不変の識別子及び/又は一つ以上の証明書を、ユーザインタフェース120を介してサーバ012に供給してもよい。サーバ102は、後にコントローラ106又は組み込み機器104に供給又は配信するために一つ以上のファームウェアアップグレード、一つ以上の鍵、一つ以上の不変識別子及び/又は一つ以上のコレ証明書(kore certificates)をメモリ116に格納してもよい。
一つ以上のファームウェアアップグレードは、バージョン番号及び/又は組み込み機器の関連付けを有してもよい。バージョン番号は、サービスプロバイダがファームウェアアップグレードをリリースした日付及び/又はファームウェアアップグレードのバージョンに関連する変更のような情報を提供するバージョン管理番号であってもよい。組み込み機器の関連付けは、ファームウェアアップグレードが更新する組み込み機器の型又はカテゴリーごとの一意の識別子であってもよい。
一つ以上の鍵は、一つ以上のファームウェア鍵及び/又は一つ以上の鍵暗号化鍵(KEK)を有してもよい。一つ以上の鍵をランダムに生成してもよい。サーバ102は、ファームウェアアップグレードを組み込み機器104に配信する前、ファームウェアアップグレードを組み込み機器104に配信した後及び/又はファームウェアアップグレードを組み込み機器104に配信する配信する間にファームウェアアップグレードを暗号化/復号化するために、一つ以上のファームウェア鍵を使用してもよい。サーバは、一つ以上のファームウェア鍵を組み込み機器104に配信する前、一つ以上のファームウェア鍵を組み込み機器104に配信した後及び/又は一つ以上のファームウェア鍵を組み込み機器104に配信する間に一つ以上のファームウェア鍵を暗号化/復号化するために、一つ以上のKEKを使用してもよい。
一つ以上の証明書は、一つ以上のデバイス証明書を有してもよい。一つ以上のデバイス証明書は、サーバ秘密鍵のような秘密鍵証明書及び/又はサーバ公開鍵のような公開デバイス証明書を有してもよい。サーバ102は、組み込み機器104に配信する前にファームウェアアップグレード及び/又はファームウェア鍵にデジタル署名するためにプライベート証明書を使用してもよい。組み込み機器104は、デジタル署名を検証するために公開証明書を使用してもよい。プライベート証明書/パブリック証明書を使用すると、署名されたコンテンツが転送中に変更されていないことが保証される、すなわち、デジタル署名は、署名されたコンテンツのインテグリティを保護する及び/又は署名されたコンテンツのソースを識別する。さらに、一つ以上の証明書は、証明書にバインドされている一つ以上の不変の識別子を有してもよい。これは、署名されたコンテンツのソースの追加認証を提供する。
一つ以上の不変の識別子は、デバイス証明書にバインドされるとともに関連付けられてもよい国際携帯機器識別(IMEI)番号、電話番号、ブルートゥース(登録商標)ローエナジー(BLE)メディアアクセス制御(MAC)アドレス、TrustZone(登録商標)識別子(ID)又は他のデバイス識別子を有してもよい。一つ以上の不変の識別子は、不変である及び/又は変えられない組み込み機器104の特定の識別子であってもよい。
サーバ102は、ファームウェアバージョン番号及び関連する有効期限のリストに署名するとともに当該リストをコントローラ106又は組み込み機器104に送信してもよい(203)。ファームウェアのバージョン番号及び関連する有効期限のリストを、ファームウェアのバージョンの有効期限が切れるとき及び/又はファームウェアアップグレードが必要になるときを確認するために使用してもよい。
サーバ102は、配信モード要求を取得してもよい又はファームウェアアップグレード内から配信モードを取得してもよい(204)。配信モード要求は、特定のモードを使用してファームウェアアップグレードを配信するための組み込み機器104からの要求である。配信モード要求は、ファームウェアアップグレードの配信の特定の実装及び方法を有してもよい。いくつかの実装形態では、ファームウェアアップグレードは、実装及び配信の方法を指定し、サーバ102は、ファームウェアアップグレードから配信モードを抽出する。
配信モード要求は、一つ以上の配信モードを識別してもよい。もう一つのモードは、直接クラウド-組み込み機器モード(「直接モード」)、間接オフラインクラウド-コントローラ-組み込み機器モード(「間接オフラインモード」)及び/又は間接クラウド-コントローラ-組み込み機器モード(「間接オンラインモード」)を有してもよい。直接モードでは、サーバ102は、サーバ102と組み込み機器104の間に直接チャネルを確立する。間接オフラインモードでは、サーバ102は、オフラインコントローラ106を介してサーバ102と組み込み機器104の間に間接チャネルを確立する。間接オンラインモードでは、サーバ102は、オンラインコントローラ106を介してサーバ102と組み込み機器104の間に間接チャネルを確立する。
サーバ102は、サーバ102及び組み込み機器104がペアリングされた後及び/又はサーバ102と組み込み機器104との間に安全な通信チャネルを確立した後、組み込み機器104から配信モード要求を取得してもよい。いくつかの実装形態では、サーバ102は、第1のファームウェアアップグレードが組み込み機器104に無事に配信されるまで初期化されるとともに直接モードにデフォルトしてもよい。例えば、組み込み機器104は、最初のファームウェアアップグレードが直接モードを介して配信されることを要求するように予め構成されてもよい。
サーバ102は、ファームウェアアップグレードを暗号化してもよい(206)。サーバ102は、ファームウェア鍵を使用してファームウェアアップグレードを暗号化してもよい。ファームウェア鍵は、各組み込み機器104の各ファームウェアアップグレード又はファームウェアの各バージョンの一意の鍵であってもよい。したがって、組み込み機器104は、サーバ102からファームウェア鍵を取得する前にファームウェア鍵を有さなくてもよく、したがって、ファームウェアアップグレードが意図しない他の組み込み機器に伝送される場合、意図しない他の組み込み機器は、ファームウェアアップグレードを復号化することができない。すなわち、他のデバイスが、暗号化されたファームウェアアップグレードにアクセスできる場合でも、他のデバイスは、ファームウェアアップグレードを復号化することができず、ファームウェアアップグレードにアクセスすることができない。
サーバ102は、ファームウェアアップグレードの配信のために、配信モードが直接モード、間接オンラインモード又は間接オフラインモードのいずれであるかを判断してもよい(208)。直接モード及び間接オンラインモードは、オンライン配信モードである。オンライン配信モードは、ファームウェアアップグレードの配信前、ファームウェアアップグレードの配信後及び/又はファームウェアアップグレードの配信中にサーバ102が直接的な又はコントローラ106を介して間接的なサーバ102と組み込み機器104の間の継続接続を維持することを必要とする。一方、間接オフライン配信モードは、サーバ102がファームウェアアップグレードをコントローラ106に格納した後に組み込み機器104に配信することを可能にするオフライン配信モードである。
サーバ102は、ファームウェアアップグレードの特定の実装及び配信方法、例えば、配信モード要求で指定された又はファームウェアアップグレードで指定された一つ以上の配信モードに基づいて、配信モードを決定してもよい。サーバ102は、配信モード要求から一つ以上の配信モードを抽出するとともに配信モードを決定してもよい。配信モード要求に含まれるモードを、配信モードを示すフラグ、ビット又は他のインジケータとして表してもよい。
サーバ102が、モードが間接オンラインモードであると判断した場合、サーバ102は、第1の鍵暗号化鍵を使用してファームウェア鍵を事前暗号化してもよい(210)。第1の鍵暗号化鍵は、クラウド-組み込み機器セッション鍵であってもよい。ファームウェア鍵をクラウド-組み込み機器セッション鍵で暗号化することにより、サーバ102は、コントローラ106がファームウェア鍵にアクセスするのを防止し、これによって、ファームウェアアップグレードの機密性を保護する。その理由は、コントローラがクラウド-組み込み機器セッション鍵にアクセスできないからである。さらに、クラウド-組み込み機器セッション鍵は、各組み込み機器及び/又は組み込み機器の各型に固有の一意の鍵であってもよいので、サーバ102は、他の意図しない組み込み機器又は意図しない型の組み込み機器がファームウェア鍵にアクセスするのを防止することができる。その理由は、これらの他の組み込み機器が特定のクラウド-組み込み機器セッション鍵を有しないからである。
サーバ102が、モードが間接オフラインモードであると判断した場合、サーバ102は、第2の鍵暗号化鍵を使用してファームウェア鍵を事前暗号化してもよい(212)。第2の鍵暗号化鍵は、一般組み込み機器鍵(general embedded device key)であってもよい。一般組み込み機器鍵は、以前のファームウェアバージョンのファームウェアコード内で難読化されてもよい。元のファームウェアバージョン又は初期のファームウェアバージョンは、製造中及び/又はプロビジョニング中に含まれるファームウェアコードを有してもよい。例えば、ファームウェア鍵に関連付けられているファームウェアアップグレードがバージョン2.0である場合、以前のバージョンのファームウェア、例えば、バージョン1.0は、現在のファームウェアアップグレードバージョン2.0に関連付けられている一般組み込み機器鍵を有してもよい。配信されるファームウェアアップグレードの現在のバージョンは、次のファームウェアアップグレード用の一般組み込み機器鍵を有してもよい。例えば、ファームウェアアップグレードバージョン2.0は、ファームウェアアップグレードバージョン3.0の一般組み込み機器鍵を有してもよい。
ファームウェア鍵を一般組み込み機器鍵で暗号化することにより、サーバ102は、コントローラ106がファームウェア鍵にアクセスするのを防止し、これによって、ファームウェアアップグレードの機密性を保護する。その理由は、コントローラ106が一般組み込み機器鍵にアクセスできないからである。しかしながら、一般組み込み機器鍵は、以前のファームウェアバージョンを利用する全ての組み込み機器のファームウェアコード内で難読化されてもよく、各組み込み機器に固有ではなくてもよい。しかしながら、コントローラ106はファームウェア鍵にアクセスできないので、組み込み機器104がファームウェアアップグレードを要求するまでファームウェアアップグレードをコントローラ106に格納するとともにコントローラ106と連動して移送してもよい。
いくつかの実装形態では、ファームウェア鍵を、クラウド-組み込み機器セッション鍵又は間接オンラインモード若しくは間接オフラインモードの一般組み込み機器鍵をそれぞれ使用して、サーバ102以外の別のエンティティによって事前暗号化され、単に取得するとともにサーバ102内に格納する。
サーバ102が、モードが間接オンラインモード又は間接オフラインモードであると判断するとき、サーバ102は、事前暗号化されたファームウェア鍵を、クラウド-コントローラデバイスセッション鍵のような第3の鍵暗号化鍵で暗号化する(214)。これは、後に一つ以上の組み込み機器に配布するためにコントローラ106に転送する間のファームウェア鍵を保護する。いくつかの実装形態では、サーバ102は、追加のセキュリティのために、暗号化されたファームウェアアップグレードを第3の鍵暗号化鍵で暗号化してもよい。
サーバ102が、モードが直接モードであると判断する場合、サーバ102がファームウェア鍵を事前に暗号化する必要がない。その理由は、ファームウェアアップグレードがコントローラ106又は他のデバイスを横断することなくサーバ102がファームウェアアップグレードを組み込み機器104に直接配信又は提供するからである。代わりに、サーバ102は、クラウド-組み込み機器セッション鍵のような第4の鍵暗号化鍵でファームウェア鍵を暗号化する(216)。クラウド-組み込み機器セッション鍵は、サーバ102及び組み込み機器104にのみに既知であってもよく、事前共有されていてもよい。 ファームウェア鍵をクラウド-組み込み機器セッション鍵で暗号化することにより、他のデバイスがファームウェア鍵及びファームウェアアップグレードにアクセスできなくなるようにしてもよい。いくつかの実装形態では、サーバ102は、暗号化されたファームウェアアップグレードを第4の鍵暗号化鍵で暗号化してもよい。
サーバ102は、ファームウェアアップグレード及び/又はファームウェア鍵を送信、伝送又は他の方法で供給する前に、ファームウェアアップグレード及び/又はファームウェア鍵に署名してもよい(218)。サーバ102は、以前に暗号化された可能性のあるファームウェアアップグレード及び/又はファームウェア鍵を組み合わせて単一のデータパッケージにしてもよい。いくつかの実装形態では、サーバ102は、傍受を更に困難にするために、ファームウェアアップグレード及びファームウェア鍵の配信を別個のパッケージ配信として保持する。サーバ102は、メモリ116からサーバ秘密鍵を取得し、ファームウェアアップグレード及び/又はファームウェア鍵にデジタル署名するためにサーバ秘密鍵を使用してもよい。サーバ102は、一つ以上のファームウェアアップグレード、ファームウェアアップグレード鍵、ファームウェアアップグレードバージョン番号及び/又は組み込み機器識別子の連結の暗号化ハッシュ関数出力にデジタル署名してもよい。サーバ102がファームウェアアップグレード及び/又はファームウェア鍵に署名するとき、サーバ102は、サーバ102がファームウェアアップグレード及び/又はファームウェア鍵を送信するときにサーバ公開鍵を有してもよい。ファームウェアアップグレード及び/又はファームウェア鍵にデジタル署名することにより、ファームウェアアップグレード及び/又はファームウェア鍵が変更されていないこと及びファームウェアアップグレード及び/又はファームウェア鍵の発信元がサーバ102であることを確実にするためにデジタル署名を検証してもよい。
サーバ102がファームウェア鍵及び/又はファームウェアアップグレードを暗号化した後、サーバ102は、コントローラ106又は組み込み機器104との接続を確立する(220)。サーバ102は、配信モードに基づいて、コントローラ106又は組み込み機器104との接続を確立する。モードが間接オフラインモード又は間接オンラインモードである場合、サーバ102は、コントローラ106との接続を確立する。サーバ102は、コントローラ106との安全な接続を確立するためにクラウド-コントローラデバイスセッション鍵を使用してもよい。モードが直接モードである場合、サーバ102は、組み込み機器104との接続を確立する。サーバ102は、組み込み機器104との安全な接続を確立するためにクラウド-組み込み機器セッション鍵を使用してもよい。
サーバ102がコントローラ106又は組み込み機器104との接続を確立するとともにファームウェア鍵及びファームウェアアップグレードを暗号化すると、サーバ102は、暗号化されたファームウェア鍵及び暗号化されたファームウェアアップグレードをコントローラ106又は組み込み機器104に伝送、供給及び/又は送信する(222)。モードが間接オフラインモード又は間接オンラインモードである場合、サーバ102は、暗号化されたファームウェア鍵及び暗号化されたファームウェアアップグレードをコントローラ106に伝送、送信又は供給する。そして、モードが直接モードである場合、サーバ102は、暗号化されたファームウェア鍵及び暗号化されたファームウェアアップグレードを組み込み機器104に伝送、送信又は供給する。
図3は、ファームウェアアップグレードを安全に取得及び復号化するために組み込み機器104上に実装されたプロセス300の流れ図である。適切にプログラムされた、図1のOTAアップグレードシステム100の組み込み機器104の一つ以上のコンピュータ又はデータ処理装置、例えば、プロセッサ108は、ファームウェアアップグレードを取得及び復号化してもよい。
組み込み機器104は、ファームウェアアップグレードが必要であると判断してもよい(302)。組み込み機器104は、ファームウェアバージョン番号及び関連する有効期限のリストをコントローラ106及び/又はサーバ102から取得又は予め取得してもよく、ファームウェアバージョン番号のリスト上の署名を検証してもよく、バージョンの有効期限が切れているか否かを確かめるためにファームウェアバージョンをチェックしてもよい。一部の実装では、各ファームウェアバージョンは、バージョンの有効期限が切れたことを示す有効期限情報を有してもよい。組み込み機器104は、現在の日付がファームウェアの有効期限よりも古い場合にファームウェアが古くなっていると判断することができ、これは、新しいファームウェアアップグレードが必要であることを示す。
いくつかの実装形態では、組み込み機器104は、ファームウェアバージョンをサーバ102に伝送する。そして、それに応じて、組み込み機器104は、ファームウェアバージョンが古くなっている又は有効期限切れである及び/又は新しいファームウェアアップグレードが組み込み機器104に利用可能であることを示す指示をサーバ102から受信してもよい。ファームウェアのバージョンが古くなっている又は有効期限切である場合、組み込み機器は、通常の動作を停止してもよく、ファームウェアアップグレードが必要なセーフモードに入ってもよい。
組み込み機器104は、起動時にファームウェアアップグレードが必要であると判断してもよい。組み込み機器104は、現在の日付及び/又は時刻のタイムスタンプを要求及び取得し、タイムスタンプをファームウェアの有効期限と比較し、現在の日付及び/又は時刻が有効期限を超える場合、ファームウェアアップグレードが必要であると判断してもよい。例えば、組み込み機器は、コントローラ106又はサーバ102から署名されたタイムスタンプを受信してもよい、署名の有効性をチェックしてもよい、及び/又は、証明書及び/又はファームウェアバージョンのタイムスタンプ及び有効期限の日付及び/又は時間を使用して現在のファームウェアバージョンが期限切れになっていないことをチェックしてもよい。署名は、検証又は立証することができる、組み込み機器のID、コントローラのID及び組み込み機器からコントローラに送信されるランダムナンスのような他の識別子を有してもよい。署名は、コントローラの秘密鍵又はサーバの秘密鍵を使用する署名であってもよい。
いくつかの実装形態では、組み込み機器104は、最初の使用時に通常の動作を開始しなくてもよく、組み込み機器がファームウェアバージョン番号及びそれらの有効期限のリストを、例えば、コントローラ106から取得するまでファームウェアアップグレードをサーバ102のデジタル署名と共に要求してもよい。組み込み機器104は、最初の使用時に、組み込み機器のファームウェアバージョンをファームウェアバージョン番号のリストに含めること及び組み込み機器のファームウェアバージョンがサーバの公開鍵及び/又はコントローラの公開鍵を使用したデジタル署名の検証と共に有効期限切れにならないことを要求してもよい
組み込み機器104は、ファームウェアアップグレード及び/又はファームウェア鍵の配信モードを決定してもよい(304)。組み込み機器104は、最初に、例えば、工場で直接モードに設定してもよく、これは、初期ファームウェアアップグレード及び/又はファームウェア鍵を無線又はワイヤレスでダウンロードするためにサーバ102への直接接続を確立するとともに要求とする。組み込み機器104は、次のファームウェアアップグレードのために、間接オフラインモード及び/又は間接オンラインモードのような異なるモードに変更するための指示を受け取ってもよい。
組み込み機器104は、直接モード又は間接オンライン/オフラインモードのときにそれぞれ、クラウド-組み込み機器セッション鍵を使用してサーバ102との接続を確立する又はコントローラ-組み込み機器セッション鍵を使用してコントローラ106との接続を確立する。組み込み機器104は、直接的又は確立された接続を通じてコントローラ106を介して間接的にサーバ102への配信モードを含む配信モード要求を伝送又は供給する(306)。
組み込み機器104がファームウェアアップグレードを必要とすると判断した後、組み込み機器104は、暗号化されたファームウェアアップグレード及び/又は暗号化されたファームウェア鍵を取得してもよい(308)。組み込み機器104は、配信モードに基づいて、暗号化されたファームウェアアップグレード及び/又は暗号化されたファームウェア鍵を取得してもよい。組み込み機器104が直接モードに設定されている場合、組み込み機器104は、暗号化されたファームウェアアップグレード及び/又は暗号化されたファームウェア鍵をサーバ102から直接取得する。組み込み機器104が間接オフラインモード又は間接オンラインモードに設定されている場合、組み込み機器104は、暗号化されたファームウェアアップグレード及び/又は暗号化されたファームウェア鍵をコントローラ106から取得する。
いくつかの実装形態では、組み込み機器104は、サーバ公開鍵及び/又は公開鍵証明書を受信してもよい。いくつかの実装形態では、サーバ公開鍵及び/又は公開鍵証明書は、組み込み機器104内に事前に格納されている又は既に格納されている。例えば、サーバ公開鍵及び/又は公開鍵証明書は、組み込み機器104の製造、プロビジョニング及び/又は配布中に組み込み機器104内に事前にインストールされてもよい。
組み込み機器104は、暗号化されたファームウェアアップグレード及び/又は暗号化されたファームウェア鍵にデジタル署名するためにサーバ102が使用されたデジタル署名を検証してもよい(310)。組み込み機器104は、デジタル署名を検証するためにサーバ公開鍵を使用してもよい。デジタル署名を検証することにより、組み込み機器104は、ファームウェアアップグレード及び/又はファームウェア鍵に変更が加えらなかったことを検証する。さらに、組み込み機器104は、ファームウェアアップグレード及び/又はファームウェア鍵がサーバ102から到着したことを検証する。すなわち、デジタル署名は、ファームウェアアップグレード及び/又はファームウェア鍵の発信元及びインテグリティを認証する。
組み込み機器104は、一つ以上の不変の識別子を検証してもよい(312)。一つ以上の不変の識別子は、デジタル署名に関連付けられた公開鍵証明書内に含まれてもよい。例えば、組み込み機器104は、国際携帯機器識別(IMEI)番号、電話番号、ブルートゥース(登録商標)ローエナジー(BLE)メディアアクセス制御(MAC)アドレス、TrustZone(登録商標)識別子(ID)又は他のデバイス識別子のような組み込み機器104に関連付けられた一意の識別子を検証してもよい。組み込み機器104は、例えば、情報のデータベースと比較するために一つ以上の不変の識別子をサーバ102に伝送してもよい。
組み込み機器104は、配信モードに基づいて、第4の鍵暗号化鍵又は第5の鍵暗号化鍵を使用して、暗号化されたファームウェア鍵を復号化する(314)。組み込み機器104が間接オフラインモード又は間接オンラインモードである場合、組み込み機器104は、コントローラ-組み込み機器セッション鍵のような第5の鍵暗号化鍵を使用して、暗号化されたファームウェア鍵を復号化してもよい。組み込み機器104が直接モードである場合、組み込み機器104は、クラウド-組み込み機器セッション鍵のような第4の鍵暗号化鍵を使用して、暗号化されたファームウェア鍵を復号化してもよい。
組み込み機器104が間接オンラインモード又は間接オフラインモードであるとき、ファームウェア鍵がクラウド-組み込み機器セッション鍵のような第1の鍵暗号化鍵又はファームウェア内で難読化された一般組み込み機器鍵のような第2の鍵暗号化鍵を使用して事前に暗号化されている可能性があるので、組み込み機器104は、ファームウェア鍵を更に復号化してもよい。組み込み機器104は、組み込み機器が間接オンラインモード又は間接オフラインモードにあるときに第1の鍵暗号化鍵又は第2の鍵暗号化鍵をそれぞれ使用してファームウェア鍵を更に復号化してもよい。
ファームウェア鍵が復号化されると、組み込み機器104は、暗号化されたファームウェアアップグレードを復号化するためにファームウェア鍵を使用する(316)。いくつかの実装形態では、暗号化されたファームウェアアップグレードが第5の鍵暗号化鍵又は第4の鍵暗号化鍵で更に暗号化された場合、組み込み機器104は、ファームウェア鍵を使用してファームウェアアップグレードを復号化する前に、第5の鍵暗号化鍵又は第4の鍵暗号化鍵で暗号化されたファームウェアアップグレードを更に復号化してもよい。組み込み機器104は、ファームウェアアップグレードを使用してファームウェアの現在のバージョンを更新する(318)。例えば、組み込み機器104は、現在のファームウェアをファームウェアアップグレードで上書きしてもよい。
図4は、ファームウェアアップグレードを安全に取得及び復号化するためにコントローラ106に実装されたプロセス400の流れ図である。適切にプログラムされた、図1のOTAアップグレードシステム100のコントローラ106の一つ以上のコンピュータ又はデータ処理装置、例えば、プロセッサ124は、ファームウェアアップグレードを取得及び復号化してもよい。
コントローラ106は、暗号化されたファームウェアアップグレード及び暗号化されたファームウェア鍵を取得する(402)。コントローラ106は、組み込み機器104が間接オンラインモード又は間接オフラインモードに設定されているときに、暗号化されたファームウェアアップグレード及び暗号化されたファームウェア鍵を受信する。コントローラ106は、クラウド-コントローラデバイスセッション鍵を使用して、暗号化されたファームウェアアップグレードを、確立された接続を介して受信してもよい。
コントローラ106は、ファームウェアバージョン番号及び関連する有効期限のリストをサーバ102から取得してもよい(403)。コントローラ106は、後に組み込み機器104に供給するためにファームウェアバージョン番号及び関連する有効期限のリストを格納してもよい。いくつかの実装形態では、ファームウェアバージョン番号及び関連する有効期限のリストは、サーバ102によって署名されていてもよい、及び/又は、コントローラ106は、ファームウェアバージョン番号及び関連する有効期限のリストにデジタル署名してもよい。
コントローラ106は、サーバ公開鍵を格納及び/又は取得し、デジタル署名を検証するためにサーバ公開鍵を使用してもよい(404)。一つ以上の鍵を、例えば、セキュアエレメント132に格納してもよい。次に、組み込み機器104が間接オフラインモード又は間接オンラインモードに設定されている場合、コントローラ106は、クラウド-コントローラデバイスセッション鍵のような第3の鍵暗号化鍵を使用して、暗号化されたファームウェア鍵を復号化する(406)。ファームアップグレードが第3の鍵暗号化鍵で暗号化されている場合、コントローラ106は、第3の鍵暗号化鍵を使用してファームウェアアップグレードを復号化してもよい。
ファームウェア鍵が事前暗号化されたままであるので、コントローラ106は、ファームウェア鍵にアクセスできず、ファームウェア鍵がないと、コントローラ106は、ファームウェアアップグレードにアクセスすることができない。
第3の鍵暗号化鍵を使用してファームウェア鍵が復号化されると、コントローラ106は、暗号化されたファームウェアアップグレード及び事前暗号化されたファームウェア鍵をメモリ126及び/又はセキュアエレメント132内に格納してもよい(408)。したがって、例えば、組み込み機器104が間接オフラインモードであるときのように暗号化されたファームウェアアップグレード及び/又は事前暗号化されたファームウェア鍵を組み込み機器104に送信するために、コントローラ106を組み込み機器104に同時に接続する必要はない。
コントローラ106が、ファームウェアアップグレード及び/又はファームウェア鍵を組み込み機器104に送信又は供給する準備ができているとき、コントローラ106は、コントローラ-組み込み機器鍵のような第5の鍵暗号化鍵を使用して、事前暗号化されたファームウェア鍵を再暗号化する(410)。コントローラは、セキュリティを強化するために、暗号化されたファームウェアアップグレードを第5の鍵暗号化鍵で更に暗号化してもよいが、これは通常は必要でない。
コントローラ106は、コントローラ-組み込み機器セッション鍵を使用して接続を確立する(412)。コントローラ106は、コントローラ-組み込み機器セッションを使用して接続を確立してもよい。事前暗号化されたファームウェア鍵が再暗号化されると、コントローラ106は、暗号化されたファームウェアアップグレード及び暗号化されたファームウェア鍵を組み込み機器104に伝送、送信又は供給する(414)。コントローラ106は、組み込み機器104がネットワーク138上で利用可能になったときにファームウェアアップグレード及びファームウェア鍵を伝送してもよい。コントローラ106は、接続が確立されている間、ファームウェアバージョン番号及び関連する有効期限のリストを組み込み機器104に供給又は配信してもよい。
図5A及び図5Bは、図1のOTAシステムが互いに異なるモードであるときの暗号化されたファームウェアアップグレード及び/又は暗号化されたファームウェア鍵を示す。図5Aは、OTAシステム100が直接モードにあるときにファームウェア鍵504を使用して暗号化されたファームウェアアップグレード502を示す。さらに、ファームウェア鍵504は、直接モードでのクラウド-組み込み機器セッション鍵のような鍵暗号化鍵を使用して暗号化される。
図5Bは、ファームウェア鍵504及び事前暗号化されたファームウェア鍵504を使用して暗号化されたファームウェアアップグレード502を示す。ファームウェア鍵504は、OTAシステム100がそれぞれ間接オフラインモード又は間接オンラインモードにあるときにそれぞれ一般組み込み機器鍵又はクラウド-組み込み機器鍵を使用して事前暗号化されてもよい。次に、ファームウェア鍵504は、クラウド-コントローラデバイスセッション鍵又はコントローラ-組み込み機器セッション鍵のような他の鍵暗号化鍵を使用して更に暗号化される。
明細書及び特許請求の範囲を通じて使用される場合、「A又はBの少なくとも一つ」は、「A」のみ、「B」のみ又は「A及びB」を含む。方法/システムの例示的な実施形態を、例示的な様式で開示した。したがって、全体を通して使用される用語は、非限定的な方法で解釈する必要がある。当業者は、ここでの教示に対する僅かな修正を思い浮かべるが、ここで保証される特許の範囲内で限定されることを意図するものは理想的には貢献される技術の進歩の範囲内にあるそのような全ての実施形態であること及び添付した特許請求の範囲及びその等価物を除いて範囲が限定されないことを理解すべきである。
本明細書に開示される発明は以下を含む。
[態様1]
ファームウェアアップグレードを安全に無線で配信するためのシステムであって、
ファームウェアアップグレードを受信するように構成された組み込み機器と、
第1の鍵暗号化鍵、ファームウェアアップグレード及びファームウェア鍵を格納するように構成されたメモリを有するとともに前記メモリに結合されたプロセッサを有するサーバであって、前記プロセッサは、
前記ファームウェアアップグレード、前記ファームウェア鍵及び前記第1の鍵暗号化鍵を取得し、
前記ファームウェア鍵を使用して前記ファームウェアアップグレードを暗号化し、
前記第1の鍵暗号化鍵で前記ファームウェア鍵を暗号化し、
暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を組み込み機器に送信するように構成された、サーバと、
を備える、システム。
[態様2]
前記メモリは、サーバ秘密鍵を格納するように更に構成され、前記プロセッサは、
暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を前記組み込み機器に送信する前に、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵にデジタル署名するように更に構成された、態様1に記載のシステム。
[態様3]
一つ以上の鍵暗号化鍵又はサーバ公開証明書を格納するように構成されたメモリを有し、
一つ以上の鍵暗号化鍵を使用して前記サーバとの接続を確立し、
暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を取得し、
前記サーバ公開証明書を使用して前記デジタル署名を検証し、
前記一つ以上の鍵暗号化鍵を使用して前記組み込み機器との接続を確立し、
暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を前記組み込み機器に供給するように構成されたプロセッサを有するコントローラデバイスを更に備える、態様2に記載のシステム。
[態様4]
前記プロセッサは、
前記ファームウェアアップグレードの配信の複数のモードのうちの一つのモードを有するファームウェア配信要求を受信し、前記複数のモードは、前記サーバと前記組み込み機器の間の直接チャネルを確立する第1のモード、オフラインコントローラを介した前記サーバと前記組み込み機器の間の間接チャネルを確立する第2のモード及びオンラインコントローラを介した前記サーバと前記組み込み機器の間の間接チャネルを確立する第3のモードを有するように構成された、態様1に記載のシステム。
[態様5]
前記第1の鍵暗号化鍵は、セッション鍵である、態様4に記載のシステム。
[態様6]
前記ファームウェア鍵は、前記第3のモードにあるときに前記セッション鍵を使用して又は前記第2のモードにあるときに以前のファームウェアバージョン内で難読化された一般組み込み機器鍵を使用して事前暗号化される、態様5に記載のシステム。
[態様7]
前記組み込み機器は、ファームウェア及び前記第1の鍵暗号化鍵を格納するように構成されたメモリを有するとともに前記メモリに結合されたプロセッサを有し、前記プロセッサは、
暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を取得し、
前記第1の鍵暗号化鍵を使用して暗号化された前記ファームウェア鍵を復号化し、
前記ファームウェア鍵を使用して暗号化された前記ファームウェアアップグレードを復号化し、
前記ファームウェアアップグレードを使用して前記ファームウェアを更新するように構成された、態様1に記載のシステム。
[態様8]
ファームウェアアップグレードを安全に配信するためのシステムであって、
前記ファームウェアアップグレードを受信するように構成された組み込み機器と、
セッション鍵、ファームウェアアップグレード及びファームウェア鍵を格納するように構成されたメモリを有するとともに前記メモリに結合されたプロセッサを有するサーバであって、前記プロセッサは、
前記ファームウェア鍵を使用して前記ファームウェアアップグレードを暗号化し、
前記ファームウェア鍵を前記セッション鍵で暗号化し、
暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を安全なチャネルを介して前記組み込み機器に送信するように構成された、サーバと、
を備える、システム。
[態様9]
前記メモリは、サーバ秘密鍵を格納するように更に構成され、前記プロセッサは、
暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を前記組み込み機器に送信する前に、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵にデジタル署名するように更に構成された、態様8に記載のシステム。
[態様10]
前記組み込み機器は、ファームウェア及び前記セッション鍵を格納するように構成されたメモリを有するとともに前記メモリに結合されたプロセッサを有し、前記プロセッサは、
暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵の前記デジタル署名を確認し、
暗号化された前記ファームウェア鍵を復号化し、
前記ファームウェア鍵を使用して、暗号化された前記ファームウェアアップグレードを復号化し、
前記ファームウェアアップグレードを使用して前記ファームウェアを更新するように構成された、態様9に記載のシステム。
[態様11]
前記プロセッサは、
前記ファームウェアアップグレードの配信の複数のモードのうちの一つのモードを含むファームウェア配信要求を受信し、前記複数のモードは、前記サーバと組み込み機器の間の直接チャネルを確立する第1のモード、オフラインコントローラを介したサーバと組み込み機器の間の間接チャネルを確立する第2のモード及びオンラインコントローラを介したサーバと組み込み機器間の間接チャネルを確立する第3のモードを有するように構成された、態様10に記載のシステム。
[態様12]
前記ファームウェア鍵は、前記第2のモードにあるときに以前のファームウェアバージョン内で難読化された一般組み込み機器鍵を使用して事前暗号化される、態様11に記載のシステム。
[態様13]
前記セッション鍵又はサーバ公開証明書を含む一つ以上の鍵暗号化鍵を格納するように構成されたメモリを有し、
前記一つ以上の鍵暗号化鍵を使用して前記サーバとの接続を確立し、
暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を取得し、
前記サーバ公開証明書を使用して署名を検証し、
前記一つ以上の鍵暗号化鍵を使用して前記組み込み機器との接続を確立し、
暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を前記組み込み機器に供給するように構成されたプロセッサを有するコントローラデバイスを更に備える、態様11に記載のシステム。
[態様14]
前記プロセッサは、前記ファームウェアアップグレードを前記組み込み機器に送信する前に一つ以上の不変の識別子を検証するように更に構成された、態様8に記載のシステム。
[態様15]
ファームウェアを安全に配信するための方法であって、
サーバのプロセッサによって、ファームウェア鍵を使用してファームウェアアップグレードを暗号化することと、
前記サーバのプロセッサによって、セッション鍵を使用してファームウェア鍵を暗号化することと、
前記サーバのプロセッサによって、組み込み機器が第1のモード、第2のモード又は第3のモードにあることを判断することと、
前記サーバのプロセッサによって、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を、前記組み込み機器が第1のモードにあるときに前記組み込み機器に送信するとともに前記組み込み機器が第2のモード又は第3のモードにあるときにコントローラデバイスに送信することと、
を備える、方法。
[態様16]
前記組み込み機器のプロセッサによって、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を、前記組み込み機器が前記第1のモードにあるときに前記サーバから直接受信するとともに前記組み込み機器が前記第2のモード又は前記第3のモードにあるときに前記コントローラデバイスを介して前記サーバから受信することと、
前記組み込み機器のプロセッサによって、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を、前記セッション鍵及び前記ファームウェア鍵を使用してそれぞれ復号化することと、
を更に備える、態様15に記載の方法。
[態様17]
前記サーバのプロセッサによって、サーバ秘密鍵を使用して、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵にデジタル署名することを更に備える、態様16に記載の方法。
[態様18]
前記組み込み機器のプロセッサによって、ファームウェアバージョン番号及び有効期限のリストを取得することと、
前記組み込み機器のプロセッサによって、前記ファームウェアバージョン番号のリスト内の有効期限に対する前記組み込み機器のファームウェアの有効期限をチェックすることと、
前記組み込み機器のプロセッサによって、前記組み込み機器のファームウェアが期限切れになっていないことを判断することと、
を更に備える、態様15に記載の方法。
[態様19]
前記ファームウェア鍵は、前記第3のモードにあるときに前記セッション鍵を使用して事前暗号化される又は前記第2のモードにあるときに以前のファームウェアバージョン内で難読化された一般組み込み機器鍵を使用して事前暗号化される、態様15に記載の方法。
[態様20]
前記コントローラデバイスが、暗号化された前記ファームウェア鍵及び暗号化された前記ファームウェアアップグレードを受信するとともに前記第2のモードにあるときに、前記コントローラデバイスは、前記組み込み機器に接続されない、態様15に記載の方法。

Claims (20)

  1. ファームウェアアップグレードを安全に無線で配信するためのシステムであって、
    前記ファームウェアアップグレードを受信するように構成された組み込み機器と、
    第1の鍵暗号化鍵、前記ファームウェアアップグレード及びファームウェア鍵を格納するように構成されたメモリを有するとともに前記メモリに結合されたプロセッサを有するサーバであって、前記プロセッサは、
    前記ファームウェアアップグレード、前記ファームウェア鍵及び前記第1の鍵暗号化鍵を取得し、
    前記ファームウェアアップグレードの複数の配信モードのうちの一つの配信モードを有するファームウェア配信要求を取得し、
    前記ファームウェア鍵を使用して、前記ファームウェアアップグレードを暗号化し、
    前記第1の鍵暗号化鍵で前記ファームウェア鍵を暗号化し、
    前記配信モードに基づいて、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を前記組み込み機器に送信するように構成されたサーバと、
    を備える、システム。
  2. 前記メモリは、サーバ秘密鍵を格納するように更に構成され、前記プロセッサは、
    暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を前記組み込み機器に送信する前に、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵にデジタル署名するように更に構成された、請求項1に記載のシステム。
  3. 一つ以上の鍵暗号化鍵又はサーバ公開証明書を格納するように構成されたメモリを有するコントローラデバイスであって、
    前記一つ以上の鍵暗号化鍵を使用して前記サーバとの接続を確立し、
    暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を取得し、
    前記サーバ公開証明書を使用して、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵の前記デジタル署名を検証し、
    前記一つ以上の鍵暗号化鍵を使用して、前記組み込み機器との接続を確立し、
    暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を前記組み込み機器に供給するように構成された、前記メモリに結合されるとともに前記コントローラデバイスにある又はその内部にあるプロセッサを有する、コントローラデバイスを更に備える、請求項2に記載のシステム。
  4. 前記複数の配信モードは、前記サーバと前記組み込み機器の間の直接チャネルを確立する第1の配信モード、オフラインコントローラを介した前記サーバと前記組み込み機器の間の間接チャネルを確立する第2の配信モード及びオンラインコントローラを介した前記サーバと前記組み込み機器の間の間接チャネルを確立する第3の配信モードを有するように構成された、請求項1に記載のシステム。
  5. 前記第1の鍵暗号化鍵は、セッション鍵である、請求項4に記載のシステム。
  6. 前記ファームウェア鍵は、前記第3の配信モードに基づく暗号化された前記ファームウェア鍵の送信の際に第2のセッション鍵を使用して又は前記第2の配信モードに基づく暗号化された前記ファームウェア鍵の送信の際に以前のファームウェアバージョン内で難読化された一般組み込み機器鍵を使用して事前暗号化される、請求項5に記載のシステム。
  7. 前記組み込み機器は、ファームウェア及び前記第1の鍵暗号化鍵を格納するように構成されたメモリを有し、前記メモリに結合されるとともに前記組み込み機器にある又はその内部にあるプロセッサを有し、前記組み込み機器にある又はその内部にあるプロセッサは、
    暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を取得し、
    前記第1の鍵暗号化鍵を使用して、暗号化された前記ファームウェア鍵を復号化し、
    前記ファームウェア鍵を使用して、暗号化された前記ファームウェアアップグレードを復号化し、
    前記ファームウェアアップグレードを使用して、前記ファームウェアを更新するように構成された、請求項1に記載のシステム。
  8. ファームウェアアップグレードを安全に配信するためのシステムであって、
    前記ファームウェアアップグレードを受信するように構成された組み込み機器と、
    セッション鍵、前記ファームウェアアップグレード及びファームウェア鍵を格納するように構成されたメモリを有するとともに前記メモリに結合されたプロセッサを有するサーバであって、前記プロセッサは、
    前記ファームウェアアップグレードの複数の無線配信モードのうちの一つの無線配信モードを有するファームウェア配信要求を取得し、
    前記ファームウェア鍵を使用して、前記ファームウェアアップグレードを暗号化し、
    前記ファームウェア鍵を前記セッション鍵で暗号化し、
    前記無線配信モードに基づいて、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を安全なチャネルを介して前記組み込み機器に送信するように構成された、サーバと、
    を備える、システム。
  9. 前記メモリは、サーバ秘密鍵を格納するように更に構成され、前記プロセッサは、
    暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を前記組み込み機器に送信する前に、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵にデジタル署名するように更に構成された、請求項8に記載のシステム。
  10. 前記組み込み機器は、ファームウェア及び前記セッション鍵を格納するように構成されたメモリを有し、前記メモリに結合されるとともに前記組み込み機器にある又はその内部にあるプロセッサを有し、前記組み込み機器にある又はその内部にあるプロセッサは、
    暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵の前記デジタル署名を確認し、
    暗号化された前記ファームウェア鍵を復号化し、
    前記ファームウェア鍵を使用して、暗号化された前記ファームウェアアップグレードを復号化し、
    前記ファームウェアアップグレードを使用して、前記ファームウェアを更新するように構成された、請求項9に記載のシステム。
  11. 前記複数の無線配信モードは、前記サーバと前記組み込み機器の間の直接チャネルを確立する第1の無線配信モード、オフラインコントローラを介した前記サーバと前記組み込み機器の間の間接チャネルを確立する第2の無線配信モード及びオンラインコントローラを介した前記サーバと前記組み込み機器間の間接チャネルを確立する第3の無線配信モードを有するように構成された、請求項8に記載のシステム。
  12. 前記ファームウェア鍵は、前記第2の無線配信モードに基づく暗号化された前記ファームウェア鍵の送信の際に以前のファームウェアバージョン内で難読化された一般組み込み機器鍵を使用して事前暗号化される、請求項11に記載のシステム。
  13. 前記セッション鍵又はサーバ公開証明書を含む一つ以上の鍵暗号化鍵を格納するように構成されたメモリを有するコントローラデバイスであって、
    前記一つ以上の鍵暗号化鍵を使用して、前記サーバとの接続を確立し、
    暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を取得し、
    前記サーバ公開証明書を使用して、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵の前記デジタル署名を検証し、
    前記一つ以上の鍵暗号化鍵を使用して、前記組み込み機器との接続を確立し、
    暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を前記組み込み機器に供給するように構成された、前記メモリに結合されるとともに前記コントローラデバイスにある又はその内部にあるプロセッサを有する、コントローラデバイスを更に備える、請求項9に記載のシステム。
  14. 前記プロセッサは、暗号化された前記ファームウェアアップグレードを前記組み込み機器に送信する前に一つ以上の不変の識別子を検証するように更に構成された、請求項8に記載のシステム。
  15. ファームウェアを安全に配信するための方法であって、
    サーバにある又はその内部にあるプロセッサによって、ファームウェア鍵を使用して、ファームウェアアップグレードを暗号化することと、
    前記プロセッサによって、セッション鍵を使用して、前記ファームウェア鍵を暗号化することと、
    前記プロセッサによって、組み込み機器が第1のモード、第2のモード又は第3のモードにあることを判断することと、
    前記プロセッサによって、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を、前記組み込み機器が前記第1のモードにあるという判断に応答して前記組み込み機器に送信する又は前記組み込み機器が前記第2のモード若しくは前記第3のモードにあるという判断に応答してコントローラデバイスに送信することと、
    を備える、方法。
  16. 前記組み込み機器にある又はその内部にあるプロセッサによって、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を、前記組み込み機器が前記第1のモードにあるという前記組み込み機器にある又はその内部にあるプロセッサの判断に応答して、前記サーバから直接受信すること、又は、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵を、前記組み込み機器が前記第2のモード若しくは前記組み込み機器が前記第3のモードにあるという前記組み込み機器にある又はその内部にあるプロセッサの判断に応答して、前記コントローラデバイスを介して前記サーバから受信することと、
    前記組み込み機器にある又はその内部にあるプロセッサによって、前記セッション鍵及び前記ファームウェア鍵を使用して、暗号化された前記ファームウェア鍵及び暗号化された前記ファームウェアアップグレードをそれぞれ復号化することと、
    を更に備える、請求項15に記載の方法。
  17. 前記サーバにある又はその内部にあるプロセッサによって、サーバ秘密鍵を使用して、暗号化された前記ファームウェアアップグレード及び暗号化された前記ファームウェア鍵にデジタル署名することを更に備える、請求項16に記載の方法。
  18. 前記組み込み機器にある又はその内部にあるプロセッサによって、ファームウェアバージョン番号及び有効期限のリストを取得することと、
    前記組み込み機器にある又はその内部にあるプロセッサによって、前記リスト内の有効期限に対する前記組み込み機器のファームウェアの有効期限をチェックすることと、
    前記組み込み機器にある又はその内部にあるプロセッサによって、前記組み込み機器のファームウェアが期限切れになっていないことを判断することと、
    を更に備える、請求項15に記載の方法。
  19. 前記ファームウェア鍵は、前記組み込み機器が前記第3のモードにあるときに第2のセッション鍵を使用して事前暗号化される又は前記組み込み機器が前記第2のモードにあるときに以前のファームウェアバージョン内で難読化された一般組み込み機器鍵を使用して事前暗号化される、請求項15に記載の方法。
  20. 前記コントローラデバイスが、暗号化された前記ファームウェア鍵及び暗号化された前記ファームウェアアップグレードを受信し、かつ、前記組み込み機器が、前記第2のモードにあるときに、前記コントローラデバイスは、前記組み込み機器に接続されない、請求項15に記載の方法。
JP2021525584A 2018-11-12 2019-11-04 安全な無線ファームウェアアップグレード Active JP7364674B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/186,868 2018-11-12
US16/186,868 US11372977B2 (en) 2018-11-12 2018-11-12 Secure over-the-air firmware upgrade
PCT/US2019/059677 WO2020101936A1 (en) 2018-11-12 2019-11-04 Secure over-the-air firmware upgrade

Publications (2)

Publication Number Publication Date
JP2022507151A JP2022507151A (ja) 2022-01-18
JP7364674B2 true JP7364674B2 (ja) 2023-10-18

Family

ID=70549904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021525584A Active JP7364674B2 (ja) 2018-11-12 2019-11-04 安全な無線ファームウェアアップグレード

Country Status (8)

Country Link
US (2) US11372977B2 (ja)
EP (1) EP3881210A4 (ja)
JP (1) JP7364674B2 (ja)
CN (1) CN113168445A (ja)
AU (1) AU2019379092B2 (ja)
CA (1) CA3117851A1 (ja)
IL (1) IL282716A (ja)
WO (1) WO2020101936A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220085982A1 (en) * 2019-01-28 2022-03-17 Omron Corporation Safety system and maintenance method
US11627049B2 (en) * 2019-01-31 2023-04-11 Hewlett Packard Enterprise Development Lp Failsafe firmware upgrade for cloud-managed devices
US11671428B2 (en) * 2020-06-19 2023-06-06 EMC IP Holding Company LLC Granting access to upgrade resource with existing authorization infrastructure
US11831406B2 (en) * 2020-08-21 2023-11-28 Arm Limited System, devices and/or processes for secure transfer of cryptographic control of computing platform
CN114362981A (zh) * 2020-09-30 2022-04-15 京东方科技集团股份有限公司 物联网终端设备的升级方法及相关设备
US11811743B2 (en) * 2020-10-26 2023-11-07 Micron Technology, Inc. Online service store for endpoints
CN112491557B (zh) * 2020-11-26 2022-07-08 北京智象信息技术有限公司 一种智能音箱操作系统ota包升级方法及系统
WO2022140903A1 (zh) * 2020-12-28 2022-07-07 华为技术有限公司 一种ota升级方法及装置
US20220303769A1 (en) * 2021-03-16 2022-09-22 Micron Technology, Inc. Enabling cellular network access via device identifier composition engine (dice)
CN115242413A (zh) * 2021-04-06 2022-10-25 中国移动通信有限公司研究院 物联网设备固件安全升级方法、装置、电子设备及介质
US11809850B2 (en) * 2021-08-25 2023-11-07 Microsoft Technology Licensing, Llc Generating and distributing customized embedded operating systems
AU2022358350A1 (en) * 2021-09-29 2024-03-14 Abbott Diabetes Care Inc. Mobile application updates for analyte data receiving devices
CN113849213A (zh) * 2021-10-15 2021-12-28 四川启睿克科技有限公司 一种边缘设备的ota升级系统及方法
CN114024732A (zh) * 2021-10-29 2022-02-08 百度在线网络技术(北京)有限公司 升级包下载方法、设备、存储介质及程序产品
CN114143198B (zh) * 2021-11-30 2023-06-13 四川启睿克科技有限公司 固件升级的方法
CN114172756A (zh) * 2021-12-06 2022-03-11 四川虹美智能科技有限公司 一种智能设备电控固件的版本升级方法和系统
EP4206906A1 (en) * 2021-12-28 2023-07-05 Ecolux Technology Co., Ltd. Processing system and method for updating firmware online
US20230259628A1 (en) 2022-02-11 2023-08-17 Quanta Computer Inc. Methods for securely updating software
US20220245252A1 (en) * 2022-02-22 2022-08-04 Intel Corporation Seamless firmware update mechanism
CN114915554B (zh) * 2022-04-08 2024-03-19 一汽解放汽车有限公司 远程升级方法、装置、计算机设备和存储介质
CN114637987B (zh) * 2022-05-18 2022-08-12 广州万协通信息技术有限公司 基于平台验证的安全芯片固件下载方法及系统
CN115277101A (zh) * 2022-06-30 2022-11-01 广州三晶电气股份有限公司 一种分布式物联网设备连接方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008099068A (ja) 2006-10-13 2008-04-24 Kddi Corp デジタル放送用コンテンツ配信装置、デジタル放送用コンテンツ認証システム、デジタル放送用コンテンツ認証方法およびプログラム
JP2009500905A (ja) 2005-06-30 2009-01-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド セキュアパッチシステム
JP2010020750A (ja) 2008-07-10 2010-01-28 Toshiba Corp ファームウェア更新方法及びハードディスクドライブ
JP2012164103A (ja) 2011-02-07 2012-08-30 Yokogawa Electric Corp 情報処理装置
US20180157482A1 (en) 2015-05-12 2018-06-07 Otis Elevator Company Method to update safety related software

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021968A1 (en) * 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update
US7716276B1 (en) * 2003-11-17 2010-05-11 Hewlett-Packard Development Company, L.P. Network that supports user-initiated device management
US20050223372A1 (en) * 2004-04-01 2005-10-06 Borchers Gregory E Methods and systems for firmware download configuration
US8402109B2 (en) * 2005-02-15 2013-03-19 Gytheion Networks Llc Wireless router remote firmware upgrade
EP1705872B1 (en) * 2005-03-21 2008-12-24 Hewlett-Packard Development Company, L.P. Mobile device client and system supporting remote terminal management
CN101247416A (zh) * 2008-03-25 2008-08-20 中兴通讯股份有限公司 基于ota的固件下载方法、预处理方法、完整性验证方法
CN102105883A (zh) * 2008-06-23 2011-06-22 Nxp股份有限公司 电子装置以及电子装置的软件或固件更新的方法
US8707291B2 (en) * 2008-10-31 2014-04-22 Echostar Technologies L.L.C. Firmware recovery of wireless devices
US20110173457A1 (en) * 2009-08-14 2011-07-14 Jeffrey Reh Enhanced security for over the air (ota) firmware changes
US8332631B2 (en) 2010-11-22 2012-12-11 Intel Corporation Secure software licensing and provisioning using hardware based security engine
WO2012122994A1 (en) * 2011-03-11 2012-09-20 Kreft Heinz Off-line transfer of electronic tokens between peer-devices
CN103135991B (zh) * 2013-03-13 2015-12-09 烽火通信科技股份有限公司 嵌入式设备web界面的客制化实现方法
US9674251B2 (en) 2013-06-17 2017-06-06 Qualcomm Incorporated Mediating content delivery via one or more services
CN103354496A (zh) * 2013-06-24 2013-10-16 华为技术有限公司 一种公钥密码的处理方法、装置及系统
US9418229B2 (en) * 2013-10-28 2016-08-16 Disney Enterprises, Inc. Firmware security
US9548867B2 (en) * 2013-11-26 2017-01-17 Rockwell Automation Technologies, Inc. Method and apparatus for secure distribution of embedded firmware
WO2017019238A1 (en) * 2015-07-30 2017-02-02 Intel IP Corporation Secure firmware upgrade for cellular iot
US10162622B2 (en) * 2016-02-26 2018-12-25 Ayla Networks, Inc. Local over the air update of an embedded system
US10108412B2 (en) * 2016-03-30 2018-10-23 Square, Inc. Blocking and non-blocking firmware update
US10097563B2 (en) * 2016-05-04 2018-10-09 Gbs Laboratories, Llc Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices
US9923755B2 (en) 2016-08-01 2018-03-20 Data I/O Corporation Device programming with system generation
KR101795457B1 (ko) * 2016-09-27 2017-11-10 시큐리티플랫폼 주식회사 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
US10628149B2 (en) * 2018-02-05 2020-04-21 Vmware, Inc. Enterprise firmware management
CN108566381A (zh) * 2018-03-19 2018-09-21 百度在线网络技术(北京)有限公司 一种安全升级方法、装置、服务器、设备和介质
US10552136B2 (en) * 2018-06-29 2020-02-04 Alibaba Group Holding Limited One click application asset distribution
US10505736B1 (en) * 2018-07-26 2019-12-10 Meixler Technologies, Inc. Remote cyber security validation system
CN109214168B (zh) * 2018-08-27 2020-08-18 阿里巴巴集团控股有限公司 固件升级方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009500905A (ja) 2005-06-30 2009-01-08 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド セキュアパッチシステム
JP2008099068A (ja) 2006-10-13 2008-04-24 Kddi Corp デジタル放送用コンテンツ配信装置、デジタル放送用コンテンツ認証システム、デジタル放送用コンテンツ認証方法およびプログラム
JP2010020750A (ja) 2008-07-10 2010-01-28 Toshiba Corp ファームウェア更新方法及びハードディスクドライブ
JP2012164103A (ja) 2011-02-07 2012-08-30 Yokogawa Electric Corp 情報処理装置
US20180157482A1 (en) 2015-05-12 2018-06-07 Otis Elevator Company Method to update safety related software

Also Published As

Publication number Publication date
EP3881210A1 (en) 2021-09-22
US20200151335A1 (en) 2020-05-14
AU2019379092A1 (en) 2021-06-24
CN113168445A (zh) 2021-07-23
JP2022507151A (ja) 2022-01-18
EP3881210A4 (en) 2022-08-17
CA3117851A1 (en) 2020-05-22
US11372977B2 (en) 2022-06-28
AU2019379092B2 (en) 2023-01-19
IL282716A (en) 2021-06-30
WO2020101936A1 (en) 2020-05-22
US20220318390A1 (en) 2022-10-06

Similar Documents

Publication Publication Date Title
JP7364674B2 (ja) 安全な無線ファームウェアアップグレード
KR101730689B1 (ko) 전자 액세스 클라이언트들을 저장하기 위한 장치 및 방법들
EP2845141B1 (en) Method and system for activation
CN109547464B (zh) 用于存储和执行访问控制客户端的方法及装置
US11297050B2 (en) Secure communication for medical devices
US20140096213A1 (en) Method and system for distributed credential usage for android based and other restricted environment devices
US20130129087A1 (en) Secure Key Generation
US20060161750A1 (en) Using hardware to secure areas of long term storage in CE devices
CN110519753B (zh) 访问方法、装置、终端和可读存储介质
JP2012178010A (ja) 情報処理システム、及び情報処理方法
KR102028197B1 (ko) 하드웨어 보안 모듈, 상기 하드웨어 보안 모듈에 저장된 무결성 검증 값을 업데이트하는 방법, 상기 하드웨어 보안 모듈을 이용하여 단말에 저장된 프로그램을 업데이트하는 방법
US9813403B2 (en) Securing communications with enhanced media platforms
EP4096147A1 (en) Secure enclave implementation of proxied cryptographic keys
US20170134948A1 (en) Method and Apparatus for Authorizing Management for Embedded Universal Integrated Circuit Card
KR20150135032A (ko) Puf를 이용한 비밀키 업데이트 시스템 및 방법
EP4096160A1 (en) Shared secret implementation of proxied cryptographic keys
US20140237627A1 (en) Protecting data in a mobile environment
EP4145763A1 (en) Exporting remote cryptographic keys
JP2014022920A (ja) 電子署名システム、電子署名方法および電子署名プログラム
CN114553426B (zh) 签名验证方法、密钥管理平台、安全终端及电子设备
US11570008B2 (en) Pseudonym credential configuration method and apparatus
JP5620805B2 (ja) データベース暗号化装置、データベース暗号化システム、データベース暗号化方法及びプログラム
US20230318828A1 (en) Request verification system and request verification method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210813

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220726

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230509

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230821

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: 20230905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231005

R150 Certificate of patent or registration of utility model

Ref document number: 7364674

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150