よくある質問・用語集

サーバー構築のデージーネットTOP > OSS情報 > よくある質問・用語集 > 用語集 > RADIUSとは

  • もっと調べる
  • どうやって使う?

RADIUSとは

RADIUSとは、AAAサービスを実装する認証プロトコルのひとつで、RFC2865で定義されている。AAAとは、Authentication(認証)、Authorization(認可)、Accounting(課金)の略称。つまり、RADIUSでは、システムに接続するユーザが正しいかを確認し、そのユーザにアクセス許可を与え、ユーザの接続時間や操作などを記録する機能を提供する。RADIUSを導入すると、各ネットワーク機器にユーザアカウント情報を個別に設定するのではなく、集中管理することができるようになる。

RADIUSの用途

RADIUSは、Remote Authentication Dial In User Service の略称である。これは、RADIUSがダイアルアップサービスで利用されていたプロトコルであることを物語っている。近年では、ダイアルアップサービスを行うことはほとんどなくなったが、無線LAN認証やWiMAX認証で利用されている。

RADIUS認証の流れ

RADIUSは、サーバ・クライアントモデルで動作する。RADIUSの認証では、認証される人(ユーザ)、ユーザが利用しようとしている機器(RADIUSクライアント)、RADIUSサーバの3つが相互に通信を行う。「RADIUSクライアント」は、NAS(Network Access Server)とも呼ばれる。認証は、次のような手順で行われる。

  1. ユーザからの認証要求(ユーザIDとパスワード)をRADIUSクライアントが受け取る
  2. RADIUSクライアントは、認証要求(ユーザIDとパスワード)をRADIUSサーバに転送する
  3. RADIUSサーバは、受け取った情報(ユーザIDとパスワード)を基にユーザ認証を行う
  4. RADIUSサーバは、RADIUSクライアントに認証結果を返す
  5. RADIUSクライアントは、認証結果に基づいてユーザへ接続の許可または拒否を行う

また、これ以外にRADIUSでは、課金処理にも対応している。課金処理は、次のような手順で行われる。

  1. RADIUSクライアントがRADIUSサーバに課金要求を送信する
  2. RADIUSサーバが課金処理を行い応答を返す。

RADIUSプロトコルと課題

RADIUSプロトコルは、UDPで実装されている。RADIUSパケットは、20オクテットのヘッダと属性で構成されている。ヘッダには1オクテットの種別コード、1オクテットの識別子、2オクテットのパケット長、16オクテットの認証符号などが記録される。RADIUSの最大の課題は、識別子が1オクテットしかないことである。識別子はクライアント毎に割り振られるため、RADIUSサーバの最大接続は256と限定されてしまう。また、RADIUSはトランスポートレベルでのセキュリティに対応していない。そのため、上位のプロトコルで認証情報を保護する仕組みが必要となる。

最近では、こうした問題を解決したDiameterというプロトコルがRADIUSの後継として使われ始めている。

RADIUSとPPP

RADIUSは、PPPと組み合わせて使うのが一般的である。RADIUSがトランスポートレベルのセキュリティに対応していないため、PPPにも簡易的な認証方式から、拡張認証方式まで様々な方法が用意されている。特に無線LANや認証スイッチで使われる802.1Xの認証では、拡張認証方式を使うことが多い。

PAP

PAPでは、パスワードをプレーンテキストで交換する。パスワードが平文のまま交換されるため、盗み見ることが可能だという課題がある。

CHAP

CHAPでは、双方でハッシュ化したパスワードを突き合わせる。CHAPの方がPAPよりも安全ではある。しかし、ハッシュ化するためにはサーバ側でもパスワードを平文で記憶しておく必要があり、最近ではそれも危険であると考えられている。

EAP-MD5

チャレンジ・レスポンス方式を使用して認証を行う。サーバーは、チャレンジと呼ばれるランダムなビット列をクライアントに送る。クライアントは、パスワードとチャレンジからレスポンスを計算して、ユーザーIDとレスポンスをサーバに送る。サーバは,ユーザーIDに対応するパスワードをデータベースから引き出し,同じ計算をする。この結果が、送られてきたレスポンスと同じであれば、認証が成功となる。この方法も、サーバ側でパスワードを平文で記録しておく必要がある。

EAP-TLS

ユーザ名とパスワードではなく、TLS証明書を使って認証を行う。認証装置(クライアント)は、サーバの証明書を検査して正しいサーバであることを確認する。サーバは、ユーザの持つクライアント証明書を使って、ユーザの認証を行う。利用するには、証明書の発行や管理を行う認証局が必要になる。

EAP-TTLS

EAP-TLSをさらに拡張した方法。サーバとユーザの証明書で認証した後、サーバのTLS証明書を使って通信経路を暗号化し、その経路上でユーザ名とパスワードによる認証を行う。利用するには、証明書の発行や管理を行う認証局が必要になる。

EAP-PEAP

サーバ側にのみ電子証明書を準備する方法。認証装置(クライアント)は、サーバの証明書を検査して、正しいサーバであることを確認する。そして、サーバ証明書を使ってTLSによる暗号化通信路を作り、クライアント証明書以外の方法で認証を行う。この認証には、ユーザ名とパスワードを使ったり、ワンタイムパスワードを使う場合もある。

RADIUSサーバとクライアント間のセキュリティ

RADIUSサーバが不正な認証要求を受けないようにするため、RADIUSサーバとクライアントの間では、共有鍵(Shared Secret)を利用する。共有鍵は、クライアント毎にあらかじめ取り決めて定義しておく。通信を行う時には、パケットの内容と共有鍵からダイジェスト情報を作成し、それを属性情報として付加する。これによって、詐称や改竄を検知することができる仕組みになっている。

RADIUSサーバの認証データの管理

RADIUSでは、認証のためにユーザ、パスワードだけでなく、それ以外の属性情報も管理する必要がある。多くのRADIUSサーバでは、認証情報を内部データベースとして管理することができる。しかし、RDBなどの外部データベースに認証情報を保管したり、LDAPやActiveDirectoryなどの認証サーバと連携できるようにしている実装も多い。

ローミングとRADIUSプロキシ

RADIUSサーバの認証データの管理に、さらにRADIUSサーバを使うこともできる。その場合には、RADIUSサーバは他のRADIUSサーバに認証処理を依頼することになる。このような使い方をRADIUSプロキシと呼ぶ。また、ユーザ名を「user@domain」の形式にして、domainによって認証を依頼するRADIUSサーバを決めるような方法が使われることもある。インターネットサービスプロバイダ間のローミングは、この方法で実装されている。

RADIUSサーバのソフトウェア

RADIUSを実装したソフトウェアでは、製品とオープンソースソフトウェアが選択できる。製品のソフトウェアは、GUIで管理ができたり、EAPで利用する認証局の機能を持つものが多い。オープンソースソフトウェアでは、FreeRADIUSがよく利用されている。FreeRADIUSのGUIを提供するdaloRADIUSや、認証局の機能を提供するOpenXPKIなどと共に使うことで、製品のソフトウェアと同等の機能を実現することができる。インターネットサービスプロバイダでは、このような構成でRADIUSサーバを利用していることが多い。

【カテゴリ】:プロトコル  認証  

  • もっと調べる
  • どうやって使う?

関連用語

RADIUSに関連するページ(事例など)


デージーネット用語集のページです。「RADIUS」という用語と関連情報について説明します。「RADIUS」について情報を収集する際、サービスをご検討いただく際などに用語集ページをお役立てください。

RADIUSとは先頭へ