パケットに含められる情報量に制限があるなど,現在主流の認証プロトコルRADIUSは限界を迎え始めています。そこで,RADIUSの欠点を補いつつRADIUSの良さを残したプロトコルとして生まれたのが「Diameter」です。

 パソコンを使っているといろいろな場所でユーザー名とパスワードによる認証を求められます。例えば,会員制のサイトにアクセスするとき,VPNクライアント・ソフトを使ってリモート・アクセスをするとき,家庭のブロードバンド・ルーターをインターネット接続事業者(ISP)の網につなぐときなどです。こうした認証の背後でほとんどといっていいほど稼働しているのがRADIUS(Remote Authentication Dial In User Service)という仕組みです。認証のほか,使用してよいサービスを知らせる機能,利用時間のロギングの機能などを持ちます。

 ところが,RADIUSに限界が見えてきました。ブロードバンド化の進展やネットワーク利用者の急増,アクセス手段の多様化などが原因です。例えば,RADIUSは規格化当時の低いスペックのコンピュータを前提としていたために,パケットに含められる情報量に制限があります。また,音声や映像などのサービスで必須となってきた,確保する帯域量を通知する機能もありません。さらに,セキュリティは今ほど問題になっていなかったために,RADIUSの通信を暗号化するための規定がありません。

 こうした理由から,RADIUSの欠点を補いつつRADIUSの良さを残した仕組みが必要になってきました。その結果生まれたのが「Diameter」というプロトコルです。2003年にIETFで「RFC 3588」(PROPOSED STANDARD)として登録されました。

 Diameterが技術者の間で注目されているのは,NTTが2008年3月31日から開始した次世代ネットワーク「フレッツ 光ネクスト」の中核技術であるIMS(IP Multimedia Subsystem)や将来の携帯電話/無線通信サービスでの利用が策定されているからです。

 ちなみに,Diameterの名前の由来は,RADIUSに引っ掛けたシャレです。つまり,RADIUSが「半径」だからその次と言うことで「Diameter」(直径)にしたわけです。

クレジットカードの処理でAAAを考える

 Diameterの詳細を見ていく前に,まず,Diameterを形容する「AAA」という言葉,そしてDiameterの基礎となったRADIUSについてお話しておきます。少し遠回りになりますが,前提知識としてこれらを知っておいたほうがDiameterの理解につながると思うからです。もちろん,AAAやRADIUSについて詳しい方は読み飛ばして下さい。

 まず,AAAから説明しましょう。Diameterはよく用語解説などで「RADIUS後継のAAAサーバーである」と説明されています。このAAAとは,サービスの提供から記録までの流れを認証(Authentication),承認(Authorization),アカウンティング(Accounting)の3段階に分けて考えるという概念のことを指します(図1)。プロトコルとして厳密に規定されているわけでもありません。あくまで概念です。

図1●AAAサーバーの動作モデルの例
図1●AAAサーバーの動作モデルの例
[画像のクリックで拡大表示]

 例えば,クレジットカードでの処理を考えると分かりやすいでしょう。利用者がカードを提示し,店員が確認するのが「認証」,クレジットカード・センターが利用額が限度額以内かどうかを判断するのが「承認」,加盟店が売り上げを集計して,カード会社に請求するのが「アカウンティング」に当たると言えます。