(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6188633
(24)【登録日】2017年8月10日
(45)【発行日】2017年8月30日
(54)【発明の名称】コンピュータシステム、コンピュータ、半導体装置、情報処理方法およびコンピュータプログラム
(51)【国際特許分類】
G06F 21/57 20130101AFI20170821BHJP
B60R 16/02 20060101ALI20170821BHJP
【FI】
G06F21/57 350
B60R16/02 660W
【請求項の数】6
【全頁数】12
(21)【出願番号】特願2014-108083(P2014-108083)
(22)【出願日】2014年5月26日
(65)【公開番号】特開2015-225376(P2015-225376A)
(43)【公開日】2015年12月14日
【審査請求日】2017年1月27日
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100064908
【弁理士】
【氏名又は名称】志賀 正武
(74)【代理人】
【識別番号】100146835
【弁理士】
【氏名又は名称】佐伯 義文
(72)【発明者】
【氏名】竹森 敬祐
【審査官】
上島 拓也
(56)【参考文献】
【文献】
特開2011−003020(JP,A)
【文献】
特表2013−522702(JP,A)
【文献】
特開2012−048488(JP,A)
【文献】
特開2014−089581(JP,A)
【文献】
特表2013−531284(JP,A)
【文献】
特表2010−515966(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/57
B60R 16/02
(57)【特許請求の範囲】
【請求項1】
複数のコンピュータが接続されるコンピュータシステムであり、
前記コンピュータは、
ROM化されたブートローダと、
セキュアエレメントと、を有し、
前記セキュアエレメントは、
鍵を記憶するセキュアROMと、
前記鍵を使用した処理についての情報を保持するセキュアRAMと、
前記セキュアRAMを使用し、前記ブートローダによるブート処理におけるプログラム正当性検証処理を該当する前記鍵を使用して行う検証部と、
前記セキュアRAMを使用し、他の前記コンピュータとの間で交換される情報についての暗号処理を該当する前記鍵を使用して行う暗号処理部と、を有し、
第1の前記コンピュータは、チャレンジ値を第2の前記コンピュータに送信し、自己の前記セキュアエレメントに前記チャレンジ値を渡し、
前記第2のコンピュータは、前記第1のコンピュータから前記チャレンジ値を受信し、
前記第2のコンピュータの前記暗号処理部は、前記第2のコンピュータが前記第1のコンピュータから受信した前記チャレンジ値を、前記第2のコンピュータの前記セキュアROMに保持される暗号鍵により暗号化し、
前記第2のコンピュータは、前記チャレンジ値の暗号化データをレスポンス値として第1の前記コンピュータに送信し、
前記第1のコンピュータは、前記第2のコンピュータから前記レスポンス値を受信し、
前記第1のコンピュータの前記暗号処理部は、前記第1のコンピュータが前記第2のコンピュータから受信した前記レスポンス値を、前記第1のコンピュータの前記セキュアROMに保持される復号鍵により復号し、前記レスポンス値の復号の結果のデータと前記チャレンジ値との一致を検証する、
コンピュータシステム。
【請求項2】
一つの前記コンピュータが一つの半導体装置として構成されている請求項1に記載のコンピュータシステム。
【請求項3】
複数のコンピュータが接続されるコンピュータシステムにおける前記コンピュータであり、
ROM化されたブートローダと、
セキュアエレメントと、を有し、
前記セキュアエレメントは、
鍵を記憶するセキュアROMと、
前記鍵を使用した処理についての情報を保持するセキュアRAMと、
前記セキュアRAMを使用し、前記ブートローダによるブート処理におけるプログラム正当性検証処理を該当する前記鍵を使用して行う検証部と、
前記セキュアRAMを使用し、他の前記コンピュータとの間で交換される情報についての暗号処理を該当する前記鍵を使用して行う暗号処理部と、を有し、
自コンピュータは、チャレンジ値を前記他のコンピュータに送信し、前記セキュアエレメントに前記チャレンジ値を渡し、前記他のコンピュータからレスポンス値を受信し、
前記暗号処理部は、前記レスポンス値を前記セキュアROMに保持される復号鍵により復号し、前記レスポンス値の復号の結果のデータと前記チャレンジ値との一致を検証する、
コンピュータ。
【請求項4】
複数のコンピュータが接続されるコンピュータシステムにおける前記コンピュータを構成する半導体装置であり、
ROM化されたブートローダと、
セキュアエレメントと、を有し、
前記セキュアエレメントは、
鍵を記憶するセキュアROMと、
前記鍵を使用した処理についての情報を保持するセキュアRAMと、
前記セキュアRAMを使用し、前記ブートローダによるブート処理におけるプログラム正当性検証処理を該当する前記鍵を使用して行う検証部と、
前記セキュアRAMを使用し、他の前記コンピュータとの間で交換される情報についての暗号処理を該当する前記鍵を使用して行う暗号処理部と、を有し、
自コンピュータは、チャレンジ値を前記他のコンピュータに送信し、前記セキュアエレメントに前記チャレンジ値を渡し、前記他のコンピュータからレスポンス値を受信し、
前記暗号処理部は、前記レスポンス値を前記セキュアROMに保持される復号鍵により復号し、前記レスポンス値の復号の結果のデータと前記チャレンジ値との一致を検証する、
半導体装置。
【請求項5】
複数のコンピュータが接続されるコンピュータシステムにおける情報処理方法であり、
前記コンピュータが、ROM化されたブートローダと、セキュアエレメントと、を有し、
前記セキュアエレメントが、鍵を記憶するセキュアROMと、前記鍵を使用した処理についての情報を保持するセキュアRAMと、を有し、
前記コンピュータの各々が、前記セキュアRAMを使用し、前記ブートローダによるブート処理におけるプログラム正当性検証処理を該当する前記鍵を使用して行い、
前記コンピュータが、前記セキュアRAMを使用し、他の前記コンピュータとの間で交換される情報についての暗号処理を該当する前記鍵を使用して行う、情報処理方法であって、
第1の前記コンピュータが、チャレンジ値を第2の前記コンピュータに送信し、自己の前記セキュアエレメントに前記チャレンジ値を渡し、
前記第2のコンピュータが、前記第1のコンピュータから前記チャレンジ値を受信し、
前記第2のコンピュータの前記セキュアエレメントが、前記第2のコンピュータが前記第1のコンピュータから受信した前記チャレンジ値を、前記第2のコンピュータの前記セキュアROMに保持される暗号鍵により暗号化し、
前記第2のコンピュータが、前記チャレンジ値の暗号化データをレスポンス値として第1の前記コンピュータに送信し、
前記第1のコンピュータが、前記第2のコンピュータから前記レスポンス値を受信し、
前記第1のコンピュータの前記セキュアエレメントが、前記第1のコンピュータが前記第2のコンピュータから受信した前記レスポンス値を、前記第1のコンピュータの前記セキュアROMに保持される復号鍵により復号し、前記レスポンス値の復号の結果のデータと前記チャレンジ値との一致を検証する、
情報処理方法。
【請求項6】
複数のコンピュータが接続されるコンピュータシステムにおける情報処理を行うためのコンピュータプログラムであって、
前記コンピュータが、ROM化されたブートローダと、セキュアエレメントと、を有し、
前記セキュアエレメントが、鍵を記憶するセキュアROMと、前記鍵を使用した処理についての情報を保持するセキュアRAMと、を有し、
前記コンピュータプログラムは、
前記セキュアRAMを使用し、前記ブートローダによるブート処理におけるプログラム正当性検証処理を該当する前記鍵を使用して行う検証ステップと、
前記セキュアRAMを使用し、他の前記コンピュータとの間で交換される情報についての暗号処理を該当する前記鍵を使用して行う暗号処理ステップと、をコンピュータに実行させるためのコンピュータプログラムであり、
自コンピュータは、チャレンジ値を前記他のコンピュータに送信し、前記セキュアエレメントに前記チャレンジ値を渡し、前記他のコンピュータからレスポンス値を受信し、
前記暗号処理ステップは、前記レスポンス値を前記セキュアROMに保持される復号鍵により復号し、前記レスポンス値の復号の結果のデータと前記チャレンジ値との一致を検証する、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータシステム、コンピュータ、半導体装置、情報処理方法およびコンピュータプログラムに関する。
【背景技術】
【0002】
従来、車両に搭載される通信ネットワークの一つとして知られているCAN(Controller Area Network)が、車両内の各種ECU(Electronic Control Unit)間の通信に用いられている。そのCANにおいてメッセージの認証を可能にする技術として、例えば特許文献1に記載の技術が知られている。特許文献1に記載の技術では、各ECUにおいてCANIDごとにメッセージが送信された回数をカウントする。そして、メインメッセージを送信した送信ノードは、メインメッセージのデータフィールドおよびCANIDと、CANIDに対応するカウンタ値とから生成したMAC(Message Authentication Code)を含むMACメッセージを送信する。メインメッセージを受信した受信ノードは、メインメッセージに含まれるデータフィールドおよびCANIDと、CANIDに対応するカウンタ値とからMACを生成して、受信したMACメッセージに含まれるMACと一致するかを判断する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開第2013/065689号
【非特許文献】
【0004】
【非特許文献1】竹森敬祐、川端秀明、窪田歩、“ARM+SIM/UIMによるセキュアブート”、電子情報通信学会、暗号と情報セキュリティシンポジウム(SCIS2014)、1B1-2、2014年1月.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、上述した特許文献1に記載のメッセージ認証技術では、各ECUがCANIDごとにメッセージ送信回数をカウントする際のカウント初期値を、各ECUに対して共通の値として安全に配信することが示されていない。このことは、CAN上における攻撃者による攻撃からの防御において課題である。
【0006】
本発明は、このような事情を考慮してなされたものであり、複数のコンピュータが接続されるコンピュータシステムにおける攻撃者からの攻撃に対する防御性能を向上させることができる、コンピュータシステム、コンピュータ、半導体装置、情報処理方法およびコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【0007】
(1)本発明に係る一態様は、複数のコンピュータが接続されるコンピュータシステムであり、前記コンピュータは、ROM化されたブートローダと、セキュアエレメントと、を有し、前記セキュアエレメントは、鍵を記憶するセキュアROMと、前記鍵を使用した処理についての情報を保持するセキュアRAMと、前記セキュアRAMを使用し、前記ブートローダによるブート処理におけるプログラム正当性検証処理を該当する前記鍵を使用して行う検証部と、前記セキュアRAMを使用し、他の前記コンピュータとの間で交換される情報についての暗号処理を該当する前記鍵を使用して行う暗号処理部と、を有
し、第1の前記コンピュータは、チャレンジ値を第2の前記コンピュータに送信し、自己の前記セキュアエレメントに前記チャレンジ値を渡し、前記第2のコンピュータは、前記第1のコンピュータから前記チャレンジ値を受信し、前記第2のコンピュータの前記暗号処理部は、前記第2のコンピュータが前記第1のコンピュータから受信した前記チャレンジ値を、前記第2のコンピュータの前記セキュアROMに保持される暗号鍵により暗号化し、前記第2のコンピュータは、前記チャレンジ値の暗号化データをレスポンス値として第1の前記コンピュータに送信し、前記第1のコンピュータは、前記第2のコンピュータから前記レスポンス値を受信し、前記第1のコンピュータの前記暗号処理部は、前記第1のコンピュータが前記第2のコンピュータから受信した前記レスポンス値を、前記第1のコンピュータの前記セキュアROMに保持される復号鍵により復号し、前記レスポンス値の復号の結果のデータと前記チャレンジ値との一致を検証する、コンピュータシステムである。
(2)本発明に係る一態様は、上記(1)のコンピュータシステムにおいて、一つの前記コンピュータが一つの半導体装置として構成されているコンピュータシステムである。
【0008】
(3)本発明に係る一態様は、複数のコンピュータが接続されるコンピュータシステムにおける前記コンピュータであり、ROM化されたブートローダと、セキュアエレメントと、を有し、前記セキュアエレメントは、鍵を記憶するセキュアROMと、前記鍵を使用した処理についての情報を保持するセキュアRAMと、前記セキュアRAMを使用し、前記ブートローダによるブート処理におけるプログラム正当性検証処理を該当する前記鍵を使用して行う検証部と、前記セキュアRAMを使用し、他の前記コンピュータとの間で交換される情報についての暗号処理を該当する前記鍵を使用して行う暗号処理部と、を有
し、自コンピュータは、チャレンジ値を前記他のコンピュータに送信し、前記セキュアエレメントに前記チャレンジ値を渡し、前記他のコンピュータからレスポンス値を受信し、前記暗号処理部は、前記レスポンス値を前記セキュアROMに保持される復号鍵により復号し、前記レスポンス値の復号の結果のデータと前記チャレンジ値との一致を検証する、コンピュータである。
【0009】
(4)本発明に係る一態様は、複数のコンピュータが接続されるコンピュータシステムにおける前記コンピュータを構成する半導体装置であり、ROM化されたブートローダと、セキュアエレメントと、を有し、前記セキュアエレメントは、鍵を記憶するセキュアROMと、前記鍵を使用した処理についての情報を保持するセキュアRAMと、前記セキュアRAMを使用し、前記ブートローダによるブート処理におけるプログラム正当性検証処理を該当する前記鍵を使用して行う検証部と、前記セキュアRAMを使用し、他の前記コンピュータとの間で交換される情報についての暗号処理を該当する前記鍵を使用して行う暗号処理部と、を有
し、自コンピュータは、チャレンジ値を前記他のコンピュータに送信し、前記セキュアエレメントに前記チャレンジ値を渡し、前記他のコンピュータからレスポンス値を受信し、前記暗号処理部は、前記レスポンス値を前記セキュアROMに保持される復号鍵により復号し、前記レスポンス値の復号の結果のデータと前記チャレンジ値との一致を検証する、半導体装置である。
【0010】
(5)本発明に係る一態様は、複数のコンピュータが接続されるコンピュータシステムにおける情報処理方法であり、前記コンピュータが、ROM化されたブートローダと、セキュアエレメントと、を有し、前記セキュアエレメントが、鍵を記憶するセキュアROMと、前記鍵を使用した処理についての情報を保持するセキュアRAMと、を有し、前記コンピュータの各々が、前記セキュアRAMを使用し、前記ブートローダによるブート処理におけるプログラム正当性検証処理を該当する前記鍵を使用して行い、前記コンピュータが、前記セキュアRAMを使用し、他の前記コンピュータとの間で交換される情報についての暗号処理を該当する前記鍵を使用して行う、
情報処理方法であって、第1の前記コンピュータが、チャレンジ値を第2の前記コンピュータに送信し、自己の前記セキュアエレメントに前記チャレンジ値を渡し、前記第2のコンピュータが、前記第1のコンピュータから前記チャレンジ値を受信し、前記第2のコンピュータの前記セキュアエレメントが、前記第2のコンピュータが前記第1のコンピュータから受信した前記チャレンジ値を、前記第2のコンピュータの前記セキュアROMに保持される暗号鍵により暗号化し、前記第2のコンピュータが、前記チャレンジ値の暗号化データをレスポンス値として第1の前記コンピュータに送信し、前記第1のコンピュータが、前記第2のコンピュータから前記レスポンス値を受信し、前記第1のコンピュータの前記セキュアエレメントが、前記第1のコンピュータが前記第2のコンピュータから受信した前記レスポンス値を、前記第1のコンピュータの前記セキュアROMに保持される復号鍵により復号し、前記レスポンス値の復号の結果のデータと前記チャレンジ値との一致を検証する、情報処理方法である。
【0011】
(6)本発明に係る一態様は、複数のコンピュータが接続されるコンピュータシステムにおける情報処理を行うためのコンピュータプログラムであって、前記コンピュータが、ROM化されたブートローダと、セキュアエレメントと、を有し、前記セキュアエレメントが、鍵を記憶するセキュアROMと、前記鍵を使用した処理についての情報を保持するセキュアRAMと、を有し、前記コンピュータプログラムは、前記セキュアRAMを使用し、前記ブートローダによるブート処理におけるプログラム正当性検証処理を該当する前記鍵を使用して行う検証ステップと、前記セキュアRAMを使用し、他の前記コンピュータとの間で交換される情報についての暗号処理を該当する前記鍵を使用して行う暗号処理ステップと、をコンピュータに実行させるためのコンピュータプログラム
であり、自コンピュータは、チャレンジ値を前記他のコンピュータに送信し、前記セキュアエレメントに前記チャレンジ値を渡し、前記他のコンピュータからレスポンス値を受信し、前記暗号処理ステップは、前記レスポンス値を前記セキュアROMに保持される復号鍵により復号し、前記レスポンス値の復号の結果のデータと前記チャレンジ値との一致を検証する、コンピュータプログラムである。
【発明の効果】
【0012】
本発明によれば、複数のコンピュータが接続されるコンピュータシステムにおける攻撃者からの攻撃に対する防御性能を向上させることができるという効果が得られる。
【図面の簡単な説明】
【0013】
【
図1】本発明の一実施形態に係るコンピュータシステム1の構成を示すブロック図である。
【
図2】本発明の一実施形態に係るブート処理のシーケンスチャートである。
【
図3】本発明の一実施形態に係る暗号処理のシーケンスチャートである。
【
図4】本発明の一実施形態に係る効果を説明するための図である。
【発明を実施するための形態】
【0014】
以下、図面を参照し、本発明の実施形態について説明する。本実施形態では、本発明に係るコンピュータシステムの一態様として、車両に搭載されるコンピュータシステムを例に挙げて説明する。
【0015】
図1は、本発明の一実施形態に係るコンピュータシステム1の構成を示すブロック図である。
図1に示されるコンピュータシステム1は車両に搭載される。
図1において、コンピュータシステム1は、複数のMCU(Micro Computing Unit)_2−a,2−bを有する。MCU_2−a,2−bはコンピュータの一種である。MCU_2−a,2−bは通信バス3に接続されている。通信バス3は、各MCU_2−a,2−bの間で交換されるデータを伝送する。通信バス3として、例えば、CAN(Controller Area Network)が挙げられる。各MCU_2−a,2−bは、通信バス3を介して、相互にデータを送受する。各MCU_2−a,2−bは、車両内の機器を制御する電子制御ユニット(ECU)として利用される。
【0016】
MCU_2−aは、通信バス3に接続されるMCU_2−bを認証する処理においてマスタとして動作する。以下、MCU_2−aのことを「マスタMCU_2−a」と称する。また、MCU_2−bのことを「エンドMCU_2−b」と称する。また、MCU_2−a,2−bを特に区別しないときは「MCU_2」と称する。
【0017】
次に、
図1を参照して、マスタMCU_2−aとエンドMCU_2−bの構成を説明する。マスタMCU_2−aとエンドMCU_2−bとは同様の構成であるので、以下、MCU_2として、マスタMCU_2−aとエンドMCU_2−bの構成を説明する。
【0018】
MCU_2は、CPU(Central Processing Unit:中央演算処理装置)_10と、フラッシュメモリ(flash memory)11と、RAM(ランダムアクセスメモリ)_12と、ブートローダ(boot loader)13と、セキュアエレメント(secure element)14を有する。セキュアエレメント14は、セキュアRAM_21と、セキュアROM(Read Only Memory:リードオンリメモリ)_22と、検証部23と、暗号処理部24を有する。
【0019】
CPU_10はコンピュータプログラムを実行することにより、車両内の機器を制御する制御ユニットとして機能する。フラッシュメモリ11は、CPU_10で実行されるコンピュータプログラムと該コンピュータプログラムについての署名とを記憶する。RAM_12はデータを記憶する。RAM_12は、CPU_10がコンピュータプログラムを実行する際の実行領域となる。
【0020】
ブートローダ13は、MCU_2の電源投入によりブート処理を行う。ブートローダ13は、該ブート処理の内容を変更できないようにROM化されている。
【0021】
セキュアエレメント14は、セキュアエレメント14内部で保持されるデータに対してセキュアエレメント14外部からアクセスできない安全な要素として構成される。セキュアRAM_21は、セキュアエレメント14内部で保持されるデータの一時記憶領域である。セキュアRAM_21に対してセキュアエレメント14外部からはアクセスできないように構成される。セキュアROM_22は、セキュアエレメント14内部で使用される鍵を記憶する。セキュアROM_22に対してセキュアエレメント14外部からはアクセスできないように構成される。セキュアROM_22には、MCU_2の製造時などに、予め安全に鍵が書き込まれる。
【0022】
検証部23は、ブートローダ13によるブート処理におけるプログラム正当性検証処理を、セキュアROM_22に保持される署名検証鍵を使用して行う。検証部23は、該プログラム正当性検証処理において、セキュアRAM_21を一時記憶領域として使用する。
【0023】
暗号処理部24は、自己のMCU_2と他のMCU_2との間で交換される情報についての暗号処理を、セキュアROM_22に保持される暗号鍵を使用して行う。該暗号処理は、暗号化処理または復号化処理である。暗号処理部24は、該暗号処理において、セキュアRAM_21を一時記憶領域として使用する。
【0024】
次に、
図2を参照して、本実施形態に係るブート処理を説明する。
図2は、本実施形態に係るブート処理のシーケンスチャートである。MCU_2の電源投入により
図2の処理が開始される。
【0025】
(ステップS1)ブートローダ13が、フラッシュメモリ11からコンピュータプログラムと署名とを読み込む。次いで、ブートローダ13が、該読み込んだコンピュータプログラムのハッシュ(hash)値を算出する。
【0026】
(ステップS2)ブートローダ13が、該算出したハッシュ値と、フラッシュメモリ11から読み込んだ署名とをセキュアエレメント14へ送信する。
【0027】
(ステップS3)セキュアエレメント14において検証部23が、セキュアROM_22に保持される署名検証鍵を使用して、ブートローダ13から受信した署名に含まれる値とブートローダ13から受信したハッシュ値との一致を検証する。この検証処理では、セキュアRAM_21が、検証処理におけるデータの一時記憶領域として使用される。該検証が成功した場合には、セキュアエレメント14はブートローダ13へ検証成功を通知する。
【0028】
(ステップS4)ブートローダ13は、セキュアエレメント14から検証成功の通知を受信した場合に、ステップS1でフラッシュメモリ11から読み込んだコンピュータプログラムをRAM_12へロードする。これにより、CPU_10はRAM_12にロードされたコンピュータプログラムを実行することができる。
【0029】
一方、ブートローダ13は、セキュアエレメント14からの検証成功の通知がない場合には(例えば、ステップS2の送信後から所定時間が経過してもセキュアエレメント14から検証成功の通知を受信しなかったり、セキュアエレメント14から検証失敗の通知を受信したりした場合)、ステップS1でフラッシュメモリ11から読み込んだコンピュータプログラムをRAM_12へロードしない。この場合、ブートローダ13がMCU_2の起動を停止する。
【0030】
上述した本実施形態に係るブート処理によれば、セキュアエレメント14による署名検証によって、CPU_10で実行されるコンピュータプログラムの正当性検証が安全に行われる。これにより、CPU_10の実行領域であるRAM_12には正しいコンピュータプログラムがロードされ、該RAM_12にロードされたコンピュータプログラムをCPU_10が実行することにより、MCU_2が正常に起動する。よって、本実施形態に係るコンピュータシステム1では、MCU_2の個々において、MCU_2の起動時に当該MCU_2のコンピュータプログラム(例えば、オペレーティングシステム(Operating System:OS)など)の正当性を検証するセキュアブート(Secure Boot)が実現される。なお、セキュアブートについては、例えば非特許文献1に記載されている。
【0031】
次に、
図3を参照して、本実施形態に係る暗号処理を説明する。
図3は、本実施形態に係る暗号処理のシーケンスチャートである。所定の契機により
図3の処理が開始される。ここでは、秘密の情報である乱数を、マスタMCU_2−aからエンドMCU_2−bへ安全に通知する場面を例に挙げて説明する。なお、マスタMCU_2−aとエンドMCU_2−bとの間のデータの送受は通信バス3を介して行われる。
【0032】
(ステップS11)マスタMCU_2−aが、自己のRAM_12に保持される初期乱数をチャレンジとしてエンドMCU_2−bへ送信する。また、マスタMCU_2−aは、該エンドMCU_2−bへチャレンジとして送信した初期乱数を、自己のセキュアエレメント14へ渡す。
【0033】
(ステップS12)エンドMCU_2−bは、マスタMCU_2−aから受信したチャレンジである初期乱数を、自己のセキュアエレメント14に渡す。エンドMCU_2−bの暗号処理部24は、該渡された初期乱数を、自己のセキュアROM_22に保持される秘密鍵Ksを使用して暗号化する。この暗号化処理では、エンドMCU_2−bのセキュアRAM_21が、暗号化処理におけるデータの一時記憶領域として使用される。次いで、エンドMCU_2−bは、暗号化された初期乱数である暗号化データKs(初期乱数)をレスポンスとしてマスタMCU_2−aへ送信する。
【0034】
(ステップS13)マスタMCU_2−aは、エンドMCU_2−bから受信したレスポンスである暗号化データKs(初期乱数)を、自己のセキュアエレメント14に渡す。マスタMCU_2−aの暗号処理部24は、該渡された暗号化データKs(初期乱数)を、自己のセキュアROM_22に保持される該当エンドMCU_2−bの公開鍵Kpを使用して復号化する。次いで、マスタMCU_2−aの暗号処理部24は、該復号化により得られた復号化データと、ステップS11でチャレンジとしてエンドMCU_2−bへ送信された初期乱数との一致を検証する。それら復号化処理および検証処理では、マスタMCU_2−aのセキュアRAM_21が、復号化処理および検証処理におけるデータの一時記憶領域として使用される。該検証の成功により、当該エンドMCU_2−bの認証が成功したと判断できる。
【0035】
該検証が成功した場合には、マスタMCU_2−aの暗号処理部24は、秘密の情報である乱数を生成し、生成した乱数を、自己のセキュアROM_22に保持される該当エンドMCU_2−bの公開鍵Kpを使用して暗号化する。それら乱数生成処理および暗号化処理では、マスタMCU_2−aのセキュアRAM_21が、乱数生成処理および暗号化処理におけるデータの一時記憶領域として使用される。次いで、マスタMCU_2−aは、暗号化された秘密の情報(乱数)である暗号化データKp(乱数)をエンドMCU_2−bへ送信する。
【0036】
エンドMCU_2−bは、マスタMCU_2−aから受信した暗号化データKp(乱数)を、自己のセキュアエレメント14に渡す。エンドMCU_2−bの暗号処理部24は、該渡された暗号化データKp(乱数)を、自己のセキュアROM_22に保持される秘密鍵Ksを使用して復号化する。この復号化処理では、エンドMCU_2−bのセキュアRAM_21が、復号化処理におけるデータの一時記憶領域として使用される。該復号化処理によって暗号化データKp(乱数)から、秘密の情報である乱数が取得される。該取得された乱数は、エンドMCU_2−bのセキュアRAM_21で安全に保持される。
【0037】
上述した本実施形態に係る暗号処理によれば、セキュアエレメント14による暗号処理によって、MCU_2間(上述した例ではマスタMCU_2−aとエンドMCU_2−bの間)で交換される情報の暗号処理(暗号化処理、復号化処理)が安全に行われる。これにより、MCU_2間で交換される情報の安全性が保たれる。
【0038】
さらに、当該暗号処理に基づいたチャレンジ・レスポンスによって、マスタMCU_2−aがエンドMCU_2−bの確かな認証を行うことができる。そして、マスタMCU_2−aから認証済みのエンドMCU_2−bに対して、当該暗号処理に基づいて秘密の情報を安全に送信することができる。
【0039】
図4は、本実施形態に係る効果を説明するための図である。
図4において、コンピュータシステム1には、本物のMCU_2とは別の偽のMCU_100が通信バス3に接続されている。MCU_100は、CPU_10と、フラッシュメモリ11と、RAM_12を有するが、セキュアエレメント14を有していない。したがって、MCU_100は、MCU_2のセキュアROM_22に保持される鍵を保持していない。
【0040】
ここで、MCU_100が、いずれかのMCU_2になりすまして偽の制御信号を有するパケットを通信バス3上へ送信するなりすまし攻撃や、通信バス3上のパケットをコピーして通信バス3上へ送信するリプレイ攻撃などを行うと想定する。これに対して、本実施形態に係るMCU_2では、上述したブート処理によって、コンピュータシステム1の通信バス3に接続されるMCU_2の個々においてセキュアブートが実現される。さらに、上述した暗号処理によって、MCU_2間で交換される情報の安全性が保たれる。上述した例では、マスタMCU_2−aからエンドMCU_2−bに対して、安全に、秘密の情報(例えば、乱数)が伝達される。これにより、本実施形態によれば、セキュアブートによって信頼できるMCU_2間で安全に秘密の情報を交換できるので、MCU_100からの攻撃に対する防御性能を向上させる効果が得られる。
【0041】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0042】
例えば、一つのMCU_2が一つの半導体装置として構成されてもよい。一つのMCU_2が一つの半導体集積回路としてワンチップ化されることにより、安全性がさらに向上する。
【0043】
上述した実施形態では、本発明に係るコンピュータシステムの一態様として、車両に搭載されるコンピュータシステムを例に挙げて説明したが、本発明に係るコンピュータシステムは様々な分野に適用可能である。例えば、家電製品を制御するコンピュータとしてMCU_2を適用し、宅内の各家電製品のMCU_2を宅内ネットワークで接続するように構成してもよい。また、スマートメーターとしてMCU_2を適用し、各スマートメーターのMCU_2を通信ネットワークで接続するように構成してもよい。
【0044】
また、上述したMCU_2の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するようにしてもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。
【0045】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータ内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0046】
1…コンピュータシステム、2,2−a,2−b…MCU、3…通信バス、10…CPU、11…フラッシュメモリ、12…RAM、13…ブートローダ、14…セキュアエレメント、21…セキュアRAM、22…セキュアROM、23…検証部、24…暗号処理部