パスワード
よく漏れる
サーバサイドでは復元できないように保存する
ユーザアカウントの保護の他、秘密鍵の保護などでも使われるのでそれぞれ標準的なものがある
8文字までをパスワード、それ以上をパスフェーズという分け方も過去にあったかもしれない
ダイジェスト(ハッシュ)を利用するが、MD5, SHA-1などは廃止されているのでパスワード専用のアルゴリズムやSHA-2、SHA-3とかどう?
他の手法
公開鍵認証 (SSHなど、ブラウザでもPKI認証できるよ) 物理鍵
あまり使われないHTTP認証
RFC 7616 HTTP Digest Access Authentication RFC 7617 The 'Basic' HTTP Authentication Scheme
RFC 7235 Hypertext Transfer Protocol (HTTP/1.1): Authentication
RFC 8120 Mutual Authentication Protocol for HTTP
照合
TLSなどで経路が暗号化されている前提では上のような方法が取れる
パスワード相当のもの
セッションID、APIのもの、などは制限付きのそんなかんじ
ハッシュ値を攪拌するためのものは鍵やパスワードではなくsalt (塩)という
WebのAPI利用では nonce という使い捨ての乱数コードなどもある
変更
Xなどが対応?
アカウント用
SHA-512
など
RFC 7677 scram-sha-256 scram-sha-256-plus RFC 8265 Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords
暗号用
PBES2 パスワード→ブロック暗号・ストリーム暗号