Kerberos認証ってなんであんなに流れが面倒くさいんですか? 何か省略できるステップってないんですか? |
|
|
正直な感覚として「面倒くさい」はその通りです。 ただしあの手順は無駄に複雑なのではなく、それぞれが明確な攻撃対策を担っているので、安易に削ると一気に弱くなります。 まず全体像をシンプルに言い直すと、Kerberosは なぜあの流れになるのか(本質)Kerberosが守りたいのは主にこの4つです:
そのためにやっていることは3段階です:
この分離が「面倒くささ」の正体です。 各ステップの意味(削ると何が壊れるか)① AS(ログイン時)
ここを省略すると: ② TGT(チケットの中核)
これがあることで: これを省くと: ③ TGS(サービスごとのチケット発行)
これが重要で:
もし省略して:
→ 1つ漏れたら全サービス侵害 ④ Authenticator(タイムスタンプ付き)
これがないと: → リプレイ攻撃が成立 (昔のチケットをそのまま再送される) なぜこんなに分割されているのか一言で言うと:
を全部まとめるとシンプルにはなりますが、 → どこか1箇所破られると全部終わる Kerberosは逆に: → 一部が漏れても被害を限定する設計 です。 「省略できるか?」への現実的な答え理論的には多少簡略化したバリエーションは作れますが:
のどれかを必ず引き換えにします。 実務的には「省略」はせずにこうしています:
つまり:
他方式との比較で見ると分かりやすいシンプルな方式(例:Basic認証)
トークン方式(JWTなど)
Kerberos
本質的な結論Kerberosの複雑さは:
です。 直感的なたとえKerberosはこんな感じです:
確かに面倒ですが、 → 1枚のマスターキーだけにすると一瞬で破綻する |
|
|

この記事へのコメント