RADIUSとは ― 認証の仕組みとIEEE 802.1X
RADIUSとは、
RADIUSとは、ネットワークにつなぐ人の確認を1台のサーバにまとめるプロトコル
RADIUSは、無線LANやVPNにつなごうとする利用者を、1台のサーバでまとめて確認するためのプロトコルです。本人の確認に加えて、何を許可するかの決定と、利用の記録も受け持ちます。
RADIUSは、認証にUDPの1812番、記録にUDPの1813番を使います。仕様はRFC 2865とRFC 2866です。会社の無線LANに、社員ごとのIDとパスワードや証明書でつなぐときに、裏で動いている仕組みです。
RADIUSの役割:利用者の一覧を1か所に置く
会社には、無線LANのアクセスポイントやVPN装置など、利用者を受け付ける機器がたくさんあります。それぞれの機器が利用者の一覧を持つと、1人増えるたびにすべての機器を書き換えることになります。RADIUSを使えば、一覧はRADIUSサーバの1か所に置くだけで済みます。利用者の確認を許可の判断に使う考え方は、ゼロトラストの記事でも説明しています。
RADIUSに登場するのは、利用者の端末、受け付ける機器、RADIUSサーバの3つです。このうち、RADIUSサーバに問い合わせる機器をRADIUSクライアントと呼びます。RADIUSクライアントは利用者のPCではなく、アクセスポイントやVPN装置です。
RADIUSの正式名は、Remote Authentication Dial In User Serviceです。電話回線でプロバイダにつなぐダイヤルアップの時代に、その利用者を確認するために作られました。今では、無線LANやVPNの利用者の確認に広く使われています。
RFC 2865は、ネットワークの入口で利用者を受け付ける機器をNAS(Network Access Server)と呼んでいます。
RADIUSサーバは、受け取った問い合わせを別のRADIUSサーバに転送することもできます。転送するサーバをプロキシと呼びます。大学の間で無線LANを相互に利用できる仕組みなどで、この転送が使われています。
AAA:認証・認可・アカウンティング
RADIUSが受け持つ3つの機能を、英語の頭文字をとってAAAと呼びます。本人かどうかを確認し、何を許可するかを決め、何をしたかを記録します。
| 機能 | 確かめる | RADIUSでの |
|---|---|---|
| 認証(Authentication) | 本人かどうか | IDとパスワード、または証明書を確かめる |
| 認可(Authorization) | 何をしてよいか | つないでよいVLANや、接続してよい時間を返す |
| アカウンティング(Accounting) | 何をしたか | 接続した時刻と時間、送受信したデータ量を記録する |
RADIUSでは、認証の結果と認可の内容を同じパケットで返します。RADIUSサーバは、認証の成功を伝えるAccess-Acceptに、許可の条件も入れます。アカウンティングは別のやり取りで、ポート番号も別です。
RADIUS認証の流れとパケットの中身
RADIUSクライアントは、利用者から受け取った情報をRADIUSサーバに送って問い合わせます。サーバは、一覧と照合して答えを返します。やり取りに使う主なパケットは、次の6種類です。
| パケット | 向き | 意味 |
|---|---|---|
| Access-Request | クライアント → サーバ | 「この利用者を通してよいか」と尋ねる |
| Access-Accept | サーバ → クライアント | 通してよい。条件も一緒に返す |
| Access-Reject | サーバ → クライアント | 通してはいけない |
| Access-Challenge | サーバ → クライアント | 追加の確認が必要なので、利用者に問いを返す |
| Accounting-Request | クライアント → サーバ | 利用の開始・終了を記録してほしい |
| Accounting-Response | サーバ → クライアント | 記録した |
パケットの中身は、名前と値の組を並べた形をしています。この組を属性と呼びます。次の例は、社員の端末が無線LANにつなぐときに、アクセスポイントが送るAccess-Requestです。
読みやすいように、属性を1行ずつ並べ、一部を省いています。MACアドレスとIPアドレスは例の値です。行をクリックすると、その行の意味が開きます。
Access-Request(アクセスポイント → RADIUSサーバ)
パケットの種類です。1はAccess-Requestで、アクセスポイントが「この端末を通してよいか」とRADIUSサーバに尋ねています。宛先はRADIUSサーバのUDP 1812番です。
利用者の名前です。802.1Xでは、端末がEAPで名乗った名前が入ります。@の後ろは所属する組織を表し、問い合わせの転送先を決めるのに使うことがあります。
問い合わせているRADIUSクライアント、ここではアクセスポイント自身のIPアドレスです。どの共有シークレットを使うかは、この値ではなく、パケットの送信元IPアドレスで決めます。
利用者の接続手段です。19は無線LANを表します。有線LANのスイッチから問い合わせるときは、Ethernet(15)になります。サーバは、接続手段ごとに許可を変えられます。
接続を受ける側の識別情報です。802.1Xでは、アクセスポイントのMACアドレスの後ろに、コロンで区切ってSSIDを付けます。サーバは、SSIDごとに許可する利用者を変えられます。
接続してきた端末のMACアドレスです。記録に残すほか、許可する端末を絞るのにも使えます。
端末から届いたEAPのパケットを、そのまま入れた欄です。アクセスポイントは中身を判断せず、包んで運ぶだけです。EAPの中身を読んで判断するのは、RADIUSサーバです。
共有シークレットを使って計算した値です。途中で書き換えられていないかを、受け取った側が確かめます。EAPを運ぶパケットには、この欄が必ず付きます。
行をクリックすると、その行の意味が開きます。
認証に成功すると、RADIUSサーバは次のようなAccess-Acceptを返します。端末を入れるVLANと鍵の材料を一緒に返している点が、認可にあたります。
Access-Accept(RADIUSサーバ → アクセスポイント)
2はAccess-Acceptで、認証が成功したことを表します。失敗ならAccess-Reject(3)が返ります。Access-Rejectに、許可の条件は入りません。
ここから3行は、この端末を入れるVLANの指定です。次の2行と組で使います。
指定するVLANが、IEEE 802のネットワークのものであることを表します。6は、IEEE 802を表す番号です。有線LANのイーサネットも無線LANも、IEEE 802の規格です。
VLAN IDです。この端末はVLAN 20に入ります。同じSSIDにつないでも、利用者ごとに別のVLANへ振り分けられます。これは認可の例です。
端末とアクセスポイントが暗号化に使う鍵の材料です。EAPのやり取りの中で作られ、RADIUSサーバからアクセスポイントに渡されます。共有シークレットで暗号化して運びます。
端末に「認証に成功した」と伝えるEAPのパケットです。アクセスポイントが取り出して、端末へ送ります。このあと、端末とアクセスポイントは暗号化の鍵を決めて、通信を始めます。
行をクリックすると、その行の意味が開きます。
VLANを指定する属性の使い方は、IEEE 802.1XとRADIUSの関係をまとめたRFC 3580にあります。VLANそのものの仕組みは、VLANの記事で説明しています。
ポート番号1812・1813とUDPを使う理由
RADIUSサーバは、認証の問い合わせをUDPの1812番で待ち受けます。記録の依頼は、UDPの1813番で受け付けます。初期の実装は1645番と1646番を使っていたので、古い機器ではこちらが設定されていることがあります。
RADIUSがTCPではなくUDPを使う理由は、RFC 2865の2.4節に書かれています。答えが返らないとき、クライアントは同じサーバを待たずに、予備のサーバへ問い合わせ直します。この再送をクライアント自身で制御したいので、TCPの再送の仕組みを使わないのです。
UDPは、届いたかどうかを確認しません。そのためRADIUSクライアントは、応答が来なければ自分で再送します。TCPとUDPの違いは、TCPとUDPの記事にまとめています。
アクセスポイントとRADIUSサーバの間にファイアウォールがあるときは、この2つのポートを通す必要があります。ルールの書き方は、ファイアウォールの記事で説明しています。
共有シークレットと、暗号化される範囲
RADIUSクライアントとRADIUSサーバは、あらかじめ同じ秘密の文字列を設定しておきます。この文字列を共有シークレットと呼びます。サーバは、共有シークレットを設定していない機器からの問い合わせを捨てます。
RFC 2865で隠すことが決められているのは、パスワードの欄だけです。パスワードは、共有シークレットとMD5というハッシュ関数を使った計算で隠されます。利用者の名前など、多くの属性は読める形のまま流れます。
そのため、RADIUSのパケットは、社内の閉じたネットワークの中で流すのが一般的です。インターネットを経由して送る場合に備えて、RADIUSをTLSで包む方式もあります。RFC 6614で定められた実験的な方式で、TCPの2083番を使います。
RFC 2865は、パスワードそのものを送らないCHAPという確認方法にも対応しています。CHAPでは、受け付ける機器が出した問いの値とパスワードから計算した結果だけを送ります。無線LANの802.1Xでは、次の節で説明するEAPを使います。
無線LANの企業向け認証:IEEE 802.1XとWPA2/WPA3エンタープライズ
無線LANのセキュリティ規格WPA2とWPA3には、家庭向けのパーソナルと、企業向けのエンタープライズの2つのモードがあります。エンタープライズでは利用者を1人ずつ確認し、その処理をRADIUSサーバが受け持ちます。
| パーソナル | エンタープライズ | |
|---|---|---|
| 利用者の確かめ方 | APに設定した1つのパスワードを全員で使う | 1人ずつのIDとパスワード、または証明書 |
| 確かめる場所 | アクセスポイント自身 | RADIUSサーバ |
| 1人が辞めたとき | 全員のパスワードを変える | その人のアカウントだけ止める |
| 主な利用場所 | 家庭・小さな事務所 | 企業・学校 |
エンタープライズで使う認証の手順は、IEEE 802.1Xという規格が定めています。802.1Xには、端末・アクセスポイント・認証サーバの3者が登場し、規格の中ではそれぞれをサプリカント・オーセンティケータ・認証サーバと呼びます。
端末とアクセスポイントの間では、EAPという認証の手順を使います。EAPは、IPアドレスがなくても第2層の上で送れます。認証が終わるまでは端末にネットワークを使わせないので、この性質が必要なのです。
アクセスポイントは、端末から届いたEAPをRADIUSのAccess-Requestに入れて、RADIUSサーバへ送ります。サーバはAccess-Challengeで応答し、認証のやり取りを何往復か続けます。最後にサーバがAccess-Acceptを返すと、アクセスポイントは端末に成功を伝えます。
Access-Acceptには、暗号化の鍵の材料が入っています。アクセスポイントと端末は、この材料をもとに、その端末だけの暗号化の鍵を決めます。WPA2のパーソナルでは、鍵の材料を全員共通のパスワードから作りますが、エンタープライズでは利用者ごとに別の材料ができます。パーソナルのWPA2とWPA3で鍵の決め方がどう違うかは、WPA2とWPA3の違いの記事で比べています。
EAP-TLSとPEAP
EAPには、認証の方式がいくつかあります。よく使われるEAP-TLSとPEAPを比べます。
| EAPの | 端末の | 必要な |
|---|---|---|
| EAP-TLS | 端末の証明書 | サーバと端末の両方 |
| PEAP | IDとパスワード | サーバだけ |
EAP-TLSは、サーバと端末の両方が証明書を提示して互いに確認します。証明書そのものの仕組みは、電子証明書とPKIの記事で説明しています。PEAPは、まずサーバの証明書で暗号化した通信路を作り、その中で利用者のIDとパスワードを確認します。
証明書の使い方は、HTTPSのTLSと同じです。どちらの方式でも、端末はサーバの証明書を確認する必要があります。WPA3の仕様も、端末にこの確認を求めています。確認しないと、偽のアクセスポイントと偽のサーバにパスワードを渡すおそれがあります。
WPA3エンタープライズで変わること
Wi-Fi Allianceの仕様では、WPA3エンタープライズも802.1Xで認証します。WPA3エンタープライズだけを使うモードでは、鍵の計算にSHA-256を使う方式が必須で、管理用のフレームを保護する仕組みも必ず有効にします。より強い暗号を求める組織向けに、192ビットのモードも用意されています。
802.1Xは、無線LANだけの仕組みではありません。有線LANのスイッチも、ポートにつながった端末を802.1Xで確認できます。このときはスイッチがRADIUSクライアントになります。
VPNでの使われ方と、TACACS+との違い
社外から社内につなぐリモートアクセスVPNでも、RADIUSが使われます。VPN装置がRADIUSクライアントになり、利用者のIDとパスワードをRADIUSサーバに問い合わせます。無線LANと同じ一覧を使えるので、利用者の管理が1か所で済みます。VPNの仕組みはVPNの記事で説明しています。
似た役割のプロトコルにTACACS+があり、主に管理者がルータやスイッチにログインするときの確認に使われます。仕様はRFC 8907です。
TACACS+はTCPの49番を使い、認証・認可・アカウンティングを別々のやり取りに分けています。パスワードの欄だけでなく、パケットの本体全体を共有の鍵で隠せる点もRADIUSとの違いです。
RADIUSの弱点を補う目的で作られたプロトコルに、Diameterがあります。携帯電話の事業者の網など、大きな規模の認証で使われています。
認証を1か所にまとめておくと、総当たり攻撃のように同じ利用者の認証失敗が続く状況も見つけやすくなります。パスワードを狙う手口と対策は、不正アクセスの記事にまとめています。パスワード以外の要素を組み合わせる認証と、1回の認証で複数のサービスを使う仕組みは、多要素認証とシングルサインオンの記事で説明しています。
練習問題(全5問)
正解:認証は
RADIUSは
正解:無線LANの
RADIUSの
正解:アカウンティング
アカウンティングは、
正解:IEEE 802.1Xで
エンタープライズでは、
正解:EAP-TLSは
EAP-TLSは、
選んでから「採点する」を押すと、解説つきで答え合わせができます。
関連記事
おすすめの本 PR
ネットワークを初めて学ぶ人向けの入門書です。
![『[改訂新版]3分間ネットワーク基礎講座』の表紙](https://m.media-amazon.com/images/P/4774143731.09.MZZZZZZZ.jpg)
