4. ID管理とアクセス制御

RADIUSとTACACS+の違いとは?ネットワーク認証の仕組みとAAAモデルを徹底解説

2025年12月27日

ネットワークセキュリティの世界において、ユーザーが「誰」で、「何」をしてよいかを制御することは、最も基本的かつ重要な防衛線のひとつです。

企業ネットワークやクラウドサービスへのアクセスが増加する現代において、単にIDとパスワードが一致すればよいという単純な認証では、組織の資産を守り切ることは難しくなっています。そこで登場するのが、RADIUS(ラディウス)TACACS+(タカックスプラス)といった、認証・認可・アカウンティングを司るプロトコルです。

ネットワークエンジニアやセキュリティ担当者を目指す方にとって、これらのプロトコルの違いを正しく理解することは、堅牢なインフラを設計するための第一歩となります。今回は、ネットワーク認証の基盤となる「AAAモデル」の概念から、RADIUSとTACACS+の技術的な仕組み、そしてそれぞれのメリット・デメリットを深く掘り下げて解説していきます。

ネットワークセキュリティの要「AAAモデル」とは

RADIUSやTACACS+といった具体的なプロトコルについて触れる前に、まず理解しておかなければならないのが、これらが実現しようとしている「AAA(トリプルエー)モデル」という概念です。

AAAとは、情報セキュリティにおけるアクセス制御の3つの柱となる機能の頭文字をとったものです。どのような認証サーバーであっても、基本的にはこの3つの機能を提供することを目的としています。

Authentication(認証):あなたは誰ですか?

一つ目の「A」はAuthentication、すなわち「認証」です。これは、ネットワークにアクセスしようとしているユーザーやデバイスが、本当に主張通りの本人であるかを確認するプロセスです。

例えば、VPNで社内ネットワークに接続する際に、IDとパスワードを入力したり、クライアント証明書を提示したりする行為がこれに当たります。システム側は、登録されているデータベース(Active Directoryなど)と照合し、「このユーザーは正当な社員である」という事実を確定させます。

認証方式には、パスワード認証以外にも、生体認証(指紋・顔認証)、ワンタイムパスワード(OTP)、デジタル証明書など、複数の手段が存在します。セキュリティレベルに応じて、これらを組み合わせる多要素認証(MFA)の実装も一般的になってきました。

Authorization(認可):何をしてよいですか?

二つ目の「A」はAuthorization、すなわち「認可」です。認証を通過したユーザーに対して、どのような権限を与えるかを決定し、制御するプロセスです。

「認証」と「認可」は混同されがちですが、明確に異なります。例えば、「社員としてオフィスに入ることを許可された(認証)」としても、「金庫室に入る権限があるか(認可)」は別の話です。ネットワークの世界でも、「VPN接続はできたが、人事サーバーへのアクセスは禁止されている」といった制御を行うのが認可の役割です。

具体的には、VLANの割り当て、帯域制限、アクセス可能なリソースの指定、実行可能なコマンドの制限などが含まれます。この認可機能により、組織は職務分掌の原則に基づいた最小権限の原則(Principle of Least Privilege)を実現できます。

Accounting(アカウンティング):何をしましたか?

三つ目の「A」はAccounting、すなわち「アカウンティング(課金・管理)」です。ユーザーがネットワークリソースを「いつ」「どれくらい」「どのように」利用したかを記録するプロセスです。

元々はインターネット接続サービスの従量課金などのために使われていた言葉ですが、セキュリティの文脈では「監査ログの取得」という意味合いが強くなります。「誰が、何時何分にログインし、どの設定を変更して、いつログアウトしたか」という証跡を残すことは、不正アクセスの事後追跡や、内部統制において極めて重要です。

アカウンティング情報は、コンプライアンス対応(PCIDSS、ISMSなど)においても必須要件となることが多く、適切なログ保管期間と分析体制の構築が求められます。

RADIUSプロトコルの仕組みと特徴

AAAモデルを理解したところで、それを実現するための代表的なプロトコルであるRADIUS(Remote Authentication Dial-In User Service)について詳しく見ていきましょう。

RADIUSの歴史と概要

RADIUSは、その名の通り、元々はダイヤルアップ接続(電話回線を使ったインターネット接続)のユーザー認証を行うために開発されました。Livingston Enterprises社によって開発され、後にIETFによって標準化されました(RFC 2865、2866など)。

