RADIUS (Remote Authentication Dial In User Service)
「認証」「認可」「アカウンティング」のサーバーでの一元管理を目的とする認証プロトコル。
- 認証(Authentication)
- 利用者が誰であるかを識別すること
- 認可(Authorization)
- 認証済みの利用者に対してサービスを提供するか否かを判断すること
- アカウンティング(Accounting)
- 利用の事実を記録すること
これをしゃべるRADIUSサーバーを利用することで、認証機能と提供するサービスとを分離し、複数のサービスでのユーザー認証を一元化できる。
- 通信ではUDPを使う。
- 共通鍵によるサーバー認証機構と改ざん検知機能を持つ。共通鍵なので鍵の漏洩に注意。
- パケット全体の暗号化はされないみたいだが、パスワードだけは暗号化されるらしい。
- RFC 2865 - 2869あたりで規定されている。
認証の流れ
- クライアントがサービスを提供するサーバーにリクエストを送信
- サービス提供サーバーがRADIUSサーバに「RADIUS要求パケット」を送信。
- RADIUSサーバーが認証を行い、結果をサービス提供サーバーに返す。
Kerberos
認証プロトコルやプログラムを含む認証システムの総称。RADIUSやTACACSでは認証,認可を同じフェーズで行うがKerberosでは2フェーズで行う。(サービスを行うプログラムも別。が、一般的には同じサーバーで運用する場合が多い。)
- AS
- 認証を行うサーバー
- TGS
- 認可を行うサーバー
→あわせてKDC (Key Distribution Center)とよぶ。
認証の流れ
- クライアントがASにTGT(Ticket Getting Ticket)を要求(ユーザー名、パスワードもこのとき渡す。)
- ASは認証を行い、認証できた場合、TGTを発行。
- 返されるTGTは以下の情報を含む
- TGST 信用証明書。クレデンシャルと呼ばれる。
- TGSキー クライアントがTGSとやり取りする際に使用する暗号化鍵
- ASキー クライアントがASとやり取りする際に使用する暗号化鍵。いらんのでは?
- このやり取りは共通鍵で暗号化される。(クライアント/ASサーバーで同じ鍵を事前に登録しておく。)
- クライアントはクレデンシャルと利用したいサービスの情報をTGSに送付
- TGSは認可を行い、問題がなければ以下を返す
- ST サービスの利用許可証明(TGSとサービスサーバーで使う鍵で暗号化されている。クライアントは複合できない)
- Sキー クライアントがサービスサーバーとやり取りする際に使用する暗号化鍵。
- このやり取りは、2でかえされたTGSキーを用いて暗号化される。
- クライアントはSTとユーザー名、IPアドレスなどをサービスサーバー送付し、利用を開始する。
参考: