IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ TIS株式会社の特許一覧 ▶ 独立行政法人情報通信研究機構の特許一覧

特許7371849ネットワークシステム、配信サーバ、配信方法、配信プログラム
<>
  • 特許-ネットワークシステム、配信サーバ、配信方法、配信プログラム 図1
  • 特許-ネットワークシステム、配信サーバ、配信方法、配信プログラム 図2
  • 特許-ネットワークシステム、配信サーバ、配信方法、配信プログラム 図3
  • 特許-ネットワークシステム、配信サーバ、配信方法、配信プログラム 図4
  • 特許-ネットワークシステム、配信サーバ、配信方法、配信プログラム 図5
  • 特許-ネットワークシステム、配信サーバ、配信方法、配信プログラム 図6
  • 特許-ネットワークシステム、配信サーバ、配信方法、配信プログラム 図7
  • 特許-ネットワークシステム、配信サーバ、配信方法、配信プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】ネットワークシステム、配信サーバ、配信方法、配信プログラム
(51)【国際特許分類】
   H04L 67/02 20220101AFI20231024BHJP
【FI】
H04L67/02
【請求項の数】 6
(21)【出願番号】P 2019106561
(22)【出願日】2019-06-06
(65)【公開番号】P2020201605
(43)【公開日】2020-12-17
【審査請求日】2022-05-19
(73)【特許権者】
【識別番号】514020389
【氏名又は名称】TIS株式会社
(73)【特許権者】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】吉見 真聡
(72)【発明者】
【氏名】中島 拓真
(72)【発明者】
【氏名】江村 恵太
(72)【発明者】
【氏名】盛合 志帆
【審査官】岩田 玲彦
(56)【参考文献】
【文献】特開平11-175475(JP,A)
【文献】特開2010-109791(JP,A)
【文献】国際公開第2013/140774(WO,A1)
【文献】国際公開第2018/092679(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/02
(57)【特許請求の範囲】
【請求項1】
データファイルを配信する配信サーバと、前記データファイルをキャッシュするキャッシュサーバと、前記データファイルを受信する端末とを含むネットワークシステムであって、
前記配信サーバは、
前記端末からデータファイルの送信要求を受けた場合、要求されたデータファイルに対して対応付けられた識別情報を前記端末に送信する配信制御部と、
暗号化されたデータファイルを復号するための鍵を前記端末に送信する鍵管理部と
を備え、
前記キャッシュサーバは、
前記端末から前記識別情報を含むデータファイルの送信要求を受けた場合、要求された識別情報と対応付けてデータファイルを記憶装置にキャッシュしているときは、当該データファイルを前記端末に送信し、要求された識別情報と対応付けてデータファイルを記憶装置にキャッシュしていないときは、暗号化された当該データファイルを前記配信サーバから受信し、前記記憶装置に格納するキャッシュ管理部を備え
前記配信サーバと前記端末とは、前記配信制御部が行う処理において暗号化通信を行うためのセッションを確立し、前記鍵管理部が行う処理において前記セッションを再開する
ネットワークシステム。
【請求項2】
前記識別情報は、当該識別情報と対応付けられるデータファイル、又は当該データファイルのネットワーク上のアドレスから所定の一方向性関数を用いて求められる値である
請求項1に記載のネットワークシステム。
【請求項3】
前記配信サーバ、前記キャッシュサーバ、及び前記端末は、互いに暗号化通信を行う
請求項1又は2に記載のネットワークシステム。
【請求項4】
データファイルを配信し、前記データファイルをキャッシュするキャッシュサーバ、及び前記データファイルを受信する端末と通信する配信サーバであって、
データファイルの送信要求を前記端末から受けた場合、要求されたデータファイルに対して対応付けられた識別情報を前記端末に送信し、当該識別情報を含むデータファイルの送信要求を前記キャッシュサーバから受けた場合、暗号化された当該データファイルを前記キャッシュサーバに送信する配信制御部と、
暗号化されたデータファイルを復号するための鍵を前記端末に送信する鍵管理部と
を備え
前記端末との間で、前記配信制御部が行う処理において暗号化通信を行うためのセッションを確立し、前記鍵管理部が行う処理において前記セッションを再開する
配信サーバ。
【請求項5】
データファイルを配信し、前記データファイルをキャッシュするキャッシュサーバ、及び前記データファイルを受信する端末と通信する配信サーバが実行する配信方法であって、
データファイルの送信要求を前記端末から受けた場合、要求されたデータファイルに対して対応付けられた識別情報を前記端末に送信し、当該識別情報を含むデータファイルの送信要求を前記キャッシュサーバから受けた場合、暗号化された当該データファイルを前記キャッシュサーバに送信する第1ステップと
暗号化されたデータファイルを復号するための鍵を前記端末に送信する第2ステップと、
を含み、
前記端末との間で、前記第1ステップにおいて、暗号化通信を行うためのセッションを確立し、前記第2ステップにおいて前記セッションを再開する
配信方法。
【請求項6】
データファイルを配信し、前記データファイルをキャッシュするキャッシュサーバ、及び前記データファイルを受信する端末と通信する配信サーバによって実行される配信プログラムであって、
データファイルの送信要求を前記端末から受けた場合、要求されたデータファイルに対して対応付けられた識別情報を前記端末に送信し、当該識別情報を含むデータファイルの送信要求を前記キャッシュサーバから受けた場合、暗号化された当該データファイルを前記キャッシュサーバに送信する第1ステップと
暗号化されたデータファイルを復号するための鍵を前記端末に送信する第2ステップと、
を配信サーバに実行させると共に
前記配信サーバに、前記端末との間で、前記第1ステップにおいて、暗号化通信を行うためのセッションを確立させ、前記第2ステップにおいて前記セッションを再開させる
配信プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークシステム、配信サーバ、配信方法、配信プログラム、キャッシュサーバ、キャッシュ方法及びキャッシュプログラムに関する。
【背景技術】
【0002】
従来、ネットワークに接続されたコンピュータ間で伝送されるファイルを中間的にキャッシュするための様々な技術が提案されている。しかしながら、配信元のサーバと配信先の端末との間で暗号化通信を行う場合、キャッシュサーバは配信される情報を読み取ることができず、一般的にはキャッシュが困難である。また、暗号化された通信の内容をキャッシュするための技術も提案されている(例えば、非特許文献1、2)。
【先行技術文献】
【非特許文献】
【0003】
【文献】Jeremie Leguay, Georgios S. Paschos, Elizabeth A. Quaglia, Ben Smyth, “CryptoCache: Network Caching with Confidentiality” IEEE ICC, 2017年5月21-25日, DOI: 10.1109/ICC.2017.7996866
【文献】Shujie Cui, Muhammad Rizwan Asghar, and Giovanni Russello, “Multi-CDN: Towards Privacy in Content Delivery Networks”IEEE TDSC, 2018年5月4日, DOI: 10.1109/TDSC.2018.2833110
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、キャッシュサーバが保持し端末から要求される情報の内容についてはキャッシュサーバに対し秘匿し、情報を要求する端末に対しては情報を適切に利用させることは困難であった。そこで、本発明は、情報を暗号化した状態でキャッシュサーバが保持し、且つ情報を要求する端末に対しては適切に復号させるための技術を提供することを目的とする。
【課題を解決するための手段】
【0005】
ネットワークシステムは、データファイルを配信する配信サーバと、データファイルをキャッシュするキャッシュサーバと、データファイルを受信する端末とを含む。配信サーバは、端末からデータファイルの送信要求を受けた場合、要求されたデータファイルに対して対応付けられた識別情報を端末に送信する配信制御部と、暗号化されたデータファイルを復号するための鍵を端末に送信する鍵管理部とを備える。また、キャッシュサーバは、端末から識別情報を含むデータファイルの送信要求を受けた場合、要求された識別情報と対応付けてデータファイルを記憶装置にキャッシュしているときは、当該データファイルを端末に送信し、要求された識別情報と対応付けてデータファイルを記憶装置にキャッシュしていないときは、暗号化された当該データファイルを配信サーバから受信し、記憶装置に格納するキャッシュ管理部を備える。
【0006】
配信サーバ、キャッシュサーバ、及び端末が、識別情報を用いてデータファイルを特定するため、データファイル自体は暗号化された状態でもネットワークシステム上にキャッシュし、配信サーバにかかる負荷を低減させることができる。また、キャッシュサーバに対しては、例えばURI(Uniform Resource Identifier)のようなオリジナルのデータ
ファイルを特定するための情報を秘匿することができる。
【0007】
また、識別情報は、当該識別情報と対応付けられるデータファイル、又は当該データファイルのネットワーク上のアドレスから所定の一方向性関数を用いて求められる値であってもよい。このようにすれば、配信サーバは、識別情報を容易に生成することができ、また、キャッシュサーバにおいてもサイズの大きなテーブルに識別情報を記憶させておく必要がなくなる。
【0008】
また、配信サーバと端末とは、配信制御部が行う処理において暗号化通信を行うためのセッションを確立し、鍵管理部が行う処理においてセッションを再開するようにしてもよい。このようにすれば、端末に対し、データファイルを復号するための情報を、適切なタイミングで送信することができる。
【0009】
また、本発明の他の側面に係る配信サーバは、データファイルを配信し、データファイルをキャッシュするキャッシュサーバ、及びデータファイルを受信する端末と通信する。そして、配信サーバは、データファイルの送信要求を端末から受けた場合、要求されたデータファイルに対して対応付けられた識別情報を端末に送信し、当該識別情報を含むデータファイルの送信要求をキャッシュサーバから受けた場合、暗号化された当該データファイルをキャッシュサーバに送信する配信制御部と、暗号化されたデータファイルを復号するための鍵を端末に送信する鍵管理部とを備える。
【0010】
このようにすれば、識別情報を用いてデータファイルを特定するため、データファイル自体は暗号化された状態でも、ネットワークシステム上にキャッシュし配信サーバにかかる負荷を低減させることができる。
【0011】
また、キャッシュサーバは、データファイルを配信する配信サーバ、及びデータファイルを受信する端末と通信を行い、データファイルをキャッシュする。そして、端末から、要求するデータファイルの識別情報を含むデータファイルの送信要求を受けた場合、要求された識別情報と対応付けて暗号化されたデータファイルを記憶装置にキャッシュしているときは、当該暗号化されたデータファイルを端末に送信し、要求された識別情報と対応付けて暗号化されたデータファイルを記憶装置にキャッシュしていないときは、暗号化された当該データファイルを配信サーバから受信し、記憶装置に格納する。
【0012】
このようにすれば、識別情報を用いてデータファイルを特定するため、データファイル自体は暗号化された状態でもネットワークシステム上にキャッシュし、配信サーバにかかる負荷を低減させることができる。
【0013】
なお、課題を解決するための手段に記載の内容は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。また、課題を解決するための手段の内容は、コンピュータ等の装置若しくは複数の装置を含むシステム、コンピュータが実行する方法、又はコンピュータに実行させるプログラムとして提供することができる。なお、プログラムを保持する記録媒体を提供するようにしてもよい。
【発明の効果】
【0014】
本発明によれば、情報を暗号化した状態でキャッシュサーバが保持し、且つ情報を要求する端末に対しては適切に復号させるための技術を提供することができる。
【図面の簡単な説明】
【0015】
図1図1は、実施形態に係るネットワークシステムの構成の一例を示す図である。
図2図2は、配信サーバ、キャッシュサーバ、及び端末の構成の一例を示すブロック図である。
図3図3は、配信処理の一例を示す処理フロー図である。
図4図4は、配信サーバが記憶装置に記憶しているテーブルの一例を示す図である。
図5図5は、キャッシュサーバが記憶装置に記憶しているテーブルの一例を示す図である。
図6図6は、配信処理の一例を示す処理フロー図である。
図7図7は、配信処理の一例を示す処理フロー図である。
図8図8は、変形例に係るネットワークシステムの構成及び処理の一例を示す図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明を実施するための形態について説明する。
【0017】
<システム構成>
図1は、実施形態に係るネットワークシステムの構成の一例を示す図である。図1のネットワークシステム1は、例えば動画コンテンツ等のデータファイルを配信する配信サーバ2と、データファイルをキャッシュし、要求に応じてキャッシュしているデータファイルを送信するキャッシュサーバ3と、ユーザの操作に応じてデータファイルを要求する端末4(4A~4C)とを含む。配信サーバ2、キャッシュサーバ3、端末4はいわゆるコンピュータであり、他のコンピュータと通信可能に接続され、データファイルを送受信する。本実施形態においては、配信サーバ2、キャッシュサーバ3、端末4の間でそれぞれSSL/TLSプロトコル等に従って暗号化通信を行う。通信路の暗号化に用いる鍵は、既存の技術を利用して生成することができる。例えば、データ本文を暗号化する共通鍵は、セッションごとに独立したものが使用され毎回異なる。また、通信経路の暗号化とは別に、データファイル自体も暗号化され、暗号化されたデータファイルがキャッシュサーバ3に保持されるものとする。図1のContentは、平文のデータファイルを表している。また、kは、コンテンツデータの暗号化及び復号に用いる共通鍵である。すなわち、コンテンツデータの暗号化には、通信路の暗号化とは独立した鍵が利用される。なお、共通鍵kは、コンテンツごとに異なるものが使用されるものとする。Enc(Conte
nt)は、共通鍵kを用いて暗号化されたデータファイルである。また、Deck(Enck(Content))は、共通鍵kを用いて復号されたデータファイルである。なお、ネットワークシステム1に含まれる、配信サーバ2、キャッシュサーバ3、端末4の数は、図1に示したものには限定されず、例えば複数の配信サーバ2やキャッシュサーバ3を含んでいてもよい。
【0018】
<装置の構成>
図2は、配信サーバ2、キャッシュサーバ3、及び端末4の構成の一例を示すブロック図である。
【0019】
<配信サーバ>
配信サーバ2は、通信インターフェース(I/F)21と、記憶装置22と、入出力装置23と、プロセッサ24と、バス25とを備えている。通信I/F21は、例えば通信モジュールやネットワークカードであり、所定のプロトコルに基づき、キャッシュサーバ3や端末4等のコンピュータと通信を行う。
【0020】
記憶装置22は、RAM(Random Access Memory)やROM(Read Only Memory)等の主記憶装置(一次記憶装置)及びHDD(Hard-disk Drive)やSSD(Solid State Drive)、フラッシュメモリ等の補助記憶装置(二次記憶装置)である。主記憶装置は、プロセッサが読み出したプログラムやデータを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムや、配信するデータ
ファイル等を記憶する。入出力装置23は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。
【0021】
プロセッサ24は、CPU(Central Processing Unit)等の演算処理装置であり、ア
プリケーションを実行することにより本実施の形態に係る各処理を行う。配信サーバ2は、プロセッサ24内に機能ブロックを示している。すなわち、プロセッサ24は、配信制御部241、及び鍵管理部242として機能する。配信制御部241は、キャッシュサーバ3や端末4からの要求に応じて、データファイルや、当該データファイルと対応付けられた識別情報を送信する。なお、データファイルを対応付けられた識別情報を、本実施形態では「タグ」と呼ぶものとする。タグは、データファイル、又は当該データファイルのネットワーク上のアドレスから所定のハッシュ関数を用いて求められるハッシュであってもよいし、データファイルとは無関係に付与されるランダムな文字列であってもよい。また、本実施形態では、データファイルに対し所定の方式で暗号化を施しておき、端末4においてデータファイルを読み出すためには復号鍵が必要になるものとする。鍵管理部242は、所定のタイミングで、データファイルを復号するための復号鍵を端末4へ送信する。例えば、キャッシュサーバ3から端末4へ暗号化されたデータファイルが送信された後に、鍵管理部242は、端末4へ復号鍵を送信する。
【0022】
以上のような構成要素が、バス25を介して接続されている。
【0023】
<キャッシュサーバ>
図2に示すように、キャッシュサーバ3も、通信I/F31と、記憶装置32と、入出力装置33と、プロセッサ34と、バス35とを備えている。
【0024】
通信I/F31は、例えば通信モジュールやネットワークカードであり、所定のプロトコルに基づき、他のコンピュータと通信を行う。例えば、端末4及び配信サーバ5との間においてデータファイルを送受信する。記憶装置32は、RAMやROM等の主記憶装置及びHDDやSSD、フラッシュメモリ等の補助記憶装置である。主記憶装置は、プロセッサが読み出したプログラムやデータを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムや、暗号化されたデータファイルを上述したタグと対応付けて記憶する。入出力装置33は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。
【0025】
プロセッサ34は、CPU等の演算処理装置であり、アプリケーションを実行することにより本実施の形態に係る各処理を行う。キャッシュサーバ3においても、プロセッサ34内に機能ブロックを示している。すなわち、プロセッサ34は、キャッシュ管理部341及び配信管理部342として機能する。キャッシュ管理部341は、タグを含むデータファイルの送信要求を端末4から受け、キャッシュヒットしたか否か表すデータを配信サーバ2へ送信する。配信管理部342は、端末4へ暗号化されたデータファイルを送信したり、キャッシュヒットしなかった場合に配信サーバ2から暗号化されたデータファイルを受信してキャッシュしたりする。
【0026】
以上のような構成要素が、バス35を介して接続されている。
【0027】
<端末>
端末4は、PC(Personal Computer)、スマートフォン、タブレット等のコンピュー
タであり、通信I/F41と、記憶装置42と、入出力装置43と、プロセッサ44と、バス45とを備えている。通信I/F41は、例えば有線のネットワークカード又は無線の通信モジュールであり、所定のプロトコルに基づき、他のコンピュータと通信を行う。
例えば、キャッシュサーバ3から暗号化されたデータファイルを受信する。記憶装置42は、RAMやROM等の主記憶装置及びHDDやSSD、フラッシュメモリ等の補助記憶装置である。主記憶装置は、プロセッサが読み出したプログラムやデータファイルを一時的に記憶したり、プロセッサの作業領域を確保したりする。補助記憶装置は、プロセッサが実行するプログラムやデータファイル等を記憶する。入出力装置43は、例えばキーボード、マウス等の入力装置や、モニタ等の出力装置、タッチパネル等のユーザインターフェースである。例えば、ユーザは、入出力装置43を介して配信サーバ2に対しデータファイルの送信を要求したり、受信したデータファイルを読み出して表示させたりする。
【0028】
プロセッサ44は、CPU等の演算処理装置であり、プログラムを実行することにより本実施の形態に係る各処理を行う。端末4についても、プロセッサ44内に機能ブロックを示している。すなわち、プロセッサ44は、要求処理部441及び復号処理部442として機能する。要求処理部441は、配信サーバ2に対し、データファイルの送信を要求するとともに、配信サーバ2からデータファイルに対応付けられたタグを受信し、タグを用いてキャッシュサーバ3へデータファイルの送信を要求する。また、要求処理部441は、キャッシュサーバ3から、タグに対応する、暗号化されたデータファイルを受信する。復号処理部442は、配信サーバ2から復号鍵を受信し、暗号化されたデータファイルを復号して再生する。
【0029】
以上のような構成要素が、バス45を介して接続されている。
【0030】
このように、本実施形態に係るネットワークシステム1は、タグを用いてデータファイルを特定することにより、キャッシュサーバ3に暗号化されたデータファイルを保持させることができる。そして、当該データファイルに対する送信要求に対し、キャッシュサーバ3から配信を行うことにより、ネットワーク上のトラフィックを削減することができる。また、上述した通り、タグは、例えば原像計算困難性(一方向性)を有するハッシュのように、データファイルの平文データやアドレスとは無関係に付与される値である。そして、データファイルの復号鍵は、配信サーバ2と端末4との間の暗号化通信において送受信される。したがって、キャッシュサーバ3は端末4から要求されたデータファイルの内容を復号することはできず、端末4のユーザのプライバシーが守られる。
【0031】
<配信処理>
図3は、配信処理の一例を示す処理フロー図である。端末4のユーザが、例えばコンテンツのデータファイルの配信を要求する操作を行うと、図3以降に示すような配信処理が開始される。また、図3においては、2つの装置間に確立されるHTTPSのセッションを、二点鎖線の角丸長方形で示している。HTTPSのセッションにおいては、2つの装置間で共有される共通鍵を利用して、例えばAES方式等の暗号化方式により通信の内容が暗号化される。
【0032】
まず、端末4の要求処理部441は、通信I/F41を介して配信サーバ2に対し、データファイルを要求する旨のデータが送信される(図3:S1)。本ステップにおいては、例えばURIのようなデータファイルのID(「コンテンツID」とも呼ぶ)を含む、データファイルの送信要求が送信される。また、本ステップの実行に際し、上述したHTTPSのセッションが開始されているものとする。
【0033】
一方、配信サーバ2は、データファイルのIDと、タグと、データファイルの暗号化に用いる鍵とを対応付けて、予め記憶装置22に保持しているものとする。図4は、配信サーバ2が記憶装置22に記憶しているテーブルの一例を示す図である。図4に示すテーブルは、「コンテンツ」、「タグ」、「鍵」の各属性を含む。「コンテンツ」のフィールドには、配信サーバ2が配信するコンテンツIDが登録される。「タグ」のフィールドには
、データファイルから所定の関数に基づいて又は所定のテーブルを参照して求めることができる一方向性を有し、データファイルの識別情報として利用されるタグが登録される。タグは、例えばURIやデータファイルの平文からHMAC(Hash-based Message Authentication Code)を利用して作成されるハッシュ値であってもよいし、配信サーバ2がデータファイルに対してランダムに作成した値であってもよい。なお、本実施形態においては、タグはデータファイルの識別情報として利用されるため、例えば256ビット程度のように、データファイルの数に応じて衝突を避けるために十分な大きさを有することが好ましい。「鍵」のフィールドには、データファイルを暗号化及び復号するための共通鍵が登録される。鍵のサイズは暗号化方式に従い、例えば128ビット等の大きさを有することが好ましい。
【0034】
配信サーバ2の配信制御部241は、通信I/F21を介して端末4からデータファイルの要求を受けた場合、要求に含まれるコンテンツIDに対応付けられたタグをテーブルから読み出し、通信I/F21を介して端末4へ送信する(図3:S2)。本ステップでは、配信制御部241は、要求されたコンテンツに対応するタグを、例えば図4に示したテーブルから抽出して端末4へ送信する。
【0035】
一方、端末4の要求処理部441は、配信サーバ2からタグを受信すると(図3:S3)、タグを用いてキャッシュサーバ3に対しキャッシュファイルの送信を要求する(図3:S4)。本ステップでは、要求処理部441は、S3で受信したタグを含む要求を、通信I/F41を介してキャッシュサーバ3へ送信する。また、要求は、端末4又は当該端末を使用するユーザのIDや、配信サーバ2のIDをさらに含むものであってもよい。なお、端末4とキャッシュサーバ3との間でもHTTPSのセッションが開始され、暗号化通信が行われるものとする。
【0036】
キャッシュサーバ3は、上述の通り暗号化されたデータファイルをキャッシュする機能を有するが、配信サーバ2が配信するデータファイルをすべてキャッシュしているとは限らない。図5は、キャッシュサーバ3が記憶装置32に記憶しているテーブルの一例を示す図である。図5に示すテーブルは、「暗号化コンテンツ」、「タグ」の各属性を含む。「暗号化コンテンツ」のフィールドには、キャッシュサーバ3がキャッシュしている、暗号化されたデータファイルのIDが登録される。暗号化されたデータファイルのIDは、記憶装置32上のデータファイルの所在を表すファイルパスであってもよいし、ファイルパスを一意に特定するための識別情報であってもよい。「タグ」のフィールドには、当該データファイルに対して配信サーバ2によって対応付けられたタグが登録される。このように、キャッシュサーバ3が保持する情報からは、データファイルの内容を復号することができず、また、データファイルのオリジナルの所在を特定することもできない。
【0037】
キャッシュサーバ3のキャッシュ管理部341は、通信I/F31を介して端末4からキャッシュファイルの要求を受けた場合、要求されたファイルをキャッシュしているか判断する(図3:S5)。本ステップでは、例えば、要求されたタグが、図5に示したテーブルに登録されている場合にキャッシュがヒットしたと判断し、登録されていない場合にキャッシュがヒットしなかったと判断する。
【0038】
キャッシュがヒットしなかった場合(S5:NO)、接続子「A」を介して図6の処理に遷移する。図6は、配信処理の一例を示す処理フロー図である。そして、キャッシュサーバ3の配信管理部342は、通信I/F31を介して配信サーバ2へ、キャッシュミスを通知する(図6:S6)。本ステップにおいては、例えば端末4から要求されたデータファイルのタグと、端末4又は当該端末を使用するユーザのIDと、キャッシュヒットしなかった旨を示す情報とが通知される。なお、キャッシュサーバ3と配信サーバ2との間でもHTTPSのセッションが開始され、暗号化通信が行われるものとする。
【0039】
一方、配信サーバ2の配信制御部241は、通信I/F21を介してキャッシュサーバ3からキャッシュミスの通知を受けた場合、通信I/F21を介してキャッシュサーバ3へ、暗号化されたデータファイル(「暗号化コンテンツ」とも呼ぶ)を送信する(図6:S7)。本ステップでは、図4の「コンテンツ」のフィールドに登録されているデータファイル(コンテンツ)が、当該データファイルに対応付けられて「鍵」のフィールドに登録されている共通鍵によって暗号化され、配信制御部241によって送信される。なお、配信サーバ2においては、あらかじめ暗号化コンテンツを記憶部22に保持させておき、送信時のコンテンツ暗号化処理を省略してもよい。
【0040】
また、キャッシュサーバ3のキャッシュ管理部341は、通信I/F31を介して配信サーバ2から暗号化コンテンツを受信すると、受信した暗号化コンテンツを記憶装置32に記憶させると共に、図5に示したテーブルに暗号化コンテンツとタグとを対応付けて記憶させる(図6:S8)。
【0041】
また、キャッシュ管理部341は、通信I/F31を介して端末4に、暗号化コンテンツを送信する(図6:S9)。本ステップは、S4において開始されたHTTPSのセッションが再開され、キャッシュサーバ3と端末4との間で暗号化通信が行われるものとする。セッションの再開は、例えば既存のセッションリサンプション手法により行うことができる。一方、端末4の要求処理部441は、通信I/F41を介して暗号化コンテンツを受信し、記憶装置42に記憶させる。
【0042】
また、配信サーバ2の鍵管理部242は、S6においてキャッシュミスの通知を受け、キャッシュサーバ3へ暗号化コンテンツを送信した後に、通信I/F21を介して、暗号化コンテンツを復号するための共通鍵を端末4へ送信する(図6:S10)。本ステップは、S1において開始されたHTTPSのセッションが再開され、配信サーバ2と端末4との間で暗号化通信が行われるものとする。
【0043】
そして、端末4の復号処理部442は、通信I/F41を介して共通鍵を受信し、当該共通鍵を用いて、S9で受信した暗号化コンテンツを復号する(図6:S11)。このようにして、端末4は所望のデータファイルを配信サーバ2から取得し、その内容を読み出すことができる。
【0044】
なお、キャッシュミスの場合は、配信サーバ2から端末4へ、直接暗号化コンテンツを送信するようにしてもよい。また、キャッシュサーバ3は、所定の規則に基づいて暗号化コンテンツをキャッシュするか否か判断するようにしてもよいし、配信サーバ2等によっていずれの暗号化コンテンツをキャッシュすべきか制御されるようにしてもよい。
【0045】
また、図3のS5においてキャッシュヒットしたと判断され場合(S5:YES)、接続子「B」を介して図7の処理に遷移する。図7は、配信処理の一例を示す処理フロー図である。そして、キャッシュサーバ3の配信管理部342は、通信I/F31を介して配信サーバ2に対し、キャッシュヒットを通知する(図7:S12)。本ステップにおいては、例えば端末4を一意に特定するための識別情報と、端末4から要求されたデータファイルのタグと、キャッシュヒットした旨を示す情報とが通知される。これにより、配信サーバ2もキャッシュヒットしたことを把握することができ、キャッシュヒットした場合は、配信サーバ2からキャッシュサーバ3への暗号化コンテンツの送信は行われない。なお、本ステップにおいても、キャッシュサーバ3と配信サーバ2との間でHTTPSのセッションが開始され、暗号化通信が行われる。
【0046】
そして、キャッシュサーバ3のキャッシュ管理部341は、通信I/F31を介して端
末4に、暗号化コンテンツを送信する(図7:S13)。本ステップは、図6のS9と同様である。
【0047】
また、配信サーバ2の鍵管理部242は、S12においてキャッシュヒットの通知を受けた後に、通信I/F21を介して、暗号化コンテンツを復号するための共通鍵を端末4へ送信する(図7:S14)。キャッシュヒットの通知は、端末4への鍵の送信要求を含むものであってもよい。本ステップは、図6のS10と同様である。
【0048】
そして、端末4の復号処理部442は、通信I/F41を介して共通鍵を受信し、当該共通鍵を用いて、S13で受信した暗号化コンテンツを復号する(図7:S15)。本ステップは、図6のS11と同様である。このようにして、端末4は所望のデータファイルを配信サーバ2から取得し、その内容を読み出すことができる。
【0049】
<効果>
キャッシュヒットした場合に、キャッシュサーバ3から暗号化コンテンツを端末4へ送信することで、配信サーバ2へのアクセスの集中を抑制し、ネットワーク1上のトラフィックを削減することができる。また、上述のタグを利用することで、HTTPS等による暗号化通信を行う場合であっても、データファイルをネットワーク上にキャッシュすることができると共に、キャッシュサーバ3においてはキャッシュしているデータファイルの内容を特定したり、読み出したりすることができないようになっている。暗号化コンテンツを復号するための鍵は、暗号化コンテンツとは別のホストから、また、キャッシュサーバにおいてキャッシュヒットしたか否かを配信サーバが把握した後のタイミングで、端末へ送信される。このとき、暗号化通信のセッションを再開して鍵を送信することにより鍵を適切に管理することができる。
【0050】
<変形例>
上述の実施形態に係るネットワークシステムは、暗号化コンテンツを送信する通信路と暗号化コンテンツの復号鍵を送信する通信路とが独立している。そこで、配信サーバ2は、端末4に対し利用可能な通信路を限定するようにしてもよい。例えば、図3のS2において配信サーバ2が端末4へタグを送信した後に、さらにキャッシュサーバ3を指定すると共に指定されたキャッシュサーバ3にアクセスからのみ暗号化コンテンツを取得できるようにする。また、配信サーバ2は、さらにタグの有効期限を設定し、一定時間以内に端末4がキャッシュサーバ3から暗号化コンテンツを取得しなければタグを無効にしてもよい。有効期限を適切に設定することで、仮に第三者が不正に鍵及びタグを取得しても、キャッシュサーバからの暗号化コンテンツの取得を制限できるようになる。
【0051】
図8は、変形例に係るネットワークシステムの構成及び処理の一例を示す図である。本変形例では、正規のユーザが使用する端末4Cからコンテンツへのリクエストが送信されると(図8(1))、配信サーバ2は本変形例に係る代替タグと、アクセス先のキャッシュサーバ3の識別情報とを端末4Cへ送信する(図8(2))。
【0052】
代替タグは、タグ、ユーザID及び時刻を含むものとする。タグは、上述の通り例えば一方向性関数により又はランダムに生成されるコンテンツの識別情報である。ユーザIDは、端末4Cのユーザの識別情報であり、Cookieの一部であってもよいし、アクセス元のIPアドレス等であってもよい。時刻は、有効期限の始期又は終期を示す情報であり、例えば代替タグを生成した日時や代替タグを失効させる日時であってもよい。また、代替タグは所定の鍵(便宜上「タグ鍵」と呼ぶ)で暗号化されており、端末4Cは復号することができないものとする。なお、配信サーバ2は、端末4Cがキャッシュの送信を要求すべき(すなわち、アクセス先の)キャッシュサーバ3を決定し、決定されたキャッシュサーバ3Aとの間で共有された共通鍵を用いて代替タグを暗号化して端末4Cへ送信す
る。したがって、配信サーバ2が決定したアクセス先のキャッシュサーバ3Aのみが、代替タグを復号できる。
【0053】
また、端末4Cは、指定されたアクセス先のキャッシュサーバ3Aへ代替タグを含むリクエストを送信する(図8(3))。キャッシュサーバ3Aは、予め保持しているタグ鍵で代替タグを復号する(図8(4))。そして、キャッシュサーバ3Aは、代替タグに含まれていたタグ及びユーザIDを含むコンテンツのリクエストを、配信サーバ2へ送信する(図8(5))。このとき、キャッシュサーバ3Aは、復号が成功したか判断し、予め保持しているタグ鍵で代替タグの復号に失敗した場合は処理を中断してもよい。また、キャッシュサーバ3Aは、代替タグに含まれていた時刻に基づいて所定の有効期限内であるか判断し、有効期限内でない場合は処理を中断してもよい。また、キャッシュサーバ3Aは、代替タグに含まれていたユーザIDに基づいて要求元の端末4CとユーザIDとが予め定められた適切な組み合わせであるか判断し、適切な組み合わせでない場合は処理を中断してもよい。
【0054】
一方、コンテンツのリクエストを受信した配信サーバ2は、タグに対応付けられた暗号化コンテンツを読み出し、キャッシュサーバ3Aへ送信する(図8(6))。本ステップは、図6のS7と同様である。そして、キャッシュサーバ3Aは端末4Cへ暗号化コンテンツを送信する(図8(7))。本ステップは、図6のS9と同様である。また、配信サーバ2は、コンテンツの暗号化に使用した共通鍵を端末4Cへ送信する(図8(8))。本ステップは、図6のS10と同様である。このようにして、端末4Cにおいて暗号化コンテンツを復号して再生できるようになる。
【0055】
また、不正なユーザが使用する端末4Dが、仮に暗号化された代替タグを入手したとしても、適切なアクセス先でないキャッシュサーバ3Bにおいては代替タグを復号できず処理が中断される。また、適切なアクセス先であるキャッシュサーバ3Aにおいても、端末4Dからのリクエストに対しては、有効期限内でないことや、ユーザIDと端末4Dとの組み合わせの適切性により、処理が中断される。このように、本変形例によれば、鍵及びタグを不正なユーザが取得したとしても、コンテンツの閲覧を制限できる。
【0056】
<その他>
実施形態及び変形例の構成は例示であり、本発明は上述した構成に限定されない。また、実施形態及び変形例に示した構成は、本発明の課題や技術的思想を逸脱しない範囲で可能な限り組み合わせることができる。
【0057】
なお、キャッシュされるデータファイルは、動画や音楽等のコンテンツに限らず、文書やアプリケーションの実行ファイル等、コンピュータによって生成、読み出し、書き込み、記憶等される様々な電子データであってもよい。また、配信サーバ2は、端末4のユーザがデータファイルにアクセスする権限を有するか、例えばユーザに対して発行されたIDやパスワード等に基づいてさらに判断するようにしてもよい。
【0058】
また、キャッシュされるコンテンツの暗号化には、例えばAES128-GCMのように、MACを付加して改ざんを検知できる暗号化方式を採用してもよい。また、キャッシュされていた暗号化コンテンツを端末4で復号できなかった場合、再度暗号化コンテンツをキャッシュサーバ3にキャッシュし直すようにしてもよい。
【0059】
本発明は上述の処理を実行するコンピュータプログラムを含む。さらに、当該プログラムを記録した、コンピュータ読み取り可能な記録媒体も、本発明の範疇に属する。当該プログラムが記録された記録媒体については、コンピュータに、この記録媒体のプログラムを読み込ませて実行させることにより、上述の処理が可能となる。
【0060】
ここで、コンピュータ読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータから取り外し可能なものとしては、フレキシブルディスク、光磁気ディスク、光ディスク、磁気テープ、メモリカード等がある。また、コンピュータに固定された記録媒体としては、ハードディスクドライブやROM等がある。
【符号の説明】
【0061】
1 :ネットワークシステム
2 :配信サーバ
21 :通信I/F
22 :記憶装置
23 :入出力装置
24 :プロセッサ
241 :配信制御部
242 :鍵管理部
25 :バス
3 :配信サーバ
31 :通信I/F
32 :記憶装置
33 :入出力装置
34 :プロセッサ
341 :キャッシュ管理部
342 :配信管理部
35 :バス
4 :端末
41 :通信I/F
42 :記憶装置
43 :入出力装置
44 :プロセッサ
441 :要求処理部
442 :復号処理部
45 :バス
図1
図2
図3
図4
図5
図6
図7
図8