現在ではダイヤルアップだけでなく、無線LAN(Wi-Fi)、VPN、有線LANの802.1X認証など、非常に幅広いシーンで利用されている、事実上の業界標準プロトコルです。標準化されているため、異なるベンダーの機器間でも相互運用性が高く、マルチベンダー環境での導入がしやすいという特徴があります。

アーキテクチャと通信フロー

RADIUSはクライアント・サーバーモデルを採用しています。

  • サプリカント(ユーザー端末):PCやスマートフォンなど。
  • RADIUSクライアント(NAS: Network Access Server):無線LANアクセスポイント、VPNゲートウェイ、スイッチなど。ユーザーからの接続要求を受け付け、RADIUSサーバーへ問い合わせる役割を持ちます。
  • RADIUSサーバー:ユーザー情報のデータベースを持ち(あるいは外部DBと連携し)、認証可否を判断するサーバーです。

通信フローとしては、ユーザーがID/パスワードをNASに送信すると、NASはそれを「Access-Request」パケットに包んでRADIUSサーバーへ転送します。サーバーは検証を行い、「Access-Accept(許可)」、「Access-Reject(拒否)」、あるいは追加情報を求める「Access-Challenge」を返します。

技術的な特徴:UDPの採用

RADIUSの大きな特徴の一つは、トランスポート層のプロトコルにUDP(User Datagram Protocol)を使用することです(ポート番号は認証に1812、アカウンティングに1813を使用するのが一般的)。

TCPではなくUDPを採用している理由は、認証処理におけるリアルタイム性とサーバー負荷の軽減にあります。認証サーバーには短時間に大量のリクエストが集中する可能性があります。TCPのようなコネクション確立の手順(3ウェイハンドシェイク)を省略し、処理を軽量化することで、大規模な認証基盤でも高速に動作するように設計されています。

もちろん、UDPはパケットの到達性を保証しないため、RADIUS自体に再送メカニズムが組み込まれています。一定時間応答がない場合、RADIUSクライアントは別のサーバーへリクエストを送る(フェイルオーバー)などの動作を行います。

RADIUSパケット構造の詳細

RADIUSをより深く理解するために、パケットレベルでの挙動を見てみましょう。エンジニアとしてトラブルシューティングを行う際、パケットキャプチャ(Wiresharkなど)を見る機会は必ず訪れます。

RADIUSパケットは、共通のヘッダーを持ちます:

  • Code:パケットの種類を示します(1=Access-Request、2=Access-Accept、3=Access-Rejectなど)。
  • Identifier:リクエストとレスポンスを紐付けるための識別子です。クライアントは0〜255の数値を送り、サーバーは同じ数値を返信で使います。UDPは順序保証がないため、このIDが一致するかどうかで、どのリクエストに対する返事かを判断します。
  • Length:パケット全体の長さです。
  • Authenticator:16バイトの数値で、セキュリティの要です。リクエスト時はランダムな値、レスポンス時はMD5ハッシュ計算に使われます。この計算に「共有鍵(Shared Secret)」が含まれるため、鍵を知らない攻撃者は正しいAuthenticatorを持つ偽の許可パケットを作ることができません。

トラブルシューティングの現場では、「Identifierが重複してしまっていないか」や「Authenticatorの計算が合わない(=共有鍵の設定ミス)」といった観点でログを解析します。特に、負荷分散装置(ロードバランサ)を経由する場合、このIdentifierの管理が複雑になり、認証エラーの原因になることがあります。

セキュリティ面:パスワードのみ暗号化

RADIUSのパケット構造において注意すべき点は、暗号化の範囲です。RADIUSは、NASとサーバーの間で事前に共有された鍵(Shared Secret)を使用してパケットをやり取りします。しかし、デフォルトの仕様では、パケット全体が暗号化されるわけではありません。

暗号化されるのは「パスワード属性(User-Password)」のみです。ユーザー名や、その他の認可情報(割り当てられるIPアドレスやVLAN IDなど)は平文(クリアテキスト)で流れます。

これは、閉じた管理ネットワーク内で運用する分にはリスクが低いと判断されてきましたが、インターネットを経由する場合や、より高いセキュリティが求められる環境では懸念材料となります。そのため、現在ではIPsecトンネルの中でRADIUSを流したり、EAP-TLSなどの高度な認証方式と組み合わせたりして安全性を確保するのが一般的です。

認証と認可の一体化

RADIUSのもう一つの特徴は、認証と認可がセットになっている点です。「Access-Accept」パケットが返されるとき、その中には認証成功の通知だけでなく、同時に認可情報(AVペア:Attribute-Value Pairs)も含まれています。

