(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024124153
(43)【公開日】2024-09-12
(54)【発明の名称】鍵管理装置および暗号鍵管理システム
(51)【国際特許分類】
G09C 1/00 20060101AFI20240905BHJP
H04L 9/32 20060101ALI20240905BHJP
G06F 21/31 20130101ALI20240905BHJP
G06F 21/51 20130101ALI20240905BHJP
【FI】
G09C1/00 630D
H04L9/32 200B
G06F21/31
G06F21/51
G09C1/00 630F
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023032131
(22)【出願日】2023-03-02
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】渡辺 睦
(57)【要約】
【課題】 データの安全性を高めることができる鍵管理装置および暗号鍵管理システムを提供する。
【解決手段】 実施形態によれば、鍵管理装置は、通信部とプロセッサとを有する。通信部は、製品管理装置と通信する。プロセッサは、製品管理装置から製品へ配布する配布データに対する電子署名が依頼された場合に、製品に書き込まれている鍵情報を用いて正当性が検証される署名データを配布データに分散して格納した署名付き配布データを製品管理装置へ送信する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
製品管理装置と通信する通信部と、
前記製品管理装置から製品へ配布する配布データに対する電子署名が依頼された場合に、前記製品に書き込まれている鍵情報を用いて正当性が検証される署名データを前記配布データに分散して格納した署名付き配布データを前記製品管理装置へ送信するプロセッサと、
を有する鍵管理装置。
【請求項2】
さらに、前記製品に書き込む鍵情報を生成し、生成した鍵情報をセキュアに保存するHSMと接続するインターフェースを有し、
前記プロセッサは、前記HSMが前記製品に書き込まれている鍵情報を用いて正当性が検証される署名データを生成し、前記HSMが生成した前記署名データを前記配布データに分散して格納した署名付き配布データを前記製品管理装置へ送信する、
請求項1に記載の鍵管理装置。
【請求項3】
前記プロセッサは、
前記製品管理装置から前記製品に書き込む鍵情報の生成が依頼された場合に、前記鍵情報として公開鍵および秘密鍵の鍵ペアを前記HSMに生成させ、前記HSMが生成した公開鍵を含む鍵情報を前記製品管理装置へ送信し、
前記製品管理装置から前記製品へ配布する配布データに対する電子署名が依頼された場合に、前記製品に鍵情報として書き込まれている公開鍵に対応する秘密鍵を用いて前記HSMが作成した署名データを前記配布データに分散して格納した署名付き配布データを前記製品管理装置へ送信する、
請求項2に記載の鍵管理装置。
【請求項4】
前記プロセッサは、
前記製品管理装置から前記製品に書き込む鍵情報の生成が依頼された場合に、前記HSMに共通鍵をさらに生成させ、前記HSMが生成した公開鍵と共通鍵とを含む鍵情報を前記製品管理装置へ送信し、
前記製品管理装置から前記製品へ配布する配布データに対する電子署名が依頼された場合に、前記配布データにおいて署名データを分散して格納する格納位置を選出し、前記HSMが作成した前記署名データを前記格納位置に格納した署名付き配布データと前記格納位置を示す情報を前記共通鍵で暗号化したデータとを前記製品管理装置へ送信する、
請求項3に記載の鍵管理装置。
【請求項5】
前記プロセッサは、
前記製品管理装置から前記製品へ配布する配布データに対する電子署名が依頼された場合に、前記HSMが生成する乱数に基づいて前記配布データにおける署名データの格納位置を選出し、前記HSMが作成した前記署名データを前記乱数に基づいて選出する格納位置に格納した署名付き配布データと前記乱数を前記共通鍵で暗号化したデータとを前記製品管理装置へ送信する、
請求項4に記載の鍵管理装置。
【請求項6】
前記プロセッサは、
前記配布データが画像データである場合、当該画像データにおける画素値が所定範囲内である領域から前記署名データの前記格納位置を選出する、
請求項4に記載の鍵管理装置。
【請求項7】
前記プロセッサは、
前記製品管理装置からの認証情報に基づくユーザ認証を実行し、前記ユーザ認証が成功したユーザの権限に応じて前記製品管理装置からの依頼を受け付ける、
請求項1乃至6のいずれか1項に記載の鍵管理装置。
【請求項8】
前記プロセッサは、前記製品管理装置からの依頼に応じて実行した処理内容を示す通知をユーザ認証が成功したユーザの通知先に送信する、
請求項7に記載の鍵管理装置。
【請求項9】
前記プロセッサは、前記製品管理装置からの前記電子署名の依頼に応じて実行した処理内容を示すログデータと共に前記署名データを記憶装置に保存する、
請求項1乃至6の何れか1項に記載の鍵管理装置。
【請求項10】
鍵管理装置と製品管理装置とを有する暗号鍵管理システムにおいて、
前記鍵管理装置は、
前記製品管理装置と通信する第1の通信部と、
前記製品管理装置から製品へ配布する配布データに対する電子署名が依頼された場合に、前記製品に書き込まれている鍵情報を用いて正当性が検証される署名データを前記配布データに分散して格納した署名付き配布データを前記製品管理装置へ送信する第1のプロセッサと、を有し、
前記製品管理装置は、
前記鍵管理装置と通信する第2の通信部と、
前記製品に配布する配布データに対する電子署名を前記鍵管理装置に依頼し、前記鍵管理装置から前記製品に配布する署名付き配布データを取得する第2のプロセッサと、を有する、
暗号鍵管理システム。
【請求項11】
前記鍵管理装置は、さらに、前記製品に書き込む暗号鍵を含む鍵情報を生成し、生成した鍵情報をセキュアに保存するHSMと接続するインターフェースを有し、
前記鍵管理装置の前記第1のプロセッサは、
前記製品管理装置から前記製品に書き込む暗号鍵が依頼された場合に、前記鍵情報として公開鍵および秘密鍵の鍵ペアを前記HSMに生成させ、前記HSMが生成した公開鍵を含む鍵情報を前記製品管理装置へ送信し、
前記製品管理装置から前記製品に配布する配布データに対する電子署名が依頼された場合に、前記製品に鍵情報として書き込まれている公開鍵に対応する秘密鍵を用いて前記HSMが作成した署名データを前記配布データに分散して格納した署名付き配布データを前記製品管理装置へ送信する、
請求項10に記載の暗号鍵管理システム。
【請求項12】
前記鍵管理装置は、さらに、前記製品に書き込む暗号鍵を含む鍵情報を生成し、生成した鍵情報をセキュアに保存するHSMと接続するインターフェースを有し、
前記鍵管理装置の前記第1のプロセッサは、
前記製品管理装置から前記製品に書き込む暗号鍵が依頼された場合に、前記HSMに共通鍵をさらに生成させ、前記HSMが生成した公開鍵と共通鍵とを含む鍵情報を前記製品管理装置へ送信し、
前記製品管理装置から前記製品に配布する配布データに対する電子署名が依頼された場合に、前記署名付き配布データと前記署名データの格納位置を示す情報を前記共通鍵で暗号化したデータとを前記製品管理装置へ送信し、
前記製品管理装置の前記第2のプロセッサは、
前記鍵管理装置から前記署名付き配布データと前記共通鍵で暗号化された署名データの格納位置を示す情報とを取得する、
請求項11に記載の暗号鍵管理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、鍵管理装置および暗号鍵管理システムに関する。
【背景技術】
【0002】
近年、データの更新および追記が可能なメモリを含むLSIなどの電子機器を備える製品が多くなってきている。このような製品には、製造者(メーカ)から出荷された後にメモリに記憶したデータを更新したりメモリに新たなデータを追記したりする機能を有するものがある。出荷後にデータを更新又は追記する機能を備える製品は、更新又は追記の対象となる対象データを外部装置からダウンロードし、ダウンロードしたデータをメモリに書き込む。エンドユーザが保持している製品には、対象データがオンラインで配信されることとなる。
【0003】
しかしながら、エンドユーザが保持している出荷後の製品は、安全な通信経路が確保できなかったり、偽の外部装置(偽のWEBサイトなど)から偽のデータをダウンロードしてしまったりする可能性がある。例えば、製品は、攻撃者によって改ざんされた不正なプログラムをダウンロードしてしまうと、不正なプログラムがインストールされ、正常な動作が行えなくなる。不正なプログラムがインストールされてしまった製品は、情報が漏えいしてしまったり機器が乗っ取られたりするなどの被害にあう可能性がある。このため、出荷後の製品は、更新又は追記の対象データが正当な事業者(メーカ又は対象データの提供者)自身から提供されたデータがあることを確認した上でデータ更新又は追記を実行するようにすることが要望される。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記の課題を解決するために、本発明は、データの安全性を高めることができる鍵管理装置および暗号鍵管理システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
実施形態によれば、鍵管理装置は、通信部とプロセッサとを有する。通信部は、製品管理装置と通信する。プロセッサは、製品管理装置から製品へ配布する配布データに対する電子署名が依頼された場合に、製品に書き込まれている鍵情報を用いて正当性が検証される署名データを配布データに分散して格納した署名付き配布データを製品管理装置へ送信する。
【図面の簡単な説明】
【0007】
【
図1】
図1は、実施形態に係る暗号鍵管理システムの構成例を概略的に示す図である。
【
図2】
図2は、実施形態に係る暗号鍵管理システムにおける製品管理サーバの構成例を示すブロック図である。
【
図3】
図3は、実施形態に係る暗号鍵管理システムにおける署名システムの署名サーバの構成例を示すブロック図である。
【
図4】
図4は、実施形態に係る暗号鍵管理システムにおける製品管理サーバが管理する製品の構成例を示すブロック図である。
【
図5】
図5は、実施形態に係る暗号鍵管理システムにおいて署名サーバが鍵情報を製品管理サーバへ提供する処理の例を説明するためのシーケンスである。
【
図6】
図6は、実施形態に係る暗号鍵管理システムにおいて署名サーバが配布データに署名データを分散して格納する処理の例を説明するためのシーケンスである。
【
図7】
図7は、実施形態に係る暗号鍵管理システムにおいて署名サーバが配布データに署名データを分散して格納する処理の例を説明するためのシーケンスである。
【発明を実施するための形態】
【0008】
以下、実施形態について、図面を参照しつつ説明する。
まず、実施形態に係る暗号鍵管理システム1の構成について説明する。
図1は、実施形態に係る暗号鍵管理システム1の構成例を示す図である。
図1に示す構成例において、暗号鍵管理システム1は、製品管理システム2および署名システム3を有する。
【0009】
製品管理システム2は、製品8を管理するためのシステムである。製品管理システム2が管理する製品8は、LSIなどのデータの書き込みが可能なメモリを備える電子機器を搭載するデバイスであるものとする。製品管理システム2は、製品8に搭載される電子機器のメモリに書き込むデータを管理する。
【0010】
本実施形態において、製品管理システム2は、エンドユーザ向けに出荷する前の製品8Aに書き込むデータを管理する機能と出荷後の製品8Bに対して配布するデータ(配布データ)を管理する機能とを有するものとする。例えば、配布データは、出荷後の製品8Bに対して書き込むべきプログラムや制御データなどの更新用データであっても良いし、製品8Bが備える表示装置又は製品8Bに接続する表示装置に表示させる表示データ(画像データ、文書データなど)を含むデータであっても良い。
【0011】
ただし、出荷前の製品8Aに書き込むデータを管理する事業者(ユーザ)と出荷後の製品8Bに対して配布する配布データを管理する事業者(ユーザ)とは、同一の事業者であっても良いし、異なる事業者であっても良い。後者の場合、製品管理システム2は、異なる事業者ごとにあっても良い。本実施形態において、製品管理システム2は、出荷前の製品8Aに書き込むデータおよび出荷後の製品8Bに対して配布する配布データを管理するものとする。
【0012】
図1に示す構成例において、製品管理システム2は、製品管理サーバ(製品管理装置)4とデータストレージ5とを備える。製品管理サーバ4は、製品8(8A、8B)に書き込むデータを管理するコンピュータである。データストレージ5は、製品管理サーバ4が管理するデータを記憶する。
【0013】
製品管理サーバ4は、出荷前の製品8Aに書き込むデータを供給する機能と出荷後の製品Bに対して配布データを配布する機能とを有する。製品管理サーバ4は、1つのサーバ装置で構成しても良いし、複数のサーバ装置で構成しても良い。例えば、出荷前の製品8Aにデータを供給する事業者と出荷後の製品8Bに対して更新データを配布する事業者とが異なる事業者である場合、出荷前の製品8Aにデータを供給する製品管理サーバ4と出荷後の製品8Bに対して対象データを配布する製品管理サーバ4とは異なる装置(ハードウエア)であっても良い。
【0014】
製品管理システム2において、製品管理サーバ4は、エンドユーザ向けに出荷する前(例えば、製造工程)の製品8Aに書き込むデータを管理し、出荷前の製品8Aにデータを書き込ませる。例えば、製品管理サーバ4は、製造工程において製品8Aに書き込むべきプログラム(ファームウエア又はドライバなど)、制御データおよび画像データなどのデータを製品8A(又は製品8Aにデータを書き込む装置)に供給する。出荷前の製品8Aは、製品管理サーバ4から供給されるデータを自身のメモリに書き込む。
【0015】
また、製品管理サーバ4は、出荷後の製品8Bに配布する配布データの正当性を確認するために、出荷前の製品8Aに書き込む鍵情報(暗号鍵)を署名システム3から取得する。例えば、製品管理サーバ4は、鍵情報として電子署名の検証に用いる公開鍵とデータの暗号化に用いる共通鍵とを署名システム3から取得する。製品管理サーバ4は、署名システム3から取得する鍵情報を出荷前の製品8Aに供給する。これにより、出荷前の製品8Aは、製品管理サーバ4から供給される鍵情報を自身のメモリに書き込む。
【0016】
また、製品管理システム2において、製品管理サーバ4は、出荷後の製品8Bに対して配布する配布データを管理する。配布データは、署名システム3で電子署名が付与される電子データであれば良く、特定のデータに限定されるものではない。例えば、配布データは、出荷後の製品8Bに書き込まれているプログラムや制御データなどを更新するための更新データであっても良いし、出荷後の製品8Bに新たに書き込む追記データなどであっても良い。具体的には、配布データは、プログラムのパッチデータなどのソフトウエアのデータであっても良いし、アイコン、写真、絵画、契約書類などの画像データであっても良い。
【0017】
製品管理サーバ4は、出荷後の各製品8Bに配布する配布データに対して署名システム3が鍵情報を用いて生成された電子署名を付与した署名付き配布データを取得する。また、製品管理サーバ4は、署名付き配布データに付与されている電子署名としての署名データを特定するデータを暗号化された状態で署名システム3から取得する。電子データを特定するためのデータは、署名付き配布データにおいて署名データが埋め込まれている格納位置を特定するデータである。例えば、電子署名の検証に用いるデータは、署名付き配布データにおいて署名データが配置されている位置を特定するためのデータ(例えば、乱数)である。電子署名の検証に用いるデータは、出荷後の製品8Bが復号できるように署名システム3が暗号化したデータ(検証用の暗号化データ)として製品管理サーバ4へ送信される。
【0018】
製品管理サーバ4は、配布データに署名システム3が鍵情報を用いて電子署名を付与した署名付き配布データと検証用の暗号化データとを出荷後の各製品8Bに配布する。例えば、製品管理サーバ4は、オンライン接続される出荷後の各製品8Bに対して配布データに電子署名を付与した署名付き配布データと検証用の暗号化データを配布するようにしても良い。
【0019】
なお、製品管理サーバ4は、出荷後の製品8Bを保持するユーザ(エンドユーザ)に対してデータの配布(更新又は配信)を通知し、エンドユーザからの要求に応じて署名付き配布データと検証用の暗号化データとを提供するようにしても良い。また、製品管理サーバ4は、配布データを提供するWEBサーバからエンドユーザの操作に応じて署名付き配布データと検証用の暗号化データとをダウンロードできるようにしても良い。
【0020】
出荷前の製品8Bは、製品管理サーバ4から署名付き配布データと検証用の暗号化データとを取得する。製品8Bは、自身に書き込まれている鍵情報を用いて署名付き配布データに付与されている電子署名の正当性を確認し、正当性を確認した配布データを自身のメモリに書き込む。
【0021】
例えば、署名付き配布データと検証用の暗号化データとを取得した場合、製品8Bは、自身に書き込まれている共通鍵を用いて検証用の暗号化データを復号し、復号した検証用のデータに基づいて署名付き配布データから署名データを抽出する。製品8Bは、署名付き配布データから抽出した署名データの正当性を自身に書き込まれている公開鍵を用いて確認し、署名データの正当性を確認した後に配布データを自身のメモリに書き込む。
【0022】
次に、署名システム3について説明する。
署名システム3は、署名サーバ(鍵管理装置)6およびHSM(ハードウエアセキュリティモジュール:Hardware Security Module)7を有する。署名サーバ6は、製品管理システム2によって管理する製品8に書き込む暗号鍵を含む鍵情報を管理する鍵管理装置である。署名サーバ6は、HSM7と協働することで実現する機能として、鍵生成機能、鍵取得機能、署名生成機能および乱数生成機能などを備える。
【0023】
HSM7は、セキュアに鍵情報の生成、保護および管理を行う耐タンパ性を備えるハードウエアデバイス(セキュリティデバイス)である。HSM7は、暗号鍵を含む鍵情報を生成し、生成した鍵情報をセキュアに保存する。また、HSM7は、保存した鍵情報を用いた暗号化プロセスを含む演算処理を実行する。例えば、HSM7は、保存した鍵情報を用いたデータの暗号化および復号、電子署名、および、電子証明書の作成などの演算処理を行う。
【0024】
鍵管理装置としての署名サーバ6は、製品管理装置としての製品管理サーバ4からの依頼に応じてHSM7によって生成する暗号鍵を製品管理サーバ4に提供する。例えば、署名サーバ6は、鍵生成機能として、製品管理サーバ4からの依頼に応じてHSM7に鍵情報を生成させる。例えば、署名サーバ6は、製品管理サーバ4からの依頼に応じてHSM7に公開鍵と秘密鍵との鍵ペアを生成させる。また、署名サーバ6は、製品管理サーバ4からの依頼に応じてHSM7に共通鍵を生成させる。
【0025】
署名サーバ6は、鍵取得機能として、製品管理サーバ4からの依頼に応じて製品8に書き込む暗号鍵を製品管理サーバ4へ提供する。例えば、署名サーバ6は、製品管理サーバ4からの依頼に応じてHSM7が生成した公開鍵を製品8に書き込む暗号鍵として製品管理サーバ4へ提供する。さらに、署名サーバ6は、製品管理サーバ4へ公開鍵自体を提供するのではなく、自己署名を付与した所定のフォーマット(例えばX.509などの規格で規定されるフォーマット)に準拠した公開鍵証明書を提供(配布)するようにしても良い。
【0026】
また、署名サーバ6は、共通鍵暗号系の鍵情報を管理する運用であれば、製品管理サーバ4からの依頼に応じてHSM7に共通鍵を含む鍵情報を生成させ、生成した共通鍵を製品8に書き込む暗号鍵として製品管理サーバ4へ提供するようにしても良い。さらに、署名サーバ6は、共有暗号鍵によって公開鍵を暗号化して製品管理サーバ4へ提供するようにしても良い。また、署名サーバ6は、共通鍵によって公開鍵証明書を暗号化して製品管理サーバ4へ提供するようにしても良い。
【0027】
署名サーバ6は、署名生成機能として、HSM7によって製品管理サーバ4からの配布データに電子署名としての署名データを付与する。例えば、署名サーバ6は、HSM7が生成した鍵情報に含まれる公開鍵を書き込んだ製品8Bへ配布する配布データに対する電子署名の依頼を製品管理サーバ4から受け付ける。
【0028】
署名サーバ6は、HSM7が製品8Bに書き込んだ公開鍵に対する秘密鍵を用いて生成した署名データを製品管理サーバ4から電子署名が依頼された配布データに分散して格納する。すなわち、署名サーバ6は、配布データにおいて署名データを分散して格納する位置(署名データの格納位置)を決定し、決定した位置に署名データを配布データに埋め込むことにより署名付き配布データを生成する。
【0029】
例えば、署名サーバ6は、乱数を用いて、署名データを配布データに分散して格納する位置を決定(特定、設定)する。署名データの格納位置を特定するための情報としての乱数は、HSM7が生成するようにして良いし、署名サーバ6が生成するようにしても良い。
また、署名サーバ6は、配布データを構成するデータの特徴に応じて署名データの格納位置を決定するようにしても良い。具体例として、配布データが画像データである場合、署名サーバ6は、配布データとしての画像データにおいて署名データを埋め込んでも目立たない画像領域を捜査し、捜査した画像領域に署名データを埋め込むようにしても良い。
【0030】
以下に説明する実施形態では、主として、署名サーバ6は、HSM7が生成する乱数を用いて、署名データを配布データに分散して格納する位置を設定することにより、署名付き配布データを作成することを想定して説明するものとする。この場合、署名サーバ6は、製品8Bに配布する配布データに対する署名データの生成と乱数の生成とをHSM7に依頼し、HSM7から署名データと乱数とを取得するものとする。
【0031】
また、署名サーバ6は、署名データを分散して格納した位置を特定するための情報として乱数を配布データの配布先である製品8Bの共通鍵によって暗号化する。乱数の暗号化は、署名サーバ6がHSM7に依頼し、HSM7が実行するようにしても良い。また、署名データの格納位置を乱数以外の情報に基づいて決定する場合も、署名サーバ6は、署名データの格納位置を特定するための情報を製品8Bの共通鍵を用いて暗号化するようにすれば良い。
【0032】
署名サーバ6は、署名データを分散して埋め込んだ配布データ(署名付き配布データ)と署名データの格納位置を特定するための情報(乱数)を暗号化したデータとを製品管理サーバ4へ送信する。
【0033】
また、署名サーバ6は、処理内容を示すログデータを保存する機能を有するものであっても良い。例えば、署名サーバ6は、HSM7が保存する秘密鍵を用いた電子署名などの処理を実行した場合に処理内容を示すログデータを生成し、生成したログデータにHSM7が電子署名したデータ(署名付きログデータ)を記憶装置に保存するようにしても良い。
【0034】
また、署名サーバ6は、製品を管理する事業者(製品を製造する事業者、又は、出荷後の製品に対するサービスを提供する事業者)を暗号鍵管理システム1のユーザとして管理するユーザ管理機能を有する。例えば、署名サーバ6は、ユーザ管理機能として、ユーザ認証、ユーザ情報の管理、ユーザに関する権限の管理、ユーザ情報の登録、変更および削除、ユーザのグループ管理、グループに対するアクセス制限、メールなどによるユーザへの通知などの機能を有する。
【0035】
なお、ユーザ登録機能としては、所定の事業者以外のユーザ登録を抑止するために、ホワイトリストチェックによって登録可能なユーザを限定しても良い。例えば、登録すべきユーザ情報にメールアドレスを含め、メールアドレスのドメインに対してホワイトリストチェックを行うことにより特定のドメインを有するメールアドレスのユーザをユーザ登録できるようにしても良い。
【0036】
次に、実施形態に係る暗号鍵管理システム1における製品管理システム2の製品管理サーバ4の構成について説明する。
図2は、実施形態に係る暗号鍵管理システム1における製品管理装置としての製品管理サーバ4の構成例を示すブロック図である。
図2に示すように、製品管理装置としての製品管理サーバ4は、プロセッサ41、ROM42、RAM43、データメモリ44、インターフェース(I/F)45、通信インターフェース(I/F)46、および、通信インターフェース(I/F)47を有する。
【0037】
プロセッサ41は、プログラムを実行することにより各種の処理を実行する。プロセッサ41は、例えば、CPU(Central Processing Unit)である。プロセッサ41は、システムバスを介してサーバ4内の各部と接続され、各部との間でデータを送受信する。プロセッサ41は、ROM42およびRAM43と協働して製品管理装置としての製品管理サーバ4における制御およびデータ処理などの動作を実行する。
【0038】
ROM(Read Only Memory)42は、製品管理サーバ4の基本的な動作を実現するためのプログラムおよび制御データなどを記憶する不揮発性のメモリである。
RAM(Random Access Memory)43は、データを一時的に記憶する揮発性のメモリである。RAM43は、プロセッサ41がプログラムを実行する場合にワーキングメモリとして機能する。
【0039】
データメモリ44は、各種のデータを記憶する記憶部である。データメモリ44は、データの書き換えが可能な不揮発性のメモリで構成される。例えば、データメモリ44は、OSプログラム、アプリケーションプログラム、動作設定情報などを記憶する。
【0040】
インターフェース45は、データストレージ5にアクセスするためのインターフェースである。データストレージ5が外部デバイスとしての記憶装置である場合、インターフェース45は、データストレージ5としての記憶装置が備えるインターフェース規格に対応したものであれば良い。また、データストレージ5がデータサーバ等である場合、インターフェース45は、データストレージ5としてのデータサーバと通信するための通信インターフェースで構成すれば良い。
【0041】
通信インターフェース46は、署名システム3の署名サーバ6と通信するためのインターフェースである。通信インターフェース46は、無線で署名サーバ6と通信を行うものであって良いし、有線で署名サーバ6と通信を行うものであっても良い。例えば、通信インターフェース46は、インターネットなどの広域のネットワークを介して署名サーバ6とする。
【0042】
通信インターフェース47は、製品8(8A、8B)と通信するためのインターフェースである。通信インターフェース47は、無線で製品8にデータを供給するものであっても良いし、有線で製品8にデータを供給するものであっても良い。通信インターフェース47は、出荷前の製品8にデータを供給するインターフェースと出荷後の製品8Bに更新データを含む配布データを供給するインターフェースとを含む。
【0043】
なお、通信インターフェース46および通信インターフェース47は、1つの通信インターフェースで実現する構成としても良い。また、インターフェース45についても、通信インターフェース46又は通信インターフェース47と共通化したインターフェースとする構成にしても良い。
【0044】
次に、実施形態に係る暗号鍵管理システム1における署名システム3の署名サーバ6の構成について説明する。
図3は、実施形態に係る暗号鍵管理システム1における鍵管理装置としての署名サーバ6の構成例を示すブロック図である。
図3に示すように、鍵管理装置としての署名サーバ6は、プロセッサ61、ROM62、RAM63、データメモリ64、インターフェース65、および、通信インターフェース66を有する。
【0045】
プロセッサ61は、プログラムを実行することにより各種の処理を実行する。プロセッサ61は、例えば、CPU(Central Processing Unit)である。プロセッサ61は、システムバスを介してサーバ6内の各部と接続され、各部との間でデータを送受信する。プロセッサ61は、ROM62およびRAM63と協働して署名サーバ6における制御およびデータ処理などの動作を実行する。
【0046】
ROM(Read Only Memory)62は、署名サーバ6の基本的な動作を実現するためのプログラムおよび制御データなどを記憶する不揮発性のメモリである。 RAM(Random Access Memory)63は、データを一時的に記憶する揮発性のメモリである。RAM63は、プロセッサ61がプログラムを実行する場合にワーキングメモリとして機能する。
【0047】
データメモリ64は、各種のデータを記憶する記憶装置である。データメモリ64は、データの書き換えが可能な不揮発性のメモリで構成される。例えば、データメモリ64は、OSプログラム、アプリケーションプログラム、動作設定情報などを記憶する。また、データメモリ64は、ユーザ情報などを記憶するようにしても良い。また、データメモリ64は、処理内容を示すログデータを記憶するようにしても良い。
【0048】
インターフェース65は、HSM7にアクセスするためのインターフェースである。インターフェース65は、HSM7が備えるインターフェース規格に対応したものであれば良い。
通信インターフェース66は、製品管理装置としての製品管理サーバ4と通信するための通信インターフェースを含む。通信インターフェース66は、無線で通信を行うものであって良いし、有線で通信を行うものであっても良い。また、通信インターフェース66は、インターネットなどの広域のネットワークを介して製品管理システム2における製品管理サーバ4と通信するものであれば良い。
【0049】
次に、実施形態に係る暗号鍵管理システム1における製品管理システム2が管理する製品8の構成について説明する。
図4は、実施形態に係る製品管理システム2が管理する製品8の構成例を示すブロック図である。
製品8は、プロセッサ、メモリおよびインターフェースを備えるLSIなどの電子機器を搭載するものである。製品8は、特定のデバイスに限定されるものではなく、出荷後にデータの更新が実行可能な電子機器を含むものであれば良い。
【0050】
図4に示す構成例において、製品8は、プロセッサ81、ROM82、RAM83、データメモリ84および通信インターフェース85を有する。
プロセッサ81は、種々の処理を実行する回路を含む。プロセッサ81は、例えば、CPU(Central Processing Unit)である。プロセッサ81は、ROM82あるいはデータメモリ84に記憶されているプログラムを実行することにより種々の処理機能を実現する。
【0051】
ROM82は、プログラムメモリとして機能する不揮発性のメモリである。ROM82は、予め制御用のプログラムおよび制御データなどが記憶される。
RAM83は、ワーキングメモリとして機能する揮発性のメモリである。また、RAM83は、プロセッサ81が処理中のデータなどを一時保管するバッファとしても機能する。例えば、RAM83は、通信インターフェース85を介して外部装置との間で送受信するデータを一時保管する通信バッファとして機能する。
【0052】
データメモリ84は、データの書き込みおよび書き換えが可能な不揮発性のメモリである。データメモリ84は、例えば、EEPROM(登録商標)(Electrically Erasable Programmable Read Only Memory)などで構成する。
【0053】
データメモリ84には、プログラムファイルあるいはデータファイルなどが定義され、それらのファイルに制御プログラムや種々のデータが書き込まれる。例えば、データメモリ84又はROM82には、製品管理サーバ4から供給されるデータをデータメモリ84に書き込むためのプログラムが記憶される。また、データメモリ84又はROM82には、製品管理サーバ4から配布される配布データの正当性を確認するためのプログラムが記憶される。
【0054】
また、データメモリ84は、製品として出荷される前に製品管理装置としての製品管理サーバ4から供給されるデータが書き込まれる。例えば、製品8には、鍵管理装置としての署名サーバ6を署名システム3で生成された鍵情報(公開鍵および共通鍵)が製品管理サーバ4から供給され、データメモリ84には、製品管理サーバ4から供給される鍵情報が書き込まれる。また、データメモリ84は、製品として出荷された後に製品管理装置としての製品管理サーバ4から電子署名が付与された状態で配布される配布データが書き込まれる。
【0055】
通信インターフェース85は、製品管理サーバ4と通信するためのインターフェースである。通信インターフェース85は、製品管理サーバ4から供給されるデータが取得できるものであれば良い。
【0056】
次に、本実施形態に係る暗号鍵管理システム1によって管理される鍵情報を用いたデータ処理について説明する。
図5は、本実施形態に係る暗号鍵管理システム1において製品8Aに書き込む鍵情報を製品管理システム2へ提供する処理の動作例を説明するためのシーケンスである。
製品管理システム2の製品管理サーバ4と署名システム3の署名サーバ6とは、製品管理サーバ4を使用するユーザ(事業者)が署名システム3にログインするためのユーザ認証を実行する(ST11)。
【0057】
例えば、製品管理サーバ4のプロセッサ41は、通信インターフェース46により署名サーバ6に通信接続し、ユーザ認証(ログイン)要求とともに認証情報を署名サーバ6へ送信する。署名サーバ6は、通信インターフェース66により製品管理サーバ4からのユーザ認証要求を受信する。署名サーバ6のプロセッサ61は、製品管理サーバ4から受信した認証情報とデータメモリ64などに記憶しているユーザ情報とに基づいてユーザ認証を実行する。
【0058】
署名サーバ6のプロセッサ61は、ユーザ認証が成功した場合(ユーザが正当なユーザであると確認した場合)、当該ユーザをログイン状態とする。署名サーバ6のプロセッサ61は、ログイン状態であるユーザに対して設定されている権限に基づいて前記製品管理サーバ4からの処理要求(依頼)を受け付ける。
【0059】
製品管理サーバ4のプロセッサ41は、署名サーバ6へのログインが成功すると、出荷前の製品8Aに書き込む鍵情報などの鍵の生成を署名サーバ6に対して依頼する(ST12)。ここで、製品管理サーバ4のプロセッサ41は、電子署名に用いる公開鍵と秘密鍵との組み合わせからなる鍵ペアとデータの暗号化に用いる共通鍵との生成を依頼するものとする。また、製品管理サーバ4のプロセッサ41は、鍵の生成依頼とともに暗号アルゴリズムやセキュリティパラメータなどを指定するようにしても良い。
【0060】
署名サーバ6は、通信インターフェース66により製品管理サーバ4からログインしたユーザによる鍵の生成依頼を受信する。ここで、署名サーバ6のプロセッサ61は、ログイン中のユーザが鍵生成を依頼する権限を有することを確認する。プロセッサ61は、ログイン中のユーザが鍵生成を依頼する権限を有していれば、製品管理サーバ4からの鍵の生成依頼を受け付ける。
【0061】
署名サーバ6のプロセッサ61は、製品管理サーバ4から鍵の生成依頼を受け付けると、インターフェース65に接続されるHSM7に対して鍵情報の生成を要求(依頼)する(ST13)。HSM7は、プロセッサ61からの要求に応じて製品8Aに対する鍵情報を生成する(ST14)。ここでは、署名サーバ6のプロセッサ61は、公開鍵暗号系の公開鍵と秘密鍵との組み合わせからなる鍵ペアと共通鍵暗号系の共通鍵との生成をHSM7に要求する。HSM7は、署名サーバ6からの鍵の生成の要求に応じて、製品8Aに割り当てる公開鍵とその公開鍵に対応する秘密鍵とからなる鍵ペアと、製品8Aと共有する共通鍵とを生成する。
【0062】
HSM7は、生成した鍵ペアと共通鍵とを含む鍵情報を鍵IDに対応づけてセキュアに保管する(ST15)。例えば、HSM7は、公開鍵と秘密鍵との鍵ペアを生成すると、生成した鍵ペアに鍵IDに対応づけてHSM7内に保管する。この場合、HSM7は、鍵ペアとして生成した秘密鍵を外部へ出力することなくセキュアに保管する。HSM7は、鍵IDによって指定される鍵情報としての秘密鍵を用いて電子署名などの演算処理を実行する。
【0063】
また、HSM7は、共通鍵を生成すると、共通鍵に鍵IDに対応づけてHSM7内に保管する。HSM7は、鍵IDによって指定される鍵情報としての共通鍵を用いてデータの暗号化などの演算処理を実行する。なお、HSM7は、鍵ペアと共通鍵とにそれぞれ別の鍵IDを付与して保存するようにしても良い。
【0064】
署名システム3において、HSM7は、生成した鍵ペアと共通鍵とを鍵IDに対応づけて保管すると、保管(生成)した鍵ペアと共通鍵とを示す鍵IDを署名サーバ6へ出力する。署名サーバ6のプロセッサ61は、HSM7から生成した鍵情報を示す鍵IDを受けると、鍵生成の依頼元である製品管理サーバ4へ鍵IDを通知する。ここで、署名サーバ6のプロセッサ61は、ログイン中のユーザを示す情報(ユーザIDなど)に対応づけて生成した鍵情報を示す鍵IDをデータメモリ64などに記憶するようにしても良い。
【0065】
鍵生成を依頼した製品管理サーバ4は、通信インターフェース46により署名サーバ6から生成した鍵情報を示す鍵IDを受信する。製品管理サーバ4のプロセッサ41は、署名サーバ6から通知された鍵IDをデータストレージ5又はデータメモリ44に保存する。これにより、製品管理サーバ4は、鍵生成の依頼に応じて署名システム3が生成した鍵情報を指定できる。
【0066】
また、製品管理サーバ4のプロセッサ41は、鍵管理装置としての署名サーバ6に鍵情報の生成を依頼した後、署名サーバ6に出荷前の製品8Aに書き込む鍵情報を要求(鍵の取得を依頼)する(ST16)。例えば、製品管理サーバ4のプロセッサ41は、署名サーバ6からHSM7で生成した鍵情報を示す鍵IDを受信した後、鍵IDを指定して出荷前の製品8Aに書き込む鍵情報としての公開鍵と共通鍵とを署名サーバ6に要求する。
【0067】
署名サーバ6は、通信インターフェース66により製品8Aに書き込む鍵情報の要求(鍵情報の取得依頼)を受信する。ここで、署名サーバ6のプロセッサ61は、ログイン中のユーザが鍵情報を取得する権限を有することを確認する。プロセッサ61は、ログイン中のユーザが鍵情報を取得する権限を有していれば、製品管理サーバ4からの鍵情報の要求を受け付ける。
【0068】
署名サーバ6のプロセッサ61は、製品管理サーバ4からの鍵情報の要求を受け付けると、受け付けた要求の鍵情報としての公開鍵と共通鍵とをHSM7に対して要求する(ST17)。HSM7は、署名サーバ6からの要求に応じて鍵情報に含まれる暗号鍵を署名サーバ6へ出力する(ST18)。
【0069】
例えば、署名サーバ6のプロセッサ61は、製品管理サーバ4が指定する鍵IDに対応する鍵情報としての公開鍵と共通鍵とをHSM7に対して要求する。HSM7は、署名サーバ6からの要求に応じて製品管理サーバ4が指定する鍵IDに対応する公開鍵と共通鍵とを署名サーバ6へ出力する。
【0070】
署名サーバ6のプロセッサ61は、HSM7が出力する公開鍵と共通鍵とを取得すると、通信インターフェース66によりHSM7から取得した鍵情報としての公開鍵と共通鍵とを鍵情報の要求元である製品管理サーバ4へ送信する(ST19)。
【0071】
製品管理サーバ4は、出荷前の製品8Aに書き込む鍵情報を要求した後、通信インターフェース46により署名サーバ6から鍵情報としての公開鍵と共通鍵とを受信する。製品管理サーバ4のプロセッサ41は、署名サーバ6から公開鍵と共通鍵とを含む鍵情報を受信すると、受信した鍵情報としての公開鍵と共通鍵を出荷前に書き込むべき鍵情報として製品8Aへ供給する(ST20)。
【0072】
出荷前の製品8Aは、通信インターフェース85により製品管理サーバ4から供給される鍵情報としての公開鍵と共通鍵とを受信する。製品8Aのプロセッサ81は、製品管理サーバ4から自身に書き込むべき鍵情報を受信すると、製品管理サーバ4から受信した鍵としての公開鍵と共通鍵とを自身が備えるメモリ(データメモリ84又はROM82)に書き込む処理を実行する(ST21)。製品8Aのプロセッサ81は、鍵情報の書き込みを完了すると、鍵情報の書き込み完了を製品管理サーバ4に通知する(ST22)。
【0073】
製品管理サーバ4のプロセッサ41は、製品8Aから鍵情報の書き込み完了の通知を受信すると、当該製品8Aを識別する情報(例えば、製品ID)と書き込んだ鍵情報に対応する鍵IDとをデータストレージ5又はデータメモリ44に保存する(ST23)。これにより、製品管理サーバ4は、個々の製品8に書き込まれた鍵情報を管理することができる。製品管理サーバ4が署名サーバ6から取得した鍵情報の書き込みが完了した製品8Aは、出荷可能となり、エンドユーザ向けに出荷される。
【0074】
また、署名サーバ6は、処理内容を示すログの保存およびユーザへの通知を行うようにしても良い。
図5に示す処理例において、署名サーバ6のプロセッサ61は、鍵情報を製品管理サーバ4へ送信した場合、処理内容を示すログデータを生成する(ST24)。署名サーバ6のプロセッサ61は、ログデータを生成すると、当該ログデータに対する電子署名をHSM7に依頼する(ST25)。ここで、署名サーバ6は、鍵情報に対応する鍵IDを指定してログデータへの電子署名を依頼する。
【0075】
HSM7は、署名サーバ6からの依頼に応じて指定された鍵IDに対応する公開鍵とペアになる秘密鍵を用いてログデータに電子署名を付与する(ST26)。HSM7は、生成した署名付きのログデータを署名サーバ6へ出力する(ST27)。署名サーバ6のプロセッサ61は、HSM7が生成した署名付きのログデータをデータメモリ64などの記憶装置に保存する(ST28)。これにより、署名サーバ6を含む署名システム3は、処理内容を示すログデータを署名付きで保存することができ、原本であることが保証されたログデータを閲覧することが可能となる。
【0076】
さらに、署名サーバ6のプロセッサ61は、製品管理サーバ4からの要求に応じて製品8Aに書き込む暗号鍵を送信した場合、暗号鍵の送信先となるユーザに処理内容を通知する(ST29)。例えば、署名サーバ6のプロセッサ61は、製品8Aに書き込む暗号鍵を要求したユーザのユーザ情報に含まれるメールアドレスに処理内容を示す電子メールを送信する。これにより、ユーザ(事業者)は、署名システム3を用いて実施した処理内容を把握することができる。
【0077】
次に、本実施形態に係る暗号鍵管理システム1における鍵情報を用いた出荷後の製品8Bに署名付きの配布データを配布する処理について説明する。
図6および
図7は、本実施形態に係る暗号鍵管理システム1における製品管理サーバ4が出荷後の製品8Bに署名付きの配布データを配布するための処理の動作例を説明するためのシーケンスである。
出荷後の製品8Bに対してデータを配布する場合、暗号鍵管理システム1は、製品8Bに書き込まれている鍵情報を用いて正当性が確認(検証)可能な状態に演算処理した配布データを製品8Bへ供給する。
【0078】
まず、製品管理システム2における製品管理サーバ4は、出荷済み(鍵情報を書き込み済み)の製品8Bに配布する配布データを取得する(ST30)。製品管理サーバ4のプロセッサ41は、製品8Bに配布する配布データを取得すると、製品8B自身が正当性を確認できるように配布データに対する電子署名することを署名システム3に依頼するため、署名サーバ6へのログイン処理を実行する(ST31)。
【0079】
例えば、製品管理サーバ4のプロセッサ41は、通信インターフェース46により署名サーバ6に通信接続し、ユーザ認証(ログイン)要求とともに認証情報を署名サーバ6へ送信する。署名サーバ6のプロセッサ61は、製品管理サーバ4から受信するログインユーザの認証情報とデータメモリ64などに記憶しているユーザ情報とに基づいてユーザ認証を実行する。プロセッサ61は、ユーザ認証が成功した場合(ユーザが正当なユーザであると確認した場合)、当該ユーザをログイン状態として当該ユーザからの処理要求を受け付ける。
【0080】
製品管理サーバ4のプロセッサ41は、署名サーバ6へのログインが成功すると、出荷後の製品8Bに配布する配布データに対する電子署名を署名サーバ6に対して依頼する(ST32)。ここで、製品管理サーバ4のプロセッサ41は、配布先とする製品8Bの製品IDに対応する鍵IDを特定し、当該製品8Bに書き込んだ鍵情報を示す鍵IDを指定して配布データに対する電子署名を依頼する。また、プロセッサ41は、署名の依頼とともに署名アルゴリズムやセキュリティパラメータを指定するようにしても良い。
【0081】
署名サーバ6は、通信インターフェース66により製品管理サーバ4から配布データへの署名依頼を受信する。ここで、署名サーバ6のプロセッサ61は、ログイン中のユーザが電子署名を取得する権限を有することを確認する。プロセッサ61は、ログイン中のユーザが電子署名を取得する権限を有していれば、製品管理サーバ4からの署名依頼を受け付ける。
【0082】
署名サーバ6のプロセッサ61は、製品管理サーバ4から署名依頼を受け付けると、インターフェース65に接続されるHSM7に対して配布データに対する電子署名としての署名データの生成を要求する(ST33)。ここで、プロセッサ61は、署名依頼とともに配布データと電子署名に用いる鍵情報を示す鍵IDとをインターフェース65によりHSM7へ供給する。
【0083】
HSM7は、署名サーバ6からの署名要求に応じて配布データに対する電子署名としての署名データを生成する(ST34)。HSM7は、署名サーバ6から指定される鍵IDに対応する秘密鍵を特定し、特定した秘密鍵を用いて配布データに対する署名データを生成する。HSM7は、秘密鍵を用いて生成した署名データを署名サーバ6へ出力する(ST35)。
【0084】
署名サーバ6のプロセッサ61は、HSM7が生成した署名データを取得すると、配布データに署名データを分散して格納する格納位置を設定(特定)するための情報として用いる乱数の生成をHSM7に対して要求する(ST36)。HSM7は、署名サーバ6からの乱数の生成要求に応じて乱数を生成する(ST37)。HSM7は、乱数を生成すると、生成した乱数を署名サーバ6へ出力する(ST38)。
【0085】
署名サーバ6のプロセッサ61は、HSM7が生成した乱数を取得すると、配布データにおいて署名データが分散して格納されるような格納位置を取得した乱数に基づいて設定(特定)する(ST39)。プロセッサ61は、乱数に基づいて配布データに署名データを分散して格納する格納位置を設定する。例えば、プロセッサ61は、乱数を配布データにおける位置座標に変換することにより、配布データにおいて署名データがランダムに格納される格納位置を設定する。また、プロセッサ61は、署名データを複数のデータに分割し、分割した複数のデータを乱数が示す格納位置に格納するようにしても良い。
【0086】
また、プロセッサ61は、配布データにおいて署名データを埋め込む領域(署名データを格納する範囲)を設定しても良い。例えば、配布データが画像データであれば、プロセッサ61は、画像の特徴に応じて署名データを埋め込む領域を設定しても良い。具体例としては、プロセッサ61は、配布データとしての画像データにおいて、黒画素の多い領域、白画素の多い領域など画素値の変動が少ない領域(画素値が所定範囲内の領域)を署名データの埋め込み領域として設定するようにしても良い。また、プロセッサ61は、署名データの埋め込み領域を設定した場合、埋め込み領域内において署名データを分散して格納する格納位置を設定しても良い。
【0087】
署名サーバ6のプロセッサ61は、署名データの格納位置を設定すると、配布データにおける格納位置に署名データを格納する(ST40)。例えば、プロセッサ61は、配布データにおいて乱数に基づく所定数の格納位置を設定し、所定数に分割した署名データを設定された格納位置に埋め込む。これにより、プロセッサ61は、配布データに分散して署名データを格納した署名付き配布データを生成する。
【0088】
署名サーバ6のプロセッサ61は、署名付き配布データを生成すると共に、格納位置を設定(特定)するのに用いた乱数を共通鍵によって暗号化する(ST41)。例えば、プロセッサ61は、配布データの配布先となる製品8Bの製品IDに対応する鍵IDの共通鍵を用いて乱数を暗号化する。なお、署名サーバ6のプロセッサ61は、鍵IDを指定して共通鍵を用いた乱数の暗号化をHSM7に要求し、HSM7が生成する暗号化された乱数を取得するようにしても良い。
【0089】
署名サーバ6のプロセッサ61は、署名付き配布データと暗号化された乱数(格納位置を示す情報)とを取得すると、通信インターフェース66により電子署名の依頼元である製品管理サーバ4へ署名付き配布データと暗号化された乱数とを送信する(ST42)。
【0090】
製品管理サーバ4は、出荷後の製品8Bに配布する配布データへの電子署名を依頼した後、通信インターフェース46により署名サーバ6から署名付き配布データと暗号化された乱数とを受信する。製品管理サーバ4のプロセッサ41は、署名サーバ6から受信した署名付き配布データと暗号化された乱数とを製品8Bに配布する(ST43)。例えば、プロセッサ41は、通信インターフェース47により配布先となる製品8Bにアクセスし、署名付き配布データと共通鍵で暗号化された乱数とを製品8Bへ送信する。
【0091】
なお、製品管理サーバ4から製品8Bへの署名付き配布データと暗号化された乱数との配布方法は特定の方法に限定されるものではない。例えば、製品管理サーバ4は、製品8Bがオンライン接続される運用形態のデバイスであれば、製品8Bに対してオンラインで署名付き配布データと暗号化された乱数とを配布するようにしても良い。
【0092】
また、製品管理サーバ4は、出荷後の製品8Bを保持するユーザ(エンドユーザ)に対して配布データが存在することを通知し、エンドユーザからの要求に応じて署名付き配布データと暗号化された乱数とを製品8Bにダウンロードするようにしても良い。また、製品管理サーバ4は、配布データ(又は配布データの一部)をWEBサーバ上で公開し、当該WEBサーバにおけるエンドユーザの操作に応じて製品8Bに署名付き配布データと暗号化された乱数とをダウンロードするようにしても良い。
【0093】
出荷後の製品8Bは、通信インターフェース85により製品管理サーバ4が配布する署名付き配布データと暗号化された乱数(署名データの格納位置を示す情報)とを受信する。製品8Bは、受信した署名付き配布データと暗号化された乱数とをRAM83又はデータメモリ84に格納する。製品8Bのプロセッサ81は、製品管理サーバ4が配布する署名付き配布データを受信すると、受信した署名付き配布データの正当性を検証する検証処理を実行する(ST44-47)。
【0094】
製品8Bのプロセッサ81は、検証処理において、受信した暗号化された乱数をデータメモリ84又はROM82に書き込まれている共通鍵を用いて復号する(ST44)。プロセッサ81は、共通鍵によって乱数を復号すると、復号した乱数に基づいて署名付き配布データにおける署名データの格納位置を特定する(ST45)。プロセッサ81は、署名データの格納位置を特定すると、特定した格納位置に基づいて署名付き配布データから署名データを抽出する(ST46)。プロセッサ81は、署名データを抽出すると、公開鍵を用いて署名付き配布データから抽出した署名データの正当性を確認する(ST47)。
【0095】
プロセッサ81は、署名付き配布データから抽出した署名データの正当性が確認されると、当該配布データが正当なデータであると判断する。プロセッサ81は、署名データの正当性を確認すると、正当性が確認された配布データの書込処理を実行する(ST48)。プロセッサ81は、正当性が確認された署名付き配布データをデータメモリ84に書き込む。また、プロセッサ81は、署名付き配布データから署名データを取り除いたデータをデータメモリ84に書き込むようにしても良い。
【0096】
例えば、プロセッサ81は、配布データが画像データなどの署名データが埋め込まれたままで使用できるデータであれば、署名付き配布データをそのままデータメモリ84に書き込む。また、プロセッサ81は、配布データがプログラムや制御データなどの署名データが埋め込まれたままでは使用できるデータであれば、署名付き配布データから署名データを取り除いたデータをデータメモリ84に書き込む。
【0097】
配布データの書込処理が完了すると、製品8Bのプロセッサ81は、通信インターフェース85により配布データの受領完了を製品管理サーバ4に通知する(ST49)。製品管理サーバ4のプロセッサ41は、製品8Bから配布データの受領完了の通知を受信すると、当該製品8Bを識別する情報(例えば、製品ID)に対応づけて配布データの配布完了を記録する。これにより、製品管理サーバ4は、署名システム3によって電子署名された署名付き配布データを製品8Bに供給することができる。この結果、製品8Bは、自身に書き込まれている鍵情報を用いて配布データの正当性を検証でき、正当性が確認された配布データをメモリに書き込むことができる。
【0098】
また、署名サーバ6は、出荷後の製品8Bに配布する署名ファイルを提供する処理につても処理内容を示すログの保存およびユーザへの通知を行うようにしても良い。例えば、署名サーバ6のプロセッサ61は、署名付き配布データを製品管理サーバ4へ送信した場合、処理内容を示すログデータを生成する(ST50)。署名サーバ6のプロセッサ61は、ログデータを生成すると、当該ログデータに対する電子署名をHSM7に依頼する(ST51)。
【0099】
HSM7は、当該署名付き配布データに埋め込んだ署名データを生成するのに用いた秘密鍵を用いてログデータに対する電子署名を生成する(ST52)。HSM7は、生成した署名付きのログデータを署名サーバ6へ出力する(ST53)。署名サーバ6のプロセッサ61は、HSM7が生成した署名付きのログデータをデータメモリ64などの記憶装置に保存する(ST54)。
【0100】
これにより、署名サーバ6を含む署名システム3は、出荷後の製品8Bに配布した署名ファイルを生成した処理の内容を示すログデータを署名付きで保存することができ、原本であることが保証されたログデータを閲覧することが可能となる。
【0101】
さらに、署名サーバ6のプロセッサ61は、出荷後の製品8Bに対する更新データに電子署名した署名ファイルを製品管理サーバ4から送信した場合、ログイン中のユーザに処理内容を通知する(ST55)。例えば、署名サーバ6のプロセッサ61は、ログイン中のユーザのユーザ情報に含まれるメールアドレスに処理内容を示す電子メールを送信する。これにより、ユーザ(事業者)は、署名システム3によって出荷後の製品8Bに配布する署名付き配布データが製品管理サーバ4へ送信されたことを把握することができる。
【0102】
以上のように、実施形態に係る暗号鍵管理システム1は、署名システム3が製品8Bの公開鍵に対応する秘密鍵で生成した署名データを分散して配布データに格納した署名付き配布データを製品8Bに供給する。さらに、暗号鍵管理システム1は、署名付き配布データにおける署名データの格納位置を特定するための乱数を製品8Bと共有する共通鍵で暗号化し、暗号化された乱数を製品8Bに供給する。製品8Bは、署名付き配布データと暗号化された乱数とを取得し、共通鍵で復号した乱数に基づいて署名付き配布データから抽出する署名データの正当性を公開鍵によって確認する。
【0103】
これにより、署名データが分散して配布データに埋め込まれた署名付き配布データをエンドユーザが所持する製品に提供することができる。署名付き配布データは署名データの格納場所が固定されないため、悪意ある第三者などによる署名データの改ざんや付け替えを施し難い。つまり、実施形態に係る暗号鍵管理システム1によれば、改ざんや付け替えなどの攻撃を受け難い署名データを付与した安全性の高いデータを出荷後の製品にも提供することができる。
【0104】
また、実施形態に係る暗号鍵管理システムは、電子署名をつける電子データ(配布データ)を、アイコン、写真、絵画および契約書類などの画像データとすることもできる。暗号鍵管理システムは、署名データを分散して画像データに埋め込むため、署名データを目立たないように画像データに埋め込むことができる。例えば、解像度が高く画素数が多い画像データは、一部に署名データを埋め込んだり一部を署名データに差替えたりしても、当該画像データに対する見た目の変化、又は、電子的な判定へ影響するリスクが小さくなる。このため、製品は、正当性を確認した後に署名付き画像データをそのままメモリに保存したり表示したりするようにしても良い。
【0105】
また、実施形態に係る暗号鍵管理システムによれば、製品管理システムを運用する製品の製造又は管理を実施する事業者は、鍵ペアや共通鍵などの鍵情報の管理を署名システムに委譲することができる。この結果、事業者は、鍵情報の管理に係るコストを低減しつつ、製品に配布するデータの安全性を確保できる。また、署名サーバを含む署名システムは、電子署名などのプリミティブな暗号化プロセスによるセキュリティ機能を事業者に提供することができ、多様な事業者の要望にあったセキュリティ機能をフレキシブルに提供できる。
【0106】
上述の各実施形態で説明した機能は、ハードウエアを用いて構成するに留まらず、ソフトウエアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウエア、ハードウエアのいずれかを選択して構成するものであっても良い。
【0107】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0108】
1…暗号鍵管理システム、2…製品管理システム、3…署名システム、4…製品管理サーバ(製品管理装置)、5…データストレージ(記憶装置)、6…署名サーバ(鍵管理装置)、7…HSM、8(8A、8B)…製品、41…プロセッサ(第2のプロセッサ)、44…データメモリ(記憶装置)、45…インターフェース、46…通信インターフェース(第2の通信部)、47…通信インターフェース、61…プロセッサ(第1のプロセッサ)、64…データメモリ(記憶装置)、65…インターフェース、66…通信インターフェース(第1の通信部)、81…プロセッサ、84…データメモリ、85…インターフェース。