Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7565458B2 - 情報処理装置および鍵管理装置 - Google Patents
[go: Go Back, main page]

JP7565458B2 - 情報処理装置および鍵管理装置 - Google Patents

情報処理装置および鍵管理装置 Download PDF

Info

Publication number
JP7565458B2
JP7565458B2 JP2023563517A JP2023563517A JP7565458B2 JP 7565458 B2 JP7565458 B2 JP 7565458B2 JP 2023563517 A JP2023563517 A JP 2023563517A JP 2023563517 A JP2023563517 A JP 2023563517A JP 7565458 B2 JP7565458 B2 JP 7565458B2
Authority
JP
Japan
Prior art keywords
verification
key
information processing
expected value
processing device
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
JP2023563517A
Other languages
English (en)
Other versions
JPWO2023095394A1 (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.)
Astemo Ltd
Original Assignee
Hitachi Astemo 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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Publication of JPWO2023095394A1 publication Critical patent/JPWO2023095394A1/ja
Application granted granted Critical
Publication of JP7565458B2 publication Critical patent/JP7565458B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Description

本発明は情報処理装置及び鍵管理装置に関し、特にプログラム検証用鍵の更新にともなう検証期待値の切替方法に関する。
自動車、家電、医療機器等に搭載される組み込みシステムでは、攻撃者によって、不正にソフトウェアやファームウェアが書き換えられた場合、甚大な被害に繋がることが懸念されている。このような脅威への対策として、プログラム起動時に、改ざんされていないプログラムのみを起動できるプログラム検証が検討されている。
プログラム検証の一手法として、特許文献1では、プログラム起動時に、検証対象となるプログラムと、暗号技術に基づく検証処理と、検証処理に用いる鍵とを用いて検証値を算出し、事前に算出していた検証期待値と一致するかどうかを検証する技術が開示されている。
暗号技術では演算に使用する鍵が一度でも危殆化してしまうと、プログラム検証そのものの安全性を担保できなくなってしまう。鍵の危殆化リスクを低減する方法の一つとして、鍵を定期的に更新することにより、攻撃者に使用している鍵を特定されるリスクを低減する方法が考えられる。
再公表2009/044533号公報
プログラム検証は、検証対象プログラムが同じであっても、鍵値が異なれば算出される検証値も異なる特性があるため、鍵を更新した場合は異なる検証期待値が必要となる。しかしながら、従来の技術では、鍵更新にともない、適切に検証期待値の切替をすることができない課題があった。
特許文献1の技術によれば、検証対象となるプログラム、および当該プログラムの検証期待値を更新することが可能である。しかしながら、鍵を更新した直後は、更新後の鍵値と、当該鍵値に対応する検証期待値が一致しないため、プログラム検証で常に失敗し、復旧不可となる虞がある。
これに対して、プログラム検証機能を無効化した後に、検証期待値を含むプログラムを更新し、当該検証期待値が更新された後に、再びプログラム検証機能を有効化させる方法が考えられる。しかし、プログラム検証機能を無効化する機能を備えることになるため、その機能自身が攻撃者に悪用される脆弱性になる虞がある。
本発明は、以上の問題に鑑みなされたものであり、プログラム検証機能を無効化せずに、プログラム検証用鍵の更新に対応可能な情報処理装置を提供することを目的とする。
本発明に係る情報処理装置の一例は、プログラム検証用の鍵を用いて検証値を算出し、当該検証値が、予め記憶された検証期待値と一致しているか否かを検証する情報処理装置であって、鍵を更新する鍵更新部と、鍵更新部によって更新される鍵に対応する検証期待値を予め格納する記憶部と、更新された鍵に基づいて算出された検証値を検証するときに、検証のために参照される記憶部内の検証期待値を、更新された鍵に対応する検証値に切り替える検証期待値切替部と、を備える。
本発明に係る情報処理装置は、プログラム検証機能を無効化せずに、プログラム検証用鍵を更新することにより、長期間のライフサイクルに亘って高い安全性を提供することができる。
本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
本発明の一実施例に係る情報処理装置の構成を示す図。 鍵更新およびプログラム検証処理に関する概要処理シーケンスを示す図。 鍵更新の概要処理フローを示す図。 プログラム検証の概要処理フローを示す図。 鍵関連情報のデータ構造を示す図。 検証期待値情報のデータ構造を示す図。 参照先検証期待値情報のデータ構造を示す図。 検証範囲情報のデータ構造を示す図。 本発明の一実施例に係る鍵管理装置の構成を示す図。 鍵更新にともなう鍵および検証期待値生成の概要処理フローを示す図。 鍵マスタのデータ構造を示す図。
以下、本発明の実施形態について、実施例を用い、図面を参照しながら詳細に説明する。
[情報処理装置1]
まず、本発明の一実施例に係る情報処理装置1について説明する。
本実施例では、車載ネットワークに接続された情報処理装置を対象としたプログラム検証用鍵の更新方法の例を説明する。ただし、本発明の技術的思想は、この実施例に限定されるものではない。
図1は、本実施例における情報処理装置1の構成を示す。情報処理装置1は、たとえば車両に搭載され、車両を制御する装置である。ただし、情報処理装置1は車両に搭載されないものであってもよく、車両以外の対象を制御する装置であってもよい。
情報処理装置1は、通信バス2を介して他の情報処理装置1に接続されている。情報処理装置1は、複数の情報処理装置1に対して通信可能に接続される。また、前記情報処理装置1は、鍵を更新するための装置である鍵管理装置3と直接接続されてもよいし、DLC(Data Link Coupler)のようなインタフェースを経由して接続されてもよいし、前記情報処理装置1のいずれかを経由して接続されてもよい。本実施例では、一例として情報処理装置1と鍵管理装置3とが通信バス2を介して接続されている例を開示している。
通信バス2は物理的には複数の通信バスを含んでもよく、各通信バスの規格はすべて同一でもよいし異なっていてもよい。これら通信バスの規格はCAN(登録商標)、LIN(登録商標)、FlexRay(登録商標)、イーサネット(登録商標)などである。
情報処理装置1は、不図示の演算手段および不図示の記憶手段を備える。演算手段はたとえばCPUを備える。記憶手段はたとえば不揮発性メモリおよび揮発性メモリを備える。記憶手段に格納されたプログラムを演算手段が実行することにより、情報処理装置1は本明細書に記載される機能を実現する。
たとえば情報処理装置1はその機能部として、鍵更新制御部12、検証期待値切替部13、プログラム検証部14、プログラム実行制御部15、プログラム更新部16、プログラム更新依頼管理部17を備える。本明細書において、CPUまたはこれらの機能部が実行する処理は、情報処理装置1が実行するということもできる。
また、記憶手段は、記憶部100を備える。記憶部100は、全体が不揮発性であってもよいし、一部が揮発性であってもよい。また、情報処理装置1は、通信インタフェースであり通信に必要な演算を行う通信部11を備える。
図1に示す機能ブロック図は例示であり、機能の単位および名称はこれに限らない。たとえば、本実施例において検証期待値切替部13が実現する機能は、図1に示す他の機能部によって実現されてもよく、図1に示さない機能部によって実現されてもよい。
通信部11は、通信バス2を介して情報処理装置1からのメッセージを受信するとともに、通信バス2を介して他の情報処理装置1や車外の装置に対してメッセージを送信する。
鍵更新制御部12は、情報処理装置1が鍵更新依頼を受けたときに、記憶部100に格納する鍵を更新する。検証期待値切替部13は、プログラム検証に使用する鍵に合わせて適切な検証期待値を設定する。プログラム検証部14は、検証対象のプログラムに異常がないかを検証する。プログラム実行制御部15は、前記プログラム検証部14の検証結果に基づいて、プログラムの実行可否を制御する。プログラム更新部16は、情報処理装置1に格納されているプログラムを新しいプログラムに更新する。プログラム更新依頼管理部17は、通信部11を用いてプログラム更新を依頼するメッセージを送信するタイミングを管理する。
記憶部100には、プログラム検証時に使用する鍵値を含む鍵関連情報101、プログラム検証に用いる複数の鍵を含む検証期待値情報102、プログラム検証の検証範囲を示す検証範囲情報103、プログラム検証の際に参照する期待値を設定する参照先検証期待値情報104が記憶される。
記憶部100についても同様に、図1に示す機能ブロック図は例示であり、機能の単位および名称はこれに限らない。たとえば、本実施例において参照先検証期待値情報104が保持する情報は、図1の記憶部100に示す他の機能部によって保持されてもよく、図1の記憶部100に示さない機能部によって保持されてもよい。
図2は、情報処理装置1が鍵を更新し、鍵更新後にプログラムを検証してから実行するまでの処理を示すシーケンスである。以下に説明する各ステップの実行主体は、たとえば情報処理装置1の不図示のCPUである。
ステップ201では、情報処理装置1の通信部11は、鍵管理装置3から鍵更新依頼を受信する。
ステップ202では、情報処理装置1の鍵更新制御部12は上記ステップ201で受信した鍵更新依頼に関する通信データが正しいかどうかを検証する。
ステップ203では、情報処理装置1の鍵更新制御部12は更新対象の鍵値を、上記ステップ201で受信した新しい鍵値に書き換える。
ステップ204では、情報処理装置1の通信部11は上記ステップ203で更新した鍵の更新結果を鍵管理装置3に送信する。
ステップ205では、鍵管理装置3は上記ステップ204で情報処理装置1から受信した鍵更新結果に基づいて、正しく鍵を更新できたかを検証する。
ステップ206では、情報処理装置1の検証期待値切替部13は鍵更新の有無を確認し、検証期待値を切り替える必要があるかを検証する。
ステップ207では、情報処理装置1の検証期待値切替部13は上記ステップ206で検証期待値を切り替える必要があると判定した際に、更新前の鍵が参照していた検証期待値から、更新後の鍵に適した検証期待値を参照先に切り替える。
ステップ208では、情報処理装置1のプログラム検証部14は上記ステップ203で更新した鍵と、上記ステップ207で切り替えた検証期待値と、検証対象のプログラムに基づいて、プログラムの異常有無を検証する。
ステップ209では、情報処理装置1のプログラム実行制御部15は上記ステップ208で検証対象プログラムに異常が無いと判定した場合、当該プログラムを起動し、実行する。
以上のステップにより、情報処理装置1は、プログラム検証機能を無効化することなく、鍵を新しい鍵に更新できる。
図3は、上記ステップ201からステップ205までの鍵更新に関する処理を示すフローチャートである。鍵更新に関する技術として、AUTOSARが発行するSpecification of Secure Hardware Extensions(SHE)において、Memory Update Protocol(MUP)が公開されている。以下に説明する鍵更新は、SHE/MUPを例に説明するが、他の鍵更新プロトコルを採用してもよい。
ステップ301では、鍵更新制御部12は鍵管理装置3から鍵更新依頼を受信する。例えば、鍵更新制御部12は、SHE/MUPが定めるM1、M2、M3フォーマットの通信データを受信する。
ステップ302では、鍵更新制御部12は上記ステップ301で受信した鍵更新依頼に関する通信データが正しいかどうかを検証する。例えば、上記ステップ301で受信したM3と、M1とM2と所定の鍵に基づいて算出したAES-CMACの演算結果を比較し、一致していれば正しいと判定する。なお、所定の鍵として、初期値「0」を使用してもよいし、予め情報処理装置1と鍵管理装置3との間で共有している鍵値を用いてもよい。
ステップ303では、鍵更新制御部12は上記ステップ302の検証結果に基づいて、更新内容に不備がなければステップ304に進み、更新内容に不備があればステップ308に進む。
ステップ304では、鍵更新制御部12は上記ステップ301で受信した更新内容に基づいて、更新対象となる鍵を特定する。例えば、前記M1に含まれる更新対象鍵スロットIDに基づいて、更新対象となる鍵スロットIDを特定する。
ステップ305では、鍵更新制御部12は更新対象の鍵値を、受信した新しい鍵値に書き換える。例えば、上記ステップ301で受信したM2を所定の鍵を用いて復号し、M2に含まれる更新鍵を取得し、鍵関連情報101において、上記ステップ304で特定した鍵スロットIDに紐づく鍵を、前記更新鍵で書き換える。なお、所定の鍵として、初期値「0」を使用してもよいし、予め情報処理装置1と鍵管理装置3との間で共有している鍵値を用いてもよい。
図5に、上記ステップ305において更新鍵を保管する鍵関連情報101のデータ構造を示す。鍵関連情報101は、鍵関連情報101に格納される各鍵を識別するための鍵スロットID1011と、鍵の値を示す鍵値1012と、鍵更新のたびにカウントアップする更新カウンタ1013からなる。なお、更新カウンタ1013の代わりに、鍵更新の有無を示すフラグを用いてもよく、鍵更新にともない変化する情報であればその他の方法でもよい。
例えば、鍵更新制御部12は上記ステップ304においてM1から更新対象となる鍵スロットIDとして「0x01」を取得している場合、鍵関連情報101の鍵スロットID1011が「0x01」に紐づく鍵値1012を、M2から復号して取得した更新鍵に書き換えるとともに、更新カウンタ1013のカウンタ値を「0x00000001」から「0x00000002」に更新する。
ステップ306では、鍵更新制御部12は鍵管理装置3に送信する鍵の更新結果を作成する。例えば、鍵更新制御部12は、上記ステップ305で更新した鍵更新内容に関する情報を示すM4と、更新後の鍵と前記M4に基づいて算出したAES-CMACの演算結果を示すM5を含む鍵更新結果情報を作成する。
ここで、データM4は、M1と暗号化(鍵は更新鍵を元に生成した鍵)した更新カウンタ値を結合したデータであり、M1-M3の送信者が、情報処理装置1で正しくメモリスロットを更新出来たかどうかの確認に使用する。データM5は、M4のCMAC認証値(鍵は更新鍵を元に生成した鍵)であり、M1-M3の送信者がM4の正当性確認に使用する。
ステップ307では、鍵更新制御部12は通信部11を用いて、上記ステップ306で作成した鍵更新結果情報を鍵管理装置3に送信する。なお、鍵管理装置3は、情報処理装置1から受信した鍵更新結果に基づいて、正しく鍵を更新できたかを検証する。例えば、上記ステップ301で情報処理装置1に送信した更新鍵と本ステップ307で送られてくるM4とに基づいて算出したAES-CMACの演算結果と、本ステップ307で送られてくるM5の値が一致していれば正しく鍵を更新することができたと判定する。
以上のステップにより、情報処理装置1は、プログラム検証用の鍵を、新しい鍵に安全に更新できる。
図4は、上記ステップ206からステップ209までのプログラム検証に関する処理を示すフローチャートである。以下に説明するプログラム検証処理は、上記ステップ203の直後に実施してもよく、装置外からの指示を受信したタイミングで実施してもよく、再起動時や定期的なタイミングで実施してもよい。
ステップ401では、検証期待値切替部13は鍵が更新されたかどうかを検証する。例えば、更新カウンタ1013の前回カウンタ値と最新カウンタ値を備えておき、カウンタ値に差分があった場合に鍵が更新されたと判定してもよい。また、上記ステップ305において鍵更新時に更新した履歴情報をフラグ情報として持たせておくことで鍵が更新されたと判定してもよい。また、上記ステップ203の直後に実施する場合、鍵が更新されているものと判定してもよい。また、装置外からの指示を受けたときに、指示内容に従って鍵が更新されたかどうかを判定してもよい。その他、鍵が更新されたことが判別可能な方法を用いることで、鍵の更新有無を判定してもよい。
ステップ402では、検証期待値切替部13は上記ステップ401において、鍵が更新されたと判定した場合、ステップ403に進み、鍵が更新されていないと判定した場合、ステップ405に進む。
ステップ403では、検証期待値切替部13は検証期待値情報102の中から更新した鍵に適した新たな検証期待値を選定する。
図6に、上記ステップ403において選定する検証期待値を保管する検証期待値情報102のデータ構造を示す。検証期待値情報102は、鍵関連情報101に格納される各鍵を識別する鍵スロットID1021と、プログラム検証に用いる鍵値に紐づく検証期待値と更新後の鍵値に紐づく検証期待値を格納する検証期待値1022と、各検証期待値が配置されるアドレス情報を示す配置アドレス1023と、検証期待値1022の使用状況を示す使用状況1024からなる。
例えば、検証期待値切替部13は、更新された鍵スロットID1011に該当する鍵スロットID1021に紐づく検証期待値1022の中から、使用状況1024が「使用中」となっている検証期待値1022が「検証期待値A」よりも一段下の「検証期待値B」を選定する。使用状況1024が「使用中」となる検証期待値1022が「検証期待値C」となっている場合、「検証期待値A」に戻してもよい。このとき、鍵が更新されるたびに、選定する検証期待値は「検証期待値A→検証期待値B→検証期待値C→検証期待値A→・・・」となる。なお、前記のように検証期待値の選定順を一定の順番で繰り返してもよいし、鍵値と検証期待値の紐づけ関係が担保されていれば、順不同でもよい。
また、検証期待値切替部13は、上記ステップ403より以前の段階において鍵更新の際に次回選定する検証期待値の指示を情報処理装置1の外部から受信しておいてもよい。また、検証期待値切替部13は、更新カウンタ1013のカウンタ値に基づいて検証期待値を選定してもよい。例えば、更新カウンタの値「A」と検証期待値1022に格納する検証期待値の合計数「n=3」において、「A mod n」の算出結果が「1」の場合、「検証期待値A」を選定し、算出結果が「2」の場合、「検証期待値B」を選定し、算出結果が「0」の場合、「検証期待値C」を選定してもよい。このとき、鍵が更新されるたびに、選定する検証期待値は「検証期待値A→検証期待値B→検証期待値C→検証期待値A→・・・」となる。
以上の場合において、更新した鍵値1012と選定する検証期待値1022の適した組合せを担保するために、鍵更新を実施する管理者が、鍵更新後に使用する検証期待値に適した鍵を新たな鍵として更新してもよい。また、情報処理装置1が装置外に対して、鍵更新後に使用する検証期待値の情報を通知し、前記通知結果に基づいて検証期待値と鍵が適切な組合せとなるように新たな対象の鍵を更新してもよい。ステップ404では、検証期待値切替部13は上記ステップ403において選定した検証期待値を参照先検証期待値情報104に登録する。
図7に、上記ステップ404において選定した検証期待値を登録する参照先検証期待値情報104のデータ構造を示す。参照先検証期待値情報104は、選定した検証期待値と紐づく鍵スロットを示す鍵スロットID1041と、プログラム検証で使用する参照先検証期待値1042からなる。なお、参照先検証期待値1042は、具体的な検証期待値でもよく、或いは上記ステップ403で選定した検証期待値が格納されるアドレス情報を登録してもよく、プログラム検証に用いる検証期待値を特定できればその他の方法を用いてもよい。例えば、検証期待値切替部13は上記ステップ403において、鍵スロットID1021が「0x01」に紐づく検証期待値1022から「検証期待値B」を選定し、鍵スロットID1041が「0x01」となる参照先検証期待値1042の値を「検証期待値A」から「検証期待値B」に変更する。
ステップ405では、プログラム検証部14はプログラム検証に用いる鍵を、鍵関連情報101の鍵値1012から取得する。
ステップ406では、ステップ405で取得した鍵に対応する検証期待値を取得する。
ステップ407では、プログラム検証部14はプログラム検証の対象となるプログラムが格納される領域を、検証範囲情報103から取得する。
図8に、上記ステップ407においてプログラム検証部14が検証対象プログラムの格納領域を取得する検証範囲情報103のデータ構造を示す。検証範囲情報103は、プログラム検証に用いる鍵スロットを示す鍵スロットID1031と、検証対象プログラムを示す検証対象プログラム1032と、検証対象プログラムのうち検証対象となる範囲情報を示す検証範囲アドレス1033からなる。
例えば、プログラム検証部14は上記ステップ405で取得した鍵値1012の鍵スロットIDに該当する検証範囲アドレス1033を取得する。ステップ407では、プログラム検証部14は上記ステップ406で取得した検証範囲アドレス1033が指定するプログラム情報を取得する。
ステップ408では、プログラム検証部14は上記ステップ405で取得した鍵値1012と、上記ステップ407で取得した検証対象プログラムに基づいて検証値を算出し、上記ステップ406で取得した検証期待値と一致するかどうかを検証し、一致した場合は鍵値1012や検証対象プログラムなどの検証対象に不備がないと判定し、一致しなかった場合は鍵値1012や検証対象プログラムなどの検証対象に不備があると判定する。なお、検証値として、DSA、ECDSA、RSA等の公開鍵暗号技術を用いて生成した署名値でもよく、AES-CMACのような共通鍵暗号技術を用いて生成したMAC(Message Authentication Code)の値でもよく、ハッシュやチェックサムでもよい。
ステップ409では、プログラム検証部14は上記ステップ408において検証対象に不備がないと判定した場合、ステップ410に進み、検証対象に不備があると判定した場合、ステップ411に進む。
ステップ410では、プログラム実行制御部15は上記ステップ408において検証されたプログラムを実行する。
ステップ411では、プログラム実行制御部15は所定のエラー処理を実行する。例えば、プログラムを停止させてもよく、一部の機能のみを有したプログラムのみを実行するのでもよい。
以上のステップにより、情報処理装置1は、プログラム検証用の鍵が新しい鍵に更新されたとしても、プログラム検証機能の無効化やプログラム自体の更新を必要とせず、鍵更新前に使用していた検証期待値を更新後の鍵に適した検証期待値に切り替えることにより、正しくプログラム検証を継続できる。
また、例えば、上記ステップ204において、情報処理装置1に搭載されるプログラム更新依頼管理部17が鍵管理装置3に対して、未使用の検証期待値の数に基づいて、もしくは、切り替えの回数が所定の回数に達する前に、例えば検証期待値の残り個数が所定の数よりも少なくなった場合に、新たな検証期待値の束を含めたプログラムに更新するように依頼し、プログラム更新部16を用いて新たな検証期待値1022を含むプログラムに更新することもできる。これにより、鍵更新にともなって使用済みとなる検証期待値が増加したとしても、常に未使用の鍵と検証期待値のペアを使用したプログラム検証を実現できるため、安全性を高めることができる。
[鍵管理装置3]
次に、本発明の一実施例に係る鍵管理装置3について説明する。一実施例に係る鍵管理装置3は、通信バス2を介して情報処理装置1と接続されている。
鍵管理装置3は、情報処理装置1との間で各種データの送受信を行う通信部31を有する。通信部31は、図2におけるステップ201で情報処理装置1に鍵更新依頼を送信し、またステップ204において情報処理装置1から鍵更新の結果通知を受信する。
また、鍵管理装置3は、情報処理装置1の有する複数の検証期待値に対応する鍵を生成する鍵生成部32を有する。鍵生成部32は、将来利用する分も含めた鍵を生成し、このうち最初に利用する鍵を出荷工場で情報処理装置1に格納する。
また、鍵管理装置3は、検証期待値生成部33を有する。検証期待値生成部33は、上記生成した鍵ごとに検証期待値を生成し、当該検証期待値を出荷工場で情報処理装置1に格納する。
また、検証期待値更新依頼部34は、検証期待値生成部33が検証期待値を生成すると、情報処理装置1の記憶部100に格納されている検証期待値の束を、新たな検証期待値の束に更新するように、情報処理装置1に依頼する。そして、情報処理装置1は、上記の検証期待値の更新依頼の受信に伴い、検証期待値を更新する。
なお、上記では、鍵管理装置3が直接情報処理装置1に各種情報を送信する例を説明したが、これに限らず、情報処理装置1以外の装置に通知するようにしてもよい。例えば、不図示のプログラム更新管理システムに通知し、情報処理装置1のプログラム更新と一緒に、検証期待値を安全に更新するようにしてもよい。より好ましくは、更新プログラムの機密性や完全性を担保したプログラム更新技術を用いてもよい。
また、鍵更新依頼部35は、所定の期限までに、情報処理装置1に対して格納している鍵を新たな鍵に更新するように依頼するとともに、更新した検証期待値に対応する鍵を、鍵マスタ情報から検索して情報処理装置1に送信する。そして、鍵更新結果検証部36は、鍵更新が正しく実施できているかどうかを検証する。
図11に、記憶部37に格納された鍵マスタ情報371のデータ構造を示す。検証範囲情報103は、検証対象のプログラムが格納された製品に対応する製品ID3711、プログラム検証に用いる鍵スロットを示す鍵スロットID3712、及び鍵スロットID3712のそれぞれに格納される、世代ごとの鍵情報3713からなる。
上記の鍵管理装置3によれば、予め複数の検証期待値に対応する鍵に関する鍵マスタ情報371を備えているため、検証期待値の更新の度に鍵を生成する必要がなくなり、演算負荷の軽減が可能になる。
以上で説明した本発明の実施例によれば、以下の作用効果を奏する。
(1)本発明の一実施例に係る情報処理装置は、プログラム検証用の鍵を用いて検証値を算出し、当該検証値が、予め記憶された検証期待値と一致しているか否かを検証する情報処理装置であって、鍵を更新する鍵更新部と、鍵更新部によって更新される鍵に対応する検証期待値を予め格納する記憶部と、更新された鍵に基づいて算出された検証値を検証するときに、検証のために参照される記憶部内の検証期待値を、更新された鍵に対応する検証期待値に切り替える検証期待値切替部と、を備える。
上記構成により、プログラム検証機能を無効化せずに、プログラム検証用鍵を更新することにより、長期間のライフサイクルに亘って高い安全性を提供することができる。
(2)記憶部は、更新される鍵に対応する検証期待値を予め複数格納し、検証期待値切替部は、複数の検証期待値の中から未使用の検証期待値に切り替える。これにより、同じ検証期待値を複数回使用することを避け、常に新しい検証期待値及び対応する鍵を使用するため、より高い安全性を確保できる。
(3)記憶部は、更新される鍵に対応する検証期待値を予め複数格納し、検証期待値切替部は、複数の検証期待値の中に未使用の検証期待値が無かったときに、使用済みの検証期待値の中から何れかの第二検証期待値に切り替える。これにより、記憶する検証期待値の個数を抑制することが可能になり、メモリ容量の削減が図れる。
(4)切り替えの回数が所定回数に達する前に、使用中の検証期待値を含む検証期待値の更新が必要となるタイミングに関する情報を装置外に通知するプログラム更新依頼管理部と、をさらに備える。これにより、鍵更新にともなって使用済みとなる検証期待値が増加したとしても、常に未使用の鍵と検証期待値のペアを使用したプログラム検証を実現できるため、安全性を高めることができる。
(5)プログラム更新依頼管理部は未使用の検証期待値の残数が所定の値よりも少なくなったときに、使用中の検証期待値を含む検証期待値の更新が必要となるタイミングに関する情報を装置外に通知する。これにより、(4)と同様に、安全性を高めることが可能になる。
(6)検証値を使い切る前に、使用中の鍵と新たに生成された鍵に対応するそれぞれの検証期待値を備えたプログラムに更新するプログラム更新部と、をさらに備える。これにより、(4)による作用効果を確実に実現することが可能になる。
(7)記憶部は、更新される鍵に対応する検証期待値を予め複数格納する。これにより、例えば鍵を3年に一度更新すると仮定した場合、検証期待値を6個程度予め記憶させておくことによって、製品のライフサイクル中に更新する必要がなくなり、メンテナンスの点でメリットが生じる。
(8)また、本発明の一実施例に係る鍵管理装置は、(1)の情報処理装置に接続され、複数の鍵に関する鍵マスタ情報を記憶する記憶部を有する。これにより、予め複数の検証期待値に対応する鍵に関する鍵マスタ情報を備えているため、検証期待値の更新の度に鍵を生成する必要がなくなり、演算負荷の軽減が可能になる。
なお、本発明は、上記の実施例に限定されるものではなく、様々な変形が可能である。例えば、上記の実施例は、本発明を分かりやすく説明するために詳細に説明したものであり、本発明は、必ずしも説明した全ての構成を備える態様に限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能である。また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、削除したり、他の構成を追加・置換したりすることが可能である。
1 情報処理装置、12 鍵更新制御部、13 検証期待値切替部、16 プログラム更新部、17 プログラム更新依頼管理部、100 記憶部

