パスワードよもやま話
by
shogogg
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
パスワードよもやま話 PHP Conference Fukuoka 2024 #phpconfuk Jun. 22 2024 Shogo Kawase / @shogogg
Slide 2
Slide 2 text
パスワード、正しく扱えていますか?
Slide 3
Slide 3 text
河瀨 翔吾 / shogogg ユースタイルラボラトリー(株)ソフトウェア開発部テックリード シンアジャイルコミュニティ運営 好きな⾔葉 型安全 / アジャイル 好きなアイドル ももいろクローバーZ shogogg shogogg ⾃⼰紹介
Slide 4
Slide 4 text
パスワードの漏洩は怖い
Slide 5
Slide 5 text
● パスワードなしでの認証を可能にする「パスキー」技 術にはわなが潜んでいる、YubiKeyなどのハードウェ ア認証デバイスを利⽤している場合は注意 - GIGAZINE ● パスワード不要の認証技術「パスキー」はパスワード よりもエクスペリエンスが悪いという批判 - GIGAZINE パスキーには期待しているけど……
Slide 6
Slide 6 text
まだしばらくパスワードは必要
Slide 7
Slide 7 text
● 平⽂保存は当然NG。ハッシュ化して保管しよう。 ● ハッシュ化の際にはソルトやペッパー、ストレッチン グなどを使って解読に掛かるコストを増やそう。 パスワードをDBに保存するときは……
Slide 8
Slide 8 text
● md5, sha1:パスワード向けではない。 ● crypt:古のアルゴリズム。8⽂字制限あり。論外。 ● bcrypt:今となっては古い。採⽤したくない。 ● PBKDF2:⽶国標準に準拠する必要がある場合に。 ● Argon2:⽐較的新しいアルゴリズム。オススメ。 パスワードをハッシュ化するアルゴリズム達
Slide 9
Slide 9 text
● 最低⽂字数はセキュリティの観点から、ユーザーを守 るために重要。 ● 逆に最⼤⽂字数の設定があるサイトを⾒つけたら要注 意。 最低⽂字数と最⼤⽂字数
Slide 10
Slide 10 text
● パスワードを平⽂で保存するため、データベースのカ ラムに収める必要がある場合。 ● パスワードを bcrypt でハッシュ化するため、bcrypt が受け付ける最⼤⽂字数である72⽂字以内にする必要 がある場合。 ● ⾮常に⻑いパスワード⼊⼒による DoS 攻撃を防ぐた め。 最⼤⽂字数が必要な場合とは?
Slide 11
Slide 11 text
● パスワードの定期的な変更をユーザーに強制するのは アンチパターンである、というのがエラい⼈達の最新 の⾒解。 ● ⽶国国⽴標準技術研究所(NIST)が2017年にガイド ラインに「サービスを提供する側がパスワードの定期 的な変更を要求すべきではない」と明記、2018年には ⽇本の総務省もそれに続いている。 定期的な変更は必要?
Slide 12
Slide 12 text
● password_hash 関数を PASSWORD_ARGON2ID アル ゴリズムを指定してハッシュ化しよう。 ● ⼊⼒されたパスワードの検証は password_verify 関 数で。 ● 不安な場合は上記に加えてペッパー対応を。 PHP におけるベストプラクティス
Slide 13
Slide 13 text
ご清聴ありがとうございました