RSS

CAS認証について

どこぞで使っているCAS(Central Authentication Service)認証を使ったサービスをちょっと使ったので前から気になっていることをまとめて書く。

  • クライアントとアプリケーションの参照しているDNSが両方乗っ取らられたら死ぬよね。認証サーバが変なとこ挿していても気付かない。
  • さてアプリ側のDNSのみ乗っ取られたとする。偽CASサーバーを立ててアプリ側からそっちを見るようにする。偽CASサーバーは通常は透過的に本物のCASサーバーに接続させているとする。CASの手続として認証が終わったことにするとGETでチケットをアプリに渡して、アプリはチケットの検証を偽CASに問い合わせる。通常ならチケットは使い捨てのランダムな文字列なので、手動で適当にチケットを生成するなどの横取りは難しい。が、偽CASが偽チケットを許可したらどうなるか…。
  • SSL証明書でサーバーの信頼性を確保?EV SSLじゃなかったら最近のSSL証明書なんてどこまで信用できるのやらという見方もできるよね。大体アプリのコードの中でSSL証明書の検証していますか?
  • さて、この推測に誤りはあるのだろうか?
  • さて、正しいものとして進める。確かにDNSを外部から乗っ取るのは楽ではないかもしれないが、DNSの管理者はアプリの管理者と同一とは限らない中でDNSの信頼性に頼るやりかたでいいのだろうか。脆弱性とはではいかんけどさ。SSL証明書がどこまで信用できるかがポイントかなあ。
  • ところでせっかくのポータル上で動いてないのはなぜだろう。