Claims (8)

  1. プログラム検証用の鍵を用いて検証値を算出し、当該検証値が、予め記憶された検証期待値と一致しているか否かを検証する情報処理装置であって、
    前記鍵を更新する鍵更新部と、
    前記鍵更新部によって更新される鍵に対応する検証期待値を予め格納する記憶部と、
    更新された前記鍵に基づいて算出された検証値を検証するときに、検証のために参照される前記記憶部内の前記検証期待値を、更新された前記鍵に対応する前記検証期待値に切り替える検証期待値切替部と、
    を備えることを特徴とする情報処理装置。
  2. 請求項1の情報処理装置であって、
    前記記憶部は、前記更新される鍵に対応する検証期待値を予め複数格納し、
    前記検証期待値切替部は、前記複数の検証期待値の中から未使用の検証期待値に切り替える、
    ことを特徴とする情報処理装置。
  3. 請求項1の情報処理装置であって、
    前記記憶部は、前記更新される鍵に対応する検証期待値を予め複数格納し、
    前記検証期待値切替部は、前記複数の検証期待値の中に未使用の前記検証期待値が無かったときに、使用済みの前記検証期待値の中から何れかの第二検証期待値に切り替える、ことを特徴とする情報処理装置。
  4. 請求項1の情報処理装置であって、
    前記切り替えの回数が所定回数に達する前に、使用中の前記検証期待値を含む検証期待値の更新が必要となるタイミングに関する情報を装置外に通知するプログラム更新依頼管理部と、をさらに備える
    ことを特徴とする情報処理装置。
  5. 請求項4の情報処理装置であって、
    前記プログラム更新依頼管理部は未使用の前記検証期待値の残数が所定の値よりも少なくなったときに、使用中の前記検証期待値を含む検証期待値の更新が必要となるタイミングに関する情報を装置外に通知する、
    ことを特徴とする情報処理装置。
  6. 請求項4の情報処理装置であって、
    前記検証期待値を使い切る前に、使用中の前記鍵と新たに生成された鍵に対応するそれぞれの検証期待値を備えたプログラムに更新するプログラム更新部と、
    をさらに備えることを特徴とする情報処理装置。
  7. 請求項1に記載の情報処理装置であって、
    前記記憶部は、前記更新される鍵に対応する検証期待値を予め複数格納する、
    ことを特徴とする情報処理装置。
  8. 請求項1の情報処理装置に接続された鍵管理装置であって、
    前記鍵に関する鍵マスタ情報を記憶する記憶部を有する、
    ことを特徴とする鍵管理装置。