これは処理がシンプルになる反面、「認証は通すが、認可の処理だけ別のサーバーで詳細に行う」といった柔軟な構成をとることが難しいという側面もあります。

TACACS+プロトコルの仕組みと特徴

次に、もう一つの主要なプロトコルであるTACACS+(Terminal Access Controller Access-Control System Plus)について解説します。

TACACS+の概要とCiscoとの関係

TACACS+は、シスコシステムズ(Cisco Systems)によって開発・拡張されたプロトコルです。元となるTACACSやXTACACSというプロトコルがありましたが、現在使われているのは機能強化されたTACACS+がほとんどです。

長らくCisco独自のプロトコルとされてきましたが、現在ではオープンスタンダード化への動きもあり、Cisco以外のネットワーク機器でもサポートが進んでいます。しかし、その出自から、主にネットワーク機器の管理者認証(ルーターやスイッチへのログイン管理)で利用されるケースが圧倒的に多いです。

技術的な特徴:TCPの採用

RADIUSがUDPを採用していたのに対し、TACACS+はTCP(Transmission Control Protocol)を使用します(ポート番号49)。

TCPを採用することで、通信の信頼性がプロトコルレベルで保証されます。パケットの欠落や順序の入れ替わりが発生した場合でも、TCPが自動的に再送や順序制御を行ってくれるため、認証システム側で複雑な通信制御を実装する必要がありません。これは、不安定な回線経由で管理アクセスを行う際などに有利に働きます。

TACACS+のセッション管理と多重化

TCPはコネクション型プロトコルであるため、サーバーの状態(Keepalive)を把握しやすいという利点があります。例えば、サーバーがダウンした場合、RADIUS(UDP)では「返事が来ない」と判断するまでにタイムアウトを待つ必要があります。これに対し、TACACS+(TCP)では、RST(リセット)パケットが返ってきたり、そもそもSYN/ACKが返ってこなかったりすることで、即座に障害を検知できる可能性があります。

また、TACACS+サーバーの冗長化(二重化)を設計する際、プライマリサーバーとセカンダリサーバーへの切り替え動作においても、TCPの振る舞いは重要です。多くのネットワーク機器の実装では、一度確立したTCPセッションを使い回して複数の認証リクエストを処理する(Single Connection Mode)機能を持っています。これにより、認証の都度3ウェイハンドシェイクを行うオーバーヘッドを削減できますが、このモードの互換性が機器によって異なる場合があり、導入時の検証ポイントとなります。

セキュリティ面:パケット全体の暗号化

TACACS+がRADIUSより優れているとされる大きなポイントが、暗号化の範囲です。TACACS+は、パケットのヘッダー部分を除く、ペイロード(データ本体)全体を暗号化します。

これにより、パスワードだけでなく、ユーザー名、実行しようとしたコマンド、サーバーから返される応答メッセージなど、すべてのやり取りが第三者から隠蔽されます。ネットワーク管理者が機器の設定情報をやり取りする際、その内容が漏洩することはセキュリティ上重大なリスクとなるため、この全暗号化機能は非常に強力です。

認証・認可・アカウンティングの完全分離

TACACS+の最大の強みは、AAAの各機能を完全に分離して扱えるアーキテクチャにあります。

  • 認証(Authentication)だけを行い、認可は行わない。
  • 認証は別のサーバーで行い、認可(Authorization)だけをTACACS+サーバーで行う。

といった柔軟な構成が可能です。特に「認可」の機能が強力で、ユーザーごとに「実行可能なコマンドを1つ1つ細かく制御する」ことができます。

例えば、「経験の浅い管理者はshowコマンド(設定参照)だけ許可し、configコマンド(設定変更)は禁止する」といった細かい制御(コマンドオーソリゼーション)は、TACACS+の独壇場です。RADIUSでもベンダー固有属性を使えばある程度可能ですが、TACACS+ほど標準的かつ詳細には行えません。

徹底比較:RADIUS vs TACACS+ どちらを選ぶべきか

ここまでそれぞれの特徴を見てきましたが、実際にシステムを構築する際、どちらを選べばよいのでしょうか。比較表と選定基準をまとめます。

機能比較表

比較項目RADIUSTACACS+
標準化IETF標準(オープン)Cisco独自(他社も対応)
トランスポート層UDP (1812/1813)TCP (49)
暗号化範囲パスワードのみパケット全体(ヘッダー除く)
AAAモデル認証と認可が一体認証・認可・アカウンティングが分離
コマンド制御苦手(複雑な設定が必要)得意(コマンド単位で制御可能)
主な用途ネットワークアクセス(Wi-Fi、VPN)デバイス管理(ルーター等の操作)

