Universal Plug and Play

Universal Plug and Play (UPnP)とは



UPnP(ユニバーサルプラグアンドプレイ)は、ネットワークに接続された機器同士が、特別な設定なしに相互に認識し、連携動作を可能にするためのプロトコルです。機器をネットワークに接続するだけで、自動的にネットワークに参加し、他の機器と通信できるようになるため、ユーザーは複雑な設定を行う必要がありません。UPnPは、ネットワークにおける「プラグアンドプレイ」の概念を具現化したものと言えますが、直接的な関連性はありません。

UPnPの構造



UPnPは、UPnPフォーラムによって標準化されたネットワークプロトコルです。その構造は、大きく分けて下位層のUPnP DA(Device Architecture)と、上位層のUPnP DCP(Device Control Protocol)に分類されます。UPnP DAは、基本的な仕組みを定義しており、UPnP DCPは、具体的なアプリケーションレベルのプロトコルを定めています。

UPnP DCPの代表的な例としては、AVコンテンツの再生を目的としたUPnP AVや、ブロードバンドルータの動作を規定するUPnP IGD(Internet Gateway Device)などが挙げられます。

UPnP Device Architecture (UPnP DA)



UPnP DAでは、主に以下のような要素が定義されています。

アドレッシング: ネットワークに接続された機器が、IPアドレスを自動的に取得する方法を定めます。通常はDHCPを利用しますが、DHCPが利用できない場合には、AutoIPの仕組みを用いてアドレスを決定します。
ディスカバリー: ネットワーク上の機器を検出するための仕組みです。SSDP(Simple Service Discovery Protocol)というUDPベースのプロトコルを用いて、機器の存在を検出します。機器はネットワークに接続された際に、マルチキャストパケットを送信し、コントロールポイントはそれを受信することで機器を検出します。また、コントロールポイント側からマルチキャストパケットを送信して、機器からの応答を求めることも可能です。
デスクリプション: 機器が提供する機能や情報を記述したXMLファイルです。機器自身の情報を示すデバイスデスクリプションと、各サービスの詳細を示すサービスデスクリプションの2種類があります。
コントロール: サービスの機能を呼び出すためのアクションと、機器の状態を問い合わせるためのクエリを提供します。これらのメッセージには、XMLベースのSOAPが用いられます。
イベント通知: 機器の状態変化を監視し、状態が変化した場合にイベントを通知する仕組みです。コントロールポイントは、特定の状態変数を指定してイベント購読を要求し、状態が変化するたびに通知を受け取ります。
プレゼンテーション: ウェブブラウザを用いて機器の状態を確認したり、制御したりするためのインターフェースです。

UPnP AV



UPnP AVは、AVコンテンツの共有と再生を目的としたプロトコルです。メディアサーバ(コンテンツの保存)とメディアレンダラー(コンテンツの再生)という2種類のデバイスを定義しています。また、以下の4種類のサービスを提供します。

コネクションマネージャ: 各デバイスで利用可能なプロトコルやコンテンツフォーマットなどの情報を交換します。
コンテンツディレクトリ: 保存されたコンテンツのメタデータ管理を提供します。
レンダリングコントロール: 再生時の音量や輝度などのパラメータを管理します。
AVトランスポート: コンテンツの転送に関する制御を行います。

関連規格



UPnPを採用した規格として、DLNA(Digital Living Network Alliance)が広く知られています。DLNAは、家庭内ネットワークでのデジタルコンテンツ共有を容易にするための規格であり、UPnPを基盤としています。

脆弱性



UPnPは、その利便性の一方で、セキュリティ上の脆弱性を抱えています。多くのルータ、特に家庭用ルータでは、UPnPが初期設定で有効になっていることがありますが、UPnPは信頼できるネットワークでの利用を前提として設計されているため、認証機能が欠けている場合があります。その結果、マルウェアに感染したIoT機器などをLANに接続した場合、UPnPが悪用され、サイバー攻撃のリスクが高まる可能性があります。

関連項目



OSGi
Bonjour
Zeroconf

外部リンク



UPnP Forum
* JVNVU#347812:ネットワーク機器において UPnP が有効になっている場合の問題

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。