Submit Search
Upload
Password security 2
•
Download as ODP, PDF
•
2 likes
•
1,064 views
Joe_noh
Follow
パスワード認証に関すること その2 メインは"Security through Obesity" 一部の英数字フォントが意図しないものになってしまった
Read less
Read more
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 22
Download now
Recommended
研修中の課題で作成したPPTになります。
課題発表 HPに到達するまでの仕組み
課題発表 HPに到達するまでの仕組み
ryota_suganuma
2018/9/3 aajug vol2 オフライン
20180903_apply_alexa_skill_award
20180903_apply_alexa_skill_award
Ayaka Tajiri
なんかあれば修正していきます。
課題発表 HPに到達するまでの仕組み
課題発表 HPに到達するまでの仕組み
ryota_suganuma
2016/10/18 Ginza.rb 第40回 の発表資料です
prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話
ota42y
MMAPv1, WiredTigerについても詳細に説明しています
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
【社内LT】JSあれこれ -読み込み編-
【社内LT】JSあれこれ -読み込み編-
Vitalify.Inc
第72回 PHP勉強会@Engine Yard で発表した資料です。
JSON SchemaとPHP
JSON SchemaとPHP
Hiraku Nakano
PHPカンファレンス2011関西 LT
複数サーバでセッションを共有する冴えたやりかた
複数サーバでセッションを共有する冴えたやりかた
Junpei Nakada
Recommended
研修中の課題で作成したPPTになります。
課題発表 HPに到達するまでの仕組み
課題発表 HPに到達するまでの仕組み
ryota_suganuma
2018/9/3 aajug vol2 オフライン
20180903_apply_alexa_skill_award
20180903_apply_alexa_skill_award
Ayaka Tajiri
なんかあれば修正していきます。
課題発表 HPに到達するまでの仕組み
課題発表 HPに到達するまでの仕組み
ryota_suganuma
2016/10/18 Ginza.rb 第40回 の発表資料です
prmdのドキュメントが読みやすくなる話
prmdのドキュメントが読みやすくなる話
ota42y
MMAPv1, WiredTigerについても詳細に説明しています
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
【社内LT】JSあれこれ -読み込み編-
【社内LT】JSあれこれ -読み込み編-
Vitalify.Inc
第72回 PHP勉強会@Engine Yard で発表した資料です。
JSON SchemaとPHP
JSON SchemaとPHP
Hiraku Nakano
PHPカンファレンス2011関西 LT
複数サーバでセッションを共有する冴えたやりかた
複数サーバでセッションを共有する冴えたやりかた
Junpei Nakada
Rails Developer Meetup 2018 Day 4 Nouvelle Vagueでの発表資料
パフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったこと
Joe_noh
エムスリー tech talk でお話した資料です。
Vue.jsのユニットテスト
Vue.jsのユニットテスト
Joe_noh
第9回 ペパボテックカンファレンスの発表資料です
Vuexと入力フォーム
Vuexと入力フォーム
Joe_noh
GMOペパボ 第1回 EC事業部 TechMTGで使用したスライドです。
カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後
Joe_noh
2016年度GMOペパボ新卒エンジニア研修 サイクルOJTのイントロダクションスライドです
サイクルOJTイントロダクション
サイクルOJTイントロダクション
Joe_noh
2016年度GMOペパボ新卒研修 お産ウィークのイントロダクションスライドです
お産ウィークイントロダクション
お産ウィークイントロダクション
Joe_noh
2016年度GMOペパボ新卒エンジニア研修 モバイルアプリ研修のイントロダクションスライドです
モバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクション
Joe_noh
2016年度GMOペパボ新卒エンジニア研修 Webオペレーション研修のイントロダクションスライドです
Webオペレーション研修イントロダクション
Webオペレーション研修イントロダクション
Joe_noh
2016年度GMOペパボ新卒エンジニア研修 Web開発研修のイントロダクションスライドです
Web開発研修イントロダクション
Web開発研修イントロダクション
Joe_noh
2016年GMOペパボ新卒エンジニア研修で使用した資料です
リーンキャンバス
リーンキャンバス
Joe_noh
GMOペパボ新卒エンジニア研修の座学で使用した資料です。 コンフリクトへの対処方法、revertの方法を説明しました。
もっとgit
もっとgit
Joe_noh
Elixir Meetup #2 でのLT資料。フォント崩れてる
できないことはPortで外注
できないことはPortで外注
Joe_noh
2015/8/25のshibuya.exでのLT資料
DBにseedするライブラリつくった
DBにseedするライブラリつくった
Joe_noh
やってみた -URL外形監視-
やってみた -URL外形監視-
Joe_noh
社内Elixir勉強会 第5回の資料
Elixirだ 第6回
Elixirだ 第6回
Joe_noh
社内Elixir勉強会 第5回の資料
Elixirだ 第5回
Elixirだ 第5回
Joe_noh
社内Elixir勉強会 第4回の資料
Elixirだ 第4回
Elixirだ 第4回
Joe_noh
社内Elixir勉強会 第3回の資料
Elixirだ 第3回
Elixirだ 第3回
Joe_noh
社内Elixir勉強会 第2回の資料
Elixirだ 第2回
Elixirだ 第2回
Joe_noh
福岡支社内Elixir勉強会後半の資料
Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半
Joe_noh
More Related Content
More from Joe_noh
Rails Developer Meetup 2018 Day 4 Nouvelle Vagueでの発表資料
パフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったこと
Joe_noh
エムスリー tech talk でお話した資料です。
Vue.jsのユニットテスト
Vue.jsのユニットテスト
Joe_noh
第9回 ペパボテックカンファレンスの発表資料です
Vuexと入力フォーム
Vuexと入力フォーム
Joe_noh
GMOペパボ 第1回 EC事業部 TechMTGで使用したスライドです。
カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後
Joe_noh
2016年度GMOペパボ新卒エンジニア研修 サイクルOJTのイントロダクションスライドです
サイクルOJTイントロダクション
サイクルOJTイントロダクション
Joe_noh
2016年度GMOペパボ新卒研修 お産ウィークのイントロダクションスライドです
お産ウィークイントロダクション
お産ウィークイントロダクション
Joe_noh
2016年度GMOペパボ新卒エンジニア研修 モバイルアプリ研修のイントロダクションスライドです
モバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクション
Joe_noh
2016年度GMOペパボ新卒エンジニア研修 Webオペレーション研修のイントロダクションスライドです
Webオペレーション研修イントロダクション
Webオペレーション研修イントロダクション
Joe_noh
2016年度GMOペパボ新卒エンジニア研修 Web開発研修のイントロダクションスライドです
Web開発研修イントロダクション
Web開発研修イントロダクション
Joe_noh
2016年GMOペパボ新卒エンジニア研修で使用した資料です
リーンキャンバス
リーンキャンバス
Joe_noh
GMOペパボ新卒エンジニア研修の座学で使用した資料です。 コンフリクトへの対処方法、revertの方法を説明しました。
もっとgit
もっとgit
Joe_noh
Elixir Meetup #2 でのLT資料。フォント崩れてる
できないことはPortで外注
できないことはPortで外注
Joe_noh
2015/8/25のshibuya.exでのLT資料
DBにseedするライブラリつくった
DBにseedするライブラリつくった
Joe_noh
やってみた -URL外形監視-
やってみた -URL外形監視-
Joe_noh
社内Elixir勉強会 第5回の資料
Elixirだ 第6回
Elixirだ 第6回
Joe_noh
社内Elixir勉強会 第5回の資料
Elixirだ 第5回
Elixirだ 第5回
Joe_noh
社内Elixir勉強会 第4回の資料
Elixirだ 第4回
Elixirだ 第4回
Joe_noh
社内Elixir勉強会 第3回の資料
Elixirだ 第3回
Elixirだ 第3回
Joe_noh
社内Elixir勉強会 第2回の資料
Elixirだ 第2回
Elixirだ 第2回
Joe_noh
福岡支社内Elixir勉強会後半の資料
Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半
Joe_noh
More from Joe_noh
(20)
パフォーマンス改善のためにやったこと・やらなかったこと
パフォーマンス改善のためにやったこと・やらなかったこと
Vue.jsのユニットテスト
Vue.jsのユニットテスト
Vuexと入力フォーム
Vuexと入力フォーム
カラーミーAPIドキュメントの今後
カラーミーAPIドキュメントの今後
サイクルOJTイントロダクション
サイクルOJTイントロダクション
お産ウィークイントロダクション
お産ウィークイントロダクション
モバイルアプリ研修イントロダクション
モバイルアプリ研修イントロダクション
Webオペレーション研修イントロダクション
Webオペレーション研修イントロダクション
Web開発研修イントロダクション
Web開発研修イントロダクション
リーンキャンバス
リーンキャンバス
もっとgit
もっとgit
できないことはPortで外注
できないことはPortで外注
DBにseedするライブラリつくった
DBにseedするライブラリつくった
やってみた -URL外形監視-
やってみた -URL外形監視-
Elixirだ 第6回
Elixirだ 第6回
Elixirだ 第5回
Elixirだ 第5回
Elixirだ 第4回
Elixirだ 第4回
Elixirだ 第3回
Elixirだ 第3回
Elixirだ 第2回
Elixirだ 第2回
Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半
Password security 2
1.
パスワード認証の話 2
2.
今日の内容 http://opine.me/a-better-way-to-store-password-hashes/
3.
まずは 前回のおさらい 3
4.
ハッシュ関数(理想) 4
5.
ざっくりパスワード認証 ● 登録 “password” ● Hash 0x14f7de8a ... DB ログイン Hash Match? 5
6.
なぜハッシュ化? ● 一方向性が保証されていれば ➜ DBのデータが流出してもパスワード自体は守られる ● 暗号化と違って ➜ ➜ ● 復号できない 鍵の管理が要らない 運営者もパスワードが分からない ➜ 良からぬ従業員も悪さできない 6
7.
パスワードクラック 7
8.
オンライン攻撃 ● ブルートフォース ➜ ➜ ● 総当たり。力技。ゴリ押し。 あるパスワードを全ユーザに試すのは「逆ブルートフォース」 辞書攻撃 ➜ よくあるパスワード、英単語に当たりをつけて試行する ● Joeアカウント狙い ➜ ユーザ名 =
パスワード 8
9.
オフライン攻撃 ● オンラインとの大きな違い ➜ DBデータは流出済でハッシュ値が見えてる ➜ ハッシュアルゴリズムとかもバレてるかも ● オンライン攻撃と同じ手法も使える ● レインボーテーブル ➜ 膨大な数のハッシュ値を予め計算しておく ➜ GPUとか丸一日ブン回すとド偉い数(10^15とか?)のハッシュ値が作れる ➜ 還元関数とか頭いい 9
10.
対策 10
11.
ソルト+ハッシュ ● 登録 “salt” “salt” 0x14f7de8a ... “password” Hash + “salt” ● DB ログイン + Hash Match? 0x14f7de8a ... 11
12.
有力候補として紹介されてるアルゴリズム ● PBKDF2 ➜ ソルト化ハッシュとかHMACとかストレッチングとか ➜ まとめて色々やってくれるらしい ● bcrypt ➜
Blowfish暗号化を利用 ➜ 入力は72文字(72Byte)までらしい ● scrypt ➜ メモリむしゃむしゃするアルゴリズム ➜ Stronger Key Derivation via Sequential Memory-Hard Functions 12
13.
ここからが 本題 13
14.
ひとことで言うと 防衛 保証 Security through Obesity 〜のために 〜によって 肥満 14
15.
肥満による防衛 15
16.
16
17.
違います 17
18.
手法 ● データベース user_id user_name salt hash 1 John abc... 3bb... 2 Bob 2a3... 76a... 3 Nick 4bf... 4de... Hashのテーブルは別 18
19.
手法 ● ユーザ新規作成・パスワード変更 ➜ ➜ ● ランダムなソルトを生成してUPDATE ハッシュを計算してINSERT ログイン ➜ 入力されたパスワードとDBのソルトからハッシュ計算 ➜ DBにそのハッシュ値が存在するかチェック ● 前処理としてダミーハッシュでDBを埋めておく ←
これ重要 19
20.
なにが違うの? ● ブルートフォースするとき ➜ ハッシュテーブルを総ナメする必要あり ➜ でっかいRAMが必要 ➜ GPUベースのブルートフォースをやりにくい ←
ボクこのへん詳しくない ➜ ● 1人のユーザだけ狙っても(前の手法に比べれば)破りにくい ハッシュテーブルが巨大 ➜ USBメモリとかには到底入らない ➜ 持ち出しにくい 20
21.
ハッシュは衝突しないの? 1.0E+00 1.0E-02 1.0E-04 衝突確率 1.0E-06 サメに喰われる確 率 1.0E-08 1.0E-10 1.0E-12 家に隕石が落ちる確率 1.0E-14 1.0E-16 1.0E-18 1.0E+15 1.0E+16 1.0E+17 1.0E+18 1.0E+19 1.0E+20 1.0E+21 160bit ハッシュの数 1.0E+22 1.0E+23 1.0E+24 1.0E+25 21
22.
まとめ ● 肥満 = 膨大な量のハッシュ ● ダミーで10
個まで増やしてもほとんど衝突しない 17 ➜ ただし 160bit × 1017 = 2×1018 Byte = 2EB(えくさばいと) 22
Download now