ケーススタディ:適材適所の使い分け

ケース1:社内Wi-FiやVPNの認証

推奨:RADIUS

一般社員がネットワークに接続するための認証には、RADIUSが適しています。Windows ServerのNPS(Network Policy Server)や、クラウド型のIDaaSと連携しやすく、様々なPCやスマホ(サプリカント)が標準で対応しているためです。また、大量のユーザー認証をさばくパフォーマンス面でもUDPベースのRADIUSが有利です。

ケース2:ネットワーク機器の管理者アクセス管理

推奨:TACACS+

ルーター、スイッチ、ファイアウォールなどのインフラ機器を管理するエンジニアのアクセス制御には、TACACS+が最適です。「誰がどの設定を変更したか」という詳細なコマンドログ(アカウンティング)を取得でき、操作ミスや不正操作を防ぐための細かい権限設定(認可)が可能だからです。

ゼロトラスト時代におけるAAAの役割

近年、「ゼロトラストネットワークアクセス(ZTNA)」という言葉が注目を集めていますが、だからといって従来のAAAモデルが不要になるわけではありません。むしろ、その重要性は増しています。

ゼロトラストの原則は「決して信頼せず、常に検証せよ」です。これは、一度VPNに入ったからといって、内部ネットワーク全てを信頼するわけではないことを意味します。ここで重要になるのが、動的な認可(Authorization)です。

従来のRADIUS認証では、「認証成功=VLAN 10に接続」といった静的な割り当てが主でした。しかし、最新のNAC(Network Access Control)ソリューションでは、RADIUS認証時に以下のようなコンテキスト評価を行います:

  • OSのパッチは最新か?
  • アンチウイルスソフトは稼働しているか?
  • 接続場所は国内か?
  • 接続時間は業務時間内か?

これらの情報を収集し、RADIUSの「Change of Authorization (CoA)」という拡張機能を使って、動的にユーザーの通信を遮断したり、検疫ネットワークへ飛ばしたりする制御が行われています。RADIUSは単なる入り口の鍵ではなく、デバイスの健康状態をチェックする検疫官のような役割へと進化しているのです。

一方、TACACS+の領域でも変化があります。インフラのコード化(Infrastructure as Code)が進む中で、人間が手動でコマンドを打つ機会は減りつつあります。しかし、AnsibleやTerraformといった自動化ツールがネットワーク機器にアクセスする際、その「ボット」が特権IDを使って何でもできてしまうのは危険です。

ここでもTACACS+のコマンド認可が役立ちます。「自動化ツール用のアカウントには、設定変更コマンドのみを許可し、パスワード変更やログ消去コマンドは禁止する」といったガバナンスを効かせるために、レガシーに見えるTACACS+が依然として重要な役割を果たしているのです。

現場で役立つ実装のポイントとトラブルシューティング

知識としてプロトコルを知っているだけでなく、実際に現場で運用する際に直面しがちなポイントについても触れておきます。

共有鍵(Shared Secret)の管理

RADIUSもTACACS+も、クライアント(NAS)とサーバー間で「共有鍵」を設定し、これを元に暗号化やハッシュ計算を行います。この鍵が漏洩すると、認証の偽装が可能になってしまいます。

  • 複雑な文字列にする:辞書攻撃に耐えられるよう、長く複雑な文字列を設定します。
  • 使い回さない:機器ごとに異なる鍵を設定するのが理想です。
  • 定期的な変更:運用負荷との兼ね合いになりますが、長期間同じ鍵を使い続けるのはリスクです。

タイムアウトと再送設定

RADIUS(UDP)の場合、ネットワークの遅延によってパケットがドロップしたとみなされ、再送が発生することがあります。WAN回線を挟んだ拠点にあるRADIUSサーバーへ認証に行く場合などは、タイムアウト値をデフォルトよりも長めに設定するチューニングが必要になることがあります。

逆に、TACACS+(TCP)の場合は、TCPセッションの確立自体に時間がかかる場合(ファイアウォールの設定ミスなど)があるため、接続性の確認が重要です。

ベンダー固有属性(VSA)の活用

RADIUSは標準化されていますが、各メーカー(Cisco、Aruba、Palo Altoなど)が独自の機能拡張を行うためにVSA(Vendor Specific Attribute)という仕組みを持っています。

