シングルサインオンを 図で理解する - osaka city...
TRANSCRIPT
シングルサインオンを 図で理解する
2010-‐11-‐17
勘合符
• 義満の時代 商人のオレオレ公認を防いだ。
朱印船とか。
h(p://www2.airnet.ne.jp/shibucho/kangou.html
3者間での認証
依頼人
認証局
提供者
3者間での認証
依頼人
認証局
提供者
私は公認のTakuyaです。 ID=hogehogeです。
3者間での認証
依頼人
認証局
提供者
私は公認のTakuyaです。 本人確認ID=1AE13B109です。
Takuyaさんで方で ID=1AE13B109は居ますか。
3者間での認証
依頼人
認証局
提供者
居ますね。 本人確認IDも一致しています。
3者間での認証
依頼人
認証局
提供者
Takuyaさん、ようこそ 受けたいサービスは何ですか
シングルサインオン
依頼人 ブラウザ
認証局 (SSOサーバ)
提供者 (WEBアプリ)
Cookie: ID=1234,Secret=12AE23609
ID/PW ID/Cookie このCookieに見覚えある?
Cookie
シングルサインオン (証明書)
依頼人 ブラウザ
認証局 (CAサーバ)
提供者 (WEBアプリ)
証明書(署名済み)
署名した? 署名して?
ルート証明書 ルート証明書
OpenID
依頼人 ブラウザ
認証局 (OpProvider)
提供者 (WEBアプリ) /login.php?
ID=1234&Secret=12AE23609
ID/Secretに署名した?
ID/Secret に署名して
OpenID もうちょっと詳しく
依頼人 ブラウザ
認証局 (OpProvider)
提供者 (WEBアプリ)
/login.php?ID=1234&Secret=12AE23609
ID/Secretに署名した?
Secret に署名して
h(p://mixi.jp/fooの持ち主です
Secretに署名貰ってきて
貰いました
TLS/SSL (逆)
依頼人 ブラウザ
認証局 (CA)
提供者 (WEBアプリ)
ルート証明書 ルート証明書
通信したいです
私はサーバーAです。
署名して? 署名した?
TLS/SSL (オレオレ認証局)
依頼人 ブラウザ
認証局 (CA)
提供者 (WEBアプリ)
ルート証明書
通信したいです
私はサーバーAです。
署名して?
CAどこ・・・
AcYveDirectory (Kerberos)
依頼人 ユーザー
認証局 (KDS)
提供者 Windows
Cookie/GET により実装されるべき
依頼人 ブラウザ
認証局 (SSOサーバ)
提供者 (WEBアプリ)
Cookie: ID=1234,Secret=12AE23609
ID/PW ID/Cookie このCookieに見覚えある?
Cookie
シングルサインオンの実態A
依頼人 ブラウザ
認証局 (SSOサーバ)
提供者 (WEBアプリ)
セッションDB
HTTPやAPIでなくデータベースを共有している
シングルサインオンの実態B
依頼人 ブラウザ
認証局 (SSOサーバ)
提供者 (WEBアプリ)
セッションDB
SSOサーバーがレイヤ7スイッチを兼ねている
第三者が介在する
• 事前に共有するもの – ルート証明書
– パスワード(平文) – パスワード(ハッシュ)
• ユーザーID – 証明書(署名済み) – ユーザー自身による宣言 • ID,URL
セッションハイジャック
依頼人 ブラウザ
認証局 (SSOサーバ)
提供者 (WEBアプリ)
攻撃者 (WEBアプリ)
傍受
ID/PWを保存する
依頼人 ブラウザ
認証局 (SSOサーバ)
提供者 (WEBアプリ)
サードパーティ (WEBアプリ)
ID/PW
ID/PW
OAuth • 認証にも使えるが認証だけでない。 • APIで認証連携を実現するには、これ以外に無い
依頼人 ブラウザ
認証局 (oAuthサーバ)
データ提供者 (WEBアプリ)
ソフトウェア (携帯端末)
アクセス権限の委譲
キー
ID/PW
認証といえない
• 簡単ログイン • Basic認証
• 非・暗号化Cookie – セッションCookie発行用Cookie
DoCoMoの端末ID (簡単ログイン)
依頼人 ブラウザ
認証局 (SSOサーバ)
提供者 (WEBアプリ)
端末から提示されたIDを検証するすべを持たない。
ハードウェア的に担保されていた (DoCoMoのIPアドレスで自由にIDを設定することは出来ない。 殆どの人が出来なかった。一部の人は可能だった。 現在は破綻(アンドロイド端末があるため)
共有してるもの
端末-‐認証局 サーバ-‐認証局 検証方法 認証後
SSO パスワード ドメインCookie ドメインCookieを元に問い合わせ
セッションCookie
TLS/SSL ルート証明書 ルート証明書 署名検証 セッションCookie/ 証明書
OpenID パスワード Id=URL
独自ハッシュ Id=URL
ハッシュに署名した値を検証
セッションCookie
DoCoMo i-‐mode
SIMカード 無し Ipアドレス SIMカードによる端末ID