JP2023563517A 2021-11-29 2022-08-12 情報処理装置および鍵管理装置 Active JP7565458B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2021193151 2021-11-29
JP2021193151 2021-11-29
PCT/JP2022/030762 WO2023095394A1 (ja) 2021-11-29 2022-08-12 情報処理装置および鍵管理装置

Publications (2)

Publication Number Publication Date
JPWO2023095394A1 JPWO2023095394A1 (ja) 2023-06-01
JP7565458B2 true JP7565458B2 (ja) 2024-10-10

Family

ID=86539147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023563517A Active JP7565458B2 (ja) 2021-11-29 2022-08-12 情報処理装置および鍵管理装置

Country Status (5)

Country Link
US (1) US20250023724A1 (ja)
JP (1) JP7565458B2 (ja)
CN (1) CN118266191A (ja)
DE (1) DE112022004521T5 (ja)
WO (1) WO2023095394A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20260005853A1 (en) * 2024-06-26 2026-01-01 GM Global Technology Operations LLC Cryptographic key update system for updating arbitrary length cryptographic keys
US12562899B1 (en) 2024-06-26 2026-02-24 GM Global Technology Operations LLC Cryptographic key update system for updating 256-bit cryptographic keys

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009044533A (ja) * 2007-08-09 2009-02-26 Toshiba Corp 放送受信装置および鍵データ共有方法
WO2009044533A1 (ja) * 2007-10-05 2009-04-09 Panasonic Corporation セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
JP5182718B2 (ja) * 2010-02-26 2013-04-17 京楽産業.株式会社 遊技機、中間部、周辺基板、認証方法及び認証プログラム
JP6260067B1 (ja) * 2016-08-09 2018-01-17 Kddi株式会社 管理システム、鍵生成装置、車載コンピュータ、管理方法、及びコンピュータプログラム
KR102028151B1 (ko) * 2017-04-07 2019-10-02 주식회사트러스트홀딩스 장치 인증키를 이용한 데이터 암호화 방법 및 시스템
US20190306155A1 (en) * 2018-03-28 2019-10-03 Ca, Inc. Generating cryptographic keys using supplemental authentication data
US10841088B2 (en) * 2018-05-10 2020-11-17 Oracle International Corporation Secure credential generation and validation
KR102135256B1 (ko) * 2019-08-08 2020-07-17 엘지전자 주식회사 자율 주행 시스템에서 차량의 사용자 인증 위한 방법 및 장치
CN113973000B (zh) * 2020-07-25 2024-11-15 华为技术有限公司 一种预共享密钥psk的处理方法及装置
CN117223251A (zh) * 2021-04-30 2023-12-12 华为技术有限公司 一种密钥更新方法及其相关设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
竹森 敬祐 ほか,車載ECU向け暗号鍵管理,2017年 暗号と情報セキュリティシンポジウム(SCIS2017)予稿集,日本,2017年01月24日,p.1-7
菅島 健司,岡 デニス健五,カミーユ ヴィオム,セキュアかつ効率的な車載鍵管理の提案,SCIS2016[USB],2016年01月19日

