Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
パスワードよもやま話
Search
shogogg
June 22, 2024
Technology
1
250
パスワードよもやま話
PHPカンファレンス福岡2024 アンカンファレンスルーム LT アワーに飛び込み参加した際の資料です。
shogogg
June 22, 2024
Tweet
Share
More Decks by shogogg
See All by shogogg
技術的負債を正しく理解し、正しく付き合う #phperkaigi / PHPerKaigi 2025
shogogg
7
1.4k
5分で理解する SOLID 原則 #phpcon_nagoya
shogogg
1
490
readonly class で作る堅牢なアプリケーション
shogogg
2
1.8k
Other Decks in Technology
See All in Technology
モンテカルロ木探索のパフォーマンスを予測する Kaggleコンペ解説 〜生成AIによる未知のゲーム生成〜
rist
2
450
移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略 / phper-kaigi-2025-ryu
carta_engineering
0
670
ランチの間に GitHub Copilot Agent が仕事を終わらせてくれた話
bicstone
5
680
単一の深層学習モデルによる不確実性の定量化の紹介 ~その予測結果正しいですか?~
ftakahashi
PRO
3
500
LINE API Deep Dive Q1 2025: Unlocking New Possibilities
linedevth
1
140
これからクラウドエンジニアになるために本当に必要なスキル 5選
hiyanger
1
440
株式会社アゲテク会社説明資料
mimimimimicky
0
230
[CATS]Amazon Bedrock GenUハンズオン座学資料 #2 GenU環境でRAGを体験してみよう
tsukuboshi
0
110
React Server Componentは 何を解決し何を解決しないのか / What do React Server Components solve, and what do they not solve?
kaminashi
2
240
RAGの基礎から実践運用まで:AWS BedrockとLangfuseで実現する構築・監視・評価
sonoda_mj
0
390
Engineering Managementのグローバルトレンド #emoasis / Engineering Management Global Trend
kyonmm
PRO
5
900
AWS のポリシー言語 Cedar を活用した高速かつスケーラブルな認可技術の探求 #phperkaigi / PHPerKaigi 2025
ytaka23
7
1.4k
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
101
18k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.3k
GitHub's CSS Performance
jonrohan
1030
460k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
50
2.3k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
11
600
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
Code Review Best Practice
trishagee
67
18k
Transcript
パスワードよもやま話 PHP Conference Fukuoka 2024 #phpconfuk Jun. 22 2024 Shogo
Kawase / @shogogg
パスワード、正しく扱えていますか?
河瀨 翔吾 / shogogg ユースタイルラボラトリー(株)ソフトウェア開発部テックリード シンアジャイルコミュニティ運営 好きな⾔葉 型安全 / アジャイル
好きなアイドル ももいろクローバーZ shogogg shogogg ⾃⼰紹介
パスワードの漏洩は怖い
• パスワードなしでの認証を可能にする「パスキー」技 術にはわなが潜んでいる、YubiKeyなどのハードウェ ア認証デバイスを利⽤している場合は注意 - GIGAZINE • パスワード不要の認証技術「パスキー」はパスワード よりもエクスペリエンスが悪いという批判 -
GIGAZINE パスキーには期待しているけど……
まだしばらくパスワードは必要
• 平⽂保存は当然NG。ハッシュ化して保管しよう。 • ハッシュ化の際にはソルトやペッパー、ストレッチン グなどを使って解読に掛かるコストを増やそう。 パスワードをDBに保存するときは……
• md5, sha1:パスワード向けではない。 • crypt:古のアルゴリズム。8⽂字制限あり。論外。 • bcrypt:今となっては古い。採⽤したくない。 • PBKDF2:⽶国標準に準拠する必要がある場合に。 •
Argon2:⽐較的新しいアルゴリズム。オススメ。 パスワードをハッシュ化するアルゴリズム達
• 最低⽂字数はセキュリティの観点から、ユーザーを守 るために重要。 • 逆に最⼤⽂字数の設定があるサイトを⾒つけたら要注 意。 最低⽂字数と最⼤⽂字数
• パスワードを平⽂で保存するため、データベースのカ ラムに収める必要がある場合。 • パスワードを bcrypt でハッシュ化するため、bcrypt が受け付ける最⼤⽂字数である72⽂字以内にする必要 がある場合。 •
⾮常に⻑いパスワード⼊⼒による DoS 攻撃を防ぐた め。 最⼤⽂字数が必要な場合とは?
• パスワードの定期的な変更をユーザーに強制するのは アンチパターンである、というのがエラい⼈達の最新 の⾒解。 • ⽶国国⽴標準技術研究所(NIST)が2017年にガイド ラインに「サービスを提供する側がパスワードの定期 的な変更を要求すべきではない」と明記、2018年には ⽇本の総務省もそれに続いている。 定期的な変更は必要?
• password_hash 関数を PASSWORD_ARGON2ID アル ゴリズムを指定してハッシュ化しよう。 • ⼊⼒されたパスワードの検証は password_verify 関
数で。 • 不安な場合は上記に加えてペッパー対応を。 PHP におけるベストプラクティス
ご清聴ありがとうございました