フレームワークの責務とセキュリティ - MugeSoの日記についての感想文です。 世の中にはたくさんの通信プロトコルが存在し、中には、特定の条件でパスワードを含む文字列をハッシュ化した値を検証しなければならないものも含まれています。 例えば、HTTP Digest認証の場合は、MD5("realm:user:password")を保存しておく必要がありますし、APOPの場合は生のパスワードを、CRAM-MD5の場合はMD5("password")を保存しておく必要があったはず。 で、こういった様々なプロトコルに対応可能な認証データベースを準備しようとすると、パスワードを復号可能な方式で保存しておく必要があります*1。 ただ、パスワードを復号可能な方式で保存するとか、開発者あるいは管理者としてやりたくないというのはもちろんそうなので。で、長期的には世の中どこへ向かってるかというと: 選択肢a
おおむねこんな感じを想定。 ベースになるのは /dev/urandom なので。「環境ノイズが以下略」的な話は、きっとなんとかなるだろうしてくれるだろうだからある程度暗号的に安全な擬似乱数であろう、ことを、期待(笑 shaが1ぢゃなくて512なのは、おおむね、おいちゃんの癖。長いほうが推測しにくいっしょ? で、ハッシュにはどうしても「ハッシュのbit数よりもでかいのを渡しておきたい」ほうなので、少し大きめに。 「処理にかかるCPUコスト」は、比較的軽視の方向で。 というような思考回路を経て作った、超ざっくりなトークン生成。 $token = hash('sha512', file_get_contents('/dev/urandom', false, NULL, 0, 128), false); var_dump($token); でもまぁ、ワンタイムトークン用で、かつ「ンなに長い寿命を持
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く