Also Published As

Publication number Publication date
DE112022004521T5 (de) 2024-09-05
CN118266191A (zh) 2024-06-28
US20250023724A1 (en) 2025-01-16
WO2023095394A1 (ja) 2023-06-01
JPWO2023095394A1 (ja) 2023-06-01

Similar Documents

Publication Publication Date Title
US9043604B2 (en) Method and apparatus for key provisioning of hardware devices
US10812261B2 (en) Vehicle system and key distribution method
US9881160B2 (en) Methods for firmware signature
US11334345B2 (en) Differential firmware update generation
CN111611593A (zh) 安全数据处理设备
EP4080818B1 (en) Communication method and device, ecu, vehicle and storage medium
WO2016167926A1 (en) Secure software authentication and verification
JP7565458B2 (ja) 情報処理装置および鍵管理装置
US11516024B2 (en) Semiconductor device, update data-providing method, update data-receiving method, and program
JP7479517B2 (ja) 冗長暗号化アルゴリズムに基づいてセキュアブートを実行するための方法およびデバイス
WO2021084220A1 (en) Iterative key generation for constrained devices
CN120688094A (zh) 密码灵活性
CN111538512A (zh) 一种空中下载技术ota固件升级方法、装置及设备
US20170180392A1 (en) Method and device for transmitting software
CN115766202A (zh) 一种数据安全传输的系统、方法、存储介质及电子设备
CN111190631A (zh) 智能卡及其cos后更新安全的方法
US12500753B2 (en) Electronic control unit and storage medium
US11526598B2 (en) Microcontroller and semiconductor device
CN119136188A (zh) 一种用于蓝牙模组固件升级的方法及相关产品
CN121418816A (zh) 密钥更新方法、装置和设备
CN116011043A (zh) 基于ssd的固件安全启动方法、装置、设备及存储介质
WO2022009464A1 (ja) 制御装置およびプログラム検証方法
CN118368056A (zh) 数据发送和处理方法以及相应的设备
CN115480797A (zh) 一种交换机升级方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240416

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240930

R150 Certificate of patent or registration of utility model

Ref document number: 7565458

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150