情報通信装置および方法
【課題】CKC要求を行った際にデータ通信用TCPコネクションの切断タイミングによっては正しくCKC応答を受信できずにストリーミング再生が停止することがある。
【解決手段】パケット監視部(163)は、CKC応答としてSource機器からREJECTEDレスポンスを受信すると、情報管理テーブル(162)を参照し、このCKC応答に含まれているポート番号に対応づけられているデータ通信用TCPコネクションのコネクション状態を確認し、当該コネクション状態が「切断」となっている場合は、不当なREJECTEDレスポンスを受信した旨を情報更新通知部(164)を通じてコンテンツ鍵制御部(150)に通知する。コンテンツ鍵制御部(150)は、不当なREJECTEDレスポンスを受信した旨の通知を受けると、REJECTEDレスポンスに対するCKC要求の再実施をコンテンツ鍵確認部(140)に指示することはせずに、リカバリ処理を行う。
【解決手段】パケット監視部(163)は、CKC応答としてSource機器からREJECTEDレスポンスを受信すると、情報管理テーブル(162)を参照し、このCKC応答に含まれているポート番号に対応づけられているデータ通信用TCPコネクションのコネクション状態を確認し、当該コネクション状態が「切断」となっている場合は、不当なREJECTEDレスポンスを受信した旨を情報更新通知部(164)を通じてコンテンツ鍵制御部(150)に通知する。コンテンツ鍵制御部(150)は、不当なREJECTEDレスポンスを受信した旨の通知を受けると、REJECTEDレスポンスに対するCKC要求の再実施をコンテンツ鍵確認部(140)に指示することはせずに、リカバリ処理を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号/復号用の鍵を所定のタイミングで更新しながら暗号化データを通信する技術に関する。
【背景技術】
【0002】
Source機器(サーバ)とSink機器(クライアント)との間で暗号/復号用の鍵を所定のタイミングで更新しながら暗号化データを通信する技術がある(例えば特許文献1参照)。この通信では、Source機器とSink機器との間でまず認証鍵交換を実施し、これに成功した後、暗号化通信を行うことが特徴である。
【0003】
上記の通信の一例として、著作権保護技術のDTCP(Digital Transmission Content Protection)-IP規格に従ってSource機器とSink機器との間でAKE(Authentication and Key Exchange)に基づく鍵交換手続き,および,鍵交換により共有した鍵を利用した暗号化コンテンツ伝送を行う仕組みを図12に示す。
【0004】
DTCP-IP規格では、HTTP(Hyper Text Transfar Protocol)を用いた暗号化通信の場合、Source機器は、HTTPのGETメソッドによるデータ受信要求毎,もしくは,最大でも128MBのデータ毎にノンス(Nc)を更新するように決められている。ここでノンス(Nc)は暗号化用のコンテンツ鍵を生成するための乱数である。このように暗号化データ通信の途中でコンテンツ鍵が動的に変更されることから、コンテンツ鍵の確認手続きが必要になる。なお、DTCP-IPでは暗号化鍵と復号化鍵は同じ鍵を示し、これらを統一してコンテンツ鍵と呼ぶ。ノンス(Nc)と128MBの暗号化データはデータ通信用TCPコネクションで通信され、このTCPコネクションが維持されている間、ノンス(Nc)は128MB毎に単調増加,つまり,インクリメントされる。
【0005】
Sink機器は、データ通信用TCPコネクションとは別にコンテンツ鍵確認用TCPコネクション(CKC用TCPコネクション(CKC:Contents Key Confrimation))を確立し、Source機器に対してコンテンツ鍵確認手続きを行う(CKC処理)。図13に示すように、この確認手続きでは、まずSink機器がノンス(Nc)を基にした確認メッセージを作成し、CKC要求をSource機器へ送信する。次にSource機器は、Sink機器からの確認メッセージを受信した時点のノンス(Nc)を用いて検査用メッセージを作成し、確認メッセージと比較する。2つのメッセージが一致した場合、Source機器はCKC応答としてACCEPTEDレスポンスをSink機器に送信し、Sink機器はデータ受信を継続できる。一方、メッセージが一致しなかった場合、Source機器はCKC応答としてREJECTEDレスポンスをSink機器に送信する。CKC応答としてREJECTEDレスポンスを受け取るとSink機器は、受信したデータの復号処理を停止しなければならない,もしくは,所定の時間内にCKC処理を再度実行し成功させなければならない。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007-36953号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
Sink機器は、データ受信が完了した場合、CKC処理の状況にかかわらずデータ通信用TCPコネクションを切断することができる。データ通信用TCPコネクションが切断されるとSource機器はノンス(Nc)を更新しなければならないことがDTCP-IP規格で定められている。
【0008】
したがって、図14に示すように、データ通信用TCPコネクションが切断された後にSource機器がCKC要求を受信した場合、既にノンス(Nc)を更新しているため、Sink機器が生成した確認メッセージが更新前のノンス(Nc)に基づく正当なものであるにも関わらず検査用メッセージと確認メッセージとが一致せずにREJECTEDレスポンスが発生してしまう。REJECTEDレスポンスが発生した場合、Sink機器は、1分以内にCKC要求を成功させることができなければ受信データの復号を停止しなければならない。
【0009】
このように、Sink機器からSource機器へCKC要求を行った際にデータ通信用TCPコネクションの切断タイミングによってはSink機器において正しくCKC応答を受信できないことがあり、その結果、受信データの復号を停止しなければならなくなる場合がある。
【0010】
上記のような状況は、断続的に比較的少量のデータを通信する場合,例えば,映像の早送りや30秒スキップ再生などの特殊再生時に発生する。このような特殊再生時には、データ通信用TCPコネクションの接続/切断を繰り返し実施しながらCKC処理を行うため、CKC処理前にデータ通信用TCPコネクションが切断されSource機器のノンス(Nc)が更新されるという状況が発生する。
【課題を解決するための手段】
【0011】
本発明による情報通信装置は、IPネットワーク上で相手機器との間で暗号/復号用の鍵を所定のタイミングで更新しながら暗号化データを通信する装置であって、前記相手機器との間でデータ通信用TCPコネクションを確立し、前記相手機器からノンスと暗号化データを受信し、当該暗号化データの受信が完了すると前記データ通信用TCPコネクションを切断するデータ受信部と、前記データ受信部により受信された暗号化データを復号するための鍵を前記データ受信部により受信されたノンスに基づいて生成するコンテンツ鍵生成部と、前記データ受信部により受信された暗号化データを前記コンテンツ鍵生成部により生成された鍵を用いて復号するデータ復号部と、前記相手機器との間で前記データ通信用TCPコネクションとは別にコンテンツ鍵確認用TCPコネクション(CKC用TCPコネクション)を確立し、前記コンテンツ鍵生成部により生成された鍵が正しいことの確認要求(CKC要求)を前記相手機器に対して行うコンテンツ鍵確認部と、前記コンテンツ鍵確認部に前記CKC要求の実施/不実施を指示するコンテンツ鍵制御部と、前記データ通信用TCPコネクションと前記CKC用TCPコネクションとを対応付けて管理し、各々のコネクションの状態に従い前記コンテンツ鍵制御部へ情報通知を行うCKC制御部とを備え、前記CKC制御部は、情報管理テーブルと、前記データ通信用TCPコネクションについての情報と前記CKC用TCPコネクションについての情報とを対応付けて前記情報管理テーブルに登録するポート管理部と、前記情報管理テーブルの情報に基づいて送受信パケットを監視し、必要に応じて前記情報管理テーブルの内容を更新するパケット監視部と、前記情報管理テーブルの情報が更新されると前記コンテンツ鍵制御部へ情報更新通知を行う情報更新通知部とを備える。
【0012】
上記情報通信装置によれば、データ通信用TCPコネクションの状態に適切なコンテンツ鍵確認手続きを実施することが可能となる。
【0013】
好ましくは、前記ポート管理部は、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号とを対応付けて前記情報管理テーブルに登録し、前記パケット監視部は、前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、前記コンテンツ鍵確認部によるCKC要求に対する応答(CKC応答)として前記相手機器からREJECTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているデータ通信用TCPコネクションのコネクション状態を確認し、当該コネクション状態が「切断」となっている場合は、不当なREJECTEDレスポンスを受信した旨を前記情報更新通知部を通じて前記コンテンツ鍵制御部に通知し、前記コンテンツ鍵制御部は、不当なREJECTEDレスポンスを受信した旨の通知を受けると、REJECTEDレスポンスに対するCKC要求の再実施を前記コンテンツ鍵確認部に指示することはせずに、リカバリ処理を行う。
【0014】
上記情報通信装置によれば、REJECTEDレスポンスを受信した場合でも、コンテンツ鍵確認が失敗したためか,もしくは,データ通信用TCPコネクションが既に切断されているために相手機器においてノンスが更新されているためかを詳細に判定することが可能となり、より適切なリカバリ処理を実施することが可能となる。
【0015】
好ましくは、前記CKC制御部は、所定のパケットの通信を遅延させるパケット制御部をさらに備え、前記ポート管理部は、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、前記パケット監視部は、前記コンテンツ鍵確認部からのCKC要求パケットを検出すると、前記情報管理テーブルに登録されているCKC用TCPコネクションについての情報のうち、このCKC要求パケットに含まれているポート番号に対応するコネクション状態を「CKC実施中」に更新し、前記データ通信用TCPコネクションの切断パケットを検出すると、当該切断パケットを前記パケット制御部へ振り分け、前記コンテンツ鍵確認部によるCKC要求に対する応答(CKC応答)として前記相手機器からACCEPTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているCKC用TCPコネクションのコネクション状態を「CKC実施中」から「CKC実施済み」に更新し、前記パケット制御部は、前記情報管理テーブルに登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」から「CKC実施済み」に更新されるまで前記切断パケットの送信を遅延させる。
【0016】
上記情報通信装置によれば、コンテンツ鍵確認処理を実施中はデータ通信用TCPコネクションを確実に維持することが可能となり、不当なREJECTEDレスポンスの発生を防止することが可能となる。
【0017】
好ましくは、前記ポート管理部は、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、前記パケット監視部は、前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、前記情報更新通知部は、前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示していることを検知すると、これ以降のCKC要求が無意味であることを前記コンテンツ鍵制御部に通知し、前記コンテンツ鍵制御部は、CKC要求が無意味であることの通知を前記情報更新通知部より受けると前記コンテンツ鍵確認部にこれ以降のCKC要求の不実施を指示する。
【0018】
上記情報通信装置によれば、確実に失敗することが分かっているコンテンツ鍵確認処理の実施を防止することができる。
【0019】
好ましくは、前記CKC制御部は、所定のパケットの通信を破棄するパケット制御部をさらに備え、前記ポート管理部は、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、前記パケット監視部は、前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、前記コンテンツ鍵確認部からのCKC要求パケットを検出すると、当該CKC要求パケットを前記パケット制御部へ振り分け、前記パケット制御部は、前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示しているときは、前記パケット監視部より受け取ったCKC要求パケットを破棄する。
【0020】
上記情報通信装置によれば、確実に失敗することが分かっているコンテンツ鍵確認処理の実施を防止することができる。
【0021】
本発明による情報通信方法は、IPネットワーク上で相手機器との間で暗号/復号用の鍵を所定のタイミングで更新しながら暗号化データを通信する方法であって、前記相手機器との間でデータ通信用TCPコネクションを確立し、前記相手機器からノンスと暗号化データを受信し、当該暗号化データの受信が完了すると前記データ通信用TCPコネクションを切断するステップ(S1)と、前記ステップ(S1)で受信された暗号化データを復号するための鍵を前記ステップ(S1)で受信されたノンスに基づいて生成するステップ(S2)と、前記ステップ(S1)で受信された暗号化データを前記ステップ(S2)で生成された鍵を用いて復号するステップ(S3)と、前記相手機器との間で前記データ通信用TCPコネクションとは別にコンテンツ鍵確認用TCPコネクション(CKC用TCPコネクション)を確立し、前記ステップ(S2)で生成された鍵が正しいことの確認要求(CKC要求)を前記相手機器に対して行うステップ(S4)と、前記データ通信用TCPコネクションについての情報と前記CKC用TCPコネクションについての情報とを対応付けて情報管理テーブルに登録するステップ(S5)と、前記情報管理テーブルの情報に基づいて送受信パケットを監視し、必要に応じて前記情報管理テーブルの内容を更新するステップ(S6)と、前記情報管理テーブルに登録されている前記データ通信用コネクションの状態に応じて前記ステップ(S4)における前記CKC要求の実施/不実施を指示するステップ(S7)とを備える。
【0022】
上記情報通信方法によれば、データ通信用TCPコネクションの状態に適切なコンテンツ鍵確認手続きを実施することが可能となる。
【0023】
好ましくは、前記ステップ(S5)では、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号とを対応付けて前記情報管理テーブルに登録し、前記ステップ(S6)では、前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、前記ステップ(S4)によるCKC要求に対する応答(CKC応答)として前記相手機器からREJECTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているデータ通信用TCPコネクションのコネクション状態を確認し、当該コネクション状態が「切断」となっている場合は、不当なREJECTEDレスポンスを受信したと判断し、前記ステップ(S7)では、前記ステップ(S6)で不当なREJECTEDレスポンスを受信したと判断されたときは、このREJECTEDレスポンスに対して前記ステップ(S4)における前記CKC要求の再実施を指示することはせずに、リカバリ処理を行う。
【0024】
上記情報通信方法によれば、REJECTEDレスポンスを受信した場合でも、コンテンツ鍵確認が失敗したためか,もしくは,データ通信用TCPコネクションが既に切断されているために相手機器においてノンスが更新されているためかを詳細に判定することが可能となり、より適切なリカバリ処理を実施することが可能となる。
【0025】
好ましくは、前記ステップ(S5)では、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、前記ステップ(S6)では、CKC要求パケットを検出すると、前記情報管理テーブルに登録されているCKC用TCPコネクションについての情報のうち、このCKC要求パケットに含まれているポート番号に対応するコネクション状態を「CKC実施中」に更新し、前記コンテンツ鍵確認部によるCKC要求に対する応答(CKC応答)として前記相手機器からACCEPTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているCKC用TCPコネクションのコネクション状態を「CKC実施中」から「CKC実施済み」に更新し、前記情報管理テーブルに登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」であるときに前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」から「CKC実施済み」に更新されるまで前記切断パケットの送信を遅延させる。
【0026】
上記情報通信方法によれば、コンテンツ鍵確認処理を実施中はデータ通信用TCPコネクションを確実に維持することが可能となり、不当なREJECTEDレスポンスの発生を防止することが可能となる。
【0027】
好ましくは、前記ステップ(S5)では、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、前記ステップ(S6)では、前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、前記ステップ(S7)では、前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示しているときは、これ以降のCKC要求が無意味であると判断し、これ以降の前記ステップ(S4)によるCKC要求の不実施を指示する。
【0028】
上記情報通信方法によれば、確実に失敗することが分かっているコンテンツ鍵確認処理の実施を防止することができる。
【0029】
好ましくは、前記ステップ(S5)では、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、前記ステップ(S6)では、前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示している場合にCKC要求パケットを検出したときは当該CKC要求パケットを破棄する。
【0030】
上記情報通信方法によれば、確実に失敗することが分かっているコンテンツ鍵確認処理の実施を防止することができる。
【発明の効果】
【0031】
本発明によれば、CKC要求に対する誤ったREJECTEDレスポンスに正しく対応できる,または,誤ったREJECTEDレスポンスそのものを発生させない,または,不必要なCKC処理を実施しない等が可能となり、これらの結果、暗号化通信を継続することができる。
【図面の簡単な説明】
【0032】
【図1】(a)は、第1の実施形態による通信システムの全体構成を示すブロック図である。(b)は、図1(a)に示したSink機器の内部構成を示すブロック図である。
【図2】CKC制御部(160)の内部構成を示すブロック図である。
【図3】暗号化通信の処理の流れを説明するためのシーケンス図である。
【図4】情報管理テーブル(162)に登録される情報の例を示す図である。
【図5】情報管理テーブル(162)に登録されるコネクション状態およびその内容を示す一覧表である。
【図6】第2の実施形態によるCKC制御部(160)の内部構成を示すブロック図である。
【図7】暗号化通信の処理の流れを説明するためのシーケンス図である。
【図8】情報管理テーブル(162)に登録される情報の例を示す図である。
【図9】第3の実施形態によるCKC制御部(160)の内部構成を示すブロック図である。
【図10】暗号化通信の処理の流れを説明するためのシーケンス図である。
【図11】情報管理テーブル(162)に登録される情報の例を示す図である。
【図12】DTCP-IP規格に従ってSource機器とSink機器との間で行われる暗号化コンテンツ伝送のシーケンス図である。
【図13】DTCP-IP規格に従ってSource機器とSink機器との間で行われる暗号化コンテンツ伝送のシーケンス図である。
【図14】DTCP-IP規格に従ってSource機器とSink機器との間で行われる暗号化コンテンツ伝送のシーケンス図である。
【発明を実施するための形態】
【0033】
以下、好ましい実施形態について図面を参照して説明する。なお、図面において同じ参照符号を付けた構成要素は、特別な動作の説明がない限り、基本的に同様の動作を行うので、再度の説明を省略する場合がある。
【0034】
(第1の実施形態)
第1の実施形態による通信システムの全体構成を図1aに示す。この通信システムでは、複数のSource機器(サーバ)およびSink機器(クライアント)がIPネットワークに接続されており、Source機器とSink機器との間でDTCP-IP規格に準拠した暗号化通信が行われる。この暗号化通信の概略手順は図12,13と同様であり、Source機器とSink機器との間で認証処理が行われ、認証に成功すると認証鍵が交換される。この認証鍵をSource機器とSink機器とで共有し、この認証鍵を元にコンテンツ鍵(暗号鍵/復号鍵)が生成される。Source機器は、保持するデータ(コンテンツ)をコンテンツ鍵を用いて暗号化してSink機器に伝送する。Sink機器は、Source機器から伝送された暗号化データをコンテンツ鍵を用いて復号し再生する。
【0035】
図1aに示したSink機器の内部構成を図1bに示す。Sink機器はデータ受信部110,コンテンツ鍵生成部120,データ復号部130,コンテンツ鍵確認部140,コンテンツ鍵制御部150,CKC制御部160,通信プロトコル処理部170,MAC処理部180を備えている。図1bに示す各ブロックはハードウェアとして実装することもソフトウェアとして実装することも可能である。CKC制御部160の内部構成を図2に示す。CKC制御部160はポート管理部161,情報管理テーブル162,パケット監視部163,情報更新通知部164を備えている。
【0036】
次に、上記のように構成されたSink機器がSource機器との間で行う暗号化通信の流れについて図3を参照しつつ説明する。
【0037】
まず、データ受信部110によりSource機器との間でデータ通信用TCPコネクション201が確立される(ST101)。データ受信部110は、Source機器から送られてくるノンス(Nc)を受信し(ST102)、コンテンツ鍵生成部120に設定する(ST103)。これ以降、データ受信部110は、暗号化データの受信を継続し、ノンス(Nc)を受信するたびにコンテンツ鍵生成部120に設定する処理(ST102,ST103)を繰り返し実施し、データ受信が完了(ST104)するとデータ通信用TCPコネクション201を切断する(ST105)。後述する処理は、データ受信部110が暗号化データを受信中に並行して行われる。
【0038】
コンテンツ鍵生成部120は、データ受信部110により設定されたノンス(Nc)に基づいてコンテンツ鍵を生成する(ST106)。コンテンツ鍵生成部120は、生成したコンテンツ鍵をコンテンツ鍵確認部140,データ復号部130に設定する(ST107)。さらにコンテンツ鍵生成部120は、コンテンツ鍵の生成が完了したことをコンテンツ鍵制御部150に通知する(ST108)。
【0039】
コンテンツ鍵生成部120から完了通知を受けるとコンテンツ鍵制御部150は、上記ステップST101で確立されたデータ通信用TCPコネクション201のSource側ポート番号とSink側ポート番号をCKC制御部160に設定する(ST109)。
【0040】
CKC制御部160では、コンテンツ鍵制御部150により設定されたポート番号をポート管理部161が情報管理テーブル162に登録する。図4に示すように、情報管理テーブル162には、管理番号(1〜N)が設定されており、各管理番号に対して、データ通信用TCPコネクション201についての情報とCKC用TCPコネクション202についての情報を登録することができる。データ通信用TCPコネクション201についての情報としては、Source側ポート番号,Sink側ポート番号,コネクション状態を登録することができる。CKC用TCPコネクション202についての情報としては、Source側ポート番号,Sink側ポート番号を登録することができる。情報管理テーブル162に登録されるコネクション状態およびその内容は図5に示すとおりである。
【0041】
ここでは、図4aに示すように、管理番号(1)に対してデータ通信用TCPコネクション201のSource側ポート番号(5542),Sink側ポート番号(10024),コネクション状態(接続完了)がポート管理部161によって登録される。
【0042】
コンテンツ鍵制御部150は、コンテンツ鍵確認部140にコンテンツ鍵確認要求(CKC要求)の実施を指示する(ST110)。CKC要求実施の指示を受けたコンテンツ鍵確認部140は、Source機器との間でCKC用TCPコネクション202を確立する(ST111)。CKC用TCPコネクション202が確立されるとコンテンツ鍵制御部150は、上記ステップST111で確立されたCKC用TCPコネクション202のSource側ポート番号とSink側ポート番号をCKC制御部160に設定する(ST112)。
【0043】
CKC制御部160では、コンテンツ鍵制御部150により設定されたポート番号をポート管理部161が情報管理テーブル162に登録する。このときポート管理部161は、このCKC用TCPコネクション202についての情報と先に登録されたデータ通信用TCPコネクション201についての情報(図4a)とを対応づけて登録する。ここでは、図4bに示すように、先に登録されたデータ通信用TCPコネクション201についての情報(図4a)と共通の管理番号(1)に対応づけてCKC用TCPコネクション202のSource側ポート番号(5543),Sink側ポート番号(10025)がポート管理部161によって登録される。
【0044】
これ以降、CKC制御部160内のパケット監視部163は、情報管理テーブル162に登録されたデータ通信用TCPコネクション情報とCKC用TCPコネクション情報に基づいて送受信パケットを監視し、必要に応じて情報管理テーブル162の内容を更新する。
【0045】
Source機器からの暗号化データの受信が完了すると(ST104)、データ受信部110は、Source機器との間のデータ通信用TCPコネクション201を切断する(ST105)。データ通信用TCPコネクション201が切断されると、DTCP-IP規格に従い、Source機器はノンス(Nc)を更新する(ST113)。
【0046】
データ通信用TCPコネクション201の切断処理が発生すると、データ通信用TCPコネクション201の切断パケットがパケット監視部163により検出される(TCPコネクションの切断パケットは一般的な情報を元に判定可能なため詳細な説明は省略する)。切断パケットを検出するとパケット監視部163は、図4cに示すように、情報管理テーブル162に登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態(ここでは管理番号(1)に対応づけられているコネクション状態)を「接続完了」から「切断」に更新する(ST114)。
【0047】
ここでは、上記のように情報管理テーブル162の内容が更新された後に、コンテンツ鍵確認部140によりSource機器に対してCKC要求が実施されるものとする(ST115)。この場合、上記ステップST113において既にノンス(Nc)が更新されているため、Sink機器が生成した確認メッセージが更新前のノンス(Nc)に基づく正当なものであるにも関わらずSource機器において検査用メッセージと確認メッセージとが不一致となる。この結果、上記ステップST115で実施されたCKC要求に対するCKC応答としてSource機器からREJECTEDレスポンスが送られてくる(ST116)。
【0048】
CKC応答としてREJECTEDレスポンスを受信すると、CKC制御部160内のパケット監視部163は、情報管理テーブル162を参照して、このCKC応答(ST116)に含まれているポート番号に対応づけられているデータ通信用TCPコネクションのコネクション状態(ここでは管理番号(1)に対応づけられているコネクション状態)を確認する。図4cに示すように、管理番号(1)に対応づけられているコネクション状態は上記ステップST114における更新処理により「切断」となっている。この場合、パケット監視部163は「CKC応答として受信したREJECTEDレスポンスは不当なものである」と判断し、不当なREJECTEDレスポンスを受信した旨を情報更新通知部164を通じてコンテンツ鍵制御部150に通知する(ST117)。
【0049】
なお、仮に上記確認の結果、コネクション状態が「接続完了」となっている場合には、パケット監視部163は「CKC応答として受信したREJECTEDレスポンスは正当なものである」と判断し、正当なREJECTEDレスポンスを受信した旨を情報更新通知部164を通じてコンテンツ鍵制御部150に通知する。正当なREJECTEDレスポンスを受信した旨の通知を受けたコンテンツ鍵制御部150は、従来技術と同様、REJECTEDレスポンスに対するCKC要求の再実施をコンテンツ鍵確認部140に指示する。そして、1分以内にCKC要求を成功させることができなければ受信データの復号を停止する。
【0050】
一方、不当なREJECTEDレスポンスを受信した旨の通知を受けたコンテンツ鍵制御部150は、REJECTEDレスポンスに対するCKC要求の再実施をコンテンツ鍵確認部140に指示することはせずに、早急にリカバリ処理を行う。リカバリ処理としては、正常に受信および復号ができたデータがバッファに残っている間に、再度認証鍵交換処理を実施することや、次のノンス(Nc)の確認処理に移行すること等が挙げられる。
【0051】
以上のように第1の実施形態によれば、Source機器から受信したREJECTEDレスポンスが正当なREJECTEDレスポンス(コンテンツ鍵確認が失敗したため)であるか,不当なREJECTEDレスポンス(データ通信用TCPコネクションが既に切断されているためにSource機器のノンスが更新されているため)であるかを判定し、その判定結果に応じて次の処理を行うため、不当なREJECTEDレスポンスである場合には、確実に失敗するCKC要求を繰返し実施せずに済み、早急にリカバリ処理を行うことができる。
【0052】
(第2の実施形態)
第2の実施形態による通信システムの全体構成およびSink機器の内部構成は図1a,1bと同様である。第2の実施形態によるCKC制御部160の内部構成を図6に示す。CKC制御部160はポート管理部161,情報管理テーブル162,パケット監視部163,情報更新通知部164,パケット制御部165を備えている。
【0053】
第2の実施形態による通信システムにおいてSink機器がSource機器との間で行う暗号化通信の流れについて図7を参照しつつ説明する。
【0054】
まず、データ受信部110によりSource機器との間でデータ通信用TCPコネクション201が確立される(ST201)。データ受信部110は、Source機器から送られてくるノンス(Nc)を受信し(ST202)、コンテンツ鍵生成部120に設定する(ST203)。これ以降、データ受信部110は、暗号化データの受信を継続し、ノンス(Nc)を受信するたびにコンテンツ鍵生成部120に設定する処理(ST202,ST203)を繰り返し実施し、データ受信が完了(ST204)するとデータ通信用TCPコネクション201を切断する(ST205)。後述する処理は、データ受信部110が暗号化データを受信中に並行して行われる。
【0055】
コンテンツ鍵生成部120は、データ受信部110により設定されたノンス(Nc)に基づいてコンテンツ鍵を生成する(ST206)。コンテンツ鍵生成部120は、生成したコンテンツ鍵をコンテンツ鍵確認部140,データ復号部130に設定する(ST207)。さらにコンテンツ鍵生成部120は、コンテンツ鍵の生成が完了したことをコンテンツ鍵制御部150に通知する(ST208)。
【0056】
コンテンツ鍵生成部120から完了通知を受けるとコンテンツ鍵制御部150は、上記ステップST201で確立されたデータ通信用TCPコネクション201のSource側ポート番号とSink側ポート番号をCKC制御部160に設定する(ST209)。
【0057】
CKC制御部160では、コンテンツ鍵制御部150により設定されたポート番号をポート管理部161が情報管理テーブル162に登録する。図8に示すように、情報管理テーブル162には、管理番号(1〜N)が設定されており、各管理番号に対して、データ通信用TCPコネクション201についての情報とCKC用TCPコネクション202についての情報を登録することができる。データ通信用TCPコネクション201についての情報としては、Source側ポート番号,Sink側ポート番号,コネクション状態を登録することができる。CKC用TCPコネクション202についての情報としては、Source側ポート番号,Sink側ポート番号,コネクション状態を登録することができる。情報管理テーブル162に登録されるコネクション状態およびその内容は図5に示すとおりである。
【0058】
ここでは、図8aに示すように、管理番号(1)に対してデータ通信用TCPコネクション201のSource側ポート番号(5542),Sink側ポート番号(10024),コネクション状態(接続完了)がポート管理部161によって登録される。
【0059】
コンテンツ鍵制御部150は、コンテンツ鍵確認部140にCKC要求の実施を指示する(ST210)。CKC要求実施の指示を受けたコンテンツ鍵確認部140は、Source機器との間でCKC用TCPコネクション202を確立する(ST211)。CKC用TCPコネクション202が確立されるとコンテンツ鍵制御部150は、上記ステップST211で確立されたCKC用TCPコネクション202のSource側ポート番号とSink側ポート番号をCKC制御部160に設定する(ST212)。
【0060】
CKC制御部160では、コンテンツ鍵制御部150により設定されたポート番号をポート管理部161が情報管理テーブル162に登録する。このときポート管理部161は、このCKC用TCPコネクション202についての情報と先に登録されたデータ通信用TCPコネクション201についての情報(図8a)とを対応づけて登録する。ここでは、図8bに示すように、先に登録されたデータ通信用TCPコネクション201についての情報(図8a)と共通の管理番号(1)に対応づけてCKC用TCPコネクション202のSource側ポート番号(5543),Sink側ポート番号(10025),コネクション状態(CKC未実施)がポート管理部161によって登録される。
【0061】
これ以降、CKC制御部160内のパケット監視部163は、情報管理テーブル162に登録されたデータ通信用TCPコネクション情報とCKC用TCPコネクション情報に基づいて送受信パケットを監視し、必要に応じて情報管理テーブル162の内容を更新する。
【0062】
次に、コンテンツ鍵確認部140によりSource機器に対してCKC要求が実施されるものとする(ST214)。パケット監視部163は、パケットに含まれるSource側ポート番号とSink側ポート番号を元にCKC要求を検出し、図8cに示すように、情報管理テーブル162に登録されているCKC用TCPコネクションのコネクション状態を「CKC未実施」から「CKC実施中」に変更する(ST213)。
【0063】
ここでは、情報管理テーブル162に登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」のときにSource機器からの暗号化データの受信が完了するものとする(ST204)。暗号化データの受信が完了するとデータ受信部110はデータ通信用TCPコネクション201の切断処理を開始する(ST205a)。
【0064】
データ通信用TCPコネクション201の切断処理が発生すると(ST205a)、データ通信用TCPコネクション201の切断パケットがパケット監視部163により検出される(TCPコネクションの切断パケットは一般的な情報を元に判定可能なため詳細な説明は省略する)。パケット監視部163は、検出した切断パケットを、図6に示すパケット制御部165へ振り分ける。
【0065】
パケット制御部165は、情報管理テーブル162に登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」から「CKC実施済み」に更新されるまで切断パケットの送信を遅延させる(ST217)。
【0066】
上記ステップST214で実施されたCKC要求に対するCKC応答としてSource機器からACCEPTEDレスポンスが送られてくる(ST215)。CKC応答としてACCEPTEDレスポンスを受信すると、CKC制御部160内のパケット監視部163は、情報管理テーブル162を参照して、図8dに示すように、このCKC応答(ST215)に含まれているポート番号に対応づけられているCKC用TCPコネクションのコネクション状態(ここでは管理番号(1)に対応づけられているコネクション状態)を「CKC実施中」から「CKC実施済み」に更新する(ST216)。
【0067】
上記ステップST216でCKC用TCPコネクションの状態が「CKC実施中」から「CKC実施済み」に更新されると、パケット制御部165は、遅延させている切断パケット(ST217)を送信し、データ通信用TCPコネクションの切断処理を再開する(ST205b)。
【0068】
以上のように第2の実施形態によれば、CKCを実施中にデータ通信用TCPコネクション201の切断処理が発生した場合にはCKCが完了するまで切断パケットの送信を遅延させるため、CKCの実施中はデータ通信用TCPコネクション201の接続状態が確実に維持され、不当なREJECTEDレスポンスの発生を防止することが可能となる。その結果、不当なREJECTEDレスポンスに基づく、暗号データの復号停止やリカバリ処理による通信パケットの増加を防止することが可能になる。
【0069】
(第3の実施形態)
第3の実施形態による通信システムの全体構成およびSink機器の内部構成は図1a,1bと同様である。第3の実施形態によるCKC制御部160の内部構成を図9に示す。CKC制御部160はポート管理部161,情報管理テーブル162,パケット監視部163,情報更新通知部164,パケット制御部166を備えている。
【0070】
第3の実施形態による通信システムにおいてSink機器がSource機器との間で行う暗号化通信の流れについて図10を参照しつつ説明する。
【0071】
まず、データ受信部110によりSource機器との間でデータ通信用TCPコネクション201が確立される(ST301)。データ受信部110は、Source機器から送られてくるノンス(Nc)を受信し(ST302)、コンテンツ鍵生成部120に設定する(ST303)。これ以降、データ受信部110は、暗号化データの受信を継続し、ノンス(Nc)を受信するたびにコンテンツ鍵生成部120に設定する処理(ST302,ST303)を繰り返し実施し、データ受信が完了(ST304)するとデータ通信用TCPコネクション201を切断する(ST305)。後述する処理は、データ受信部110が暗号化データを受信中に並行して行われる。
【0072】
コンテンツ鍵生成部120は、データ受信部110により設定されたノンス(Nc)に基づいてコンテンツ鍵を生成する(ST306)。コンテンツ鍵生成部120は、生成したコンテンツ鍵をコンテンツ鍵確認部140,データ復号部130に設定する(ST307)。さらにコンテンツ鍵生成部120は、コンテンツ鍵の生成が完了したことをコンテンツ鍵制御部150に通知する(ST308)。
【0073】
コンテンツ鍵生成部120から完了通知を受けるとコンテンツ鍵制御部150は、上記ステップST301で確立されたデータ通信用TCPコネクション201のSource側ポート番号とSink側ポート番号をCKC制御部160に設定する(ST309)。
【0074】
CKC制御部160では、コンテンツ鍵制御部150により設定されたポート番号をポート管理部161が情報管理テーブル162に登録する。図11に示すように、情報管理テーブル162には、管理番号(1〜N)が設定されており、各管理番号に対して、データ通信用TCPコネクション201についての情報とCKC用TCPコネクション202についての情報を登録することができる。データ通信用TCPコネクション201についての情報としては、Source側ポート番号,Sink側ポート番号,コネクション状態を登録することができる。CKC用TCPコネクション202についての情報としては、Source側ポート番号,Sink側ポート番号,コネクション状態を登録することができる。情報管理テーブル162に登録されるコネクション状態およびその内容は図5に示すとおりである。
【0075】
ここでは、図11aに示すように、管理番号(1)に対してデータ通信用TCPコネクション201のSource側ポート番号(5542),Sink側ポート番号(10024),コネクション状態(接続完了)がポート管理部161によって登録される。
【0076】
コンテンツ鍵制御部150は、コンテンツ鍵確認部140にCKC要求の実施を指示する(ST310)。CKC要求実施の指示を受けたコンテンツ鍵確認部140は、Source機器との間でCKC用TCPコネクション202を確立する(ST311)。CKC用TCPコネクション202が確立されるとコンテンツ鍵制御部150は、上記ステップST311で確立されたCKC用TCPコネクション202のSource側ポート番号とSink側ポート番号をCKC制御部160に設定する(ST312)。
【0077】
CKC制御部160では、コンテンツ鍵制御部150により設定されたポート番号をポート管理部161が情報管理テーブル162に登録する。このときポート管理部161は、このCKC用TCPコネクション202についての情報と先に登録されたデータ通信用TCPコネクション201についての情報(図11a)とを対応づけて登録する。ここでは、図11bに示すように、先に登録されたデータ通信用TCPコネクション201についての情報(図11a)と共通の管理番号(1)に対応づけてCKC用TCPコネクション202のSource側ポート番号(5543),Sink側ポート番号(10025),コネクション状態(CKC未実施)がポート管理部161によって登録される。
【0078】
これ以降、CKC制御部160内のパケット監視部163は、情報管理テーブル162に登録されたデータ通信用TCPコネクション情報とCKC用TCPコネクション情報に基づいて送受信パケットを監視し、必要に応じて情報管理テーブル162の内容を更新する。
【0079】
Source機器からの暗号化データの受信が完了すると(ST304)、データ受信部110は、データ通信用TCPコネクション201の切断処理を開始する(ST305)。データ通信用TCPコネクション201の切断処理が発生すると、データ通信用TCPコネクション201の切断パケットがパケット監視部163により検出される(TCPコネクションの切断パケットは一般的な情報を元に判定可能なため詳細な説明は省略する)。切断パケットを検出するとパケット監視部163は、図11cに示すように、情報管理テーブル162に登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態(ここでは管理番号(1)に対応づけられているコネクション状態)を「接続完了」から「切断」に更新する(ST313)。
【0080】
情報管理テーブル162の更新を監視している情報更新通知部164は、図11cに示すように、共通の管理番号(1)に対応づけられているデータ通信用TCPコネクション201のコネクション状態が「切断」を示し、CKC用TCPコネクション202のコネクション状態が「CKC未実施」を示していることを検知し、これ以降のCKC要求が無意味であることをコンテンツ鍵制御部150に通知する。
【0081】
CKC要求が無意味であることの通知を受けたコンテンツ鍵制御部150は、コンテンツ鍵確認部140にCKC処理の停止を指示し(ST317)、対応するCKC用TCPコネクション202についての情報の削除をCKC制御部160に指示する(ST318)。CKC制御部160では、コンテンツ鍵制御部150により指示されたCKC用TCPコネクション202についての情報をポート管理部161が情報管理テーブル162から削除する。ここでは、図11dに示すように、管理番号(1)に対して登録されていたCKC用TCPコネクション202のSource側ポート番号(5543),Sink側ポート番号(10025),コネクション状態(CKC未実施)がポート管理部161によって削除される。
【0082】
さらに、パケット監視部163がCKC要求パケットを検出した場合は(ST314)、図9に示すパケット制御部166へ振り分ける。パケット制御部166は、既にデータ通信用TCPコネクション201の切断処理が行われているため、受け取ったCKC要求パケットを破棄する(ST315)。
【0083】
以上のように第3の実施形態では、CKC要求が実施される前にデータ受信用TCPコネクションが切断されたときは、以降のCKC要求は確実に失敗するため無意味であるため、CKC処理を停止する,あるいは,CKC要求を破棄する。これにより、無駄な通信を発生させないことと、DTCP-IP規格に従った次のノンス(Nc)と暗号データ受信処理への移行を直ちに実施することが可能となる。
【産業上の利用可能性】
【0084】
本発明は、IPプロトコルを利用したコンテンツ伝送手続きにおいて、暗号化コンテンツ伝送用と暗号化コンテンツの復号鍵の確認手続き用にそれぞれ別のTCPコネクションを確立するようなタイプの通信システム(例えば、DTCP-IP規格に準拠した暗号化通信システム)に有用である。
【0085】
特に、断続的に比較的少量のデータを通信する場合,例えば,映像の早送りや30秒スキップ再生などの特殊再生時に有用である。
【符号の説明】
【0086】
110…データ受信部
120…コンテンツ鍵生成部
130…データ復号部
140…コンテンツ鍵確認部
150…コンテンツ鍵制御部
160…CKC制御部
161…ポート管理部
162…情報管理テーブル
163…パケット監視部
164…情報更新通知部
165…パケット制御部(遅延機能)
166…パケット制御部(破棄機能)
170…通信プロトコル処理部
180…MAC処理部
201…データ通信用TCPコネクション
202…CKC用TCPコネクション
【技術分野】
【0001】
本発明は、暗号/復号用の鍵を所定のタイミングで更新しながら暗号化データを通信する技術に関する。
【背景技術】
【0002】
Source機器(サーバ)とSink機器(クライアント)との間で暗号/復号用の鍵を所定のタイミングで更新しながら暗号化データを通信する技術がある(例えば特許文献1参照)。この通信では、Source機器とSink機器との間でまず認証鍵交換を実施し、これに成功した後、暗号化通信を行うことが特徴である。
【0003】
上記の通信の一例として、著作権保護技術のDTCP(Digital Transmission Content Protection)-IP規格に従ってSource機器とSink機器との間でAKE(Authentication and Key Exchange)に基づく鍵交換手続き,および,鍵交換により共有した鍵を利用した暗号化コンテンツ伝送を行う仕組みを図12に示す。
【0004】
DTCP-IP規格では、HTTP(Hyper Text Transfar Protocol)を用いた暗号化通信の場合、Source機器は、HTTPのGETメソッドによるデータ受信要求毎,もしくは,最大でも128MBのデータ毎にノンス(Nc)を更新するように決められている。ここでノンス(Nc)は暗号化用のコンテンツ鍵を生成するための乱数である。このように暗号化データ通信の途中でコンテンツ鍵が動的に変更されることから、コンテンツ鍵の確認手続きが必要になる。なお、DTCP-IPでは暗号化鍵と復号化鍵は同じ鍵を示し、これらを統一してコンテンツ鍵と呼ぶ。ノンス(Nc)と128MBの暗号化データはデータ通信用TCPコネクションで通信され、このTCPコネクションが維持されている間、ノンス(Nc)は128MB毎に単調増加,つまり,インクリメントされる。
【0005】
Sink機器は、データ通信用TCPコネクションとは別にコンテンツ鍵確認用TCPコネクション(CKC用TCPコネクション(CKC:Contents Key Confrimation))を確立し、Source機器に対してコンテンツ鍵確認手続きを行う(CKC処理)。図13に示すように、この確認手続きでは、まずSink機器がノンス(Nc)を基にした確認メッセージを作成し、CKC要求をSource機器へ送信する。次にSource機器は、Sink機器からの確認メッセージを受信した時点のノンス(Nc)を用いて検査用メッセージを作成し、確認メッセージと比較する。2つのメッセージが一致した場合、Source機器はCKC応答としてACCEPTEDレスポンスをSink機器に送信し、Sink機器はデータ受信を継続できる。一方、メッセージが一致しなかった場合、Source機器はCKC応答としてREJECTEDレスポンスをSink機器に送信する。CKC応答としてREJECTEDレスポンスを受け取るとSink機器は、受信したデータの復号処理を停止しなければならない,もしくは,所定の時間内にCKC処理を再度実行し成功させなければならない。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007-36953号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
Sink機器は、データ受信が完了した場合、CKC処理の状況にかかわらずデータ通信用TCPコネクションを切断することができる。データ通信用TCPコネクションが切断されるとSource機器はノンス(Nc)を更新しなければならないことがDTCP-IP規格で定められている。
【0008】
したがって、図14に示すように、データ通信用TCPコネクションが切断された後にSource機器がCKC要求を受信した場合、既にノンス(Nc)を更新しているため、Sink機器が生成した確認メッセージが更新前のノンス(Nc)に基づく正当なものであるにも関わらず検査用メッセージと確認メッセージとが一致せずにREJECTEDレスポンスが発生してしまう。REJECTEDレスポンスが発生した場合、Sink機器は、1分以内にCKC要求を成功させることができなければ受信データの復号を停止しなければならない。
【0009】
このように、Sink機器からSource機器へCKC要求を行った際にデータ通信用TCPコネクションの切断タイミングによってはSink機器において正しくCKC応答を受信できないことがあり、その結果、受信データの復号を停止しなければならなくなる場合がある。
【0010】
上記のような状況は、断続的に比較的少量のデータを通信する場合,例えば,映像の早送りや30秒スキップ再生などの特殊再生時に発生する。このような特殊再生時には、データ通信用TCPコネクションの接続/切断を繰り返し実施しながらCKC処理を行うため、CKC処理前にデータ通信用TCPコネクションが切断されSource機器のノンス(Nc)が更新されるという状況が発生する。
【課題を解決するための手段】
【0011】
本発明による情報通信装置は、IPネットワーク上で相手機器との間で暗号/復号用の鍵を所定のタイミングで更新しながら暗号化データを通信する装置であって、前記相手機器との間でデータ通信用TCPコネクションを確立し、前記相手機器からノンスと暗号化データを受信し、当該暗号化データの受信が完了すると前記データ通信用TCPコネクションを切断するデータ受信部と、前記データ受信部により受信された暗号化データを復号するための鍵を前記データ受信部により受信されたノンスに基づいて生成するコンテンツ鍵生成部と、前記データ受信部により受信された暗号化データを前記コンテンツ鍵生成部により生成された鍵を用いて復号するデータ復号部と、前記相手機器との間で前記データ通信用TCPコネクションとは別にコンテンツ鍵確認用TCPコネクション(CKC用TCPコネクション)を確立し、前記コンテンツ鍵生成部により生成された鍵が正しいことの確認要求(CKC要求)を前記相手機器に対して行うコンテンツ鍵確認部と、前記コンテンツ鍵確認部に前記CKC要求の実施/不実施を指示するコンテンツ鍵制御部と、前記データ通信用TCPコネクションと前記CKC用TCPコネクションとを対応付けて管理し、各々のコネクションの状態に従い前記コンテンツ鍵制御部へ情報通知を行うCKC制御部とを備え、前記CKC制御部は、情報管理テーブルと、前記データ通信用TCPコネクションについての情報と前記CKC用TCPコネクションについての情報とを対応付けて前記情報管理テーブルに登録するポート管理部と、前記情報管理テーブルの情報に基づいて送受信パケットを監視し、必要に応じて前記情報管理テーブルの内容を更新するパケット監視部と、前記情報管理テーブルの情報が更新されると前記コンテンツ鍵制御部へ情報更新通知を行う情報更新通知部とを備える。
【0012】
上記情報通信装置によれば、データ通信用TCPコネクションの状態に適切なコンテンツ鍵確認手続きを実施することが可能となる。
【0013】
好ましくは、前記ポート管理部は、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号とを対応付けて前記情報管理テーブルに登録し、前記パケット監視部は、前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、前記コンテンツ鍵確認部によるCKC要求に対する応答(CKC応答)として前記相手機器からREJECTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているデータ通信用TCPコネクションのコネクション状態を確認し、当該コネクション状態が「切断」となっている場合は、不当なREJECTEDレスポンスを受信した旨を前記情報更新通知部を通じて前記コンテンツ鍵制御部に通知し、前記コンテンツ鍵制御部は、不当なREJECTEDレスポンスを受信した旨の通知を受けると、REJECTEDレスポンスに対するCKC要求の再実施を前記コンテンツ鍵確認部に指示することはせずに、リカバリ処理を行う。
【0014】
上記情報通信装置によれば、REJECTEDレスポンスを受信した場合でも、コンテンツ鍵確認が失敗したためか,もしくは,データ通信用TCPコネクションが既に切断されているために相手機器においてノンスが更新されているためかを詳細に判定することが可能となり、より適切なリカバリ処理を実施することが可能となる。
【0015】
好ましくは、前記CKC制御部は、所定のパケットの通信を遅延させるパケット制御部をさらに備え、前記ポート管理部は、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、前記パケット監視部は、前記コンテンツ鍵確認部からのCKC要求パケットを検出すると、前記情報管理テーブルに登録されているCKC用TCPコネクションについての情報のうち、このCKC要求パケットに含まれているポート番号に対応するコネクション状態を「CKC実施中」に更新し、前記データ通信用TCPコネクションの切断パケットを検出すると、当該切断パケットを前記パケット制御部へ振り分け、前記コンテンツ鍵確認部によるCKC要求に対する応答(CKC応答)として前記相手機器からACCEPTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているCKC用TCPコネクションのコネクション状態を「CKC実施中」から「CKC実施済み」に更新し、前記パケット制御部は、前記情報管理テーブルに登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」から「CKC実施済み」に更新されるまで前記切断パケットの送信を遅延させる。
【0016】
上記情報通信装置によれば、コンテンツ鍵確認処理を実施中はデータ通信用TCPコネクションを確実に維持することが可能となり、不当なREJECTEDレスポンスの発生を防止することが可能となる。
【0017】
好ましくは、前記ポート管理部は、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、前記パケット監視部は、前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、前記情報更新通知部は、前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示していることを検知すると、これ以降のCKC要求が無意味であることを前記コンテンツ鍵制御部に通知し、前記コンテンツ鍵制御部は、CKC要求が無意味であることの通知を前記情報更新通知部より受けると前記コンテンツ鍵確認部にこれ以降のCKC要求の不実施を指示する。
【0018】
上記情報通信装置によれば、確実に失敗することが分かっているコンテンツ鍵確認処理の実施を防止することができる。
【0019】
好ましくは、前記CKC制御部は、所定のパケットの通信を破棄するパケット制御部をさらに備え、前記ポート管理部は、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、前記パケット監視部は、前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、前記コンテンツ鍵確認部からのCKC要求パケットを検出すると、当該CKC要求パケットを前記パケット制御部へ振り分け、前記パケット制御部は、前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示しているときは、前記パケット監視部より受け取ったCKC要求パケットを破棄する。
【0020】
上記情報通信装置によれば、確実に失敗することが分かっているコンテンツ鍵確認処理の実施を防止することができる。
【0021】
本発明による情報通信方法は、IPネットワーク上で相手機器との間で暗号/復号用の鍵を所定のタイミングで更新しながら暗号化データを通信する方法であって、前記相手機器との間でデータ通信用TCPコネクションを確立し、前記相手機器からノンスと暗号化データを受信し、当該暗号化データの受信が完了すると前記データ通信用TCPコネクションを切断するステップ(S1)と、前記ステップ(S1)で受信された暗号化データを復号するための鍵を前記ステップ(S1)で受信されたノンスに基づいて生成するステップ(S2)と、前記ステップ(S1)で受信された暗号化データを前記ステップ(S2)で生成された鍵を用いて復号するステップ(S3)と、前記相手機器との間で前記データ通信用TCPコネクションとは別にコンテンツ鍵確認用TCPコネクション(CKC用TCPコネクション)を確立し、前記ステップ(S2)で生成された鍵が正しいことの確認要求(CKC要求)を前記相手機器に対して行うステップ(S4)と、前記データ通信用TCPコネクションについての情報と前記CKC用TCPコネクションについての情報とを対応付けて情報管理テーブルに登録するステップ(S5)と、前記情報管理テーブルの情報に基づいて送受信パケットを監視し、必要に応じて前記情報管理テーブルの内容を更新するステップ(S6)と、前記情報管理テーブルに登録されている前記データ通信用コネクションの状態に応じて前記ステップ(S4)における前記CKC要求の実施/不実施を指示するステップ(S7)とを備える。
【0022】
上記情報通信方法によれば、データ通信用TCPコネクションの状態に適切なコンテンツ鍵確認手続きを実施することが可能となる。
【0023】
好ましくは、前記ステップ(S5)では、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号とを対応付けて前記情報管理テーブルに登録し、前記ステップ(S6)では、前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、前記ステップ(S4)によるCKC要求に対する応答(CKC応答)として前記相手機器からREJECTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているデータ通信用TCPコネクションのコネクション状態を確認し、当該コネクション状態が「切断」となっている場合は、不当なREJECTEDレスポンスを受信したと判断し、前記ステップ(S7)では、前記ステップ(S6)で不当なREJECTEDレスポンスを受信したと判断されたときは、このREJECTEDレスポンスに対して前記ステップ(S4)における前記CKC要求の再実施を指示することはせずに、リカバリ処理を行う。
【0024】
上記情報通信方法によれば、REJECTEDレスポンスを受信した場合でも、コンテンツ鍵確認が失敗したためか,もしくは,データ通信用TCPコネクションが既に切断されているために相手機器においてノンスが更新されているためかを詳細に判定することが可能となり、より適切なリカバリ処理を実施することが可能となる。
【0025】
好ましくは、前記ステップ(S5)では、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、前記ステップ(S6)では、CKC要求パケットを検出すると、前記情報管理テーブルに登録されているCKC用TCPコネクションについての情報のうち、このCKC要求パケットに含まれているポート番号に対応するコネクション状態を「CKC実施中」に更新し、前記コンテンツ鍵確認部によるCKC要求に対する応答(CKC応答)として前記相手機器からACCEPTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているCKC用TCPコネクションのコネクション状態を「CKC実施中」から「CKC実施済み」に更新し、前記情報管理テーブルに登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」であるときに前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」から「CKC実施済み」に更新されるまで前記切断パケットの送信を遅延させる。
【0026】
上記情報通信方法によれば、コンテンツ鍵確認処理を実施中はデータ通信用TCPコネクションを確実に維持することが可能となり、不当なREJECTEDレスポンスの発生を防止することが可能となる。
【0027】
好ましくは、前記ステップ(S5)では、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、前記ステップ(S6)では、前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、前記ステップ(S7)では、前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示しているときは、これ以降のCKC要求が無意味であると判断し、これ以降の前記ステップ(S4)によるCKC要求の不実施を指示する。
【0028】
上記情報通信方法によれば、確実に失敗することが分かっているコンテンツ鍵確認処理の実施を防止することができる。
【0029】
好ましくは、前記ステップ(S5)では、前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、前記ステップ(S6)では、前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示している場合にCKC要求パケットを検出したときは当該CKC要求パケットを破棄する。
【0030】
上記情報通信方法によれば、確実に失敗することが分かっているコンテンツ鍵確認処理の実施を防止することができる。
【発明の効果】
【0031】
本発明によれば、CKC要求に対する誤ったREJECTEDレスポンスに正しく対応できる,または,誤ったREJECTEDレスポンスそのものを発生させない,または,不必要なCKC処理を実施しない等が可能となり、これらの結果、暗号化通信を継続することができる。
【図面の簡単な説明】
【0032】
【図1】(a)は、第1の実施形態による通信システムの全体構成を示すブロック図である。(b)は、図1(a)に示したSink機器の内部構成を示すブロック図である。
【図2】CKC制御部(160)の内部構成を示すブロック図である。
【図3】暗号化通信の処理の流れを説明するためのシーケンス図である。
【図4】情報管理テーブル(162)に登録される情報の例を示す図である。
【図5】情報管理テーブル(162)に登録されるコネクション状態およびその内容を示す一覧表である。
【図6】第2の実施形態によるCKC制御部(160)の内部構成を示すブロック図である。
【図7】暗号化通信の処理の流れを説明するためのシーケンス図である。
【図8】情報管理テーブル(162)に登録される情報の例を示す図である。
【図9】第3の実施形態によるCKC制御部(160)の内部構成を示すブロック図である。
【図10】暗号化通信の処理の流れを説明するためのシーケンス図である。
【図11】情報管理テーブル(162)に登録される情報の例を示す図である。
【図12】DTCP-IP規格に従ってSource機器とSink機器との間で行われる暗号化コンテンツ伝送のシーケンス図である。
【図13】DTCP-IP規格に従ってSource機器とSink機器との間で行われる暗号化コンテンツ伝送のシーケンス図である。
【図14】DTCP-IP規格に従ってSource機器とSink機器との間で行われる暗号化コンテンツ伝送のシーケンス図である。
【発明を実施するための形態】
【0033】
以下、好ましい実施形態について図面を参照して説明する。なお、図面において同じ参照符号を付けた構成要素は、特別な動作の説明がない限り、基本的に同様の動作を行うので、再度の説明を省略する場合がある。
【0034】
(第1の実施形態)
第1の実施形態による通信システムの全体構成を図1aに示す。この通信システムでは、複数のSource機器(サーバ)およびSink機器(クライアント)がIPネットワークに接続されており、Source機器とSink機器との間でDTCP-IP規格に準拠した暗号化通信が行われる。この暗号化通信の概略手順は図12,13と同様であり、Source機器とSink機器との間で認証処理が行われ、認証に成功すると認証鍵が交換される。この認証鍵をSource機器とSink機器とで共有し、この認証鍵を元にコンテンツ鍵(暗号鍵/復号鍵)が生成される。Source機器は、保持するデータ(コンテンツ)をコンテンツ鍵を用いて暗号化してSink機器に伝送する。Sink機器は、Source機器から伝送された暗号化データをコンテンツ鍵を用いて復号し再生する。
【0035】
図1aに示したSink機器の内部構成を図1bに示す。Sink機器はデータ受信部110,コンテンツ鍵生成部120,データ復号部130,コンテンツ鍵確認部140,コンテンツ鍵制御部150,CKC制御部160,通信プロトコル処理部170,MAC処理部180を備えている。図1bに示す各ブロックはハードウェアとして実装することもソフトウェアとして実装することも可能である。CKC制御部160の内部構成を図2に示す。CKC制御部160はポート管理部161,情報管理テーブル162,パケット監視部163,情報更新通知部164を備えている。
【0036】
次に、上記のように構成されたSink機器がSource機器との間で行う暗号化通信の流れについて図3を参照しつつ説明する。
【0037】
まず、データ受信部110によりSource機器との間でデータ通信用TCPコネクション201が確立される(ST101)。データ受信部110は、Source機器から送られてくるノンス(Nc)を受信し(ST102)、コンテンツ鍵生成部120に設定する(ST103)。これ以降、データ受信部110は、暗号化データの受信を継続し、ノンス(Nc)を受信するたびにコンテンツ鍵生成部120に設定する処理(ST102,ST103)を繰り返し実施し、データ受信が完了(ST104)するとデータ通信用TCPコネクション201を切断する(ST105)。後述する処理は、データ受信部110が暗号化データを受信中に並行して行われる。
【0038】
コンテンツ鍵生成部120は、データ受信部110により設定されたノンス(Nc)に基づいてコンテンツ鍵を生成する(ST106)。コンテンツ鍵生成部120は、生成したコンテンツ鍵をコンテンツ鍵確認部140,データ復号部130に設定する(ST107)。さらにコンテンツ鍵生成部120は、コンテンツ鍵の生成が完了したことをコンテンツ鍵制御部150に通知する(ST108)。
【0039】
コンテンツ鍵生成部120から完了通知を受けるとコンテンツ鍵制御部150は、上記ステップST101で確立されたデータ通信用TCPコネクション201のSource側ポート番号とSink側ポート番号をCKC制御部160に設定する(ST109)。
【0040】
CKC制御部160では、コンテンツ鍵制御部150により設定されたポート番号をポート管理部161が情報管理テーブル162に登録する。図4に示すように、情報管理テーブル162には、管理番号(1〜N)が設定されており、各管理番号に対して、データ通信用TCPコネクション201についての情報とCKC用TCPコネクション202についての情報を登録することができる。データ通信用TCPコネクション201についての情報としては、Source側ポート番号,Sink側ポート番号,コネクション状態を登録することができる。CKC用TCPコネクション202についての情報としては、Source側ポート番号,Sink側ポート番号を登録することができる。情報管理テーブル162に登録されるコネクション状態およびその内容は図5に示すとおりである。
【0041】
ここでは、図4aに示すように、管理番号(1)に対してデータ通信用TCPコネクション201のSource側ポート番号(5542),Sink側ポート番号(10024),コネクション状態(接続完了)がポート管理部161によって登録される。
【0042】
コンテンツ鍵制御部150は、コンテンツ鍵確認部140にコンテンツ鍵確認要求(CKC要求)の実施を指示する(ST110)。CKC要求実施の指示を受けたコンテンツ鍵確認部140は、Source機器との間でCKC用TCPコネクション202を確立する(ST111)。CKC用TCPコネクション202が確立されるとコンテンツ鍵制御部150は、上記ステップST111で確立されたCKC用TCPコネクション202のSource側ポート番号とSink側ポート番号をCKC制御部160に設定する(ST112)。
【0043】
CKC制御部160では、コンテンツ鍵制御部150により設定されたポート番号をポート管理部161が情報管理テーブル162に登録する。このときポート管理部161は、このCKC用TCPコネクション202についての情報と先に登録されたデータ通信用TCPコネクション201についての情報(図4a)とを対応づけて登録する。ここでは、図4bに示すように、先に登録されたデータ通信用TCPコネクション201についての情報(図4a)と共通の管理番号(1)に対応づけてCKC用TCPコネクション202のSource側ポート番号(5543),Sink側ポート番号(10025)がポート管理部161によって登録される。
【0044】
これ以降、CKC制御部160内のパケット監視部163は、情報管理テーブル162に登録されたデータ通信用TCPコネクション情報とCKC用TCPコネクション情報に基づいて送受信パケットを監視し、必要に応じて情報管理テーブル162の内容を更新する。
【0045】
Source機器からの暗号化データの受信が完了すると(ST104)、データ受信部110は、Source機器との間のデータ通信用TCPコネクション201を切断する(ST105)。データ通信用TCPコネクション201が切断されると、DTCP-IP規格に従い、Source機器はノンス(Nc)を更新する(ST113)。
【0046】
データ通信用TCPコネクション201の切断処理が発生すると、データ通信用TCPコネクション201の切断パケットがパケット監視部163により検出される(TCPコネクションの切断パケットは一般的な情報を元に判定可能なため詳細な説明は省略する)。切断パケットを検出するとパケット監視部163は、図4cに示すように、情報管理テーブル162に登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態(ここでは管理番号(1)に対応づけられているコネクション状態)を「接続完了」から「切断」に更新する(ST114)。
【0047】
ここでは、上記のように情報管理テーブル162の内容が更新された後に、コンテンツ鍵確認部140によりSource機器に対してCKC要求が実施されるものとする(ST115)。この場合、上記ステップST113において既にノンス(Nc)が更新されているため、Sink機器が生成した確認メッセージが更新前のノンス(Nc)に基づく正当なものであるにも関わらずSource機器において検査用メッセージと確認メッセージとが不一致となる。この結果、上記ステップST115で実施されたCKC要求に対するCKC応答としてSource機器からREJECTEDレスポンスが送られてくる(ST116)。
【0048】
CKC応答としてREJECTEDレスポンスを受信すると、CKC制御部160内のパケット監視部163は、情報管理テーブル162を参照して、このCKC応答(ST116)に含まれているポート番号に対応づけられているデータ通信用TCPコネクションのコネクション状態(ここでは管理番号(1)に対応づけられているコネクション状態)を確認する。図4cに示すように、管理番号(1)に対応づけられているコネクション状態は上記ステップST114における更新処理により「切断」となっている。この場合、パケット監視部163は「CKC応答として受信したREJECTEDレスポンスは不当なものである」と判断し、不当なREJECTEDレスポンスを受信した旨を情報更新通知部164を通じてコンテンツ鍵制御部150に通知する(ST117)。
【0049】
なお、仮に上記確認の結果、コネクション状態が「接続完了」となっている場合には、パケット監視部163は「CKC応答として受信したREJECTEDレスポンスは正当なものである」と判断し、正当なREJECTEDレスポンスを受信した旨を情報更新通知部164を通じてコンテンツ鍵制御部150に通知する。正当なREJECTEDレスポンスを受信した旨の通知を受けたコンテンツ鍵制御部150は、従来技術と同様、REJECTEDレスポンスに対するCKC要求の再実施をコンテンツ鍵確認部140に指示する。そして、1分以内にCKC要求を成功させることができなければ受信データの復号を停止する。
【0050】
一方、不当なREJECTEDレスポンスを受信した旨の通知を受けたコンテンツ鍵制御部150は、REJECTEDレスポンスに対するCKC要求の再実施をコンテンツ鍵確認部140に指示することはせずに、早急にリカバリ処理を行う。リカバリ処理としては、正常に受信および復号ができたデータがバッファに残っている間に、再度認証鍵交換処理を実施することや、次のノンス(Nc)の確認処理に移行すること等が挙げられる。
【0051】
以上のように第1の実施形態によれば、Source機器から受信したREJECTEDレスポンスが正当なREJECTEDレスポンス(コンテンツ鍵確認が失敗したため)であるか,不当なREJECTEDレスポンス(データ通信用TCPコネクションが既に切断されているためにSource機器のノンスが更新されているため)であるかを判定し、その判定結果に応じて次の処理を行うため、不当なREJECTEDレスポンスである場合には、確実に失敗するCKC要求を繰返し実施せずに済み、早急にリカバリ処理を行うことができる。
【0052】
(第2の実施形態)
第2の実施形態による通信システムの全体構成およびSink機器の内部構成は図1a,1bと同様である。第2の実施形態によるCKC制御部160の内部構成を図6に示す。CKC制御部160はポート管理部161,情報管理テーブル162,パケット監視部163,情報更新通知部164,パケット制御部165を備えている。
【0053】
第2の実施形態による通信システムにおいてSink機器がSource機器との間で行う暗号化通信の流れについて図7を参照しつつ説明する。
【0054】
まず、データ受信部110によりSource機器との間でデータ通信用TCPコネクション201が確立される(ST201)。データ受信部110は、Source機器から送られてくるノンス(Nc)を受信し(ST202)、コンテンツ鍵生成部120に設定する(ST203)。これ以降、データ受信部110は、暗号化データの受信を継続し、ノンス(Nc)を受信するたびにコンテンツ鍵生成部120に設定する処理(ST202,ST203)を繰り返し実施し、データ受信が完了(ST204)するとデータ通信用TCPコネクション201を切断する(ST205)。後述する処理は、データ受信部110が暗号化データを受信中に並行して行われる。
【0055】
コンテンツ鍵生成部120は、データ受信部110により設定されたノンス(Nc)に基づいてコンテンツ鍵を生成する(ST206)。コンテンツ鍵生成部120は、生成したコンテンツ鍵をコンテンツ鍵確認部140,データ復号部130に設定する(ST207)。さらにコンテンツ鍵生成部120は、コンテンツ鍵の生成が完了したことをコンテンツ鍵制御部150に通知する(ST208)。
【0056】
コンテンツ鍵生成部120から完了通知を受けるとコンテンツ鍵制御部150は、上記ステップST201で確立されたデータ通信用TCPコネクション201のSource側ポート番号とSink側ポート番号をCKC制御部160に設定する(ST209)。
【0057】
CKC制御部160では、コンテンツ鍵制御部150により設定されたポート番号をポート管理部161が情報管理テーブル162に登録する。図8に示すように、情報管理テーブル162には、管理番号(1〜N)が設定されており、各管理番号に対して、データ通信用TCPコネクション201についての情報とCKC用TCPコネクション202についての情報を登録することができる。データ通信用TCPコネクション201についての情報としては、Source側ポート番号,Sink側ポート番号,コネクション状態を登録することができる。CKC用TCPコネクション202についての情報としては、Source側ポート番号,Sink側ポート番号,コネクション状態を登録することができる。情報管理テーブル162に登録されるコネクション状態およびその内容は図5に示すとおりである。
【0058】
ここでは、図8aに示すように、管理番号(1)に対してデータ通信用TCPコネクション201のSource側ポート番号(5542),Sink側ポート番号(10024),コネクション状態(接続完了)がポート管理部161によって登録される。
【0059】
コンテンツ鍵制御部150は、コンテンツ鍵確認部140にCKC要求の実施を指示する(ST210)。CKC要求実施の指示を受けたコンテンツ鍵確認部140は、Source機器との間でCKC用TCPコネクション202を確立する(ST211)。CKC用TCPコネクション202が確立されるとコンテンツ鍵制御部150は、上記ステップST211で確立されたCKC用TCPコネクション202のSource側ポート番号とSink側ポート番号をCKC制御部160に設定する(ST212)。
【0060】
CKC制御部160では、コンテンツ鍵制御部150により設定されたポート番号をポート管理部161が情報管理テーブル162に登録する。このときポート管理部161は、このCKC用TCPコネクション202についての情報と先に登録されたデータ通信用TCPコネクション201についての情報(図8a)とを対応づけて登録する。ここでは、図8bに示すように、先に登録されたデータ通信用TCPコネクション201についての情報(図8a)と共通の管理番号(1)に対応づけてCKC用TCPコネクション202のSource側ポート番号(5543),Sink側ポート番号(10025),コネクション状態(CKC未実施)がポート管理部161によって登録される。
【0061】
これ以降、CKC制御部160内のパケット監視部163は、情報管理テーブル162に登録されたデータ通信用TCPコネクション情報とCKC用TCPコネクション情報に基づいて送受信パケットを監視し、必要に応じて情報管理テーブル162の内容を更新する。
【0062】
次に、コンテンツ鍵確認部140によりSource機器に対してCKC要求が実施されるものとする(ST214)。パケット監視部163は、パケットに含まれるSource側ポート番号とSink側ポート番号を元にCKC要求を検出し、図8cに示すように、情報管理テーブル162に登録されているCKC用TCPコネクションのコネクション状態を「CKC未実施」から「CKC実施中」に変更する(ST213)。
【0063】
ここでは、情報管理テーブル162に登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」のときにSource機器からの暗号化データの受信が完了するものとする(ST204)。暗号化データの受信が完了するとデータ受信部110はデータ通信用TCPコネクション201の切断処理を開始する(ST205a)。
【0064】
データ通信用TCPコネクション201の切断処理が発生すると(ST205a)、データ通信用TCPコネクション201の切断パケットがパケット監視部163により検出される(TCPコネクションの切断パケットは一般的な情報を元に判定可能なため詳細な説明は省略する)。パケット監視部163は、検出した切断パケットを、図6に示すパケット制御部165へ振り分ける。
【0065】
パケット制御部165は、情報管理テーブル162に登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」から「CKC実施済み」に更新されるまで切断パケットの送信を遅延させる(ST217)。
【0066】
上記ステップST214で実施されたCKC要求に対するCKC応答としてSource機器からACCEPTEDレスポンスが送られてくる(ST215)。CKC応答としてACCEPTEDレスポンスを受信すると、CKC制御部160内のパケット監視部163は、情報管理テーブル162を参照して、図8dに示すように、このCKC応答(ST215)に含まれているポート番号に対応づけられているCKC用TCPコネクションのコネクション状態(ここでは管理番号(1)に対応づけられているコネクション状態)を「CKC実施中」から「CKC実施済み」に更新する(ST216)。
【0067】
上記ステップST216でCKC用TCPコネクションの状態が「CKC実施中」から「CKC実施済み」に更新されると、パケット制御部165は、遅延させている切断パケット(ST217)を送信し、データ通信用TCPコネクションの切断処理を再開する(ST205b)。
【0068】
以上のように第2の実施形態によれば、CKCを実施中にデータ通信用TCPコネクション201の切断処理が発生した場合にはCKCが完了するまで切断パケットの送信を遅延させるため、CKCの実施中はデータ通信用TCPコネクション201の接続状態が確実に維持され、不当なREJECTEDレスポンスの発生を防止することが可能となる。その結果、不当なREJECTEDレスポンスに基づく、暗号データの復号停止やリカバリ処理による通信パケットの増加を防止することが可能になる。
【0069】
(第3の実施形態)
第3の実施形態による通信システムの全体構成およびSink機器の内部構成は図1a,1bと同様である。第3の実施形態によるCKC制御部160の内部構成を図9に示す。CKC制御部160はポート管理部161,情報管理テーブル162,パケット監視部163,情報更新通知部164,パケット制御部166を備えている。
【0070】
第3の実施形態による通信システムにおいてSink機器がSource機器との間で行う暗号化通信の流れについて図10を参照しつつ説明する。
【0071】
まず、データ受信部110によりSource機器との間でデータ通信用TCPコネクション201が確立される(ST301)。データ受信部110は、Source機器から送られてくるノンス(Nc)を受信し(ST302)、コンテンツ鍵生成部120に設定する(ST303)。これ以降、データ受信部110は、暗号化データの受信を継続し、ノンス(Nc)を受信するたびにコンテンツ鍵生成部120に設定する処理(ST302,ST303)を繰り返し実施し、データ受信が完了(ST304)するとデータ通信用TCPコネクション201を切断する(ST305)。後述する処理は、データ受信部110が暗号化データを受信中に並行して行われる。
【0072】
コンテンツ鍵生成部120は、データ受信部110により設定されたノンス(Nc)に基づいてコンテンツ鍵を生成する(ST306)。コンテンツ鍵生成部120は、生成したコンテンツ鍵をコンテンツ鍵確認部140,データ復号部130に設定する(ST307)。さらにコンテンツ鍵生成部120は、コンテンツ鍵の生成が完了したことをコンテンツ鍵制御部150に通知する(ST308)。
【0073】
コンテンツ鍵生成部120から完了通知を受けるとコンテンツ鍵制御部150は、上記ステップST301で確立されたデータ通信用TCPコネクション201のSource側ポート番号とSink側ポート番号をCKC制御部160に設定する(ST309)。
【0074】
CKC制御部160では、コンテンツ鍵制御部150により設定されたポート番号をポート管理部161が情報管理テーブル162に登録する。図11に示すように、情報管理テーブル162には、管理番号(1〜N)が設定されており、各管理番号に対して、データ通信用TCPコネクション201についての情報とCKC用TCPコネクション202についての情報を登録することができる。データ通信用TCPコネクション201についての情報としては、Source側ポート番号,Sink側ポート番号,コネクション状態を登録することができる。CKC用TCPコネクション202についての情報としては、Source側ポート番号,Sink側ポート番号,コネクション状態を登録することができる。情報管理テーブル162に登録されるコネクション状態およびその内容は図5に示すとおりである。
【0075】
ここでは、図11aに示すように、管理番号(1)に対してデータ通信用TCPコネクション201のSource側ポート番号(5542),Sink側ポート番号(10024),コネクション状態(接続完了)がポート管理部161によって登録される。
【0076】
コンテンツ鍵制御部150は、コンテンツ鍵確認部140にCKC要求の実施を指示する(ST310)。CKC要求実施の指示を受けたコンテンツ鍵確認部140は、Source機器との間でCKC用TCPコネクション202を確立する(ST311)。CKC用TCPコネクション202が確立されるとコンテンツ鍵制御部150は、上記ステップST311で確立されたCKC用TCPコネクション202のSource側ポート番号とSink側ポート番号をCKC制御部160に設定する(ST312)。
【0077】
CKC制御部160では、コンテンツ鍵制御部150により設定されたポート番号をポート管理部161が情報管理テーブル162に登録する。このときポート管理部161は、このCKC用TCPコネクション202についての情報と先に登録されたデータ通信用TCPコネクション201についての情報(図11a)とを対応づけて登録する。ここでは、図11bに示すように、先に登録されたデータ通信用TCPコネクション201についての情報(図11a)と共通の管理番号(1)に対応づけてCKC用TCPコネクション202のSource側ポート番号(5543),Sink側ポート番号(10025),コネクション状態(CKC未実施)がポート管理部161によって登録される。
【0078】
これ以降、CKC制御部160内のパケット監視部163は、情報管理テーブル162に登録されたデータ通信用TCPコネクション情報とCKC用TCPコネクション情報に基づいて送受信パケットを監視し、必要に応じて情報管理テーブル162の内容を更新する。
【0079】
Source機器からの暗号化データの受信が完了すると(ST304)、データ受信部110は、データ通信用TCPコネクション201の切断処理を開始する(ST305)。データ通信用TCPコネクション201の切断処理が発生すると、データ通信用TCPコネクション201の切断パケットがパケット監視部163により検出される(TCPコネクションの切断パケットは一般的な情報を元に判定可能なため詳細な説明は省略する)。切断パケットを検出するとパケット監視部163は、図11cに示すように、情報管理テーブル162に登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態(ここでは管理番号(1)に対応づけられているコネクション状態)を「接続完了」から「切断」に更新する(ST313)。
【0080】
情報管理テーブル162の更新を監視している情報更新通知部164は、図11cに示すように、共通の管理番号(1)に対応づけられているデータ通信用TCPコネクション201のコネクション状態が「切断」を示し、CKC用TCPコネクション202のコネクション状態が「CKC未実施」を示していることを検知し、これ以降のCKC要求が無意味であることをコンテンツ鍵制御部150に通知する。
【0081】
CKC要求が無意味であることの通知を受けたコンテンツ鍵制御部150は、コンテンツ鍵確認部140にCKC処理の停止を指示し(ST317)、対応するCKC用TCPコネクション202についての情報の削除をCKC制御部160に指示する(ST318)。CKC制御部160では、コンテンツ鍵制御部150により指示されたCKC用TCPコネクション202についての情報をポート管理部161が情報管理テーブル162から削除する。ここでは、図11dに示すように、管理番号(1)に対して登録されていたCKC用TCPコネクション202のSource側ポート番号(5543),Sink側ポート番号(10025),コネクション状態(CKC未実施)がポート管理部161によって削除される。
【0082】
さらに、パケット監視部163がCKC要求パケットを検出した場合は(ST314)、図9に示すパケット制御部166へ振り分ける。パケット制御部166は、既にデータ通信用TCPコネクション201の切断処理が行われているため、受け取ったCKC要求パケットを破棄する(ST315)。
【0083】
以上のように第3の実施形態では、CKC要求が実施される前にデータ受信用TCPコネクションが切断されたときは、以降のCKC要求は確実に失敗するため無意味であるため、CKC処理を停止する,あるいは,CKC要求を破棄する。これにより、無駄な通信を発生させないことと、DTCP-IP規格に従った次のノンス(Nc)と暗号データ受信処理への移行を直ちに実施することが可能となる。
【産業上の利用可能性】
【0084】
本発明は、IPプロトコルを利用したコンテンツ伝送手続きにおいて、暗号化コンテンツ伝送用と暗号化コンテンツの復号鍵の確認手続き用にそれぞれ別のTCPコネクションを確立するようなタイプの通信システム(例えば、DTCP-IP規格に準拠した暗号化通信システム)に有用である。
【0085】
特に、断続的に比較的少量のデータを通信する場合,例えば,映像の早送りや30秒スキップ再生などの特殊再生時に有用である。
【符号の説明】
【0086】
110…データ受信部
120…コンテンツ鍵生成部
130…データ復号部
140…コンテンツ鍵確認部
150…コンテンツ鍵制御部
160…CKC制御部
161…ポート管理部
162…情報管理テーブル
163…パケット監視部
164…情報更新通知部
165…パケット制御部(遅延機能)
166…パケット制御部(破棄機能)
170…通信プロトコル処理部
180…MAC処理部
201…データ通信用TCPコネクション
202…CKC用TCPコネクション
【特許請求の範囲】
【請求項1】
IPネットワーク上で相手機器との間で暗号/復号用の鍵を所定のタイミングで更新しながら暗号化データを通信する装置であって、
前記相手機器との間でデータ通信用TCPコネクションを確立し、前記相手機器からノンスと暗号化データを受信し、当該暗号化データの受信が完了すると前記データ通信用TCPコネクションを切断するデータ受信部と、
前記データ受信部により受信された暗号化データを復号するための鍵を前記データ受信部により受信されたノンスに基づいて生成するコンテンツ鍵生成部と、
前記データ受信部により受信された暗号化データを前記コンテンツ鍵生成部により生成された鍵を用いて復号するデータ復号部と、
前記相手機器との間で前記データ通信用TCPコネクションとは別にコンテンツ鍵確認用TCPコネクション(CKC用TCPコネクション)を確立し、前記コンテンツ鍵生成部により生成された鍵が正しいことの確認要求(CKC要求)を前記相手機器に対して行うコンテンツ鍵確認部と、
前記コンテンツ鍵確認部に前記CKC要求の実施/不実施を指示するコンテンツ鍵制御部と、
前記データ通信用TCPコネクションと前記CKC用TCPコネクションとを対応付けて管理し、各々のコネクションの状態に従い前記コンテンツ鍵制御部へ情報通知を行うCKC制御部と、
を備え、
前記CKC制御部は、
情報管理テーブルと、
前記データ通信用TCPコネクションについての情報と前記CKC用TCPコネクションについての情報とを対応付けて前記情報管理テーブルに登録するポート管理部と、
前記情報管理テーブルの情報に基づいて送受信パケットを監視し、必要に応じて前記情報管理テーブルの内容を更新するパケット監視部と、
前記情報管理テーブルの情報が更新されると前記コンテンツ鍵制御部へ情報更新通知を行う情報更新通知部と、
を備える、
ことを特徴とする情報通信装置。
【請求項2】
請求項1において、
前記ポート管理部は、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号とを対応付けて前記情報管理テーブルに登録し、
前記パケット監視部は、
前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、
前記コンテンツ鍵確認部によるCKC要求に対する応答(CKC応答)として前記相手機器からREJECTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているデータ通信用TCPコネクションのコネクション状態を確認し、当該コネクション状態が「切断」となっている場合は、不当なREJECTEDレスポンスを受信した旨を前記情報更新通知部を通じて前記コンテンツ鍵制御部に通知し、
前記コンテンツ鍵制御部は、
不当なREJECTEDレスポンスを受信した旨の通知を受けると、REJECTEDレスポンスに対するCKC要求の再実施を前記コンテンツ鍵確認部に指示することはせずに、リカバリ処理を行う、
ことを特徴とする情報通信装置。
【請求項3】
請求項1において、
前記CKC制御部は、
所定のパケットの通信を遅延させるパケット制御部をさらに備え、
前記ポート管理部は、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、
前記パケット監視部は、
前記コンテンツ鍵確認部からのCKC要求パケットを検出すると、前記情報管理テーブルに登録されているCKC用TCPコネクションについての情報のうち、このCKC要求パケットに含まれているポート番号に対応するコネクション状態を「CKC実施中」に更新し、
前記データ通信用TCPコネクションの切断パケットを検出すると、当該切断パケットを前記パケット制御部へ振り分け、
前記コンテンツ鍵確認部によるCKC要求に対する応答(CKC応答)として前記相手機器からACCEPTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているCKC用TCPコネクションのコネクション状態を「CKC実施中」から「CKC実施済み」に更新し、
前記パケット制御部は、
前記情報管理テーブルに登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」から「CKC実施済み」に更新されるまで前記切断パケットの送信を遅延させる、
ことを特徴とする情報通信装置。
【請求項4】
請求項1において、
前記ポート管理部は、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、
前記パケット監視部は、
前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、
前記情報更新通知部は、
前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示していることを検知すると、これ以降のCKC要求が無意味であることを前記コンテンツ鍵制御部に通知し、
前記コンテンツ鍵制御部は、
CKC要求が無意味であることの通知を前記情報更新通知部より受けると前記コンテンツ鍵確認部にこれ以降のCKC要求の不実施を指示する、
ことを特徴とする情報通信装置。
【請求項5】
請求項1において、
前記CKC制御部は、
所定のパケットの通信を破棄するパケット制御部をさらに備え、
前記ポート管理部は、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、
前記パケット監視部は、
前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、
前記コンテンツ鍵確認部からのCKC要求パケットを検出すると、当該CKC要求パケットを前記パケット制御部へ振り分け、
前記パケット制御部は、
前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示しているときは、前記パケット監視部より受け取ったCKC要求パケットを破棄する、
ことを特徴とする情報通信装置。
【請求項6】
IPネットワーク上で相手機器との間で暗号/復号用の鍵を所定のタイミングで更新しながら暗号化データを通信する方法であって、
前記相手機器との間でデータ通信用TCPコネクションを確立し、前記相手機器からノンスと暗号化データを受信し、当該暗号化データの受信が完了すると前記データ通信用TCPコネクションを切断するステップ(S1)と、
前記ステップ(S1)で受信された暗号化データを復号するための鍵を前記ステップ(S1)で受信されたノンスに基づいて生成するステップ(S2)と、
前記ステップ(S1)で受信された暗号化データを前記ステップ(S2)で生成された鍵を用いて復号するステップ(S3)と、
前記相手機器との間で前記データ通信用TCPコネクションとは別にコンテンツ鍵確認用TCPコネクション(CKC用TCPコネクション)を確立し、前記ステップ(S2)で生成された鍵が正しいことの確認要求(CKC要求)を前記相手機器に対して行うステップ(S4)と、
前記データ通信用TCPコネクションについての情報と前記CKC用TCPコネクションについての情報とを対応付けて情報管理テーブルに登録するステップ(S5)と、
前記情報管理テーブルの情報に基づいて送受信パケットを監視し、必要に応じて前記情報管理テーブルの内容を更新するステップ(S6)と、
前記情報管理テーブルに登録されている前記データ通信用コネクションの状態に応じて前記ステップ(S4)における前記CKC要求の実施/不実施を指示するステップ(S7)と、
を備える、
ことを特徴とする情報通信方法。
【請求項7】
請求項6において、
前記ステップ(S5)では、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号とを対応付けて前記情報管理テーブルに登録し、
前記ステップ(S6)では、
前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、
前記ステップ(S4)によるCKC要求に対する応答(CKC応答)として前記相手機器からREJECTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているデータ通信用TCPコネクションのコネクション状態を確認し、当該コネクション状態が「切断」となっている場合は、不当なREJECTEDレスポンスを受信したと判断し、
前記ステップ(S7)では、
前記ステップ(S6)で不当なREJECTEDレスポンスを受信したと判断されたときは、このREJECTEDレスポンスに対して前記ステップ(S4)における前記CKC要求の再実施を指示することはせずに、リカバリ処理を行う、
ことを特徴とする情報通信方法。
【請求項8】
請求項6において、
前記ステップ(S5)では、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、
前記ステップ(S6)では、
CKC要求パケットを検出すると、前記情報管理テーブルに登録されているCKC用TCPコネクションについての情報のうち、このCKC要求パケットに含まれているポート番号に対応するコネクション状態を「CKC実施中」に更新し、
前記コンテンツ鍵確認部によるCKC要求に対する応答(CKC応答)として前記相手機器からACCEPTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているCKC用TCPコネクションのコネクション状態を「CKC実施中」から「CKC実施済み」に更新し、
前記情報管理テーブルに登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」であるときに前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」から「CKC実施済み」に更新されるまで前記切断パケットの送信を遅延させる、
ことを特徴とする情報通信方法。
【請求項9】
請求項6において、
前記ステップ(S5)では、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、
前記ステップ(S6)では、
前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、
前記ステップ(S7)では、
前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示しているときは、これ以降のCKC要求が無意味であると判断し、これ以降の前記ステップ(S4)によるCKC要求の不実施を指示する、
ことを特徴とする情報通信方法。
【請求項10】
請求項6において、
前記ステップ(S5)では、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、
前記ステップ(S6)では、
前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、
前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示している場合にCKC要求パケットを検出したときは当該CKC要求パケットを破棄する、
ことを特徴とする情報通信方法。
【請求項1】
IPネットワーク上で相手機器との間で暗号/復号用の鍵を所定のタイミングで更新しながら暗号化データを通信する装置であって、
前記相手機器との間でデータ通信用TCPコネクションを確立し、前記相手機器からノンスと暗号化データを受信し、当該暗号化データの受信が完了すると前記データ通信用TCPコネクションを切断するデータ受信部と、
前記データ受信部により受信された暗号化データを復号するための鍵を前記データ受信部により受信されたノンスに基づいて生成するコンテンツ鍵生成部と、
前記データ受信部により受信された暗号化データを前記コンテンツ鍵生成部により生成された鍵を用いて復号するデータ復号部と、
前記相手機器との間で前記データ通信用TCPコネクションとは別にコンテンツ鍵確認用TCPコネクション(CKC用TCPコネクション)を確立し、前記コンテンツ鍵生成部により生成された鍵が正しいことの確認要求(CKC要求)を前記相手機器に対して行うコンテンツ鍵確認部と、
前記コンテンツ鍵確認部に前記CKC要求の実施/不実施を指示するコンテンツ鍵制御部と、
前記データ通信用TCPコネクションと前記CKC用TCPコネクションとを対応付けて管理し、各々のコネクションの状態に従い前記コンテンツ鍵制御部へ情報通知を行うCKC制御部と、
を備え、
前記CKC制御部は、
情報管理テーブルと、
前記データ通信用TCPコネクションについての情報と前記CKC用TCPコネクションについての情報とを対応付けて前記情報管理テーブルに登録するポート管理部と、
前記情報管理テーブルの情報に基づいて送受信パケットを監視し、必要に応じて前記情報管理テーブルの内容を更新するパケット監視部と、
前記情報管理テーブルの情報が更新されると前記コンテンツ鍵制御部へ情報更新通知を行う情報更新通知部と、
を備える、
ことを特徴とする情報通信装置。
【請求項2】
請求項1において、
前記ポート管理部は、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号とを対応付けて前記情報管理テーブルに登録し、
前記パケット監視部は、
前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、
前記コンテンツ鍵確認部によるCKC要求に対する応答(CKC応答)として前記相手機器からREJECTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているデータ通信用TCPコネクションのコネクション状態を確認し、当該コネクション状態が「切断」となっている場合は、不当なREJECTEDレスポンスを受信した旨を前記情報更新通知部を通じて前記コンテンツ鍵制御部に通知し、
前記コンテンツ鍵制御部は、
不当なREJECTEDレスポンスを受信した旨の通知を受けると、REJECTEDレスポンスに対するCKC要求の再実施を前記コンテンツ鍵確認部に指示することはせずに、リカバリ処理を行う、
ことを特徴とする情報通信装置。
【請求項3】
請求項1において、
前記CKC制御部は、
所定のパケットの通信を遅延させるパケット制御部をさらに備え、
前記ポート管理部は、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、
前記パケット監視部は、
前記コンテンツ鍵確認部からのCKC要求パケットを検出すると、前記情報管理テーブルに登録されているCKC用TCPコネクションについての情報のうち、このCKC要求パケットに含まれているポート番号に対応するコネクション状態を「CKC実施中」に更新し、
前記データ通信用TCPコネクションの切断パケットを検出すると、当該切断パケットを前記パケット制御部へ振り分け、
前記コンテンツ鍵確認部によるCKC要求に対する応答(CKC応答)として前記相手機器からACCEPTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているCKC用TCPコネクションのコネクション状態を「CKC実施中」から「CKC実施済み」に更新し、
前記パケット制御部は、
前記情報管理テーブルに登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」から「CKC実施済み」に更新されるまで前記切断パケットの送信を遅延させる、
ことを特徴とする情報通信装置。
【請求項4】
請求項1において、
前記ポート管理部は、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、
前記パケット監視部は、
前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、
前記情報更新通知部は、
前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示していることを検知すると、これ以降のCKC要求が無意味であることを前記コンテンツ鍵制御部に通知し、
前記コンテンツ鍵制御部は、
CKC要求が無意味であることの通知を前記情報更新通知部より受けると前記コンテンツ鍵確認部にこれ以降のCKC要求の不実施を指示する、
ことを特徴とする情報通信装置。
【請求項5】
請求項1において、
前記CKC制御部は、
所定のパケットの通信を破棄するパケット制御部をさらに備え、
前記ポート管理部は、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、
前記パケット監視部は、
前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、
前記コンテンツ鍵確認部からのCKC要求パケットを検出すると、当該CKC要求パケットを前記パケット制御部へ振り分け、
前記パケット制御部は、
前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示しているときは、前記パケット監視部より受け取ったCKC要求パケットを破棄する、
ことを特徴とする情報通信装置。
【請求項6】
IPネットワーク上で相手機器との間で暗号/復号用の鍵を所定のタイミングで更新しながら暗号化データを通信する方法であって、
前記相手機器との間でデータ通信用TCPコネクションを確立し、前記相手機器からノンスと暗号化データを受信し、当該暗号化データの受信が完了すると前記データ通信用TCPコネクションを切断するステップ(S1)と、
前記ステップ(S1)で受信された暗号化データを復号するための鍵を前記ステップ(S1)で受信されたノンスに基づいて生成するステップ(S2)と、
前記ステップ(S1)で受信された暗号化データを前記ステップ(S2)で生成された鍵を用いて復号するステップ(S3)と、
前記相手機器との間で前記データ通信用TCPコネクションとは別にコンテンツ鍵確認用TCPコネクション(CKC用TCPコネクション)を確立し、前記ステップ(S2)で生成された鍵が正しいことの確認要求(CKC要求)を前記相手機器に対して行うステップ(S4)と、
前記データ通信用TCPコネクションについての情報と前記CKC用TCPコネクションについての情報とを対応付けて情報管理テーブルに登録するステップ(S5)と、
前記情報管理テーブルの情報に基づいて送受信パケットを監視し、必要に応じて前記情報管理テーブルの内容を更新するステップ(S6)と、
前記情報管理テーブルに登録されている前記データ通信用コネクションの状態に応じて前記ステップ(S4)における前記CKC要求の実施/不実施を指示するステップ(S7)と、
を備える、
ことを特徴とする情報通信方法。
【請求項7】
請求項6において、
前記ステップ(S5)では、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号とを対応付けて前記情報管理テーブルに登録し、
前記ステップ(S6)では、
前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、
前記ステップ(S4)によるCKC要求に対する応答(CKC応答)として前記相手機器からREJECTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているデータ通信用TCPコネクションのコネクション状態を確認し、当該コネクション状態が「切断」となっている場合は、不当なREJECTEDレスポンスを受信したと判断し、
前記ステップ(S7)では、
前記ステップ(S6)で不当なREJECTEDレスポンスを受信したと判断されたときは、このREJECTEDレスポンスに対して前記ステップ(S4)における前記CKC要求の再実施を指示することはせずに、リカバリ処理を行う、
ことを特徴とする情報通信方法。
【請求項8】
請求項6において、
前記ステップ(S5)では、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、
前記ステップ(S6)では、
CKC要求パケットを検出すると、前記情報管理テーブルに登録されているCKC用TCPコネクションについての情報のうち、このCKC要求パケットに含まれているポート番号に対応するコネクション状態を「CKC実施中」に更新し、
前記コンテンツ鍵確認部によるCKC要求に対する応答(CKC応答)として前記相手機器からACCEPTEDレスポンスを受信すると、前記情報管理テーブルを参照して、このCKC応答に含まれているポート番号に対応づけられているCKC用TCPコネクションのコネクション状態を「CKC実施中」から「CKC実施済み」に更新し、
前記情報管理テーブルに登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」であるときに前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているCKC用TCPコネクションのコネクション状態が「CKC実施中」から「CKC実施済み」に更新されるまで前記切断パケットの送信を遅延させる、
ことを特徴とする情報通信方法。
【請求項9】
請求項6において、
前記ステップ(S5)では、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、
前記ステップ(S6)では、
前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、
前記ステップ(S7)では、
前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示しているときは、これ以降のCKC要求が無意味であると判断し、これ以降の前記ステップ(S4)によるCKC要求の不実施を指示する、
ことを特徴とする情報通信方法。
【請求項10】
請求項6において、
前記ステップ(S5)では、
前記データ通信用TCPコネクションのポート番号およびコネクション状態と前記CKC用TCPコネクションのポート番号およびコネクション状態とを対応付けて前記情報管理テーブルに登録し、
前記ステップ(S6)では、
前記データ通信用TCPコネクションの切断パケットを検出すると、前記情報管理テーブルに登録されているデータ通信用TCPコネクションについての情報のうち、この切断パケットに含まれているポート番号に対応するコネクション状態を「切断」に更新し、
前記情報管理テーブルに対応づけられて登録されているデータ通信用TCPコネクションのコネクション状態が「切断」を示しかつCKC用TCPコネクションのコネクション状態が「CKC未実施」を示している場合にCKC要求パケットを検出したときは当該CKC要求パケットを破棄する、
ことを特徴とする情報通信方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2010−239376(P2010−239376A)
【公開日】平成22年10月21日(2010.10.21)
【国際特許分類】
【出願番号】特願2009−84880(P2009−84880)
【出願日】平成21年3月31日(2009.3.31)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
【公開日】平成22年10月21日(2010.10.21)
【国際特許分類】
【出願日】平成21年3月31日(2009.3.31)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
[ Back to top ]