RADIUS(Remote Authentication Dial In User Service)とは
RADIUS(ラディウス)は、ネットワークへのアクセス認証と利用記録(アカウンティング)を一元管理するためのプロトコルです。元々は
ダイヤルアップ接続サービスのために開発されましたが、現在ではブロードバンド、
無線LAN、VLAN、
コンテンツ配信など、様々なネットワーク環境で広く利用されています。
クライアントサーバモデル
RADIUSはクライアント
サーバモデルに基づいて動作します。クライアントは、ユーザーにネットワークサービスを提供する機器(例えば、アクセスポイントやブロードバンドルータ)であり、認証やアカウンティングの要求をRADIUS
サーバに送信します。
サーバは、クライアントからの要求に応じて認証やアカウンティングを行い、結果をクライアントに返します。このモデルでは、クライアントが常に要求を送信し、
サーバがそれに応答するという一方通行の通信が行われます。
サーバからクライアントへの自発的な要求はできません。
RADIUSのクライアントと
サーバは、それぞれ「RADIUSクライアント」「RADIUS
サーバ」と呼ばれます。
RADIUSクライアントの例
インターネット接続サービス: ダイヤルアップ着信装置、ブロードバンドアクセスサーバ(BAS)など
無線LAN: 無線LANアクセスポイント
VLAN: VLANスイッチ
コンテンツ提供サービス: ウェブ
サーバ
プロトコルの概要
RADIUSプロトコルでは、クライアントが
サーバに「RADIUS要求パケット」を送信し、
サーバがクライアントに「RADIUS応答パケット」を返します。これらのパケットは、UDPプロトコル上でIPパケットとして送信されます。
各パケットは、ヘッダ部分(20オクテット)と属性部分で構成されます。ヘッダには、パケットの種類を示すコード、識別子、パケット全体の長さ、および認証符号が含まれます。識別子はクライアントが設定し、応答パケットで
サーバがコピーすることで、要求と応答を対応づけるのに使われます。認証符号は、データの改ざんや送信者の詐称を防止するためのものです。
属性部分は、属性値ペア(Attribute Value Pair)を任意の数だけ繰り返したもので構成されます。各属性値ペアは、属性番号、長さ、属性の値からなります。値には、整数、
IPアドレス、文字列などを設定できます。
各属性番号には、RFC文書で定義された意味が割り当てられています。この柔軟性により、RADIUSは様々な目的に対応できます。ベンダー独自の機能を追加する場合は、ベンダー固有の属性番号(VSA, Vendor Specific Attribute)を使用することが推奨されます。
属性値ペアには、認証やアカウンティングに必要な情報が含まれます。認証では、ユーザー名やパスワードが用いられ、アカウンティングでは、利用時間やデータ量などが記録されます。属性番号によって、どの種類の情報に使用できるかが決まっています。
RADIUSパケットの最大長は、認証プロトコルで4096オクテット、アカウンティングプロトコルで4095オクテットです。
AAAモデル
RADIUSは、AAAモデル(Authentication, Authorization, Accounting)と呼ばれる考え方に基づいています。AAAモデルは、サービス提供から記録までを、以下の3つの段階に分けて考えるモデルです。
認証 (Authentication): ユーザーが誰であるかを識別します。ユーザー名とパスワードの組み合わせが正しいことを確認する方法が一般的です。
承認 (Authorization): 認証されたユーザーにサービスを提供するかどうかを決定します。利用時間、場所、料金残高などに基づいて判断されます。
アカウンティング (Accounting): サービスの利用状況を記録します。課金処理に利用されます。
RADIUSプロトコル自体はAAAモデルよりも前に開発されたため、認証と承認を区別せず、まとめて「認証」として扱います。そのため、RADIUSクライアントは、認証が拒否された理由がパスワードの間違いなのか、権限不足なのかを区別できません。
共有鍵
UDPはTCPと異なり、データの改ざんや送信者の詐称を検知できません。そのため、RADIUSでは、クライアントとサーバの間で共有鍵(Shared secret)と呼ばれる鍵文字列を共有し、パケットの信頼性を確保しています。共有鍵は、クライアントとサーバの組み合わせごとに個別に設定する必要があり、全てのクライアントで同じ共有鍵を使用するとセキュリティリスクが高まります。
プロキシ
RADIUSプロキシサーバは、実際の認証処理を他のRADIUSサーバに委譲するサーバです。クライアントからの要求を転送する役割を担います。
ユーザー名に含まれるドメイン名などに基づいて、転送先を動的に変更することができます。この機能は、ISP間のローミングや、アクセス回線提供サービスとISP間の分業などで広く利用されています。
CoA (Change of Authorization)
CoAは、RADIUS許可の変更を意味します。AAAサーバからAAAクライアントにCoA要求パケットを送信することで、既存のセッションの再認証を行い、ポリシー変更を適用できます。
IEEE 802.1X
IEEE 802.1Xは、LANの利用を制御するためのプロトコルです。RADIUSとEAP(Extensible Authentication Protocol)を組み合わせることで、RADIUSサーバによって認証されたユーザーのみがLANを利用できるようにします。
802.1Xでは、実際の認証手順はEAP上の認証プロトコル(EAP-TLS、PEAP、EAP-TTLSなど)によって行われます。EAPによる認証データのやり取りは、利用者端末とアクセスポイント間ではEAPoL(EAP over LAN)によって、アクセスポイントとRADIUSサーバ間ではRADIUSプロトコルによって中継されます。
ソフトウェア
RADIUSの実装には、Livingston Enterprises社(現Lucent Technologies社)によるものや、その派生実装が長らく使われてきました。近年では、オープンソースや商用の様々な実装が存在します。
利用事例
インターネットサービスプロバイダ
アクセス回線提供サービス
携帯電話によるネット接続サービス
無線LAN、VLAN
有料
コンテンツ配信サービス
規定
RADIUSは、以下のRFC文書などで規定されています。
RFC 2865 - Remote Authentication Dial In User Service (RADIUS)
RFC 2866 - RADIUS Accounting
RFC 2867 - RADIUS Accounting Modifications for Tunnel Protocol Support
RFC 2868 - RADIUS Attributes for Tunnel Protocol Support
RFC 2869 - RADIUS Extensions
RFC 3162 - RADIUS and IPv6
RFC 3575 - IANA Considerations for RADIUS(Remote Authentication Dial In User Service)
RFC 3579 - RADIUS (Remote Authentication Dial In User Service) Support For Extensible Authentication Protocol (EAP)
RFC 3580 - IEEE 802.1X Remote Authentication Dial In User Service (RADIUS) Usage Guidelines
RFC 4072 - Diameter Extensible Authentication Protocol (EAP) Application
RFC 5080 - Common Remote Authentication Dial In User Service (RADIUS) Implementation Issues and Suggested Fixes
RFC 5997 - Use of Status-Server Packets in the Remote Authentication Dial In User Service (RADIUS) Protocol
RFC 6158 - RADIUS Design Guidelines
RFC 6572 RADIUS Support for Proxy Mobile IPv6
RFC 6929 - Remote Authentication Dial-In User Service (RADIUS) Protocol Extensions
RFC 7268 - RADIUS Attributes for IEEE 802 Networks
RFC 8044 - Data Types in RADIUS
関連項目
DIAMETER
外部リンク
* IEEE 802.1X
Copyright (c) 2004 by Accense Technology, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License Version 1.1 published by the Free Software Foundation.