2014/02/13 デブサミ2014【13-C-5】これからのネイティブアプリにおけるOpenID Connectの活用 #devsumiC

Developers Summit 2014 Story http://event.shoeisha.jp/devsumi/20140213/ <講演概要> 近年モバイルアプリケーションの多くはログインを必須としています。自社他社提供のWeb APIの利用にあたりクライアントサイド、サーバーサイドのそれぞれにおいて認証の仕組みを理解し、正しい認証の実装が求められます。 続きを読む
1
Developers Summit(デブサミ)🏔 翔泳社 CodeZine主催エンジニアイベント @devsumi

#devsumi [デブサミ2014]ハッシュタグのお知らせ ■全体 #devsumi ■セッション:部屋別ハッシュダグになります A会場:#devsumiA /B会場:#devsumiB / C会場:#devsumiC... http://t.co/NpAvIVR6AO

2014-02-10 20:00:50
Developers Summit(デブサミ)🏔 翔泳社 CodeZine主催エンジニアイベント @devsumi

#devsumi いよいよ明日は、デブサミ2014です。開演間際になりますと大変混み合いますので、混雑緩和のため、9:30来場を目指して頂けると助かります!ご来場お待ちしております!!... http://t.co/UxAf0eQ9Yu

2014-02-12 19:38:21
Nao YAMAMOTO @natsu_nanana

個人的、本日のメインのセッション聞きにきております〜。 #devsumiC

2014-02-13 15:14:26
Kaoru Maeda 前田 薫 @mad_p

#devsumiC 「これからのネイティブアプリにおけるOpenID Connectの活用」

2014-02-13 15:15:17
Kaoru Maeda 前田 薫 @mad_p

ID厨: ID技術を専門とするエンジニアのこと #devsumiC

2014-02-13 15:16:45
Nao YAMAMOTO @natsu_nanana

ID厨知っている人ってあまりいないのか・・・。#devsumiC

2014-02-13 15:18:31
Kosuke Ogawa🏝エンジニア @koogawa

#devsumiC 「これからのネイティブアプリにおけるOpenID Connectの活用」はじまりました http://t.co/5xE4dMvxnE

2014-02-13 15:18:43
拡大
Kaoru Maeda 前田 薫 @mad_p

FBデベロッパーサイトにあるlyftもFBログインを使っている 他にも4sq、GunosyもFBログインを活用 #devsumiC

2014-02-13 15:21:50
osamu @osamunmun

Implicit Flow の話し。ここでいうYour Appというのはネイティブアプリのことじゃないのかな #devsumiC

2014-02-13 15:22:23
Kaoru Maeda 前田 薫 @mad_p

OAuth 2.0 Implicit flow fronpage → OAuth Dialog → ユーザーの承認 → access token → custom URL → /me?access_token=... → ユーザーデータ #devsumiC

2014-02-13 15:23:18
Shinichi Tomita @stomita

#devsumiC FBでのログイン、OAuth2 Implicit フロー使われる。<== でもだいたいSDK使うよねえ

2014-02-13 15:23:22
Kaoru Maeda 前田 薫 @mad_p

バックエンドにサーバーを持っている場合、トークン置き換え攻撃の脆弱性が発生しやすい #devsumiC

2014-02-13 15:23:25
Shinichi Tomita @stomita

#devsumiC Implicit使ってサーバ側認証すると置き換え攻撃される話

2014-02-13 15:24:55
osamu @osamunmun

ID Token: ピリオドで区切られ、Base64でエンコードされた文字列。JSONObject(ヘッダー部、ペイロード部)、署名という構成。#devsumiC

2014-02-13 15:26:57
Kaoru Maeda 前田 薫 @mad_p

アプリからバックエンドサーバーにトークンを送る -- バックエンドサーバーが /me をたたく -- アプリのふりをして別のトークンをバックエンドに送る者がいると、他人の権限でアプリが使えてしまう #devsumiC

2014-02-13 15:27:15
Kaoru Maeda 前田 薫 @mad_p

audience restrictionをちゃんとしていないと攻撃が成立してしまう -- id_tokenを使えばいい #devsumiC

2014-02-13 15:27:32
Kaoru Maeda 前田 薫 @mad_p

id_token: JWT(JSON Web Token、ジョット) -- 「.」で区切られた3つの部分。それぞれbase64urlエンコードされたJSON -- ヘッダー部、ペイロード部、署名部 #devsumiC

2014-02-13 15:27:55
Kaoru Maeda 前田 薫 @mad_p

あ、署名部はJSONじゃないですね #devsumiC

2014-02-13 15:28:15
Kaoru Maeda 前田 薫 @mad_p

id_tokenでわかること -- issuer(iss)がaudience(aud)のためにsubject(sub)を認証する #devsumiC

2014-02-13 15:29:15
紅月さん@がんばらない @koduki

Open Connectのセキュリティの話が参考になる #devsumi #devsumiC

2014-02-13 15:29:38
Kaoru Maeda 前田 薫 @mad_p

リプレイアタックを防ぐためにid_tokenにはnonceが入っている -- nonce: リクエストごとにユニークな文字列。同じ値が2回来たらリプレイされたことがわかる #devsumiC

2014-02-13 15:30:00
Nao YAMAMOTO @natsu_nanana

トークン置き換え攻撃、リプレイアタックはID Tokenを使った対策をする事ができる #devsumiC

2014-02-13 15:30:52
Kaoru Maeda 前田 薫 @mad_p

audienceがちゃんと自分であることを確認すれば置きかえ攻撃されたことがわかる → チェックして拒否 #devsumiC

2014-02-13 15:31:46
Nao YAMAMOTO @natsu_nanana

トークン置き換え攻撃、リプレイアタックという脆弱性を狙った攻撃を知っているってどれくらいいるのだろう? #devsumiC

2014-02-13 15:32:14