技術者が紹介するテクノロジー

【第2回】高機能認証サーバー (FreeRADIUS)

IEEE802.1X

スマートフォンやタブレットなどのスマートデバイスの普及によってモバイルネットワークと共に無線LANの重要性が高まった今、じわじわと注目されてきているのがIEEE802.1X認証です。認証、というキーワードの通り、IEEE802.1XとRADIUSは深い関係にあります。IEEE802.1XとRADIUS、そしてFreeRADIUSの関係を見ていきましょう!

IEEE802.1Xとは

みなさんの身の回りのネットワークはどのように利用開始しますか?おそらく、パソコンとルーターをLANケーブルでつなぐ、と、まるで電化製品と電気コンセントのような感覚でインターネットが利用できる方が多いのではないでしょうか。電気コンセントは、コードをつなぎさえすれば電気を使えるので、電気が盗まれるという事件がまれに話題になることがありますね。同じことがネットワークでも起きてしまいます。これを防止する取り組みがIEEE802.1Xです。ネットワークの利用開始するときに、認証を行い意図しないパソコンや利用者の利用制限が可能です。

無線LANとIEEE802.1X

無線LANには、共有鍵(PSK)によって利用者を制限する機構があるので、不要に思えるかもしれません。個人での利用であれば、その役割を果たす場面も多いと思います。では、ビジネスではどうかというと、複数台のAPを構築することや、組織での管理という点でPSKでは不満があることもあります。実は、無線LANの暗号化方式WPAにはパーソナルやエンタープライズと名付けられたモードがあります。パーソナルはPSK、エンタープライズはIEEE802.1Xをベースとした認証を行います。こんなところからも、ビジネスの場では認証が必要と認識されていると考えることができるのではないでしょうか。

認証の方法

表 主な認証の方法
認証の種類 認証サーバーの正当性 利用者の正当性 FreeRADIUSの対応
EAP-TLS 証明書 証明書
EEAP-PEAP
EAP-TTLS
など
証明書 認証ID
パスワード

では、単に認証といっても何をするのでしょうか?
RADIUSでの認証、というと認証IDとパスワードの組み合わせがすぐに想像できますが、IEEE802.1Xでは証明書での認証が考慮され、利用者だけでなく認証サーバーの正当性も確認することができます。
EAP-TLSは認証サーバー、利用者の両方に証明書が必要な方式です。認証IDやパスワードは不要で、証明書だけで認証が可能です。利用者にも証明書が必要なため、利用準備の難易度は高めです。EAP-PEAP(TTLS)は、利用者は従来通り認証IDとパスワードで認証を行うことができます。どちらの方式も、端末によってはサーバーの証明書の正当性確認をしないことを選択可能であり、その場合は利用者の認証だけを有効にすることができます。 FreeRAIDUSは、EAP-TLS、EAP-PEAPの認証が行うことが可能です。初期設定で自己署名の証明書をサーバーに設定しており、動作の確認だけならすぐに利用が可能です。

RADIUSとIEEE802.1X

IEEE802.1Xは有線や無線でのLAN接続を行う際の認証を取り決めています。RADIUSとIEEE802.1Xの関係は、その認証にEAPとRADIUSを想定していることから始まります。EAPとRADIUSは直接的な互換性はありませんので、スイッチやアクセスポイント(以下、アクセスポイントで統一)はEAPとRADIUSの変換機のような働きをします。アクセスポイントとRADIUSサーバーを別個に、複数のアクセスポイントからの認証を集中管理できます。それだけでなく、RADIUSにはアカウンティングがあるため、いつからいつまで利用したというようなアクセスログの取得が可能である点も魅力の1つと言えます。

RADIUSとEAP

RADIUSパケットとEAPデータに互換性をもたせるために、RADIUSパケットにEAPデータを格納するEAP-Messageというアトリビュートがあります。Message-Authenticatorは改ざん検知などに必要で、EAP-Messageを利用する場合は必ず付与しなければなりません。EAP-MessageはあくまでRADIUSアトリビュートですので、253バイトまでしかデータを格納することはできません。そこで、証明書などの大きなEAPデータを格納する場合には、EAPデータを複数のEAP-Messageに分割します。RADIUSサーバーはEAP-Messageを結合して、元のEAPデータを得ることでやり取りを継続します。

EAP-Messageには証明書など平文で格納されるデータがある一方、認証IDやパスワードなど盗聴されてはならないデータを暗号化して格納します。クライアントとRADIUS認証サーバーが直接SSL通信を行う形となり、RADIUS転送サーバーなどが平文を知ることができません。特筆すべきは、RADIUS認証サーバーとしてはUser-Nameが2つあることです。暗号化されていないUser-Nameは一時的に利用される認証IDです。特に、RADIUS転送サーバーで転送先のRADIUSサーバーを特定のために利用されることがあります。一方、暗号化されているUser-NameはRADIUS認証サーバーで、認証対象として扱われる認証IDになります。

FreeRADIUSとEAP

FreeRADIUSでは、EAPに対応するための機能がモジュールとして準備されており、このモジュールが入り口となって、ハンドシェイクや証明書の交換、認証機能の呼び出しを行います。EAPは従来の認証要求と認証許可・拒否の1度のやりとりで認証が完結しないため、通常のPAPやCHAPとは違った動き、制限事項があります。Stateアトリビュートを利用して、前回の認証要求を結びつけて認証を進めるため、Stateアトリビュートを返答しないアクセスポイントではFreeRADIUSではEAPを利用できません。また、複数のCA証明書(CA局)やサーバー証明書を使い分ける場合も、さまざまな工夫が必要となります。

おわりに

普段なじみのうすいIEEE802.1Xという視点からRADIUS、FreeRADIUSを見てみました。前回と異なりかなり複雑になってしまったと感じましたが、皆さまはいかがでしたでしょうか?
このような複雑になりがちなサービスも、お客さまに安心して、分かりやすく、そして便利だと感じてもらえるように、日々構築に取り組んでまいります。

page top