Enviar búsqueda
Cargar
OAuth 2.0 MAC Authentication
•
2 recomendaciones
•
1,912 vistas
Ryo Ito
Seguir
Tecnología
Educación
Denunciar
Compartir
Denunciar
Compartir
1 de 27
Recomendados
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
CODE BLUE
SSH力をつけよう
SSH力をつけよう
(^-^) togakushi
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
Ryo Ito
MongoDB勉強会資料
MongoDB勉強会資料
Hiromune Shishido
Community cloud運用開発の基礎
Community cloud運用開発の基礎
Salesforce Developers Japan
YAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID Connect
Ryo Ito
PIC RoR Heroku
PIC RoR Heroku
mgwsuzuki
OpenStack Study#9 JOSUG
OpenStack Study#9 JOSUG
Hideki Saito
Recomendados
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
CODE BLUE
SSH力をつけよう
SSH力をつけよう
(^-^) togakushi
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
Ryo Ito
MongoDB勉強会資料
MongoDB勉強会資料
Hiromune Shishido
Community cloud運用開発の基礎
Community cloud運用開発の基礎
Salesforce Developers Japan
YAPC::Tokyo 2013 ritou OpenID Connect
YAPC::Tokyo 2013 ritou OpenID Connect
Ryo Ito
PIC RoR Heroku
PIC RoR Heroku
mgwsuzuki
OpenStack Study#9 JOSUG
OpenStack Study#9 JOSUG
Hideki Saito
OSS開発勉強会
OSS開発勉強会
Kohei KaiGai
ログ管理のベストプラクティス
ログ管理のベストプラクティス
Akihiro Kuwano
後期02
後期02
Takenori Nakagawa
Status 425 HTTP/Tokyo
Status 425 HTTP/Tokyo
yuki-f
OpenStack API
OpenStack API
Akira Yoshiyama
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
Hiroshi Oyamada
Couchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 Omoidenote
kitsugi
OAuth Echo の Rails Gem
OAuth Echo の Rails Gem
Toru Kawamura
Web packaging IETF 側
Web packaging IETF 側
yuki-f
OAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリ
Kenji Otsuka
クラウドインターネットルータ
クラウドインターネットルータ
Yasuhito Takamiya
Beginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_study
ikeyat
20120423 hbase勉強会
20120423 hbase勉強会
Toshiaki Toyama
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Toru Yamaguchi
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Panda Yamaki
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
Web基礎
Web基礎
stx_kata
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
y_taka_23
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらインターネット株式会社
Akka HTTP
Akka HTTP
TanUkkii
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
Ryo Ito
idcon mini vol3 CovertRedirect
idcon mini vol3 CovertRedirect
Ryo Ito
Más contenido relacionado
Similar a OAuth 2.0 MAC Authentication
OSS開発勉強会
OSS開発勉強会
Kohei KaiGai
ログ管理のベストプラクティス
ログ管理のベストプラクティス
Akihiro Kuwano
後期02
後期02
Takenori Nakagawa
Status 425 HTTP/Tokyo
Status 425 HTTP/Tokyo
yuki-f
OpenStack API
OpenStack API
Akira Yoshiyama
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
Hiroshi Oyamada
Couchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 Omoidenote
kitsugi
OAuth Echo の Rails Gem
OAuth Echo の Rails Gem
Toru Kawamura
Web packaging IETF 側
Web packaging IETF 側
yuki-f
OAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリ
Kenji Otsuka
クラウドインターネットルータ
クラウドインターネットルータ
Yasuhito Takamiya
Beginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_study
ikeyat
20120423 hbase勉強会
20120423 hbase勉強会
Toshiaki Toyama
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Toru Yamaguchi
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Panda Yamaki
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
Web基礎
Web基礎
stx_kata
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
y_taka_23
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらインターネット株式会社
Akka HTTP
Akka HTTP
TanUkkii
Similar a OAuth 2.0 MAC Authentication
(20)
OSS開発勉強会
OSS開発勉強会
ログ管理のベストプラクティス
ログ管理のベストプラクティス
後期02
後期02
Status 425 HTTP/Tokyo
Status 425 HTTP/Tokyo
OpenStack API
OpenStack API
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
Couchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 Omoidenote
OAuth Echo の Rails Gem
OAuth Echo の Rails Gem
Web packaging IETF 側
Web packaging IETF 側
OAuth 2.0 と ライブラリ
OAuth 2.0 と ライブラリ
クラウドインターネットルータ
クラウドインターネットルータ
Beginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_study
20120423 hbase勉強会
20120423 hbase勉強会
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Web基礎
Web基礎
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
さくらのDockerコンテナホスティング-Arukasの解説とインフラを支える技術(July Tech Festa 2016 『IoTxAIxインフラ時代...
Akka HTTP
Akka HTTP
Más de Ryo Ito
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
Ryo Ito
idcon mini vol3 CovertRedirect
idcon mini vol3 CovertRedirect
Ryo Ito
OpenID-TechNight-11-LT-mixi
OpenID-TechNight-11-LT-mixi
Ryo Ito
Idcon 17th ritou OAuth 2.0 CSRF Protection
Idcon 17th ritou OAuth 2.0 CSRF Protection
Ryo Ito
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
Ryo Ito
#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth
Ryo Ito
Open id connect claims idcon mini vol1
Open id connect claims idcon mini vol1
Ryo Ito
OID to OIDC idcon mini vol1
OID to OIDC idcon mini vol1
Ryo Ito
Account Chooser idcon mini Vol.1
Account Chooser idcon mini Vol.1
Ryo Ito
BackplaneProtocol超入門
BackplaneProtocol超入門
Ryo Ito
UserManagedAccess_idcon13
UserManagedAccess_idcon13
Ryo Ito
WebIntents × SNS
WebIntents × SNS
Ryo Ito
Idcon11 implicit demo
Idcon11 implicit demo
Ryo Ito
OpenID_Connect_Spec_Demo
OpenID_Connect_Spec_Demo
Ryo Ito
OAuth 2.0 Dance School #swj
OAuth 2.0 Dance School #swj
Ryo Ito
Ritou idcon7
Ritou idcon7
Ryo Ito
Summary of OAuth 2.0 draft 8 memo
Summary of OAuth 2.0 draft 8 memo
Ryo Ito
Introduction of OAuth 2.0 vol.1
Introduction of OAuth 2.0 vol.1
Ryo Ito
0905xx Hybrid Memo
0905xx Hybrid Memo
Ryo Ito
Anonymous OAuth Test
Anonymous OAuth Test
Ryo Ito
Más de Ryo Ito
(20)
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
安全な"○○でログイン"の作り方 @ NDS in Niigata #1
idcon mini vol3 CovertRedirect
idcon mini vol3 CovertRedirect
OpenID-TechNight-11-LT-mixi
OpenID-TechNight-11-LT-mixi
Idcon 17th ritou OAuth 2.0 CSRF Protection
Idcon 17th ritou OAuth 2.0 CSRF Protection
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth
Open id connect claims idcon mini vol1
Open id connect claims idcon mini vol1
OID to OIDC idcon mini vol1
OID to OIDC idcon mini vol1
Account Chooser idcon mini Vol.1
Account Chooser idcon mini Vol.1
BackplaneProtocol超入門
BackplaneProtocol超入門
UserManagedAccess_idcon13
UserManagedAccess_idcon13
WebIntents × SNS
WebIntents × SNS
Idcon11 implicit demo
Idcon11 implicit demo
OpenID_Connect_Spec_Demo
OpenID_Connect_Spec_Demo
OAuth 2.0 Dance School #swj
OAuth 2.0 Dance School #swj
Ritou idcon7
Ritou idcon7
Summary of OAuth 2.0 draft 8 memo
Summary of OAuth 2.0 draft 8 memo
Introduction of OAuth 2.0 vol.1
Introduction of OAuth 2.0 vol.1
0905xx Hybrid Memo
0905xx Hybrid Memo
Anonymous OAuth Test
Anonymous OAuth Test
Último
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Último
(12)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
OAuth 2.0 MAC Authentication
1.
OAuth 2.0 draft
12で出てきた MAC Authenticationとは @ritou http://twitter.com/ritou http://d.hatena.ne.jp/ritou/
2.
OAuth 2.0 draft
12の説明 • http://tools.ietf.org/html/draft-ietf-oauth-v2-12 • Clientは、Access Tokenを用いて protected resourcesにアクセスする • Access Tokenの使用方法はAuthZ Server から発行されたAccess TokenのTypeに依 存する – Token Type “mac” はなんとかかんとか ↑これ気になるので調べる 2
3.
HTTP Authentication:
MAC Authentication • 2011/1/30時点 – http://tools.ietf.org/html/draft-hammer-oauth- v2-mac-token-02 3
4.
一言で言うと • Access Token,Secret,MACアルゴリズム
を使った署名付きHTTPリクエストの作り方! 4
5.
Example • とりあえずどんな感じで使われるのか、流れ
を見てみる 5
6.
Example(1) • こんな感じで何も考えずリソースアクセス GET
/resource/1?b=1&a=2 HTTP/1.1 Host: example.com • 結果は、エラー! HTTP/1.1 401 Unauthorized WWW-Authenticate: MAC realm="example" Date: Thu, 02 Dec 2010 21:39:45 GMT 6
7.
Example(2) • 実は事前にToken Credentialのセットを持
っていた Access Token: h480djs93hd8 Token Secret: 489dks293j39 MAC Algorithm: hmac-sha-1 • HTTPリクエストを作るために、以下の2つの 値を計算する Timestamp: 137131200 Nonce: dj83hs9s 7
8.
Example(3) • 署名を作るために正規化 h480djs93hd8
137131200 dj83hs9s GET example.com 80 /resource/1 a=2 b=1 8
9.
Example(4) • Token SecretとMAC
algorithmで指定さ れた方法で署名を作成 YTVjyNSujYs1WsDurFnvFi4JK6o= 9
10.
Example(5) • HTTP Authorization
Headerにいろいろと 詰め込んでHTTP Requestを作成 GET /resource/1 HTTP/1.1 Host: example.com Authorization: MAC token="h480djs93hd8", timestamp="137131200", nonce="dj83hs9s", signature="YTVjyNSujYs1WsDurFnvFi4JK6o=" 10
11.
Example終わり • OAuth 1.0系でおなじみの署名作成+AuthZ
Header作成処理に似ている – 1.0系では、全てのリソースアクセスにClient CredentialとToken Credentialの両方が必要 なのでScaleしないとか言われていた – この仕様ではToken Credentialのみで署名を 作成するイメージ 11
12.
ざっくり内容まとめ • Issuing MAC
Credentials • The "Authorization" Request Header • Body Hash • Signature • Verifying Requests • Use with OAuth 2.0 • Security Considerations • IANA Considerations 12
13.
Issuing MAC Credentials •
必要な値はこちら – access token • この説明は省略! – secret • 共有秘密鍵って感じの値 – algorithm • 署名計算に利用するMAC algorithm • “hmac-sha-1”, “hmac-sha-256“もしくは登録され たもの(まだこのへん未定義) 13
14.
The "Authorization" Request
Header • AuthZ Headerのフォーマット credentials = 'MAC' [ RWS 1#param ] param = access-token / timestamp / nonce / body-hash / signature access-token = 'token' '=' <"> plain-string <"> timestamp = 'timestamp' '=' <"> 1*DIGIT <"> nonce = 'nonce' '=' <"> plain-string <"> body-hash = 'bodyhash' '=' <"> plain-string <"> signature = 'signature' '=' <"> plain-string <"> plain-string = 1*( DIGIT / ALPHA / %x20-21 / %x23-5B / %x5D-7E ) 14
15.
Header attributes •
token : 【必須】 Access Token • timestamp : 【必須】 • nonce : 【必須】ユニークでランダムな文字列 • bodyhash : 【任意】 このあと説明 • signature : 【必須】 署名 15
16.
Body Hash • Requestのentity-bodyのHash値を計算し
たもの bodyhash = BASE64 ( HASH (text) ) – Hash : 指定されたHashアルゴリズム – text : HTTP request entity-body – BASE64 : base64-encoding関数 – bodyhash : AuthZ Headerに指定する値 • OAuth 1.0系でもOAuth Request Body Hashという拡張仕様がある 16
17.
Signature • Normalized Request
String – いわゆるSignature base stringの作成 • hmac-sha-1/hmac-sha-256 – Hash値を計算 17
18.
Normalized Request String •
以下の値を連結 – Access Token – timestamp – nonce – request entity-body hash(任意) – HTTP request method – hostname – port – URI Path – URI query (この詳細は3.3.1.1を見れ!) 18
19.
Parameters Normalization • クエリパラメータの処理
– percent-encodingでエスケープ – Key,valueを=でつなぐ – ascending byte value orderingでソート – 改行コード(ASCII code 10)を使って結合 19
20.
hmac-sha-1/hmac-sha-256 • algorithmにしたがってSignatureを作成 –
hmac-sha-1 digest = HMAC-SHA1 (key, text) – hmac-sha-256 digest = HMAC-SHA256 (key, text) 20
21.
Verifying Requests • Resource
Server側の検証処理 1. bodyhash, signatureの再計算を行い、 Requestの値と比較 2. timestamp,nonce,access tokenの検証 3. access tokenのscopeとstatusの確認 • 検証に失敗した場合は、HTTP 401(unauthorized)を返すべき 21
22.
The "WWW-Authenticate"
Response Header Field • レスポンスのフォーマット challenge = "MAC" [ RWS 1#param ] param = realm / error / auth-param error = "error" "=" quoted-string – サンプル HTTP/1.1 401 Unauthorized WWW-Authenticate: MAC realm="example“ HTTP/1.1 401 Unauthorized WWW-Authenticate: MAC realm="example" error="The access token expired" 22
23.
Use with OAuth
2.0 • この仕様は、OAuth 2.0のMAC Token Typeを定める • ただし、以下についてはこの仕様で定めない – MAC TypeのTokenの要求方法 – どのHMACアルゴリズムをサポートしているか等 のDiscovery機能 23
24.
Issuing MAC-Type Access
Tokens • とりあえず、Access Tokenと一緒に以下の 値が必要 – secret : 共有秘密鍵 – algorithm : hmac-sha-1, hmac-sha-256もし くは今後登録されるアルゴリズム 24
25.
IANA Considerations • 下記のAccess
Token TypeをRegistryに登 録する – “mac” • 下記のパラメータをRegistryに登録する – “secret” – “algorithm” 登録ってめんどいね。。。 25
26.
そういえば • OAuth 2.0では、当初からSecretを必要とし
ないbearer tokenの形式を利用することが 提案されたが、”やっぱり署名も必要なんじゃ ねーの?”という意見もあった – これを使うと、HTTP Requestが”正しいToken Credentialの持ち主”によって作られたことを確 認できる と思われる 26
27.
終わり • 続きはまたブログで! http://d.hatena.ne.jp/ritou/
27