説明

UPNP認証及び認可

安全なハンドシェイクサービスが、1つまたは複数のUPnPサービスをホストしているオープンネットワーク内の複数のUPnP(Universal Plug and Play)ポータブルメディアデバイスとエンドポイントとの間で実装される。第1のポータブルメディアデバイスは、ネットワークを介して第2のポータブルメディアデバイスからホストされたサービスに対する第1の要求を受信する。第1のポータブルメディアデバイスは、要求の証明書の関数として、第2のポータブルメディアデバイスを認証して認可する。第2のポータブルメディアデバイスが第1のポータブルメディアデバイスによって認証されかつ認可された場合に、第2のポータブルメディアデバイスは、第1のポータブルメディアデバイスにおいてホストされる要求されたサービスへアクセスすることを許可される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、UPnP認証及び認可に関する。
【背景技術】
【0002】
UPnP(Universal Plug and Play)アーキテクチャは、例えば電気器具、無線デバイス、エレクトロニクス、ポータブルメディアデバイスデバイス、及びパーソナルコンピュータなどの家庭用電子機器のネットワーク接続性を提供する。UPnPは、TCP/IP及びウェブ技術を利用して、近接ネットワークを可能にし、そして家庭、オフィス、及び公共の場のネットワーク化されたデバイスの間のデータ転送を制御する、分散オープンネットワークアーキテクチャである。UPnPは、様々なベンダーからの広範囲に及ぶデバイスの種類に対して、ゼロ設定、「不可視」ネットワーク、及び自動発見をサポートするように設計される。デバイスは、動的にネットワークに参加し、IPアドレスを取得し、自らの機能を伝え、他のデバイスのプレゼンス及び機能について知ることができる。また、UPnPデバイスは、あとにいかなる望ましくない状態も残すことなしにネットワークを離脱することができる。
【0003】
UPnPモデルでは、全てのデバイスは、いわゆる「不可視」ネットワークを可能にするための任意の可能な要求を行うことを黙示的に認可されると仮定される。しかしながら、認証なしで、別のUPnPデバイスからUPnP要求を受信するデバイスは、かかる要求を送信しているデバイスがかかる要求を行う権限を与えられているかどうかが分らない。UPnPは、全てのデバイスが信頼できると仮定されるホームネットワークなどのために設計されたので、デバイスの認証及び認可は必要ではなかった。しかしながら、ホームネットワーク内でさえ、UPnPにおける承認及び認可についてのサポートの欠落は問題がある可能性がある。例えば、共有ネットワークが、大学寄宿舎においてまたは無線技術(例えば、Wi−Fi)を利用している環境において実施されると仮定する。そのような場合、UPnPに基づくファイルサーバの所有者は、ネットワークのサーバに記憶されているファイルへの無制限のアクセスを認めたくないかもしれない。所有者は、ネットワークにアクセスできる他の全てのUPnPデバイスを信頼することができないかもしれないからである。
【0004】
別の例では、高解像度ビデオをストリーミングできるUPnPに基づくメディアサーバの製造業者が、ビデオコンテンツの標準解像度バージョンを他のデバイスにストリーミングしつつ、ライセンスされていてかつ高解像度ビデオコンテンツをレンダリングすることができるデバイスに、高解像度ビデオコンテンツへのアクセスを制限することを望むかもしれないと仮定する。換言すれば、UPnPデバイスの製造業者は、同じ製造業者によって製造されたUPnPデバイスなどの一部のUPnPデバイスに、アクセスを許可することを望むかもしれない。
【0005】
認証問題及び認可問題への既存の解決法は、不完全であるか、十分に安全ではないか、またはデジタル著作権管理(DRM)システムに縛られている。例えば、認証問題に対する一般的な解決法は、1つまたは複数のUPnPメッセージにおいて人間が読める周知のストリングを探すことである。ストリングは、ユーザ‐エージェント間のプロトコルのヘッダ内にあってもよいし、または、ストリングは、デバイスディスクリプション文書、即ち、全てのUPnPデバイスからダウンロードすることができるXMLフォーマットのドキュメントに埋め込まれてもよい。第2のUPnPデバイスを認証したい第1のUPnPデバイスは、これらのストリングのうちの1つのプレゼンスについて調べる。見出される場合、第1のUPnPデバイスは、第2のUPnPデバイスは認証されているとみなす。しかしながら、複製するのに瑣末な、はっきりと人間が読める形式でストリングが送信されるので、この解決法は安全ではない。
【0006】
別の既存の解決法では、要求を受信するUPnPデバイスは、認可されたデバイスのアドレスのテーブルにおいてUPnP要求のイーサネット(登録商標)MAC(媒体アクセス制御)アドレスを調べる。要求側のデバイスのMACアドレスが見出される場合、デバイスは認可されているとみなされる。そうでなければ、受信するデバイスのユーザは、要求側のデバイスにアクセスを許可してそのアドレスをテーブルに加えるというオプションを与えられる。しかしながら、イーサネット(登録商標)MACアドレスは「なりすまし」または偽造が相対的に容易であるので、この解決法は安全ではない。
【0007】
更に、この解決法は、UPnPデバイスが特定のライセンスされたまたは承認されたデバイスだけにアクセスを制限したいというシナリオにおいては実行不可能である。なぜならば、イーサネット(登録商標)MACアドレスは、通常、UPnPソフトウェアとは別個に製造されるハードウェアチップに記憶されるからである。承認されたデバイスのMACアドレスはソフトウェアが開発される時に分かっていないので、ソフトウェア製造業者が、認可されたイーサネット(登録商標)MACアドレスのテーブルを生成することは通常、実行不可能である。更に、このシナリオでは、認可されたMACアドレスのテーブルにMACアドレスを加えるようにユーザに促すことは望ましくない。なぜならば、ユーザはライセンスされていないかまたは承認されていないデバイスへのアクセスを認めるかもしれないからである。
【0008】
第3の解決法は、従来のDRMシステムによって提供される。DRMシステムは、2つのデバイスが互いに認証して、暗号化された形式でオーディオコンテンツ/ビデオコンテンツを転送することを可能にするするが、この特殊化された解決法は、全てのシナリオにおいて適用可能ではない。例えば、DRMシステムに要求されているように、転送されているコンテンツを暗号化することが、いつも望ましいとは限らないかもしれない。また、いくつかのDRMシステムは、オーディオコンテンツ/ビデオコンテンツを転送する間、安全な(暗号化に基づく)メッセージ交換を有するが、(UPnP ContentDirectoryサービスによる)コンテンツの発見は、この安全なメッセージ交換でカバーされていない。よって、第1のデバイスは、第1のデバイスが発見されたコンテンツをストリームする権限を与えられているかどうかを知ることなしに、第2のデバイスのContentDirectoryサービス内でコンテンツを発見するかもしれない。
【発明の概要】
【課題を解決するための手段】
【0009】
本発明の実施形態は、互いのかつ他のUPnPエンドポイントを認証しかつ認可するためのUPnPデバイスに対する安全なサービスを提供することによって、公知のUPnPプロトコルの1つまたは複数の不備を克服する。本発明の態様によれば、UPnPイニシエータデバイスは、UPnPレスポンダデバイスに信頼された機関からの識別情報を含む要求を送信する。レスポンダは、信頼された機関を介してイニシエータデバイスの識別性を認証して、識別情報の関数としてデバイスを認可する。
【0010】
別の態様では、本発明は、認証及び認可プロセスの間にセッション識別子を構築する。セッション識別子は、イニシエータへの応答に含まれ、イニシエータからの後続のUPnP要求またはHTTP要求と前のうまく完了した認可及び認証を適合させる。
【0011】
ネットワーク化されたポータブルメディアデバイスのための安全な認証及び認可サービスに対するコンピュータ実行可能命令を有するコンピュータ可読媒体は、本発明の更なる態様を具体化する。あるいは、本発明の実施形態は、様々な他の方法及び装置を備えることができる。
【0012】
この概要は、以下の詳細な説明において更に後述する単純化された形式の概念の選択を導くために提供されている。この概要は特許請求の範囲に記載された主題の重要な特徴または本質的な特徴を識別することを意図していないし、特許請求の範囲に記載された主題の範囲を決定する際の助けとして用いられることも意図していない。
【0013】
他の特徴は、以下で一部が明らかになり、一部が指摘される。
【0014】
対応する参照文字は、図面にわたって対応する部分を示す。
【図面の簡単な説明】
【0015】
【図1】本発明の1つの実施形態による認証及び認可サービスについてのコンピュータシステム環境を示すブロック図である。
【図2】本発明の1つの実施形態によるイニシエータメッセージの生成を示す例示的なフロー図である。
【図3】本発明の1つの実施形態による応答メッセージの生成を示す例示的なフロー図である。
【図4】本発明の1つの実施形態による確認メッセージの生成を示す例示的なフロー図である。
【図5】本発明の1つの実施形態による開始メッセージのブロック図である。
【図6】本発明の実施形態による応答メッセージのブロック図である。
【図7】メディアサーバによってメディアレンダラを承認しかつ認可するコンピュータ実行可能構成要素を有するコンピュータ可読媒体を示す図である。
【図8】メディアサーバによってメディアレンダラを承認しかつ認可するコンピュータ実行可能構成要素を有するコンピュータ可読媒体を示す図である。
【発明を実施するための形態】
【0016】
図面を参照すると、図1は、本発明の態様による認証及び認可サービスのためのシステムを示している。有利に、本発明の実施形態は、あるUPnP(Universal Plug and Play)デバイスに、例えば、UPnPプロトコル自体を変更することなしに拡張可能な方法でUPnPプロトコルに新規の安全なサービスを追加することによって、別のUPnPデバイスを認証しかつ認可することができるようにする。
【0017】
1つの実施形態では、UPnPデバイスは、UPnPエンドポイントからの要求に応じて1つまたは複数のUPnPサービスを実行する。UPnPエンドポイントも、UPnPデバイスであってもよいということが理解されるべきである。例えば、第1のデバイスがUPnPサービスを実行する場合、それは明らかにUPnPデバイスである。その同じデバイスが第2のUPnPデバイスで実行されるUPnPサービスを要求する場合、第1のデバイスもまた、UPnPエンドポイントの機能を果たす。示された実施形態では、イニシエータ102などのUPnPエンドポイント及びレスポンダ104などのUPnPデバイスは、同じUPnPネットワークのメンバである。UPnPアーキテクチャは、デバイスが、動的にネットワークに参加し、IPアドレスを取得し、その機能を伝え、他のデバイスのプレゼンス及び機能について知ることができるようにする。UPnPデバイス、エンドポイントなどは、例えば家庭用電化製品、コンピュータデバイス、ホームオートメーションデバイス、ホームセキュリティデバイス、電気器具、ポータブルメディアデバイス、プリンティングデバイス、デジタルカメラ、スキャナ、コンピュータネットワークデバイス、モバイルデバイスなどの、UPnPネットワークプロトコルを実行するいかなるデバイスをも含む。
【0018】
本発明の1つの態様は、新規なUPnPハンドシェイクサービスを実行する。ハンドシェイクサービスは、UPnPエンドポイント(例えば、イニシエータ102)及びUPnPデバイス(例えば、レスポンダ104)に、一方もしくはもう一方または互いに認証することができるようにする(即ち、安全な方法で互いの識別性を確立する)。一旦認証されると、各デバイスは、もう一方のデバイスがデバイスと通信する権限を与えられているかどうかを判断することができる。
【0019】
1つの実施形態では、レスポンダ104は、例えばネットワーク上のイニシエータ102などのUPnPメディアレンダラデバイスに、メディアコンテンツを提供する汎用メディアサーバデバイスである。例えば、メディアサーバは、ポータブルメディアデバイス、VCR、CDプレーヤ、DVDプレーヤ、オーディオテーププレーヤ、静止画像カメラ、カムコーダ、ラジオ、TVチューナ、及びセットトップボックスなどのデバイス、MP3サーバ、PVR(パーソナルビデオレコーダ)、並びに、パーソナルコンピュータなどのホームメディアサービスを含む。実施中、イニシエータ102及びレスポンダ104は、本発明の態様を実行する図に示したコンピュータ実行可能命令などのコンピュータ実行可能命令を実行する。
【0020】
イニシエータ102及びレスポンダ104は、通常、少なくともいくつかの形式のコンピュータ可読媒体を有している。揮発性媒体及び不揮発性媒体、着脱自在媒体及び固定式媒体の両方を含むコンピュータ可読媒体は、イニシエータ102及びレスポンダ104によってアクセスすることができるいかなる利用可能媒体であってもよい。例であって限定ではないが、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を備える。コンピュータ記憶媒体は、例えばコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のためのいかなる方法または技術において実行される揮発性媒体及び不揮発性媒体、着脱自在媒体及び固定式媒体を含む。例えば、コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CD−ROM、DVD(Digital Versatile Disk)、もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくはその他の磁気記憶デバイス、または所望の情報を記憶するために用いることができてかつイニシエータ102及びレスポンダ104によってアクセスすることができるいかなる他の媒体をも含む。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または、搬送波または他の搬送メカニズムなどの変調されたデータ信号内の他のデータを具体化し、かついかなる情報配信媒体をも含む。当業者は、変調されたデータ信号に精通しており、変調されたデータ信号は、1つまたは複数のその特徴を、信号内の情報を符号化するような方法で設定または変更した。例えば有線ネットワークまたは直接配線接続などの有線媒体、並びに、音響、RF、赤外線、及びその他の無線媒体などの無線媒体は、通信媒体の例である。上記のうちのいずれの組合せも、コンピュータ可読媒体の範囲内に含まれる。
【0021】
メディアサーバは、UPnPコンテンツディレクトリサービスを介してそのコンテンツを公開する。メディアサーバは、いかなる特定のタイプの媒体、いかなるデータフォーマット、及び転送プロトコルをも処理することができる。媒体コンテンツの例は、MPEG2ビデオ、CDオーディオ、MP3オーディオ、WMAオーディオ、及びJPEG画像を含む。
【0022】
UPnPサービスは、URN(Uniform Resource Name)で識別される。デバイスが他のデバイスによってホストされるサービスを検索するときに、または、デバイス自身がホストするサービスの可用性(availability)をデバイスが知らせるときに、URNが用いられる。ハンドシェイクサービス用のURNは、任意に選択することができる。本発明の1つの実施形態では、「urn:schemas−microsoft−com:service:Handshake:l」が、ハンドシェイクサービス用のURNである。
【0023】
安全なUPnPデバイスだけが、認証されかつ認可された他のUPnPデバイス及びエンドポイントからの通信を受け入れる。よって、安全なUPnPデバイスが第2のデバイスに安全なデバイスによって実行される任意の他のUPnPサービスにアクセスすることができるようにする前に、ハンドシェイクサービスが第2のデバイスをうまく認証しかつ認可することを安全なUPnPデバイスは必要とする。
【0024】
1つの実施形態では、別のUPnPデバイスによってホストされるサービスを要求するUPnPエンドポイントは、イニシエータ102と称される。例えば、メディアレンダラデバイスがメディアサーバデバイスによって提供される利用可能なコンテンツのリストを要求する場合、メディアレンダラは、メディアサーバデバイスによってホストされるUPnP ContentDirectoryサービスに、要求を送信する。この例では、メディアレンダラがContentDirectoryサービスと通信するときにメディアレンダラがイニシエータ102であり、メディアサーバデバイスがレスポンダ104と称される。
【0025】
しかしながら、同じメディアレンダラデバイスがまた、それ自体のUPnPサービスをホストすることもできる。この場合、メディアレンダラは、UPnPデバイスとしてもUPnPエンドポイントとしても動作している。メディアサーバがそれらのサービスのうちのいずれかを利用することを決定する場合、役割は逆転し、メディアサーバはイニシエータ102でありかつメディアレンダラはレスポンダ104である。1つの実施形態では、メディアレンダラによって開始されたメディアサーバへのハンドシェイク及びメディアサーバによって開始されたメディアレンダラへのハンドシェイクは、2つの完全に独立した動作として処理される。
【0026】
UPnPプロトコルは、UPnPプロトコルが通信したいデバイスを見つけるための2つの標準的な方法をイニシエータ102に提供する。第1に、イニシエータ102は、M−SEARCH要求を放送し、M−SEARCH要求は、M−SEARCH要求内のURNによって識別されるUPnPサービスをサポートするネットワーク上の全てのUPnPデバイスから応答を求める。第2に、イニシエータ102はNOTIFYメッセージを聞く(listen)。全てのUPnPデバイスは、それらがホストするサービスの可用性(availability)を知らせるNOTIFYメッセージを周期的に送信する。
【0027】
1つの実施形態では、ContentDirectoryサービスを実行するUPnPデバイスを検索するメディアレンダラデバイスは、M−SEARCH及び/またはNOTIFYメッセージを用いてContentDirectoryサービスを見つけることになる。メディアレンダラはまた、M−SEARCH及び/またはNOTIFYメッセージを用いて、サービスのURNで識別されるハンドシェイクサービスを見つける。本実施形態では、同じUPnPデバイスがハンドシェイクサービスもContentDirectoryサービスもホストする場合、メディアレンダラはContentDirectoryサービスと通信するだけである。そして、ハンドシェイクサービスが成功した場合、メディアレンダラはContentDirectoryサービスを用いるだけである。ContentDirectoryサービスは実例的な目的として用いられ、ハンドシェイクサービスは、ConnectionManagerサービスまたはAVTransportサービスなどの他のいかなるUPnPサービスの前に実行することができる。
【0028】
代替的実施形態では、ハンドシェイクサービスは、共有秘密及び対称暗号鍵を構築する。共有秘密は、セキュリティトークン702を生成するために用いられて、セキュリティトークン702は、後続のUPnP要求またはHTTP要求において用いられて、要求がすでに認証されかつ認可されたデバイスからのものであることを証明することができる。セキュリティトークン702は、各要求に応じて変更されて、悪い(rogue)デバイスが認可されたデバイスになりすまそうとするのをより難しくすることができる。あるいは、デバイスのイーサネット(登録商標)MACアドレスまたはIPアドレスを、すでに認証されたデバイスからの要求を識別するために用いることができる。しかしながら、上記に説明したように、この実行はより安全ではない。
【0029】
図3-5に示した方法によって構築される対称暗号鍵を、デバイスが認可されたあとに転送されているコンテンツを暗号化するために用いることができる。このことは、追加のセキュリティの層を設けて、認可されていないデバイスが2つの相互に認可されたデバイス間の通信で盗聴できないようにする。例えば、上で述べられた高解像度ビデオストリームを、対称暗号鍵を用いて暗号化することができる。
【0030】
1つの実施形態では、ハンドシェイクサービスに加えて、最初のハンドシェイクが実行された後に、新規のHTTPヘッダ及びUPnPヘッダが後続のHTTP要求及びUPnP要求において用いられる。あるいは、XMLに基づく構文が、UPnPヘッダの代わりに用いられる。
【0031】
UPnPサービスは、動作及びイベントを有する。ハンドシェイクサービスは、2つの動作を含み、イベントを含まない。動作は、入力パラメータ及び出力パラメータを有するリモートプロシージャコールと同様である。1つの実施形態では、ハンドシェイクサービスを始めるために、イニシエータ102は、DoHandshake動作106を呼び出す。動作の名前は全く重要ではなくて、XML形式のUPnPサービスディスクリプションが名前を正しく記述する限り、異なっていてもよい。
【0032】
1つの実施形態では、DoHandshake動作は、1つの入力パラメータ及び2つの出力パラメータを有する。本発明の本実施形態では、入力パラメータはイニシエータメッセージ500であり、第1の出力パラメータはレスポンダメッセージ600であり、第2の出力パラメータは要求識別子である。代替的実施形態では、イニシエータメッセージ500、レスポンダメッセージ600は一つのフォーマットである。さらに、UPnPはテキストベースのプロトコルであるので、イニシエータメッセージ及びレスポンダメッセージは、UPnPを越えて転送されると、ベース64(Base64)符号化される。
【0033】
イニシエータメッセージ500の目的は、レスポンダ104がイニシエータ102を認証することができるようにすることである。DoHandshake動作106は、イニシエータ102からレスポンダ104へイニシエータメッセージ500を送信する。図5に示した実施形態では、イニシエータメッセージ500は証明書502を含み、公開鍵暗号法が認証のために用いられる。証明書は、デジタル署名を用いて、例えばデバイスモデル番号及びシリアル番号などのイニシエータ102の識別情報506に公開鍵504を結びつける。証明書を、公開鍵504がイニシエータ102に属していることを検証するために用いることができる。典型的な公開鍵インフラストラクチャスキームでは、署名は信頼された機関からのものだろう。レスポンダ104は、署名を検証して、証明書が本物であることを確認することができる。有利に、レスポンダ104は、異なるイニシエータ102間で区別することができて、証明書502に含まれた情報を用いることにより各イニシエータ102を個々に認可することができるだろう。例えば、レスポンダ104は、高解像度ビデオコンテンツをストリーミングすることができるだけであると仮定する。レスポンダ104は、証明書502からデバイスモデル番号を調べて、イニシエータ102が高解像度ビデオコンテンツをレンダリングすることができるかどうかを判断する。イニシエータ102が高解像度ビデオコンテンツをレンダリングすることができる場合、レスポンダ104はイニシエータ102を認可する。
【0034】
代替的実施形態では、証明書はイニシエータの公開鍵504を含む。公開鍵504で暗号化されたメッセージは、適合している秘密鍵を用いて解読することができるだけである。適合している秘密鍵はイニシエータ102だけに知られている。本実施形態では、イニシエータメッセージ500は、証明書502だけでなく、DoHandshake動作が呼び出されるたびに異なっている乱数508も含む。乱数508は、レスポンダ104によって用いられて、共有秘密を生成する。あるいは、乱数508は、数字及び文字の任意の生成された組合せである。
【0035】
1つの実施形態では、レスポンダメッセージ600は、レスポンダ104がイニシエータメッセージ500において証明書502を認証することができたという指示である。図6に示した代替的実施形態では、レスポンダメッセージ600は、レスポンダ104の証明書602を含んで、イニシエータ102がレスポンダ104を認証することができるようにする。証明書602はまた、レスポンダ104の識別情報606もレスポンダの公開鍵604も含む。DoHandshake動作の応答108は、イニシエータ102からレスポンダ104へレスポンダメッセージ600及び要求識別子を送信する。
【0036】
上で説明されたように、証明書602は、信頼された機関によって直接または間接的にデジタル署名される。さらに、この署名を検証することによって、イニシエータ102はレスポンダ104を認証することができる。さらに、レスポンダの証明書602は、イニシエータの公開鍵を用いる方法で暗号化される。1つの代替的実施形態では、レスポンダメッセージ600の暗号化された部分は、DoHandshake動作が呼び出されるたびに異なる乱数608を含む。あるいは、乱数608は、数字及び文字の任意の生成された組合せである。
【0037】
1つの実施形態では、第2の出力パラメータ、即ち、要求識別子は、後続のUPnP要求またはHTTP要求と前のうまく完了したDoHandshake動作を適合させるために用いられる。うまく完了したDoHandshake動作を有するイニシエータデバイスのイーサネット(登録商標)MACアドレスをレスポンダ104が記録する実施形態では、更なる要求はイーサネット(登録商標)MACアドレスだけに基づいて受け入れられるかまたは拒絶されるので、要求識別子は用いられない。要求識別子を利用する実施形態では、要求識別子は、レスポンダ104によって生成される。1つの実施形態では、要求識別子は乱数である。あるいは、要求識別子は、数字及び文字の任意の生成された組合せである。しかしながら、本実施形態では、レスポンダ104は、イニシエータ102がレスポンダメッセージ600内の暗号化された証明書を実際に解読することができたかどうかを知らない。これを確認することができない状態で、異なるデバイスに対して実際に発行された証明書をイニシエータ102が用いたということもあり得る。
【0038】
Confirm動作と称される、UPnPハンドシェイクサービスの第2の動作は、レスポンダ104が、イニシエータ102がレスポンダメッセージ600の証明書を解読することができたということを確認できるようにする。Confirm動作110は、イニシエータ102からレスポンダ104へ確認メッセージ700を送信する。
【0039】
Confirm動作110は、2つの入力パラメータを有し、かつ(成功/失敗指示112以外の)出力パラメータを有していない。第1の入力パラメータは、DoHandshake動作の応答108においてレスポンダ104がイニシエータ102に与えた要求識別子である。1つの実施形態では、要求識別子は、限られた期間有効なだけである。期限切れになった要求識別子を用いてConfirm動作を呼び出そうとすることは、この動作に失敗の指示を返させる。
【0040】
図7において、確認メッセージ700は、第2の入力パラメータを具体化する。本実施形態では、確認メッセージ700は、セキュリティトークン702を含む。1つの実施形態では、セキュリティトークン702は、共有秘密702のダイジェストである。1つの代替的実施形態では、セキュリティトークン702は、レスポンダ104及びイニシエータ102に知られており、かつ例えば共有秘密から得られる暗号鍵を用いて暗号化された数字である。1つの実施形態では、確認メッセージ700は、バイナリ形式で記憶される。共有秘密は、イニシエータメッセージ500内の乱数508及びレスポンダメッセージ600内の乱数608を用いて得られる。レスポンダメッセージ600内の乱数608が暗号化されたので、イニシエータ102が確認メッセージ700内に正しいセキュリティトークン702を含む場合、イニシエータ102はレスポンダメッセージ600の暗号化された部分を解読することができたということが分かる。成功または失敗の指示112は、レスポンダ104からイニシエータ102に送信される。
【0041】
セキュリティトークン702は、確認メッセージ700の平文で送信されない。1つの実施形態では、セキュリティトークン702は、レスポンダ及びイニシエータの両方に知られていてかつ例えば、共有秘密から得られる暗号鍵を用いて暗号化された数字である。あるいは、セキュリティトークン702は、共有秘密のダイジェスト(ハッシュ)である。CPU資源を最小にするのを望む1つの実施形態では、ハッシュが実行される。なぜならば、ハッシュは通常、暗号化アルゴリズムより計算するのに少ないCPU資源を必要とするからである。
【0042】
代替的実施形態では、2つの乱数508、608もまた用いられて、対称暗号鍵を得ることができる。鍵は、AES(Advanced Encryption Standard)などの、いくつかの適当な暗号化アルゴリズムと共に用いられて、シェークハンド動作が完了した後に送信されるUPnPトラフィック及び/またはHTTPトラフィックを暗号化する。例えば、この暗号鍵を用いてメディアサーバからダウンロードされるかまたはストリームされるコンテンツを暗号化することが望ましい可能性がある。
【0043】
1つの実施形態では、レスポンダ104は、イニシエータ102デバイスのイーサネット(登録商標)MACアドレスを記録することができて、ハンドシェイクを通過したデバイスのテーブルにそれを加えかつ/または(デバイスがまたうまく認可されたと仮定すると)認可されたデバイスのテーブルにそれを加えることができる。後続のUPnP要求及びHTTP要求は、MACアドレスが認可されたデバイステーブル内にあるかどうかに基づいて受け入れられるかまたは拒絶されることになる。
【0044】
本発明の別の実施形態では、要求識別子パラメータがセッション識別子の役割を担う。本実施形態では、セッション識別子は後続のUPnP要求及びHTTP要求において用いられて、要求はハンドシェイク作業を完了したデバイスからのものであるということをレスポンダ104に分かるようにする。
【0045】
1つの実施形態では、セッション識別子パラメータは、前に述べた要求識別子と同一である。あるいは、セッション識別子パラメータは、セッショントークンを含む。セッショントークンは、第1の乱数及び第2の乱数の関数として生成されて、第1の生成されたセッショントークンは第2の生成されたセッショントークンと等しくない。別の代替では、Confirm動作は、1つの出力パラメータを用いて拡張される。新しい出力パラメータはセッション識別子であり、それはConfirm動作が成功する場合に提供されるだけである。
【0046】
本発明の代替的実施形態では、セッション識別子及びセキュリティトークン702は、UPnP要求及びHTTP要求に含まれる。さらに別の実施形態では、セキュリティトークン702は、各要求において異なっている。ある代替では、セキュリティトークン702は数字から得られ、イニシエータ102及びレスポンダ104の両方は各UPnP要求またはHTTP要求に応じて数字をインクリメントする。あるいは、セキュリティトークン702は同じままであり、追加の数字(例えば、現在の時刻)がダイジェストにおいて算出される。追加の数字は、各UPnP要求またはHTTP要求に応じてインクリメントされるかまたは異なっている。
【0047】
UPnPでは、プロトコルヘッダはHTTPヘッダと同じ構文を用いるので、両方のプロトコルに有効である単一のプロトコルヘッダを定義することが可能である。1つの実施形態では、セッション識別子及び秘密のダイジェストは、ABNF(augmented Backus-Naur form)構文を利用しているUPnPヘッダ/HTTPヘッダに含まれる。
【0048】
“X‐Handshake‐Id:”<session‐id>“:”<base64‐encoded‐digest‐of‐secret>
【0049】
<session‐id>フィールドは、前に言及されたセッション識別子パラメータであり、<base64‐encoded‐digest‐of‐secret>フィールドは、ベース64符号化が用いられてそれをASCII表現に変換した後に、共有秘密を通じて算出されるダイジェスト(ハッシュ)である。
【0050】
例:
X−Handshake‐Id:12345:ab0fl2cd45eefl
【0051】
(ベース64符号化ダイジェストは、説明の目的のためにここに示されていて、実際にはより大きいだろう。)本発明の別の変化形では、上で定義された“X−Handshake‐Id”ヘッダのようなヘッダは、HTTP要求のために用いられるだけである。
【0052】
あるいは、UPnP要求について、情報はUPnP要求メッセージ内に埋め込まれる。以下は、XML構文の例である。
【0053】
<msh:handshake xmlns:msh=“schemas‐microsoft‐com:Handshake‐l‐0”msh:id=“12345”>
Ab0fl2cd45eefl
</msh:handshake>
【0054】
ここで図2を参照すると、図は、本発明の実施形態によるイニシエータメッセージの生成を示す。202で、第1のポータブルメディアデバイスは、ホストされたUPnPサービスの可用性を知らせるネットワークを介してメッセージを放送する。代替的実施形態では、ネットワークはピアツーピアネットワークである。別の実施形態では、第1のポータブルメディアデバイスはUPnPコントロールポイントを備え、第2のポータブルメディアデバイスはUPnPメディアレンダラを備える。あるいは、第1のポータブルメディアデバイスはUPnPメディアレンダラを備え、第2のポータブルメディアデバイスはUPnPコントロールポイントを備える。サービスは、ハンドシェイクサービス及び例えばコンテンツディレクトリサービスなどの少なくとも1つの追加のUPnPサービスを含む。1つの実施形態では、第1のポータブルメディアデバイスは、そのホストされたサービスの可用性を知らせるUPnP NOTIFYメッセージを周期的に放送する。代替的実施形態では、第2のポータブルメディアデバイスは、ハンドシェイクサービスについてのUPnP M−SEARCH要求を放送する。それは、M−SEARCH要求内のURNによって識別されるハンドシェイクサービスをサポートしているネットワーク上の全てのUPnPデバイスからの応答を求めている。
【0055】
204において、第2のポータブルメディアデバイスは、第1の乱数を生成する。代替のものでは、乱数は文字及び数字のいかなる組合せであってもよい。1つの実施形態では、第1のポータブルメディアデバイスはレスポンダなどのUPnPデバイスであり、第2のポータブルメディアデバイスは図1に示したイニシエータなどのUPnPエンドポイントである。代替的実施形態では、第2のポータブルメディアデバイスもUPnPデバイスである。別の実施形態では、乱数は、第1のポータブルメディアデバイスへの要求に含まれて、デバイス間の更なる通信の対称暗号化に用いることができる共有秘密を生成するために用いられるだろう。あるいは、乱数は、デバイス間の更なる通信に含まれるセッション識別子を構築するために用いられる。
【0056】
206において、第2のポータブルメディアデバイスは、識別情報及びデジタル署名を第1のポータブルメディアデバイスへの要求にフォーマットする。1つの実施形態では、第2のポータブルメディアデバイスは、公開鍵‐非公開鍵対のうちの非公開鍵を用いて信頼された機関からの証明書及び第1の乱数に署名する。証明書は第2のポータブルメディアデバイスの識別情報を含み、下記のうちの少なくとも1つを含む。即ち、デバイスのデバイスモデル番号、デバイスのシリアル番号、及びデバイスでサポートされるメディアフォーマットのリストである。代替的実施形態では、要求に含まれるデータは、図5に示されるバイナリのイニシエータメッセージにフォーマットされる。
【0057】
208において、第2のポータブルメディアデバイスは、ハンドシェイクサービスをホストしている第1のポータブルメディアデバイスにネットワークを介して要求を送信する。ローカルエリアネットワーク環境において用いられると、第1のポータブルメディアデバイス及び第2のポータブルメディアデバイスは、ネットワークインタフェースまたはアダプタを通じてLANに接続される。広域ネットワーク環境において用いられると、第1のポータブルメディアデバイス及び第2のポータブルメディアデバイスは、インターネットなどのWANを越えて通信を確立するネットワークカードまたは他の手段を通常含む。ネットワーク環境内の接続は、有線ネットワークまたは直接配線接続、並びに、Wi‐Fi、音響、RF、赤外線、及び他の無線媒体などの無線媒体であってもよい。示されたネットワーク接続は、例示的であり、第1のポータブルメディアデバイスと第2のポータブルメディアデバイスとの間の通信リンクを確立する他の手段が用いられてもよい。
【0058】
ここで、図3を参照すると、第1のポータブルメディアデバイスは、第2のポータブルメディアデバイスから要求を受信する。次に、第1のポータブルメディアデバイスは、302‐309において第2のポータブルメディアデバイスのデジタル署名の関数として、第2のポータブルメディアデバイスを認証する。認証は、第2のポータブルメディアデバイスの識別性を証明する。
【0059】
302において、第1のポータブルメディアデバイスは、デジタル署名が第2のポータブルメディアデバイスからであるということを検証する。1つの実施形態では、イニシエータメッセージに含まれる署名された証明書は、信頼された機関によって検証される。デジタル署名が検証されない場合、第1のポータブルメディアデバイスは304においてセッションをやめて、306において第2のポータブルメディアデバイスとの接続を終了する。308において、第1のポータブルメディアデバイスは、イニシエータメッセージに含まれる証明書が信頼された機関からであるかどうかを調べる。証明書が信頼された機関からでない場合、第1のポータブルメディアデバイスは304においてセッションをやめて、306において第2のポータブルメディアデバイスとの接続を終了する。
【0060】
一旦デバイスが認証されると、309において、第1のポータブルメディアデバイスは、証明書の識別情報の関数として、第2のポータブルメディアデバイスを認可する。代替的実施形態では、第1のポータブルメディアは、第2のポータブルメディアデバイスにクエリして、第2のポータブルメディアデバイスでサポートされるメディアフォーマットのリストを得る。本実施形態では、第2のデバイスが少なくとも1つの互換性のあるフォーマットをサポートする場合、第1のポータブルメディアデバイスは第2のポータブルメディアデバイスを認可する。第2のポータブルメディアデバイスが認可されない場合、第1のポータブルメディアデバイスは304でセッションをやめて、306で第2のポータブルメディアデバイスとの接続を終了する。
【0061】
有利に、第1のポータブルメディアは、ライセンスされたまたは承認されたデバイスに対して認可を通してそのサービスへのアクセスを制限することができる。例えば、第1のポータブルメディアデバイスは高解像度ビデオをストリームするだけのサービスをホストすると仮定する。第1のポータブルメディアデバイスは、それが高解像度ビデオコンテンツをレンダリングすることができる場合に、第2のポータブルメディアデバイスを認可するだけだろう。第1のポータブルメディアデバイスは、第2のポータブルメディアデバイスが高解像度ビデオコンテンツをレンダリングすることができるかどうかを第2のポータブルメディアデバイスの識別情報(例えばモデル番号、シリアル番号、及びサポートされるメディアフォーマット)によって判定する。
【0062】
1つの実施形態では、第1のポータブルメディアデバイスは、テーブル内に認証されかつ認可された第2のポータブルメディアデバイスのMACイーサネット(登録商標)アドレスを記録する。本実施形態では、第1のポータブルメディアデバイスは、そのイーサネット(登録商標)MACアドレスが記録されたデバイスからホストされたサービスに対する要求を受け入れるだけであり、方法は終了する。
【0063】
あるいは、図3を再び参照すると、310において、第1のポータブルメディアデバイスは、第1の乱数を生成する。代替のものでは、乱数は文字及び数字の任意の組合せであることができる。312において、第1のポータブルメディアデバイスは、セキュリティトークン702を生成する。1つの実施形態では、セキュリティトークン702は、第1の乱数及び第2の乱数から生成される共有秘密のハッシュであり、第1の乱数及び第2の乱数を、デバイス間の更なる通信の対称暗号化(例えば、AES)のために用いることができまたはデバイス間の更なる通信に含まれるセッション識別子を構築するために用いることができる。
【0064】
314において、第1のポータブルメディアデバイスは、証明書、デジタル署名、及び第2の乱数を第2のポータブルメディアデバイスへの応答にフォーマットする。1つの実施形態では、第1のポータブルメディアデバイスは、信頼された機関からの証明書に署名し、第2のポータブルメディアデバイスは、証明書及び署名を用いて第1のポータブルメディアデバイスを認証することができる。代替的実施形態では、要求に含まれるデータは、図6に示したレスポンダメッセージにフォーマットされる。
【0065】
316において、第1のポータブルメディアデバイスは、対称暗号鍵(例えば、AES鍵)を選択して、318において、署名された証明書、第2の乱数、及びセキュリティトークン702を選択された鍵を用いて暗号化する。320において、第1のポータブルメディアデバイスは、第2のポータブルメディアデバイスの公開鍵を用いて選択されたAES鍵を暗号化する。AES鍵は第2のポータブルメディアデバイスの公開鍵を用いて暗号化されるので、有利に、人間が読める認証ストリングは応答に含まれない。よって、第2のポータブルメディアデバイスの秘密鍵を有するデバイスだけが、第1のポータブルメディアデバイスの証明書及びハッシュを解読することができる。
【0066】
320において、第1のポータブルメディアデバイスは、第2のポータブルメディアデバイスにネットワークを介して応答メッセージを送信する。代替的実施形態では、要求識別子は応答に含まれる。要求識別子は、第1のポータブルメディアデバイスによって用いられて、第2のポータブルメディアデバイスからの後続のUPnP要求またはHTTP要求と前のうまく完了した承認及び認可を適合させる。別の実施形態では、要求識別子は、第2のポータブルメディアデバイスが応答メッセージ内の証明書を解読することができたということを確認するために用いられる。本実施形態では、セッション識別子は、応答に含まれて、第2のポータブルメディアデバイスからの後続のUPnP要求またはHTTP要求と前のうまく完了した承認及び認可を適合させる。
【0067】
ここで図4を参照すると、第2のポータブルメディアデバイスは、第1のポータブルメディアデバイスから応答を受信する。次に、第2のポータブルメディアデバイスは、402-412で第1のポータブルメディアデバイスのデジタル署名の関数として、第1のポータブルメディアデバイスを認証する。認証は、第1のポータブルメディアデバイスの識別性を確立する。1つの実施形態では、応答メッセージに含まれる署名された証明書は、信頼された機関によって検証される。
【0068】
402において、第2のポータブルメディアデバイスは、その非公開鍵を用いて応答メッセージ内のAES鍵を解読する。404において、第2のポータブルメディアデバイスは、解読されたAES鍵を用いて第1のポータブルメディアデバイスの証明書を解読する。406において、第2のポータブルメディアデバイスは、デジタル署名が第1のポータブルメディアデバイスからであるということを検証する。デジタル署名が検証されない場合、第2のポータブルメディアデバイスは408においてセッションをやめて、410において第1のポータブルメディアデバイスとの接続を終了する。412において、第2のポータブルメディアデバイスは、応答メッセージに含まれる証明書が信頼された機関からであるかどうかを調べる。証明書が信頼された機関からでない場合、第2のポータブルメディアデバイスは、408でセッションをやめて、410において第1のポータブルメディアデバイスとの接続を終了する。
【0069】
414において、一旦第1のポータブルメディアデバイスが認証されると、第2のポータブルメディアデバイスは、受信した要求識別子及び解読されたハッシュを含む確認を生成する。代替的実施形態では、確認に含まれるデータは、図7に示した確認メッセージにフォーマットされる。1つの実施形態では、少なくとも確認の一部は、第1のポータブルメディアデバイスの公開鍵によって暗号化される。代替的実施形態では、要求識別子は、限られた期間(例えば、10秒)有効なだけである。要求識別子が期限切れになる前に、第2のポータブルメディアデバイスが第1のポータブルメディアデバイスに確認を送信しない場合、認証及び認可は失敗し、第2のポータブルメディアデバイスは、ステップ302において再びプロセスを開始しなければならない。416において、第2のポータブルメディアデバイスは、第1のポータブルメディアデバイスに確認を送信する。
【0070】
418において、第1のポータブルメディアデバイスは、第1のポータブルメディアデバイスの秘密鍵を用いて第2のポータブルメディアデバイスから受信される確認メッセージを解読する。420において、第1のポータブルメディアデバイスは、第1の乱数及び第2の乱数からセキュリティトークン702を算出する。422において、第1のポータブルメディアデバイスは、算出されたセキュリティトークンを確認メッセージの解読されたセキュリティトークン702と比較する。2つのセキュリティトークンが等しくない場合、確認は失敗し、408において第1のポータブルメディアデバイスはセッションをやめて、410において第2のポータブルメディアデバイスとの接続を終了する。
【0071】
424において、第1のポータブルメディアデバイスは、セッション識別子を生成する。セッション識別子は、第1のポータブルメディアデバイスによって用いられて、第2のポータブルメディアデバイスからの後続のUPnP要求またはHTTP要求と前のうまく完了した承認及び認可を適合させる。1つの実施形態では、セッション識別子は、要求識別子と等しい。代替的実施形態では、セッション識別子は要求識別子と異なる乱数値である。426において、第1のポータブルメディアデバイスはセッション識別子を第2のポータブルメディアデバイスに返して、第2のポータブルメディアデバイスの認証及び認可が完了したということを示す。
【0072】
図8は、メディアサーバによってメディアレンダラを承認しかつ認可するコンピュータ実行可能構成要素を有するコンピュータ可読媒体を示す。1つの実施形態では、メディアレンダラ及びメディアサーバは、UPnPデバイスである。あるいは、メディアレンダラ及びメディアサーバは、ポータブルメディアデバイスである。第3の代替のものでは、メディアレンダラは、UPnPエンドポイントであり、メディアサーバはUPnPデバイスである。メディアサーバは、オープンネットワークにおいて1つまたは複数のUPnPサービスを実行する。1つの代替的実施形態では、ネットワークはピアツーピアネットワークである。構成要素は、インターフェース構成要素802、検証構成要素804、及びセキュリティ構成要素806を含む。
【0073】
インターフェース構成要素802は、ネットワークを介してメディアレンダラから要求を受信する。要求は、メディアレンダラ及びデジタル署名の識別情報を含む開始メッセージと関連付けられる。さらに、インターフェース構成要素802は、メディアレンダラがメディアサーバによって認証されかつ認可されたかどうかを示している応答をメディアレンダラデバイスにネットワークを介して送信する。
【0074】
検証構成要素804は、要求のデジタル署名の関数としてメディアレンダラを認証する。1つの実施形態では、デジタル署名は信頼された機関によって検証される。さらに、検証構成要素804は、要求の識別情報の関数として、メディアレンダラデバイスを認可する。1つの代替的実施形態では、メディアレンダラデバイスは、サポートされるメディアフォーマットのリストを得るためにクエリされる。本実施形態では、メディアレンダラデバイスは、それが少なくとも1つの互換性のあるフォーマットをサポートする場合に認可される。
【0075】
セキュリティ構成要素806は、メディアレンダラが検証構成要素によって認可されて認証された場合、メディアサーバによって実行される1つまたは複数のサービスへのアクセスをメディアレンダラに許可し、メディアレンダラが検証構成要素によって認可されずかつ認証されなかった場合、メディアレンダラへのアクセスを拒否する。
【0076】
説明の目的のために、プログラム、及び、例えばインターフェース構成要素802、検証構成要素804、及びセキュリティ構成要素806などの他の実行可能プログラム構成要素は、分離したブロックとして本明細書において示されている。しかしながら、かかるプログラム及び構成要素はUPnPデバイスの異なる記憶構成要素の様々な時間に存在して、デバイスのデータプロセッサ(または複数のデータプロセッサ)によって実行されるということが認識される。
【0077】
特別の定めのない限り、本明細書において図示されて説明された本発明の実施形態における動作の実行順序または性能は、本質的ではない。即ち、特別の定めのない限り、動作はいかなる順番で実行されてもよく、本発明の実施形態は、本明細書において開示された動作以外の追加の動作またはそれより少ない動作を含んでいてもよい。例えば、別の動作より前に、別の動作と同時に、または別の動作の後で、特定の動作を実施しまたは実行することは、本発明の態様の範囲内にあると考えられる。
【0078】
本発明の実施形態は、コンピュータ実行可能命令を用いて実行されてもよい。コンピュータ実行可能命令は、1つまたは複数のコンピュータ実行可能構成要素またはモジュールにまとめられてもよい。本発明の態様を、かかる構成要素またはモジュールのうちのいかなる数及び体系でも実行することができる。例えば、本発明の態様は、図に示して本明細書で説明された特定のコンピュータ実行可能命令または特定の構成要素もしくはモジュールに限定されない。本発明の他の実施形態は、本明細書において示しかつ説明されたよりも多くの機能またはより少ない機能を有する異なったコンピュータ実行可能命令または構成要素を含むことができる。
【0079】
本発明の態様または本発明の実施形態の要素を導くときに、冠詞「ある(a)」、「ある(an)」、「この(the)」、及び「前記(said)」は、1つまたは複数の要素があることを意味することを意図している。用語「備える」、「含む」、及び「有する」は、包括的であることを意図し、リストされた要素以外の追加の要素があってもよいことを意味する。
【0080】
様々な変更を、本発明の態様の範囲を逸脱しないで、上記の構造、製品及び方法に行うことができるので、上記の説明に含まれかつ添付の図面に示された全ての内容は例示的であって限定の意味ではないと解釈されるべきである。

