JP7428049B2 - デバイス、セキュアエレメント及びデバイスのセキュアブート方法 - Google Patents

デバイス、セキュアエレメント及びデバイスのセキュアブート方法 Download PDF

Info

Publication number
JP7428049B2
JP7428049B2 JP2020061466A JP2020061466A JP7428049B2 JP 7428049 B2 JP7428049 B2 JP 7428049B2 JP 2020061466 A JP2020061466 A JP 2020061466A JP 2020061466 A JP2020061466 A JP 2020061466A JP 7428049 B2 JP7428049 B2 JP 7428049B2
Authority
JP
Japan
Prior art keywords
bootloader
secure element
information
verification
verification key
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
JP2020061466A
Other languages
English (en)
Other versions
JP2021164009A (ja
Inventor
正徳 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2020061466A priority Critical patent/JP7428049B2/ja
Publication of JP2021164009A publication Critical patent/JP2021164009A/ja
Application granted granted Critical
Publication of JP7428049B2 publication Critical patent/JP7428049B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、デバイス、セキュアエレメント及びデバイスのセキュアブート方法に関する。
IoTデバイスにおけるセキュリティ確保の技術として、セキュアブートと呼ばれる技術が普及し始めている。セキュアブートとは、PC等のデバイス起動時に、予めデジタル署名が施されたソフトウェアしか実行できないようにすることで、不正なソフトウェアによるデバイスの起動を防止するための技術である。
特許文献1には、ブートローダによるセキュアブートの技術の一例が開示されている。セキュアブートの技術では、電源投入時、ブートローダは、セキュアブートにおける信頼の基点(Root of Trust)となっている。このようなセキュアブートでは、例えば、ブートローダは、Root of Trustコードを検証し、検証が成功した場合、Root of Trustコードを実行する。Root of Trustコードは、OSの実行イメージを検証し、検証が成功した場合、OSを実行し、OSの起動処理が完了した時点でブート完了となる。
特開2015-201091号公報
しかし、従来のセキュアブートの技術には、以下のような問題が残存する。鍵による検証や復号を行わせて実行コードの正当性を検証する場合、別々の媒体に保持されている鍵と実行コードに強い関連性が発生し、更新する場合には、両者の更新が必要となる。また、IoTデバイスは、一般に長期間、場合によっては無人で連続稼働することもあり、鍵を保持するには耐タンパ性が求められる。また、公開鍵に基づくソフトウェア検証を行う場合、鍵とソフトウェアの両方を改ざんして正当な検証が行われたように見せかけることが可能となる。さらに、ブートローダを信頼できるRoot of Trustをベースとして更新させることが難しく、更新のタイミングで不正に書き換えられる余地がある。
本発明は、斯かる事情に鑑みてなされたものであり、より安全性の高いセキュアブートを実現できるデバイス、セキュアエレメント及びデバイスのセキュアブート方法を提供することを目的とする。
本発明の実施の形態に係るデバイスは、セキュアブート機能を有するデバイスであって、ブートローダ、ブートローダ検証鍵、及びブートローダの署名を含むブートローダ情報を保持するセキュアエレメントと、初期実行コードとして、ブートローダ情報読出処理、ブートローダ検証処理、及びブートローダ実行処理を実行順序も含めて保持する書き換え不可能な不揮発性メモリとを備え、デバイス起動時に、前記ブートローダ情報読出処理を実行して、前記セキュアエレメントから前記ブートローダ情報を読み出し、前記ブートローダ検証処理は、前記ブートローダ検証鍵、及び前記ブートローダの署名を用いて前記ブートローダを検証し、検証が成功した場合、前記ブートローダ実行処理は、前記ブートローダを実行する。
本発明の実施の形態に係るセキュアエレメントは、セキュアブート機能を有するデバイスに実装されるセキュアエレメントであって、ブートローダ、ブートローダ検証鍵、及びブートローダの署名を含むブートローダ情報を保持し、デバイス起動時に、前記ブートローダの検証のために前記ブートローダ情報を前記デバイスへ出力する。
本発明の実施の形態に係るデバイスのセキュアブート方法は、初期実行コードとして、ブートローダ情報読出処理、ブートローダ検証処理、及びブートローダ実行処理を実行順序も含めて書き換え不可能な不揮発性メモリに保持しておき、デバイス起動時に、前記ブートローダ情報読出処理を実行して、セキュアエレメントから、ブートローダ、ブートローダ検証鍵、及びブートローダの署名を含むブートローダ情報を読み出し、前記ブートローダ検証処理は、前記ブートローダ検証鍵、及び前記ブートローダの署名を用いて前記ブートローダを検証し、検証が成功した場合、前記ブートローダ実行処理は、前記ブートローダを実行する。
本発明によれば、より安全性の高いセキュアブートを実現できる。
本実施の形態の鍵、証明書及び署名のトラストチェーン(Trust Chain)を示す模式図である。 IoTデバイスの構成の一例を示す模式図である。 基本的なブートプロセスの一例を示す説明図である。 ブートローダによる実行イメージの検証の一例を示す説明図である。 ブートローダ読み出し前の認証の一例を示す説明図である。 ブートローダ情報の遠隔管理の一例を示す説明図である。 ブートローダ情報の更新の一例を示す説明図である。
以下、本発明をその実施の形態を示す図面に基づいて説明する。図1は本実施の形態の鍵、証明書及び署名のトラストチェーン(Trust Chain)を示す模式図である。本実施の形態では、IoTデバイス製造者、セキュアエレメント製造者、ブートローダ以降に実行されるソフトウェア製造者の3者がそれぞれ必要なデータを保持しつつ、対象鍵ペアを各製造者が適切に管理することで、複数のソフトウェア実装主体が協力してセキュアなブートを実現する。IoTデバイスは、例えば、OSを搭載して独立動作をすることができるデバイス(電子デバイスとも称する)であり、「モノのインターネット」(IoT)でいうところの「モノ」に該当するデバイスである。
なお、本実施の形態では、説明を容易にするため、ブートローダ以降に実行されるソフトウェアとしてIoTデバイスOS(例えば、RTOS:Real Time Operating System、Linux(登録商標)等)を想定しているが、これらに限定されるものではなく、Dockerイメージ等のソフトウェアコンテンツ等も含め、ブートローダ以降に実行されるソフトウェアイメージ全てが含まれる。
データは、大別して、実行可能なソフトウェア、鍵、署名(証明書)の3つに分類される。まず、実行可能なソフトウェアについて説明する。
実行可能なソフトウェアには、例えば、ブートローダ11、及びIoTデバイスOS12が含まれる。ブートローダ11は、IoTデバイス上でブート処理を実行するソフトウェアであり、IoTデバイスの特定の処理(ブートローダ実行機能)からOSの起動を行うためのコードである。
IoTデバイスOS12は、IoTデバイス上で実際に動作するOSであり、RTOSやRich OS(Linux等)の実行イメージに相当する。ブートローダ11、IoTデバイスOS12は、それぞれIoTデバイス製造者、IoTデバイスOSベンダが実装してもよく、ブートローダ11、IoTデバイスOS12の両方をいずれか一方の主体が実装してもよい。ブートローダ11は、セキュアエレメント製造者に提供される必要がある。
次に、鍵について説明する。鍵には、例えば、セキュアエレメントCA公開鍵21、セキュアエレメントCA秘密鍵22、ブートローダ検証鍵(公開鍵)23、ブートローダ署名生成鍵(秘密鍵)24、OS検証鍵(公開鍵)25、及びOS署名生成鍵(秘密鍵)26が含まれる。
セキュアエレメントCA公開鍵21は、セキュアエレメント製造者が、セキュアエレメント個々の鍵の正当性を証明(署名検証)するための公開鍵である。セキュアエレメントCA秘密鍵22は、セキュアエレメント製造者が、セキュアエレメント個々の鍵に署名を付与するための鍵である。
ブートローダ検証鍵(公開鍵)23は、セキュアエレメント製造者によって生成されたブートローダに対する署名を検証するための鍵である。ブートローダ署名生成鍵(秘密鍵)24は、セキュアエレメント製造者がブートローダに対する署名を生成するための鍵である。
OS検証鍵(公開鍵)25は、IoTデバイスOSベンダによって生成されたIoTデバイスOSに対する署名を検証するための鍵である。OS署名生成鍵(秘密鍵)26は、IoTデバイスOSベンダがIoTデバイスOSに対する署名を生成するための鍵である。OS検証鍵(公開鍵)25は、セキュアエレメント製造者に提供される必要がある。
次に、署名について説明する。署名は、送信内容が改ざんされたとき、受信者が改ざんされたことを分かるようにする技術である。一般的には、送信者は、データをハッシュ化してダイジェストを生成し、生成したダイジェストを秘密鍵で暗号化することで署名を生成する。送信者はデータと一緒に署名を送信する。受信者は、データと署名を受信し、データをハッシュ化してダイジェストを生成する。受信者は署名を公開鍵で復号してダイジェストを得る。2つのダイジェストを比較して一致・不一致を判定する。両者が一致していれば、データが改ざんされていないことを確認できる。
署名には、例えば、ブートローダデジタル署名31、ブートローダ検証鍵証明書32、OSデジタル署名33、及びOS検証鍵証明書34が含まれる。
ブートローダデジタル署名31は、ブートローダ11に対し、ブートローダ署名生成鍵(秘密鍵)24によって生成された署名である。例えば、ブートローダ11(バイナリ列)のハッシュ値をブートローダ署名生成鍵(秘密鍵)24で暗号化した値を署名とすることができる。ブートローダ検証鍵証明書32は、ブートローダ検証鍵(公開鍵)23に対し、セキュアエレメントCA秘密鍵22によって生成された署名である。例えば、ブートローダ検証鍵(公開鍵)23のハッシュ値をセキュアエレメントCA秘密鍵22で暗号化した値を署名とすることができる。
OSデジタル署名33は、IoTデバイスOSのイメージに対し、OS署名生成鍵(秘密鍵)26によって生成された署名である。例えば、IoTデバイスOS(バイナリ列)のハッシュ値をOS署名生成鍵(秘密鍵)26で暗号化した値を署名とすることができる。OS検証鍵証明書34は、OS検証鍵(公開鍵)25に対し、セキュアエレメントCA秘密鍵22によって生成された署名である。例えば、OS検証鍵(公開鍵)25のハッシュ値をセキュアエレメントCA秘密鍵22で暗号化した値を署名とすることができる。
本実施の形態では、署名対象のハッシュ値に対して署名生成鍵で暗号化を行うという方法で署名を生成しているが、署名生成アルゴリズムは、これに限定されるものではなく、対象鍵暗号に依拠する署名生成、検証方法であれば、いずれの方法を用いてもよい。
署名検証は、検証鍵によって署名を復号し、署名対象と比較することで行われる。検証鍵は署名生成鍵と対向した鍵でなればならず、かつ署名生成は対向する秘密鍵を持っていなければ不可能である。よって、署名対象の検証に成功した場合、署名対象は秘密鍵を有する主体によって署名が行われ、かつ署名時点から改ざんされていないことを証明したことになる。
本実施の形態では、(1)ブートローダ検証鍵(公開鍵)23によるブートローダデジタル署名31の検証(ブートローダ11が改ざんされていないことの証明)、(2)セキュアエレメントCA公開鍵21によるブートローダ検証鍵(公開鍵)23の検証(ブートローダ検証鍵(公開鍵)23が改ざんされていないことの証明)の2つの署名検証が実施される。これにより、ブートローダ11は、セキュアエレメント製造者が署名を施し、改ざんされていないものであり、当該検証プロセス自体も改ざんされていない(正当な検証鍵によって検証を行っている)、というTrust Chainによって正当性を確保し、セキュアブートを実現することができる。
また、OSに対して検証する場合は、(1)OS検証鍵(公開鍵)25によるOSデジタル署名33の検証(OSが改ざんされていないことの証明)、(2)セキュアエレメントCA公開鍵21によるOS検証鍵(公開鍵)25の検証(OS検証鍵(公開鍵)25が改ざんされていないことの証明)、というTrust Chainによって正当性を確保する。これにより、OSはOS製造者(ベンダ)が署名を施し、改ざんされていないものであり、当該検証に用いた鍵はセキュアエレメント製造者によって検証されたことを確保することができる。
図2はIoTデバイス100の構成の一例を示す模式図である。IoTデバイス100は、セキュアブートの実装対象となっているデバイスであり、例えば、RTOSやLinux等が動作する組み込みボードなどを含む。IoTデバイス100は、内部にSoC(System on Chip)50、及びセキュアエレメント60を有する。IoTデバイス100は、ユーザ認証入力デバイスを備えていてもよい。ユーザ認証入力デバイスは、IoTデバイス100の起動時、ユーザ認証を必要とする場合に、ユーザから認証情報の入力を受け付けるためのデバイスであり、例えば、PINパッド、指紋センサ等が含まれる。
SoC50は、IoTデバイス100の主要な機能を保持するICチップである。SoC50は、書き換え不可能な不揮発性メモリとしてのROM51、NVM52、RAM(REE)53、及びRAM(TEE)54を有する。なお、本明細書では、書き換え不可能な不揮発性メモリの一例として、ROMを挙げて説明するが、具体的には、書き換え不可能な不揮発性メモリには、マスクROM、プログラマブルROMが含まれ、プログラマブルROMには、OTP(One Time Programmable)-ROM、EEPROM(Electronically Erasable and Programmable Read Only Memory)、書き換え不可のプロテクトを行ったフラッシュメモリなどが含まれる。ROM51として、これらのいずれを使用してもよい。セキュアエレメント60は、耐タンパ性を有するセキュリティチップであり、内部にCPU、NVM(Non-volatile memory)を有し、セキュアな不揮発性メモリを有する。セキュアエレメント60は、SoC50との間で、標準的な通信路(例えば、ISO7816/SPI/I2C等)で通信を行う。
ブート管理サーバ200は、外部のサーバとしての機能を有し、IoTデバイス100のセキュアブートに関連する情報を保持し、IoTデバイス100のブート状態を取得し、個別管理を行う。
ROM51内には、起動前ユーザ認証機能41、ブートローダ情報読出機能42、ブートローダ検証機能43、ブートローダ実行機能44、及びセキュアエレメントCA公開鍵21が保持されている。
起動前ユーザ認証機能41は、ユーザ認証入力デバイスからユーザ認証情報を受け取り、セキュアエレメント60との通信路を開設し、セキュアエレメント60に対してユーザ認証を求める処理を行う。
ブートローダ情報読出機能42は、セキュアエレメント60との通信路を開設し、セキュアエレメント60からブートに必要な情報(ブートローダ情報)を取得する処理を行う。
ブートローダ検証機能43は、ブートローダデジタル署名31を利用して、復号したブートローダ11の正当性を検証する処理を行う。
ブートローダ実行機能44は、復号したブートローダ11に制御を渡し、ブートローダ11を実行するための処理を行う。起動前ユーザ認証機能41、ブートローダ情報読出機能42、ブートローダ検証機能43、及びブートローダ実行機能44の処理、データはIoTデバイス製造者によってROM51内に固定的に保持(格納)されている。工場出荷後は、処理の実行順序も含め、これらの処理手順、処理内容を書き換えることはできない(セキュアな状態で保持されている)。
NVM(Non-volatile memory)52内の情報は書き換え可能であり、工場出荷後、ユーザによって書き換えることができる。なお、NVM(Non-volatile memory)52に代えて、あるいはNVM52とともに、SDカード、eMMC(embedded Multi Media Card)等、SoC50外に保存できる記録媒体を用いてもよい。
SoC50のRAMは、セキュアでない通常のメモリ領域(REE:Rich Execution Environment)53とセキュアな領域(TEE:Trusted Execution Environment)54の2つに分かれている。なお、本実施の形態では、セキュアエレメント60のブートローダ情報をRAM(TEE)54に読み込む構成としているが、RAM(TEE)54を有さず、RAM(REE)53しか有しないSoCの場合には、セキュアエレメント60のブートローダ情報をRAM(REE)53に読み込めばよい。
セキュアエレメント60は、ブートローダ情報の他に、SEID、ユーザ認証情報(PIN等)を保持する。SEIDは、セキュアエレメント60を一意に識別するIDである。ブート管理サーバ200からセキュアエレメント60を特定するための値として用いることができる。ユーザ認証情報は、セキュアエレメント60がIoTデバイス100のユーザ認証を行うためにセキュアエレメント60に保持している情報であり、例えば、ユーザPINや指紋認証等の生体認証情報を保持している。
ブート管理サーバ200は、SEIDごとに、当該SEIDのセキュアエレメント60に保持されているブートローダのバージョンを保持するブートローダ管理テーブル、及び現時点におけるブートローダの最新バージョンなどを有する。
次に、本実施の形態のセキュアブートについて説明する。以下では、基本的なブートプロセス、ブートローダによる実行イメージの検証、ブートローダ読み出し前の認証、ブートローダ情報の遠隔管理、及びブートローダ情報の更新について説明する。
図3は基本的なブートプロセスの一例を示す説明図である。以下、符号P1~P9で示す処理について説明する。
P1(電源の投入):IoTデバイス100のユーザは、IoTデバイス100の電源を投入する。なお、IoTデバイスによっては、電源の投入の他に、再起動などの動作でもよい。
P2(ブートローダ情報読出機能の実行):IoTデバイス100の電源が投入されると、初期実行コードであるブートローダ情報読出機能42の実行を開始する。
P3(ブートローダ情報取得指示):ブートローダ情報読出機能42は、セキュアエレメント60との通信機能を有効化し、セキュアエレメント60に情報取得用コマンドを送出する。
P4(ブートローダ情報取得):セキュアエレメント60は、レスポンスとして、ブートローダ11、ブートローダ検証鍵(公開鍵)23、ブートローダデジタル署名31、ブートローダ検証鍵証明書32、OS検証鍵(公開鍵)25、及びOS検証鍵証明書34(これらを纏めてブートローダ情報ともいう)を返送する。ブートローダ情報読出機能42は、ブートローダ情報をSoC50内のRAM上の指定された領域(ここでは、RAM(TEE)54)に配置する。
P5(ブートローダ検証機能の実行):ブートローダ情報読出機能42の末尾で、ブートローダ検証機能43へ制御を移行し、ブートローダ情報読出機能42を実行する。
P6(ブートローダ検証鍵の正当性検証):ブートローダ検証機能43は、ブートローダ11自身の検証に先立って、ブートローダ検証鍵(公開鍵)23の正当性を検証する。具体的には、IoTデバイス100がROM51に保持しているセキュアエレメントCA公開鍵21を用いて、ブートローダ検証鍵証明書32内の署名を復号し、ブートローダ検証鍵(公開鍵)23との比較を行う。両者が一致した場合のみ検証が成功したとみなす。両者が不一致等、検証が失敗した場合は、ここでコードの実行を停止し、IoTデバイス100の電源を切る。
P7(デジタル署名によるブートローダの検証):ブートローダ検証機能43は、RAM(TEE)54の所定位置に配置されたブートローダデジタル署名31を使って、復号したブートローダ11を検証する。ここでは、ブートローダデジタル署名31をブートローダ検証鍵(公開鍵)23により復号するとともに、ブートローダ11のハッシュ値を求め、両者が一致するか否かに応じて検証する。両者が一致した場合のみ検証が成功したとみなす。両者が不一致等、検証が失敗した場合は、ここでコードの実行を停止し、IoTデバイス100の電源を切る。
P8(ブートローダ実行機能の実行):検証が成功した場合、ブートローダ検証機能43の末尾で、ブートローダ実行機能44へ制御を移行し、ブートローダ実行機能44を実行する。
P9(ブートローダの実行):ブートローダ実行機能44は、RAM(TEE)54の所定の場所に配置された検証済のブートローダ11を実行する。
上述の例において、電源投入時における初期実行コードの設定は、IoTデバイス製造者によってROM51上に設定され、以降第三者によって変更することはできない。また、初期実行コードは、ブートローダ情報読出機能42であり、この設定はROM51上に焼き付けられた固定値になっている。また、ブートローダ11の検証処理は、対象鍵(公開鍵)による署名検証を実行しているが、署名生成に関するアルゴリズムと同様、当該アルゴリズムに対応した検証方法であれば、いずれの方法でもよい。
図3に例示した処理は、ブートローダ11の正当性を検証するための処理であるが、基本的にブートローダ11はそれ単体ではIoTデバイス100の機能を実現することができない。IoTデバイスの機能を実現するためには、ブートローダ11はOS等の後続のソフトウェア(ブートローダ11以降のソフトウェア)を起動させる必要がある。
本実施の形態では、後続のソフトウェアはIoTデバイス100上に予めデプロイしておく(セキュアエレメント60には保持しない)ことを前提としているが、ブートローダ11から、そのままIoTデバイス100上にデプロイされているソフトウェアを実行するだけでは、当該ソフトウェアが改ざんされていることを検知できず、セキュリティ上の脆弱性が残る。以下では、セキュアエレメント60内に後続のソフトウェアを検証する鍵を保持しつつ、ブートローダ11から後続のソフトウェアを検証するロジックを実行することで、セキュアエレメント60、ブートローダ11、及び後続のソフトウェアの3者にTrust Chainを繋ぎ、後続のソフトウェアの正当性を確保することができる処理について説明する。
図4はブートローダによる実行イメージの検証の一例を示す説明図である。以下、符号P1~P12で示す処理について説明する。なお、P1からP9までの処理は、図3の場合と同様であるので、説明は省略し、P10からP12について説明する。
P10(OS検証鍵の正当性検証):ブートローダ11は、IoTデバイス100自身の検証に先立って、OS検証鍵(公開鍵)25の正当性を検証する。具体的には、IoTデバイス100がROM51に保持しているセキュアエレメントCA公開鍵21を用いて、OS検証鍵証明書34内の署名を復号し、OS検証鍵(公開鍵)25との比較を行う。両者が一致した場合のみ検証が成功したとみなす。両者が不一致等、検証が失敗した場合は、ここでコードの実行を停止し、IoTデバイス100の電源を切る。
P11(IoTデバイスOSの検証):ブートローダ11は、OS検証鍵(公開鍵)25を用いてNVM52上のIoTデバイスOS12の検証を行う。ブートローダ11自身の検証と同様、OSデジタル署名33をOS検証鍵(公開鍵)25で復号するとともに、ブートローダ11のハッシュ値を求め、両者が一致するか否かに応じて検証する。両者が一致した場合のみ検証が成功したとみなす。両者が不一致等、検証が失敗した場合は、ここでコードの実行を停止し、IoTデバイス100の電源を切る。
P12(OSの実行):ブートローダ11は、NVM52上の所定の場所に配置された検証済のIoTデバイスOS12を実行する。
セキュアエレメント60内にブートに必要な情報を保持することにおり、セキュアエレメント60は、ブートに必要な情報の提供可否を選択できるようになる。このことを利用して、IoTデバイス100の電源を投入した際、セキュアエレメント60内の情報を元にユーザ認証を行うことで、不正なユーザによるブートを抑止することができる。以下では、起動時にユーザ認証を行う場合について説明する。
図5はブートローダ読み出し前の認証の一例を示す説明図である。以下、符号P21~P31で示す処理について説明する。
P21(電源の投入):IoTデバイス100のユーザは、IoTデバイス100の電源を投入する。
P22(ユーザ認証情報の入力):IoTデバイス100は、電源を投入されると、初期実行コードである起動前ユーザ認証機能41を実行する。起動前ユーザ認証機能41は、セキュアエレメント60との通信機能を有効化し、PINや指紋等のユーザ認証情報の入力を待ち受ける。
P23(ユーザ認証):ユーザ認証情報が入力された場合、起動前ユーザ認証機能41は、入力されたユーザ認証情報をセキュアエレメント60に送出する。セキュアエレメント60は、受信したユーザ認証情報と、セキュアエレメント60内のユーザ認証情報とを比較しユーザ認証を行い、認証可否を返送する。認証が失敗した場合、ここでコードの実行を停止し、IoTデバイス100の電源を切る。
P24からP31までの処理は、図3に例示したP2からP9の処理と同様であるので、説明は省略する。
セキュアエレメント60に、自信をエンドポイントとして外部との秘匿通信路を開設する機能がある場合、IoTデバイス100のブートローダ情報を外部からセキュアに管理することが可能になる。機能追加やセキュリティ脆弱性対策のため、ブートローダ自身の更新が必要になった場合、IoTデバイス100を管理する側として、古いブートローダが動いているIoTデバイスを特定し、古いブートローダを新しいブートローダに置き換えることが必要になる。本実施の形態では、ブートローダの更新をセキュアに実現することができる。以下では、まず、セキュアエレメント60からブートローダの情報をサーバに通知する場合について説明する。
図6はブートローダ情報の遠隔管理の一例を示す説明図である。以下、符号P41~P44で示す処理について説明する。
P41(通信路の開設):ブートローダ11は、IoTデバイス100のネットワーク通信機能を有効化するとともに、セキュアエレメント60に対しブート管理サーバ200との秘匿通信路を開設する。ここでは、ネットワーク通信機能(Ethernet(商標)/Wi-Fi(商標)等)のみIoTデバイス100の機能を利用し、セキュアエレメント60とブート管理サーバ200との間でTLS(Transport Layer Security)等のセキュアチャネルを開設しているが、セキュアエレメント60が独立してネットワーク通信可能であれば、単体で通信を実施してもよい。
P42(セキュアエレメントへのバージョン情報送信指示):ブートローダ11は、セキュアエレメント60に対して、現在保持しているブートローダのバージョン情報を送信するように指示する。このとき、ブートローダ11は、自身が保持しているバージョン情報をセキュアエレメント60に送信する。なお、本明細書では、ブートローダのバージョン情報そのものを使用する例を挙げて説明しているが、バージョン情報に限定されるものではない。例えば、ブートローダのバージョンを一意に特定可能な特定情報であればよい。特定情報は、バージョン情報そのものだけでなく、例えば、ブートローダのハッシュ値など、ブートローダそのもののバイナリ列に対して所定の演算を行って得られた値などでもよい。
P43(バージョン情報の比較):セキュアエレメント60は、ブートローダ11から受信したバージョン情報と、自身が保持しているブートローダのバージョン情報とを比較し、一致可否を判定する。
P44(サーバへのバージョン情報送信):セキュアエレメント60は、ブート管理サーバ200に対して比較結果を自身のIDとともに送信する。両者が一致している場合は、一致したバージョン情報を送信する。両者が不一致の場合、IoTデバイス100は、セキュアエレメント60が保持しているブートローダのバージョンとは異なるバージョンのブートローダ11で動作していることになるため、ブートローダ11側のバージョン番号と、バージョン番号が不一致である旨をブート管理サーバ200に通知する。
上述の例では、ブートローダ11から処理を開始しているが、処理開始タイミングは、ブートローダ実行時である必要は必ずしもなく、OS等の後続のソフトウェアが動作しているタイミングで処理を開始してもよい。また、上述の例では、取得したバージョン情報と保持したバージョン情報との比較結果をブート管理サーバ200へ送信する構成であるが、これに限定されるものではない。例えば、セキュアエレメント60は、自身が開設した秘匿通信路を経由して、取得したバージョン情報及び保持したバージョン情報をブート管理サーバ200へ送信してもよい。この場合、ブート管理サーバ200において、両者の比較検証を行うことができる。
ブートローダ11自身のバージョンと、セキュアエレメント60内のブートローダのバージョンが不一致の場合、セキュアエレメント60指定のバージョンと異なるバージョンでブートされているため、ブートローダ11の改ざんが行われている可能性が想定される。ブート管理サーバ200が不一致である旨の通知を受信した際の動作については、IoTデバイス100のセキュリティポリシーに依存する事項であるが、例えば、IoTデバイス100に対して遠隔で再起動指示を出力する、あるいは、セキュリティアタックとみなしてアラートを通知する等、種々の選択肢がある。
上述のように、ブート管理サーバ200は、ブートローダのバージョン情報をIoTデバイス100から収集することで、各IoTデバイス100上で稼働しているブートローダのバージョンを収集可能となる。ブート管理サーバ200は、古いブートローダを持つセキュアエレメント60と通信することで、古いブートローダを新しいものに置き換えることが可能になる。以下では、ブートローダ情報の更新について説明する。
図7はブートローダ情報の更新の一例を示す説明図である。以下、符号P51~P55で示す処理について説明する。
P51(ブートローダ更新判定):ブート管理サーバ200は、各セキュアエレメント60のブートローダのバージョンから、更新指示の対象となるセキュアエレメント60を特定する。例えば、各セキュアエレメント60のIDに対応したバージョンを調べ、最新バージョンと異なる場合は、当該セキュアエレメント60を更新対象として特定するなど、更新判定には種々の方法を用いることができる。
P52(更新対象ブートローダ特定):ブート管理サーバ200は、セキュアエレメント60に送信するバージョンのブートローダ情報(ブートローダを含む)を特定する。ここでは、単純に最新バージョンのブートローダに更新することとしている。
P53(セキュアエレメントへのブートローダコピー):ブート管理サーバ200は、P52で特定したブートローダ情報を、秘匿通信路経由でセキュアエレメント60に送信する。セキュアエレメント60は、受信したブートローダで既存のブートローダを上書きし、保持しているバージョン情報を更新する。
P54(更新後のバージョン通知):セキュアエレメント60は、ブートローダ更新後、更新後のブートローダのバージョンをブート管理サーバ200に送信する。
P55(ブートローダ管理テーブルの更新):ブート管理サーバ200は、ブートローダ管理テーブルの対応箇所(更新後のバージョンを受信したセキュアエレメントの行)をセキュアエレメント60から受信したブートローダのバージョンで更新する。図の例では、バージョン1.0.0が、1.0.1に更新されている。
IoTデバイス100がすでにOS起動中の場合、セキュアエレメント60内のブートローダを更新するだけでは、デバイス側で実際に稼動しているソフトウェアは更新されておらず、再起動の必要がある。再起動に関する対応については、ブート管理サーバ200や他のサーバからIoTデバイス100に対し遠隔で再起動を指示すればよい。再起動の指示は、例えば、表示画面などに再起動を促す旨の文字や画像を表示してもよく、既存の技術を組み合わせてもよい。
本実施の形態のデバイスは、セキュアブート機能を有するデバイスであって、ブートローダ、ブートローダ検証鍵、及びブートローダの署名を含むブートローダ情報を保持するセキュアエレメントと、初期実行コードとして、ブートローダ情報読出処理、ブートローダ検証処理、及びブートローダ実行処理を実行順序も含めて保持する書き換え不可能な不揮発性メモリとを備え、デバイス起動時に、前記ブートローダ情報読出処理を実行して、前記セキュアエレメントから前記ブートローダ情報を読み出し、前記ブートローダ検証処理は、前記ブートローダ検証鍵、及び前記ブートローダの署名を用いて前記ブートローダを検証し、検証が成功した場合、前記ブートローダ実行処理は、前記ブートローダを実行する。
本実施の形態のセキュアエレメントは、セキュアブート機能を有するデバイスに実装されるセキュアエレメントであって、ブートローダ、ブートローダ検証鍵、及びブートローダの署名を含むブートローダ情報を保持し、デバイス起動時に、前記ブートローダの検証のために前記ブートローダ情報を前記デバイスへ出力する。
本実施の形態のデバイスのセキュアブート方法は、初期実行コードとして、ブートローダ情報読出処理、ブートローダ検証処理、及びブートローダ実行処理を実行順序も含めて書き換え不可能な不揮発性メモリに保持しておき、デバイス起動時に、前記ブートローダ情報読出処理を実行して、セキュアエレメントから、ブートローダ、ブートローダ検証鍵、及びブートローダの署名を含むブートローダ情報を読み出し、前記ブートローダ検証処理は、前記ブートローダ検証鍵、及び前記ブートローダの署名を用いて前記ブートローダを検証し、検証が成功した場合、前記ブートローダ実行処理は、前記ブートローダを実行する。
セキュアエレメントは、ブートローダ、ブートローダ検証鍵、及びブートローダの署名を含むブートローダ情報を保持する。ブートローダと検証用鍵の両方を改ざん不可能、及び更新不可能なセキュアエレメントに保持することにより、ブートローダと鍵の改ざんを防止しつつ鍵とコードの対応関係をセキュアエレメント内に限定する。これにより、鍵及びブートローダそれぞれの管理をセキュアエレメント側に纏めることができ、デバイス側から鍵管理の負荷を取り除くことができる。IoTデバイス製造者は、ブートローダのみをセキュアエレメント製造者に供給することで、セキュリティの管理をセキュアアレメント製造者に委任することができる。
書き換え不可能な不揮発性メモリは、初期実行コードとして、ブートローダ情報読出処理、ブートローダ検証処理、及びブートローダ実行処理を実行順序も含めて保持する。書き換え不可能な不揮発性メモリに保持するとは、例えば、工場出荷後は、各処理の実行準備も含め、これらの処理手順、内容を書き換えることができないことを意味する。すなわち、IoTデバイスの初期実行コードを固定シーケンス化する。鍵の値に依存しない初期実行コードの実行内容と順序を、IoTデバイス側に更新不可能な形態で保持することができる。これにより、初期実行コードの改ざんを防止しつつ、鍵やブートローダなどの個別情報をセキュアエレメント側に持たせることで、安全かつ柔軟にセキュリティ管理を行うことができる。
デバイス起動時に、ブートローダ情報読出処理を実行して、セキュアエレメントからブートローダ情報を読み出す。ブートローダ検証処理は、ブートローダ検証鍵、及びブートローダの署名を用いてブートローダを検証する。検証が成功した場合、ブートローダ実行処理は、ブートローダを実行する。これにより、より安全性の高いセキュアブートを実現できる。
本実施の形態のデバイスにおいて、前記セキュアエレメントは、さらに、ブートローダ検証鍵証明書を保持し、前記書き換え不可能な不揮発性メモリは、セキュアエレメントCA公開鍵を保持し、デバイス起動時に、前記ブートローダ情報読出処理を実行して、前記セキュアエレメントから前記ブートローダ検証鍵証明書を読み出し、前記ブートローダ検証処理は、前記セキュアエレメントCA公開鍵、及び読み出された前記ブートローダ検証鍵証明書を用いて前記ブートローダ検証鍵を検証し、検証が成功した場合、前記ブートローダを検証する。
本実施の形態のセキュアエレメントにおいて、前記ブートローダ情報は、前記ブートローダ検証鍵を検証するためのブートローダ検証鍵証明書を含み、デバイス起動時に、前記ブートローダ検証鍵証明書を前記デバイスへ出力する。
セキュアエレメントは、さらに、ブートローダ検証鍵証明書を保持し、書き換え不可能な不揮発性メモリは、セキュアエレメントCA公開鍵を保持する。デバイス起動時に、ブートローダ情報読出処理を実行して、セキュアエレメントからブートローダ検証鍵証明書を読み出す。ブートローダ検証処理は、セキュアエレメントCA公開鍵、及び読み出されたブートローダ検証鍵証明書を用いてブートローダ検証鍵を検証する。検証が成功した場合、ブートローダを検証する。すなわち、ブートローダの検証に先立って、セキュアエレメントCA公開鍵によってブートローダ検証鍵に対する検証を行う。
IoTデバイス内の書き換え不可能な不揮発性メモリに保持されたセキュアエレメントCA公開鍵を使用してブートローダ検証鍵の署名検証を行い、ブートローダ検証鍵の正当性の検証を行う。これにより、鍵を改ざんすることで不正なブートローダ起動を試みる攻撃を防止できる。
本実施の形態のデバイスにおいて、前記セキュアエレメントは、さらに、ソフトウェア検証鍵を保持し、デバイス起動時に、前記ブートローダ情報読出処理を実行して、前記セキュアエレメントから前記ソフトウェア検証鍵を読み出し、前記ブートローダは、前記ソフトウェア検証鍵を用いて前記ブートローダ以降に実行されるソフトウェアイメージを検証する。
本実施の形態のセキュアエレメントにおいて、前記ブートローダ情報は、前記ブートローダ以降に実行されるソフトウェアイメージを検証するためのソフトウェア検証鍵を含み、デバイス起動時に、前記ソフトウェア検証鍵を前記デバイスへ出力する。
セキュアエレメントは、さらに、ソフトウェア検証鍵を保持する。デバイス起動時に、ブートローダ情報読出処理を実行して、セキュアエレメントからソフトウェア検証鍵を読み出す。ブートローダは、ソフトウェア検証鍵を用いてブートローダ以降に実行されるソフトウェア(例えば、OSなど)イメージを検証する。
セキュアエレメント内に、ブートローダ以降に実行されるソフトウェアイメージの検証用鍵を保持しておく。これにより、セキュアエレメントをRoot of Trustとした、鍵に基づくTrust Chainを容易に構成することができる。
本実施の形態のデバイスにおいて、前記セキュアエレメントは、さらに、ソフトウェア検証鍵証明書を保持し、デバイス起動時に、前記ブートローダ情報読出処理を実行して、前記セキュアエレメントから前記ソフトウェア検証鍵証明書を読み出し、前記ブートローダは、前記セキュアエレメントCA公開鍵、及び前記ソフトウェア検証鍵証明書を用いてソフトウェア検証鍵を検証し、検証が成功した場合、前記ソフトウェアイメージを検証する。
本実施の形態のセキュアエレメントにおいて、前記ブートローダ情報は、前記ソフトウェア検証鍵を検証するためのソフトウェア検証鍵証明書を含み、デバイス起動時に、前記ソフトウェア検証鍵証明書を前記デバイスへ出力する。
セキュアエレメントは、さらに、ソフトウェア検証鍵証明書を保持する。デバイス起動時に、ブートローダ情報読出処理を実行して、セキュアエレメントからソフトウェア検証鍵証明書を読み出す。ブートローダは、セキュアエレメントCA公開鍵、及びソフトウェア検証鍵証明書を用いてソフトウェア検証鍵を検証する。検証が成功した場合、ソフトウェアイメージを検証する。すなわち、ソフトウェアイメージの検証に先立って、セキュアエレメントCA公開鍵及びソフトウェア検証鍵証明書によってソフトウェア検証鍵に対する検証を行う。
IoTデバイス内の書き換え不可能な不揮発性メモリに保持されたソフトウェア検証鍵証明書を使用してソフトウェア検証鍵の検証を行い、ソフトウェア検証鍵の正当性の検証を行う。これにより、鍵を改ざんすることで不正なソフトウェアの実行を試みる攻撃を防止できる。
本実施の形態のデバイスは、前記セキュアエレメントから読み出されたブートローダ情報を保持するセキュアな領域を有するSoCを備える。
SoC(System on Chip)は、セキュアな領域(例えば、TEE:Trusted Execution Environmentなど)を有し、セキュアな領域にセキュアエレメントから読み出されたブートローダ情報を保持する。例えば、暗号化ブートローダの読み出しや復号をSoC内のセキュアな領域で行う。これにより、ブートローダの検証処理を狙った攻撃を防止できる。
本実施の形態のデバイスにおいて、前記セキュアエレメントは、ユーザ認証情報を保持し、デバイス起動時に、入力されたユーザ認証情報と保持したユーザ認証情報とに基づいてユーザ認証を行い、ユーザ認証が成功した場合、前記ブートローダ情報読出処理を行う。
本実施の形態のセキュアエレメントは、ユーザ認証情報を保持し、デバイス起動時に、入力されたユーザ認証情報と保持したユーザ認証情報とに基づいてユーザ認証を行い、ユーザ認証が成功した場合、前記ブートローダ情報を前記デバイスへ出力する。
セキュアエレメントは、ユーザ認証情報を保持する。デバイス起動時に、入力されたユーザ認証情報と保持したユーザ認証情報とに基づいてユーザ認証を行う。ユーザ認証が成功した場合、ブートローダ情報読出処理を行う。
ブートローダや鍵読み出しに先立って、セキュアエレメントが外部認証を求め、認証に成功した場合に、ブートローダ情報を読み出す(デバイス側へ、ブートローダ情報を出力する)。これにより、IoTデバイスに対するセキュリティニーズに応じて、生体認証やPIN(Personal Identification Number)認証等、デバイス起動そのものに強固な認証を導入し、かつ当該認証のバイパスを防止できる。
本実施の形態のセキュアエレメントは、ブートローダのバージョンを特定する特定情報を保持し、前記デバイスからブートローダの特定情報を取得し、取得した特定情報及び保持した特定情報、あるいは、取得した特定情報と保持した特定情報との比較結果を、秘匿通信路を介して外部のサーバへ送信する。
特定情報は、ブートローダのバージョンを一意に特定可能な情報であればよい。特定情報には、例えば、バージョン情報そのものでもよく、ブートローダのハッシュ値など、ブートローダそのもののバイナリ列に対して所定の演算を行って得られた値などでもよい。セキュアエレメントは、自身が開設した秘匿通信路を経由して、取得した特定情報及び保持した特定情報を外部のサーバへ送信してもよく、あるいは、取得した特定情報と保持した特定情報との比較結果を外部のサーバへ送信してもよい。これにより、セキュアエレメントが開設した秘匿通信路を経由して、セキュアエレメント内部及びIoTデバイスにロードされたブートローダそれぞれのバージョンを確認することができる。
本実施の形態のセキュアエレメントは、秘匿通信路を介して外部のサーバからの指令に基づいて、保持された、ブートローダ、ブートローダ検証鍵、ブートローダの署名、ブートローダ検証鍵証明書、ソフトウェア検証鍵、及びソフトウェア検証鍵証明書の全部又は一部を更新する。
秘匿通信路を介して外部のサーバからの指令に基づいて、保持された、ブートローダ、ブートローダ検証鍵、ブートローダの署名、ブートローダ検証鍵証明書、ソフトウェア検証鍵、及びソフトウェア検証鍵証明書の全部又は一部を更新する。セキュアエレメントが開設した秘匿通信路を経由して、セキュアエレメント内のブートローダや鍵を外部から更新することができる。これにより、安全確実にブートローダを更新できるだけでなく、デバイスのブート可否をセキュアエレメント(強固なRoot of Trust)経由で外部制御することもできる。後続のソフトウェアも検証対象とする場合は、当該ソフトウェアの起動可否をセキュアエレメント経由で外部制御することができる。
1 ネットワーク秘匿通信路
11 ブートローダ
12 IoTデバイスOS
21 セキュアエレメントCA公開鍵
22 セキュアエレメントCA秘密鍵
23 ブートローダ検証鍵(公開鍵)
24 ブートローダ署名生成鍵(秘密鍵)
25 OS検証鍵(公開鍵)
26 OS署名生成鍵(秘密鍵)
31 ブートローダデジタル署名
32 ブートローダ検証鍵証明書
33 OSデジタル署名
34 OS検証鍵証明書
40 セキュアエレメントとの通信路
41 起動前ユーザ認証機能
42 ブートローダ情報読出機能
43 ブートローダ検証機能
44 ブートローダ実行機能
50 SoC
51 ROM
52 NVM
53 RAM(REE)
54 RAM(TEE)
60 セキュアエレメント
100 IoTデバイス
200 ブート管理サーバ

Claims (14)

  1. セキュアブート機能を有するデバイスであって、
    ブートローダ、ブートローダ検証鍵、及びブートローダの署名を含むブートローダ情報を保持するセキュアエレメントと、
    初期実行コードとして、ブートローダ情報読出処理、ブートローダ検証処理、及びブートローダ実行処理を実行順序も含めて保持する書き換え不可能な不揮発性メモリと
    を備え、
    デバイス起動時に、前記ブートローダ情報読出処理を実行して、前記セキュアエレメントから前記ブートローダ情報を読み出し、
    前記ブートローダ検証処理は、
    前記ブートローダ検証鍵、及び前記ブートローダの署名を用いて前記ブートローダを検証し、
    検証が成功した場合、前記ブートローダ実行処理は、前記ブートローダを実行する、
    デバイス。
  2. 前記セキュアエレメントは、さらに、ブートローダ検証鍵証明書を保持し、
    前記書き換え不可能な不揮発性メモリは、セキュアエレメントCA公開鍵を保持し、
    デバイス起動時に、前記ブートローダ情報読出処理を実行して、前記セキュアエレメントから前記ブートローダ検証鍵証明書を読み出し、
    前記ブートローダ検証処理は、
    前記セキュアエレメントCA公開鍵、及び読み出された前記ブートローダ検証鍵証明書を用いて前記ブートローダ検証鍵を検証し、
    検証が成功した場合、前記ブートローダを検証する、
    請求項1に記載のデバイス。
  3. 前記セキュアエレメントは、さらに、ソフトウェア検証鍵を保持し、
    デバイス起動時に、前記ブートローダ情報読出処理を実行して、前記セキュアエレメントから前記ソフトウェア検証鍵を読み出し、
    前記ブートローダは、
    前記ソフトウェア検証鍵を用いて前記ブートローダ以降に実行されるソフトウェアイメージを検証する、
    求項2に記載のデバイス。
  4. 前記セキュアエレメントは、さらに、ソフトウェア検証鍵証明書を保持し、
    デバイス起動時に、前記ブートローダ情報読出処理を実行して、前記セキュアエレメントから前記ソフトウェア検証鍵証明書を読み出し、
    前記ブートローダは、
    前記セキュアエレメントCA公開鍵、及び前記ソフトウェア検証鍵証明書を用いてソフトウェア検証鍵を検証し、
    検証が成功した場合、前記ソフトウェアイメージを検証する、
    請求項3に記載のデバイス。
  5. 前記セキュアエレメントから読み出されたブートローダ情報を保持するセキュアな領域を有するSoCを備える、
    請求項1から請求項4のいずれか一項に記載のデバイス。
  6. 前記セキュアエレメントは、ユーザ認証情報を保持し、
    デバイス起動時に、入力されたユーザ認証情報と保持したユーザ認証情報とに基づいてユーザ認証を行い、
    ユーザ認証が成功した場合、前記ブートローダ情報読出処理を行う、
    請求項1から請求項5のいずれか一項に記載のデバイス。
  7. セキュアブート機能を有するデバイスに実装されるセキュアエレメントであって、
    ブートローダ、ブートローダ検証鍵、及びブートローダの署名を含むブートローダ情報を保持し、
    デバイス起動時に、前記ブートローダの検証のために前記ブートローダ情報を前記デバイスへ出力する、
    セキュアエレメント。
  8. 前記ブートローダ情報は、前記ブートローダ検証鍵を検証するためのブートローダ検証鍵証明書を含み、
    デバイス起動時に、前記ブートローダ検証鍵証明書を前記デバイスへ出力する、
    請求項7に記載のセキュアエレメント。
  9. 前記ブートローダ情報は、前記ブートローダ以降に実行されるソフトウェアイメージを検証するためのソフトウェア検証鍵を含み、
    デバイス起動時に、前記ソフトウェア検証鍵を前記デバイスへ出力する、
    請求項7又は請求項8に記載のセキュアエレメント。
  10. 前記ブートローダ情報は、前記ソフトウェア検証鍵を検証するためのソフトウェア検証鍵証明書を含み、
    デバイス起動時に、前記ソフトウェア検証鍵証明書を前記デバイスへ出力する、
    請求項9に記載のセキュアエレメント。
  11. ユーザ認証情報を保持し、
    デバイス起動時に、入力されたユーザ認証情報と保持したユーザ認証情報とに基づいてユーザ認証を行い、
    ユーザ認証が成功した場合、前記ブートローダ情報を前記デバイスへ出力する、
    請求項7から請求項10のいずれか一項に記載のセキュアエレメント。
  12. ブートローダのバージョンを特定する特定情報を保持し、
    前記デバイスからブートローダの特定情報を取得し、
    取得した特定情報及び保持した特定情報、あるいは、取得した特定情報と保持した特定情報との比較結果を、秘匿通信路を介して外部のサーバへ送信する、
    請求項7から請求項11のいずれか一項に記載のセキュアエレメント。
  13. 秘匿通信路を介して外部のサーバからの指令に基づいて、保持された、ブートローダ、ブートローダ検証鍵、ブートローダの署名、ブートローダ検証鍵証明書、ソフトウェア検証鍵、及びソフトウェア検証鍵証明書の全部又は一部を更新する、
    請求項7から請求項12のいずれか一項に記載のセキュアエレメント。
  14. 初期実行コードとして、ブートローダ情報読出処理、ブートローダ検証処理、及びブートローダ実行処理を実行順序も含めて書き換え不可能な不揮発性メモリに保持しておき、
    デバイス起動時に、前記ブートローダ情報読出処理を実行して、セキュアエレメントから、ブートローダ、ブートローダ検証鍵、及びブートローダの署名を含むブートローダ情報を読み出し、
    前記ブートローダ検証処理は、
    前記ブートローダ検証鍵、及び前記ブートローダの署名を用いて前記ブートローダを検証し、
    検証が成功した場合、前記ブートローダ実行処理は、前記ブートローダを実行する、
    デバイスのセキュアブート方法。
JP2020061466A 2020-03-30 2020-03-30 デバイス、セキュアエレメント及びデバイスのセキュアブート方法 Active JP7428049B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020061466A JP7428049B2 (ja) 2020-03-30 2020-03-30 デバイス、セキュアエレメント及びデバイスのセキュアブート方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020061466A JP7428049B2 (ja) 2020-03-30 2020-03-30 デバイス、セキュアエレメント及びデバイスのセキュアブート方法

Publications (2)

Publication Number Publication Date
JP2021164009A JP2021164009A (ja) 2021-10-11
JP7428049B2 true JP7428049B2 (ja) 2024-02-06

Family

ID=78003841

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020061466A Active JP7428049B2 (ja) 2020-03-30 2020-03-30 デバイス、セキュアエレメント及びデバイスのセキュアブート方法

Country Status (1)

Country Link
JP (1) JP7428049B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102540451B1 (ko) * 2022-02-24 2023-06-08 유비벨록스(주) 사물인터넷 디바이스 보안부팅 시스템 및 이를 이용한 사물인터넷 디바이스 보안부팅 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006092533A (ja) 2004-09-23 2006-04-06 Hewlett-Packard Development Co Lp コンピュータセキュリティシステムおよび方法
WO2008004524A1 (fr) 2006-07-03 2008-01-10 Panasonic Corporation Dispositif de certification, dispositif de vérification, système de vérification, programme informatique et circuit intégré
WO2012160760A1 (ja) 2011-05-25 2012-11-29 パナソニック株式会社 情報処理装置および情報処理方法
JP2014500989A (ja) 2010-09-28 2014-01-16 ヘッドウォーター パートナーズ I エルエルシー セキュア装置データレコード
JP2015537323A (ja) 2012-12-14 2015-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 「ブリング・ユア・オウン」管理のための起動機構
JP2017182808A (ja) 2016-03-30 2017-10-05 モトローラ モビリティ エルエルシーMotorola Mobility Llc Rfidベースの装置のワイヤレスアップデート

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006092533A (ja) 2004-09-23 2006-04-06 Hewlett-Packard Development Co Lp コンピュータセキュリティシステムおよび方法
WO2008004524A1 (fr) 2006-07-03 2008-01-10 Panasonic Corporation Dispositif de certification, dispositif de vérification, système de vérification, programme informatique et circuit intégré
JP2014500989A (ja) 2010-09-28 2014-01-16 ヘッドウォーター パートナーズ I エルエルシー セキュア装置データレコード
WO2012160760A1 (ja) 2011-05-25 2012-11-29 パナソニック株式会社 情報処理装置および情報処理方法
JP2015537323A (ja) 2012-12-14 2015-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 「ブリング・ユア・オウン」管理のための起動機構
JP2017182808A (ja) 2016-03-30 2017-10-05 モトローラ モビリティ エルエルシーMotorola Mobility Llc Rfidベースの装置のワイヤレスアップデート

Also Published As

Publication number Publication date
JP2021164009A (ja) 2021-10-11

Similar Documents

Publication Publication Date Title
JP6595822B2 (ja) 情報処理装置及びその制御方法
US20210012008A1 (en) Method of initializing device and method of updating firmware of device having enhanced security function
US6009524A (en) Method for the secure remote flashing of a BIOS memory
JP4067985B2 (ja) アプリケーション認証システムと装置
US9830456B2 (en) Trust transference from a trusted processor to an untrusted processor
JP5690412B2 (ja) ハードウェアデバイスの鍵プロビジョン方法および装置
ES2236530T3 (es) Metodo de seguridad para un dispositivo electronico, un sistema de seguridad y un dispositivo electronico.
US8019994B2 (en) Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS
WO2011118034A1 (ja) 情報記録装置
JP4890309B2 (ja) 情報処理装置及び情報保護方法
JP6720581B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
US20160267273A1 (en) Software update apparatus and computer-readable storage medium storing software update program
TW201324225A (zh) 用於電子裝置之暫時安全開機流程之系統與方法
JP2008226159A (ja) 情報処理装置、ソフトウェア更新方法及び画像処理装置
TW202141321A (zh) 安全儲存及載入韌體的方法及電子裝置
JP2012009938A (ja) 情報処理装置及びプログラム
JP2009253783A (ja) 携帯端末、データ保護方法およびデータ保護用プログラム
JP2016146618A (ja) 情報処理装置
KR102256249B1 (ko) 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 펌웨어 업데이트 방법
TW202145007A (zh) 應用加速驗證映像檔方法的系統
JP7428049B2 (ja) デバイス、セキュアエレメント及びデバイスのセキュアブート方法
CN110532777B (zh) 安全启动***及方法、终端设备及其核心***
JP7019976B2 (ja) セキュアエレメント、コンピュータプログラム、デバイス、os起動システム及びos起動方法
AU2018398972B2 (en) Checking the integrity of an electronic device
JP5582231B2 (ja) 情報処理装置、真正性確認方法、及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240108

R150 Certificate of patent or registration of utility model

Ref document number: 7428049

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150