(57)【特許請求の範囲】
【請求項１】
インターネットへの通信機能を持たない電子機器と，前記電子機器が接続され，インターネットへの通信機能を備え，セキュリティチップを搭載するホストと，前記ホストからインターネットを介してアクセス可能な，前記電子機器のベンダである機器ベンダの装置とからなる情報処理システムによるデータ送付方法であって，
前記電子機器には，第一の公開鍵が，あらかじめ前記機器ベンダによって登録されており，
前記セキュリティチップには，第三の秘密鍵と，前記セキュリティチップのベンダによって署名された第三の秘密鍵と対となる第三の公開鍵とが，あらかじめ前記セキュリティチップのベンダによって登録されており，
前記電子機器が，第二の秘密鍵と，前記第二の秘密鍵と対となる第二の公開鍵とを生成する過程と，
前記電子機器が，前記第二の公開鍵を前記セキュリティチップに送信する過程と，
前記セキュリティチップが，前記第三の秘密鍵を用いて，受信された前記第二の公開鍵に署名する過程と，
前記ホストが，前記署名された第二の公開鍵と，前記署名された第三の公開鍵とを，前記機器ベンダの装置に送信する過程と，
前記機器ベンダの装置が，受信された前記署名された第二の公開鍵と，前記署名された第三の公開鍵とを検証する過程と，
前記機器ベンダの装置が，検証により前記署名された第二の公開鍵の正当性が確認されると，少なくとも前記第二の公開鍵を用いて，前記電子機器に送信するデータを暗号化する過程と，
前記機器ベンダの装置が，前記第一の公開鍵と対となる第一の秘密鍵を用いて，前記暗号化されたデータに署名する過程と，
前記機器ベンダの装置が，前記署名され，暗号化されたデータを，前記ホストを介して前記電子機器に送信する過程と，
前記電子機器が，受信された前記署名され，暗号化されたデータを，前記第一の公開鍵を用いて検証する過程と，
前記電子機器が，検証により前記署名され，暗号化されたデータの正当性が確認されると，前記第二の秘密鍵を用いて前記暗号化されたデータを復号する過程とを有する
ことを特徴とするデータ送付方法。
【請求項２】
前記データが，前記電子機器で実行される前記電子機器のファームウェア更新プログラム，または前記電子機器の更新するファームウェアである
ことを特徴とする請求項１に記載のデータ送付方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，電子機器にデータを送付する技術に関するものであり，特に，インターネットへの通信機能を持たない電子機器に対して，インターネットを介して安全にデータを送付するデータ送付方法に関するものである。
【背景技術】
【０００２】
さまざまな局面において，インターネットを介した電子機器へのデータの送付が行われている。例えば，電子機器のファームウェアを更新する必要があるときに，更新ファームウェアやファームウェア更新プログラムを，電子機器のベンダから電子機器に送付する場合などである。
【０００３】
インターネットを介して電子機器に送付されるデータの中には，上記のファームウェアのような機密データも存在するため，その安全性の確保が重要な課題となっている。
【０００４】
なお，電子機器には，インターネットへの通信機能を備えた，すなわちインターネットへの直接接続が可能なＰＣ（パソコン）などの電子機器と，インターネットへの通信機能を持たない，すなわちインターネットへの直接接続ができないペリフェラル機器などの電子機器とが存在する。
【０００５】
インターネットへの直接接続が可能な電子機器を前提として，電子機器にデータを送付する技術が記載された先行技術文献として，例えば特許文献１，特許文献２などがある。特許文献１には，家電機器の制御プログラムを，装置の認証，鍵交換等を行って供給する技術が記載されている。特許文献２には，画像処理装置自身がＰＣなどを必要とせずにネットワークと接続し，装置固有データを暗号鍵として使用することによりファームウェアのバージョンアップを行う技術が記載されている。
【０００６】
また，例えば特許文献３には，機器と仲介者と更新者の間で信頼を連鎖させる技術が記載されている。ただし，特許文献３に記載された技術は，仲介者が悪意のある第三者により操作される可能性がある状況では機能を果たさない。
【特許文献１】特開２００３−１１１１７０号公報
【特許文献２】特開２００７−０１１９４４号公報
【特許文献３】特開２００４−３１８８３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ここで，販売後の電子機器におけるファームウェアの更新を例として考える。ファームウェアには企業のノウハウやセキュリティ関連情報などの機密情報が含まれており，ファームウェアの内容が公開されないようにする必要がある。また，製品の保証やセキュリティ上の観点で，電子機器のベンダの純正ファームウェア以外のものをインストールできないようにする必要がある。
【０００８】
このような状況を踏まえて，販売後の電子機器のファームウェアを更新するための方法としては，例えば，
（Ａ）電子機器をそのベンダがユーザから回収し，ベンダ側でファームウェアを更新する方法，
（Ｂ）更新ファームウェアやファームウェア更新プログラムをＣＤ−ＲＯＭ等の媒体に記録し，それを電子機器のユーザに配布してユーザにファームウェアの更新をしてもらう方法，
（Ｃ）電子機器をインターネットに接続して直接にベンダと通信を行い，認証，更新ファームウェアやファームウェア更新プログラムのダウンロード，ファームウェアの更新を行う方法
などが考えられる。
【０００９】
（Ａ）の方法では，ユーザがベンダに電子機器を物理的に送付する必要があり，コストが高い，手続きが煩雑であるという問題がある。ファームウェアの更新頻度や，電子機器の販売台数などによっては，あまり現実的な方法とはいえない。
【００１０】
（Ｂ）の方法において，更新ファームウェアやファームウェア更新プログラムを安全に配布する方法としては，更新ファームウェアやファームウェア更新プログラムを逆アセンブルが困難なものにする方法や，ベンダ側と電子機器側にあらかじめ共通鍵を用意し，更新ファームウェアやファームウェア更新プログラムを共通鍵暗号方式により暗号化する方法などが考えられる。
【００１１】
しかし，技術力があれば逆アセンブルは全く不可能というわけではなく，ファームウェアに関する情報が流出してしまったり，それによって誰でもファームウェアの改竄が可能となってしまうという問題がある。また，共通鍵暗号方式を用いた場合には，ベンダ側では各電子機器に登録した共通鍵をすべて保持／管理しておく必要がある。例えば電子機器ごとに別の共通鍵を用意するなど，共通鍵の種類を多くすると，その管理コストが膨大となり，非現実的である。また，例えば電子機器の機種ごとにまとめて同じ共通鍵を用意したり，全電子機器で単一の共通鍵を用意するなど，共通鍵の種類を少なくすると，現代の暗号は計算量的な安全性に基づいているため，鍵が破られてしまう可能性が高くなり，そのときの被害は甚大なものとなる。
【００１２】
このように，（Ｂ）の方法には，その安全性の面においてさまざまな問題があり，さらに，各ユーザにデータを配布するための媒体のコストや，その輸送コストなどの問題もある。
【００１３】
（Ｃ）の方法は，（Ａ）の方法や（Ｂ）の方法のような輸送コストの問題もなく，安全性の面でもＳＳＬなどのセキュリティ技術が用意されている。ただし，（Ｃ）の方法を実行するには電子機器がインターネットに直接接続されている必要があるため，インターネットへの直接接続が可能な電子機器に限られる。従来，インターネットへの直接接続ができない電子機器は，ベンダの装置との間で安全な鍵交換ができないため，ベンダの装置との間に安全な経路を確立することができない。
【００１４】
インターネットに直接接続されないペリフェラル機器などの電子機器のファームウェアを更新する場合には，例えば，ペリフェラル機器をＰＣなどのインターネットへの通信機能を備えた電子機器に接続し，ＰＣにベンダからファームウェア更新プログラムをダウンロードし，ＰＣでペリフェラル機器のファームウェア更新プログラムを実行する必要がある。この場合，鍵交換はＰＣとベンダの装置との間で行われるため，安全な通信経路はあくまでＰＣとベンダの装置との間で確立される。そのため，ＰＣから機密データが洩れてしまう可能性がある。電子機器をＰＣに接続して使用するユーザが，ベンダの競合他社である可能性は十分にある。
【００１５】
本発明は，上記の問題点の解決を図り，インターネットへの通信機能を持たない電子機器と，その電子機器のベンダの装置との間で安全な通信経路を確立し，インターネットへの通信機能を持たない電子機器に，電子機器のベンダの装置から，インターネットを介して安全にデータを送付する技術を提供することを目的とする。
【課題を解決するための手段】
【００１６】
インターネットへの通信機能を持たない電子機器と，その電子機器にデータを送付する電子機器のベンダ（以下，機器ベンダという）の装置との間で，公開鍵暗号方式に基づく鍵交換を行うことにより，安全な通信経路を確立する。なお，機器ベンダには，電子機器の製造元だけではなく，電子機器の販売元や，電子機器のファームウェアの開発元など，電子機器の製造からアフターサポートまでに関わるすべてのベンダが含まれうる。
【００１７】
機器ベンダは，インターネットへの通信機能を持たない電子機器に対して，その出荷前に，電子機器の公開鍵（以下，第二の公開鍵という）と秘密鍵（以下，第二の秘密鍵という），機器ベンダの公開鍵（以下，第一の公開鍵という）を登録する。このとき，第二の公開鍵に，機器ベンダが署名をしておく。第二の公開鍵と第二の秘密鍵とは，対となる鍵である。
【００１８】
電子機器を使用するユーザは，その電子機器を，インターネットへの通信機能を備えたホストに接続する。ホストは，インターネットを介して機器ベンダの装置にアクセスすることが可能である。
【００１９】
機器ベンダの装置から電子機器にデータを送付する必要がある場合には，ユーザがホストを操作し，インターネットを介して機器ベンダの装置にアクセスする。電子機器はホストからの要求にしたがって自らが保持する署名付き第二の公開鍵をホストに渡す。署名付き第二の公開鍵は，ホストの通信機能を介して，機器ベンダの装置に送られる。
【００２０】
機器ベンダの装置は，受け取った署名付き第二の公開鍵の正当性を検証し，その正当性が確認されれば，受け取った第二の公開鍵を用いて，電子機器に送付するデータを暗号化する。また，暗号化されたデータに，機器ベンダの秘密鍵（以下，第一の秘密鍵という）を用いて署名する。第一の秘密鍵は，電子機器に保持された第一の公開鍵と対となる鍵である。暗号化され，署名されたデータは，インターネット，ホストを介して，電子機器に送られる。
【００２１】
なお，データの暗号化に第二の公開鍵を用いるという表現には，データを共通鍵で暗号化し，その共通鍵を第二の公開鍵で暗号化して，共通鍵で暗号化されたデータに付するハイブリッド方式なども当然含まれる。
【００２２】
電子機器は，ホストを介して，機器ベンダの装置から暗号化され，署名されたデータを受信し，自らが保持する第一の公開鍵を用いて受け取ったデータの正当性を検証する。正当性が確認されれば，自らが保持する第二の秘密鍵を用いてデータを復号する。
【００２３】
このように，機器ベンダは，自らが署名して電子機器に登録した第二の公開鍵の正当性を検証することにより，なりすましの防止を図る。また，電子機器は，受信したデータの署名をあらかじめ登録された第一の公開鍵で検証することにより，なりすましの防止を図る。また，ホストは，電子機器と機器ベンダの装置との仲介をしてはいるが，第二の秘密鍵を持たないため，機器ベンダの装置から電子機器に送付されたデータを復号することができない。
【００２４】
これにより，インターネットへの通信機能を持たない電子機器と，その電子機器にデータを送付する機器ベンダの装置との間で鍵交換を行い，安全な通信経路を確立し，機器ベンダの装置から電子機器に安全にデータを送付することができるようになる。
【００２５】
機器ベンダ装置から電子機器に送付されるデータが，電子機器のファームウェア更新プログラム，または前記電子機器の更新するファームウェアであれば，そのファームウェアの機密情報が他に洩れることを防ぐことができる。また，純正以外のファームウェアで電子機器のファームウェアが更新されることを防ぐことができる。
【００２６】
機器ベンダが電子機器に第二の秘密鍵と第二の公開鍵とを登録するのではなく，電子機器で第二の秘密鍵と第二の公開鍵とを生成するようにすることもできる。この場合には，電子機器が接続されるホストに，セキュリティチップが搭載されている必要がある。セキュリティチップには，あらかじめセキュリティチップのベンダによって，そのセキュリティチップの秘密鍵（以下，第三の秘密鍵という）と，セキュリティチップのベンダによって署名されたセキュリティチップの公開鍵（以下，第三の公開鍵という）とが登録されている。第三の秘密鍵と第三の公開鍵とは，対となる鍵である。
【００２７】
機器ベンダの装置から電子機器にデータを送付する必要がある場合には，ユーザがホストを操作し，インターネットを介して機器ベンダの装置にアクセスし，電子機器はホストからの要求にしたがって自らが生成した第二の公開鍵をセキュリティチップに渡す。
【００２８】
セキュリティチップは，受け取った第二の公開鍵に自らが保持する第三の秘密鍵で署名する。その署名付き第二の公開鍵は，セキュリティチップに保持された署名付き第三の公開鍵とともに，ホストの通信機能によって，機器ベンダの装置に送られる。
【００２９】
機器ベンダの装置は，受け取った署名付き第二の公開鍵および署名付き第三の公開鍵の正当性を，ＰＫＩの認証局等を利用して検証する。機器ベンダで，第二の公開鍵の正当性が確認されたあとの流れは，機器ベンダによって電子機器にあらかじめ第二の秘密鍵と第二の公開鍵とが登録された場合と同様である。
【００３０】
これにより，電子機器で第二の秘密鍵と第二の公開鍵とを更新することが可能となるため，同じ第二の秘密鍵と第二の公開鍵とを長期間使用することによる危険性を，回避することができる。
【発明の効果】
【００３１】
インターネットへの通信機能を持たない電子機器と，電子機器のベンダの装置との間で，公開鍵暗号方式に基づく安全な鍵交換を行うことができるようになるため，電子機器とその電子機器のベンダの装置との間で，インターネットを介した安全な通信経路を確立することができる。これにより，インターネットを介して，電子機器のベンダの装置から電子機器に安全にデータを送付することができるようになる。
【発明を実施するための最良の形態】
【００３２】
以下，本実施の形態について，図を用いて説明する。
【００３３】
〔実施の形態１〕
図１は，本実施の形態１による電子機器の構成例を示す図である。電子機器１０は，インターネット９０への通信機能を持たない情報機器であり，インターネット９０への通信機能を備えたコンピュータであるホスト２０に接続される。
【００３４】
電子機器１０は，機器公開鍵証明書送信部１１，データ受信部１２，署名検証部１３，データ復号部１４を備える。また，電子機器１０は，機器ベンダ公開鍵証明書３００，機器公開鍵証明書１００，機器秘密鍵１０２を保持する。機器ベンダ公開鍵証明書３００，機器公開鍵証明書１００，機器秘密鍵１０２は，電子機器１０のベンダ（以下，機器ベンダという）によって，その出荷前に登録された情報である。
【００３５】
機器公開鍵証明書送信部１１は，ホスト２０を介して，保持された機器公開鍵証明書１００を機器ベンダ側の装置に送る。データ受信部１２は，ホスト２０を介して，機器ベンダ側の装置から送付されたデータを受信する。署名検証部１３は，機器ベンダ側の装置から送付されたデータに含まれる機器ベンダの署名を検証する。データ復号部１４は，機器ベンダ側の装置から送付されたデータに含まれる署名が正当であれば，機器ベンダ側の装置から送付されたデータを機器秘密鍵１０２で復号する。
【００３６】
機器ベンダ公開鍵証明書３００には，機器ベンダ公開鍵３０１，機器ベンダの署名３０３が含まれる。機器ベンダの署名３０３は，機器ベンダ公開鍵３０１のハッシュ値が機器ベンダ秘密鍵により暗号化されたものである。機器ベンダが保持する機器ベンダ秘密鍵と機器ベンダ公開鍵３０１とは，対となる鍵である。署名検証部１３で機器ベンダ側の装置から送付されたデータに含まれる機器ベンダの署名を検証するときには，機器ベンダ公開鍵証明書３００に含まれる機器ベンダ公開鍵３０１を用いる。
【００３７】
機器公開鍵証明書１００には，機器公開鍵１０１，機器ベンダの署名１０３が含まれる。機器ベンダの署名１０３は，機器公開鍵１０１のハッシュ値が機器ベンダ秘密鍵により暗号化されたものである。機器公開鍵１０１と機器秘密鍵１０２とは，対となる鍵である。
【００３８】
図２は，本実施の形態１の電子機器による処理のフローチャートである。図２に示す処理の例は，例えばホスト２０がインターネット９０を介して機器ベンダ側にアクセスし，機器ベンダ側が電子機器１０に配布しているデータを，電子機器１０にダウンロードする場合の例である。
【００３９】
まず，電子機器１０は，ホスト２０からの要求に応じて，保持された機器公開鍵証明書１００を，ホスト２０を介して機器ベンダ側に送信する（ステップＳ１０）。
【００４０】
このとき，機器ベンダ側では，電子機器１０から受け取った機器公開鍵証明書１００を検証し，その機器公開鍵証明書１００が正当であれば，機器公開鍵証明書１００に含まれる機器公開鍵１０１を用いて電子機器１０に送付するデータを暗号化する。さらに，その暗号化されたデータに対して機器ベンダ秘密鍵による署名を行う。具体的には，暗号化されたデータのハッシュ値を算出し，算出されたハッシュ値を機器ベンダ秘密鍵によって暗号化したものを暗号化されたデータに付す。機器ベンダ側は，暗号化されたデータを電子機器１０に送付する。
【００４１】
電子機器１０は，ホスト２０を介して機器ベンダ側から送付されたデータを受信すると（ステップＳ１１），受信したデータに付された署名を検証する（ステップＳ１２）。具体的には，受信したデータに付された署名を機器ベンダ公開鍵証明書３００に含まれる機器ベンダ公開鍵３０１で復号してハッシュ値を取得し，また，受信したデータ本体のハッシュ値を算出し，双方のハッシュ値が一致すれば署名が正当であるとする。
【００４２】
署名が正当であれば（ステップＳ１３），受信したデータを保持された機器秘密鍵１０２で復号する（ステップＳ１４）。署名が正当でなければ（ステップＳ１３），エラーを通知する（ステップＳ１５）。
【００４３】
以下では，特にインターネットへの通信機能を持たない電子機器１０のファームウェアの更新を例として，機器ベンダ側から電子機器１０側に安全にデータを送付する技術の例を説明する。
【００４４】
図３は，本実施の形態１による情報システムの構成例を示す図である。図３に示す情報システムにおいて，インターネット９０（図３では省略）への通信機能を持たない情報機器である電子機器１０は，ユーザが操作するコンピュータであるホスト２０に接続されている。機器ベンダ装置３０は，電子機器１０を販売した機器ベンダ側の情報装置である。ホスト２０は，インターネット９０を介して機器ベンダ装置３０にアクセスすることができる。
【００４５】
機器ベンダ装置３０は，機器ベンダ公開鍵３０１，機器ベンダ秘密鍵３０２，ファームウェア更新プログラム３０４を保持する。機器ベンダ公開鍵３０１と機器ベンダ秘密鍵３０２とは，対となる鍵である。ファームウェア更新プログラム３０４は，電子機器１０のファームウェアを更新するプログラムである。
【００４６】
機器ベンダは，電子機器１０の出荷前に，電子機器１０に対して機器公開鍵証明書１００，機器秘密鍵１０２，機器ベンダ公開鍵証明書３００を登録しておく。機器公開鍵証明書１００には，機器公開鍵１０１と，機器公開鍵１０１のハッシュ値を機器ベンダ秘密鍵３０２で暗号化した機器ベンダの署名１０３とが含まれる。機器公開鍵１０１と機器秘密鍵１０２とは，対となる鍵である。また，機器ベンダ公開鍵証明書３００には，機器ベンダ公開鍵３０１と，機器ベンダ公開鍵３０１のハッシュ値を機器ベンダ秘密鍵３０２で暗号化した機器ベンダの署名３０３とが含まれる。
【００４７】
ユーザは，電子機器１０にファームウェア更新プログラム３０４をダウンロードするために，ホスト２０を操作して機器ベンダ装置３０にアクセスする。電子機器１０は，ホスト２０からの要求にしたがって，ホスト２０を介して，機器ベンダ装置３０に機器公開鍵証明書１００を送信する。
【００４８】
機器ベンダ装置３０では，電子機器１０から受信された機器公開鍵証明書１００の正当性の検証が行われる。
【００４９】
図４は，本実施の形態１による機器公開鍵証明書の正当性の検証を説明する図である。電子機器１０にあらかじめ保持されている機器公開鍵証明書１００は，機器ベンダにより電子機器１０の出荷前に発行され，登録された情報である。機器ベンダ装置３０は，電子機器１０から受信した機器公開鍵証明書１００が，機器ベンダ自身により発行された機器公開鍵証明書１００であるかを検証する。
【００５０】
図４に示すように，機器公開鍵証明書１００には，機器ベンダの署名１０３が含まれている。機器ベンダの署名１０３は，機器公開鍵１０１のハッシュ値を機器ベンダ秘密鍵３０２で暗号化したものである。すなわち，電子機器１０から受信した機器公開鍵証明書１００に含まれる機器ベンダの署名１０３が機器ベンダ公開鍵３０１で正しく復号されれば，それは機器ベンダ秘密鍵３０２によって暗号化されたものであるので，電子機器１０から受信した機器公開鍵証明書１００が機器ベンダ自身により発行された機器公開鍵証明書１００であることが証明される。
【００５１】
電子機器１０から受信した機器公開鍵証明書１００の検証を行うときには，まず，機器公開鍵証明書１００に含まれる機器ベンダの署名１０３を機器ベンダ公開鍵３０１で復号し，ハッシュ値を取得する。また，電子機器１０から受信した機器公開鍵証明書１００に含まれる機器公開鍵１０１のハッシュ値を算出する。復号により取得されたハッシュ値と算出されたハッシュ値とを比較し，双方が一致すれば，電子機器１０から受信した機器公開鍵証明書１００の正当性が認められる。
【００５２】
上述したように，機器ベンダ公開鍵３０１で正しく復号される機器ベンダの署名１０３は，機器ベンダ秘密鍵３０２で暗号化されたものであるため，機器公開鍵証明書１００の正当性が確認されることにより，電子機器１０から送られた機器公開鍵証明書１００が機器ベンダ自身により発行された機器公開鍵証明書１００であることが証明される。よって，機器ベンダ自身により発行された機器公開鍵証明書１００を送信した電子機器１０は，正当な電子機器１０であると判断できる。
【００５３】
このように，本実施の形態１では，電子機器１０から送られた機器公開鍵証明書１００が機器ベンダ自身により発行された機器公開鍵証明書１００であることにより，機器公開鍵証明書１００の送信元である電子機器１０を信頼する。
【００５４】
図３において，機器ベンダ装置３０は，機器公開鍵証明書１００が正当であると判断されると，機器公開鍵証明書１００に含まれる機器公開鍵１０１でファームウェア更新プログラム３０４を暗号化する。暗号化されたファームウェア更新プログラム３０４のハッシュ値を算出し，算出されたハッシュ値を機器ベンダ秘密鍵３０２を用いて暗号化されたファームウェア更新プログラム３０４に署名する。機器ベンダ装置３０は，暗号化されたファームウェア更新プログラム３０４を，ホスト２０を介して電子機器１０に送付する。
【００５５】
電子機器１０は，暗号化されたファームウェア更新プログラム３０４を受信すると，受信した暗号化されたファームウェア更新プログラム３０４の署名の検証を行う。暗号化されたファームウェア更新プログラム３０４の正当性が証明されると，その暗号化されたファームウェア更新プログラム３０４を機器秘密鍵１０２で復号する。
【００５６】
機器公開鍵１０１で暗号化されたファームウェア更新プログラム３０４は，電子機器１０が保持する機器秘密鍵１０２でのみ復号可能である。よって，機器ベンダ装置３０から電子機器１０に暗号化されたファームウェア更新プログラム３０４が送られる過程で，例えば中継するホスト２０などで暗号化されたファームウェア更新プログラム３０４を取得したとしても，その暗号化されたファームウェア更新プログラム３０４を復号することはできない。
【００５７】
電子機器１０は，復号されたファームウェア更新プログラム３０４を実行することにより，電子機器１０自身のファームウェアの更新を行う。
【００５８】
なお，図３に示す例では，ファームウェア更新プログラム３０４を電子機器１０にダウンロードし，そのファームウェア更新プログラム３０４を実行することにより，電子機器１０のファームウェアを更新しているが，更新するファームウェアを電子機器にダウンロードし，電子機器１０に備えられたファームウェア更新機能によりファームウェア更新を行うようにしてもよい。
【００５９】
また，図３，図４に示す例では，あらかじめ電子機器１０に登録しておく機器公開鍵証明書１００に含まれる機器ベンダの署名１０３の署名，検証に用いられる公開鍵／秘密鍵の対と，機器ベンダ装置３０から電子機器１０に送付される暗号化データに対する署名，検証に用いられる公開鍵／秘密鍵の対とが，共に機器ベンダ公開鍵３０１／機器ベンダ秘密鍵３０２の対となっているが，機器ベンダの署名１０３の署名，検証に用いられる公開鍵／秘密鍵の対と，暗号化データに対する署名，検証に用いられる公開鍵／秘密鍵の対とに，異なる公開鍵／秘密鍵の対を用いるようにしてもよい。
【００６０】
図５は，ファームウェア更新プログラムの暗号化／復号化の流れを説明する図である。ファームウェア更新プログラム３０４は，機器ベンダ側で暗号化され，電子機器１０側で復号される。
【００６１】
機器ベンダ側では，ファームウェア更新プログラム３０４を，機器公開鍵証明書１００に含まれる機器公開鍵１０１で暗号化する。暗号化されたファームウェア更新プログラム３０４のハッシュ値３０５を算出し，そのハッシュ値３０５を機器ベンダ秘密鍵３０２で暗号化し，それを暗号化されたファームウェア更新プログラム３０４の署名とする。署名済の暗号化されたファームウェア更新プログラム３０４が，電子機器１０側に送信される。
【００６２】
電子機器１０側では，署名済の暗号化されたファームウェア更新プログラム３０４を受信すると，暗号化（署名）されたハッシュ値３０５を機器ベンダ公開鍵証明書３００に含まれる機器ベンダ公開鍵３０１で復号し，ハッシュ値３０５を取得する。また，暗号化されたファームウェア更新プログラム３０４のハッシュ値３０６を算出する。復号により得られたハッシュ値３０５と算出されたハッシュ値３０６とを比較し，双方が一致する場合には，受信データの正当性，すなわち暗号化されたファームウェア更新プログラム３０４の正当性が証明される。電子機器１０側では，あらかじめ保持された機器ベンダ公開鍵３０１によって受信データの正当性が証明されることにより，受信データが機器ベンダ側から送られた正当なデータであることを信頼する。
【００６３】
暗号化されたファームウェア更新プログラム３０４を機器秘密鍵１０２で復号し，実行可能なファームウェア更新プログラム３０４が得られる。
【００６４】
ここまでの説明では，データの暗号化に公開鍵暗号方式を用いているが，処理時間の短縮を図るため，共通鍵暗号方式と公開鍵暗号方式とのハイブリッド方式を用いるようにしてもよい。実際には，送付するデータのデータサイズが大きい場合には，ハイブリッド方式でデータを暗号化するのが一般的である。なお，署名に関しては，データサイズの小さいハッシュ値を暗号化するので，公開鍵暗号方式を用いるのが一般的である。
【００６５】
図６は，ハイブリッド方式を説明する図である。図６（Ａ）は，公開鍵暗号方式によるデータの暗号化を示す。公開鍵暗号化方式では，公開鍵３６０によって直接にデータサイズが大きいデータ（平文）３５０を暗号化し，暗号化されたデータ（暗号文）３５１を生成する。この場合には，暗号化処理に長時間を費やしてしまう。
【００６６】
図６（Ｂ）は，ハイブリッド方式によるデータの暗号化を示す。ハイブリッド方式では，データサイズが大きいデータ（平文）３５０を比較的に処理時間が短い共通鍵３７０によって暗号化し（共通鍵暗号方式），暗号化されたデータ（暗号文）３５１を生成する。さらに，データサイズが小さい共通鍵３７０を公開鍵３６０によって暗号化し（公開鍵暗号方式），その暗号化された共通鍵３７１をデータ（暗号文）３５１に添付する。
【００６７】
このようなハイブリッド方式を用いることにより，暗号化の処理時間を短縮し，かつ安全なデータの送付を行うことができる。
【００６８】
本実施の形態１により，電子機器１０と機器ベンダ装置３０との間で安全な鍵交換が可能となり，電子機器１０と機器ベンダ装置３０との間の安全な通信経路を確立することが可能となる。
【００６９】
〔実施の形態２〕
前述の実施の形態１では，電子機器１０にあらかじめ登録された機器公開鍵１０１と機器秘密鍵１０２とを変えずに使用することとなるため，一度鍵が破られてしまうと，電子機器１０と機器ベンダ装置３０との間に安全な通信経路を確立することができなくなってしまう。
【００７０】
以下で説明する本実施の形態２では，機器公開鍵１０１と機器秘密鍵１０２とを変更可能とすることにより，電子機器１０と機器ベンダ装置３０との間の安全な通信経路の確立を，長期間保つことができるようにする。
【００７１】
本実施の形態２は，機器ベンダ側から電子機器側に安全にデータを送付する技術として，セキュリティチップを用いた場合の例である。本実施の形態２では，セキュリティチップとして，ＴＣＧ（Trusted Computing Group ）で標準化されているＴＰＭ（Trusted Platform Module ）を用いることを前提としている。
【００７２】
図７は，本実施の形態２による電子機器の構成例を示す図である。電子機器１０’は，インターネット９０への通信機能を持たない情報機器であり，インターネット９０への通信機能を備えたコンピュータであるホスト２０’に接続される。
【００７３】
ホスト２０’には，セキュリティチップ（ＴＰＭ）４０が搭載されている。セキュリティチップ（ＴＰＭ）４０は，耐タンパ性を持ち，通常はＰＣなどのマザーボードに直付けされているチップである。セキュリティチップ（ＴＰＭ）４０では，暗号鍵やハッシュ値などの安全な保管が行われる。
【００７４】
電子機器１０’は，機器公開鍵送信部１５，データ受信部１２，署名検証部１３，データ復号部１４，鍵生成部１６を備える。また，電子機器１０’は，機器ベンダによって，その出荷前に登録された機器ベンダ公開鍵証明書３００を保持する。なお，機器公開鍵１０１と機器秘密鍵１０２との対は，必要に応じて電子機器１０’内で生成される。
【００７５】
データ受信部１２，署名検証部１３，データ復号部１４，機器ベンダ公開鍵証明書３００については，前述の実施の形態１と同様であるので，ここでの説明は省略する。機器公開鍵送信部１５は，機器公開鍵１０１を，セキュリティチップ（ＴＰＭ）４０に送る。鍵生成部１６は，必要に応じて機器公開鍵１０１と機器秘密鍵１０２との対を生成する。
【００７６】
図８は，本実施の形態２の電子機器による処理のフローチャートである。図８に示す処理の例は，例えばホスト２０’がインターネット９０を介して機器ベンダ側にアクセスし，機器ベンダ側が電子機器１０’に配布しているデータを，電子機器１０’にダウンロードする場合の例である。
【００７７】
電子機器１０’は，機器公開鍵１０１，機器秘密鍵１０２を生成する（ステップＳ２０）。ホスト２０’からの要求に応じて，生成された機器公開鍵１０１を，ホスト２０’に搭載されたセキュリティチップ（ＴＰＭ）４０に対して，セキュリティチップ（ＴＰＭ）４０との認証に基づく安全な方法で送信する（ステップＳ２１）。
【００７８】
このとき，セキュリティチップ（ＴＰＭ）４０は，電子機器１０’から受け取った機器公開鍵１０１に対してＴＰＭ秘密鍵（セキュリティチップ（ＴＰＭ）４０の秘密鍵）で署名することにより，機器公開鍵証明書を生成し，生成された機器公開鍵証明書とＴＰＭ公開鍵証明書（セキュリティチップ（ＴＰＭ）４０の公開鍵を含む，セキュリティチップ（ＴＰＭ）４０の公開鍵証明書）とを，ホスト２０’の通信機能を介して，機器ベンダ側に送信する。
【００７９】
機器ベンダ側では，受け取った機器公開鍵証明書，ＴＰＭ公開鍵証明書をＰＫＩの認証局などを利用して検証し，その機器公開鍵証明書が正当であれば，機器公開鍵証明書に含まれる機器公開鍵１０１を用いて電子機器１０’に送付するデータを暗号化する。さらに，その暗号化されたデータに対して機器ベンダ秘密鍵による署名を行う。具体的には，暗号化されたデータのハッシュ値を算出し，算出されたハッシュ値を機器ベンダ秘密鍵によって暗号化したものを暗号化されたデータに付す。機器ベンダ側は，暗号化されたデータを電子機器１０’に送付する。
【００８０】
電子機器１０’は，ホスト２０’を介して機器ベンダ側から送付されたデータを受信すると（ステップＳ２２），受信したデータに付された署名を検証する（ステップＳ２３）。具体的には，受信したデータに付された署名を機器ベンダ公開鍵証明書３００に含まれる機器ベンダ公開鍵３０１で復号してハッシュ値を取得し，また，受信したデータ本体のハッシュ値を算出し，双方のハッシュ値が一致すれば署名が正当であるとする。
【００８１】
署名が正当であれば（ステップＳ２４），受信したデータを生成された機器秘密鍵１０２で復号する（ステップＳ２５）。署名が正当でなければ（ステップＳ２４），エラーを通知する（ステップＳ２６）。
【００８２】
以下では，前述の実施の形態１と同様に，特にインターネットに直接接続することができない電子機器１０’のファームウェアの更新を例として，機器ベンダ側から電子機器１０’側に安全にデータを送付する技術の例を説明する。
【００８３】
図９は，本実施の形態２による情報システムの構成例を示す図である。図９に示す情報システムにおいて，インターネット９０（図９では省略）への通信機能を持たない情報機器である電子機器１０’は，ユーザが操作するコンピュータであるホスト２０’に接続されている。機器ベンダ装置３０は，電子機器１０’を販売した機器ベンダ側の情報装置である。ホスト２０’は，インターネット９０を介して機器ベンダ装置３０にアクセスすることができる。
【００８４】
機器ベンダ装置３０は，機器ベンダ秘密鍵３０２，ファームウェア更新プログラム３０４を保持する。ファームウェア更新プログラム３０４は，電子機器１０’のファームウェアを更新するプログラムである。
【００８５】
機器ベンダは，電子機器１０’の出荷前に，電子機器１０’に対して機器ベンダ公開鍵証明書３００を登録しておく。機器ベンダ公開鍵証明書３００には，機器ベンダ公開鍵３０１と，機器ベンダ公開鍵３０１のハッシュ値を機器ベンダ秘密鍵３０２で暗号化した機器ベンダの署名３０３とが含まれる（図７参照）。機器ベンダ公開鍵証明書３００に含まれる機器ベンダ公開鍵３０１と，機器ベンダ装置３０が保持する機器ベンダ秘密鍵３０２とは，対となる鍵である。
【００８６】
ホスト２０’には，セキュリティチップ（ＴＰＭ）４０が搭載されている。セキュリティチップ（ＴＰＭ）４０には，ＴＰＭ公開鍵証明書４００，ＴＰＭ秘密鍵４０２が，ＴＰＭベンダ（セキュリティチップ（ＴＰＭ）４０のベンダ）によって，その製造時に登録されている。セキュリティチップ（ＴＰＭ）４０では，電子機器１０’から受け取った機器公開鍵１０１にＴＰＭ秘密鍵１０２で署名を施すことにより，機器公開鍵証明書１００’を生成する。
【００８７】
ＴＰＭベンダは，ＴＰＭベンダ公開鍵（ＴＰＭベンダの公開鍵）を，あらかじめ認証局（ＣＡ：Certification Authority ）に登録しておく。認証局では，登録されたＴＰＭベンダ公開鍵に署名を施してＴＰＭベンダ公開鍵証明書５００を生成し，機器ベンダ側からの要求に応じて，ＴＰＭベンダ公開鍵証明書５００を発行する。
【００８８】
図１０は，本実施の形態２によるＴＰＭ公開鍵証明書，機器公開鍵証明書，ＴＰＭベンダ公開鍵証明書の例を示す図である。図１０（Ａ）に示すように，ＴＰＭ公開鍵証明書４００には，ＴＰＭ公開鍵４０１，ＴＰＭベンダの署名４０３が含まれる。ＴＰＭ公開鍵証明書４００に含まれるＴＰＭ公開鍵４０１と，セキュリティチップ（ＴＰＭ）４０が保持するＴＰＭ秘密鍵４０２とは，対となる鍵である。また，図１０（Ｂ）に示すように，機器公開鍵証明書１００’には，機器公開鍵１０１，ＴＰＭの署名１０４が含まれる。また，図１０（Ｃ）に示すように，ＴＰＭベンダ公開鍵証明書５００には，ＴＰＭベンダ公開鍵５０１，認証局の署名５０２が含まれる。
【００８９】
図１０（Ａ）に示すＴＰＭ公開鍵証明書４００において，ＴＰＭベンダの署名４０３は，ＴＰＭ公開鍵４０１のハッシュ値がＴＰＭベンダの秘密鍵（ＴＰＭベンダ公開鍵５０１と対となる鍵）により暗号化されたものである。また，図１０（Ｂ）に示す機器公開鍵証明書１００’において，ＴＰＭの署名１０４は，機器公開鍵１０１のハッシュ値がＴＰＭ秘密鍵４０２により暗号化されたものである。また，図１０（Ｃ）に示すＴＰＭベンダ公開鍵証明書５００において，認証局の署名５０２は，ＴＰＭベンダ公開鍵５０１のハッシュ値が認証局の秘密鍵により暗号化されたものである。
【００９０】
図９において，ユーザは，電子機器１０’にファームウェア更新プログラム３０４をダウンロードするために，ホスト２０’を操作して機器ベンダ装置３０にアクセスする。電子機器１０’は，機器公開鍵１０１と機器秘密鍵１０２との対を生成し，ホスト２０’に搭載されたセキュリティチップ（ＴＰＭ）４０に対して，セキュリティチップ（ＴＰＭ）４０との認証に基づく安全な方法で機器公開鍵１０１を送信する。
【００９１】
セキュリティチップ（ＴＰＭ）４０は，電子機器１０’から受け取った機器公開鍵１０１に対してＴＰＭ秘密鍵４０２により署名を行って機器公開鍵証明書１００’を生成し，その機器公開鍵証明書１００’と自らが保持するＴＰＭ公開鍵証明書４００とを，ホスト２０’の通信機能を介して，機器ベンダ装置３０に送信する。
【００９２】
機器ベンダ装置３０では，受信された機器公開鍵証明書１００’の正当性の検証が行われる。
【００９３】
図１１は，本実施の形態２による機器公開鍵証明書の正当性の検証を説明する図である。受信された機器公開鍵証明書１００’は，ＴＰＭベンダにより製造されたセキュリティチップ（ＴＰＭ）４０で署名を受けた情報である。機器ベンダ装置３０は，受信された機器公開鍵証明書１００’が，正当なＴＰＭベンダにより製造された正当なセキュリティチップ（ＴＰＭ）４０によって署名を受けた情報であるかを検証する。
【００９４】
図１１に示すように，機器公開鍵証明書１００’には，機器公開鍵１０１のハッシュ値がＴＰＭ秘密鍵４０２で暗号化されたＴＰＭベンダの署名１０４が含まれている。また，ＴＰＭ公開鍵証明書４００には，ＴＰＭ公開鍵４０１のハッシュ値がＴＰＭベンダの秘密鍵で暗号化されたＴＰＭベンダの署名４０３が含まれている。また，ＴＰＭベンダ公開鍵証明書５００には，ＴＰＭベンダ公開鍵５０１のハッシュ値が認証局の秘密鍵で暗号化された認証局の署名５０２が含まれている。これらの署名が段階的にすべて正しく復号されれば，受信された機器公開鍵証明書１００’が，正当なＴＰＭベンダにより製造された正当なセキュリティチップ（ＴＰＭ）４０によって署名を受けた機器公開鍵証明書１００’であることが証明される。
【００９５】
まず，機器公開鍵証明書１００’の検証を行う。機器公開鍵証明書１００’に含まれるＴＰＭの署名１０４を，ＴＰＭ公開鍵証明書４００に含まれるＴＰＭ公開鍵４０１で復号し，ハッシュ値を取得する。また，機器公開鍵証明書１００’に含まれる機器公開鍵１０１のハッシュ値を算出する。復号により取得されたハッシュ値と算出されたハッシュ値とを比較し，双方が一致すれば，受信された機器公開鍵証明書１００’が，ＴＰＭ公開鍵証明書４００を発行したセキュリティチップ（ＴＰＭ）４０によって署名された情報であると認められる。
【００９６】
次に，ＴＰＭ公開鍵証明書４００の検証を行う。機器ベンダ側では，認証局からＴＰＭベンダ公開鍵証明書５００を取得しておく。ＴＰＭ公開鍵証明書４００に含まれるＴＰＭベンダの署名４０３を，ＴＰＭベンダ公開鍵証明書５００に含まれるＴＰＭベンダ公開鍵５０１で復号し，ハッシュ値を取得する。また，ＴＰＭ公開鍵証明書４００に含まれるＴＰＭ公開鍵４０１のハッシュ値を算出する。復号により取得されたハッシュ値と算出されたハッシュ値とを比較し，双方が一致すれば，受信されたＴＰＭ公開鍵証明書４００が，ＴＰＭベンダによって署名された情報であると認められる。
【００９７】
次に，ＴＰＭベンダ公開鍵証明書５００の検証を行う。機器ベンダ側では，正規の手段で認証局の公開鍵６０１を取得しておく。認証局の公開鍵６０１は，ＴＰＭベンダ公開鍵５０１に対する署名に用いられた認証局の秘密鍵と対となる鍵である。ＴＰＭベンダ公開鍵証明書５００に含まれる認証局の署名５０２を，認証局の公開鍵６０１で復号し，ハッシュ値を取得する。また，ＴＰＭベンダ公開鍵証明書５００に含まれるＴＰＭベンダ公開鍵５０１のハッシュ値を算出する。復号により取得されたハッシュ値と算出されたハッシュ値とを比較し，双方が一致すれば，ＴＰＭベンダ公開鍵証明書５００が，認証局によって署名された情報であると認められる。
【００９８】
ＴＰＭベンダ公開鍵証明書５００は，認証局によってその正当性が証明され，ＴＰＭ公開鍵証明書４００は，ＴＰＭベンダ公開鍵証明書５００の正当性が証明されることにより間接的にその正当性が証明され，機器公開鍵証明書１００’は，ＴＰＭ公開鍵証明書４００の正当性が証明されることにより間接的にその正当性が証明される。
【００９９】
このように，本実施の形態２では，ＰＫＩ等の既存のインフラを利用し，段階的な証明により，受信された機器公開鍵証明書１００’が，正当なＴＰＭベンダにより製造された正当なセキュリティチップ（ＴＰＭ）４０によって署名を受けた情報であることを信頼する。
【０１００】
図９において，機器ベンダ装置３０は，機器公開鍵証明書１００’が正当であると判断されると，機器公開鍵証明書１００’に含まれる機器公開鍵１０１でファームウェア更新プログラム３０４を暗号化する。暗号化されたファームウェア更新プログラム３０４のハッシュ値を算出し，算出されたハッシュ値を機器ベンダ秘密鍵３０２を用いて暗号化されたファームウェア更新プログラム３０４に署名する。機器ベンダ装置３０は，暗号化されたファームウェア更新プログラム３０４を，ホスト２０’を介して電子機器１０’に送付する。
【０１０１】
電子機器１０’は，暗号化されたファームウェア更新プログラム３０４を受信すると，受信した暗号化されたファームウェア更新プログラム３０４の署名の検証を行う。暗号化されたファームウェア更新プログラム３０４の正当性が証明されると，その暗号化されたファームウェア更新プログラム３０４を機器秘密鍵１０２で復号する。
【０１０２】
機器公開鍵１０１で暗号化されたファームウェア更新プログラム３０４は，電子機器１０’が生成し，保持する機器秘密鍵１０２でのみ復号可能である。よって，機器ベンダ装置３０から電子機器１０’に暗号化されたファームウェア更新プログラム３０４が送られる過程で，例えば中継するホスト２０’などで暗号化されたファームウェア更新プログラム３０４を取得したとしても，その暗号化されたファームウェア更新プログラム３０４を復号することはできない。
【０１０３】
電子機器１０’は，復号されたファームウェア更新プログラム３０４を実行することにより，電子機器１０’自身のファームウェアの更新を行う。
【０１０４】
本実施の形態２によるファームウェア更新プログラムの暗号化／復号化の流れについては，前述の実施の形態１と同様であるので，説明を省略する。また，本実施の形態２においても，前述の実施の形態１の場合と同様に，データの暗号化にハイブリッド方式を用いることも当然可能である。
【０１０５】
本実施の形態２により，セキュリティチップ（ＴＰＭ）４０を用いることで，機器ベンダ側が，電子機器１０’で生成された機器公開鍵１０１の正当性を認証局等を利用して確認することが可能となるので，機器公開鍵１０１と機器秘密鍵１０２を更新することが可能となり，電子機器１０’と機器ベンダ装置３０との間の通信経路を長期間安全に保つことが可能となる。
【０１０６】
以上，実施の形態１，２について説明したが，本発明はこれらの形態に限るものではない。例えば，前述の実施の形態１，２では，機器ベンダから電子機器にデータを送付する例として，ファームウェアの更新プログラムを送付する例を挙げたが，送付データがファームウェア更新プログラムである必要はない。例えば，携帯型音楽プレーヤのベンダ（機器ベンダに相当）からＰＣ（ホスト２０に相当）などを用いて携帯型音楽プレーヤ（電子機器１０に相当）に音楽データをダウンロードする場合には，ベンダから携帯型音楽プレーヤへの送付データが音楽データとなる。
【図面の簡単な説明】
【０１０７】
【図１】本実施の形態１による電子機器の構成例を示す図である。
【図２】本実施の形態１の電子機器による処理のフローチャートである。
【図３】本実施の形態１による情報システムの構成例を示す図である。
【図４】本実施の形態１による機器公開鍵証明書の正当性の検証を説明する図である。
【図５】ファームウェア更新プログラムの暗号化／復号化の流れを説明する図である。
【図６】ハイブリッド方式を説明する図である。
【図７】本実施の形態２による電子機器の構成例を示す図である。
【図８】本実施の形態２の電子機器による処理のフローチャートである。
【図９】本実施の形態２による情報システムの構成例を示す図である。
【図１０】本実施の形態２によるＴＰＭ公開鍵証明書，機器公開鍵証明書，ＴＰＭベンダ公開鍵証明書の例を示す図である。
【図１１】本実施の形態２による機器公開鍵証明書の正当性の検証を説明する図である。
【符号の説明】
【０１０８】
１０，１０’  電子機器
１１  機器公開鍵証明書送信部
１２  データ受信部
１３  署名検証部
１４  データ復号部
１５  機器公開鍵送信部
１６  鍵生成部
２０，２０’  ホスト
３０  機器ベンダ装置
４０  セキュリティチップ（ＴＰＭ）
９０  インターネット
１００，１００’  機器公開鍵証明書
１０１  機器公開鍵
１０２  機器秘密鍵
１０３  機器ベンダの署名
１０４  ＴＰＭの署名
３００  機器ベンダ公開鍵証明書
３０１  機器ベンダ公開鍵
３０２  機器ベンダ秘密鍵
３０３  機器ベンダの署名
３０４  ファームウェア更新プログラム
４００  ＴＰＭ公開鍵証明書
４０１  ＴＰＭ公開鍵
４０２  ＴＰＭ秘密鍵
４０３  ＴＰＭベンダの署名
５００  ＴＰＭベンダ公開鍵証明書
５０１  ＴＰＭベンダ公開鍵
５０２  認証局の署名
【図１】
0005136012.tif 000002
【図２】
0005136012.tif 000003
【図３】
0005136012.tif 000004
【図４】
0005136012.tif 000005
【図５】
0005136012.tif 000006
【図６】
0005136012.tif 000007
【図７】
0005136012.tif 000008
【図８】
0005136012.tif 000009
【図９】
0005136012.tif 000010
【図１０】
0005136012.tif 000011
【図１１】
0005136012.tif 000012