【特許請求の範囲】
【請求項1】
オープンネットワークにおいてUPnP(ユニバーサルプラグアンドプレイ)デバイス(104)とUPnPエンドポイント(102)との間に安全な接続を構築する方法であって、前記UPnPデバイス(104)及び前記UPnPエンドポイント(102)は前記ネットワークに動的に参加しかつ離脱することができ、前記方法は、
UPnPデバイス(104)によって、UPnPサービスの要求(500)を受信するステップであって、前記要求は、前記ネットワークを介してUPnPエンドポイント(102)から受信され、前記要求(500)は、前記UPnPエンドポイント(102)と関連付けられた識別情報(506)及びデジタル署名を含むステップと、
前記UPnPエンドポイント(102)の前記受信されたデジタル署名の関数として前記UPnPエンドポイント(102)を前記UPnPデバイス(104)によって認証して、前記UPnPエンドポイント(102)の識別性を検証するステップと、
前記受信された識別情報(506)の関数として前記UPnPエンドポイント(102)を前記UPnPデバイス(104)によって認可して、前記UPnPデバイス(104)によって実装される1つまたは複数のサービスへのアクセスを許可するステップと、
前記UPnPエンドポイント(102)が前記UPnPデバイス(104)によって認証されかつ認可されたかどうかを示す応答を、前記UPnPデバイス(104)から前記UPnPエンドポイント(102)へ送信するステップと
を備える方法。
【請求項2】
請求項1に記載の方法において、前記識別情報は、信頼された機関によって提供される証明書を備え、前記信頼された機関は、前記要求の前記デジタル署名を提供することを特徴とする方法。
【請求項3】
請求項2に記載の方法において、前記証明書は、前記UPnPエンドポイントの公開鍵を含み、前記UPnPエンドポイントの前記公開鍵を用いて前記UPnPデバイスによって提供される前記応答の少なくとも一部を暗号化するステップを更に備えることを特徴とする方法。
【請求項4】
請求項1に記載の方法において、前記識別情報は、前記UPnPエンドポイントのデバイスモデル番号、前記UPnPエンドポイントのシリアル番号、及び前記UPnPエンドポイントでサポートされるメディアフォーマットのリスト、のうちの1つまたは複数を含むことを特徴とする方法。
【請求項5】
請求項1に記載の方法において、前記応答は、前記UPnPデバイスの証明書を含み、前記UPnPデバイスの前記証明書を用いて前記UPnPエンドポイントによって前記UPnPデバイスを認証するステップを更に備えることを特徴とする方法。
【請求項6】
請求項1に記載の方法において、前記応答はセッション識別子を含み、前記セッション識別子は後続の要求に含まれることを特徴とする方法。
【請求項7】
請求項1に記載の方法において、前記要求は、前記UPnPエンドポイントによって生成される第1の乱数を含み、前記応答は、前記UPnPデバイスによって生成される第2の乱数を含み、前記応答は、前記UPnPエンドポイントの公開鍵で暗号化されており、 前記UPnPデバイスによって前記UPnPエンドポイントから確認を受信するステップであって、前記確認は、前記第1の乱数の関数として前記UPnPエンドポイントによって生成されるセキュリティトークン及び解読された第2の乱数を含み、前記第2の乱数は、前記UPnPエンドポイントの非公開鍵を用いて解読され、前記UPnPエンドポイントの前記非公開鍵は、前記UPnPエンドポイントの前記公開鍵に対応するステップと、
前記確認の受信に応答して、前記セキュリティトークンの関数として前記UPnPエンドポイントの前記認証及び前記認可を前記UPnPデバイスによって確認するステップと
を更に備えることを特徴とする方法。
【請求項8】
請求項7に記載の方法において、
前記第1の乱数及び前記第2の乱数の関数として共有秘密を前記UPnPエンドポイントによって生成するステップと、
前記共有秘密の関数として前記セキュリティトークンを前記UPnPエンドポイントによって生成するステップと
を更に備えることを特徴とする方法。
【請求項9】
請求項8に記載の方法において、前記セキュリティトークンは、前記共有秘密のダイジェスト、及び、前記共有秘密から得られる暗号鍵を用いて暗号化されている前記UPnPエンドポイント及び前記UPnPデバイスに知られている値、のうちの1つまたは複数であることを特徴とする方法。
【請求項10】
請求項7に記載の方法において、
前記UPnPデバイスによってセッション識別子を生成するステップであって、前記セッション識別子は、前記UPnPエンドポイントへの応答に含まれていて、前記セッション識別子は、前記UPnPエンドポイントからの後続の要求にかつ前記UPnPデバイスからの後続の応答に更に含まれているステップを更に備えることを特徴とする方法。
【請求項11】
請求項10に記載の方法において、前記セッション識別子は、セッショントークンを含み、前記第1の乱数及び前記第2の乱数の関数として前記セッショントークンを生成するステップを更に備え、第1の生成されたセッショントークンは、第2の生成されたセッショントークンとは等しくないことを特徴とする方法。
【請求項12】
請求項11に記載の方法において、前記セッション識別子及び前記セッショントークンは、XML要求、及びUPnP要求のHTTPヘッダ、のうちの少なくとも1つに埋め込まれていることを特徴とする方法。
【請求項13】
請求項1に記載の方法において、
前記UPnPエンドポイントの前記承認及び前記認可の関数として前記UPnPエンドポイントと関連付けられたアドレスを前記UPnPデバイスによって記録するステップであって、前記アドレスは、前記UPnPデバイスによって用いられて前記UPnPエンドポイントからの後続の要求を識別するステップを更に備えることを特徴とする方法。
【請求項14】
請求項1に記載の方法において、1つまたは複数のコンピュータ可読媒体は、請求項1に記載の前記方法を実行するためのコンピュータ実行可能命令を有することを特徴とする方法。
【請求項15】
オープンネットワーク内の複数のUPnP(ユニバーサルプラグアンドプレイ)ポータブルメディアデバイスの中で新規で安全なハンドシェイクサービスを構築する方法であって、前記UPnPポータブルメディアデバイスのうちの1つまたは複数は前記ネットワークに動的に参加しかつ離脱することができ、前記方法は、
第1のポータブルメディアデバイスによってホストされるUPnPサービスの可用性を知らせるメッセージ(202)を前記ネットワークを介して送信するステップであって、前記サービスは、前記ハンドシェイクサービス及び少なくとも1つの追加のUPnPサービスを含むステップと、
前記ネットワークを介して第2のポータブルメディアデバイスから、前記ハンドシェイクサービスを開始する第1の要求(208)を前記第1のポータブルメディアデバイスによって受信するステップであって、前記要求は開始メッセージを含み、前記開始メッセージは、前記第2のポータブルメディアデバイスの識別情報及びデジタル署名を含むステップと、
前記第2のポータブルメディアデバイスの前記デジタル署名の関数として前記第2のポータブルメディアデバイスを前記第1のポータブルメディアデバイスによって認証するステップ(302)であって、前記認証するステップは、前記第2のポータブルメディアデバイスの識別性を確立するステップと、
前記要求の前記識別情報の関数として前記第2のポータブルメディアデバイスを前記第1のポータブルメディアデバイスによって認可するステップ(309)であって、前記認可するステップは、前記第2のポータブルメディアデバイスが前記第1のポータブルメディアデバイスとの通信を許可されているかどうかを判定するステップと、
前記第2のポータブルメディアデバイスが前記第1のポータブルメディアデバイスによって認証されかつ認可されているかどうかを示す応答を、前記第1のポータブルメディアデバイスによって前記ネットワークを介して前記第2のポータブルメディアデバイスに送信するステップ(322)と、
前記第1のポータブルによってホストされる少なくとも1つの追加のUPnPサービスに対する第2の要求を、前記第1のポータブルメディアデバイスによって前記第2のポータブルメディアデバイスから前記ネットワークを介して受信するステップ(416)と
を備え、
前記第2のポータブルメディアデバイスが前記第1のポータブルメディアデバイスにより認証されかつ認可されている場合に、前記第2のポータブルメディアデバイスは、前記第1のポータブルメディアデバイスでホストされる前記少なくとも1つの追加のUPnPサービスへのアクセスを許可され、
前記第2のポータブルメディアデバイスが前記第1のポータブルメディアデバイスによって認証されておらずかつ認可されていない場合に、前記第2のポータブルメディアデバイスは、前記第1のポータブルメディアデバイスでホストされる少なくとも1つの追加のUPnPサービスへの前記アクセスを許可されないことを特徴とする方法。
【請求項16】
請求項15に記載の方法であって、前記第1のポータブルメディアデバイスは、UPnPコントロールポイントを備え、前記第2のポータブルメディアデバイスは、UPnPメディアレンダラを備えることを特徴とする方法。
【請求項17】
請求項15に記載のシステムであって、前記第1のポータブルメディアデバイスは、UPnPメディアレンダラを備え、前記第2のポータブルメディアデバイスは、UPnPコントロールポイントを備えることを特徴とするシステム。
【請求項18】
メディアサーバによってメディアレンダラを認可しかつ認証するコンピュータ実行可能構成要素を有する1つまたは複数のコンピュータ可読媒体であって、前記メディアサーバはオープンネットワークにおいて1つまたは複数のUPnPサービスを実行し、前記コンピュータ可読媒体は、
インターフェース構成要素(802)であって、
前記メディアレンダラからネットワークを介して要求を受信することであって、前記要求は開始メッセージを含み、前記開始メッセージは前記メディアレンダラの識別情報及びデジタル署名を含み、
前記メディアレンダラが前記メディアサーバによって認証されかつ認可されたかどうかを示す応答を、前記ネットワークを介してメディアレンダラデバイスに送信すること
のためのインターフェース構成要素と、
検証構成要素(804)であって、
前記メディアレンダラの前記デジタル署名の関数として前記メディアレンダラを認証し、前記認証することは、前記メディアレンダラの識別性を確立し、
前記要求の前記識別情報の関数として前記メディアレンダラを認可することであって、前記認可することは、前記メディアレンダラが前記メディアサーバとの通信を許可されているかどうかを判定すること
のための検証構成要素と、
セキュリティ構成要素(806)であって、
前記メディアレンダラが前記検証構成要素によって認可されかつ認証された場合に、前記メディアサーバによって実行される1つまたは複数のサービスへの前記メディアレンダラへのアクセスを許可し、
前記メディアレンダラが前記検証構成要素によって認可されずかつ認証されなかった場合に、前記メディアサーバによって実行される1つまたは複数のサービスへの前記メディアレンダラへのアクセスを拒否すること
のためのセキュリティ構成要素と
を備えることを特徴とするコンピュータ可読媒体。
【請求項19】
請求項18に記載のコンピュータ可読媒体において、前記メディアサーバによって送信される要求に応答して、前記メディアレンダラによって前記メディアサーバを認証しかつ認可するコンピュータ実行可能命令を更に備えることを特徴とするコンピュータ可読媒体。
【請求項20】
請求項18に記載のコンピュータ可読媒体において、前記メディアサーバ及び前記メディアレンダラは、ポータブルメディアデバイスであることを特徴とするコンピュータ可読媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2010−507285(P2010−507285A)
【公表日】平成22年3月4日(2010.3.4)
【国際特許分類】
【出願番号】特願2009−532555(P2009−532555)
【出願日】平成19年10月10日(2007.10.10)
【国際出願番号】PCT/US2007/080952
【国際公開番号】WO2008/048836
【国際公開日】平成20年4月24日(2008.4.24)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】