
好きな所から読む
RADIUSとは?
RADIUSについて
RADIUSとは、Remote Authentication Dial In User Serviceの単語の頭文字をつなぎ合わせた略称で、AAAを構成するネットワーク上のユーザー認証プロトコルの1つです。古くからダイアルアップ回線やISPのサーバーとして利用されてきたもので、ユーザー認証だけでなくネットワークの接続時間やデータ量の情報も収集することができます。現在では無線LANや有線LANでのネットワーク接続時のユーザー認証プロトコルとしても利用されており、セキュリティ強化に役立っています。
RADIUSはAAAの1つ
AAAとは、Authentication(認証)、Authorization(認可)、Accounting(課金)の略称です。システムに接続するユーザが正しいかを認証し、認証したユーザにシステム許可を与え、ユーザの接続時間や操作などを記録する機能を提供します。
AAAを導入すると、AAAシステムがユーザのアカウント情報を全て管理するため、ネットワークをより便利に利用することができます。
RADIUSは代表的なプロトコル
プロトコルとは、コンピュータでデータを通信するために定められた手順や規約、信号の電気的規則、送受信の手順などを定めた規格のことです。異なるメーカーのソフトウェア同士でも、共通のプロトコルであれば正しい通信が可能になります。プロトコルの多くはRFC(Request for Comments)という形式で技術仕様が公開されており、誰もが閲覧可能です。
RADIUSの課題
RADIUSの最大の課題は、識別子が1オクテットしかないことです。RADIUSのパケットは、20オクテットのヘッダと属性で構成されています。ヘッダには1オクテットの種別コード、1オクテットの識別子、2オクテットのパケット長、16オクテットの認証符号が記録されます。識別子はクライアント毎に割り振られるため、RADIUSサーバーの最大接続は256と限定されてしまいます。つまり、より高いセキュリティに対応するためには、より識別子が多いプロトコルを利用しなくてはならないということです。
最近では、こうした問題を解決したDiameterというプロトコルがRADIUSの後継として使われ始めています。
Diameterとは
Diameterとは、AAAを構成する認証プロトコルの1つで、RADIUSの後継として注目されています。RADIUSは半径、Diameterは直径という意味があるため、RADIUSの2倍の機能があるとされています。
機能は以下の通りです。
トランスポートのプロトコル・セキュリティで信頼性が高い
Diameterでは、UDPではなくTCPやSCTPというプロトコルを使用しています。さらに、RADIUSはトランスポートのセキュリティが無いのに対し、DiameterではIPsecが必須となるため、より信頼度が高い通信が可能です。
同時接続数が多い
RADIUSの同時接続数は識別子が1オクテットであるために256と限定されていましたが、Diameterでは40億以上と多くのユーザーが同時に利用することができます。
データ量・通信の向きが多い
RADIUSでは1オクテットのみの領域が、3オクテットまで拡大されているため、取り扱うことができるデータ量が多くなりました。さらに、サーバーからクライアントへ通信することができ、回線の切断を要求したり、ユーザーの再承認を要求したりと、要求が可能です。
フェイルオーバーをスムーズに行うことができる
RADIUSでは、複数のサーバーに接続ができない場合に接続確認の回数が増え、フェイルオーバーに時間がかかる可能性がありました。しかしDiameterでは、接続先との通信障害が発生した場合、メッセージを他のエージェントに送信する機能があるため、フェイルオーバーがスムーズです。
ネゴシエーション
Diameterでは、クライアントとサーバー間でネゴシエーションが可能となりました。ネゴシエーションでは、プロトコルのバージョン、セキュリティ機能などをすり合わせることができます。
RADIUSの機能では満足できない方はDiameterを試してみてはいかがでしょうか。
RADIUSの認証方法
RADIUS認証の流れは、RADIUSサーバー、RADIUSクライアント(ユーザーが利用しようとしている機器)、ユーザー(認証される人)の3つの要素で構成されています。
RADIUS認証の手順
RADIUSの認証は以下の手順で行われています。
- ユーザーからの認証要求(ユーザーIDとパスワード)をクライアントが受け取る
- クライアントは、認証要求(ユーザーIDとパスワード)をサーバーに転送する
- サーバーは、受け取った情報(ユーザーIDとパスワード)を基にユーザー認証を行う
- サーバーは、クライアントに認証結果を返す
- クライアントは、認証結果に基づいてユーザーへ接続の許可または拒否を行う
簡潔に説明すると、クライアントがユーザーとサーバーをつなぐ役割をしています。
ユーザーがアクセスを要求すれば、受け取ったIDとパスワードからサーバーにアクセス認証をリクエストし、認証の可否をユーザーに伝えるという流れです。
また、RADIUSの課金処理は以下の手順で行われています。
- クライアントがサーバーに課金要求を送信する
- サーバーが課金処理を行い応答を返す
RADIUSサーバーとは
RADIUSサーバーとは、RADIUSというプロトコルに基づいて機能を提供するサーバーのことです。
登録利用者の認証情報を管理し認証を実行する機器、つまりコンピュータに機能を提供します。
特に、大規模なネットワークで利用されます。
サーバーの認証データ管理
RADIUSサーバーは、認証のためにIDやパスワード以外にも情報を管理する必要があります。そのために、多くの認証情報を内部データベースとして管理するシステムを備えているのです。RDBに外部データベースを保管したり、LDAPやActiveDirectoryなどの認証サーバーと連携したりと、実装も多いです。
サーバーのソフトウェア
RADIUSサーバーを実装したソフトウェアは、製品とオープンソースソフトウェアを選択することができます。GUIで管理し、EAPで利用する認証機能を持つものも多くあります。その中でもよく利用されているのが、FreeRADIUSです。FreeRADIUSのGUIを提供しているdaloRADIUSやOpenXPKIを共に利用することで、製品のソフトウェアと同じ機能性があります。
FreeRADIUSとは
FreeRADIUSとは、RADIUSプロトコルを実装したオープンソースソフトウェアのことです。FreeRADIUSには、RADIUSサーバー、RADIUSクライアントライブラリも含まれています。EAP-TLS、EAP-TTLSにも対応しており、RADIUSサービスを提供するために十分な機能があるソフトウェアです。
daloRADIUSとは
daloRADIUSとは、RADIUSサーバーのユーザーやアカウントの管理を行うウェブインタフェースのことです。daloRADIUSを利用すると、認証で使用するユーザーの追加・削除・編集を視覚的に行うことができます。サーバーにログインしてファイルを確認する必要がなく、サーバーの情報(ログインやログアウト時間)も参照することが可能です。
RADIUSクライアントとは
RADIUSクライアントはNAS(Network Access Server)とも呼ばれているものです。アクセスをするユーザの認証要求を受け付けてRADIUSサーバーにその情報を転送する役割を果たしています。
サーバーとクライアント間のセキュリティ
サーバーが不正な認証要求を受けないために、Shared Secretという共有鍵を利用しています。共有鍵はクライアントごとに決められ、そこからダイジェスト情報を作成し、共有する情報に付け加えます。これによって、詐欺や改ざんを検知することが可能です。
RADIUSサーバーはなぜ必要か
なぜサーバーは必要なのか、その理由は4つあります。
- セキュリティ認証を強化するため
- 認証レベルの変更を柔軟に行うため
- ネットワーク機器の負担を軽減するため
- ネットワーク機器の認証を一元化するため
1つずつ説明していきます。
セキュリティ認証を強化するため
RADIUSサーバーを使うと、セキュリティの認証システムが強化されます。無線LANは、現在多く利用されているものです。しかし、従来のIDとパスワードのみの認証システムでは、無線LANのネットワークを安全に使うことは不可能でした。そこで、ネットワークセキュリティを強化するために認証システムを強化したのです。
ネットワークセキュリティを強化するために必要なのが、RADIUSサーバーです。RADIUSサーバーを使うことによって認証システムがより強化され、多くの人が安心して無線LANを使うことができるようになりました。
認証レベルの変更を柔軟に行うため
RADIUSサーバーを使うことによって、認証レベルの変更を柔軟に行うことができるようになります。ユーザーは、アクセス経路によって認証方法の切り替えをすることが可能です。
例えば、同じユーザーが同じノートパソコンを使って社内と社外でネットワークを使うとします。社内では、決まった人のみがネットワークを使いますが、社外ではあらゆる人がネットワークを利用してコミュニケーションを取っています。そのため、同じ認証レベルでは社外に適応できません。そこで、社外で使う場合に認証レベルを高めることによって、セキュリティを強化する必要が出てきます。
このように、場所や使用状況によって柔軟に認証レベルを変えることにより、私たちはより便利にネットワークを利用することができます。そのために、RADIUSサーバーは必須なのです。
ネットワーク機器の負担を軽減するため
RADIUSサーバーをネットワーク機器の外部に取り付けることによって、機器の負担を軽減することができます。なぜかというと、RADIUSサーバーが外部とのやり取りを行うからです。そのため、ネットワーク機器の仕事が減るという仕組みになっています。
ネットワーク機器の認証を一元化するため
RADIUSサーバーが1台あれば、あらゆるネットワーク機器の認証を一元化することができます。これによって、ユーザーは1つのIDとパスワードで異なるネットワーク機器を利用することができるのです。
RADIUSの仕組み
ここでは、RADIUSの仕組みに関わることをまとめました。
- ポート番号指定
- クライアントID情報
- IPアドレス指定
- 共有暗号鍵
- プロキシ
1つずつ説明していきます。
ポート番号指定
クライアントは、サーバーへAccess-Requestメッセージを送る場合に、サーバーの指定したUDPポート宛に送信します。デフォルトは1812番にありますので、利用すると便利です。
クライアントID情報
サーバーへ送るAccess-Requestメッセージには、クライアントを示す情報としてIPアドレス情報もしくは予め決められている固定IDを加えます。
IPアドレス指定
クライアントとサーバー間でIPアドレス指定を行い、不正な認証要求を防ぎます。
共有暗号鍵
IPアドレス指定のみではセキュリティが完全でないため、クライアントとサーバー間で共有暗号鍵を事前に設定します。それによって、信頼性のあるクライアントのみから認証要求を受けることができます。
プロキシ
RADIUSサーバーは、認証データを管理するために他のRADIUSサーバーに認証処理を依頼することができます。このようなサーバーの使い方をRADIUSプロキシと呼びます。また、domainによって認証を依頼する方法もあり、その場合は「user@domain」の形式で依頼をします。
まとめ
RADIUSは、強固なセキュリティが必要な現在のネットワークに必要なシステムです。膨大な情報を管理するために昔から使われています。
- ユーザー認証プロトコルの1つである
- 認証システムはサーバー、クライアント、ユーザーの3つの要素から成り立っている
- セキュリティ強化の仕組みが多く備わっている
RADIUSについて知ることで、より安全にネットワークを利用することができます。