(57)【要約】【課題】通信装置の内部に生成される暗号鍵および記憶される暗号鍵の安全性を確保する。【解決手段】通信装置は、鍵記憶部と、受信部と、解析部と、生成部と、アクセス制御部と、を備える。鍵記憶部は、暗号鍵を記憶する。受信部は、メッセージを受信する。解析部は、メッセージが暗号鍵に対するアクセス要求を含むか否かを解析する。生成部は、メッセージにアクセス要求が含まれる場合に、アクセス要求により要求される暗号鍵に対するアクセスを要求する要求情報を生成する。アクセス制御部は、要求情報に基づいて暗号鍵に対するアクセスを制御する。【選択図】図３
2015073317.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションからのメッセージを受信するための第１インタフェースと、
暗号鍵を共有するための第２インタフェースと、
前記第２インタフェースを介して共有した第１暗号鍵を記憶する第１鍵記憶部と、
前記第２インタフェースを介して共有した第２暗号鍵を記憶する第２鍵記憶部と、
前記第１暗号鍵へのアクセスを制御する第１アクセス制御部と、
前記第２暗号鍵へのアクセスを制御する第２アクセス制御部と、
前記第１インタフェースから受信する前記メッセージが前記第１暗号鍵または前記第２暗号鍵に対する第１アクセス要求を含むか否かを解析する解析部と、
前記メッセージに前記第１アクセス要求が含まれる場合に、前記第１アクセス要求により要求される前記第１暗号鍵または前記第２暗号鍵に対するアクセスを要求する情報であって、前記第１アクセス要求と異なる形式の第２アクセス要求を生成し、生成した前記第２アクセス要求を前記第１アクセス制御部に送信する生成部と、を備え、
前記第１アクセス制御部は、生成された前記第２アクセス要求が、前記第１暗号鍵に対するアクセス要求である場合、前記第１暗号鍵へのアクセスを制御し、前記第２アクセス要求が前記第２暗号鍵に対するアクセス要求である場合、前記第２アクセス要求を前記第２アクセス制御部に送信し、
前記第２アクセス制御部は、前記第１アクセス制御部から受信した前記第２アクセス要求に基づいて、前記第２暗号鍵へのアクセスを制御する、
通信装置。
【請求項２】
前記メッセージは、前記第１暗号鍵または前記第２暗号鍵を利用するアプリケーションを識別する第１識別情報を含み、
前記第１識別情報と第２識別情報とを対応づけて記憶する識別情報記憶部をさらに備え、
前記生成部は、前記メッセージに前記第１アクセス要求が含まれる場合に、受信した前記メッセージに含まれる前記第１識別情報に対応する前記第２識別情報を対応づけた前記第２アクセス要求を生成する、
請求項１に記載の通信装置。
【請求項３】
前記解析部および生成部の少なくとも１つと、前記第１アクセス制御部および前記第２アクセス制御部と、を異なるオペレーティングシステム上で実行させる、
請求項１に記載の通信装置。
【請求項４】
前記通信装置に対する運用管理の要求を受信し、受信した要求に応じて前記通信装置の運用管理を制御する運用制御部をさらに備え、
前記第１アクセス制御部は、前記運用制御部から要求された前記第１暗号鍵に対するアクセスを拒否し、
前記第２アクセス制御部は、前記運用制御部から要求された前記第２暗号鍵に対するアクセスを拒否する、
請求項１に記載の通信装置。
【請求項５】
前記第１鍵記憶部は、第１装置から送信された前記第１暗号鍵を記憶し、
前記第１インタフェースは、第１装置から送信された前記第１暗号鍵を第２装置へ中継することを要求する前記メッセージを受信し、
前記生成部は、前記メッセージに前記第１アクセス要求が含まれる場合に、前記第１アクセス要求により中継が要求される前記第１暗号鍵の前記第２アクセス要求を生成し、
前記第１アクセス制御部は、前記第２アクセス要求に基づいて前記第１暗号鍵を前記鍵記憶部から読み出す、
請求項１に記載の通信装置。
【請求項６】
前記第２鍵記憶部は、第１装置から送信された前記第２暗号鍵を記憶し、
前記第１インタフェースは、第１装置から送信された前記第２暗号鍵を第２装置へ中継することを要求する前記メッセージを受信し、
前記生成部は、前記メッセージに前記第１アクセス要求が含まれる場合に、前記第１アクセス要求により中継が要求される前記第２暗号鍵の前記第２アクセス要求を生成し、
前記第２アクセス制御部は、前記第２アクセス要求に基づいて前記第２暗号鍵を前記鍵記憶部から読み出す、
請求項１に記載の通信装置。
【請求項７】
アプリケーションからのメッセージを受信するための第１インタフェースと、暗号鍵を共有するための第２インタフェースと、前記第２インタフェースを介して共有した第１暗号鍵を記憶する第１鍵記憶部と、前記第２インタフェースを介して共有した第２暗号鍵を記憶する第２鍵記憶部と、前記第１暗号鍵へのアクセスを制御する第１アクセス制御部と、前記第２暗号鍵へのアクセスを制御する第２アクセス制御部と、を備える通信装置で実行される鍵管理方法であって、
前記第１インタフェースから受信する前記メッセージが前記第１暗号鍵または前記第２暗号鍵に対する第１アクセス要求を含むか否かを解析する解析ステップと、
前記メッセージに前記第１アクセス要求が含まれる場合に、前記第１アクセス要求により要求される前記第１暗号鍵または前記第２暗号鍵に対するアクセスを要求する情報であって、前記第１アクセス要求と異なる形式の第２アクセス要求を生成し、生成した前記第２アクセス要求を前記第１アクセス制御部に送信する生成ステップと、を含み、
前記第１アクセス制御部は、生成された前記第２アクセス要求が、前記第１暗号鍵に対するアクセス要求である場合、前記第１暗号鍵へのアクセスを制御し、前記第２アクセス要求が前記第２暗号鍵に対するアクセス要求である場合、前記第２アクセス要求を前記第２アクセス制御部に送信し、
前記第２アクセス制御部は、前記第１アクセス制御部から受信した前記第２アクセス要求に基づいて、前記第２暗号鍵へのアクセスを制御する、
鍵管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置および鍵管理方法に関する。
【背景技術】
【０００２】
ＳＥＣＯＱＣ（Secure  Communication  based  on  Quantum  Cryptography）と呼ばれる量子暗号通信に関する研究プロジェクトが知られている。ＳＥＣＯＱＣでは、量子暗号鍵配送（ＱＫＤ（Quantum  Key  Distribution））により生成され、複数のノードに分散蓄積された乱数を基に鍵交換等を行う際の機能、および、Ｑ３Ｐ（Quantum  Point  to  Point  Protocol）と名付けられたプロトコルなどの技術が提案されている。
【０００３】
ＱＫＤは、次世代の通信セキュリティの高度化を実現する一手法であり、そのサービス自身のセキュリティも重要となる。例えば、ＱＫＤは絶対安全な通信環境を提供できる画期的な技術である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Kollmitzer  C.,  Pivk  M.  (Eds.),  Applied  Quantum  Cryptography,  Lect.  Notes  Phys.  797  (Springer,  Berlin  Heidelberg  2010),  p155-p168,  DOI  10.1007/978-3-642-04831-9
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、ＱＫＤを用いたシステム内で生成した暗号鍵の安全性を確保しなければ、ＱＫＤを用いた通信の絶対安全が実現できない。特に、暗号鍵を提供する通信ノードおよびサービスへの鍵配送を行うルートからの侵入など、ネットワークからの侵入により、内部に保存されている暗号鍵が漏洩させられる攻撃が考えられる。すなわち、いわゆるサイバー攻撃への対策が課題となっている。
【課題を解決するための手段】
【０００６】
実施形態の通信装置は、鍵記憶部と、受信部と、解析部と、生成部と、アクセス制御部と、を備える。鍵記憶部は、暗号鍵を記憶する。受信部は、メッセージを受信する。解析部は、メッセージが暗号鍵に対するアクセス要求を含むか否かを解析する。生成部は、メッセージにアクセス要求が含まれる場合に、アクセス要求により要求される暗号鍵に対するアクセスを要求する要求情報を生成する。アクセス制御部は、要求情報に基づいて暗号鍵に対するアクセスを制御する。
【図面の簡単な説明】
【０００７】
【図１】暗号通信システムのネットワーク構成の一例を示す図。
【図２】第１の実施形態の暗号通信システムのネットワーク構成図。
【図３】第１の実施形態のノードの構成を示すブロック図。
【図４】第１の実施形態におけるサービス利用処理のシーケンス図。
【図５】第１の実施形態の通信制御部のブロック図。
【図６】第１の実施形態における鍵アクセス処理のフローチャート。
【図７】変形例１のノードのブロック図。
【図８】変形例２のノードのブロック図。
【図９】第１の実施形態のノードのハードウェア／ソフトウェア構成図。
【図１０】リンク鍵およびアプリケーション鍵を多層化して管理する場合の概念図。
【図１１】多層化を実現するために用いる管理情報の一例を示す図。
【図１２】各階層の暗号鍵管理をモジュール化したノードのブロック図。
【図１３】第２の実施形態のノードの構成を示すブロック図。
【図１４】第３の実施形態のノードの構成を示すブロック図。
【図１５】第４の実施形態のノードの構成を示すブロック図。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、この発明にかかる通信装置の好適な実施形態を詳細に説明する。
【０００９】
（第１の実施形態）
第１の実施形態にかかる通信装置（ノード）は、外部ネットワークからは暗号鍵に直接アクセスできないように構成する。
【００１０】
図１は、暗号通信システムのネットワーク構成の一例を示す図である。情報通信の重要性から、複数のアプリケーション（アプリケーション２００ａ、アプリケーション２００ｃ）間で暗号（アプリケーション鍵利用）を用いて通信の安全性を確保する暗号通信が行われる。
【００１１】
暗号通信で用いられる暗号化方式、および、暗号化に用いる鍵の生成方式も、技術や計算機の進歩に従い、進化していく。例えばＱＫＤは、無条件安全な通信を提供する手段として注目されている。ＱＫＤは、暗号通信を行うための暗号鍵を提供する機能（サービス）として利用することができる。そのようなサービス（暗号鍵生成サービス）が、データの暗号通信とは独立に構成される。このような構成により、高度な暗号通信が提供可能となる。
【００１２】
図２は、第１の実施形態の暗号通信システムのネットワーク構成の一例を示す図である。図２は、暗号鍵生成サービスをデータの暗号通信とは独立に備える通信システムのネットワーク構成例を表している。
【００１３】
このような暗号通信システムにおいても、暗号鍵生成サービスが提供する暗号鍵は、いろいろなリスクにさらされる。例えば、通信路上での盗聴、ノード１００への不当アクセス、不適切なアプリケーション２００の起動などのリスクが存在する。ＱＫＤは、通信路上での盗聴を確実に検出し、不可能とするが、ノード１００への不当アクセスを阻止するものではない。従って、システムレベルでは、無条件安全を保障するＱＫＤの価値を十分に活かせない場合がある。
【００１４】
そこで、本実施形態では、このような暗号鍵生成サービスにおいて、既存の通信システムとの通信等のためにネットワークと接続しても、生成される暗号鍵の安全性を確保できるようにする。
【００１５】
図２に示すように、本実施形態の暗号通信システムは、通信装置としてのノード１００ａ〜１００ｃと、アプリケーション２００ａ、２００ｃと、を含む。
【００１６】
ノード１００ａ〜１００ｃを区別する必要がない場合は、単にノード１００という場合がある。アプリケーション２００ａ、２００ｃを区別する必要がない場合は、単にアプリケーション２００という場合がある。ノード１００の個数は３に限られるものではない。また、アプリケーション２００の個数は２に限られるものではない。また、アプリケーション２００は、ノード１００と一体として実現されてもよいし、ノードと独立した端末として実現されてもよい。
【００１７】
ノード１００ａ〜１００ｃは、対向ノードとの間で乱数を生成して共有する機能と、生成した乱数をリンク鍵として利用して、リンク上で暗号通信を行う機能とを備える。
【００１８】
ノード１００は、リンクとは独立に乱数を生成する機能と、別のノードに対して生成した乱数を送信する機能とを備えてもよい。以下では、ノード１００ａおよび１００ｃ（アプリケーション２００ａ、２００ｃと接続されるノード）がこれらの機能を備える例を説明する。具体的には、図２に示す以下のようなネットワーク構成の例を説明する。
・ノード１００ａとノード１００ｂが暗号通信ネットワークであるリンク３００ａで接続され、ノード１００ｂとノード１００ｃが、暗号通信ネットワークであるリンク３００ｂで接続されているネットワークである。
・アプリケーション２００ａは、アプリケーション２００ｃと暗号通信を行う。
・アプリケーション２００ａは、暗号通信のために、ノード１００ａからアプリケーション鍵を取得する。
・アプリケーション２００ｃは、暗号通信のために、ノード１００ｃからアプリケーション鍵を取得する。
【００１９】
図３は、ノード１００の構成の一例を示すブロック図である。図３に示すように、ノード１００は、通信制御部１１０と、管理制御部１２０と、アクセス制御部１３０と、鍵記憶部１４１と、を備える。
【００２０】
鍵記憶部１４１は、暗号鍵を記憶する。暗号鍵は、例えば図２のリンク鍵およびアプリケーション鍵などを含むどのような暗号鍵であってもよい。鍵記憶部１４１は、ＨＤＤ（Hard  Disk  Drive）、光ディスク、メモリカード、ＲＡＭ（Random  Access  Memory）などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００２１】
通信制御部１１０は、アプリケーション２００などの外部装置との間の通信を制御する。例えば、通信制御部１１０は、暗号鍵に対するアクセスを要求するメッセージをアプリケーション２００から受信する。また、通信制御部１１０は、メッセージに応じて鍵記憶部１４１から読み出した暗号鍵をアプリケーション２００に送信する。通信制御部１１０の機能および構成の詳細は後述する。
【００２２】
管理制御部１２０は、通信制御部１１０から送信されたアクセス要求に従い、暗号鍵の管理を制御する。管理制御部１２０は、暗号鍵の管理として、例えばアプリケーション２００との間の暗号通信の条件の決定、および、必要な暗号鍵の仕様の決定などを実行する。管理制御部１２０は、鍵記憶部１４１に記憶された暗号鍵にアクセスする場合は、アクセス制御部１３０に対してアクセス要求を送信する。
【００２３】
このように、管理制御部１２０は、鍵記憶部１４１へのアクセス機能をアクセス制御部１３０に集約する。これにより、例えばアクセス制御部１３０が、異常なアクセスの検出を簡単にできるようになる。
【００２４】
アクセス制御部１３０は、管理制御部１２０を介して受信したアクセス要求に応じて、鍵記憶部１４１に記憶される暗号鍵に対するアクセスを制御する。
【００２５】
暗号鍵管理には、管理を容易にかつ効率的に実行するためにデータベース（鍵データベース）を用いるのがよい。鍵データベースをアクセス制御部１３０からアクセスするように分散管理化することにより、管理専用アクセス機能（アクセス制御部１３０）以外からのアクセスでは鍵の漏洩が困難となるように設計できる。暗号鍵の分散管理は、ノード１００の電源が遮断された状態での鍵記憶部１４１への直接のアクセスを行う攻撃から暗号鍵を保護する効果も持つ。同様な効果は、鍵記憶部１４１への暗号鍵の保存を暗号化することによっても実現できる。
【００２６】
通信制御部１１０、管理制御部１２０、およびアクセス制御部１３０は、例えば、ＣＰＵ（Central  Processing  Unit）などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ＩＣ（Integrated  Circuit）などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。ノード１００がセキュリティチップを備え、セキュリティチップからのトラストチェーンにより、これらのソフトウェアおよびハードウェアの正当性を確認するように構成してもよい。
【００２７】
次に、このように構成された第１の実施形態にかかる暗号通信システムによるサービス利用処理について図４を用いて説明する。図４は、第１の実施形態におけるサービス利用処理の一例を示すシーケンス図である。
【００２８】
まず、アプリケーション２００は、ネットワークを介して通信制御部１１０にアクセスし、暗号鍵生成サービスの要求を送信する（ステップＳ１０１）。ノード１００は、要求元のアプリケーション２００の正当性の認証を行う（ステップＳ１０２）。ノード１００は、認証結果をアプリケーション２００に送信する（ステップＳ１０３）。認証された場合、アプリケーション２００およびノード１００は、必要な暗号鍵の詳細仕様を打合せ（ステップＳ１０４）、暗号鍵の生成および提供を開始する（ステップＳ１０５）。
【００２９】
アプリケーション２００での暗号通信が終了すると、アプリケーション２００は、暗号鍵生成サービスの終了を要求する（ステップＳ１０６）。ノード１００は、この要求に応じて暗号鍵生成サービスを終了し、終了したことをアプリケーション２００に通知する（ステップＳ１０７）。
【００３０】
このように、アプリケーション２００と通信制御部１１０との間で、暗号鍵生成サービスに関して多くの情報が送受信される。送受信される情報の一部は、管理制御部１２０およびアクセス制御部１３０へも、アプリケーション２００の要求に応じた暗号鍵を提供するために伝達される。また、提供する暗号鍵は、アクセス制御部１３０により、鍵記憶部１４１から読み出され、管理制御部１２０および通信制御部１１０を介してアプリケーション２００に伝達および提供される。
【００３１】
このように、ノード１００の内部と外部とで、情報の送受信が発生する。このため、外部の盗聴者は、情報が送受信されるルートまたはパスを通じて、外部からノード１００の内部の暗号鍵の盗聴または漏洩を行おうとする。
【００３２】
そこで本実施形態では、このような攻撃または侵入を妨げるために、通信制御部１１０が、アプリケーション２００からのメッセージの内容を解析するように設計する。
【００３３】
図５は、通信制御部１１０の詳細な機能構成の一例を示すブロック図である。図５に示すように、通信制御部１１０は、受信部１１１と、解析部１１２と、生成部１１３と、を備える。
【００３４】
受信部１１１は、アプリケーション２００などと接続される通信Ｉ／Ｆ（インタフェース）（図５には図示せず）を介して各種情報を受信する。例えば、受信部１１１は、暗号鍵に対するアクセスを要求するメッセージをアプリケーション２００から受信する。
【００３５】
図５には、メッセージのデータ構造の一例が示されている。この例では、メッセージは、宛先と、認証情報と、サービスメッセージとを含む。宛先は、例えば管理制御部１２０の機能の利用を指定するためのＩＰアドレスとポート番号などの識別情報である。認証情報は、例えば受信したメッセージが正当であるかを検証するために用いられる。サービスメッセージは、例えば送信元が要求するサービスの内容などを含むメッセージの実体である。なお、メッセージのデータ構造はこれに限られるものではない。
【００３６】
受信部１１１は、受信したメッセージから抽出したサービスメッセージを解析部１１２に送出する。
【００３７】
解析部１１２は、受信されたメッセージ（サービスメッセージ）を構文解析し、鍵記憶部１４１に記憶された暗号鍵に対するアクセス要求を含むか否かを解析する。解析部１１２は、例えば予め定められた構文規則に従ってサービスメッセージを解析し、当該構文規則に従った形式により記載されたアクセス要求を抽出する。構文規則は、どのような規則であってもよく、例えば正当な送信相手（アプリケーション２００など）との間で事前に定められる規則を用いることができる。
【００３８】
生成部１１３は、受信されたメッセージにアクセス要求が含まれる場合に、アクセスが要求される暗号鍵に対するアクセスを要求する要求情報を生成する。この要求情報は、ノード１００の内部で用いられる情報である。図５に示すように、要求情報は、例えば内部宛先と内部メッセージとを含む。内部宛先は、ノード１００の内部で用いる宛先である。内部メッセージは、解析部１１２により解析されたアクセス要求を含むメッセージである。
【００３９】
内部メッセージの形式は任意であるが、例えば外部から受信するサービスメッセージとは異なる形式とすれば、外部からの暗号鍵に対する不正なアクセスを低減できる。サービスメッセージが、予め規定されている構文や内容に合致していることが確認されれば、内部メッセージを全く新規に構築するのではなく、アプリケーション２００から受信されたメッセージの必要部分を内部メッセージの一部に組み込んで、管理制御部１２０へ伝達してもよい。
【００４０】
生成部１１３は、生成した要求情報（内部メッセージ）を管理制御部１２０へ伝達する。
【００４１】
解析部１１２および生成部１１３を備えることにより、外部からのメッセージ、または、メッセージに含まれるコードが、システムの通信制御部１１０よりも内部で実行されないようにすることができる。
【００４２】
上記のような構成では、管理制御部１２０およびアクセス制御部１３０等の機能が更新されるたびに、この更新に応じて内部メッセージを送受信できるように、通信制御部１１０も更新される必要がある。一方、通信制御部１１０を更新すれば、アプリケーション２００側の更新を不要とすることもできる。すなわち、ノード１００の内部機能の更新によるアプリケーション２００側の改変等の手間を低減できる。
【００４３】
次に、このように構成された第１の実施形態にかかるノード１００による鍵アクセス処理について図６を用いて説明する。図６は、第１の実施形態における鍵アクセス処理の一例を示すフローチャートである。
【００４４】
まず、受信部１１１が、アプリケーション２００などが送信したメッセージを、通信インタフェースを介して受信する（ステップＳ２０１）。受信部１１１は、受信したメッセージからサービスメッセージを抽出する（ステップＳ２０２）。受信部１１１が、受信したメッセージに含まれる認証情報を用いて当該メッセージを認証するように構成してもよい。
【００４５】
解析部１１２は、サービスメッセージを構文解析する（ステップＳ２０３）。解析部１１２は、サービスメッセージに暗号鍵に対するアクセス要求が含まれるか否かを判断する（ステップＳ２０４）。アクセス要求が含まれる場合（ステップＳ２０４：Ｙｅｓ）、生成部１１３は、アクセスが要求される暗号鍵に対するアクセスを要求する要求情報（内部メッセージ）を生成する（ステップＳ２０５）。生成部１１３は、生成した要求情報を管理制御部１２０に送信する。管理制御部１２０は、その要求情報が鍵アクセス処理であるので、要求情報をさらにアクセス制御部１３０に送信する。アクセス制御部１３０は、要求情報に従い、鍵記憶部１４１に記憶された暗号鍵にアクセスする（ステップＳ２０６）。
【００４６】
アクセス要求が含まれない場合は（ステップＳ２０４：Ｎｏ）、鍵アクセス処理を終了する。
【００４７】
このように、ステップＳ２０３およびステップＳ２０４で、構文規則に従った正しいアクセス要求であると解析されない限り、鍵記憶部１４１にアクセスすることができない。すなわち、既存の通信システムと接続しても、この通信システムからは、直接暗号鍵にアクセスできない。これにより、ノード１００の内部に生成される暗号鍵および記憶される暗号鍵の安全性を確保できる。
【００４８】
（変形例１）
外部から送信されたメッセージが、通信制御部１１０へ入る前に、そもそも無関係のメッセージを遮断するためのファイアウォール機能を設けてもよい。図７は、このように構成した変形例１のノード１００−２の構成の一例を示すブロック図である。図７に示すように、ノード１００−２は、通信制御部１１０と、管理制御部１２０と、アクセス制御部１３０と、鍵記憶部１４１と、ファイアウォール１５０−２と、を備える。
【００４９】
ファイアウォール１５０−２は、正当なメッセージのみを通過させるファイアウォール機能を実行する。例えば、ファイアウォール１５０−２は、メッセージの内容を判断して、サービス提供中の顧客のメッセージのみを通過させる機能を備える。また、ファイアウォール１５０−２が、メッセージの送受信のフェーズを判断し、正しいフェーズのメッセージのみを通過させるように構成してもよい。ファイアウォール１５０−２が、攻撃メッセージのパターン等を定期的に更新し、このパターンに適合するメッセージを通過させない機能を備えてもよい。これにより、最新の攻撃に対する防御が実現され、さらに安全性が向上される。
【００５０】
（変形例２）
ところで、暗号鍵生成サービスにおいて、サイバー攻撃など外部からの攻撃に対して重要なのは、暗号鍵、特に、ユーザに提供された暗号鍵を漏らさないことである。そのためには、外部からのメッセージに対する防御同様、外部へ向かうメッセージに対する防御機能を備えることが重要となる。特に暗号鍵は、途中で変更や変換ができず、鍵記憶部１４１からアプリケーション２００へ伝えられる情報である。このため、暗号鍵生成サービスとしては、その伝達相手の確認と、その暗号鍵の内部での扱いに関する情報を外部に漏らさないことが重要となる。
【００５１】
変形例２では、外部にメッセージを送信するときの検証機能をさらに備える。図８は、変形例２のノード１００−３の構成の一例を示すブロック図である。図８に示すように、ノード１００−３は、通信制御部１１０−３と、管理制御部１２０−３と、アクセス制御部１３０と、鍵記憶部１４１と、識別情報記憶部１４２と、を備える。
【００５２】
通信制御部１１０−３は、第１の実施形態の通信制御部１１０の機能に加え、さらに以下の機能を備える。
【００５３】
通信制御部１１０−３は、提供する暗号鍵をアプリケーション２００へ発信する際に、暗号鍵に対応した正当なアプリケーション２００へ送信しようとしているかを検証する。例えば、通信制御部１１０−３は、内部メッセージから暗号鍵を取り出して外部へのメッセージに変換する際に、宛先と、宛先と暗号鍵の組合せが正しいか確認する。具体的には、通信制御部１１０−３は、暗号鍵に関連付けられたＩＤと、宛先に関連付けられたＩＤ（アプリＩＤ等)とが正しい組み合わせであることを検証する。
【００５４】
また、通信制御部１１０−３は、複数の通信チャネルをサポートする場合は、メッセージを外部へ送出する際に、正しい通信チャネルのインタフェースへ渡されているかを確認する。
【００５５】
通信制御部１１０−３が、要求された暗号鍵生成サービスごとにノード１００−３内で独自ＩＤ（要求ＩＤ）を作成し、ノード１００−３の内部での暗号鍵の受渡しを要求ＩＤにより処理してもよい。識別情報記憶部１４２は、暗号鍵生成サービスを要求したアプリケーション２００を識別する識別情報（アプリＩＤ）と、要求ＩＤと、を対応づけて記憶する。通信制御部１１０−３は、例えばサービスメッセージに含まれるアプリＩＤに対応する要求ＩＤを識別情報記憶部１４２から取得する。そして、通信制御部１１０−３は、取得した要求ＩＤと、サービスメッセージに含まれる暗号通信条件とを含む要求情報を生成して管理制御部１２０−３に送信する。
【００５６】
管理制御部１２０−３は、このような要求情報に従って暗号鍵の管理を制御する。
【００５７】
このような構成により、外部から特定のアプリケーション２００が受けている暗号鍵についての情報を得ることがより困難になる。これは、外部からノード１００−３を攻撃する際に、予めターゲットにするアプリケーション２００に関わる暗号鍵を指定することができないからである。
【００５８】
また、アクセス制御部１３０、または、管理制御部１２０−３は、同じ暗号鍵が複数回出力されること、同じ暗号鍵が異なる要求ＩＤに対応づけて出力されること、または、同じ暗号鍵が異なる通信相手に出力されること、などを監視してもよい。これにより、異常時にはその暗号鍵の送信を停止して、暗号鍵の漏洩を防げる。
【００５９】
次に、通信制御部１１０、管理制御部１２０、およびアクセス制御部１３０をソフトウェアにより実現する場合の構成例について説明する。図９は、このように構成したノード１００に含まれるハードウェア構成とソフトウェア構成の一例を示す図である。
【００６０】
ノード１００は、主なハードウェア構成として、システムハードウェア３３０と、通信Ｉ／Ｆ３４０と、ストレージ３５０と、を備える。ノード１００は、主なソフトウェア構成として、仮想マシンＯＳ（オペレーティングシステム）３２０と、ＯＳ３１０ａ、３１０ｂと、通信制御部１１０、管理制御部１２０、およびアクセス制御部１３０と、を備える。
【００６１】
システムハードウェア３３０は、ＣＰＵ３３１と、ＲＯＭ３３２と、ＲＡＭ３３３と、セキュリティチップ３３４と、を備える。
【００６２】
通信Ｉ／Ｆ３４０は、ネットワークに接続して通信を行うインタフェースである。ストレージ３５０は、ＨＤＤ（Hard  Disk  Drive）などの記憶装置である。例えば鍵記憶部１４１がストレージ３５０に対応する。
【００６３】
仮想マシンＯＳ３２０は、コンピュータを仮想化して複数のＯＳを並列に実行可能とするソフトウェアである。ＯＳ３１０ａ、３１０ｂは、仮想マシンＯＳ３２０上で実行されるＯＳである。
【００６４】
図９に示すように、通信制御部１１０と、それより内部の管理制御部１２０およびアクセス制御部１３０等とが、相互に異なるＯＳ（ＯＳ３１０ａ、３１０ｂ）上で実行される。これにより、メモリーオーバーフローを使った攻撃に対する耐性を向上させることができる。
【００６５】
また、各ＯＳ（ＯＳ３１０ａ、３１０ｂ）とその上で動作しているソフトウェア（通信制御部１１０、管理制御部１２０およびアクセス制御部１３０）は、セキュリティチップ３３４により保護される。さらに、モジュール間（通信制御部１１０、管理制御部１２０およびアクセス制御部１３０の間）で相互認証を行うことにより、安全性を向上させるように構成してもよい。
【００６６】
以上のように、本実施形態により、管理制御部１２０等を外部から直接アクセスできないように構成することができる。暗号鍵の書込みや読出しでは、暗号鍵のデータ自身は暗号鍵を識別する情報（鍵ＩＤ）と共に透過的に扱われざるを得ない。従って、管理制御部１２０、さらには、アクセス制御部１３０が、悪意のある者に影響されないことが重要である。
【００６７】
（変形例３）
変形例３では、暗号鍵の管理を多層化する例を説明する。図１０は、リンク鍵およびアプリケーション鍵の２階層に多層化して管理する例を示す概念図である。図１０は、上位クラスの鍵であるリンク鍵が、下位クラスの鍵である複数のアプリケーション鍵に対応づけられて管理されることを模式的に表している。
【００６８】
図１１は、図１０のような多層化を実現するために用いる管理情報の一例を示す図である。管理情報は、鍵ＩＤと、鍵仮想クラスと、上位クラスＩＤと、鍵情報とを含む。鍵情報は、鍵ＩＤに対応する暗号鍵のデータである。
【００６９】
鍵仮想クラスは、多層化された暗号鍵が属する階層（クラス）を表す。図１０の例では、鍵仮想クラスは、リンククラス、および、ノードクラスのいずれかが設定される。
【００７０】
上位クラスＩＤは、鍵仮想クラスに設定された暗号鍵に対応づけられる上位クラスの暗号鍵の鍵ＩＤを表す。図１１では、鍵ＩＤ＝０００２の暗号鍵はアプリケーション鍵であり、上位クラスの暗号鍵は、鍵ＩＤ＝０００１のリンク鍵である例が示されている。
【００７１】
例えばアクセス制御部１３０は、このような管理情報を用いて鍵記憶部１４１に記憶された暗号鍵にアクセスする。暗号鍵の属性を用いて暗号鍵を管理してもよい。属性とは、例えば、暗号鍵が、「リンク鍵」なのか、「アプリケーション鍵」なのかを示す情報である。
【００７２】
各階層の暗号鍵の管理のそれぞれをモジュール化するように構成してもよい。図１２は、このように構成した場合のノード１００の構成例を示すブロック図である。なお、図１２では、管理制御部１２０、アクセス制御部１３０ａ、１３０ｂ、および、鍵記憶部１４１ａ、１４１ｂのみを記載し、他の構成部は省略している。
【００７３】
図１２に示す構成例は、２つのアクセス制御部１３０ａ、１３０ｂと、２つの鍵記憶部１４１ａ、１４１ｂとを備える。鍵記憶部１４１ａおよび１４１ｂは、それぞれアプリケーション鍵およびリンク鍵を記憶する。鍵記憶部１４１ａおよび１４１ｂは、物理的に同じ記憶媒体の異なる記憶領域として構成してもよいし、物理的に異なる記憶媒体により構成してもよい。
【００７４】
アクセス制御部１３０ａ、１３０ｂは、それぞれ鍵記憶部１４１ａおよび１４１ｂに対するアクセスを制御する。
【００７５】
このような構成により、例えば直接アプリケーション２００に提供する暗号鍵（アプリケーション鍵など）以外の暗号鍵（リンク鍵、アプリケーション鍵など）については、外部からの隔離度をさらに向上させることができる。すなわち、例えばＱＫＤで配送される貴重な量子鍵に対する外部からのアクセスを、さらに困難とすることができる。
【００７６】
なお、管理制御部１２０も暗号鍵の各階層に対応して複数備えるように構成してもよい。すなわち、各階層の暗号鍵の生成および管理処理も多層化するように構成してもよい。これにより、暗号鍵生成サービスの特定の機能の安全性を、より高めることができる。
【００７７】
このように、第１の実施形態によれば、暗号鍵提供のための通信インタフェースを介しての外部からの暗号鍵盗聴およびコピー等の攻撃を困難にし、安全に暗号鍵を提供できる。
【００７８】
（第２の実施形態）
暗号鍵生成サービスの構成によっては、アプリケーション２００が必要とする複数の個所で暗号鍵を発生させることがある。そして、暗号鍵の共有のために、例えば、暗号鍵を管理する機能（管理制御部）が、アプリケーション２００以外の通信相手に対する通信チャネルを持つ場合がある。この場合、この通信チャネルも外部からの攻撃または侵入の経路となり得る。
【００７９】
第２の実施形態では、複数の通信チャネル（通信Ｉ／Ｆ）を有する場合の例を説明する。図１３は、第２の実施形態にかかるノード１００−４の構成の一例を示すブロック図である。図１３に示すように、ノード１００−４は、通信制御部１１０と、管理制御部１２０−４と、アクセス制御部１３０と、鍵記憶部１４１と、通信制御部１６０−４と、を備える。
【００８０】
第２の実施形態では、管理制御部１２０−４の機能、および、通信制御部１６０−４を追加したことが第１の実施形態と異なっている。その他の構成および機能は、第１の実施形態にかかるノード１００のブロック図である図３と同様であるので、同一符号を付し、ここでの説明は省略する。
【００８１】
管理制御部１２０−４は、アプリケーション２００との通信Ｉ／Ｆ（図１３には図示せず）だけでなく、生成した暗号鍵（例えばリンク鍵）を交換および同期するための通信Ｉ／Ｆ（図１３には図示せず）を介して、外部と通信する。
【００８２】
通信制御部１６０−４は、暗号鍵交換および同期用の通信Ｉ／Ｆを介した通信を制御する。通信制御部１６０−４は、通信制御部１１０と同様の機能を備える。これにより、アプリケーション２００以外の通信相手に対する通信Ｉ／Ｆを介した外部からの攻撃を困難とし、安全性を向上できる。
【００８３】
なお、図１３では、通信制御部１６０−４を、ＯＳ３１０ａおよびＯＳ３１０ｂと異なるＯＳ３１０ｃ上で動作させる例が示されている。このような構成により、メモリーオーバーフローを使った攻撃に対する耐性をさらに向上させることができる。
【００８４】
（第３の実施形態）
運用管理機能にも、同様な考慮が必要である。運用管理機能は、ノードの安定かつ堅実な運用のために必要である。運用管理機能は、集中管理を行うために通信機能を備え、ネットワークを介した機能の拡張が行われる。従って、運用管理機能が用いる通信チャネルを介しての暗号鍵への攻撃も阻止しなければならない。
【００８５】
第３の実施形態では、対応する通信チャネル（通信Ｉ／Ｆ）を有する運用管理機能を備える例を説明する。図１４は、第３の実施形態にかかるノード１００−５の構成の一例を示すブロック図である。図１４に示すように、ノード１００−５は、通信制御部１１０と、管理制御部１２０と、アクセス制御部１３０−５と、鍵記憶部１４１と、運用制御部１７０−５と、運用情報記憶部１４３と、を備える。
【００８６】
第３の実施形態では、アクセス制御部１３０−５の機能、および、運用制御部１７０−５と運用情報記憶部１４３とを追加したことが第１の実施形態と異なっている。その他の構成および機能は、第１の実施形態にかかるノード１００のブロック図である図３と同様であるので、同一符号を付し、ここでの説明は省略する。
【００８７】
運用情報記憶部１４３は、運用管理に用いる各種情報を記憶する。
【００８８】
運用制御部１７０−５は、管理サーバ４００からの運用管理の要求を受信し、この要求に応じて各種運用管理機能を制御する。管理サーバ４００は、運用管理機能を遠隔から行うサーバである。運用制御部１７０−５は、アプリケーション２００と接続される通信Ｉ／Ｆと異なる通信Ｉ／Ｆ（図示せず）を介して、管理サーバ４００と通信する。
【００８９】
運用制御部１７０−５は、通信制御部１１０と同様の機能を備えてもよい。例えば、運用制御部１７０−５が、外部からのコマンドを解釈し、必要な応答を作成する。コマンドには書込み（登録、働きかけ）を行うコマンド（書込みコマンド）が含まれる。運用制御部１７０−５は、受信したコマンドが予め定義されている内容であることを確認する。これにより、異常アクセスを発生させないことができる。
【００９０】
アクセス制御部１３０−５は、運用制御部１７０−５から要求された暗号鍵に対するアクセスを拒否する機能をさらに備える。例えば、アクセス制御部１３０−５は、運用制御部１７０−５からのメッセージに対しては、鍵情報を返さないように設計する。これにより、運用制御部１７０−５を対象とした攻撃により、鍵情報が漏洩する危険を抑止できる。
【００９１】
（第４の実施形態）
第４の実施形態では、暗号鍵生成サービスを実現するノードの派生として、アプリケーション２００からのアクセスを受け付けず、暗号鍵の交換（同期）の管理、および、暗号鍵の中継を行う中継ノードとして構成する例を説明する。中継ノードは、暗号鍵の交換および同期を行う暗号通信に、通信可能な距離の制限などが存在する場合に用いられる。簡単なノード構成で、暗号通信システムの設計自由度を向上させる利点があるため、このような中継ノードが有用になる。例えば中継ノードを用いることで、距離に制限が存在する場合であっても暗号通信の長距離化が実現でき、結果として暗号通信の高速化が実現できる。
【００９２】
図１５は、第４の実施形態にかかるノード１００−６の構成の一例を示すブロック図である。図１５に示すように、ノード１００−６は、通信制御部１６０−４ａ、１６０−４ｂと、管理制御部１２０ａ、１２０ｂと、アクセス制御部１３０と、鍵記憶部１４１と、運用制御部１７０−５と、運用情報記憶部１４３と、を備える。
【００９３】
第４の実施形態では、通信制御部１１０を削除したこと、複数の通信制御部１６０−４ａ、１６０−４ｂと、複数の管理制御部１２０ａ、１２０ｂと、を備えることが第３の実施形態と異なっている。その他の構成および機能は、第３の実施形態にかかるノード１００−５のブロック図である図１４と同様であるので、同一符号を付し、ここでの説明は省略する。
【００９４】
通信制御部１６０−４ａ、１６０−４ｂは、それぞれ暗号鍵を交換する通信相手と接続する通信Ｉ／Ｆ（図示せず）を介する通信を制御する。通信制御部１６０−４ａ、１６０−４ｂは、それぞれ図１３の通信制御部１６０−４（すなわち図３の通信制御部１１０）と同様の機能を備える。これにより、外部からの攻撃を困難とし安全性を向上できる。
【００９５】
本実施形態のノード１００−６は、暗号鍵を中継（転送）する中継ノードとして構成される。このため、例えば、通信制御部１６０−４ａは、ある外部装置（第１装置）から送信された暗号鍵を、他の外部装置（第２装置）へ中継することを要求するメッセージを受信する。通信制御部１６０−４ａは、中継が要求された暗号鍵を、アクセス制御部１３０を介して鍵記憶部１４１に記憶する。
【００９６】
通信制御部１６０−４ａは、記憶した暗号鍵を第２装置に転送することを、通信制御部１６０−４ｂに要求する。通信制御部１６０−４ｂは、この要求に応じて暗号鍵を鍵記憶部１４１から読み出し、第２装置に送信する。
【００９７】
なお、１つの通信制御部１６０−４が、通信制御部１６０−４ａおよび１６０−４ｂの機能を実現するように構成してもよい。同様に、１つの管理制御部１２０が、管理制御部１２０ａおよび１２０ｂの機能を実現するように構成してもよい。
【００９８】
また、本実施形態では、第３の実施形態を基に変更した例を説明したが、上述の他の実施形態および変形例の１つ以上の機能を組み合わせた中継ノードとすることもできる。
【００９９】
ところで、上述のような暗号鍵生成サービスは、既存の暗号通信を行うアプリケーションに対して、その安全性を向上させる手段として、付加的に提供される場合もある。
【０１００】
この提供方法としては、既存のアプリケーションに付加するモジュールをアプリケーション内蔵ライブラリや外付けフィルタの形式で提供する方法が考えられる。この際には、この提供モジュールと通信制御部との間の通信における相互認証手法等を、安全性を考慮して設計する必要がある。提供モジュールが、悪意のある者に利用されて、通信制御部に対する成りすましや、アプリケーションと通信制御部との間へのマンインザミドル型盗聴が容易になる可能性があるためである。
【０１０１】
基本的には、相互認証のための情報を確実にアプリケーションとの間で共有する手段を用意すればよい。既存のアプリケーションが十分信頼できる認証システムを持っている場合には、それを活用することも可能である。提供モジュールの形態により、活用手法を選択する必要がある。
【０１０２】
以上説明したとおり、第１から第４の実施形態によれば、外部システムからは暗号鍵に直接アクセスできないため、より高度な暗号鍵を提供できる暗号鍵生成サービスを安全に活用できる。
【０１０３】
第１から第４の実施形態にかかる通信装置で実行されるプログラムは、ＲＯＭ等に予め組み込まれて提供される。
【０１０４】
第１から第４の実施形態にかかる通信装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【０１０５】
さらに、第１から第４の実施形態にかかる通信装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１から第４の実施形態にかかる通信装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１０６】
第１から第４の実施形態にかかる通信装置で実行されるプログラムは、コンピュータを上述した通信装置の各部として機能させうる。このコンピュータは、ＣＰＵがコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【０１０７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０８】
１００  ノード
１１０  通信制御部
１１１  受信部
１１２  解析部
１１３  生成部
１２０  管理制御部
１３０  アクセス制御部
１４１  鍵記憶部
１４２  識別情報記憶部
１４３  運用情報記憶部
１５０  ファイアウォール
１６０  通信制御部
１７０  運用制御部
２００  アプリケーション
【図１】
2015073317.tif 000003
【図２】
2015073317.tif 000004
【図３】
2015073317.tif 000005
【図４】
2015073317.tif 000006
【図５】
2015073317.tif 000007
【図６】
2015073317.tif 000008
【図７】
2015073317.tif 000009
【図８】
2015073317.tif 000010
【図９】
2015073317.tif 000011
【図１０】
2015073317.tif 000012
【図１１】
2015073317.tif 000013
【図１２】
2015073317.tif 000014
【図１３】
2015073317.tif 000015
【図１４】
2015073317.tif 000016
【図１５】
2015073317.tif 000017