【RADIUS】Wi-Fi通信のユーザーがNW上で許可される仕組み
普段何気なくスマホでWi-Fiを使っていると思います。
それがどういう仕組みで接続されているかはご存じでしょうか?
実はその裏側では、あるユーザー認証技術が働いています。
その技術を「RADIUS」と言います。
この記事では、RADIUSの仕組みやメリットとリスクを分かりやすくまとめました。
RADIUS認証とは
概要
RADIUSとは、「Remote Authentication Dial In User Service」の略称です。
直訳すれば「ユーザーサービスにおけるリモート認証ダイヤル」となります。
ネットワーク上で、ユーザーを認証するプロトコルの一種です。
イメージ
RADIUSはネットワークに接続するときに、正しいユーザーかどうかを確かめる仕組みです。
例えば家のWi-Fiに接続する際に、正しい家族であるかを確認できます。
家の主(親)は、家族にだけWi-Fiを使わせたいと思っていますよね?
そこでRADIUSは、家族の名前がリストにあるかどうかをチェックします。
もし家族の一員であれば、RADIUSは「OK、この人は家族だからWi-Fiを使ってもいいよ」と言って接続を許可します。
一方、もしリストにない人(家族ではない人)がWi-Fiに接続しようとすると、「ごめんね、家族じゃないみたいだからWi-Fiの使い方は教えられないよ」と断られます。
これによって、家族以外の人が無断でWi-Fiを使うことを防いで、家族だけが安心してWi-Fiを利用できるようになるのです。
この仕組みはネットカフェや学校のWi-Fiでも同じです。
正しいID(ユーザー名)とパスワードを入力すると、RADIUSが接続を許可します。
間違ったIDやパスワードを入力すると断られます。
つまり、RADIUSはネットワークの「警備員」のような存在で、正しいユーザーだけがネットワークを使えるように見守ってくれるのです。
そうして、ネットワークは安全に保たれています。
仕組み
オフィスや店舗におけるケースとして、RADIUS認証を構成する要素は以下の3点です。
- ユーザー:ネットワークにアクセスするために認証を要求。スマホやPCなど。
- RADIUSクライアント:ユーザーの認証要求をRADIUSサーバーに転送。Wi-Fi無線LANルーターなど。
- RADIUSサーバー:認証処理を実施後、結果をRADIUSクライアントに応答。クラウドまたはオンプレ環境に設置。
Wi-Fi無線LANにおけるRADIUS認証の構成図は、下図のようになります。
- ユーザーがアクセスポイント(RADIUSクライアント)に接続を試みる。
- RADIUSクライアントはユーザーに認証情報を要求。
- ユーザーが認証情報(ユーザ名、パスワード)を入力し、RADIUSクライアントに送信。
- RADIUSクライアントはRADIUSサーバーにユーザーの認証情報を転送し、認証をリクエスト。
- RADIUSサーバーが認証処理を実施し、承認か否認かをRADIUSクライアントに応答。
- RADIUSクライアントがユーザーに認証結果を応答。
このやりとりにより、許可されるべき端末だけがネットワークに接続されます。
不特定多数のスマホユーザーが、無差別に無線LAN環境に接続されることはありません。
メリット
アクセス制御
RADIUSを使用することで、ユーザーごとに異なるアクセス権限を設定できます。
必要な権限を持たないユーザーやデバイスが、ネットワークにアクセスすることを防止します。
ネットワークリソースへのアクセスが適切に制限されるため、機密情報や重要なリソースを保護することができます。
認証情報の一元管理
管理者目線では、1台のRADIUSサーバーで、NW機器の「ユーザ名とパスワードによる認証の一元管理」が可能です。
これにより、セキュリティポリシーの適用やユーザーアカウントの管理が容易になります。
また、権限の追加や削除も一か所で行うことで、情報の漏洩や不正アクセスのリスクを減らします。
例えば多数のNW機器が設置されている場合、ユーザー情報を1台ずつに設定していたら膨大な手間です。
そんな時は、RADIUSサーバー1台に全社員の認証情報を登録します。
するとNW機器が何台有っても、認証情報の更新作業はRADIUSサーバー1台分で済むので効率的です。
一方ユーザー目線では、RADIUSを使うことでシングルサインオン(SSO)が実現されます。
複数のシステムやサービスで同じ認証情報(ユーザー名とパスワード)を使い回すことができます。
ユーザーは1回のログインで複数のリソースにアクセスできるため、利便性が向上します。
セキュリティの強化
最近のRADIUSの認証方式は、よりセキュアな認証方式が主流になってきました。
それはSSL証明書を用いる「EAP-TLS」という認証方式です。
IEEE802.1X規格に基づく、PPP認証で利用されるプロトコルの一種。主に無線NW上での標準的な認証機構として使用される。
EAP-TLSの仕組みを分かりやすくするため、証明書をカードに見立てて説明します。
- 認証するためのカードを持っていく: EAP-TLSでは、ユーザーは「認証するためのカード」を持っています。これは、そのユーザーが本当にそのネットワークを使うことができることを証明するカードです。
- カードを見せて証明する: ユーザーは、そのネットワークに接続したい時に、カードを見せて「私は本当にこのネットワークを使うことができるんだよ」と証明します。
- ネットワークもカードを見せて証明する: そして、ネットワークの側も、自分が本物のネットワークであることを証明します。このようにして、お互いがお互いを確認して、「本当のネットワーク」と「本当のユーザー」であることを確認し合うのです。
- 安全に接続: お互いの証明が終わったら、安全にネットワークを利用できるようになります。
EAP-TLSは、カード(証明書)を持っているかどうかでお互いの正当性を確認し合い、ネットワーク使用を許可するか決める仕組みと言えます。
暗号化
RADIUSでは、クライアントとサーバー間の通信は共有鍵(Shared Secret)を用いた暗号化によって保護されます。
この共有鍵は、ネットワーク機器(クライアントとサーバーの両方)で事前に設定されており、通信データは共有鍵によって暗号化され、解読不能な形で送受信されます。
この暗号化により、第三者によるデータの盗聴や改ざんを防止し、ネットワークのセキュリティを強化します。
ログの記録
RADIUSのログは、ユーザーの認証情報の利用やネットワークアクセスの試行など、重要なイベントの履歴を記録します。
これにより、セキュリティインシデントが発生した場合に、原因の特定、調査や追跡が行いやすくなります。
また、ログの記録は、セキュリティポリシーや規制要件に対するコンプライアンスを確保する上で重要です。
企業や組織は、ログを監査し、セキュリティに関連する要件を満たしているかどうかを確認します。
リスク
セキュリティリスク
RADIUSのセキュリティリスクには以下のようなものがあります:
- 共有鍵の漏洩: RADIUSでは通信データを共有鍵によって暗号化しますが、共有鍵が漏洩すると、第三者による通信の傍受や解読が可能になります。共有鍵はサーバーやクライアント間で事前に共有されるため、その管理には細心の注意が必要です。
- 不正アクセス: 不正なユーザーが共有鍵を入手したり、ネットワークに不正にアクセスしたりすることで、セキュリティを脅かす可能性があります。共有鍵を保護するために、強固な鍵管理が必要です。
- Denial of Service (DoS)攻撃: RADIUSサーバーに対して大量のリクエストを送信し続けるDoS攻撃が行われると、サービス提供が妨げられ、正規のユーザーがサービスにアクセスできなくなる可能性があります。
- セキュリティパッチの欠如: RADIUSサーバーやクライアントのソフトウェアにセキュリティパッチが欠如している場合、既知の脆弱性を攻撃者が悪用するリスクがあります。適切なセキュリティアップデートの適用が必要です。
- 認証情報の漏洩: RADIUSはユーザー名とパスワードなどの認証情報を送信するため、これらの情報が傍受されると、不正なアクセスやユーザーアカウントへの侵入などが可能になります。EAP-TLSなどの強力な認証方式の使用が推奨されます。
- ユーザー管理の脆弱性: RADIUSサーバーにおけるユーザー情報の管理が甘い場合、無効なユーザーアカウントや不要なアクセス権限が残っている可能性があります。これにより、不正なユーザーによるアクセスが許可されるリスクが生じます。
これらのセキュリティリスクを軽減するために、以下の対策を意識してください。
- 強力な共有鍵の使用と適切な鍵管理の実施
- セキュリティパッチの定期的な適用とシステムの最新化
- DoS攻撃対策とトラフィックの監視
- 二要素認証やEAP-TLSのような強力な認証方式の導入
- ユーザー管理の徹底とアクセス権の適切な管理
セキュリティリスクを理解し、適切な対策を講じることで、RADIUSベースのネットワークセキュリティを向上させることができます。
冗長性と可用性
RADIUSは中央集中型の認証サーバーです。
すべてのユーザーの認証やアクセス制御は、このRADIUSサーバーを介して行われます。
そのため、RADIUSサーバーに障害が発生すると、全てのユーザーがネットワークに接続できなくなる場合があります。
もしRADIUSサーバーが単一障害点となる場合、冗長性が不足しています。障害に備えたバックアップサーバーが存在しないことはリスクです。
このリスクを軽減するためには、以下のような対策が有効です。
- 冗長性の導入: 複数のRADIUSサーバーを設置し、冗長性を確保します。障害が発生した場合でも、他のサーバーが引き継ぐことでネットワークの運用を継続できます。
- フェイルオーバーの実施: フェイルオーバー機能を導入し、障害が検知された場合に自動的にバックアップサーバーに切り替えることで、可用性を向上させます。
拡張性
スケーラビリティの課題として、大規模なネットワークにおいては、RADIUSサーバーの負荷が高くなる場合があります。
特にユーザー数やデバイス数が急増した場合、RADIUSサーバーの高負荷によりパフォーマンスが低下することがあります。
クライアント数やトラフィック量の増加に対応するためには、適切なスケーラビリティ対策が必要です。
対策例として、ロードバランサーを使用して複数のRADIUSサーバーにトラフィックを均等に分散させることで、負荷分散を実現します。
まとめ
この記事では、RADIUS認証の仕組みについてご説明しました。
RADIUSは一般のスマホユーザーに限らず、オフィスのWi-Fi環境や大規模ネットワークでも使用される仕組み。
インフラエンジニアとして、しっかりと理解しておきたい技術です。