RADIUSサーバとは
RADIUSサーバとは、RADIUS(Remote Authentication Dial In User Service)という認証プロトコルを使って、認証サービスを提供するサーバです。インターネットが普及を始めたころ、ユーザーがインターネットへアクセスするには電話回線を使ったダイアルアップが主流でした。RADIUSサーバは、ダイアルアップサービス用の認証サーバとして開発され、ISPや企業などで利用されてきました。現在、回線は電話から光回線になり、RADIUSサーバをダイアルアップサービスで使うことはほとんどなくなりましたが、ISPの認証サービスなどでは、RADIUSサーバが継続して使われています。
また、近年では、Wi-Fiアクセスポイントでの認証などでもRADIUSサーバが使われています。それまで、一般的にユーザIDなどの認証情報はそれぞれのアクセスポイントで記録されていましたが、Wi-Fiの普及によってアクセスポイントが増えると、認証情報を管理しきれないという問題がありました。RADIUSサーバを使うことで、ユーザの認証情報を一元管理することができ、より広域のネットワーク回線にも対応できるようになりました。
また、電話回線のような閉じた環境ではなく、Wi-Fiという他者も利用するネットワーク上で認証サービスを提供するため、より強固なセキュリティがRADIUSサーバに求められるようになりました。そのため、通信経路の暗号化や証明書認証などの技術をRADIUSと組み合わせるなど、時代の要請に合わせた機能の拡張が行われています。
RADIUSプロキシサーバ
RADIUSプロキシとは、RADIUSの認証やアカウンティングのリクエストを受け取り、そのリクエストを他のRADIUSサーバに転送する機能のことをいいます。また、その機能を実装したサーバをRADIUSプロキシサーバといいます。主に、複数のISP間でローミングサービスを提供する場合などに利用されます。RADIUSプロキシサーバは、「サーバ」という名前が付いていますが、RADIUSクライアントに分類されます。
RADIUSサーバ認証の流れ
RADIUSによる認証は、ユーザ、RADIUSクライアント、RADIUSサーバの3つの要素で構成されています。RADIUSクライアントは、ユーザが利用しようとするネットワークやネットワーク機器で、NAS(Network Access Server)とも呼ばれます。以下では、RADIUSで認証が行われる手順を説明します。
- ユーザがネットワークに接続しようとします
- RADIUSクライアントは、ユーザに認証を要求します
- ユーザがユーザ名、パスワードを入力し、認証を行います
- RADIUSクライアントは、受け取ったユーザ名、パスワードを使って、RADIUSサーバにアクセス認証のリクエストを転送します
- RADIUSサーバは認証処理を行い、RADIUSクライアントに認証可否を伝えます
- RADIUSクライアントは、ユーザに認証結果(接続の許可・拒否)を伝えます
RADIUSサーバ導入のメリット
多くのネットワーク製品は、製品内の自前のユーザ認証の仕組みと、RADIUS認証の仕組みの両方をサポートしています。RADIUSサーバを導入することで、次のようなメリットがあります。
- 一元管理
RADIUS認証では、ユーザ名とパスワードを使った認証サービスを提供します。1台のRADIUSサーバで、様々なネットワーク機器の認証を一元管理することができます。そのため、それぞれのネットワーク機器ごとのアカウント設定が不要となり、管理者の負担を低減することができます。さらに、ActiveDirectoryやLDAPなどの他の認証システムと連携すると、Windows環境と同様のユーザ名、パスワードを利用することも可能です。
- 利用履歴の保管
RADIUSサーバでは、アカウンティング(課金)情報も取得することができます。どの利用者がいつ利用したのかが分かるため、システムの利用監査にも利用することができます。
- 負荷分散
ネットワーク機器の内部データベースでの認証は、機器に負荷を掛けます。RADIUSサーバを使って認証を外部管理にすることで、ネットワーク機器の負荷を下げることができます。
- 強固なセキュリティの実現
RADIUSサーバは、ワンタイムパスワードや証明書認証のインフラとしても利用することができます。また、従来のユーザ名、パスワードでの認証と比べて、より強固な認証を行うことができます。
セキュリティ
暗号文字列による通信
RADIUSサーバの偽装をした不正なサーバが存在すると、RADIUSクライアントからのデータを盗み見られてしまう可能性があります。そのため、あらかじめ決めた暗号文字列を使って、お互いに正しい通信相手であることを確認するようになっています。
ワンタイムパスワードとの連携
RADIUSサーバと、ワンタイムパスワードのシステムを組み合わせ使う方法です。認証方式としては、PAPが使われます。通信経路を覗き見ることができ、パスワードを不正に取得できても、一度しか使えないパスワードを利用しているので安全です。最近では、オープンソースのワンタイムパスワードのシステムも広く使われるようになっているため、以前よりも安価に導入することができます。
従来の認証方式
従来、RADIUSサーバでよく使われていた認証方式は、PAPとCHAPです。PAPは、単純にユーザー名とパスワードを送信します。暗号化せずに送るため、ネットワーク上で通信を覗き見ると、パスワードが見えてしまうという問題があります。一方、サーバ上では、パスワードを一定の方法で処理した形で安全に保管しておくことができます。
CHAPは、RADIUSクライアントとRADIUSサーバの両方で、パスワードを同じ方法で処理し、結果をつき合わせる方式です。このパスワードの処理には非可逆の暗号方式が使われます。つまり、ネットワーク上で通信を覗き見ることができても、パスワードを解読することができません。しかし、サーバ上では、パスワードを元のデータのまま保管しておく必要があります。
従来、電話回線でダイアルアップを行っている時には、回線上を覗き見ることは簡単ではありませんでした。しかし、無線LANのように、他者も同じネットワークを利用する通信技術では、回線上のデータを簡単に覗き見ることができてしまいます。そのため、これらの方法が使われることは少なくなりました。
通信経路の暗号化
RADIUSサーバ側のSSL証明書だけを使って、通信経路を暗号化するEAP-PEAPという拡張暗号方式もよく使われています。RADIUSクライアントは、サーバのSSL証明書を確認することで、正しいサーバであることを確認できます。また、通信経路を暗号化するため、暗号化しないパスワードを送受信することができます。そのため、サーバ側では、MD5などの非可逆暗号化したパスワードを保管することができます。したがって、通信経路もパスワードも安全に保つことができます。
証明書認証
最近では、より安全な方法で認証を行うため、ユーザ名とパスワードの代わりにSSL証明書を利用するEAP-TLSという拡張認証方法が使われています。この場合、ユーザが持っているクライアントの証明書と、RADIUSサーバの証明書が使われます。パスワードを扱う必要がなく、よりセキュリティが高い方法です。実際に利用するには、認証局が必要になります。
RADIUSサーバのOSS
RADIUSサーバのソフトウェアのうち、デファクトスタンダード的な位置づけにあるのがOSSのFreeRADIUSです。Red Hat Enterprise Linuxなどにも同梱されていて、比較的簡単に入手することができます。オープンソースソフトウェアですので、ユーザ数ライセンスなどに関係なく利用することができます。
以前は、様々な製品が販売されていましたが、FreeRADIUSが広く使われるようになったため、海外ベンダーの製品は非常に少なくなりました。日本国内では、いくつかのベンダーから製品も販売されています。多くの製品が、ユーザ数ライセンスを採用しています。
デージーネットでは、FreeRADIUSの利用を推奨していて、多くのISPに導入しています。また、管理性を補うため、管理GUIのdaloRADIUS や、認証局のOpenXPKIなどを利用してシステムを構築しています。
【カテゴリ】:プロトコル  認証  
【Webセミナー】自社でOSSを採用しよう!今更聞けないOSSの基本セミナー
日程: | 11月22日(金)Webセミナー「BigBlueButton」を使用します。 |
内容: | OSSを導入したいけど、どこから手をつければいいかわからない方必見! |
ご興味のあるかたはぜひご参加ください。 |