(57)【要約】  通信機器が電子証明書を用いて安全な通信を行うシステムにおいて、自己証明書の事前オフライン配布をしなくても、通信相手の機器に、自己証明書が確かにその自己証明書に示される機器で生成されたということを検証させられるようにする。通信機器２００は、マスター鍵と公開パラメータ２９３ａとに基づいて機器固有ＩＤ２９１ｂを公開鍵とするＩＤベース暗号秘密鍵２９３ｂを生成する。次に、通信機器２００は、ＩＤベース暗号秘密鍵２９３ｂを用いてＲＳＡ公開鍵２９２ｂの電子署名をＩＤベース暗号署名２９４ｂとして生成する。次に、通信機器２００は、ＲＳＡ公開鍵２９２ｂ、有効期限、ホスト名２９１ｃ、機器固有ＩＤ２９１ｂおよびＩＤベース暗号署名２９４ｂを対象としてＲＳＡ自己署名２９４ａを生成する。そして、通信機器２００は、ＩＤベース暗号署名２９４ｂとＲＳＡ自己署名２９４ａとを含めて自己署名証明書２９４を生成する。
2010067812.tif 000002
【特許請求の範囲】
【請求項１】
自機器を識別する機器ＩＤ（ＩＤｅｎｔｉｔｙ）に基づいて暗号鍵データを機器ＩＤ鍵としてＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成する機器ＩＤ鍵生成部と、
自機器の公開鍵データと前記機器ＩＤ鍵生成部により生成された機器ＩＤ鍵とに基づいて前記公開鍵データの認証情報を機器ＩＤ認証情報としてＣＰＵを用いて生成する機器ＩＤ認証情報生成部と、
所定のデータと自機器の秘密鍵データとに基づいて前記所定のデータの認証情報を自己認証情報としてＣＰＵを用いて生成する自己認証情報生成部と、
前記所定のデータと前記機器ＩＤ認証情報生成部により生成された機器ＩＤ認証情報と前記自己認証情報生成部により生成された自己認証情報とを含んだ電子証明書を自己証明書として特定機器へ通信装置を用いて送信する自己証明書送信部と
を備えたことを特徴とする自己認証通信機器。
【請求項２】
前記機器ＩＤ鍵生成部は、ＩＤベース暗号方式により前記機器ＩＤをＩＤベース暗号公開鍵とするＩＤベース暗号秘密鍵を前記機器ＩＤ鍵として生成し、
前記機器ＩＤ認証情報生成部は、前記ＩＤベース暗号秘密鍵を用いて前記公開鍵データの電子署名であるＩＤベース暗号秘密鍵署名を前記機器ＩＤ認証情報として生成し、
前記自己認証情報生成部は、前記秘密鍵データを用いて前記所定のデータの電子署名である自己署名を前記自己認証情報として生成する
ことを特徴とする請求項１記載の自己認証通信機器。
【請求項３】
前記自己証明書送信部は、前記公開鍵データと前記機器ＩＤと前記ＩＤベース暗号秘密鍵署名と前記自己署名とを含んだ前記自己証明書を前記特定機器に送信する
ことを特徴とする請求項２記載の自己認証通信機器。
【請求項４】
前記自己認証通信機器は、さらに、前記秘密鍵データと前記公開鍵データとを認証鍵ペアとして所定のタイミングでＣＰＵを用いて更新する認証鍵ペア更新部を備え、
前記機器ＩＤ認証情報生成部は、前記認証鍵ペア更新部により更新された公開鍵データに基づいて前記機器ＩＤ認証情報を新たに生成し、
前記自己認証情報生成部は、前記認証鍵ペア更新部により更新された秘密鍵データに基づいて前記自己認証情報を新たに生成し、
前記自己証明書送信部は、前記機器ＩＤ認証情報生成部により新たに生成された機器ＩＤ認証情報と前記自己認証情報生成部により新たに生成された自己認証情報とを含んだ自己証明書を前記特定機器へ送信する
ことを特徴とする請求項３記載の自己認証通信機器。
【請求項５】
前記自己認証通信機器は、さらに、
前記機器ＩＤ鍵をアクセス制限データとして記憶するアクセス制限データ記憶部と、
前記アクセス制限データ記憶部に記憶された前記アクセス制限データへのアクセスを制限するアクセス制限部であって前記機器ＩＤ鍵へのアクセスを前記機器ＩＤ認証情報生成部からのアクセスに制限するアクセス制限部とを備えた
ことを特徴とする請求項４記載の自己認証通信機器。
【請求項６】
前記アクセス制限データ記憶部は、前記秘密鍵データをアクセス制限データとして記憶し、
前記アクセス制限部は、前記秘密鍵データへのアクセスを前記自己認証情報生成部からのアクセスに制限する
ことを特徴とする請求項５記載の自己認証通信機器。
【請求項７】
前記自己認証通信機器は、ＩＣチップ（ＩＣ：Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）を備え、
前記アクセス制限データ記憶部と前記アクセス制限部とは前記ＩＣチップに備えられる
ことを特徴とする請求項６記載の自己認証通信機器。
【請求項８】
前記機器ＩＤ鍵生成部は、公開鍵暗号方式により前記機器ＩＤを用いて秘密鍵データである機器個別秘密鍵と公開鍵データである機器個別公開鍵とを前記機器ＩＤ鍵として生成し、
前記機器ＩＤ認証情報生成部は、前記機器個別秘密鍵を用いて前記自機器の公開鍵データの電子署名である機器個別秘密鍵署名を前記機器ＩＤ認証情報として生成し、
前記自己認証情報生成部は、前記自機器の秘密鍵データを用いて前記所定のデータの電子署名である自己署名を前記自己認証情報として生成する
ことを特徴とする請求項１記載の自己認証通信機器。
【請求項９】
前記自己認証通信機器は、さらに、前記自機器の秘密鍵データに基づいて前記機器個別公開鍵の電子署名を機器個別署名としてＣＰＵを用いて生成する機器個別署名生成部を備え、
前記自己証明書送信部は、前記機器個別署名生成部により生成された機器個別署名を含めた前記自己証明書を前記特定機器に送信する
ことを特徴とする請求項８記載の自己認証通信機器。
【請求項１０】
前記機器ＩＤ鍵生成部は、共通鍵暗号方式により前記機器ＩＤを用いて共通鍵データである機器個別共通鍵を前記機器ＩＤ鍵として生成し、
前記機器ＩＤ認証情報生成部は、前記機器個別共通鍵を用いて前記公開鍵データのＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）である機器個別共通鍵ＭＡＣを前記機器ＩＤ認証情報として生成し、
前記自己認証情報生成部は、前記秘密鍵データを用いて前記所定のデータの電子署名である自己署名を前記自己認証情報として生成する
ことを特徴とする請求項１記載の自己認証通信機器。
【請求項１１】
請求項１記載の自己認証通信機器により送信された自己証明書を通信装置を用いて受信する自己証明書受信部と、
前記自己証明書受信部により受信された自己証明書をＣＰＵを用いて検証する自己証明書検証部と
を備えたことを特徴とする自己認証検証通信機器。
【請求項１２】
請求項１記載の自己認証通信機器と、
請求項１１記載の自己認証検証通信機器と
を有することを特徴とする機器認証システム。
【請求項１３】
自己認証通信機器と自己認証検証通信機器とを有する機器認証システムの機器認証方法であり、
自己認証通信機器において、
機器ＩＤ鍵生成部が、自機器を識別する機器ＩＤ（ＩＤｅｎｔｉｔｙ）に基づいて暗号鍵データを機器ＩＤ鍵としてＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成する機器ＩＤ鍵生成処理を行い、
機器ＩＤ認証情報生成部が、自機器の公開鍵データと前記機器ＩＤ鍵生成部により生成された機器ＩＤ鍵とに基づいて前記公開鍵データの認証情報を機器ＩＤ認証情報としてＣＰＵを用いて生成する機器ＩＤ認証情報生成処理を行い、
自己認証情報生成部が、所定のデータと自機器の秘密鍵データとに基づいて前記所定のデータの認証情報を自己認証情報としてＣＰＵを用いて生成する自己認証情報生成処理を行い、
自己証明書送信部が、前記所定のデータと前記機器ＩＤ認証情報生成部により生成された機器ＩＤ認証情報と前記自己認証情報生成部により生成された自己認証情報とを含んだ電子証明書を自己証明書として特定機器へ通信装置を用いて送信する自己証明書送信処理を行い、
自己認証検証通信機器において、
自己証明書受信部が、自己認証通信機器により送信された自己証明書を通信装置を用いて受信する自己証明書受信処理を行い、
自己証明書検証部が、前記自己証明書受信部により受信された自己証明書をＣＰＵを用いて検証する自己証明書検証処理を行う
ことを特徴とする機器認証システムの機器認証方法。
【請求項１４】
自機器を識別する機器ＩＤ（ＩＤｅｎｔｉｔｙ）に基づいて暗号鍵データを機器ＩＤ鍵としてＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成する機器ＩＤ鍵生成処理と、
自機器の公開鍵データと前記機器ＩＤ鍵生成処理により生成された機器ＩＤ鍵とに基づいて前記公開鍵データの認証情報を機器ＩＤ認証情報としてＣＰＵを用いて生成する機器ＩＤ認証情報生成処理と、
所定のデータと自機器の秘密鍵データとに基づいて前記所定のデータの認証情報を自己認証情報としてＣＰＵを用いて生成する自己認証情報生成処理と、
前記所定のデータと前記機器ＩＤ認証情報生成処理により生成された機器ＩＤ認証情報と前記自己認証情報生成処理により生成された自己認証情報とを含んだ電子証明書を自己証明書として特定機器へ通信装置を用いて送信する自己証明書送信処理と
を通信機器に実行させる自己認証通信プログラム。
【請求項１５】
請求項１記載の自己認証通信機器により送信された自己証明書を通信装置を用いて受信する自己証明書受信処理と、
前記自己証明書受信処理により受信された自己証明書をＣＰＵを用いて検証する自己証明書検証処理と
を通信機器に実行させる自己認証検証通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、ネットワークを介して機器同士、機器と管理端末、機器とサーバが安全な通信を行うための自己認証通信機器、自己認証検証通信機器、機器認証システム、機器認証システムの機器認証方法、自己認証通信プログラムおよび自己認証検証通信プログラムに関するものである。
【背景技術】
【０００２】
ネットワークの進展に伴って、監視カメラと映像レコーダ、カーナビゲーションシステムと地図配信サーバ、ホーム・ビル設備機器とそれらの管理端末等、ネットワーク接続により付加価値を提供する製品・サービスが登場してきた。
ネットワークの接続によりデータの盗聴・改竄やなりすましの脅威が発生するため、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）／ＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）やＩＰＳｅｃ（ＩＰ  Ｓｅｃｕｒｉｔｙ）といった公開鍵証明書を用いるデファクトスタンダードの暗号認証通信機能を機器、端末、サーバに対して搭載する、というニーズが増大している。
暗号認証通信を実施する際には、暗号・認証に必要な鍵・証明書を機器に対して設定する必要がある。そして、その証明書には、機器のホスト名やＩＰアドレスを含める必要がある。【０００３】
特許文献１のように、秘密鍵および証明書の機器への格納を製造時に実施する場合、ＩＰアドレスやホスト名等機器の製造時には決まらない情報を証明書に格納することができない。
その結果、機器が秘密鍵および証明書を用いて通信する場合（例えば、機器がＳＳＬサーバ機能を有する場合）、ブラウザから当該機器に対してｈｔｔｐｓ通信でアクセスしたときに“アクセス先の機器は成りすましの危険性がある”旨のメッセージがブラウザに表示される。何故ならば、ブラウザで指定したＵＲＬ先頭部のホスト名該当部と当該機器から送付される証明書のサブジェクト名のＣｏｍｍｏｎＮａｍｅに格納されるホスト名該当部とが一致しないため、当該機器がホスト名で指定された正当な機器であることをブラウザが判別できないからである。【０００４】
一方、システムの構築時にホスト名等の機器識別情報を機器の証明書に含めるためには、機器識別情報を機器に設定後に機器にて証明書生成処理を実施し、証明書にその機器識別情報を設定する必要がある。
機器の管理者が証明書を認証局から入手し、入手した証明書を機器に設定するという手続きが許容される場合であれば、ホスト名を含む証明書を機器に設定することは容易である。しかし、ホーム・ビルに設置される設備機器や、家庭向けに販売される情報家電に対して上記のような人手の介在する複雑な手続きを実施することは一般的に許容されていない。【０００５】
設備機器の一種であるネットワークカメラは、システム構築時に、ホスト名を含む証明書を自動生成する機能を備えている。しかし、その証明書は、自己署名証明書（ＳｅｌｆＳｉｇｎ  Ｃｅｒｔｉｆｉｃａｔｅ）である。自己署名証明書は、認証局から別途発行された証明書に基づいて正当性を検証することが可能である証明書とは異なり、正当性を検証するための認証局の証明書が存在しない。そのため、自己署名証明書を用いる場合には、予め、その自己署名証明書を安全なオフライン伝送手段を用いて検証側システムへ配送し、検証側システムにその自己署名証明書を信用してよい証明書としてインストールしておく必要がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００４−５１９８７４号公報
【特許文献２】特開２００１−２１１１７１号公報
【特許文献３】特表２００２−５３５７４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、例えば、以下のことを目的とする。
設備機器・情報家電等の機器が証明書を用いて安全な通信を行うシステムにおいて、機器が、製造時には決まらないホスト名等の機器識別情報を含んだ証明書を自動的に生成・更新できるようにする。
証明書の事前オフライン配布がなされなくても、通信相手の機器やシステムが、証明書が確かにその証明書に示される機器で生成されたということを検証できるようにする。
【課題を解決するための手段】
【０００８】
本発明の自己認証通信機器は、自機器を識別する機器ＩＤ（ＩＤｅｎｔｉｔｙ）に基づいて暗号鍵データを機器ＩＤ鍵としてＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成する機器ＩＤ鍵生成部と、自機器の公開鍵データと前記機器ＩＤ鍵生成部により生成された機器ＩＤ鍵とに基づいて前記公開鍵データの認証情報を機器ＩＤ認証情報としてＣＰＵを用いて生成する機器ＩＤ認証情報生成部と、所定のデータと自機器の秘密鍵データとに基づいて前記所定のデータの認証情報を自己認証情報としてＣＰＵを用いて生成する自己認証情報生成部と、前記所定のデータと前記機器ＩＤ認証情報生成部により生成された機器ＩＤ認証情報と前記自己認証情報生成部により生成された自己認証情報とを含んだ電子証明書を自己証明書（自己署名証明書ともいう）として特定機器へ通信装置を用いて送信する自己証明書送信部とを備える。【０００９】
前記自己認証情報生成部は、前記公開鍵データと前記機器ＩＤと前記機器ＩＤ認証情報とを含んだデータを前記所定のデータとして前記自己認証情報を生成し、前記自己証明書送信部は、前記機器ＩＤ認証情報と前記自己認証情報と前記機器ＩＤ認証情報を除いた前記所定のデータとを含んだ自己証明書を送信する。【００１０】
前記自己認証通信機器は、さらに、前記秘密鍵データと前記公開鍵データとを認証鍵ペアとして所定のタイミングでＣＰＵを用いて更新する認証鍵ペア更新部を備え、前記機器ＩＤ認証情報生成部は、前記認証鍵ペア更新部により更新された公開鍵データに基づいて前記機器ＩＤ認証情報を新たに生成し、前記自己認証情報生成部は、前記認証鍵ペア更新部により更新された秘密鍵データに基づいて前記自己認証情報を新たに生成し、前記自己証明書送信部は、前記機器ＩＤ認証情報生成部により新たに生成された機器ＩＤ認証情報と前記自己認証情報生成部により新たに生成された自己認証情報とを含んだ自己証明書を前記特定機器へ送信する。【００１１】
前記機器ＩＤ鍵生成部は、ＩＤベース暗号方式により前記機器ＩＤをＩＤベース暗号公開鍵とするＩＤベース暗号秘密鍵を前記機器ＩＤ鍵として生成し、前記機器ＩＤ認証情報生成部は、前記ＩＤベース暗号秘密鍵を用いて前記公開鍵データの電子署名であるＩＤベース暗号秘密鍵署名を前記機器ＩＤ認証情報として生成し、前記自己認証情報生成部は、前記秘密鍵データを用いて前記所定のデータの電子署名である自己署名を前記自己認証情報として生成する。【００１２】
前記自己証明書送信部は、前記公開鍵データと前記機器ＩＤと前記ＩＤベース暗号秘密鍵署名と前記自己署名とを含めた前記自己証明書を前記特定機器に送信する。【００１３】
前記機器ＩＤ鍵生成部は、公開鍵暗号方式により前記機器ＩＤを用いて、秘密鍵データである機器個別秘密鍵と公開鍵データである機器個別公開鍵とを前記機器ＩＤ鍵として生成し、前記機器ＩＤ認証情報生成部は、前記機器個別秘密鍵を用いて前記自機器の公開鍵データの電子署名である機器個別秘密鍵署名を前記機器ＩＤ認証情報として生成し、前記自己認証情報生成部は、前記自機器の秘密鍵データを用いて前記所定のデータの電子署名である自己署名を前記自己認証情報として生成する。【００１４】
前記自己証明書送信部は、前記自機器の公開鍵データと前記機器個別公開鍵と前記機器個別秘密鍵署名と前記自己署名とを含めて前記自己証明書を前記特定機器に送信する。【００１５】
前記自己認証通信機器は、さらに、前記自機器の秘密鍵データに基づいて前記機器個別公開鍵の電子署名を機器個別署名としてＣＰＵを用いて生成する機器個別署名生成部を備え、前記自己証明書送信部は、前記機器個別署名生成部により生成された機器個別署名を含めた前記自己証明書を前記特定機器に送信する。【００１６】
前記機器ＩＤ鍵生成部は、共通鍵暗号方式により前記機器ＩＤを用いて共通鍵データである機器個別共通鍵を前記機器ＩＤ鍵として生成し、前記機器ＩＤ認証情報生成部は、前記機器個別共通鍵を用いて前記公開鍵データのＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）である機器個別共通鍵ＭＡＣを前記機器ＩＤ認証情報として生成し、前記自己認証情報生成部は、前記秘密鍵データを用いて前記所定のデータの電子署名である自己署名を前記自己認証情報として生成する。【００１７】
前記自己証明書送信部は、前記公開鍵データと前記機器ＩＤと前記機器個別共通鍵ＭＡＣと前記自己署名とを含めて前記自己証明書を前記特定機器に送信する。【００１８】
本発明の自己認証検証通信機器は、前記自己認証通信機器により送信された自己証明書を通信装置を用いて受信する自己証明書受信部と、前記自己証明書受信部により受信された自己証明書をＣＰＵを用いて検証する自己証明書検証部とを備える。【００１９】
前記自己証明書受信部は、前記機器ＩＤをＩＤベース暗号公開鍵とするＩＤベース暗号秘密鍵を用いて生成された前記公開鍵データの電子署名であるＩＤベース暗号秘密鍵署名を前記機器ＩＤ認証情報として含むと共に、前記秘密鍵データを用いて生成された前記所定のデータの電子署名である自己署名を前記自己認証情報として含んだ自己証明書を受信し、前記自己証明書検証部は、前記公開鍵データを用いて前記自己署名を検証すると共に前記機器ＩＤを用いて前記ＩＤベース暗号秘密鍵署名を検証する。【００２０】
前記自己証明書受信部は、前記機器ＩＤに基づく秘密鍵データである機器個別秘密鍵を用いて生成された前記公開鍵データの電子署名である機器個別秘密鍵署名を前記機器ＩＤ認証情報として含むと共に、前記秘密鍵データを用いて生成された前記所定のデータの電子署名である自己署名を前記自己認証情報として含んだ自己証明書を受信し、前記自己証明書検証部は、前記公開鍵データを用いて前記自己署名を検証すると共に前記機器個別秘密鍵に対応する機器個別公開鍵を用いて前記機器個別秘密鍵署名を検証する。【００２１】
前記自己証明書受信部は、前記機器ＩＤに基づく共通鍵データである機器個別共通鍵を用いて生成された前記公開鍵データのＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）である機器個別鍵ＭＡＣを前記機器ＩＤ認証情報として含むと共に、前記秘密鍵データを用いて生成された前記所定のデータの電子署名である自己署名を前記自己認証情報として含んだ自己証明書を受信し、前記自己証明書検証部は、前記公開鍵データを用いて前記自己署名を検証すると共に前記機器個別共通鍵を用いて前記機器個別鍵ＭＡＣを検証する。【００２２】
本発明の機器認証システムは、前記自己認証通信機器と、前記自己認証検証通信機器とを有する。【００２３】
本発明の機器認証システムの機器認証方法は、自己認証通信機器と自己認証検証通信機器とを有する機器認証システムの機器認証方法であり、自己認証通信機器において、機器ＩＤ鍵生成部が、自機器を識別する機器ＩＤ（ＩＤｅｎｔｉｔｙ）に基づいて暗号鍵データを機器ＩＤ鍵としてＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成する機器ＩＤ鍵生成処理を行い、機器ＩＤ認証情報生成部が、自機器の公開鍵データと前記機器ＩＤ鍵生成部により生成された機器ＩＤ鍵とに基づいて前記公開鍵データの認証情報を機器ＩＤ認証情報としてＣＰＵを用いて生成する機器ＩＤ認証情報生成処理を行い、自己認証情報生成部が、所定のデータと自機器の秘密鍵データとに基づいて前記所定のデータの認証情報を自己認証情報としてＣＰＵを用いて生成する自己認証情報生成処理を行い、自己証明書送信部が、前記所定のデータと前記機器ＩＤ認証情報生成部により生成された機器ＩＤ認証情報と前記自己認証情報生成部により生成された自己認証情報とを含んだ電子証明書を自己証明書として特定機器へ通信装置を用いて送信する自己証明書送信処理を行い、自己認証検証通信機器において、自己証明書受信部が、自己認証通信機器により送信された自己証明書を通信装置を用いて受信する自己証明書受信処理を行い、自己証明書検証部が、前記自己証明書受信部により受信された自己証明書をＣＰＵを用いて検証する自己証明書検証処理を行う。【００２４】
本発明の自己認証通信プログラムは、自機器を識別する機器ＩＤ（ＩＤｅｎｔｉｔｙ）に基づいて暗号鍵データを機器ＩＤ鍵としてＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて生成する機器ＩＤ鍵生成処理と、自機器の公開鍵データと前記機器ＩＤ鍵生成処理により生成された機器ＩＤ鍵とに基づいて前記公開鍵データの認証情報を機器ＩＤ認証情報としてＣＰＵを用いて生成する機器ＩＤ認証情報生成処理と、
所定のデータと自機器の秘密鍵データとに基づいて前記所定のデータの認証情報を自己認証情報としてＣＰＵを用いて生成する自己認証情報生成処理と、前記所定のデータと前記機器ＩＤ認証情報生成処理により生成された機器ＩＤ認証情報と前記自己認証情報生成処理により生成された自己認証情報とを含んだ電子証明書を自己証明書として特定機器へ通信装置を用いて送信する自己証明書送信処理とを通信機器に実行させる。【００２５】
本発明の自己認証検証通信プログラムは、前記自己認証通信機器により送信された自己証明書を通信装置を用いて受信する自己証明書受信処理と、前記自己証明書受信処理により受信された自己証明書をＣＰＵを用いて検証する自己証明書検証処理とを通信機器に実行させる。
【発明の効果】
【００２６】
本発明によれば、例えば、以下の効果を奏する。
設備機器・情報家電等の通信機器が電子証明書を用いて安全な通信を行うシステムにおいて、自己署名証明書（電子証明書の一例）の事前オフライン配布をしなくても、通信相手の機器に、自己署名証明書が確かにその自己署名証明書に示される機器で生成されたということを検証させることができる。
【図面の簡単な説明】
【００２７】
【図１】実施の形態１における機器認証システム１００の構成図。
【図２】実施の形態１における通信機器２００のハードウェア資源の一例を示す図。
【図３】実施の形態１における通信機器２００の機能構成図。
【図４】実施の形態１における通信機器２００の製造時（製造時処理前）の格納データを示す図。
【図５】実施の形態１における通信機器２００の製造時処理を示すフローチャート。
【図６】実施の形態１における通信機器２００の製造時（製造時処理後）の格納データを示す図。
【図７】実施の形態１における通信機器２００のシステム構築時処理を示すフローチャート。
【図８】実施の形態１における通信機器２００のシステム構築時（システム構築時処理後）の格納データを示す図。
【図９】実施の形態１における機器認証システム１００の運用概要を示す図。
【図１０】実施の形態１における通信機器２００の運用時処理を示すフローチャート。
【図１１】実施の形態２における通信機器２００の製造時処理を示すフローチャート。
【図１２】実施の形態３における通信機器２００の機能構成図。
【図１３】実施の形態３における自己署名証明書更新処理を示すフローチャート。
【図１４】実施の形態４における通信機器２００の機能構成図。
【図１５】実施の形態４における通信機器２００の製造時（製造時処理前）の格納データを示す図。
【図１６】実施の形態４における通信機器２００の製造時処理を示すフローチャート。
【図１７】実施の形態４における通信機器２００の製造時（製造時処理後）の格納データを示す図。
【図１８】実施の形態４における通信機器２００のシステム構築時処理を示すフローチャート。
【図１９】実施の形態４における通信機器２００のシステム構築時（システム構築時処理後）の格納データを示す図。
【図２０】実施の形態４における通信機器２００の運用時処理を示すフローチャート。
【図２１】実施の形態５における通信機器２００の機能構成図。
【図２２】実施の形態５における通信機器２００の製造時（製造時処理前）の格納データを示す図。
【図２３】実施の形態５における通信機器２００の製造時処理を示すフローチャート。
【図２４】実施の形態５における通信機器２００の製造時（製造時処理後）の格納データを示す図。
【図２５】実施の形態５における通信機器２００のシステム構築時処理を示すフローチャート。
【図２６】実施の形態５における通信機器２００のシステム構築時（システム構築時処理後）の格納データを示す図。
【図２７】実施の形態５における機器認証システム１００の運用概要を示す図。
【図２８】実施の形態５における通信機器２００の運用時処理を示すフローチャート。
【図２９】実施の形態６における通信機器２００の機能構成図。
【図３０】実施の形態６における通信機器２００の製造時処理を示すフローチャート。
【図３１】実施の形態６における通信機器２００のシステム構築時処理を示すフローチャート。
【図３２】実施の形態６における通信機器２００の運用時処理を示すフローチャート。
【発明を実施するための形態】
【００２８】
実施の形態１．
各機器が製造時にＩＤベース暗号秘密鍵を生成し、各機器がシステム構築時にＩＤベース暗号秘密鍵を用いたＲＳＡ公開鍵（登録商標「ＲＳＡ」、以下同じ）の署名を含んだ自己署名証明書を生成し、機器同士が運用時にその自己署名証明書を用いて相互認証する形態について説明する。
【００２９】
図１は、実施の形態１における機器認証システム１００の構成図である。
実施の形態１における機器認証システム１００の構成について、図１に基づいて以下に説明する。
【００３０】
機器認証システム１００では、複数の通信機器２００（通信機器Ａ２０１、通信機器Ｂ２０２）（自己認証通信機器の一例）（自己認証検証通信機器の一例）がインターネットやＬＡＮ（ローカルエリアネットワーク）等の通信ネットワーク１１０を介して通信を行う。
各通信機器２００は、通信を開始する際、自己署名証明書２９４（自己証明書の一例）を互いに送信し合い、通信相手の自己署名証明書２９４を検証して通信相手が他の通信機器２００になりすましていないことを確認する。
通信機器２００は通信機能を有する機器であればよく、通信機器２００の一例として通信機能を有する監視カメラ、映像レコード、端末装置（例えば、パーソナルコンピュータ）等が挙げられる。
【００３１】
図２は、実施の形態１における通信機器２００のハードウェア資源の一例を示す図である。
図２において、通信機器２００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりにその他の記憶装置（例えば、ＲＡＭやフラッシュメモリ等の半導体メモリ）を用いてもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶機器、記憶装置あるいは記憶部の一例である。また、入力データが記憶されている記憶機器は入力機器、入力装置あるいは入力部の一例であり、出力データが記憶される記憶機器は出力機器、出力装置あるいは出力部の一例である。
通信ボード９１５は、入出力機器、入出力装置あるいは入出力部の一例である。
【００３２】
通信ボード９１５は、有線または無線で、ＬＡＮ、インターネット、ＷＡＮ（ワイドエリアネットワーク）、電話回線等の通信網に接続されている。
【００３３】
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、ＯＳ９２１により実行される。
【００３４】
上記プログラム群９２３には、実施の形態において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００３５】
ファイル群９２４には、実施の形態において、「〜部」の機能を実行した際の「〜の判定結果」、「〜の計算結果」、「〜の処理結果」等の結果データ、「〜部」の機能を実行するプログラム間で受け渡しするデータ、その他の情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリ等の記録媒体に記憶される。ディスクやメモリ等の記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示等のＣＰＵの動作に用いられる。これらのＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、実施の形態において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、磁気ディスク装置９２０の磁気ディスク、その他の記録媒体に記録される。また、データや信号値は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００３６】
また、実施の形態において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線等のハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスクやその他の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものである。あるいは、「〜部」の手順や方法を通信機器２００（コンピュータ）に実行させるものである。
【００３７】
図３は、実施の形態１における通信機器２００の機能構成図である。
実施の形態１における通信機器２００（自己認証通信機器の一例）（自己認証検証通信機器の一例）の機能構成について、図３に基づいて以下に説明する。
【００３８】
通信機器２００は、ＩＤベース暗号秘密鍵生成部２１０（機器ＩＤ鍵生成部の一例）、システム情報設定部２２０、ＲＳＡ鍵ペア生成部２２１、自己署名生成部２２２（自己認証情報生成部の一例）、自己署名証明書生成部２２３、ＩＤベース暗号署名生成部２３０（機器ＩＤ認証情報生成部の一例）、ＳＳＬ通信部２４０（自己証明書送信部の一例）（自己証明書受信部の一例）、自己署名証明書検証部２４１（自己証明書検証部の一例）、暗号認証通信部２４２および機器記憶部２９０を備える。
【００３９】
機器記憶部２９０は、記憶媒体を用いて通信機器２００で使用されるデータを記憶する。
例えば、機器記憶部２９０は、後述するマスター鍵２９１ａ、機器固有ＩＤ２９１ｂ、ホスト名２９１ｃ、ＲＳＡ鍵ペア２９２、公開パラメータ２９３ａ、ＩＤベース暗号秘密鍵２９３ｂ、自己署名証明書２９４、ＲＳＡ自己署名２９４ａ、ＩＤベース暗号署名２９４ｂ、プリマスターシークレット２９５ａ、セッション鍵２９５ｂ、ＳＳＬ署名２９５ｃおよび通信データ２９５ｄを記憶する。
【００４０】
ＩＤベース暗号秘密鍵生成部２１０（機器ＩＤ鍵生成部の一例）は、自機器を識別する機器固有ＩＤ２９１ｂ（機器ＩＤ）（ＩＤ：ＩＤｅｎｔｉｔｙ、ＩＤｅｎｔｉｆｉｅｒ）に基づいて暗号鍵データを機器ＩＤ鍵としてＣＰＵを用いて生成する。
具体的に、ＩＤベース暗号秘密鍵生成部２１０は、ＩＤベース暗号方式により、機器固有ＩＤ２９１ｂをＩＤベース暗号公開鍵とするＩＤベース暗号秘密鍵２９３ｂ（機器ＩＤ鍵の一例）を生成する。
【００４１】
システム情報設定部２２０は、管理者によりシステム構築時に決定され入力された情報（例えば、ＩＰアドレスやホスト名等の機器識別名）を機器記憶部２９０に設定（記憶）する。
【００４２】
ＲＳＡ鍵ペア生成部２２１は、ＲＳＡ公開鍵暗号方式によりＲＳＡ鍵ペア２９２（ＲＳＡ秘密鍵２９２ａ、ＲＳＡ公開鍵２９２ｂ）をＣＰＵを用いて生成する。
【００４３】
自己署名生成部２２２（自己認証情報生成部の一例）は、所定のデータと自機器の秘密鍵データとに基づいて、所定のデータの認証情報を自己認証情報としてＣＰＵを用いて生成する。
具体的に、自己署名生成部２２２は、ＲＳＡ秘密鍵２９２ａ（秘密鍵データの一例）を用いて、ＲＳＡ公開鍵２９２ｂ（公開鍵データの一例）、自己署名証明書２９４の有効期限、ホスト名２９１ｃ、機器固有ＩＤ２９１ｂおよびＩＤベース暗号署名２９４ｂ（機器ＩＤ認証情報の一例）（以上、所定のデータの一例）に対する電子署名をＲＳＡ自己署名２９４ａ（自己認証情報の一例）として生成する。
【００４４】
自己署名証明書生成部２２３は、所定のデータとＩＤベース暗号署名２９４ｂとＲＳＡ自己署名２９４ａとをＣＰＵを用いて結合させて自己署名証明書２９４を生成する。
具体的に、自己署名証明書生成部２２３は、ＲＳＡ公開鍵２９２ｂ、自己署名証明書２９４の有効期限、ホスト名２９１ｃ、機器固有ＩＤ２９１ｂ、ＩＤベース暗号署名２９４ｂおよびＲＳＡ自己署名２９４ａを結合させて自己署名証明書２９４を生成する。
【００４５】
ＩＤベース暗号署名生成部２３０（機器ＩＤ認証情報生成部の一例）は、自機器の公開鍵データおよび機器ＩＤ鍵に基づいて公開鍵データの認証情報を機器ＩＤ認証情報としてＣＰＵを用いて生成する。
具体的に、ＩＤベース暗号署名生成部２３０は、ＩＤベース暗号秘密鍵２９３ｂを用いてＲＳＡ公開鍵２９２ｂの電子署名をＩＤベース暗号署名２９４ｂ（ＩＤベース暗号秘密鍵署名）（機器ＩＤ認証情報の一例）として生成する。
【００４６】
ＳＳＬ通信部２４０は、ＳＳＬプロトコルに基づく手順で通信相手の通信機器２００と各種データを通信装置を用いて送受信し、通信相手の通信機器２００とセッションを確立する。
例えば、ＳＳＬ通信部２４０（自己証明書送信部の一例）は、自己署名証明書２９４を通信相手の通信機器２００へ送信する。
また例えば、ＳＳＬ通信部２４０（自己証明書受信部の一例）は、通信相手の通信機器２００により送信された自己署名証明書２９４を受信する。
【００４７】
自己署名証明書検証部２４１（自己証明書検証部の一例）は、ＳＳＬ通信部２４０により受信された通信相手の自己署名証明書２９４をＣＰＵを用いて検証する。
具体的に、自己署名証明書検証部２４１は、通信相手のＲＳＡ公開鍵２９２ｂを用いてＲＳＡ自己署名２９４ａを検証すると共に通信相手の機器固有ＩＤ２９１ｂを用いてＩＤベース暗号署名２９４ｂを検証する。
【００４８】
暗号認証通信部２４２は、ＳＳＬ通信部２４０によりセッションが確立された後、セッション鍵２９５ｂで暗号化した通信データ２９５ｄを通信相手の通信機器２００と通信装置を用いて送受信する。
【００４９】
以下、機器認証システム１００のライフサイクルを「製造」「システム構築」および「運用」に分け、各工程における通信機器２００の処理を説明する。
【００５０】
まず、製造時に通信機器２００が実行する処理（通信機器２００の製造時処理）について説明する。
通信機器２００は、製造時にＩＤベース暗号秘密鍵２９３ｂを生成して記憶する。
【００５１】
図４は、実施の形態１における通信機器２００の製造時（製造時処理前）の格納データを示す図である。
図４に示すように、通信機器２００が製造された際、通信機器２００の機器記憶部２９０（図示省略）にはマスター鍵２９１ａ、公開パラメータ２９３ａおよび機器固有ＩＤ２９１ｂが登録（記憶）される。
マスター鍵２９１ａおよび公開パラメータ２９３ａは、ＩＤベース暗号秘密鍵２９３ｂの生成に用いられる情報であり、全ての通信機器２００で同一である。マスター鍵２９１ａと公開パラメータ２９３ａとは、ＩＤベース暗号方式において対をなす情報であり、それぞれ、システム秘密鍵とシステム公開鍵と呼ばれたり、マスター秘密鍵とマスター公開鍵と呼ばれたりする。例えば、通信機器２００の製造者は、自社で製造した全ての通信機器２００（同じ機種に限ってもよい）に同一のマスター鍵２９１ａおよび公開パラメータ２９３ａを登録する。
機器固有ＩＤ２９１ｂは、通信機器２００を個別に識別するユニークな情報であり、機器毎に固有で且つ不変である。ＭＡＣアドレス（ＭＡＣ：Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）や機器製造番号は、機器固有ＩＤ２９１ｂの一例である。機器固有ＩＤ２９１ｂは、製造時に各通信機器２００に割当てられて登録される。
【００５２】
図５は、実施の形態１における通信機器２００の製造時処理を示すフローチャートである。
実施の形態１における通信機器２００の製造時処理について、図５に基づいて以下に説明する。
通信機器２００の各「〜部」は、以下に説明する処理をＣＰＵを用いて実行する。
【００５３】
ＩＤベース暗号秘密鍵生成部２１０はマスター鍵２９１ａ、機器固有ＩＤ２９１ｂおよび公開パラメータ２９３ａに基づいてＩＤベース暗号秘密鍵２９３ｂを生成し（Ｓ１１０）、マスター鍵２９１ａを削除する（Ｓ１２０）。
以下に、各処理（Ｓ１１０、Ｓ１２０）の詳細について説明する。
【００５４】
＜Ｓ１１０：機器ＩＤ鍵生成処理の一例＞
ＩＤベース暗号秘密鍵生成部２１０は、マスター鍵２９１ａ、機器固有ＩＤ２９１ｂおよび公開パラメータ２９３ａを機器記憶部２９０から取得する。
ＩＤベース暗号秘密鍵生成部２１０は、取得したマスター鍵２９１ａ、機器固有ＩＤ２９１ｂおよび公開パラメータ２９３ａを入力値としてＩＤベース暗号方式の鍵生成アルゴリズムを実行し、機器固有ＩＤ２９１ｂを公開鍵（ＩＤベース暗号公開鍵）とするＩＤベース暗号秘密鍵２９３ｂを生成する。
ＩＤベース暗号秘密鍵生成部２１０は、生成したＩＤベース暗号秘密鍵２９３ｂを機器記憶部２９０に記憶する。
Ｓ１１０の後、処理はＳ１２０に進む。
【００５５】
＜Ｓ１２０＞
ＩＤベース暗号秘密鍵生成部２１０は、ＩＤベース暗号秘密鍵２９３ｂの生成に用いたマスター鍵２９１ａを機器記憶部２９０から削除（消去）する。
ＩＤベース暗号秘密鍵生成部２１０は、マスター鍵２９１ａを削除することにより、製造場所より搬出された通信機器２００からマスター鍵２９１ａが漏洩し、漏洩したマスター鍵２９１ａを用いてＩＤベース暗号秘密鍵２９３ｂが偽造されることを防止する。
Ｓ１２０の後、処理は終了する。
【００５６】
通信機器２００の製造時処理は、例えば、製造者により手動で、または、マスター鍵２９１ａ、機器固有ＩＤ２９１ｂおよび公開パラメータ２９３ａの登録時に実行される。
【００５７】
図６は、実施の形態１における通信機器２００の製造時（製造時処理後）の格納データを示す図である。
図６に示すように、通信機器２００の製造時処理後、通信機器２００の機器記憶部２９０（図示省略）には公開パラメータ２９３ａ、機器固有ＩＤ２９１ｂおよびＩＤベース暗号秘密鍵２９３ｂが記憶されている。
【００５８】
次に、システム構築時に通信機器２００が実行する処理（通信機器２００のシステム構築時処理）について説明する。
通信機器２００は、システム構築時に自己署名証明書２９４を生成して記憶する。
【００５９】
図７は、実施の形態１における通信機器２００のシステム構築時処理を示すフローチャートである。
実施の形態１における通信機器２００のシステム構築時処理について、図７に基づいて以下に説明する。
通信機器２００の各「〜部」は、以下に説明する処理をＣＰＵを用いて実行する。
【００６０】
システム情報設定部２２０はホスト名２９１ｃを設定し（Ｓ２１０）、ＲＳＡ鍵ペア生成部２２１はＲＳＡ鍵ペア２９２を生成する（Ｓ２２０）。
ＩＤベース暗号署名生成部２３０はＩＤベース暗号秘密鍵２９３ｂを用いてＲＳＡ公開鍵２９２ｂのＩＤベース暗号署名２９４ｂを生成し（Ｓ２３０）、自己署名生成部２２２はＲＳＡ秘密鍵２９２ａを用いて自己署名証明書情報のＲＳＡ自己署名２９４ａを生成し（Ｓ２４０）、自己署名証明書生成部２２３は自己署名証明書情報とＲＳＡ自己署名２９４ａとを結合して自己署名証明書２９４を生成する（Ｓ２５０）。
次に、各処理（Ｓ２１０〜Ｓ２５０）の詳細について説明する。
【００６１】
＜Ｓ２１０＞
システム構築時、通信機器２００には、システム構築・運用に必要な情報（例えば、機器識別名）が管理者により入力される。ホスト名やＩＰアドレスは、機器識別名の一例であり、通信機器２００毎に異なる。以下、通信機器２００に「ホスト名」が入力されたものとして説明を続ける。
システム情報設定部２２０は、管理者により入力されたホスト名を機器記憶部２９０に設定（記憶）する。
Ｓ２１０の後、処理はＳ２２０に進む。
【００６２】
＜Ｓ２２０＞
ＲＳＡ鍵ペア生成部２２１は、ＲＳＡ公開鍵暗号方式の鍵生成アルゴリズムを実行し、ＲＳＡ鍵ペア２９２を生成する。ＲＳＡ鍵ペア２９２は、ＲＳＡ秘密鍵２９２ａおよびＲＳＡ公開鍵２９２ｂで構成される。ＲＳＡ鍵ペア生成部２２１は、生成したＲＳＡ鍵ペア２９２を機器記憶部２９０に記憶する。
Ｓ２２０の後、処理はＳ２３０に進む。
【００６３】
＜Ｓ２３０：機器ＩＤ認証情報生成処理の一例＞
ＩＤベース暗号署名生成部２３０は、製造時（Ｓ１１０）に生成されたＩＤベース暗号秘密鍵２９３ｂとＳ２２０において生成されたＲＳＡ公開鍵２９２ｂとを機器記憶部２９０から取得する。
ＩＤベース暗号署名生成部２３０は、取得したＩＤベース暗号秘密鍵２９３ｂおよびＲＳＡ公開鍵２９２ｂを入力値としてＩＤベース暗号方式の署名アルゴリズムを実行し、ＲＳＡ公開鍵２９２ｂのＩＤベース暗号署名２９４ｂを生成する。ＲＳＡ公開鍵２９２ｂのＩＤベース暗号署名２９４ｂは、ＲＳＡ公開鍵２９２ｂを対象としてＩＤベース暗号秘密鍵２９３ｂを用いて生成された電子署名である。
ＩＤベース暗号署名生成部２３０は、生成したＲＳＡ公開鍵２９２ｂのＩＤベース暗号署名２９４ｂを機器記憶部２９０に記憶する。
Ｓ２３０の後、処理はＳ２４０に進む。
【００６４】
＜Ｓ２４０：自己認証情報生成処理の一例＞
自己署名生成部２２２は、Ｓ２２０において生成されたＲＳＡ秘密鍵２９２ａおよび自己署名証明書２９４に含める各種情報（自己署名証明書情報）を機器記憶部２９０から取得する。
自己署名生成部２２２は、取得したＲＳＡ秘密鍵２９２ａおよび自己署名証明書情報を入力値としてＲＳＡ公開鍵暗号方式の署名アルゴリズムを実行し、自己署名証明書情報のＲＳＡ自己署名２９４ａを生成する。自己署名証明書情報のＲＳＡ自己署名２９４ａは、自己署名証明書情報を対象としてＲＳＡ秘密鍵２９２ａを用いて生成された電子署名である。
以下、ＩＤベース暗号署名２９４ｂ、自己署名証明書２９４の有効期限、ホスト名２９１ｃ、機器固有ＩＤ２９１ｂおよびＲＳＡ公開鍵２９２ｂのＩＤベース暗号署名２９４ｂを自己署名証明書情報として説明を続ける。自己署名証明書２９４の有効期限は、現在日時に所定の有効期間（例えば、２年）を加算して算出される日時である。自己署名証明書情報はこれらに限られない。
Ｓ２４０の後、処理はＳ２５０に進む。
【００６５】
＜Ｓ２５０＞
自己署名証明書生成部２２３は、自己署名証明書情報とＳ２４０において生成されたＲＳＡ自己署名２９４ａとを結合して自己署名証明書２９４（電子証明書）を生成し、生成した自己署名証明書２９４を機器記憶部２９０に記憶する。
例えば、ホスト名２９１ｃは電子証明書のサブジェクト名のＣｏｍｍｏｎＮａｍｅ欄に設定され、機器固有ＩＤ２９１ｂは電子証明書の標準拡張項目のＳｕｂｊｅｃｔＡｌｔＮａｍｅ欄に設定され、ＩＤベース暗号署名２９４ｂは電子証明書の標準拡張項目のＳｕｂｊｅｃｔＫｅｙＩｄｅｎｔｉｆｉｅｒ欄に設定される。但し、機器固有ＩＤ２９１ｂおよびＩＤベース暗号署名２９４ｂは、電子証明書のフォーマットに合致する範囲に設定されればよく、必ずしも標準拡張項目として設定されなくてもよい。例えば、自己署名証明書生成部２２３は、機器固有ＩＤ２９１ｂおよびＩＤベース暗号署名２９４ｂを電子証明書に新たに定義したプライベート拡張項目欄として設定してもよいし、標準拡張項目のその他の欄に設定してもよい。
Ｓ２５０の後、処理は終了する。
【００６６】
Ｓ２３０〜Ｓ２５０において行われる証明書生成処理は、ＯｐｅｎＳＳＬ等で実施される一般的なＲＳＡ公開鍵の自己署名証明書生成処理手順に、ＲＳＡ公開鍵２９２ｂに対するＩＤベース暗号秘密鍵２９３ｂによる署名生成処理（Ｓ２３０）及び、証明書の署名対象にＩＤベース暗号公開鍵である機器固有ＩＤ２９１ｂとＩＤベース暗号秘密鍵２９３ｂによる署名（ＩＤベース暗号署名２９４ｂ）とを含める処理（Ｓ２４０）を追加したものである。
【００６７】
図８は、実施の形態１における通信機器２００のシステム構築時（システム構築時処理後）の格納データを示す図である。
図８に示すように、通信機器２００のシステム構築時処理後、通信機器２００の機器記憶部２９０（図示省略）には公開パラメータ２９３ａ、機器固有ＩＤ２９１ｂ、ＩＤベース暗号秘密鍵２９３ｂ、ホスト名２９１ｃ、ＲＳＡ鍵ペア２９２および自己署名証明書２９４が記憶されている。
自己署名証明書２９４には、ＲＳＡ公開鍵２９２ｂ、自己署名証明書２９４の有効期限、ホスト名２９１ｃ、機器固有ＩＤ２９１ｂ、ＩＤベース暗号の公開鍵であるホスト名２９１ｃ、ＲＳＡ公開鍵２９２ｂのＩＤベース暗号署名２９４ｂおよびＲＳＡ自己署名２９４ａが設定されている。
【００６８】
次に、運用時に通信機器２００が実行する処理（通信機器２００の運用時処理）について説明する。
【００６９】
図９は、実施の形態１における機器認証システム１００の運用概要を示す図である。
図９に示すように、通信機器Ａ２０１と通信機器Ｂ２０２とは通信ネットワーク１１０を介して自己署名証明書２９４を通信し、自己署名証明書２９４を検証して互いを確認したのち、暗号化した通信データ２９５ｄを通信ネットワーク１１０を介して通信する。
運用時、各通信機器２００（通信機器Ａ２０１、通信機器Ｂ２０２）の機器記憶部２９０（図示省略）には、製造時に登録された公開パラメータ２９３ａおよび機器固有ＩＤ２９１ｂ、製造時に生成されたＩＤベース暗号秘密鍵２９３ｂ、システム構築時に設定されたホスト名２９１ｃ、システム構築時に生成されたＲＳＡ鍵ペア２９２および自己署名証明書２９４が記憶されている。
以下、通信機器Ａ２０１をＳＳＬサーバ、通信機器Ｂ２０２をＳＳＬクライアントとして運用時にＳＳＬ通信が行われる場合について説明を行う。
但し、通信機器２００の運用時処理において、ＳＳＬ通信が行われる必要は必ずしもなく、ＲＳＡ自己署名２９４ａの検証とＩＤベース暗号署名２９４ｂの検証とにより通信相手が機器固有ＩＤ２９１ｂにより特定される通信機器２００であることが確認されればよい。
【００７０】
図１０は、実施の形態１における通信機器２００の運用時処理を示すフローチャートである。
実施の形態１における通信機器２００の運用時処理について、図１０に基づいて以下に説明する。
通信機器Ａ２０１および通信機器Ｂ２０２の各「〜部」は、以下に説明する処理をＣＰＵを用いて実行する。
【００７１】
通信機器Ａ２０１と通信機器Ｂ２０２とはＳＳＬセッション情報を交換する（Ｓ３１０）。
通信機器Ａ２０１と通信機器Ｂ２０２とは自己署名証明書２９４を互いに通信し合い（Ｓ３２０）する。
通信機器Ｂ２０２の自己署名証明書検証部２４１は通信機器Ａ２０１の自己署名証明書２９４を検証し（Ｓ３３０）、自己署名証明書２９４に設定されているＩＤベース暗号署名２９４ｂを検証する（Ｓ３３１）。
通信機器Ｂ２０２のＳＳＬ通信部２４０は通信機器Ａ２０１のＲＳＡ公開鍵２９２ｂを用いて暗号化したプリマスターシークレット２９５ａを通信機器Ａ２０１へ送信し（Ｓ３４０）、通信機器Ａ２０１のＳＳＬ通信部２４０は通信機器Ｂ２０２のプリマスターシークレット２９５ａを復号し（Ｓ３４１）、通信機器Ｂ２０２のＳＳＬ通信部２４０はＳＳＬ署名２９５ｃを通信機器Ａ２０１へ送信する（Ｓ３５０）。
通信機器Ａ２０１の自己署名証明書検証部２４１は通信機器Ｂ２０２の自己署名証明書２９４を検証し（Ｓ３６０）、自己署名証明書２９４に設定されているＩＤベース暗号署名２９４ｂを検証する（Ｓ３６１）。
通信機器Ａ２０１のＳＳＬ通信部２４０は通信機器Ｂ２０２のＳＳＬ署名２９５ｃを検証する（Ｓ３７０）。
通信機器Ａ２０１と通信機器Ｂ２０２とはプリマスターシークレット２９５ａを用いてセッション鍵２９５ｂを生成し（Ｓ３８０）、セッション鍵２９５ｂを用いて暗号化した通信データ２９５ｄを通信する（Ｓ３８１）。
【００７２】
従来のＳＳＬ通信では行われないＳ３３１およびＳ３６１は、実施の形態１における機器認証システム１００の特徴の一つである。
【００７３】
次に、各処理（Ｓ３１０〜Ｓ３８１）の詳細について説明する。
【００７４】
＜Ｓ３１０＞
まず、通信機器Ｂ２０２（クライアント側）のＳＳＬ通信部２４０は、通信機器Ａ２０１（サーバ側）のＵＲＬ（ｈｔｔｐｓ：／／“ホスト名”）を指定して特定の乱数および利用可能なアルゴリズム（暗号、圧縮）のリスト（ＳＳＬセッション情報）を通信機器Ａ２０１（サーバ側）へ送信する。
乱数は所定のアルゴリズムの実行により生成され、利用可能なアルゴリズムは予め機器記憶部２９０に設定されているものとする。
通信機器Ａ２０１のＳＳＬ通信部２４０は、ＳＳＬ通信部２４０のＳＳＬセッション情報を受信し、ＳＳＬセッション情報に示されるリストの中から自己が利用可能なアルゴリズムを１つ選択し、選択したアルゴリズム（暗号、圧縮）を通信機器Ｂ２０２へ通知する。
Ｓ３１０において、通信機器Ａ２０１と通信機器Ｂ２０２との間で、特定の乱数が共有され、使用するアルゴリズムが決定される。
Ｓ３１０によりＳＳＬセッションが開始された後、処理はＳ３２０に進む。
【００７５】
＜Ｓ３２０：自己証明書送信処理、自己証明書受信処理の一例＞
Ｓ３１０の後、通信機器Ａ２０１のＳＳＬ通信部２４０は、機器記憶部２９０から自己署名証明書２９４を取得し、取得した自己署名証明書２９４を通信機器Ｂ２０２へ送信する。
通信機器Ｂ２０２のＳＳＬ通信部２４０は、通信機器Ａ２０１により送信された自己署名証明書２９４（通信機器Ａ２０１の自己署名証明書２９４）を受信して機器記憶部２９０に記憶する。
通信機器Ａ２０１のＳＳＬ通信部２４０は、証明書要求を通信機器Ｂ２０２へ送信する。
通信機器Ｂ２０２のＳＳＬ通信部２４０は、証明書要求を受信した際、機器記憶部２９０から自己の自己署名証明書２９４を取得し、取得した自己署名証明書２９４を通信機器Ａ２０１へ送信する。
通信機器Ａ２０１のＳＳＬ通信部２４０は、通信機器Ｂ２０２により送信された自己署名証明書２９４（通信機器Ｂ２０２の自己署名証明書２９４）を受信して機器記憶部２９０に記憶する。
Ｓ３２０の後、処理はＳ３３０に進む。
【００７６】
＜Ｓ３３０：自己署名証明書検証処理（自己証明書検証処理の一例）＞
通信機器Ｂ２０２の自己署名証明書検証部２４１は、機器記憶部２９０から通信機器Ａ２０１の自己署名証明書２９４を取得し、ＲＳＡ公開鍵暗号方式の検証アルゴリズムを実行して通信機器Ａ２０１の自己署名証明書２９４を検証する。
具体的に、自己署名証明書検証部２４１は、自己署名証明書２９４に設定されているＲＳＡ公開鍵２９２ｂを用いて自己署名証明書２９４に設定されているＲＳＡ自己署名２９４ａを検証する。
さらに、自己署名証明書検証部２４１は、自己署名証明書２９４に設定されている有効期限を現在時刻と比較し、自己署名証明書２９４の有効期限が切れていないか検証する。
さらに、自己署名証明書検証部２４１は、自己署名証明書２９４に設定されているホスト名２９１ｃがＳ３１０において指定されたＵＲＬに設定されたホスト名と一致するか検証する。
【００７７】
全ての検証において有効である自己署名証明書２９４は、改ざんされていないことが保証され且つ有効期限の切れていない有効な証明書である。
但し、自己署名証明書２９４は、ＲＳＡ公開鍵２９２ｂの生成元が認証局により保証されないため、通信機器Ａ２０１になりすました別の機器により生成されている可能性がある。
つまり、この時点では、通信機器Ｂ２０２の通信相手が通信機器Ａ２０１であるということは保証されていない。
【００７８】
通信機器Ａ２０１の自己署名証明書２９４が有効である場合（認証ＯＫ）、処理はＳ３３１に進む。
通信機器Ａ２０１の自己署名証明書２９４が有効でない場合（無効である場合）（認証ＮＧ）、通信機器Ｂ２０２は通信機器Ａ２０１との通信を終了し、通信機器２００の運用時処理は終了する。
通信機器Ａ２０１の自己署名証明書２９４が有効でない場合の処理分岐について図示を省略する。
【００７９】
＜Ｓ３３１：ＩＤベース暗号署名検証処理（自己証明書検証処理の一例）＞
通信機器Ｂ２０２の自己署名証明書検証部２４１は、機器記憶部２９０から公開パラメータ２９３ａを取得する。
通信機器Ｂ２０２の自己署名証明書検証部２４１は、公開パラメータ２９３ａと通信機器Ａ２０１の自己署名証明書２９４に設定されているＲＳＡ公開鍵２９２ｂとを用いてＩＤベース暗号方式の検証アルゴリズムを実行し、通信機器Ａ２０１の自己署名証明書２９４に設定されているＩＤベース暗号署名２９４ｂを検証する。
【００８０】
通信機器Ａ２０１の自己署名証明書２９４に設定されているＩＤベース暗号署名２９４ｂは、通信機器Ａ２０１の機器固有ＩＤ２９１ｂおよび公開パラメータ２９３ａに基づいてのみ生成可能なＩＤベース暗号秘密鍵２９３ｂを用いて生成されている。
このため、ＩＤベース暗号署名２９４ｂの検証結果が有効である場合、自己署名証明書２９４は、通信機器Ａ２０１の機器固有ＩＤ２９１ｂおよび公開パラメータ２９３ａが設定されている機器（つまり、通信機器Ａ２０１）により生成されたということが保証される。
つまり、この時点で、通信機器Ｂ２０２の通信相手が通信機器Ａ２０１であるということが保証される。
【００８１】
ＩＤベース暗号署名２９４ｂが有効である場合、処理はＳ３４０に進む。
ＩＤベース暗号署名２９４ｂが有効でない場合（無効である場合）、通信機器Ｂ２０２は通信機器Ａ２０１との通信を終了し、通信機器２００の運用時処理は終了する。
ＩＤベース暗号署名２９４ｂが有効でない場合の処理分岐について図示を省略する。
【００８２】
＜Ｓ３４０＞
通信機器Ｂ２０２のＳＳＬ通信部２４０は、セッション鍵２９５ｂの生成に用いる情報であるプリマスターシークレット２９５ａを生成し、生成したプリマスターシークレット２９５ａを機器記憶部２９０に記憶する。
さらに、通信機器Ｂ２０２のＳＳＬ通信部２４０は、通信機器Ａ２０１の自己署名証明書２９４からＲＳＡ公開鍵２９２ｂを取得し、取得したＲＳＡ公開鍵２９２ｂを用いてプリマスターシークレット２９５ａを暗号化し、暗号化したプリマスターシークレット２９５ａを通信機器Ａ２０１へ送信する。
Ｓ３４０の後、処理はＳ３４１に進む。
【００８３】
＜Ｓ３４１＞
通信機器Ａ２０１のＳＳＬ通信部２４０は、Ｓ３４０において通信機器Ｂ２０２により送信されたプリマスターシークレット２９５ａを受信する。
通信機器Ａ２０１のＳＳＬ通信部２４０は、自己のＲＳＡ秘密鍵２９２ａを機器記憶部２９０から取得し、受信したプリマスターシークレット２９５ａをＲＳＡ秘密鍵２９２ａを用いて復号し、復号したプリマスターシークレット２９５ａを機器記憶部２９０に記憶する。
Ｓ３４１の後、処理はＳ３５０に進む。
【００８４】
Ｓ３４０〜Ｓ３４１において、通信機器Ａ２０１と通信機器Ｂ２０２との間でプリマスターシークレット２９５ａが共有される。
【００８５】
＜Ｓ３５０＞
通信機器Ｂ２０２のＳＳＬ通信部２４０は、自己のＲＳＡ秘密鍵２９２ａを機器記憶部２９０から取得し、取得したＲＳＡ秘密鍵２９２ａを用いてＳ３１０からＳ３４１までに通信機器Ａ２０１と通信機器Ｂ２０２との間で通信された情報（「ハンドシェークメッセージ」という）の署名をＳＳＬ署名２９５ｃとして生成し、生成したＳＳＬ署名２９５ｃを通信機器Ａ２０１へ送信する。
ＳＳＬ署名２９５ｃは、通信機器Ａ２０１のＳＳＬ通信部２４０により受信され機器記憶部２９０に記憶される。
Ｓ３５０の後、処理はＳ３６０に進む。
【００８６】
＜Ｓ３６０：自己署名証明書検証処理（自己証明書検証処理の一例）＞
通信機器Ａ２０１の自己署名証明書検証部２４１は、Ｓ３３０における通信機器Ｂ２０２と同様にして、通信機器Ｂ２０２の自己署名証明書２９４を検証する。
自己署名証明書２９４が有効である場合、処理はＳ３６１に進む。
自己署名証明書２９４が有効でない場合、通信機器Ａ２０１は通信機器Ｂ２０２との通信を終了し、通信機器２００の運用時処理は終了する。
自己署名証明書２９４が有効でない場合の処理分岐について図示を省略する。
【００８７】
＜Ｓ３６１：ＩＤベース暗号署名検証処理（自己証明書検証処理の一例）＞
通信機器Ａ２０１の自己署名証明書検証部２４１は、Ｓ３３１における通信機器Ｂ２０２と同様にして、通信機器Ｂ２０２の自己署名証明書２９４に設定されているＩＤベース暗号署名２９４ｂを検証する。
ＩＤベース暗号署名２９４ｂが有効である場合、処理はＳ３７０に進む。
ＩＤベース暗号署名２９４ｂが有効でない場合、通信機器Ａ２０１は通信機器Ｂ２０２との通信を終了し、通信機器２００の運用時処理は終了する。
ＩＤベース暗号署名２９４ｂが有効でない場合の処理分岐について図示を省略する。
【００８８】
＜Ｓ３７０＞
通信機器Ａ２０１のＳＳＬ通信部２４０は、通信機器Ｂ２０２のＳＳＬ署名２９５ｃおよび自己署名証明書２９４を機器記憶部２９０から取得し、通信機器Ｂ２０２の自己署名証明書２９４に含まれるＲＳＡ公開鍵２９２ｂを用いて通信機器Ｂ２０２のＳＳＬ署名２９５ｃを検証する。
ＳＳＬ署名２９５ｃが有効である場合、処理はＳ３８０に進む。
ＳＳＬ署名２９５ｃが有効でない場合、通信機器Ｂ２０２は通信機器Ａ２０１との通信を終了し、通信機器２００の運用時処理は終了する。
ＳＳＬ署名２９５ｃが有効でない場合の処理分岐について図示を省略する。
【００８９】
＜Ｓ３８０＞
通信機器Ａ２０１のＳＳＬ通信部２４０と通信機器Ｂ２０２のＳＳＬ通信部２４０とは、それぞれ、Ｓ３４０〜Ｓ３４１において共有したプリマスターシークレット２９５ａを機器記憶部２９０から取得し、取得したプリマスターシークレット２９５ａとＳ３１０において共有した乱数とを用いてセッション鍵２９５ｂを生成する。
Ｓ３８０の後、処理はＳ３８１に進む。
【００９０】
＜Ｓ３８１＞
通信機器Ａ２０１の暗号認証通信部２４２と通信機器Ｂ２０２の暗号認証通信部２４２とは、それぞれ、Ｓ３８０において生成されたセッション鍵２９５ｂを用いて通信データ２９５ｄを暗号化し、暗号化した通信データ２９５ｄを互いに通信する。
Ｓ３８１において必要なデータ通信が終了した後、処理は終了する。
【００９１】
ＩＤベース暗号署名検証処理（Ｓ３３１、Ｓ３６１）は、従来のＳＳＬ通信および証明書検証では行われておらず、実施の形態１における機器認証システム１００の特徴の一つである。本処理により、自己署名証明書２９４が、機器固有ＩＤ２９１ｂで特定される機器にて生成された証明書であることが保証される。
【００９２】
実施の形態１において例えば以下のような機器認証システム１００について説明した。
通信機器２００は、製造時に、機器固有ＩＤ２９１ｂに対応するＩＤベース暗号秘密鍵２９３ｂを生成・格納する。
さらに、通信機器２００は、システム構築時に、ホスト名２９１ｃと、ＩＤベース暗号秘密鍵２９３ｂを用いてＲＳＡ公開鍵２９２ｂより生成されるＩＤベース暗号署名２９４ｂとを含む自己署名証明書２９４を生成する。
さらに、通信機器２００は、運用時に、通信相手の自己署名証明書２９４の検証として自己署名証明書２９４に含まれるＲＳＡ自己署名２９４ａおよびＩＤベース暗号署名２９４ｂを検証する。
【００９３】
これにより、通信相手の機器が指定したホスト名を割り当てられた機器であること、及び通信相手の機器が自己署名証明書２９４に含まれる機器固有ＩＤ２９１ｂで特定される機器であることを保証する確実な機器認証が、認証局による証明書の発行やオフラインでの証明書の検証等の手間のかかる手順を必要とする事無く、実施される。
例えば、機器認証システム１００は、同一メーカーにより製造された機器間で秘匿性の高いデータを送受信する通信システムとして利用することができる。
【００９４】
実施の形態１においてＲＳＡ公開鍵暗号方式の代わりに、楕円暗号、ＤＳＡ、ＤＨ等のその他の公開鍵暗号方式が用いられてもよい。
ＲＳＡ公開鍵暗号方式では、ＳＨＡ１やＭＤ５等のハッシュ関数が用いられる。
【００９５】
実施の形態１は、通信機器２００が秘密鍵と公開鍵証明書を持って秘密鍵による署名により相手機器に自機器を認証させたり、相手機器の証明書に含まれる公開鍵を用いたセッション鍵を暗号化したりする方式において、証明書の検証のその安全性のよりどころとするあらゆる方式に適用することが可能である。
【００９６】
実施の形態２．
システム構築時ではなく製造時に通信機器２００が自己署名証明書２９４を生成する形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項は実施の形態１と同様である。
【００９７】
図１１は、実施の形態２における通信機器２００の製造時処理を示すフローチャートである。
実施の形態２における通信機器２００の製造時処理について、図１１に基づいて以下に説明する。
【００９８】
図１１に示すフローチャートは、実施の形態１における通信機器２００の製造時処理（図５参照）にＳ１３０〜Ｓ１６０を追加したものである。
さらに、Ｓ１３０〜Ｓ１５０は、実施の形態１における通信機器２００のシステム構築時処理（図７参照）のＳ２２０〜Ｓ２４０と同じである。
【００９９】
Ｓ１６０において、自己署名証明書生成部２２３は、Ｓ２５０（図７参照）と同様に、自己署名証明書情報とＲＳＡ自己署名２９４ａとを結合して自己署名証明書２９４を生成し、生成した自己署名証明書２９４を機器記憶部２９０に記憶する。
但し、製造時の通信機器２００にはホスト名２９１ｃが設定されていないため、ホスト名２９１ｃは自己署名証明書情報に含まれず、自己署名証明書生成部２２３は自己署名証明書２９４のサブジェクト名のＣｏｍｍｏｎＮａｍｅ欄にホスト名２９１ｃの代わりに機器固有ＩＤ２９１ｂを設定する。
【０１００】
通信機器２００のシステム構築時処理は、Ｓ２１０（ホスト名２９１ｃの設定）のみ実行され、Ｓ２２０〜Ｓ２５０は実行されない（図７参照）。
【０１０１】
通信機器２００の運用時処理は、自己署名証明書２９４にホスト名２９１ｃが設定されていないほか、実施の形態１（図１０）と同じである。
つまり、自己署名証明書検証処理（Ｓ３３０、Ｓ３６０）において、ホスト名の検証は行われない。
【０１０２】
実施の形態２において例えば以下のような機器認証システム１００について説明した。
通信機器２００は、製造時に、機器固有ＩＤ２９１ｂに対応するＩＤベース暗号秘密鍵２９３ｂを生成・格納し、ＩＤベース暗号秘密鍵２９３ｂを用いてＲＳＡ公開鍵２９２ｂより生成されるＩＤベース暗号署名２９４ｂを含む自己署名証明書２９４を生成する。
さらに、通信機器２００は、運用時に、通信相手の自己署名証明書２９４の検証として自己署名証明書２９４に含まれるＲＳＡ自己署名２９４ａおよびＩＤベース暗号署名２９４ｂを検証する。
【０１０３】
自己署名証明書２９４が製造時に生成されることにより、ホスト名２９１ｃやＩＰアドレス等のシステム構築時に決定される機器識別名は、自己署名証明書２９４に設定されない。このため、通信相手の機器が指定したホスト名を割り当てられた機器であるという保証はなくなる。しかし、通信相手の機器が機器固有ＩＤ２９１ｂで特定される正当な機器であることは実施の形態１と同様に保証される。
【０１０４】
実施の形態３．
通信機器２００が自己署名証明書２９４を更新する形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項は実施の形態１と同様である。
【０１０５】
図１２は、実施の形態３における通信機器２００の機能構成図である。
実施の形態３における通信機器２００の機能構成について、図１２に基づいて以下に説明する。
【０１０６】
通信機器２００は、実施の形態１で説明した構成（図３参照）に加えて、証明書更新契機検出部２２４を備える。
【０１０７】
証明書更新契機検出部２２４は、自己署名証明書２９４を更新する契機（所定のタイミング）をＣＰＵを用いて検出する。
例えば、証明書更新契機検出部２２４は、自己署名証明書２９４に設定されている有効期限を検証し、有効期限の所定時間前または有効期限の経過時を自己署名証明書２９４の更新契機として検出する。
また例えば、証明書更新契機検出部２２４は、管理者により証明書更新指示が指定されたときを自己署名証明書２９４の更新契機として検出する。
【０１０８】
ＲＳＡ鍵ペア生成部２２１（認証鍵ペア更新部の一例）は、証明書更新契機検出部２２４によりＲＳＡ鍵ペア２９２の更新契機が検出されたときに、ＲＳＡ鍵ペア２９２（ＲＳＡ秘密鍵２９２ａ、ＲＳＡ公開鍵２９２ｂ）を更新する。
ＩＤベース暗号署名生成部２３０は、ＲＳＡ鍵ペア生成部２２１により更新されたＲＳＡ公開鍵２９２ｂに基づいてＩＤベース暗号署名２９４ｂを新たに生成する。
自己署名生成部２２２は、ＲＳＡ鍵ペア生成部２２１により更新されたＲＳＡ秘密鍵２９２ａに基づいてＲＳＡ自己署名２９４ａを新たに生成する。
自己署名証明書生成部２２３は、所定のデータと新たなＩＤベース暗号署名２９４ｂと新たなＲＳＡ自己署名２９４ａとを結合させて自己署名証明書２９４を生成する。
ＳＳＬ通信部２４０は、自己署名証明書生成部２２３により新たに生成された自己署名証明書２９４を通信相手の通信機器２００へ送信する。
【０１０９】
図１３は、実施の形態３における自己署名証明書更新処理を示すフローチャートである。
通信機器２００が自己署名証明書２９４を更新する自己署名証明書更新処理について、図１３に基づいて以下に説明する。
通信機器２００の各「〜部」は、以下に説明する処理をＣＰＵを用いて実行する。
以下に説明する自己署名証明書更新処理は、証明書更新契機検出部２２４により自己署名証明書２９４の更新契機が検出されたときに実行される。
【０１１０】
＜Ｓ４１０＞
ＲＳＡ鍵ペア生成部２２１は、Ｓ２２０（図７参照）と同様に、ＲＳＡ鍵ペア２９２を新たに生成し、生成したＲＳＡ鍵ペア２９２を機器記憶部２９０に記憶する。
そして、ＲＳＡ鍵ペア生成部２２１は、機器記憶部２９０から古いＲＳＡ鍵ペア２９２を削除する。
Ｓ４１０の後、処理はＳ４２０に進む。
【０１１１】
＜Ｓ４２０＞
ＩＤベース暗号署名生成部２３０は、Ｓ２３０（図７参照）と同様に、新たなＲＳＡ公開鍵２９２ｂのＩＤベース暗号署名２９４ｂを生成し、生成したＩＤベース暗号署名２９４ｂを機器記憶部２９０に記憶する。
そして、ＩＤベース暗号署名生成部２３０は、機器記憶部２９０から古いＩＤベース暗号署名２９４ｂを削除する。
Ｓ４２０の後、処理はＳ４３０に進む。
【０１１２】
＜Ｓ４３０＞
自己署名生成部２２２は、Ｓ２４０（図７参照）と同様に、新たなＲＳＡ秘密鍵２９２ａを用いて自己署名証明書情報のＲＳＡ自己署名２９４ａを生成する。自己署名証明書情報には新たなＲＳＡ公開鍵２９２ｂおよび新たなＩＤベース暗号秘密鍵２９３ｂが含まれる。
Ｓ４３０の後、処理はＳ４４０に進む。
【０１１３】
＜Ｓ４４０＞
自己署名証明書生成部２２３は、Ｓ２５０（図７参照）と同様に、自己署名証明書情報と新たなＲＳＡ自己署名２９４ａとを結合して自己署名証明書２９４を生成し、生成した自己署名証明書２９４を機器記憶部２９０に記憶する。
そして、自己署名証明書生成部２２３は、機器記憶部２９０から古い自己署名証明書２９４を削除する。
Ｓ４４０の後、処理は終了する。
【０１１４】
実施の形態３において例えば以下のような機器認証システム１００について説明した。
通信機器２００は、運用時に、既存のＲＳＡ鍵ペア２９２および自己署名証明書２９４を消去後、ＲＳＡ鍵ペア２９２を再生成し、自己署名証明書２９４を更新する。
【０１１５】
これにより、認証局とのインタラクションが必要な証明書再発行手順を実施することなく、証明書（自己署名証明書２９４）の更新を機器単体で実行でき、証明書更新の運用負荷を大幅に軽減することができる。
【０１１６】
実施の形態４．
通信機器２００が、ＩＤベース暗号秘密鍵２９３ｂではなく機器固有のＲＳＡ秘密鍵を用いてＲＳＡ公開鍵２９２ｂの電子署名を生成し、生成したＲＳＡ公開鍵２９２ｂの電子署名を自己署名証明書２９４に設定する形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項は実施の形態１と同様である。
【０１１７】
図１４は、実施の形態４における通信機器２００の機能構成図である。
実施の形態４における通信機器２００の機能構成について、図１４に基づいて以下に説明する。
【０１１８】
通信機器２００は、実施の形態１で説明した構成（図３参照）に対して以下の点で異なる。
【０１１９】
通信機器２００は、ＩＤベース暗号秘密鍵生成部２１０の代わりに、機器個別ＲＳＡ鍵ペア生成部２１１（機器ＩＤ鍵生成部の一例）、機器個別署名生成部２１２と機器個別証明書生成部２１３とを備える。
通信機器２００は、ＩＤベース暗号署名生成部２３０の代わりに、機器個別ＲＳＡ署名生成部２３１（機器ＩＤ認証情報生成部の一例）を備える。
【０１２０】
機器記憶部２９０には、マスター鍵２９１ａと公開パラメータ２９３ａとの代わりにマスターＲＳＡ鍵ペア２９１ｄ（マスターＲＳＡ秘密鍵２９１ｄ１、マスターＲＳＡ公開鍵２９１ｄ２）、ＩＤベース暗号秘密鍵２９３ｂの代わりに機器個別ＲＳＡ鍵ペア２９３ｃ（機器個別ＲＳＡ秘密鍵２９３ｃ１、機器個別ＲＳＡ公開鍵２９３ｃ２）、ＩＤベース暗号署名２９４ｂの代わりに機器個別ＲＳＡ署名２９４ｃが記憶される。
さらに、機器記憶部２９０には、機器個別証明書２９６と機器個別署名２９６ａとが記憶される。
【０１２１】
機器個別ＲＳＡ鍵ペア生成部２１１（機器ＩＤ鍵生成部の一例）は、公開鍵暗号方式により、機器固有ＩＤ２９１ｂに基づいて機器個別ＲＳＡ鍵ペア２９３ｃ（機器個別ＲＳＡ秘密鍵２９３ｃ１、機器個別ＲＳＡ公開鍵２９３ｃ２）（機器ＩＤ鍵の一例）をＣＰＵを用いて生成する。
【０１２２】
機器個別署名生成部２１２は、マスターＲＳＡ秘密鍵２９１ｄ１（自機器の秘密鍵データの一例）に基づいて機器個別ＲＳＡ公開鍵２９３ｃ２（機器個別公開鍵の一例）の電子署名を機器個別署名２９６ａとしてＣＰＵを用いて生成する。
【０１２３】
機器個別証明書生成部２１３は、機器個別署名２９６ａと機器固有ＩＤ２９１ｂとをＣＰＵを用いて結合させて機器個別証明書２９６を生成する。
【０１２４】
機器個別ＲＳＡ署名生成部２３１（機器ＩＤ認証情報生成部の一例）は、機器個別ＲＳＡ秘密鍵２９３ｃ１を用いてＲＳＡ公開鍵２９２ｂの電子署名を機器個別ＲＳＡ署名２９４ｃ（機器ＩＤ認証情報の一例）として生成する。
【０１２５】
図１５は、実施の形態４における通信機器２００の製造時（製造時処理前）の格納データを示す図である。
図１５に示すように、通信機器２００が製造された際、通信機器２００の機器記憶部２９０（図示省略）にはマスターＲＳＡ鍵ペア２９１ｄ（マスターＲＳＡ秘密鍵２９１ｄ１、マスターＲＳＡ公開鍵２９１ｄ２）および機器固有ＩＤ２９１ｂが登録される。
マスターＲＳＡ鍵ペア２９１ｄは、機器個別証明書２９６に設定される機器個別署名２９６ａの生成に用いられる情報であり、全ての通信機器２００で同一である。
【０１２６】
図１６は、実施の形態４における通信機器２００の製造時処理を示すフローチャートである。
実施の形態４における通信機器２００の製造時処理について、図１６に基づいて以下に説明する。
【０１２７】
機器個別ＲＳＡ鍵ペア生成部２１１は機器固有ＩＤ２９１ｂに基づいて機器個別ＲＳＡ鍵ペア２９３ｃを生成し（Ｓ１１１）、機器個別署名生成部２１２はマスターＲＳＡ秘密鍵２９１ｄ１を用いて機器個別証明書情報の機器個別署名２９６ａを生成し（Ｓ１１２）、機器個別証明書生成部２１３は機器個別証明書情報と機器個別署名２９６ａとを結合して機器個別証明書２９６を生成し（Ｓ１１３）、機器個別証明書生成部２１３はマスターＲＳＡ秘密鍵２９１ｄ１を削除する（Ｓ１２１）。
以下に、各処理（Ｓ１１１〜Ｓ１１３、Ｓ１２１）の詳細について説明する。
【０１２８】
＜Ｓ１１１：機器ＩＤ鍵生成処理の一例＞
機器個別ＲＳＡ鍵ペア生成部２１１は、機器固有ＩＤ２９１ｂを機器記憶部２９０から取得する。
機器個別ＲＳＡ鍵ペア生成部２１１は、取得した機器固有ＩＤ２９１ｂを入力値としてＲＳＡ公開鍵暗号方式の鍵生成アルゴリズムを実行し、機器個別ＲＳＡ鍵ペア２９３ｃを生成する。
そして、機器個別ＲＳＡ鍵ペア生成部２１１は、生成した機器個別ＲＳＡ鍵ペア２９３ｃを機器記憶部２９０に記憶する。
Ｓ１１１の後、処理はＳ１１２に進む。
【０１２９】
＜Ｓ１１２＞
機器個別署名生成部２１２は、マスターＲＳＡ秘密鍵２９１ｄ１と機器個別証明書２９６に含める各種情報（機器個別証明書情報）とを機器記憶部２９０から取得する。
機器個別署名生成部２１２は、取得したマスターＲＳＡ秘密鍵２９１ｄ１および機器個別証明書情報を入力値としてＲＳＡ公開鍵暗号方式の署名アルゴリズムを実行し、機器個別証明書情報の機器個別署名２９６ａを生成する。
以下、機器個別ＲＳＡ公開鍵２９３ｃ２および機器固有ＩＤ２９１ｂを機器個別証明書情報として説明を続ける。機器個別証明書情報はこれらに限られない。
Ｓ１１２の後、処理はＳ１１３に進む。
【０１３０】
＜Ｓ１１３＞
機器個別証明書生成部２１３は、機器個別証明書情報とＳ１１２において生成された機器個別署名２９６ａとを結合して機器個別証明書２９６を生成し、生成した機器個別証明書２９６を機器記憶部２９０に記憶する。
Ｓ１１３の後、処理はＳ１２１に進む。
【０１３１】
＜Ｓ１２１＞
機器個別署名生成部２１２は、機器個別署名２９６ａの生成に用いたマスターＲＳＡ秘密鍵２９１ｄ１を機器記憶部２９０から削除する。機器個別署名生成部２１２は、マスターＲＳＡ秘密鍵２９１ｄ１を削除することにより、マスターＲＳＡ秘密鍵２９１ｄ１が漏洩し、漏洩したマスターＲＳＡ秘密鍵２９１ｄ１を用いて機器個別署名２９６ａが偽造されることを防止する。
Ｓ１２１の後、処理は終了する。
【０１３２】
図１７は、実施の形態４における通信機器２００の製造時（製造時処理後）の格納データを示す図である。
図１７に示すように、通信機器２００の製造時処理後、通信機器２００の機器記憶部２９０（図示省略）にはマスターＲＳＡ公開鍵２９１ｄ２、機器固有ＩＤ２９１ｂ、機器個別ＲＳＡ鍵ペア２９３ｃおよび機器個別証明書２９６が記憶されている。
機器個別証明書２９６には、機器個別ＲＳＡ公開鍵２９３ｃ２、機器固有ＩＤ２９１ｂおよび機器個別署名２９６ａが設定されている。
【０１３３】
図１８は、実施の形態４における通信機器２００のシステム構築時処理を示すフローチャートである。
実施の形態４における通信機器２００のシステム構築時処理について、図１８に基づいて以下に説明する。
【０１３４】
図１８に示すフローチャートは、実施の形態１における通信機器２００のシステム構築時処理（図７参照）のＳ２３０を以下に説明するＳ２３１に変更したものである。
【０１３５】
＜Ｓ２３１：機器ＩＤ認証情報生成処理の一例＞
Ｓ２２０の後、機器個別ＲＳＡ署名生成部２３１は、機器個別ＲＳＡ秘密鍵２９３ｃ１とＲＳＡ公開鍵２９２ｂとを機器記憶部２９０から取得する。
機器個別ＲＳＡ署名生成部２３１は、取得した機器個別ＲＳＡ秘密鍵２９３ｃ１およびＲＳＡ公開鍵２９２ｂを入力値としてＲＳＡ公開鍵暗号方式の署名アルゴリズムを実行し、ＲＳＡ公開鍵２９２ｂの機器個別ＲＳＡ署名２９４ｃを生成する。
機器個別ＲＳＡ署名生成部２３１は、生成したＲＳＡ公開鍵２９２ｂの機器個別ＲＳＡ署名２９４ｃを機器記憶部２９０に記憶する。
Ｓ２３１の後、処理はＳ２４０に進む。
【０１３６】
Ｓ２４０およびＳ２５０において、自己署名証明書情報には、機器固有ＩＤ２９１ｂの代わりに機器個別証明書２９６、ＩＤベース暗号署名２９４ｂの代わりに機器個別ＲＳＡ署名２９４ｃが含まれる。
【０１３７】
図１９は、実施の形態４における通信機器２００のシステム構築時（システム構築時処理後）の格納データを示す図である。
図１９に示すように、通信機器２００のシステム構築時処理後、通信機器２００の機器記憶部２９０（図示省略）にはマスターＲＳＡ公開鍵２９１ｄ２、機器固有ＩＤ２９１ｂ、機器個別ＲＳＡ鍵ペア２９３ｃ、機器個別証明書２９６、ホスト名２９１ｃ、ＲＳＡ鍵ペア２９２および自己署名証明書２９４が記憶されている。
自己署名証明書２９４には、ＲＳＡ公開鍵２９２ｂ、自己署名証明書２９４の有効期限、ホスト名２９１ｃ、機器個別証明書２９６、ＲＳＡ公開鍵２９２ｂの機器個別ＲＳＡ署名２９４ｃおよびＲＳＡ自己署名２９４ａが設定されている。
【０１３８】
図２０は、実施の形態４における通信機器２００の運用時処理を示すフローチャートである。
実施の形態４における通信機器２００の運用時処理について、図２０に基づいて以下に説明する。
【０１３９】
図２０に示すフローチャートは、実施の形態１における通信機器２００の運用時処理（図１０参照）に対して、以下に説明するＳ３３２およびＳ３６２を加え、Ｓ３３１およびＳ３６１を以下に説明するＳ３３３およびＳ３６３に変更したものである。
【０１４０】
＜Ｓ３３２：機器個別証明書検証処理（自己証明書検証処理の一例）＞
Ｓ３３０の後、通信機器Ｂ２０２の自己署名証明書検証部２４１は、マスターＲＳＡ公開鍵２９１ｄ２を機器記憶部２９０から取得し、通信機器Ａ２０１の自己署名証明書２９４から機器個別証明書２９６を取得し、機器個別証明書２９６に設定されている機器個別署名２９６ａをマスターＲＳＡ公開鍵２９１ｄ２を用いて検証する。
【０１４１】
機器個別署名２９６ａが有効である機器個別証明書２９６は、改ざんされていないことが保証される。
つまり、機器個別証明書２９６に設定されている機器個別ＲＳＡ公開鍵２９３ｃ２は、機器個別証明書２９６に設定されている機器固有ＩＤ２９１ｂで特定される通信機器Ａ２０１により生成されたということが保証される。
【０１４２】
機器個別署名２９６ａが有効である場合、処理はＳ３３３に進む。
機器個別署名２９６ａが有効でない場合、通信機器Ｂ２０２は通信機器Ａ２０１との通信を終了し、通信機器２００の運用時処理は終了する。
機器個別署名２９６ａが有効でない場合の条件分岐について図示を省略する。
【０１４３】
＜Ｓ３３３：機器個別ＲＳＡ署名検証処理（自己証明書検証処理の一例）＞
通信機器Ｂ２０２の自己署名証明書検証部２４１は、機器個別証明書２９６に設定されている機器個別ＲＳＡ公開鍵２９３ｃ２を用いてＲＳＡ公開鍵方式の検証アルゴリズムを実行し、通信機器Ａ２０１の自己署名証明書２９４に設定されている機器個別ＲＳＡ署名２９４ｃを検証する。
【０１４４】
Ｓ３３２において機器個別ＲＳＡ公開鍵２９３ｃ２は通信機器Ａ２０１により生成されたことが保証されているため、ＲＳＡ公開鍵２９２ｂの機器個別ＲＳＡ署名２９４ｃが有効である場合、自己署名証明書２９４に設定されているＲＳＡ公開鍵２９２ｂは、通信機器Ａ２０１により生成されたことが保証される。さらに、Ｓ３３０におけるＲＳＡ自己署名２９４ａの検証により自己署名証明書２９４は改ざんされていないことが保証されているため、自己署名証明書２９４は通信機器Ａ２０１により生成されたことが保証される。
つまり、通信機器Ｂ２０２の通信相手が通信機器Ａ２０１であるということが保証される。
【０１４５】
機器個別ＲＳＡ署名２９４ｃが有効である場合、処理はＳ３４０に進む。
機器個別ＲＳＡ署名２９４ｃが有効でない場合、通信機器Ｂ２０２は通信機器Ａ２０１との通信を終了し、通信機器２００の運用時処理は終了する。
機器個別ＲＳＡ署名２９４ｃが有効でない場合の処理分岐について図示を省略する。
【０１４６】
＜Ｓ３６２：機器個別証明書検証処理（自己証明書検証処理の一例）＞
Ｓ３６０の後、通信機器Ａ２０１の自己署名証明書検証部２４１は、Ｓ３３２における通信機器Ｂ２０２と同様にして、通信機器Ｂ２０２の自己署名証明書２９４に設定されている機器個別証明書２９６を取得し、機器個別証明書２９６に設定されている機器個別署名２９６ａを検証する。
機器個別署名２９６ａが有効である場合、処理はＳ３６３に進む。
機器個別署名２９６ａが有効でない場合、通信機器Ａ２０１は通信機器Ｂ２０２との通信を終了し、通信機器２００の運用時処理は終了する。
機器個別署名２９６ａが有効でない場合の処理分岐について図示を省略する。
【０１４７】
＜Ｓ３６３：機器個別ＲＳＡ署名検証処理（自己証明書検証処理の一例）＞
通信機器Ａ２０１の自己署名証明書検証部２４１は、Ｓ３３３における通信機器Ｂ２０２と同様にして、通信機器Ｂ２０２の自己署名証明書２９４に設定されている機器個別ＲＳＡ署名２９４ｃを検証する。
機器個別ＲＳＡ署名２９４ｃが有効である場合、処理はＳ３７０に進む。
機器個別ＲＳＡ署名２９４ｃが有効でない場合、通信機器Ａ２０１は通信機器Ｂ２０２との通信を終了し、通信機器２００の運用時処理は終了する。
機器個別ＲＳＡ署名２９４ｃが有効でない場合の処理分岐について図示を省略する。
【０１４８】
実施の形態４において、通信機器２００が、ＩＤベース暗号秘密鍵２９３ｂではなく機器固有のＲＳＡ秘密鍵を用いてＲＳＡ公開鍵２９２ｂの電子署名を生成し、生成したＲＳＡ公開鍵２９２ｂの電子署名を自己署名証明書２９４に設定する形態について説明した。
【０１４９】
機器認証システム１００は、実施の形態１と同様に、認証局から証明書の発行を受けなくても自己署名証明書２９４に基づいて通信相手を保証するという効果を奏する。
【０１５０】
通信機器２００は、実施の形態２と同様に、製造時処理において自己署名証明書２９４を生成してもよい。
また、通信機器２００は、実施の形態３と同様に、自己署名証明書２９４を更新してもよい。
【０１５１】
実施の形態５．
通信機器２００が、ＩＤベース暗号秘密鍵２９３ｂではなく機器固有の共通鍵を用いてＲＳＡ公開鍵２９２ｂの電子署名を生成し、生成したＲＳＡ公開鍵２９２ｂの電子署名を自己署名証明書２９４に設定する形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項は実施の形態１と同様である。
【０１５２】
図２１は、実施の形態５における通信機器２００の機能構成図である。
実施の形態５における通信機器２００の機能構成について、図２１に基づいて以下に説明する。
【０１５３】
通信機器２００は、実施の形態１で説明した構成（図３参照）に対して以下の点で異なる。
【０１５４】
通信機器２００は、ＩＤベース暗号秘密鍵生成部２１０の代わりに、機器個別共通鍵生成部２１４（機器ＩＤ鍵生成部の一例）を備える。
通信機器２００は、ＩＤベース暗号署名生成部２３０の代わりに、機器個別共通鍵ＭＡＣ生成部２３２（機器ＩＤ認証情報生成部の一例）を備える。
【０１５５】
機器記憶部２９０には、マスター鍵２９１ａと公開パラメータ２９３ａとの代わりにマスター共通鍵２９１ｅ、ＩＤベース暗号秘密鍵２９３ｂの代わりに機器個別共通鍵２９３ｄ、ＩＤベース暗号署名２９４ｂの代わりに機器個別共通鍵ＭＡＣ２９４ｄが記憶される。
【０１５６】
機器個別共通鍵生成部２１４（機器ＩＤ鍵生成部の一例）は、共通鍵暗号方式により、機器固有ＩＤ２９１ｂに基づいて機器個別共通鍵２９３ｄ（機器ＩＤ鍵の一例）をＣＰＵを用いて生成する。
【０１５７】
機器個別共通鍵ＭＡＣ生成部２３２（機器ＩＤ認証情報生成部の一例）は、機器個別共通鍵２９３ｄを用いてＲＳＡ公開鍵２９２ｂのＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）（機器ＩＤ認証情報の一例）を機器個別共通鍵ＭＡＣ２９４ｄとして生成する。
【０１５８】
図２２は、実施の形態５における通信機器２００の製造時（製造時処理前）の格納データを示す図である。
図２２に示すように、通信機器２００が製造された際、通信機器２００の機器記憶部２９０（図示省略）にはマスター共通鍵２９１ｅおよび機器固有ＩＤ２９１ｂが登録される。
マスター共通鍵２９１ｅは、機器個別共通鍵２９３ｄの生成に用いられる情報であり、全ての通信機器２００で同一である。
【０１５９】
図２３は、実施の形態５における通信機器２００の製造時処理を示すフローチャートである。
実施の形態５における通信機器２００の製造時処理について、図２３に基づいて以下に説明する。
【０１６０】
機器個別共通鍵生成部２１４はマスター共通鍵２９１ｅおよび機器固有ＩＤ２９１ｂに基づいて機器個別共通鍵２９３ｄを生成し（Ｓ１１４）、マスター共通鍵２９１ｅを削除する（Ｓ１２２）。
以下、各処理（Ｓ１１４、Ｓ１２２）の詳細について説明する。
【０１６１】
＜Ｓ１１４：機器ＩＤ鍵生成処理の一例＞
機器個別共通鍵生成部２１４は、マスター共通鍵２９１ｅと機器固有ＩＤ２９１ｂとを機器記憶部２９０から取得する。
機器個別共通鍵生成部２１４は、取得したマスター共通鍵２９１ｅおよび機器固有ＩＤ２９１ｂを入力値としてＭＡＣアルゴリズム（例えば、ＨＭＡＣ−ＳＨＡ１やＨＭＡＣ−ＭＤ５）を実行し、機器個別共通鍵２９３ｄを生成する。
機器個別共通鍵生成部２１４は、生成した機器個別共通鍵２９３ｄを機器記憶部２９０に記憶する。
Ｓ１１４の後、処理はＳ１２２に進む。
【０１６２】
＜Ｓ１２２＞
機器個別共通鍵生成部２１４は、機器個別共通鍵２９３ｄの生成に用いたマスター共通鍵２９１ｅを機器記憶部２９０から削除する。機器個別共通鍵生成部２１４は、マスター共通鍵２９１ｅを削除することにより、マスター共通鍵２９１ｅが漏洩し、漏洩したマスター共通鍵２９１ｅを用いて機器個別共通鍵２９３ｄが偽造されることを防止する。
Ｓ１２２の後、処理は終了する。
【０１６３】
図２４は、実施の形態５における通信機器２００の製造時（製造時処理後）の格納データを示す図である。
図２４に示すように、通信機器２００の製造時処理後、通信機器２００の機器記憶部２９０（図示省略）には機器固有ＩＤ２９１ｂおよび機器個別共通鍵２９３ｄが記憶されている。
【０１６４】
図２５は、実施の形態５における通信機器２００のシステム構築時処理を示すフローチャートである。
実施の形態５における通信機器２００のシステム構築時処理について、図２５に基づいて以下に説明する。
【０１６５】
図２５に示すフローチャートは、実施の形態１における通信機器２００のシステム構築時処理（図７参照）のＳ２３０を以下に説明するＳ２３２に変更したものである。
【０１６６】
＜Ｓ２３２＞
Ｓ２２０の後、機器個別共通鍵ＭＡＣ生成部２３２は、機器個別共通鍵２９３ｄとＲＳＡ公開鍵２９２ｂとを機器記憶部２９０から取得する。
機器個別共通鍵ＭＡＣ生成部２３２は、取得した機器個別共通鍵２９３ｄおよびＲＳＡ公開鍵２９２ｂを入力値としてＭＡＣアルゴリズム（例えば、ＨＭＡＣ−ＳＨＡ１やＨＭＡＣ−ＭＤ５）を実行し、ＲＳＡ公開鍵２９２ｂの機器個別共通鍵ＭＡＣ２９４ｄを生成する。
機器個別共通鍵ＭＡＣ生成部２３２は、生成したＲＳＡ公開鍵２９２ｂの機器個別共通鍵ＭＡＣ２９４ｄを機器記憶部２９０に記憶する。
Ｓ２３２の後、処理はＳ２４０に進む。
【０１６７】
Ｓ２４０およびＳ２５０において、自己署名証明書情報には、ＩＤベース暗号署名２９４ｂの代わりに機器個別共通鍵ＭＡＣ２９４ｄが含まれる。
【０１６８】
図２６は、実施の形態５における通信機器２００のシステム構築時（システム構築時処理後）の格納データを示す図である。
図２６に示すように、通信機器２００のシステム構築時処理後、通信機器２００の機器記憶部２９０（図示省略）には機器固有ＩＤ２９１ｂ、機器個別共通鍵２９３ｄ、ホスト名２９１ｃ、ＲＳＡ鍵ペア２９２および自己署名証明書２９４が記憶されている。
自己署名証明書２９４には、ＲＳＡ公開鍵２９２ｂ、自己署名証明書２９４の有効期限、ホスト名２９１ｃ、機器固有ＩＤ２９１ｂ、機器個別共通鍵ＭＡＣ２９４ｄおよびＲＳＡ自己署名２９４ａが設定されている。
【０１６９】
図２７は、実施の形態５における機器認証システム１００の運用概要を示す図である。
図２７に示すように、通信機器Ａ２０１は通信端末２０３と通信を行う。
通信端末２０３は、ＵＳＢトークン１２０（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）が接続されるインタフェースを有する。例えば、通信端末２０３はパーソナルコンピュータである。
また、通信端末２０３は、ＳＳＬ通信部２４０、自己署名証明書検証部２４１および暗号認証通信部２４２を備える。
通信端末２０３のユーザは、通信端末２０３から通信機器Ａ２０１にアクセスする際、製造時に通信機器２００に登録されていたものと同じマスター共通鍵２９１ｅが記憶されているＵＳＢトークン１２０を通信端末２０３に接続する。ＵＳＢトークン１２０の代わりに、マスター共通鍵２９１ｅを安全に保管できる媒体として、ＩＣカード等その他の媒体が用いられてもよい。
通信機器Ａ２０１には、通信機器Ａ２０１にアクセスすることが許可されているユーザのユーザＩＤおよびパスワードが記憶されているものとする。
【０１７０】
図２８は、実施の形態５における通信機器２００の運用時処理を示すフローチャートである。
実施の形態５における通信機器２００の運用時処理について、図２８に基づいて以下に説明する。
【０１７１】
＜Ｓ３１１＞
通信機器Ａ２０１と通信端末２０３とは、実施の形態１（図１０参照）のＳ３１０における通信機器Ａ２０１および通信機器Ｂ２０２と同様に、ＳＳＬセッション情報を交換する。
Ｓ３１１の後、処理はＳ３２１に進む。
【０１７２】
＜Ｓ３２１：自己証明書送信処理、自己証明書受信処理の一例＞
通信機器Ａ２０１のＳＳＬ通信部２４０は、実施の形態１におけるＳ３２０と同様に、自己署名証明書２９４を通信端末２０３へ送信する。
通信端末２０３のＳＳＬ通信部２４０は、自己署名証明書２９４を通信機器Ａ２０１へ送信しなくて構わない。
Ｓ３２１の後、処理はＳ３３０に進む。
【０１７３】
＜Ｓ３３４：自己署名証明書検証処理（自己証明書検証処理の一例）＞
通信端末２０３の自己署名証明書検証部２４１は、実施の形態１のＳ３３０における通信機器Ｂ２０２と同様に、通信機器Ａ２０１の自己署名証明書２９４を検証する。
通信機器Ａ２０１の自己署名証明書２９４が有効である場合、処理はＳ３３５に進む。
【０１７４】
＜Ｓ３３５：機器個別共通鍵ＭＡＣ検証処理（自己証明書検証処理の一例）＞
通信端末２０３の自己署名証明書検証部２４１は、通信端末２０３に接続されたＵＳＢトークン１２０からマスター共通鍵２９１ｅを取得する。
Ｓ３３５の後、処理はＳ３３６に進む。
【０１７５】
＜Ｓ３３６：機器個別共通鍵ＭＡＣ検証処理（自己証明書検証処理の一例）＞
通信端末２０３の自己署名証明書検証部２４１は、Ｓ３３５において取得したマスター共通鍵２９１ｅと通信機器Ａ２０１の自己署名証明書２９４に設定されている機器固有ＩＤ２９１ｂとを入力値としてＭＡＣアルゴリズムを実行し、機器個別共通鍵２９３ｄを生成する。Ｓ３３５、Ｓ３３６において、機器個別共通鍵２９３ｄの生成は、マスター共通鍵２９１ｅを機密に保持するＵＳＢトークン１２０の内部で実施される場合もある。その場合、機器個別共通鍵２９３ｄは、機器固有ＩＤ２９１ｂの入力に対する出力となる。
処理内容は、通信機器Ａ２０１による機器個別共通鍵２９３ｄの生成処理（Ｓ１の１４、図２３参照）と同じである。
Ｓ３３６の後、処理はＳ３３７に進む。
【０１７６】
＜Ｓ３３７：機器個別共通鍵ＭＡＣ検証処理（自己証明書検証処理の一例）＞
通信端末２０３の自己署名証明書検証部２４１は、Ｓ３３６において生成した機器個別共通鍵２９３ｄと通信機器Ａ２０１の自己署名証明書２９４に設定されているＲＳＡ公開鍵２９２ｂとを入力値としてＭＡＣアルゴリズムを実行し、ＲＳＡ公開鍵２９２ｂの機器個別共通鍵ＭＡＣ２９４ｄを生成する。
処理内容は、通信機器Ａ２０１による機器個別共通鍵ＭＡＣ２９４ｄの生成処理（Ｓ２３２、図２５参照）と同じである。
Ｓ３３７の後、処理はＳ３３８に進む。
【０１７７】
＜Ｓ３３８：機器個別共通鍵ＭＡＣ検証処理（自己証明書検証処理の一例）＞
通信端末２０３の自己署名証明書検証部２４１は、通信機器Ａ２０１の自己署名証明書２９４に設定されている機器個別共通鍵ＭＡＣ２９４ｄとＳ３３７において生成した機器個別共通鍵ＭＡＣ２９４ｄとを比較する。
通信端末２０３の自己署名証明書検証部２４１は、機器個別共通鍵ＭＡＣ２９４ｄが一致する場合、通信機器Ａ２０１の自己署名証明書２９４に設定されている機器個別共通鍵ＭＡＣ２９４ｄが有効であると判定し、機器個別共通鍵ＭＡＣ２９４ｄが一致しない場合、通信機器Ａ２０１の自己署名証明書２９４に設定されている機器個別共通鍵ＭＡＣ２９４ｄが有効でないと判定する。
【０１７８】
通信端末２０３の自己署名証明書検証部２４１は、通信機器Ａ２０１と同じ方法で生成した機器個別共通鍵ＭＡＣ２９４ｄと比較して自己署名証明書２９４に設定されている機器個別共通鍵ＭＡＣ２９４ｄを検証している。
このため、機器個別共通鍵ＭＡＣ２９４ｄが有効である場合、通信機器Ｂ２０２の通信相手が通信機器Ａ２０１であるということが保証される。
【０１７９】
機器個別共通鍵ＭＡＣ２９４ｄが有効である場合、処理はＳ３４２に進む。
機器個別共通鍵ＭＡＣ２９４ｄが有効でない場合、通信機器Ｂ２０２は通信機器Ａ２０１との通信を終了し、通信機器２００の運用時処理は終了する。
機器個別共通鍵ＭＡＣ２９４ｄが有効でない場合の処理分岐について図示を省略する。
【０１８０】
＜Ｓ３４２＞
通信端末２０３のＳＳＬ通信部２４０は、実施の形態１におけるＳ３４０と同様に、プリマスターシークレット２９５ａを生成し、ＲＳＡ公開鍵２９２ｂを用いて暗号化したプリマスターシークレット２９５ａを通信機器Ａ２０１へ送信する。
Ｓ３４２の後、処理はＳ３４３に進む。
【０１８１】
＜Ｓ３４３＞
通信機器Ａ２０１のＳＳＬ通信部２４０は、実施の形態１におけるＳ３４１と同様に、通信端末２０３から受信したプリマスターシークレット２９５ａをＲＳＡ秘密鍵２９２ａを用いて復号する。
Ｓ３４３の後、処理はＳ３８２に進む。
【０１８２】
＜Ｓ３８２＞
通信機器Ａ２０１のＳＳＬ通信部２４０と通信端末２０３のＳＳＬ通信部２４０とは、実施の形態１におけるＳ３８０と同様に、プリマスターシークレット２９５ａからセッション鍵２９５ｂを生成する。
Ｓ３８２の後、処理はＳ３８３に進む。
【０１８３】
＜Ｓ３８３＞
通信端末２０３のユーザは、自分のユーザＩＤおよびパスワードを通信端末２０３に入力する。
通信端末２０３の暗号認証通信部２４２は、ユーザにより入力されたユーザＩＤおよびパスワードをセッション鍵２９５ｂを用いて暗号化し、暗号化したユーザＩＤおよびパスワードを通信機器Ａ２０１へ送信する。
Ｓ３８３の後、処理はＳ３８４に進む。
【０１８４】
＜Ｓ３８４＞
通信機器Ａ２０１の暗号認証通信部２４２は、通信端末２０３により送信されたユーザＩＤおよびパスワードを受信し、受信したユーザＩＤおよびパスワードをセッション鍵２９５ｂを用いて復号する。
通信機器Ａ２０１の暗号認証通信部２４２は、復号したユーザＩＤおよびパスワードを機器記憶部２９０に予め記憶されているユーザＩＤおよびパスワードと比較する。
通信機器Ａ２０１の暗号認証通信部２４２は、比較一致する場合、通信端末２０３のユーザを認証許可し、比較一致しない場合、通信端末２０３のユーザを認証不許可とする。
ユーザ認証が不許可である場合、ユーザ認証が許可されるまで、Ｓ３８３〜Ｓ３８４が繰り返される。ユーザ認証が不許可である場合の処理分岐について図示を省略する。
ユーザ認証が許可された場合、処理はＳ３８５に進む。
【０１８５】
＜Ｓ３８５＞
通信機器Ａ２０１の暗号認証通信部２４２と通信端末２０３の暗号認証通信部２４２とは、実施の形態１におけるＳ３８１と同様に、セッション鍵２９５ｂを用いて暗号化した通信データ２９５ｄを通信する。
Ｓ３８５において必要なデータ通信が終了した後、処理は終了する。
【０１８６】
通信端末２０３は、通信機器Ａ２０１と同じく、自己署名証明書２９４を生成し、生成した自己署名証明書２９４を通信相手（通信機器Ａ２０１）に送信する通信機器２００であっても構わない。
この場合、通信機器Ａ２０１は、通信端末２０３により実行された処理（Ｓ３３０、Ｓ３３４〜Ｓ３３７）と同様に、通信端末２０３の自己署名証明書２９４および自己署名証明書２９４に設定されている機器個別共通鍵ＭＡＣ２９４ｄを検証する。
【０１８７】
実施の形態５において、通信機器２００が、ＩＤベース暗号秘密鍵２９３ｂではなく機器固有の共通鍵を用いてＲＳＡ公開鍵２９２ｂの電子署名を生成し、生成したＲＳＡ公開鍵２９２ｂの電子署名を自己署名証明書２９４に設定する形態について説明した。
【０１８８】
機器認証システム１００は、実施の形態１と同様に、認証局から証明書の発行を受けなくても自己署名証明書２９４に基づいて通信相手を保証するという効果を奏する。
【０１８９】
通信機器２００は、実施の形態２と同様に、製造時処理において自己署名証明書２９４を生成してもよい。
また、通信機器２００は、実施の形態３と同様に、自己署名証明書２９４を更新してもよい。
【０１９０】
実施の形態６．
通信機器２００が、ＩＤベース暗号秘密鍵２９３ｂやＲＳＡ秘密鍵２９２ａの漏洩を防ぐ形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項は実施の形態１と同様である。
【０１９１】
図２９は、実施の形態６における通信機器２００の機能構成図である。
実施の形態６における通信機器２００の機能構成について、図２９に基づいて以下に説明する。
【０１９２】
通信機器２００はＩＣチップ８００（ＩＣ：Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）を備え、ＩＣチップ８００はＩＣチップメモリ８０１（アクセス制限データ記憶部の一例）を備える。
また、通信機器２００はＩＣチップ８００に特定の処理を要求するためのコマンドを生成するコマンドアクセス部２８０を備える。
【０１９３】
ＩＣチップメモリ８０１には、マスター鍵２９１ａ、機器固有ＩＤ２９１ｂ、ＲＳＡ鍵ペア２９２（ＲＳＡ秘密鍵２９２ａ、ＲＳＡ公開鍵２９２ｂ）、公開パラメータ２９３ａ、ＩＤベース暗号秘密鍵２９３ｂ、ＲＳＡ自己署名２９４ａおよびＩＤベース暗号署名２９４ｂ（アクセス制限データの一例）を記憶する。
その他のデータはＩＣチップ８００外の機器記憶部２９０に記憶する。
【０１９４】
ＩＣチップ８００に対する処理の要求は、予め定義されたコマンド（インタフェース）を用いて行われる。
また、通信機器２００内からであってもＩＣチップ８００の外部からはＩＣチップメモリ８０１に記憶されたデータに直接アクセスすることができない。
【０１９５】
例えば、
（１）登録コマンド、（２）ＩＤＢＥ秘密鍵生成コマンド（ＩＤＢＥ：ＩＤ−Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ）、（３）証明書生成コマンド、（４）ＩＤＢＥ署名検証コマンド、（５）ＲＳＡ暗復号コマンド、（６）ＳＳＬ署名コマンドが定義されている。
【０１９６】
（１）登録コマンドは、マスター鍵２９１ａ、公開パラメータ２９３ａおよび機器固有ＩＤ２９１ｂを登録するためのコマンドである。
（２）ＩＤＢＥ秘密鍵生成コマンドは、ＩＤベース暗号秘密鍵２９３ｂを生成するためのコマンドである。
（３）証明書生成コマンドは、自己署名証明書２９４を生成するためのコマンドである。
（４）ＩＤＢＥ署名検証コマンドは、ＩＤベース暗号署名２９４ｂを検証するためのコマンドである。
（５）ＲＳＡ暗復号コマンドは、ＲＳＡ鍵ペア２９２を用いた暗復号を行うためのコマンドである。
（６）ＳＳＬ署名コマンドは、ＳＳＬ署名２９５ｃを生成するためのコマンドである。
【０１９７】
また例えば、（７）ＲＳＡ鍵ペア生成コマンド、（８）鍵読出しコマンドが定義されている。
【０１９８】
（７）ＲＳＡ鍵ペア生成コマンドは、ＲＳＡ鍵ペア２９２を生成するためのコマンドである。
（８）鍵読出しコマンドは、マスター鍵２９１ａ、ＲＳＡ鍵ペア２９２、ＩＤベース暗号秘密鍵２９３ｂおよび公開パラメータ２９３ａを読み出すコマンドである。
【０１９９】
ＩＣチップ８００は、ＩＤベース暗号秘密鍵生成部２１０、ＲＳＡ鍵ペア生成部２２１、自己署名生成部２２２、自己署名証明書生成部２２３、ＩＤベース暗号署名生成部２３０、登録部２８１、ＩＤベース暗号署名検証部２８２、ＲＳＡ暗復号部２８３、ＳＳＬ署名生成部２８４およびコマンドアクセス制御部８１０（アクセス制限部の一例）を備える。
通信機器２００のその他の構成はＩＣチップ８００外に備わる。
【０２００】
コマンドアクセス制御部８１０は、ＩＣチップメモリ８０１に記憶される特定のデータ（例えば、ＩＤベース暗号秘密鍵２９３ｂ、ＲＳＡ秘密鍵２９２ａ）をＩＣチップ８００外に出力しないコマンドのみを受け付け、受け付けたコマンドに応じてＩＣチップ８００内の構成を動作させる。
コマンドアクセス制御部８１０は受け付けるコマンドを制限することにより、ＩＣチップメモリ８０１に記憶されたデータへのアクセスを制限し、データの漏洩を防ぐ。
例えば、コマンドアクセス制御部８１０は上記（１）〜（６）のコマンドを受け付けるが、上記（７）〜（８）のコマンドを受け付けずに拒否する。
【０２０１】
登録部２８１は、マスター鍵２９１ａ、機器固有ＩＤ２９１ｂおよび公開パラメータ２９３ａをＩＣチップメモリ８０１に登録する。
【０２０２】
ＩＤベース暗号署名検証部２８２は、ＩＣチップメモリ８０１に記憶された公開パラメータ２９３ａを用いて、ＩＤベース暗号署名２９４ｂを検証する。
【０２０３】
ＲＳＡ暗復号部２８３は、ＩＣチップメモリ８０１に記憶されたＲＳＡ鍵ペア２９２を用いて、データを暗号化および復号する。
【０２０４】
ＳＳＬ署名生成部２８４は、ＩＣチップメモリ８０１に記憶されたＲＳＡ秘密鍵２９２ａを用いて、ＳＳＬ署名２９５ｃを生成する。
【０２０５】
図３０は、実施の形態６における通信機器２００の製造時処理を示すフローチャートである。
実施の形態６における通信機器２００の製造時処理について、図３０に基づいて以下に説明する。
【０２０６】
＜Ｓ１０１＞
製造者は、登録するマスター鍵２９１ａ、機器固有ＩＤ２９１ｂおよび公開パラメータ２９３ａを通信機器２００に入力する。
コマンドアクセス部２８０は、入力されたマスター鍵２９１ａ、機器固有ＩＤ２９１ｂおよび公開パラメータ２９３ａを設定した登録コマンドを生成し、生成した登録コマンドをＩＣチップ８００に入力する。登録コマンドはＩＣチップ８００のコマンドアクセス制御部８１０により受け付けを許可されるコマンドである。
ＩＣチップ８００のコマンドアクセス制御部８１０は、入力された登録コマンドを判定し、登録コマンドを受け付ける。
登録部２８１は、登録コマンドに設定されているマスター鍵２９１ａ、機器固有ＩＤ２９１ｂおよび公開パラメータ２９３ａをＩＣチップメモリ８０１に記憶する。
Ｓ１０１の後、処理はＳ１０２に進む。
【０２０７】
＜Ｓ１０２＞
コマンドアクセス部２８０は、ＩＤＢＥ秘密鍵生成コマンドを生成し、生成したＩＤＢＥ秘密鍵生成コマンドをＩＣチップ８００に入力する。ＩＤＢＥ秘密鍵生成コマンドはＩＣチップ８００のコマンドアクセス制御部８１０により受け付けを許可されるコマンドである。
Ｓ１０２の後、処理はＳ１１０に進む。
【０２０８】
＜Ｓ１１０＞
ＩＣチップ８００のコマンドアクセス制御部８１０は、入力されたＩＤＢＥ秘密鍵生成コマンドを判定し、ＩＤＢＥ秘密鍵生成コマンドを受け付ける。
ＩＤベース暗号秘密鍵生成部２１０は、実施の形態１（図５参照）と同じく、マスター鍵２９１ａ、機器固有ＩＤ２９１ｂおよび公開パラメータ２９３ａに基づいてＩＤベース暗号秘密鍵２９３ｂを生成する。マスター鍵２９１ａ、機器固有ＩＤ２９１ｂおよび公開パラメータ２９３ａはＩＣチップメモリ８０１に記憶されている。
ＩＤベース暗号秘密鍵生成部２１０は、生成したＩＤベース暗号秘密鍵２９３ｂをＩＣチップメモリ８０１に記憶する。
Ｓ１１０の後、処理はＳ１２０に進む。
【０２０９】
＜Ｓ１２０＞
ＩＤベース暗号秘密鍵生成部２１０は、実施の形態１と同じく、マスター鍵２９１ａを削除する。マスター鍵２９１ａはＩＣチップメモリ８０１から削除される。
Ｓ１２０により、製造時処理は終了する。
【０２１０】
図３１は、実施の形態６における通信機器２００のシステム構築時処理を示すフローチャートである。
実施の形態６における通信機器２００のシステム構築時処理について、図３１に基づいて以下に説明する。
【０２１１】
＜Ｓ２１０＞
システム情報設定部２２０は、実施の形態１（図７参照）と同じく、管理者が入力したホスト名２９１ｃを機器記憶部２９０に記憶する。
Ｓ２１０の後、処理はＳ２９０に進む。
【０２１２】
＜Ｓ２９０＞
コマンドアクセス部２８０は、ホスト名２９１ｃやその他のデータを自己署名証明書情報に含めるデータとして設定した証明書生成コマンドを生成し、生成した証明書コマンドをＩＣチップ８００に入力する。証明書生成コマンドはＩＣチップ８００のコマンドアクセス制御部８１０により受け付けを許可されるコマンドである。
Ｓ２９０の後、処理はＳ２２０に進む。
【０２１３】
＜Ｓ２２０＞
ＩＣチップ８００のコマンドアクセス制御部８１０は、入力された証明書生成コマンドを判定し、証明書生成コマンドを受け付ける。
ＲＳＡ鍵ペア生成部２２１は、実施の形態１（図７参照）と同じく、ＲＳＡ鍵ペア２９２（ＲＳＡ秘密鍵２９２ａ、ＲＳＡ公開鍵２９２ｂ）を生成する。
ＲＳＡ鍵ペア生成部２２１は、生成したＲＳＡ鍵ペア２９２をＩＣチップメモリ８０１に記憶する。
Ｓ２２０の後、処理はＳ２３０に進む。
【０２１４】
＜Ｓ２３０＞
ＩＤベース暗号署名生成部２３０は、実施の形態１と同じく、ＩＤベース暗号秘密鍵２９３ｂを用いてＲＳＡ公開鍵２９２ｂのＩＤベース暗号署名２９４ｂを生成する。ＩＤベース暗号秘密鍵２９３ｂおよびＲＳＡ公開鍵２９２ｂはＩＣチップメモリ８０１に記憶されている。
ＩＤベース暗号署名生成部２３０は、生成したＲＳＡ公開鍵２９２ｂのＩＤベース暗号署名２９４ｂをＩＣチップメモリ８０１に記憶する。
Ｓ２３０の後、処理はＳ２４０に進む。
【０２１５】
＜Ｓ２４０＞
自己署名生成部２２２は、実施の形態１と同じく、ＲＳＡ秘密鍵２９２ａを用いて自己署名証明書情報のＲＳＡ自己署名２９４ａを生成する。自己署名証明書情報のうちホスト名２９１ｃを含む一部のデータは証明書生成コマンドに設定されている。また、ＲＳＡ秘密鍵２９２ａはＩＣチップメモリ８０１に記憶されている。
自己署名生成部２２２は、生成したＲＳＡ自己署名２９４ａをＩＣチップメモリ８０１に記憶する。
Ｓ２４０の後、処理はＳ２５０に進む。
【０２１６】
＜Ｓ２５０＞
自己署名証明書生成部２２３は、実施の形態１と同じく、自己署名証明書情報とＲＳＡ自己署名２９４ａとを結合して自己署名証明書２９４を生成する。
コマンドアクセス制御部８１０は生成された自己署名証明書２９４をコマンドアクセス部２８０に出力し、コマンドアクセス部２８０は出力された自己署名証明書２９４を機器記憶部２９０に記憶する。
Ｓ２５０により、システム構築時処理は終了する。
【０２１７】
図３２は、実施の形態６における通信機器２００の運用時処理を示すフローチャートである。
実施の形態６における通信機器２００の運用時処理について、図３２に基づいて以下に説明する。
【０２１８】
＜Ｓ３１０〜Ｓ３２０＞
通信機器Ａ２０１と通信機器Ｂ２０２とは、実施の形態１（図１０参照）と同じく、ＳＳＬセッション情報を交換し（Ｓ３１０）、自己署名証明書２９４を互いに通信し合う（Ｓ３２０）。
Ｓ３２０の後、処理はＳ３３０に進む。
【０２１９】
＜Ｓ３３０＞
通信機器Ｂ２０２の自己署名証明書検証部２４１は、実施の形態１と同じく、通信機器Ａ２０１の自己署名証明書２９４を検証する。
Ｓ３３０の後、処理はＳ３３１に進む。但し、実施の形態１と同じく、自己署名証明書２９４が無効であった場合、運用時処理は終了する。
【０２２０】
＜Ｓ３３１＞
通信機器Ｂ２０２の自己署名証明書検証部２４１は、コマンドアクセス部２８０にＩＤＢＥ署名検証コマンドを要求する。
コマンドアクセス部２８０は、通信機器Ａ２０１の自己署名証明書２９４を設定したＩＤＢＥ署名検証コマンドを生成し、生成したＩＤＢＥ署名検証コマンドをＩＣチップ８００に入力する。ＩＤＢＥ署名検証コマンドはＩＣチップ８００のコマンドアクセス制御部８１０により受け付けを許可されるコマンドである。
ＩＣチップ８００のコマンドアクセス制御部８１０は、入力されたＩＤＢＥ署名検証コマンドを判定し、ＩＤＢＥ署名検証コマンドを受け付ける。
ＩＤベース暗号署名検証部２８２は、実施の形態１における自己署名証明書検証部２４１と同じく、自己署名証明書２９４のＩＤベース暗号署名２９４ｂを検証する。自己署名証明書２９４はＩＤＢＥ署名検証コマンドに設定されている。検証に用いる公開パラメータ２９３ａはＩＣチップメモリ８０１に記憶されている。
コマンドアクセス制御部８１０は検証結果をコマンドアクセス部２８０に出力し、コマンドアクセス部２８０は出力された検証結果を自己署名証明書検証部２４１に出力する。
Ｓ３３１の後、処理はＳ３４０に進む。但し、実施の形態１と同じく、ＩＤベース暗号署名２９４ｂが無効であった場合、運用時処理は終了する。
【０２２１】
＜Ｓ３４０＞
通信機器Ｂ２０２のＳＳＬ通信部２４０は、実施の形態１と同じく、プリマスターシークレット２９５ａを生成し、生成したプリマスターシークレット２９５ａを暗号化し、暗号化したプリマスターシークレット２９５ａを通信機器Ａ２０１へ送信する。
Ｓ３４０の後、処理はＳ３４１に進む。
【０２２２】
＜Ｓ３４１＞
通信機器Ａ２０１のＳＳＬ通信部２４０は暗号化されたプリマスターシークレット２９５ａを受信する。
通信機器Ａ２０１のＳＳＬ通信部２４０はプリマスターシークレット２９５ａを復号するＲＳＡ復号コマンドをコマンドアクセス部２８０に要求する。
コマンドアクセス部２８０は、暗号化されたプリマスターシークレット２９５ａを設定したＲＳＡ復号コマンドを生成し、生成したＲＳＡ復号コマンドをＩＣチップ８００に入力する。ＲＳＡ復号コマンドはＩＣチップ８００のコマンドアクセス制御部８１０により受け付けを許可されるコマンドである。
ＩＣチップ８００のコマンドアクセス制御部８１０は、入力されたＲＳＡ復号コマンドを判定し、ＲＳＡ復号コマンドを受け付ける。
ＲＳＡ暗復号部２８３は、実施の形態１におけるＳＳＬ通信部２４０と同じく、プリマスターシークレット２９５ａをＲＳＡ秘密鍵２９２ａを用いて復号する。ＲＳＡ秘密鍵２９２ａはＩＣチップメモリ８０１に記憶されている。
コマンドアクセス制御部８１０は復号されたプリマスターシークレット２９５ａをコマンドアクセス部２８０に出力し、コマンドアクセス部２８０は出力されたプリマスターシークレット２９５ａを機器記憶部２９０に記憶する。
Ｓ３４１の後、処理はＳ３５０に進む。
【０２２３】
＜Ｓ３５０＞
通信機器Ｂ２０２のＳＳＬ通信部２４０は、コマンドアクセス部２８０にＳＳＬ署名コマンドを要求する。
コマンドアクセス部２８０は、ハンドシェークメッセージ（通信機器Ａ２０１と通信機器Ｂ２０２との間で通信された情報）を設定したＳＳＬ署名コマンドを生成し、生成したＳＳＬ署名コマンドをＩＣチップメモリ８０１に入力する。ＳＳＬ署名コマンドはＩＣチップ８００のコマンドアクセス制御部８１０により受け付けを許可されるコマンドである。
ＩＣチップ８００のコマンドアクセス制御部８１０は、入力されたＳＳＬ署名コマンドを判定し、ＳＳＬ署名コマンドを受け付ける。
ＳＳＬ署名生成部２８４は、実施の形態１におけるＳＳＬ通信部２４０と同じく、ＲＳＡ秘密鍵２９２ａを用いてハンドシェークメッセージの署名をＳＳＬ署名２９５ｃとして生成する。ＲＳＡ秘密鍵２９２ａはＩＣチップメモリ８０１に記憶されている。
コマンドアクセス制御部８１０はＳＳＬ署名２９５ｃをコマンドアクセス部２８０に出力し、コマンドアクセス部２８０はＳＳＬ署名２９５ｃをＳＳＬ通信部２４０に出力し、ＳＳＬ通信部２４０はＳＳＬ署名２９５ｃを通信機器Ａ２０１へ送信する。
通信機器Ａ２０１のＳＳＬ通信部２４０は通信機器Ｂ２０２のＳＳＬ署名２９５ｃを受信し、受信したＳＳＬ署名２９５ｃを機器記憶部２９０に記憶する。
Ｓ３５０の後、処理はＳ３６０に進む。
【０２２４】
＜Ｓ３６０＞
通信機器Ａ２０１は、Ｓ３３０における通信機器Ｂ２０２と同様にして、通信機器Ｂ２０２の自己署名証明書２９４を検証する。
Ｓ３６０の後、処理はＳ３６１に進む。但し、Ｓ３３０と同じく、自己署名証明書２９４が無効であった場合、運用時処理は終了する。
【０２２５】
＜Ｓ３６１＞
通信機器Ａ２０１は、Ｓ３３１における通信機器Ｂ２０２と同様にして、通信機器Ｂ２０２の自己署名証明書２９４に設定されているＩＤベース暗号署名２９４ｂを検証する。
Ｓ３６１の後、処理はＳ３７０に進む。但し、Ｓ３３１と同じく、ＩＤベース暗号署名２９４ｂが無効であった場合、運用時処理は終了する。
【０２２６】
＜Ｓ３７０＞
通信機器Ａ２０１のＳＳＬ通信部２４０は、実施の形態１と同じく、通信機器Ｂ２０２のＳＳＬ署名２９５ｃを検証する。
Ｓ３７０の後、処理はＳ３８０に進む。但し、実施の形態１と同じく、ＳＳＬ署名２９５ｃが無効であった場合、運用時処理は終了する。
【０２２７】
＜Ｓ３８０〜Ｓ３８１＞
Ｓ３８０〜Ｓ３８１は実施の形態１と同様に行われる。
通信機器Ａ２０１のＳＳＬ通信部２４０と通信機器Ｂ２０２のＳＳＬ通信部２４０とは、セッション鍵２９５ｂを生成し（Ｓ３８０）、生成したセッション鍵２９５ｂを用いて通信データ２９５ｄを暗号通信する（Ｓ３８１）。
Ｓ３８１により、運用時処理は終了する。
【０２２８】
実施の形態６において、例えば、以下のような機器認証システム１００について説明した。
【０２２９】
機器認証システム１００は、以下のような課題を解決する。
（１）ＩＤベース暗号秘密鍵２９３ｂが外部に漏洩すると、漏洩したＩＤベース暗号秘密鍵２９３ｂからＩＤベース暗号署名２９４ｂが生成され、第三者が他人に成りすまして通信を行う恐れがある。
（２）第三者がＩＤベース暗号署名生成部２３０を不正使用し、自己のＲＳＡ公開鍵を用いたＩＤベース暗号署名２９４ｂを生成し、他人に成りすまして通信を行う恐れがある。
（３）ＲＳＡ秘密鍵２９２ａが外部に漏洩すると、プリマスターシークレットが復号され、第三者が他人に成りすまして通信を行う恐れがある。
【０２３０】
通信機器２００は、証明書生成機能を有するＩＣチップ８００を備えるため、証明書発行サーバとの通信機能を備える必要がない。つまり、証明書発行サーバとの間で安全性の高い通信を実現する必要がないため、その分のコストを削減することができる。
通信機器２００は、ＩＤベース暗号秘密鍵２９３ｂの漏洩、ＩＤベース暗号署名生成部２３０の不正使用およびＲＳＡ秘密鍵２９２ａの漏洩の対策を施し、他の通信機器により成りすまされることを防止する。
【０２３１】
自己署名証明書２９４の検証が成功した場合、自己署名証明書２９４に含まれるＩＤベース暗号署名２９４ｂが自己署名証明書２９４に含まれる機器固有ＩＤ２９１ｂで識別される通信機器２００により生成されたことが以下の理由により保証される。
（１）ＩＣチップ８００に格納されたＩＤベース暗号秘密鍵２９３ｂは証明書生成コマンドの実行時にのみアクセスされる。そして、ＩＤベース暗号秘密鍵２９３ｂにアクセスを試みるその他のコマンドはコマンドアクセス制御部８１０によって拒否される。したがって、ＩＤベース暗号署名２９４ｂが偽造されることは防止される。
（２）自己署名証明書２９４に含まれるＲＳＡ公開鍵２９２ｂに対応するＲＳＡ秘密鍵２９２ａは、証明書生成コマンド、ＲＳＡ復号コマンドおよびＳＳＬ署名コマンドの実行時にのみアクセスされる。そして、ＲＳＡ秘密鍵２９２ａにアクセスを試みるその他のコマンドはコマンドアクセス制御部８１０によって拒否される。したがって、ＲＳＡ秘密鍵２９２ａが外部に漏洩することは防止される。つまり、自己署名証明書２９４が偽造されることはなく、自己署名証明書２９４はＩＤベース暗号署名２９４ｂの生成に使用された機器固有ＩＤ２９１ｂで識別される通信機器２００により生成されたことが保証される。
【０２３２】
ＩＣチップ８００（ＩＣチップメモリ８０１）は、内部のデータへのアクセスを制限する構成の一例である。ＩＣチップ８００以外の構成によってＲＳＡ秘密鍵２９２ａやＩＤベース暗号秘密鍵２９３ｂなどへのアクセスを制限しても構わない。
【０２３３】
通信機器２００は、実施の形態２と同様に、製造時処理において自己署名証明書２９４を生成してもよい。
通信機器２００は、実施の形態３と同様に、自己署名証明書２９４を更新してもよい。
通信機器２００は、実施の形態４と同様に、ＩＤベース暗号秘密鍵２９３ｂの代わりに機器個別ＲＳＡ鍵ペア２９３ｃを用い、ＩＤベース暗号署名２９４ｂの代わりに機器個別ＲＳＡ署名２９４ｃを自己署名証明書２９４に設定してもよい。
また、通信機器２００は、実施の形態５と同様に、ＩＤベース暗号秘密鍵２９３ｂの代わりに機器個別共通鍵２９３ｄを用い、ＩＤベース暗号署名２９４ｂの代わりに機器個別共通鍵ＭＡＣ２９４ｄを自己署名証明書２９４に設定してもよい。
【符号の説明】
【０２３４】
１００  機器認証システム、１１０  通信ネットワーク、１２０  ＵＳＢトークン、２００  通信機器、２０１  通信機器Ａ、２０２  通信機器Ｂ、２０３  通信端末、２１０  ＩＤベース暗号秘密鍵生成部、２１１  機器個別ＲＳＡ鍵ペア生成部、２１２  機器個別署名生成部、２１３  機器個別証明書生成部、２１４  機器個別共通鍵生成部、２２０  システム情報設定部、２２１  ＲＳＡ鍵ペア生成部、２２２  自己署名生成部、２２３  自己署名証明書生成部、２２４  証明書更新契機検出部、２３０  ＩＤベース暗号署名生成部、２３１  機器個別ＲＳＡ署名生成部、２３２  機器個別共通鍵ＭＡＣ生成部、２４０  ＳＳＬ通信部、２４１  自己署名証明書検証部、２４２  暗号認証通信部、２８０  コマンドアクセス部、２８１  登録部、２８２  ＩＤベース暗号署名検証部、２８３  ＲＳＡ暗復号部、２８４  ＳＳＬ署名生成部、２９０  機器記憶部、２９１ａ  マスター鍵、２９１ｂ  機器固有ＩＤ、２９１ｃ  ホスト名、２９１ｄ  マスターＲＳＡ鍵ペア、２９１ｄ１  マスターＲＳＡ秘密鍵、２９１ｄ２  マスターＲＳＡ公開鍵、２９１ｅ  マスター共通鍵、２９２  ＲＳＡ鍵ペア、２９２ａ  ＲＳＡ秘密鍵、２９２ｂ  ＲＳＡ公開鍵、２９３ａ  公開パラメータ、２９３ｂ  ＩＤベース暗号秘密鍵、２９３ｃ  機器個別ＲＳＡ鍵ペア、２９３ｃ１  機器個別ＲＳＡ秘密鍵、２９３ｃ２  機器個別ＲＳＡ公開鍵、２９３ｄ  機器個別共通鍵、２９４  自己署名証明書、２９４ａ  ＲＳＡ自己署名、２９４ｂ  ＩＤベース暗号署名、２９４ｃ  機器個別ＲＳＡ署名、２９４ｄ  機器個別共通鍵ＭＡＣ、２９５ａ  プリマスターシークレット、２９５ｂ  セッション鍵、２９５ｃ  ＳＳＬ署名、２９５ｄ  通信データ、２９６  機器個別証明書、２９６ａ  機器個別署名、８００  ＩＣチップ、８０１  ＩＣチップメモリ、８１０  コマンドアクセス制御部、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２３  プログラム群、９２４  ファイル群。
【図１】
2010067812.tif 000003
【図２】
2010067812.tif 000004
【図３】
2010067812.tif 000005
【図４】
2010067812.tif 000006
【図５】
2010067812.tif 000007
【図６】
2010067812.tif 000008
【図７】
2010067812.tif 000009
【図８】
2010067812.tif 000010
【図９】
2010067812.tif 000011
【図１０】
2010067812.tif 000012
【図１１】
2010067812.tif 000013
【図１２】
2010067812.tif 000014
【図１３】
2010067812.tif 000015
【図１４】
2010067812.tif 000016
【図１５】
2010067812.tif 000017
【図１６】
2010067812.tif 000018
【図１７】
2010067812.tif 000019
【図１８】
2010067812.tif 000020
【図１９】
2010067812.tif 000021
【図２０】
2010067812.tif 000022
【図２１】
2010067812.tif 000023
【図２２】
2010067812.tif 000024
【図２３】
2010067812.tif 000025
【図２４】
2010067812.tif 000026
【図２５】
2010067812.tif 000027
【図２６】
2010067812.tif 000028
【図２７】
2010067812.tif 000029
【図２８】
2010067812.tif 000030
【図２９】
2010067812.tif 000031
【図３０】
2010067812.tif 000032
【図３１】
2010067812.tif 000033
【図３２】
2010067812.tif 000034
【国際調査報告】
2010067812.tif 000035
2010067812.tif 000036
2010067812.tif 000037
2010067812.tif 000038