以前は、一般的なパスワードとSSIDで利用者を企業ネットワークに参加させる方法が主流でした。しかし、必要な人に都度VPN接続を提供するのは、多くの企業にとって予想以上の手間でした。大半の社員が出社していた場合でも、管理は容易ではありませんでした。
手間がかかり信頼性にも欠ける上、この方法ではネットワークが攻撃に対して脆弱になります。幸い、RADIUSプロトコルを使えば、ネット接続が簡素化され、ITの負担も軽減されます。本記事では、RADIUSの機能、動作、利点、欠点について詳しく説明しています。
RADIUSはプロトコル、すなわち外部とのつながりや動作方法に関する規定です。これにより、外部ネット接続前にユーザの認証や確認が可能となります。ユーザ認証、確認、ログ管理などの作業を行い、端末同士の連携を実現します。
RADIUSは、不正利用者や侵入者がシステムにアクセスするのを防ぐため、Webアクセス管理にとって欠かせないツールです。
認証にはRADIUS認証サーバとNAS(以下の記事で詳しく説明)が必要です。これらはLDAPと同様の機能を持ち、最新のユーザログイン情報のデータベースを保持してローカル識別を行います。TCPと比べセキュリティ面に優れ、RADIUSはポート1813と1812で動作します。
NASは、個人とネットワーク機器をつなぐ接続点です。
ネット接続を要求する端末または利用者です。
利用者がネットワークに入るための権限を持っているか確認する認証サーバです。加えて、請求、利用時間、接続や端末情報のログ管理も行います。
企業向けの初期のダイヤルアップサーバ構成の一つであるLivingston Portmasterは1991年に登場し、RADIUSサーバ時代の幕開けとなりました。Livingston Enterprises, Inc.は、クライアント向けの集中管理型認証・許可・運用サービスを提供するため、Automated Identification Dial-In Customer Service Guidelinesを策定しました。
1995年にIETFが公表したRFC 2138でRADIUSプロトコルが正式に定められ、それ以降、多くのISPやネット機器メーカーがRADIUS規格を採用しています。
RADIUSサーバは、現在さまざまな製品や端末に対するAAA認証を実現する重要な要素となっており、無線ネットワーク、VPNサーバ、VoIPソリューションの入り口として活用されています。
WindowsやUNIX端末上でRADIUSプロトコルを実行するサーバは、バックグラウンドで動作するUDPベースのソフトウェアを使うことが多いです。クライアントやNAS(無線アクセスポイントやVPNなどの装置)は、Webサーバからのリクエストを待ってから応答します。
RADIUSサーバは、各利用者のログイン情報を収集し、その情報を元にクライアントへの応答を行います。これにより、クライアントからの接続要求を受け、利用者ごとの認証を確認した上で、適切な設定情報を返す仕組みとなっています。
この拡張性のあるシステムにより、さまざまなセキュリティプロトコルへの対応が容易になり、通信とセキュリティ機能が分かれています。
RADIUSはクライアント/サーバ方式で動作します。RADIUSクライアントであるNASが利用者のログイン情報を受け取り、RADIUS認証ネットワークを介してその情報を確認します。接続メタデータには、IPアドレス、ログイン名、暗号化されたパスワードなどが含まれる場合があります。
物理的に複雑あるいは分散したシステムでは、RADIUSゲートウェイクライアントを用いて他のRADIUSサーバへ認証要求を転送することが可能です。
以下のようなさまざまなサーバが接続を確認します:
RADIUSを管理するWebサーバは、認証後に利用者の権限を精査し、許可された者のみが組織の情報にアクセスできるようにします。また、セッション中に使用された機器情報などの詳細を提供し、請求処理にも活用されます。
適切なリソース管理は正規サービス提供者にとって有利です。ログイン要求を受けると、サーバは暗号化された顧客データベースと照合するか、別の認証システムに情報を送ります。
サーバ側が利用者のログイン情報をチェックし、問題なければNASへAccess-Acceptを返し、接続が確立されます。接続に失敗した場合はAccess-Rejectが送られます。
その後、NASは運用情報をRADIUSサーバへ送信し、長期保存や取引情報の管理に活用します。
インターネット接続を選び、初めてサインインする際、ユーザ名とパスワードを入力します(以降は記憶され、毎回入力の必要はありません)。
WAP(無線アクセスポイントやバックエンド)がNASに接続要求を送り、NASからRADIUS対応サーバへ転送されます。RADIUSポータルでは、利用者やパスワードを管理するか、Web上のデータベースやディレクトリで確認することができます。
入力情報が正しければ、RADIUSサーバはNASへ利用制限などを伝え、Access-Acceptを返します。
ここでは、RADIUSプロトコル内部でどのように動作するのかを見ていきます。
PPPは、利用者がログイン情報を使ってネットワークに接続する最も一般的な方法です。RADIUSサーバは、Telnet、rLogin、PPP、SLIPなど、複数の方式で利用者の認証をサポートします。PPP(Point-to-Point Protocol)は、クライアントとNASなど、2点間の直接接続を実現する仕組みです。
NASとRADIUSサーバ間のやり取りは、取り決められた秘密鍵を用いて記録されます。この秘密鍵は、双方で静かに共有され、利用者には知らされません。
クライアントとサーバの通信はトランスポート層で行われ、ログイン情報などのデータがひとまとめにされます。UDPまたはTCPがこの転送を担い、TCP/IPは広く利用される通信方式ですが、RADIUSは本来UDPを使います。
TCPとUDPの違いから、UDPが選ばれたのです。
簡単に言えば、TCPは情報が確実に受信されたかを定期的に確認するため、その分管理負荷がかかり、遅延も発生しやすくなります。
一方、UDPは通信負荷が低く、受信するとすぐにデータを送りますが、必ずしもすべてのデータが届く保証はありません。
RADIUSの場合、送信側ではなくRADIUSサーバが、通信の確実性を保証する役割を担っています。すなわち、利用者が情報を入力すると、一連の処理が開始されます。
本プロトコルは、利用者の身元確認と同時に、適用されるネットワークセキュリティポリシーの検証を行います。
必要な情報をあらかじめ求められた通りに送信すると、正しければRADIUSサーバからAccess-Acceptが返され、端末がネットワーク資源に接続できるようになります。
1990年代後半、RADIUSではPPPに対応したPAPおよびCHAPという認証技術が使われました。初期の認証手法は改良を要しますが、現代のRADIUSの動作理解には重要な知識となります。
PAPは、利用者側で直感的に理解しやすい動作をします。たとえば、利用者がユーザ名とパスワードを入力すると、その情報がクライアント経由でNASからRADIUSゲートウェイへ送られます。
PAPはユーザ名とパスワードを平文で送信するため、通信を傍受できる者に認証情報が容易に露見するリスクがあります。
CHAP(チャレンジベースのハンドシェイク認証プロトコル)は、PAPの代替となる手法です。平文での送信に比べ、こちらの方が安全で、データを暗号化して送るため外部からの盗み見を防ぎます。
動作の仕組み
利用者がパスワードを入力すると、クライアントはNASから取得したランダムな数字(チャレンジ)とともに認証情報を組み合わせ、MD5ハッシュアルゴリズムを適用します。こうして生成された応答値が認証に用いられます。
RADIUS認証は、WiFiネットワークへの安全な接続を実現し、VPNにも対応します。この柔軟性により、手軽かつ安全にネット接続が可能となります。
利用者ごとにログイン情報を設定できるため、共通パスワードによる侵入リスクが低減されます。
特にActive Directoryなどのオンプレミス環境では、IT管理者にとって導入や統合が困難な場合があります。
さまざまなプロトコルや互換性の問題により、RADIUSサーバの設定は複雑になり、熟練した管理者でも苦労することがあります。
入力された認証情報がRADIUSサーバのデータと一致しなければ接続されず、機密情報が不正に漏れるのを防ぎます。
RADIUSは多様な接続環境で使用でき、経済的な選択肢です。さらに、冗長性があり、接続が増えても対応可能です。また、PPP、UNIXログイン、PAPなど多くのセキュリティプロトコルと併用できます。
通信とセキュリティの処理を分離しているため、組織は通信路を変えずにセキュリティ対策を調整できます。
管理用コントローラ内のデータベースを用いて利用者を認証する場合、各利用者のログイン情報やパスワードを登録する必要があります。利用者認証用にRADIUSサーバを導入するには、物理的な認証コントローラ上に設置する必要があります。
RADIUS protocol - Github
Teaching Old Dogs New Tricks - Infosecurity Magazine
最新情報を購読