NTTコミュニケーションズ
先端IPアーキテクチャセンタ
第2アーキテクチャPT 第1プロジェクト
齊藤 允

 第1回では,m2m-xは認証サービスを提供するプラットフォームであるという説明をした。今回は,m2m-xがどうやって「簡単・安全・低コストな双方向通信」を可能にしているのか,実際にその仕組みについて見ていくことにしよう。

2. m2m-xの概略 ~SIPのフレームワーク~

 家電製品のみならず,ネットワークにつながるあらゆる“モノ”同士で通信を行う場合,相手のIPアドレスを知る必要がある。今までのクライアント・サーバー・モデルではDNSなどに名前解決を頼っていたが,m2m-xではピア・ツー・ピア通信のシグナリング・プロトコルであるSIP(session initiation protocol)のフレームワーク内で記述定義などを拡張追加し,これによって名前解決機能を実現している。

  図2●SIPサーバーはリアルタイムにUAのアドレスを管理する クリックして拡大表示

 図2拡大表示]にSIPのフレームワークの概要を示す。ピア・ツー・ピアで通信を行う機器を総称してユーザー・エージェント(以下,UA)と呼ぶ。

 ネットワークに参加するすべてのUAはあらかじめ自分の名前であるSIP-URI(例えばsip:taro@m2m-x.comのような形式)と自分のIPアドレスを関連付けてSIPサーバーに登録する([1]のREGISTERメッセージ)。

 次に,実際のピア・ツー・ピアの通信を開始する際に,UAは相手のUAのSIP-URIを指定してセッションの開始をネゴシエーションする([2]のINVITEメッセージ)。このとき,UA自身が相手のUAのIPアドレスを知らなくても,SIPサーバーが責任を持ってメッセージを伝達してくれる。ここがSIPによるフレームワークのポイントとなる。このメッセージのやり取りにより,UA同士は互いのIPアドレスを知り,ピア・ツー・ピア接続に使用するプロトコルについて同意に至る。

 そのあとに開始される通信はSIPサーバーを介さず,エンド・ツー・エンドで直接行われる([3]のP2P通信)。[1][2]を行う通信チャネルを「シグナリング・チャネル」(水色の線)と呼ぶのに対し,[3]の通信チャネルを「データ・チャネル」(オレンジ色の線)と呼ぶ。

3. m2m-xの付加機能

 上記のようにm2m-xはSIPのフレームワークをベースとしているが,いくつかの拡張機能を盛り込んでおり,より付加価値の高いシステムを提供している。以下,m2m-xならではの独自機能について解説していく。

  図3●m2m-xのセキュリティ機能 クリックして拡大表示

◆SIP-URIの詐称チェック

 SIPサーバーは,UAが送信するすべてのSIPメッセージの発信元SIP-URI情報が詐称されていないかどうかチェックする(図3拡大表示]の[1])。これにより,なりすましなどの攻撃を防ぐことができる。

◆アクセス・コントロール機能

 例えば,自分の家のエアコンに知らない誰かが接続してくることは誰でも防ぎたいと思うだろう。そのため,SIPサーバーに着信許可・拒否をコントロールできるフィルタ機能を持たせている(図3拡大表示]の[2])。迷惑メールの防止機能のような使い方もできる。

◆存在の隠蔽

 アクセス・コントロールだけでなく,例えば自分の家のエアコンのIPアドレス自体を他の人に知られないようにすることもできる。m2m-xでは,SIPの名前解決と認証を密接に連携させることができるためである。許可されていない人からの名前解決要求に対して,m2m-xのSIPサーバーはエアコンのSIP-URI自体があたかも存在していないかのように返答する(図3拡大表示]の[3])。

◆鍵の管理

 上記の機能を正しく動作させるためにはSIPのシグナリング・チャネルおよびデータ・チャネルをセキュアに保つ仕組みが欠かせない。一般には,通信の認証・暗号化のために証明書を使った公開鍵暗号方式を利用することが考えられる(例えばSSL)。

 しかし,あらゆる機器に証明書を持たせ,その維持・管理を行うことは一般ユーザーにとって大きな負担となる。m2m-xでは証明書ベースのセキュリティ方式もサポートしてはいるものの,それよりもっと簡便な方式を開発した。それが「Pre-Shared Key方式」である。

  図4●2つの鍵管理方式 クリックして拡大表示

 ただし,通常のままのPre-Shared Key方式ではスケーラビリティに弱点がある。図4拡大表示]の[1]に示した通り,すべてのUA同士がPre-Shared Keyを互いに持ち合うとすると,莫大な数の鍵を管理しなければならず,現実的ではない。

 そこでm2m-xではPre-Shared Key方式を発展させて,すべてのUAがSIPサーバーとの間にだけPre-Shared Keyを持ち,SIPサーバーを信頼することを前提としてセキュリティを保つ「3rd trusted party型」の認証モデルを採用した(図4拡大表示]の[2])。これはSIPサーバーが認証したUAは,他のUAが直接認証しなくても,SIPサーバーを信頼して接続するというモデルである。

 次回はm2m-xの暗号化プロトコルを中心に解説する。

■著者紹介:
さいとう まこと。NTTコミュニケーションズ 先端IPアーキテクチャセンタ 第2アーキテクチャPT 第1プロジェクト所属。2001年NTTコミュニケーションズに入社。同社および米Verioのデータセンターのネットワーク構築・検証業務を担当後,2002年よりIPv6の開発・運用に従事する。m2m-xに関してはプロジェクトの立ち上げ当初から開発に携わっている。共著に「IPv6実践ガイド マルチOSで学ぶv4/v6デュアルスタックネットワークの構築・運用方法」がある。