「特定のメーカーのVPN装置で、特定のグループだけに固定IPを渡したい」といった要件がある場合、標準の属性だけでなく、このVSAをRADIUSサーバーに辞書登録して設定する必要があります。ここがRADIUS構築の腕の見せ所であり、ハマりやすいポイントでもあります。

アカウンティングログの活用と保存

AAAの最後の「A」、アカウンティングについて、実務では軽視されがちですが、実は運用上非常に重要な課題となることがあります。

大規模な組織で、全社員のWi-Fi接続ログや、全ネットワーク機器の操作ログを取得し続けると、そのデータ量は膨大になります。RADIUSのアカウンティングパケット(Start、Interim-Update、Stop)は、ユーザーが移動したりローミングしたりするたびに発生します。

  • ストレージ設計:ログを何ヶ月、何年保存するか?コンプライアンス要件(ISMSやPCIDSSなど)を確認し、十分なディスク容量を確保する必要があります。
  • ログの分析:単に保存するだけでなく、SIEM(Security Information and Event Management)ツールに取り込んで分析できる形式にする必要があります。SplunkやElasticsearchなどにRADIUS/TACACS+のログを転送し、「深夜帯に大量の認証エラーが発生している(ブルートフォース攻撃の疑い)」といったアラートを検知する仕組み作りが、現代のSOC(Security Operation Center)には求められています。

導入に向けたチェックリスト

最後に、これからRADIUSやTACACS+サーバーを導入しようとしている方のために、簡易チェックリストを提示します。

  1. クライアントリストの作成:どのネットワーク機器(NAS)からリクエストが来るか、全てのIPアドレスと共有鍵のリストを作成しましたか?
  2. 冗長化設計:メインのサーバーが死んだとき、予備機への切り替えは何秒で行われますか?その間、ユーザーは待たされますか?
  3. ユーザーDBの選定:ローカルDBを使いますか?それともActive DirectoryやLDAPと連携しますか?AD連携の場合、ドメインコントローラーへの通信経路は確保されていますか?
  4. 属性のマッピング:NAS側が要求するVSA(ベンダー固有属性)と、サーバー側が返す値の定義は合っていますか?(例:Cisco AV-Pairの書き方など)
  5. テスト計画:正常系だけでなく、パスワード間違い、ロックアウト、サーバーダウン時の挙動など、異常系のテストシナリオは網羅されていますか?

これらの準備を怠らなければ、認証基盤の構築は決して難しいものではありません。ネットワークというインフラを守る「門番」を作る、やりがいのある仕事です。

理解度を確認するポイント

今回の内容がしっかり身についているか、重要なポイントを振り返ってみましょう。以下のキーワードについて、自分の言葉で説明できれば、基礎知識はバッチリです。

  • AAAの3要素の違い:「認証」と「認可」を明確に区別できていますか?
  • 暗号化の範囲:パスワードだけを守るのと、会話全体を守るのとの違いをイメージできますか?
  • UDPとTCPの採用理由:なぜRADIUSはUDPで、TACACS+はTCPなのか、その背景にある設計思想(軽快さ vs 確実性)を理解しましたか?
  • コマンドオーソリゼーション:TACACS+が管理者向けと言われる最大の理由であるこの機能を説明できますか?

これらの知識は、単なる試験対策だけでなく、実際のインフラ設計会議で「なぜこのプロトコルを採用するのか」を説明する際の強力な根拠となります。

【演習】RADIUS・TACACS+・AAAモデル 理解度チェック

まとめ:適材適所で安全なネットワークを

今回は、ネットワーク認証の中核を担うRADIUSとTACACS+について、AAAモデルの基礎から技術的な詳細まで解説しました。

  • RADIUS:UDPによる軽快な動作、広範な互換性。ユーザーのネットワークアクセス(Wi-Fi、VPN)向け。
  • TACACS+:TCPによる信頼性、全暗号化、詳細なコマンド制御。管理者のデバイス管理向け。

どちらが優れているかという対立軸ではなく、「誰に対し、どのようなセキュリティレベルで、何のアクセスを制御したいか」という要件に合わせて使い分けることが重要です。多くの場合、大企業ではこの両方のプロトコルが、それぞれの役割を持って稼働しています。

次回は、今回の知識をベースに、さらに高度なセキュリティが求められる「VPN接続における認証(EAP-TLS等)」について深掘りしていきます。RADIUSとデジタル証明書を組み合わせることで、どのようにして「なりすまし」を防ぐのか、その仕組みに迫ります。

-4. ID管理とアクセス制御