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

 前回はm2m-xで用いているSIPのフレームワークについて解説した。最終回の今回は,m2m-xが採用している暗号化プロトコルを中心に解説する。

◆暗号化プロトコル

 m2m-xでは暗号方式としてTLS(Transport Layer Security)とIPsecをサポートしている。SSLの後継であるTLSは一般に浸透してきた方式だが,計算負荷の大きさや証明書の管理の煩雑さ,プロトコルへの依存性(例えばTLSはUDPには使えない)などを考慮し,m2m-xではPre-Shared Key認証によるIPsecの使用を推奨している。

 では,証明書を使わずにどうやってピア・ツー・ピアでの認証・暗号化を実現しているのだろうか。m2m-xでIPsecの鍵交換を行う大まかな手順は次のようになる。

  図5●シグナリング・チャネルのIPsec化 クリックして拡大表示

(1)シグナリング・チャネルのIPsec化
 まず,Pre-Shared Key認証によるUA(User Agent)とSIPサーバーの間の1対1のIPsec暗号化を行う(図5)。鍵交換プロトコル自体は従来のIKEの弱点を補強し,より軽く動作するような独自仕様を用いているが,実際に張られるIPsecチャネルは暗号スイートにAESを用いた業界標準のものである。

  図6●データ・チャネルのIPsec化 クリックして拡大表示

(2)データ・チャネルのIPsec化
 (1)の段階でUAは信頼できるSIPサーバーとの間に安全なチャネルを構築できており,なおかつSIPサーバーがすべてのUAの身元を保証するため,SIP INVITEメッセージの交換の際に相手が確かに本物だと信用することができる。従って,このクライアント同士での鍵交換はすでに安全が保証されている経路を使うので,一般の鍵交換プロトコルに比べて非常に簡単に実現することができる(図6)。言い換えるならば,プロトコルを軽く設計することができるのである。

 IPsecトンネルをピア・ツー・ピアで確立した後は任意の通信アプリケーションをセキュアに実行することができる。このようにSIPサーバーを仲介とした鍵交換がm2m-xにおけるピア・ツー・ピア通信の暗号化手法のベースとなっている。

◆プラグ・アンド・プレイ

 m2m-xがターゲットとしているのは,あらゆるネットワークにつながる“モノ”,そしてそれを使うすべての人である。したがってm2m-xを使ってSIPサーバーに接続するために何らかの設定作業をユーザーに要求するのは,極力避けたいところだ。そこで,m2m-xでは機器を店から買ってきたらそのまま,何も設定することなくネットワークにつなぐだけで使えるようにする仕組みを実現している。

 簡単に言うと,
・出荷時にSIP-URIが埋め込んであるパターン
・シリアル番号のようなものと連携して,購入プロセス時にサービスIDとしてのSIP-URIを埋め込むパターン
など,いくつかの事前処理をベースとしてプラグ・アンド・プレイのプロトコルが動作する仕組みになっている。

◆NAT/ファイアウオール越え

 ピア・ツー・ピアのアーキテクチャを考える上で避けては通れないテーマがNATやファイアウオールをどうやって越えるか,という問題である。現在,これを解決する有力な一手としてUAがUPnP(Universal Plug & Play)を利用してNAT/ファイアウオールと情報交換をする方法が挙げられている。m2m-xでもUPnPを利用したNAT/ファイアウオールコントロールを実現している。

 だが,すべての環境で必ずしもUPnPが使えるとは限らない。例えば,NAT/ファイアウオールがUPnPに対応していない。NAT/ファイアウオールが数ホップ先にあってUPnPが届かない。多段NATされている――などの場合にはUPnPとは別の手段が必要になる。

 そこで,m2m-xではUPnPを使わずにNAT/ファイアウオールを越える,より汎用的な方法も開発している。その具体的内容はまだ公開できないが,この機能の実現程度によって,ピア・ツー・ピアのサービスの裾野の広さは決まると言ってもよいかもしれない。

◆IPv6との関係

 ピア・ツー・ピアの世界でよく語られるのがIPv6との親和性だが,m2m-xサーバーも完全にIPv6/v4デュアル・スタックで動作しており,IPv6の時代にいつでも対応できる状態になっている。

 一方で,IPv4はNATがあるためにピア・ツー・ピアに使えないかというとそうでもない。 m2m-xでは前述のようにNAT越えのための技術開発も積極的に進めており,それほど特殊な環境でなければ十分にピア・ツー・ピアの通信を実現することは可能である。ただ環境によっては純粋なピア・ツー・ピア通信ができない可能性も残ってしまうことも事実なので,「IPv4でもだいたいは使えるが,IPv6の方が望ましい」というのがm2m-xのスタンスである。

 実際のところ,m2m-xとIPv6との関係は今後登場してくるであろうアプリケーション次第で変わっていくのかもしれない。

 以上,駆け足でm2m-xの技術概要を述べたが,おおまかな仕組みについてご理解いただけただろうか。m2m-xの技術仕様は商用サービスの開始に向けて今後も拡張し続けていく予定である。「モノ同士の双方向リアルタイム通信を安全・簡単・低コストに」のキーワードのもと,広く認知されるプロトコルを目指して今後も開発を進めていく。

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