IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 凸版印刷株式会社の特許一覧

特開2023-164669情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム
<>
  • 特開-情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム 図1
  • 特開-情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム 図2
  • 特開-情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム 図3
  • 特開-情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム 図4
  • 特開-情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム 図5
  • 特開-情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム 図6
  • 特開-情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム 図7
  • 特開-情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム 図8
  • 特開-情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023164669
(43)【公開日】2023-11-10
(54)【発明の名称】情報処理装置、サーバ装置、通信システム、通信方法、及びプログラム
(51)【国際特許分類】
   H04L 9/08 20060101AFI20231102BHJP
【FI】
H04L9/08 D
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023153949
(22)【出願日】2023-09-20
(62)【分割の表示】P 2019098739の分割
【原出願日】2019-05-27
(71)【出願人】
【識別番号】000003193
【氏名又は名称】TOPPANホールディングス株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【弁理士】
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100169764
【弁理士】
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100147267
【弁理士】
【氏名又は名称】大槻 真紀子
(72)【発明者】
【氏名】國重 尚棋
(57)【要約】
【課題】個別の情報を予め書込むことなく、個別鍵を用いた通信を行うことができる情報処理装置、サーバ装置、通信システム、通信方法、及びプログラムを提供する。
【解決手段】通信先のサーバ装置と通信する通信部と、マスタ鍵を記憶する記憶部と、前記マスタ鍵と所定のIDとを用いて、個別鍵を生成する個別鍵生成部と、前記個別鍵を共通鍵とした通信を前記サーバ装置と行う情報処理部と、を備え、前記個別鍵生成部は、前記サーバ装置による情報処理装置の認証に用いる第1の個別鍵と、前記情報処理装置による前記サーバ装置の認証に用いる第2の個別鍵と、を、同一の前記マスタ鍵と前記所定のIDとの組合せに基づいて生成する。
【選択図】図2
【特許請求の範囲】
【請求項1】
サーバ装置と通信する情報処理装置であって、
前記サーバ装置と通信する通信部と、
マスタ鍵を記憶する記憶部と、
前記マスタ鍵と所定のIDとを用いて、個別鍵を生成する個別鍵生成部と、
前記個別鍵を用いた通信を前記サーバ装置と行う情報処理部と、
を備え、
前記個別鍵生成部は、前記サーバ装置による前記情報処理装置の認証に用いる第1の個別鍵と、前記情報処理装置による前記サーバ装置の認証に用いる第2の個別鍵と、を、同一の前記マスタ鍵と前記所定のIDとの組合せに基づいて生成する、
情報処理装置。
【請求項2】
前記情報処理部は、前記個別鍵生成部により個別鍵が生成された後に、前記記憶部に記憶された前記マスタ鍵を消去する、
請求項1に記載の情報処理装置。
【請求項3】
前記情報処理部は、前記サーバ装置から前記個別鍵により暗号化された通信内容を受信した後に、前記記憶部に記憶された前記マスタ鍵を消去する、
請求項2に記載の情報処理装置。
【請求項4】
前記情報処理部は、前記サーバ装置から個別鍵の生成に関する情報を消去する旨を示す命令を受信した場合、前記記憶部に記憶された前記マスタ鍵を消去する、
請求項1から請求項3の何れか一項に記載の情報処理装置。
【請求項5】
前記記憶部は、前記個別鍵生成部により実行される処理に対応する個別鍵生成プログラムを記憶し、
前記情報処理部は、前記個別鍵生成部により個別鍵が生成された後に、前記記憶部に記憶された前記個別鍵生成プログラムを消去する、
請求項1から請求項4の何れか一項に記載の情報処理装置。
【請求項6】
前記情報処理部は、前記個別鍵を更新するか否かを判定し、
前記個別鍵生成部は、前記情報処理部により前記個別鍵を更新すると判定された場合、更新前の前記個別鍵と所定のIDとを用いて、更新後の前記個別鍵を生成する、
請求項1から請求項4の何れか一項に記載の情報処理装置。
【請求項7】
前記個別鍵生成部は、Nビット(Nは自然数)の数値で表される前記所定のIDから、2×Nビットの数値で表される拡張IDを作成し、前記拡張IDを暗号化し、2×Nビットの暗号化した前記拡張IDのうち、Nビットの数値を前記第1の個別鍵とし、他のNビットの数値を前記第2の個別鍵とする、
請求項1に記載の情報処理装置。
【請求項8】
情報処理装置と通信するサーバ装置であって、
前記情報処理装置からIDを受信するサーバ通信部と、
マスタ鍵を記憶するサーバ記憶部と、
前記マスタ鍵と前記情報処理装置から受信したIDとを用いて、個別鍵を生成するサーバ個別鍵生成部と、
前記サーバ個別鍵生成部により生成された個別鍵を用いて暗号化した通信内容を、前記情報処理装置に通知するサーバ制御部と、
を備え、
前記サーバ個別鍵生成部は、前記サーバ装置による前記情報処理装置の認証に用いる第1の個別鍵と、前記情報処理装置による前記サーバ装置の認証に用いる第2の個別鍵と、を、同一の前記マスタ鍵と前記受信したIDとの組合せに基づいて生成する、
サーバ装置。
【請求項9】
前記サーバ制御部は、前記サーバ個別鍵生成部により個別鍵が生成された後に、前記情報処理装置が記憶する前記個別鍵の生成に関する情報を消去する旨の命令を、前記情報処理装置に通知する、
請求項8に記載のサーバ装置。
【請求項10】
情報処理装置と、サーバ装置と、を備え、
前記情報処理装置は、
前記サーバ装置と通信する通信部と、
マスタ鍵を記憶する記憶部と、
前記マスタ鍵と所定のIDとを用いて、個別鍵を生成する個別鍵生成部と、
前記個別鍵を用いた通信を前記サーバ装置と行う情報処理部と、
を備え、
前記個別鍵生成部は、前記サーバ装置による前記情報処理装置の認証に用いる第1の個別鍵と、前記情報処理装置による前記サーバ装置の認証に用いる第2の個別鍵と、を、同一の前記マスタ鍵と前記所定のIDとの組合せに基づいて生成し、
前記サーバ装置は、
前記情報処理装置から前記所定のIDを受信するサーバ通信部と、
前記マスタ鍵を記憶するサーバ記憶部と、
前記マスタ鍵と前記情報処理装置から受信した前記所定のIDとを用いて、前記個別鍵を生成するサーバ個別鍵生成部と、
前記サーバ個別鍵生成部により生成された前記個別鍵を用いて暗号化した通信内容を、前記情報処理装置に通知するサーバ制御部と、
を備え、
前記サーバ個別鍵生成部は、前記サーバ装置による前記情報処理装置の認証に用いる前記第1の個別鍵と、前記情報処理装置による前記サーバ装置の認証に用いる前記第2の個別鍵と、を、同一の前記マスタ鍵と前記所定のIDとの組合せに基づいて生成する、
通信システム。
【請求項11】
マスタ鍵を記憶する記憶部を備える情報処理装置の通信方法であって、
通信部が、通信先のサーバ装置と通信し、
個別鍵生成部が、前記マスタ鍵と所定のIDとを用いて、個別鍵を生成し、
情報処理部が、前記個別鍵を用いた通信を前記サーバ装置と行い、
前記個別鍵生成部は、前記サーバ装置による前記情報処理装置の認証に用いる第1の個別鍵と、前記情報処理装置による前記サーバ装置の認証に用いる第2の個別鍵と、を、同一の前記マスタ鍵と前記所定のIDとの組合せに基づいて生成する、
通信方法。
【請求項12】
マスタ鍵を記憶する記憶部を備える情報処理装置のコンピュータを、
通信先のサーバ装置と通信する通信手段、
前記マスタ鍵と所定のIDとを用いて、個別鍵を生成する個別鍵生成手段、
前記個別鍵を用いた通信を前記サーバ装置と行う情報処理手段、
として機能させ、
前記個別鍵生成手段は、前記サーバ装置による前記情報処理装置の認証に用いる第1の個別鍵と、前記情報処理装置による前記サーバ装置の認証に用いる第2の個別鍵と、を、同一の前記マスタ鍵と前記所定のIDとの組合せに基づいて生成する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、サーバ装置、通信システム、通信方法、及びプログラムに関する。
【背景技術】
【0002】
近年、様々な場所における温度や湿度などの環境データや撮像データ等(以下、環境データ等という)を集約させるシステムが普及している。このようなシステムでは、センサを備えたデバイス装置を様々な場所に設置し、それぞれのデバイス装置が、その場所でセンサにより測定された環境データ等をサーバ装置に送信することにより、データが集約される。また、このようなシステムでは、通信内容を検証する専用のマイコンチップを、デバイス装置に組み込んで使用する場合が多い。マイコンチップが、サーバ装置とデバイス装置との間でやり取りされる通信内容を検証することにより、なりすましやデータの改ざん等の不正を防止して通信の安全性を維持することができる。このようなマイコンチップは、例えば、通信先となる装置の正当性を認証する処理(認証処理)を行う。特許文献1には、通信データを中継する中継器の正当性を判定する技術が開示されている。
【0003】
認証処理は、例えば、チャレンジ&レスポンス方式にて行われる。共通鍵暗号方式を用いたチャレンジ&レスポンス方式では、チャレンジ側(例えば、サーバ装置)が、レスポンス側(例えば、マイコンチップ)にチャレンジ(ホスト乱数)を送信する。レスポンス側は、ホスト乱数を暗号化する。暗号化は、チャレンジ側とレスポンス側とで予め共有している共通鍵を用いて行われる。レスポンス側は、暗号化したホスト乱数をチャレンジ側に通知する。チャレンジ側は、暗号化されたホスト乱数を復号する。復号は、チャレンジ側とレスポンス側とで予め共有している共通鍵を用いて行われる。チャレンジ側は、復号したホスト乱数と、送信したホスト乱数とが一致した場合に、レスポンス側が通信先として正当な装置であると認証する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2017-33225号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、このような相互認証を行うためには、チャレンジ側とレスポンス側とで予め共通鍵を共有している必要がある。公開鍵暗号方式にて共通鍵の受け渡しを行わない場合、サーバ装置とマイコンチップとに予め共通鍵を書込んでおかなければならない。上記のようなシステムでは、サーバ装置が複数のマイコンチップと通信することが通常である。多数のマイコンチップのそれぞれに、互いに異なる個別の共通鍵を書込む作業は、マイコンチップに同じ情報を書込む場合と比較して工程が複雑になり手間がかかってしまう。また、書込んだ個別鍵を管理する必要もあり管理コストがかかってしまうという問題があった。
【0006】
本発明は、このような状況に鑑みてなされたもので、その目的は、個別の情報を書込むことなく、個別鍵を用いた通信を行うことができる情報処理装置、サーバ装置、通信システム、通信方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0007】
上述した課題を解決するために、本発明の一態様は、通信先のサーバ装置と通信する通信部と、マスタ鍵を記憶する記憶部と、前記マスタ鍵と所定のIDとを用いて、個別鍵を生成する個別鍵生成部と、前記個別鍵を用いた通信を前記サーバ装置と行う情報処理部と備えることを特徴とする情報処理装置である。
【0008】
また、本発明の一態様に係る情報処理装置において、前記情報処理部は、前記個別鍵生成部により個別鍵が生成された後に、前記記憶部に記憶された前記マスタ鍵を消去する構成であってもよい。
【0009】
また、本発明の一態様に係る情報処理装置において、前記情報処理部は、前記サーバ装置から前記個別鍵により暗号化された通信内容を受信した後に、前記記憶部に記憶された前記マスタ鍵を消去する構成であってもよい。
【0010】
また、本発明の一態様に係る情報処理装置において、前記情報処理部は、前記サーバ装置から個別鍵の生成に関する情報を消去する旨を示す命令を受信した場合、前記記憶部に記憶された前記マスタ鍵を消去する構成であってもよい。
【0011】
また、本発明の一態様に係る情報処理装置において、前記記憶部は、前記個別鍵生成部により実行される処理に対応する個別鍵生成プログラムを記憶し、前記情報処理部は、前記個別鍵生成部により個別鍵が生成された後に、前記記憶部に記憶された前記個別鍵生成プログラムを消去する構成であってもよい。
【0012】
また、本発明の一態様に係る情報処理装置において、前記情報処理部は、前記個別鍵を更新するか否かを判定し、前記個別鍵生成部は、前記情報処理部により前記個別鍵を更新すると判定された場合、更新前の前記個別鍵と所定のIDとを用いて、更新後の前記個別鍵を生成する構成であってもよい。
【0013】
また、本発明の一態様は、通信先の情報処理装置からIDを受信するサーバ通信部と、マスタ鍵を記憶する記憶部と、前記マスタ鍵と前記情報処理装置から受信したIDとを用いて、個別鍵を生成する個別鍵生成部と、前記個別鍵生成部により生成された個別鍵を用いて暗号化した通信内容を、前記情報処理装置に通知するサーバ制御部とを備えることを特徴とするサーバ装置である。
【0014】
また、本発明の一態様に係るサーバ装置において、前記サーバ制御部は、前記個別鍵生成部により個別鍵が生成された後に、前記情報処理装置が記憶する前記個別鍵の生成に関する情報を消去する旨の命令を、前記情報処理装置に通知する構成であってもよい。
【0015】
また、本発明の一態様は、上述した情報処理装置と、上述したサーバ装置とを備えることを特徴とする通信システムである。
【0016】
また、本発明の一態様は、マスタ鍵を記憶する記憶部を備える情報処理装置の通信方法であって、通信部が、通信先のサーバ装置と通信し、個別鍵生成部が、前記マスタ鍵と所定のIDとを用いて、個別鍵を生成し、情報処理部が、前記個別鍵を用いた通信を前記サーバ装置と行うことを特徴とする通信方法である。
【0017】
また、本発明の一態様は、マスタ鍵を記憶する記憶部を備える情報処理装置のコンピュータを、通信先のサーバ装置と通信する通信手段、前記マスタ鍵と所定のIDとを用いて、個別鍵を生成する個別鍵生成手段、前記個別鍵を用いた通信を前記サーバ装置と行う情報処理手段として機能させるプログラムである。
【発明の効果】
【0018】
本発明によれば、個別の情報を予め書込むことなく、個別鍵を用いた通信を行うことができる。
【図面の簡単な説明】
【0019】
図1】第1の実施形態の通信システム1の構成の例を示すシステム構成図である。
図2】第1の実施形態のマイコンチップ20の構成の例を示すブロック図である。
図3】第1の実施形態のサーバ装置40の構成の例を示すブロック図である。
図4】第1の実施形態のマイコン記憶部26に記憶されるデータの例を示す図である。
図5】第1の実施形態の通信システム1の処理の流れを示すシーケンス図である。
図6】第1の実施形態のマイコンチップ20が行う処理の流れを示すフローチャートである。
図7】第1の実施形態のマイコンチップ20が個別鍵を生成する方法を説明する図である。
図8】第2の実施形態のマイコン記憶部26Aに記憶されるデータの例を示す図である。
図9】第3の実施形態の通信システム1Bの処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【0020】
以下、実施形態の情報処理装置、通信システム、通信方法、及びプログラムを、図面を参照して説明する。
【0021】
(第1の実施形態)
まず、第1の実施形態について説明する。
図1は、実施形態の通信システム1の構成の例を示すシステム構成図である。通信システム1は、例えば、複数のデバイス装置10(デバイス装置10-1、10-2、…10-N)と、サーバ装置40と、メーカ50と、通信ネットワーク60とを備える。Nは、任意の自然数である。
【0022】
サーバ装置40と、デバイス装置10とは、通信ネットワーク60を介して互いに通信可能に接続される。なお、図1では、複数のデバイス装置10が、一つのサーバ装置40に通信可能に接続されている例を示しているが、これに限定されない。通信システム1において、一つのデバイス装置10が一つのサーバ装置40が接続されてもよいし、複数のデバイス装置10が複数のデバイス装置10に接続されていてもよい。また、一つのデバイス装置10が複数のサーバ装置40に接続されていてもよい。
【0023】
デバイス装置10のそれぞれには、制御チップ30(制御チップ30-1、30-2、…30-N)とマイコンチップ20(マイコンチップ20-1、20-2、…20-N)(デバイス装置10-1、10-2、…10-N)とが組み込まれている。ここで、マイコンチップ20は、「情報処理装置」の一例である。
【0024】
デバイス装置10は、サーバ装置40に環境データ等を送信する。デバイス装置10は、例えば、通信モジュールと、制御チップ30と、複数のセンサモジュールと、マイコンチップ20とを備える。通信モジュールは、通信ネットワーク60を介して、サーバ装置40と通信を行う。制御チップ30は、デバイス装置10を統括的に制御する。制御チップ30は、例えば、マイコンチップ20への電源の投入及び遮断を制御する。センサモジュールは、各種のデータを測定(センシング)するモジュールであり、例えば、温度を測定する温度センサや、撮像機能を備えた撮像モジュールである。
【0025】
マイコンチップ20は、通信内容を検証する。マイコンチップ20は、例えば、ICチップ、SE(セキュアエレメント)、セキュアICチップ、セキュアチップ、セキュアIC、セキュアマイコン等と称される、半導体基板の上に集積回路が実装された装置である。マイコンチップ20は、デバイス装置10に組み込まれ、デバイス装置10と通信を行うと共に、デバイス装置10を介してサーバ装置40と通信を行う。デバイス装置10からサーバ装置40に送信する通信内容を暗号化する。また、マイコンチップ20は、デバイス装置10が受信した通信内容を検証した上で、暗号化された通信内容を復号する。
【0026】
なお、マイコンチップ20は、例えばプラスチック等のカード機材に、マイコンチップ20の機能が実装されたICカード、又はSIMカード(Subscriber Identity Module Card)であってもよい。この場合、マイコンチップ20は、デバイス装置10に設けられたICカード又はSIMカードのコンタクト部(不図示)を介して着脱可能に装着される。
【0027】
通信ネットワーク60は、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、プロバイダ装置、無線基地局、専用回線などのうちの一部または全部を含む通信網である。
【0028】
サーバ装置40は、デバイス装置10から環境データ等を受信し、受信した通信データを蓄積して様々なサービスを提供する。ここでの様々なサービスとは、蓄積したデータを提示するサービスであり、例えば、サーバ装置40を操作するユーザの操作に応じて、環境データの時系列変化を示すグラフや、撮像データに応じた映像等を表示するサービスである。
【0029】
メーカ50は、例えば、デバイス装置10の製造メーカである。メーカ50は、例えば、何も書込まれていないマイコンチップ20を、マイコン製造ベンダから購入する。メーカ50は、購入したマイコンチップ20をデバイス装置10に組み込むデバイス装置10の製造過程において、マイコンチップ20に各種の情報を書込む。ここでマイコンチップ20に書込む各種の情報とは、マイコンチップ20に、通信内容を検知する処理を実行させるためのプログラムや、当該プログラムに用いられる変数である。
【0030】
本実施形態では、通信内容を暗号化して通信を行う場合、共通鍵暗号方式にて暗号化を行う。共通鍵暗号方式は、暗号化と復号とで同じ鍵を用いる方式である。共通鍵暗号方式は、暗号化と復号とで異なる鍵を用いる公開鍵暗号方式と比較して、暗号化及び復号に要する時間が少なく済むというメリットがある。以下の説明では、複数のマイコンチップ20のそれぞれがサーバ装置40との通信内容を暗号化する際に用いる個別の鍵を「個別鍵」という。
【0031】
本実施形態では、マイコンチップ20及びサーバ装置40(以下、マイコンチップ20等という)は、出荷時において個別鍵を保持していない。マイコンチップ20等は、所定のタイミングでマスタ鍵を用いて個別鍵を生成し、生成した個別鍵を用いて暗号化通信を行う。所定のタイミングとは、例えば、最初の起動時など、暗号化又は復号が必要となるタイミングである。具体的に、マイコンチップ20等には、個別鍵そのものではなく、個別鍵を生成させるために必要な情報が出荷時等において予め書き込まれて記憶される。
【0032】
ここで、個別鍵を発生するために必要な情報は、サーバ装置40と通信する複数のマイコンチップ20の全てに共通する情報である。個別鍵を発生するために必要な情報は、具体的に、「マスタ鍵」、「ID生成プログラム」及び「個別鍵生成プログラム」を示す情報である。「マスタ鍵」は、特に管理がなされていなくとも重複や偶然の一致が起こらないことを前提とした数値である。「マスタ鍵」は、例えば、AES(Advanced Encryption Standard)暗号における128ビットの鍵である。「ID生成プログラム」は、IDを生成するプログラムである。IDは、個別鍵を一意に識別する識別番号(数値)である。IDは、マスタ鍵と同様に、特に管理がなされていなくとも重複や偶然の一致が起こらないことを前提とした、例えば、UUID(Universally Unique Identifier)Version4における128ビットの識別子である。IDは、例えば、マイコン通信部25に設定されたMAC(Media Access Control)アドレスや、マイコンメーカー等によって設定されるマイコン固有のシリアル番号等を利用することも可能である。例えば、マイコンチップ20にふされたシリアル番号が、そのままIDとして利用されてもよいし、当該シリアル番号に基づいて加工された番号がIDとして利用されてもよい。ここでの加工とは、シリアル番号を基にシリアル番号とは異なる番号を生成することであり、例えば、シリアル番号を引数として所定のアルゴリズム(例えば、ハッシュの計算)を実行することにより生成された番号(ハッシュ値)を生成することをいう。「個別鍵生成プログラム」は、マスタ鍵とIDとを用いて、個別鍵を生成するプログラムである。
【0033】
すなわち、本実施形態では、サーバ装置40に接続する複数のマイコンチップ20に共通する情報のみを書込めばよいため、それぞれに個別の情報を書込む必要がない。すなわち、マイコンチップ20に個別の情報を書込むことなく、個別鍵を用いた暗号化通信を行うことが可能となる。
【0034】
例えば、共通鍵暗号を用いたチャレンジ&レスポンス方式にて相互認証を行う場合を考える。
まず、サーバ装置40がマイコンチップ20を認証するデバイス認証が行われる。この場合、マイコンチップ20は、個別鍵を生成する。具体的に、マイコンチップ20は、IDを生成し、生成したIDとマスタ鍵とを用いて、個別鍵生成プログラムを実行することにより、個別鍵を生成する。次に、マイコンチップ20は、生成したIDをホストIDとしてサーバ装置40に送信する。
【0035】
サーバ装置40は、マイコンチップ20からID(ホストID)を受信する。サーバ装置40は、マイコンチップ20にサーバチャレンジ(乱数)を送信する。マイコンチップ20は、受信したサーバチャレンジ(乱数)を、個別鍵を用いて暗号化する。マイコンチップ20は、暗号化したサーバチャレンジ(乱数)を、サーバ装置40に送信する。
【0036】
サーバ装置40は、マイコンチップ20から暗号化されたサーバチャレンジ(乱数)を受信する。サーバ装置40は、暗号化されたサーバチャレンジ(乱数)を復号する。ここで、サーバ装置40は、暗号化されたサーバチャレンジ(乱数)を復号するために個別鍵を生成する。サーバ装置40は、マイコンチップ20から受信したIDと、サーバ装置40に記憶されたマスタ鍵とを用いて、個別鍵発生プログラムを実行することにより、個別鍵を生成する。ここで、サーバ装置40が生成した個別鍵は、マイコンチップ20が個別鍵を生成する際に用いたものと同一の変数(ID、及びマスタ鍵)を用いて、同一のプログラム(個別鍵生成プログラム)を実行することにより、生成されたものである。すなわち、サーバ装置40が生成した個別鍵と、マイコンチップ20が生成した個別鍵とは、(マイコンチップ20が正しいID及びマスタ鍵を知らないなりすましの装置でない限り)同一の数値となる。
サーバ装置40は、復号した値と、自身が送信したサーバチャレンジ(乱数)とが一致するか否かを判定する。サーバ装置40は、両者が一致する場合、マイコンチップ20が正当であるとして、認証が成功した旨を示す通知をマイコンチップ20に送信する。一方、サーバ装置40は、両者が一致しない場合、マイコンチップ20が正当ではないとして、認証が失敗した旨を示す通知をマイコンチップ20に送信する。
【0037】
次に、マイコンチップ20がサーバ装置40を認証するサーバ認証が行われる。この場合、マイコンチップ20は、IDをホストIDとしてサーバ装置40に送信すると共に、デバイスチャレンジ(乱数)をサーバ装置40に送信する。
【0038】
サーバ装置40は、マイコンチップ20からデバイスチャレンジ(乱数)を受信し、受信したデバイスチャレンジ(乱数)を暗号化する。サーバ装置40は、暗号化するための個別鍵を生成していない場合には、マイコンチップ20から受信したIDと、サーバ装置40に記憶されたマスタ鍵とを用いて、個別鍵発生プログラムを実行することにより、個別鍵を生成する。サーバ装置40は、暗号化したデバイスチャレンジ(乱数)を、マイコンチップ20に送信する。
マイコンチップ20は、サーバ装置40から暗号化されたデバイスチャレンジ(乱数)を受信し、受信した暗号化されたデバイスチャレンジ(乱数)を復号する。マイコンチップ20は、復号した値と、自身が送信したデバイスチャレンジ(乱数)とが一致するか否かを判定する。マイコンチップ20は、両者が一致する場合、サーバ装置40が正当であるとして、認証が成功した旨を示す通知をサーバ装置40に送信する。一方、マイコンチップ20は、両者が一致しない場合、サーバ装置40が正当ではないとして、認証が失敗した旨を示す通知をサーバ装置40に送信する。
【0039】
図2は、第1の実施形態のマイコンチップ20の構成の例を示すブロック図である。マイコンチップ20を構成する機能部は、CPUなどのプロセッサがプログラム(ソフトウェア)を実行することにより実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【0040】
マイコンチップ20は、例えば、マイコン制御部21と、マイコン通信部25と、マイコン記憶部26とを備える。マイコン制御部21は、ID生成部22と、個別鍵生成部23と、マイコン処理部24と、を備える。マイコン記憶部26は、マスタ鍵記憶部27と、ID記憶部28と、個別鍵記憶部29とを備える。ここで、マイコン通信部25は、「通信部」の一例である。また、マイコン処理部24は、「情報処理部」の一例である。
【0041】
マイコン制御部21は、マイコンチップ20を統括的に制御する。ID生成部22は、マイコン記憶部26に記憶されたID生成プログラムを実行することにより、IDを生成する。ID生成プログラムは、例えば、乱数を発生させることにより、或いは現在時刻などを用いて128ビットのIDを生成するプログラムである。この場合、ID生成部22は、乱数を用いてIDを生成する。ID生成部22は、生成したIDを個別鍵生成部23に出力する。また、ID生成部22は、生成したIDをID記憶部28に記憶させる。
【0042】
個別鍵生成部23は、IDをパラメータとして個別鍵発生プログラムを実行することにより、マスタ鍵から派生させた個別鍵を生成する。IDは、ID生成部22により生成された128ビットの数値である。マスタ鍵は、マスタ鍵記憶部27に記憶された128ビットの数値である。個別鍵発生プログラムは、マイコン記憶部26に記憶されたプログラムである。個別鍵生成部23が、個別鍵を生成する方法(個別鍵発生プログラムのアルゴリズム)については、後で詳しく説明する。個別鍵生成部23は、生成した個別鍵を、個別鍵記憶部29に記憶させる。
【0043】
マイコン処理部24は、マイコンチップ20が行う各種の処理を行う。マイコン処理部24は、例えば、チャレンジ側としてサーバ装置40を認証する処理を行う。マイコン処理部24は、サーバ装置40からのサーバチャレンジ(乱数)を受信した場合、レスポンス側として、暗号化したサーバチャレンジを、レスポンスとしてサーバ装置40に送信する。マイコン処理部24は、例えば、デバイス装置10が取得した環境データ等を暗号化する。マイコン処理部24は、デバイス装置10が受信した、暗号化された通信内容を復号する。
【0044】
また、マイコン処理部24は、個別鍵生成部23により個別鍵が生成された後、マスタ鍵記憶部27に記憶されたマスタ鍵を消去するようにしてもよい。これにより、何等かの理由により個別鍵生成プログラムが流出した場合であっても、IDを用いて個別鍵が複製されてしまうことを抑制することが可能である。
【0045】
或いは、マイコン処理部24は、サーバ装置40との相互認証が完了した後に、マスタ鍵記憶部27に記憶されたマスタ鍵を消去するようにしてもよい。これにより、相互認証が完了するまではマスタ鍵を記憶しておくことができ、何等かの理由で相互認証に失敗した場合であっても、個別鍵を再生成して再度の相互認証を行うなどの対応を行うことが可能である。
【0046】
また、マイコン処理部24は、上述したマスタ鍵を消去するタイミングで、マスタ鍵と共に、或いはマスタ鍵に代えて、個別鍵生成プログラムを消去するようにしてもよい。また、マイコン処理部24は、サーバ装置40との相互認証が完了した後に、サーバ装置40からの命令に応じて、マスタ鍵、及び/又は個別鍵生成プログラムを消去するようにしてもよい。また、マイコン処理部24は、個別鍵生成プログラムと共にID生成プログラムを消去するようにしてもよい。
【0047】
マイコン通信部25は、通信ネットワーク60を介して、サーバ装置40と通信を行う。
マイコン記憶部26は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、またはRAM(Random Access Memory)などにより実現される。マイコン記憶部26は、出荷時などに予め書込まれた個別鍵発生プログラム、及びID生成プログラムを記憶する。マスタ鍵記憶部27は、出荷時などに予め設定されたマスタ鍵を記憶する。個別鍵記憶部29は、個別鍵生成部23により生成された個別鍵を記憶する。
【0048】
図3は、第1の実施形態のサーバ装置40の構成の例を示すブロック図である。サーバ装置40を構成する機能部は、マイコンチップ20と同様に、CPUなどのプロセッサがプログラム(ソフトウェア)を実行すること等により実現される。
【0049】
サーバ装置40は、例えば、サーバ制御部41と、サーバ通信部45と、サーバ記憶部46とを備える。サーバ制御部41は、個別鍵生成部43と、サーバ処理部44とを備える。サーバ記憶部46は、例えば、マスタ鍵記憶部47と、個別鍵記憶部49とを備える。サーバ装置40における個別鍵を生成する機能は、マイコンチップ20における当該機能と同様である。つまり、個別鍵生成部43は個別鍵生成部23と、マスタ鍵記憶部47はマスタ鍵記憶部27と、個別鍵記憶部49は個別鍵記憶部29と同じ機能である。このため、これらの機能部については、その機能についての説明を省略し、上述した構成と異なる動作のみ説明する。
【0050】
サーバ制御部41は、サーバ装置40を統括的に制御する。個別鍵生成部43は、マイコンチップ20からのホストIDを用いて、マイコンチップ20との通信に用いる個別鍵を生成し、生成した個別鍵を、個別鍵記憶部49に記憶させる。
なお、個別鍵は、IDを通知してきたマイコンチップ20を認証する度に生成されるようにしてもよい。この場合、例えば、マイコンチップ20との通信が終了した後に個別鍵記憶部49に記憶されている個別鍵が消去される。
或いは、一度生成された個別鍵が、継続して使用されるようにしてもよい。この場合、例えば、個別鍵生成部43により生成された個別鍵は、その個別鍵の生成に用いられたIDに対応付けて記憶される。そして、サーバ制御部41は、マイコンチップ20からIDが通知された場合、通知されたIDに基づいて、個別鍵記憶部49を参照する。サーバ制御部41は、通知されたIDに対応する個別鍵が記憶されている場合にはその個別鍵を用いて相互認証を行うようにする。一方、サーバ制御部41は、通知されたIDに対応する個別鍵が記憶されていない場合、個別鍵生成部43に、当該IDに対応する個別鍵を生成するようにする。
【0051】
サーバ処理部44は、サーバ装置40が行う各種の処理を行う。サーバ処理部44は、例えば、チャレンジ側としてマイコンチップ20を認証する処理を行う。サーバ処理部44は、マイコンチップ20からのホストID及びデバイスチャレンジ(乱数)を受信した場合、レスポンス側として、暗号化したデバイスチャレンジをマイコンチップ20に送信させる。サーバ処理部44は、例えば、デバイス装置10からの暗号化された環境データ等を復号してサーバ記憶部46に記憶させる。サーバ処理部44は、サーバ装置40からデバイス装置10に通知する通信内容を暗号化して送信させる。
【0052】
また、サーバ処理部44は、マイコンチップ20との相互認証が完了した後に、マイコンチップ20が記憶する、個別鍵の生成に関する情報を消去する命令をマイコンチップ20に送信するようにしてもよい。個別鍵の生成に関する情報は、例えば、マスタ鍵、個別鍵生成プログラムである。
【0053】
サーバ通信部45は、通信ネットワーク60を介して、デバイス装置10及び外部の端末装置と通信を行う。
【0054】
図4は、マイコン記憶部26に記憶される情報の構成例を示す図である。マイコン記憶部26は、例えば、変数の領域E1、ユーザプログラムの領域E2、及びファームウェアの領域E3を含んで構成される。領域E1~E3は、例えば、電気的に書き換え可能な不揮発性メモリであるEEPROMに設けられる。
【0055】
領域E1にはマイコンチップ20が各種の処理を行う際に利用されるデータが記憶される。領域E2にはマイコンチップ20が行う処理を実行するプログラムのうち、自身で内容を書き換えることができる運用とするプログラム(ユーザプログラム)が記憶される。領域E3にはマイコンチップ20が行う処理を実行するプログラムのうち、自身で内容を書き換えることができない運用とするプログラム(ファームウェア)が記憶される。ファームウェアは、ファームウェアを書き換える(ファームウェアアップデート)権限をもつ装置(例えば、図示しない通信システム1の管理サーバ)により、書き換えられる。管理サーバは、例えば、通信ネットワーク60を介して、ファームウェアアップデートのプログラムを暗号化したデータをマイコンチップ20に送信する。
【0056】
図4に示すように、領域E1には、マスタ鍵を示すデータD1、個別鍵を示すデータD2、及びIDを示すデータD3が設けられる。領域E2には、ID生成プログラムを示すプログラムP1、及び個別鍵生成プログラムを示すプログラムP2が設けられている。マイコンチップ20は、例えば、個別鍵を生成した後、或いは、相互認証が完了した後にデータD1、及び/又はプログラムP2を消去する。
【0057】
図5は、通信システム1において行われる処理の流れを示すシーケンス図である。図5に示すように、通信システム1において、サーバ設定、デバイス製造、デバイス初期化処理、及びデバイス利用開始の各フェーズに応じた処理が行われる。
【0058】
まず、サーバ設定のフェーズについて説明する。
ステップS101において、メーカ50は、サーバ装置40にマスタ鍵及びプログラム(個別鍵生成プログラム)を示すデータを通知する。メーカ50は、通信ネットワーク60を介してデータを送信してもよいし、データを記憶させた記憶媒体を受け渡すことによりデータを通知してもよい。サーバ装置40は、メーカ50から受け取ったデータを記憶させる。つまり、サーバ装置40は、個別鍵生成プログラムをサーバ記憶部46に記憶させ、マスタ鍵をマスタ鍵記憶部47に記憶させる。
【0059】
次に、デバイス製造のフェーズについて説明する。
ステップS102において、メーカ50は、マイコンチップ20にマスタ鍵及びプログラム(ID生成プログラムと個別鍵生成プログラム)を示すデータを書込む。つまり、マイコンチップ20は、ID生成プログラムと個別鍵生成プログラムをマイコン記憶部26に記憶させ、マスタ鍵をマスタ鍵記憶部27に記憶させる。
ステップS103において、メーカ50は、データを書込んだマイコンチップ20をデバイス装置10に組み込む。
【0060】
次に、デバイス初期化処理のフェーズについて説明する。
ステップS104において、デバイス装置10は、制御チップ30を介してマイコンチップ20の電源を投入し、マイコンチップ20を電源ONの状態とする。
ステップS105において、マイコン初期化処理が行われる。マイコン初期化処理では、初期設定として、ID及び個別鍵が設定される。マイコン初期化処理の詳細については、後で詳しく説明する。
ステップS106において、マイコンチップ20からデバイス装置10に、初期設定が完了した旨を示す完了通知がなされる。
ステップS107において、デバイス装置10は、マイコンチップ20からの完了通知を受けて、マイコンチップ20の電源を遮断し、マイコンチップ20を電源OFFの状態とする。
【0061】
次に、デバイス利用開始のフェーズについて説明する。
ステップS108において、デバイス装置10は、マイコンチップ20を電源ONの状態とする。
ステップS109において、マイコンチップ20は、ID、及びデバイスチャレンジ(乱数)をサーバ装置40に通知して相互認証を要求する認証要求を行う。
ステップS110において、サーバ装置40は、マイコンチップ20から通知されたIDを用いて個別鍵を生成する。
ステップS111において、サーバ装置40は、生成した個別鍵を用いて相互認証を行う。具体的に、サーバ装置40は、マイコンチップ20から通知されたデバイスチャレンジ(乱数)を暗号化したレスポンスをマイコンチップ20に送信する。また、サーバ装置40は、サーバ装置40が生成したサーバチャレンジ(乱数)をマイコンチップ20に通知して相互認証を要求する認証要求を行う。
ステップS112において、相互認証が完了した後にマイコンチップ20とサーバ装置40とは、個別鍵を用いた暗号化通信を行う。ここで、マイコンチップ20とサーバ装置40とは、セッション鍵を用いた暗号化通信を行ってもよい。セッション鍵は、一定の時間、あるいは通信開始から終了までの間だけ有効な、いわゆる使い捨ての暗号鍵である。
マイコンチップ20とサーバ装置40とは、例えば、相互認証で用いたサーバチャレンジとデバイスチャレンジとの排他的論理和を算出し、その算出結果を個別鍵で暗号化する。そして、暗号化した計算結果(排他的論理和)をセッション鍵として使用する。
ステップS113において、マイコンチップ20とサーバ装置40との通信が終了すると、デバイス装置10は、マイコンチップ20を電源OFFの状態とする。
【0062】
図6は、第1の実施形態のマイコンチップ20が行う処理の流れを示すフローチャートである。図6には、図5のシーケンス図におけるステップS105に示す、マイコン初期化処理のフローが示されている。
【0063】
ステップS200において、マイコンチップ20は、ID生成部22によりIDを生成する。ステップS201において、マイコンチップ20は、ID生成部22により生成されたIDをID記憶部28に記憶させる。
ステップS202において、マイコンチップ20は、個別鍵生成部23により、IDをパラメータとして個別鍵生成プログラムを実行することにより、マスタ鍵を派生させた個別鍵を生成する。ステップS203において、マイコンチップ20は、個別鍵生成部23により生成された個別鍵を個別鍵記憶部29に記憶させる。
ステップS204において、マイコンチップ20は、マイコン処理部24によりマスタ鍵記憶部27に記憶されたマスタ鍵を消去する。
【0064】
ここで、個別鍵を生成する方法について図7を用いて説明する。
図7は、第1の実施形態の個別鍵を生成する方法を説明する図である。ここでは、マイコンチップ20が個別鍵を生成する場合を例に説明するが、サーバ装置40が個別鍵を生成する場合も同様である。
【0065】
ステップS300において、マイコンチップ20の個別鍵生成部23は、ID生成部22により生成されたIDを取得する。
ステップS301において、個別鍵生成部23は、IDを用いてMD5(Message Digest algorithm 5)の処理を行う。MD5の処理は、入力(ID)の暗号的ハッシュ関数として128ビットのハッシュ値を生成する処理である。
ステップS302において、個別鍵生成部23は、IDのMD5値(128ビット)を取得する。ステップS303において、個別鍵生成部23は、ステップS300で取得したID(128ビット)の後に、ステップS302で取得したIDのMD5値(128ビット)を結合させ、ステップS304において、拡張ID(256ビット)を取得する。
ステップS305において、個別鍵生成部23は、マスタ鍵(128ビット)を用いて、拡張IDを暗号化する処理を行う。暗号化する処理は、一般的に用いられている任意の暗号化手法による処理であってよい。
ステップS306において、個別鍵生成部23は、暗号化された拡張ID(256ビット)を取得し、ステップS307において、個別鍵生成部23は、拡張IDの一部を個別鍵(128ビット)として取得する。個別鍵生成部23は、例えば、暗号化された拡張ID(256ビット)の前半128ビットを、デバイス装置10の認証に用いる個別鍵(デバイス認証用個別鍵)、後半128ビットを、サーバ装置40の認証に用いる個別鍵(サーバ認証用個別鍵)とする。
【0066】
上記では、マイコンチップ20がサーバ装置40と個別鍵を用いた相互認証を行う場合を例に説明してきたが、これに限定されることはない。マイコンチップ20は、デバイス装置10と個別鍵を用いた相互認証を行うようにしてもよい。この場合、デバイス装置10は、「サーバ装置」の一例である。
マイコンチップ20がデバイス装置10と個別鍵を用いた相互認証を行う場合、ステップS306に示すように、個別鍵生成部23は、デバイス装置10の認証に用いる個別鍵を生成する。そして、デバイス装置10の機能部(例えば、制御チップ30)は、サーバ装置40が備える個別鍵を生成する機能部(少なくとも個別鍵生成部43、及びマスタ鍵記憶部47)と同等の機能を備える。また、この場合、デバイス装置10は、「情報処理装置」の一例である。
【0067】
以上説明したように、第1の実施形態のマイコンチップ20は、マイコン通信部25と、マスタ鍵記憶部27と、個別鍵生成部23と、マイコン処理部24とを備える。マイコン通信部25は、通信先のサーバ装置40と通信する。マスタ鍵記憶部27は、マスタ鍵を示す128ビットの数値を記憶する。個別鍵生成部23は、マスタ鍵と特定のIDとを用いて個別鍵を生成する。マイコン処理部24は、サーバ装置40にIDとデバイスチャレンジ(乱数)を通知し、サーバ装置40と個別鍵を用いた通信を行う。ここでの個別鍵を用いた通信には、個別鍵を用いた相互認証、及び個別鍵又は相互認証の過程で共有したセッション鍵を用いた暗号化通信が含まれる。
これにより、第1の実施形態のマイコンチップ20は、マスタ鍵と特定のIDとを用いて個別鍵を生成することができ、予め個別鍵を記憶させる必要がない。このため、マイコンチップ20に個別の情報(個別鍵)を書込むことなく、個別鍵を用いた暗号化通信を行うことが可能となる。
【0068】
マイコンチップ20に共通の情報を書込む場合、シリコンウエハの状態で書込みを行うことが可能である。一方、個別の情報を書込む場合にはシリコンウエハからダイシングする等して個別のチップにした後に、チップ毎に書込む必要がある。その際、チップ毎に書込む情報が異なるために、個別にデータを選択する工程も発生する。このように、マイコンチップ20に共通の情報を書込む場合と、個別の情報を書込む場合とでは、製造段階における書込みの工程が全く異なる。このため、共通の情報のみを書込むことができれば、個別の情報のみを書込む場合と比較して、書込みに要する手間やコストを大きく削減させることが可能である。
【0069】
また、第1の実施形態のマイコンチップ20では、マイコン処理部24は、個別鍵生成部23により個別鍵が生成された後に、マスタ鍵記憶部27に記憶されたマスタ鍵を消去する。これにより、何等かの理由により個別鍵生成プログラムが流出した場合であっても、マイコンチップ20がサーバ装置40に通知したIDを用いて、個別鍵が複製されてしまうことを抑制することが可能である。
【0070】
また、第1の実施形態のマイコンチップ20では、マイコン処理部24は、サーバ装置40との相互認証が完了した後に、マスタ鍵記憶部27に記憶されたマスタ鍵を消去するようにしてもよい。これにより、相互認証が完了するまでマスタ鍵を記憶させておくことができ、何等かの理由により相互認証が失敗した場合であっても、再度個別鍵を生成して再度の認証を行うなどの対応することが可能である。
【0071】
また、第1の実施形態のマイコンチップ20では、マイコン処理部24は、サーバ装置40からの消去命令に応じて、マスタ鍵記憶部27に記憶されたマスタ鍵を消去するようにしてもよい。これにより、サーバ装置40がマイコンチップ20に記憶されたマスタ鍵を消去すると判定したタイミングに応じて、マスタ鍵を消去することが可能である。
【0072】
また、第1の実施形態のマイコンチップ20では、マイコン処理部24は、マスタ鍵を消去するタイミングで、マスタ鍵と共に、或いはマスタ鍵の代わりに個別鍵生成プログラムを消去するようにしてもよい。これにより、何等かの理由によりマイコンチップ20に記憶されている情報が盗み取られた場合であっても、個別鍵を生成するアルゴリズムが流出してしまうことを抑制することが可能である。
【0073】
また、第1の実施形態のサーバ装置40は、サーバ通信部45と、マスタ鍵記憶部47と、個別鍵生成部43と、サーバ処理部44とを備える。サーバ通信部45は、通信先のマイコンチップ20からIDを受信する。マスタ鍵記憶部47は、マスタ鍵を記憶する。個別鍵生成部43は、マスタ鍵とマイコンチップ20から受信したIDとを用いて、個別鍵を生成する。サーバ処理部44は、個別鍵生成部43により生成された個別鍵を用いて暗号化した通信内容を、マイコンチップ20に送信させる。これにより、第1の実施形態のサーバ装置40は、マイコンチップ20から通知されたIDから個別鍵を生成することができ、個別鍵を予め記憶しておく必要がない。
【0074】
また、第1の実施形態のサーバ装置40では、サーバ処理部44は、個別鍵生成部43により個別鍵が生成された後に、マイコンチップ20が記憶する前記個別鍵の生成に関する情報を消去する旨の命令を、マイコンチップ20に通知する。これにより、上述した効果と同様の効果を奏する。
【0075】
(第2の実施形態)
次に、第2の実施形態について説明する。本実施形態では、個別鍵の生成に用いられるデータやプログラム(マスタ鍵、ID、個別鍵生成プログラム及びID生成プログラム)が、ファームウェアの一部に記憶されている点において、上述した実施形態と相違する。この場合、マイコンチップ20は、ファームウェアを書き換える権限を有していないため、個別鍵を生成した後に、個別鍵の生成に用いられるデータやプログラムを消去することができない。
【0076】
以下の説明において、本実施形態が上述した実施形態と相違する構成については、通信システム1A、マイコンチップ20Aのように、符号の末尾に「A」を付して説明する。上述した実施形態と同等の構成については、同じ符号を付してその説明を省略する。また、以下では、マイコンチップ20Aを例に説明するが、サーバ装置40Aでも同様である。
【0077】
マイコンチップ20Aは、マイコン制御部21と、マイコン通信部25と、マイコン記憶部26Aとを備える。
【0078】
図8は、マイコン記憶部26Aに記憶される情報の構成例を示す図である。領域E1~E3は、図4と同様であるため、その説明を省略する。図7に示す通り、本実施形態では、マイコン記憶部26Aのファームウェアの領域E3にデータD1~D3、プログラムP1、P2が記憶される。
【0079】
ファームウェアの書き換える権限を有する管理サーバは、マイコンチップ20Aとの相互認証が完了した後、マイコンチップ20Aのファームウェアの内容を、個別鍵の生成に用いられるプログラムを含まないものに更新させる。具体的には、管理サーバは、暗号化した更新後のファームウェア(個別鍵の生成に用いられるプログラムを含まないもの)をマイコンチップ20Aに送信する。マイコンチップ20Aは、暗号化された更新後のファームウェアを復号して領域E3に書込む。
【0080】
以上、説明したように、第2の実施形態の通信システム1では、マイコンチップ20Aのファームウェアの書き換える権限を有する管理サーバを備える。管理サーバは、マイコンチップ20Aによる相互認証が完了した後に、マイコンチップ20Aのファームウェアを、少なくともマスタ鍵又は個別鍵生成プログラムを含まないものに更新する。これにより、第2の実施形態の通信システム1では、上述した効果と同様の効果を奏する。
【0081】
(第3の実施形態)
次に、第3の実施形態について説明する。本実施形態では、個別鍵を更新させる点において、上述した実施形態と相違する。以下の説明において、本実施形態が上述した実施形態と相違する構成については、通信システム1B、マイコンチップ20Bのように、符号の末尾に「B」を付して説明する。上述した実施形態と同等の構成については、同じ符号を付してその説明を省略する。また、以下では、マイコンチップ20Bが個別鍵を更新する場合を例に説明するが、サーバ装置40Bが個別鍵を更新する場合も同様である。
【0082】
マイコンチップ20Bは、マイコン制御部21Bと、マイコン通信部25と、マイコン記憶部26とを備える。マイコン制御部21Bは、ID生成部22と、個別鍵生成部23Bと、マイコン処理部24Bとを備える。
【0083】
マイコン処理部24Bは、個別鍵を更新するか否かを判定する。例えば、マイコン処理部24Bは、デバイス装置10がサーバ装置40Bと通信を行う度に個別鍵を更新すると判定する。この場合、個別鍵は、通信ごとにワンタイムで用いられる鍵となる。或いは、マイコン処理部24Bは、所定の期間(例えば、3か月間)が経過した場合に個別鍵を更新すると判定するようにしてもよい。また、マイコン処理部24Bは、サーバ装置40Bや管理サーバから個別鍵を更新する旨の指示を受信した場合に、個別鍵を更新すると判定するようにしてもよい。マイコン処理部24Bは、個別鍵を更新すると判定した場合、個別鍵生成部23に個別鍵を生成させる。
【0084】
個別鍵生成部23Bは、マイコン処理部24Bから指示に応じて、個別鍵を更新する。個別鍵生成部23Bは、IDと更新前の個別鍵(以下、旧個別鍵という)とを用いて更新後の個別鍵(以下、新個別鍵という)を生成する。
【0085】
図9は、通信システム1Bにおいて行われる処理の流れを示すシーケンス図である。図9に示すシーケンスは、個別鍵の更新時におけるデバイス利用開始のフェーズに対応する処理の流れを示している。このフェーズは、例えば、図5に示したシーケンス図におけるデバイス利用開始のフェーズ以降に行われる。また、図9のステップS400、S404、S405、S408~S410に示す処理は、図5のステップS104、S107、S108、S111~S113と同じ処理であるため、その説明を省略する。
【0086】
ステップS401において、マイコンチップ20Bは、個別鍵生成部23BによりIDをパラメータとして個別鍵生成プログラムを実行することにより、旧個別鍵を派生させた新個別鍵を生成する。
ステップS402において、マイコンチップ20Bは、個別鍵生成部23Bにより生成された新個別鍵を個別鍵記憶部29に記憶させる。この際、個別鍵記憶部29に記憶されていた旧個別鍵は、消去される。
ステップS403において、マイコンチップ20Bからデバイス装置10に、個別鍵の更新が完了した旨を示す完了通知がなされる。
ステップS406において、マイコンチップ20Bは、IDをサーバ装置40Bに通知して個別鍵の更新を要求する更新要求を行う。
ステップS407において、サーバ装置40Bは、マイコンチップ20Bから通知されたIDから旧個別鍵を特定し、IDと旧個別鍵とを用いて新個別鍵を生成する。
【0087】
以上説明したように、第3の実施形態のマイコンチップ20Bでは、個別鍵生成部23Bが、IDと旧個別鍵とIDとを用いて、新個別鍵を生成する。これにより、第3の実施形態のマイコンチップ20Bでは、個別鍵を更新することができ、通信をより安全に維持することが可能となる。
【0088】
なお、本発明における通信システム1(1A)、マイコンチップ20(20A、20B)、サーバ装置40(40A、40B)の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませて実行することにより処理を行なってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0089】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0090】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0091】
1(1A、1B)…通信システム、10…デバイス装置、20…マイコンチップ、21…マイコン制御部、22…ID生成部、23…個別鍵生成部、24…マイコン処理部、25…マイコン通信部、26…マイコン記憶部、27…マスタ鍵記憶部、28…ID記憶部、29…個別鍵記憶部、30…制御チップ、40…サーバ装置、41…サーバ制御部、43…個別鍵生成部、44…サーバ処理部、45…サーバ通信部、46…サーバ記憶部、47…マスタ鍵記憶部、49…個別鍵記憶部、50…メーカ
図1
図2
図3
図4
図5
図6
図7
図8
図9