AAAとは?認証・認可・記録をWi-FiとRADIUSの通信から徹底図解
会社のWi-Fiに接続するとき、システムにログインするとき、操作履歴が残るとき。背後で動く「本人確認」「権限の判定」「利用の記録」を、機器間の通信とパケットの中身まで追いながら理解します。
1. AAAは「利用させてよいか」を3つの観点で管理する考え方
AAA(トリプルエー)は、Authentication(認証)・Authorization(認可)・Accounting(利用の記録・利用量の計測)の頭文字です。「ログイン」という一つの出来事にも、異なる判断が含まれています。
Authentication / 認証
あなたは誰なのか。本当にその利用者か。例:パスワードや証明書を検証する。
Authorization / 認可
その利用者に何を許すか。例:社内LANへの接続は許可するが、管理者用ネットワークは許さない。
Accounting / 記録・計測
誰がいつ接続し、どれだけ利用したか。例:接続開始・終了時刻、セッションID、通信量を残す。
① 社員証を確認
本人か?=認証
② 入室可能な部屋を判定
何を許す?=認可
③ 入退室を記録
いつ利用した?=Accounting
2. RADIUSとは? AAAをネットワークで実装する代表的なプロトコル
AAAは役割を分類する考え方です。一方、RADIUS(Remote Authentication Dial-In User Service)は、そのうち認証・認可・利用記録の情報を、ネットワーク機器とサーバーの間でやり取りする通信プロトコルです。Wi-Fiアクセスポイント(AP)、VPN装置、ネットワークスイッチなどから利用されます。
AAA
何を管理するかという設計モデル
RADIUS
その判断をサーバーに問い合わせる通信規則
AP / VPN装置
結果を受けて実際にアクセスを制御する機器
Wi-FiルーターとRADIUSサーバーは同じもの?
家庭のWi-Fiでは、ルーターに設定された共通パスワードで接続する方式も多く、外部のRADIUSサーバーを必ず使うわけではありません。一方、企業向けの802.1X / WPA-Enterprise構成では、アクセスポイントがRADIUSサーバーと連携し、利用者ごとの認証情報を確認できます。
家庭向けWi-Fiの例
家族が同じWi-Fiパスワードを使う方式。これはRADIUSを必須としない。家庭用ルーターがAP・ルーター・DHCPなどを兼ねることも多い。
企業向けWi-Fiの例
利用者ごとのID・証明書などで認証する方式。APが認証通信を仲介し、RADIUSサーバーで検証する構成が一般的。
3. 先に理解したいネットワーク用語とレイヤ
通信図を読む前に、Wi-Fi、IP、UDP、RADIUSがどのレイヤで何を担当するかを整理します。レイヤは役割の分類であり、実際の通信データは各階層のヘッダが付いた形で運ばれます。
| 階層の見方 | 主な技術 | 何をしているか |
|---|---|---|
| アプリケーション層 | RADIUS、EAP | 認証・認可などのメッセージを定める |
| トランスポート層 | UDP、TCP | ポート番号などにより通信先のプログラムを識別する |
| ネットワーク層 | IPv4、IPv6 | 送信元・宛先IPアドレスでネットワーク間を転送する |
| データリンク層 | 802.11(Wi-Fi)、Ethernet、EAPOL | 近くの機器とのフレーム伝送や、認証用EAPメッセージの運搬 |
EAPは認証方式を運ぶフレームワークです。EAPOLはEAPをLAN・無線LAN上で運ぶ仕組みであり、EAPそれ自体を「常にIP上のアプリケーション通信」と考えないことが重要です。
AP(アクセスポイント)
スマートフォンやPCが無線で接続する設備。企業向け構成では802.1X認証の中継と通信の許可・制限を行う。
NAS / Authenticator
Network Access Server。RADIUSサーバーへ問い合わせる側の装置。Wi-FiならAP、VPNならVPN装置など。
SSID
Wi-Fiネットワークを識別する名前。表示された名前が同じでも、セキュリティ方式や接続先が異なる場合がある。
UDP
接続確立のハンドシェイクをせず、データグラムを送るトランスポート層の方式。従来のRADIUSでは主にUDP/1812・1813を使う。
TCP
接続確立、再送、順序制御などを提供するトランスポート層方式。TLSで保護するRADIUSなどで使用される。
TLS
通信相手の認証や暗号化に使うセキュリティプロトコル。RADIUSをTLSで運ぶ方式では、従来のUDPと構造が変わる。
ポート番号
同じIPアドレス上のどの通信サービスに届けるかを示す番号。RADIUS認証用1812、Accounting用1813が一般的。
MAC・IPアドレス
MACは主に同一リンクでフレームを届けるための識別子。IPはネットワークを越えた宛先を扱うアドレス。RADIUSサーバーへの転送にはIPが使われる。
実際にどう包まれて送られるのか
Ethernet等IP
ヘッダUDP
ヘッダRADIUSヘッダ + 属性
EAP-Message など
Wi-Fi端末とAPの間は802.11/EAPOL、APとRADIUSサーバーの間はIP/UDP/RADIUSというように、区間によって運搬方法が違います。
4. 操作ラボ:スマートフォン・AP・RADIUSの間で何が流れる?
次のラボでは、ノードと矢印を表示したまま、接続開始から認証、接続許可、Accountingまで段階ごとに確認できます。拒否される場合との違いも切り替えてみてください。
INTERACTIVE PACKET LAB
RADIUSによるWi-Fi認証の通信を追跡
ノード間の矢印・プロトコル・メッセージを段階ごとに切り替えます。通信のシミュレーションであり、実パケットは送信しません。
① Wi-Fiへ接続を開始
端末は企業向けWi-Fiへ接続を試みます。まだ通常の業務通信を許可していません。
この時点のメッセージ(読みやすくした模式例)
接続開始。認証が終わるまで通常の通信は制限5. RADIUSのパケットをバイト単位で読む
RADIUSメッセージには固定部分の20バイトのヘッダと、可変長の属性(Attributes)が含まれます。固定部分はCode 1バイト・Identifier 1バイト・Length 2バイト・Authenticator 16バイトです。
1B
1B
2B
16B
Type / Length / Value の集合
図は長さの比率ではなくフィールド構成を示しています。属性の合計量でパケット全体の長さが変わります。
| Code | メッセージ | 意味 |
|---|---|---|
| 1 | Access-Request | 利用を要求 |
| 2 | Access-Accept | 認証・認可の結果として許可 |
| 3 | Access-Reject | 拒否 |
| 11 | Access-Challenge | 追加の認証を要求 |
| 4 | Accounting-Request | 利用情報を報告 |
| 5 | Accounting-Response | 報告を受領 |
パケットの中の属性(Attribute)は何か
属性は「種類(Type)・長さ(Length)・値(Value)」の単位で格納されます。たとえば `User-Name` は利用者名、`NAS-Identifier` はアクセス装置の識別子、`EAP-Message` はEAP情報、`Acct-Status-Type` は記録の種類を表します。
# Wiresharkの表示をイメージした学習用の要約(生バイト列ではない)
Internet Protocol Version 4
Source: 192.0.2.10 # APの管理側アドレス(例)
Destination: 192.0.2.20 # RADIUSサーバー(例)
User Datagram Protocol
Source Port: 49152 # 例示用の送信元ポート
Destination Port: 1812 # 認証・認可
RADIUS
Code: Access-Request (1)
Identifier: 7
Attributes:
User-Name: "example-user"
NAS-Identifier: "office-ap-01"
EAP-Message: <EAPデータ>
Message-Authenticator: <検証値>上の値は説明用です。実際のEAP方式や装置によって属性は異なります。また、RADIUSにユーザー名が見える例があることと、認証情報が安全に暗号化されていることは別問題です。従来のRADIUS/UDPだけで通信路全体を暗号化できると考えてはいけません。
公式仕様を開く ↗RFC 2865 — RADIUSメッセージ形式Code・Identifier・Length・Authenticator・Attributesのフィールドと、Access-Requestなどの定義を掲載しています。6. Accountingは「ログを残す」だけ? Start・Stop・途中経過を具体例で理解
Accountingは、利用状況を後から確認・集計できるようにする仕組みです。接続開始のStart、接続終了のStop、構成に応じた途中のInterim-Updateといった情報が利用されます。
Start
09:00 接続開始。セッションIDを記録
Interim-Update
09:30 通信量などを途中報告
Stop
10:00 接続終了・総通信量を報告
# Accountingデータの概念例(実際の属性を読みやすく抜粋)
Code = 4 # Accounting-Request
Acct-Status-Type = Stop
Acct-Session-Id = "session-001"
Acct-Session-Time = 3600 # 接続時間(秒)
Acct-Input-Octets = 12000000 # 入力バイト数
Acct-Output-Octets = 3000000 # 出力バイト数
# 受信側が正常に処理した場合
Code = 5 # Accounting-Response`Octets` はバイトを数える単位、`Session` は一つの接続・利用期間です。どちら向きの通信をInput/Outputと数えるかはNASから見た方向です。Accountingには欠落・重複対策や保存期間、個人情報保護も必要です。
公式仕様を開く ↗RFC 2866 — RADIUS AccountingAccounting-Request/Responseと、Start・Stopなどを示すAcct-Status-Type属性の定義を確認できます。7. AAA・RADIUSと混同しやすい技術も図で理解
TACACS+:管理者がネットワーク装置を操作する場合
TACACS+(タカックスプラス)は、ネットワーク装置の管理者ログインやコマンド単位の許可などで使われるAAAプロトコルです。RADIUSと同じAAAの分野ですが、同一のプロトコルではありません。
管理者
ルーターの管理画面にログイン
TACACS+サーバー
本人確認と操作権限を判定
ネットワーク機器
設定変更コマンドを許可・拒否
Diameter:RADIUSに関連する別のAAAプロトコル
Diameter(ダイアメーター)はRADIUSの課題を踏まえて設計されたAAAプロトコルです。通信方式にはTCPやSCTPなどの信頼性のある転送機構を用い、メッセージ中にはAVP(Attribute-Value Pair)を使用します。特に通信事業者のネットワークなどで重要な位置を占めます。
Diameterクライアント
サービス利用情報を問い合わせる
TCP / SCTPなど
信頼性のある転送機構と接続保護
Diameterサーバー
AAA要求を処理する
LDAP・Active Directory:利用者情報の保存・参照先
LDAPはディレクトリ情報を検索・更新するためのプロトコルです。Active DirectoryはMicrosoftのディレクトリサービスです。RADIUSサーバーが利用者の確認のためにこれらを参照することはありますが、LDAPそのものをRADIUSやAAAと同一視してはいけません。
AP
RADIUSへ認証を依頼
RADIUSサーバー
認証処理・ポリシー判定
ディレクトリ
アカウント情報などを保持
| 技術 | 主な役割 | ポイント |
|---|---|---|
| AAA | 認証・認可・記録という分類 | 特定のパケット形式ではない |
| RADIUS | ネットワークアクセスのAAA | 伝統的にUDP 1812/1813 |
| TACACS+ | 機器管理などのAAA | 管理操作の認可など |
| Diameter | 別のAAAプロトコル | TCP/SCTP・AVP |
| LDAP | ディレクトリの参照・操作 | アカウント情報の参照先になり得る |
8. RADIUSのセキュリティ:UDPの通信をそのまま信用してよいか
伝統的なRADIUSでは、APとRADIUSサーバーが共有する秘密情報(shared secret)を使い、パケットの検証や一部情報の隠蔽を行います。しかし、これだけで通信内容の全体が暗号化されるわけではありません。ネットワーク設計では、盗聴・改ざん・なりすましへの対策が必要です。
AP / NAS
AAAの要求を生成
TLSによる保護
通信相手を検証し、転送経路を保護
RADIUSサーバー
要求を処理して返答
RADIUS over TLS(RadSec)の標準的なポートはTCP 2083です。さらに2025年のRFC 9765では、TLS等の保護された転送上で利用するRADIUS/1.1が実験的仕様として定義され、従来のMD5依存を取り除く方向が示されています。RADIUS/1.1の規定が、そのまま従来のRADIUS/UDPを変更するわけではありません。
公式仕様を開く ↗RFC 6614 — RADIUS over TLSTCP上のTLSでRADIUSを保護する方式と、TCP 2083を確認できます。公式仕様を開く ↗RFC 9765 — RADIUS/1.1(Experimental)TLS/DTLS上でネゴシエートする新しいRADIUSプロファイルの仕様です。9. まとめ:認証・認可・記録を通信図から思い出す
AAAは「誰か」「何ができるか」「何を利用したか」の三つを分ける設計です。RADIUSはAPなどのアクセス機器からサーバーへその判断を問い合わせ、認証・認可・Accounting情報をやり取りする代表的なプロトコルです。
認証: 利用者本人であることを確認する
認可: 使えるサービス・ネットワークを決める
Accounting: 利用開始・終了・通信量などを記録する
RADIUS: AP ↔ サーバー間のAAAメッセージを運ぶ
802.1X / EAP: 端末のネットワーク認証を制御・実現する
ラボでもう一度「RADIUSを送っているのはスマートフォンではなくAPであること」「認証に成功しても接続条件の判定があること」「Accountingは認証とは異なるメッセージであること」を確認してみてください。