# Kerberos ## 概要 Kerberosは、Needham-Schroederプロトコルの最も重要な実用的派生であり、MITで生まれ、現在はWindowsとLinuxの基本的な認証機構の一部としてローカルエリアネットワーク上でのリソース共有に使われている、分散アクセス制御システムである。単一の信頼できる第三者ではなく、利用者がログインする**認証サーバ**と、ファイルなどのリソースへのアクセスを許可する**チケット発行サーバ**の二種類を持ち、これによってスケーラブルなアクセス管理を実現する(大学であれば認証を学寮単位、リソース管理を学部単位で分離できるなど)。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 4 Protocols]] ch.4 §4.7.4) プロトコルの流れは、AliceがパスワードでログインしKAS を得たのち、チケット発行サーバSに `A → S: A, B` でリソースBへのアクセスを要求し、Sが `{TS, L, KAB, B, {TS, L, KAB, A}KBS}KAS` を返す。Aliceはこのチケットをそのままリソースへ提示し(`A → B: {TS, L, KAB, A}KBS, {A, TA}KAB`)、リソースはタイムスタンプを1加算して返すことで鍵`KAB`の所持を証明する(`B → A: {TA + 1}KAB`)。Needham-Schroederが抱えていた「Bobが鍵の鮮度を検証できない」という問題は、ノンスの代わりにタイムスタンプ`TS`と有効期間`L`を使うことで解決されている。ただしこれは新たにクロック同期という脆弱性を持ち込み、クライアントとサーバの時計が意図的・非意図的にずれることが攻撃の糸口になりうる。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 4 Protocols]] ch.4 §4.7.4) KerberosはSが信頼される第三者(TTP)であるプロトコルであり、令状を持った当局がSamに接触すれば鍵を渡させて通信を読むことができるという性質を持つ。1990年代の「暗号戦争」ではこの性質が好まれたと本章は指摘する。類似の委譲プロトコルとしてOAuthが挙げられ、ユーザー認証専用に用途を絞ったプロファイルがOpenID Connectである。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 4 Protocols]] ch.4 §4.7.4) ## 関連 - 概念: [[鍵配送プロトコル]](Needham-Schroederとの関係、TTP性の議論) - 実体: [[Michael D. Schroeder]](Needham-Schroederプロトコルの共同考案者) ## 出典 - Ross Anderson, *Security Engineering: A Guide to Building Dependable Distributed Systems*, 3rd Edition, John Wiley & Sons, 2020, Chapter 4, §4.7.4.