自堕落な投資ずきSEの日記 このページをアンテナに追加 RSSフィード

2009-03-04

[]僕にはSALT暗号化関連)がわからない・・・

SALT暗号化関連)の管理方法がわからなかったのでメモ。


まず、SALTって何って人は、下記がいいかも。


cryptによる暗号化の基礎


で、そのお題のSALTの管理について。


1.DBテーブル

Railsプラグインであるところのrestful_authenticationなどはDBテーブルにsaltを格納している。ただ、これだと(ブラインド)SQLインジェクションとかに会うと、パスワードと同時にsalt値もわかっちゃう。


2.外部ファイル

どっかのサイトでsaltは外部ファイルとかに持ちましょうとか行ってたんだけど、ユーザーごとに個別のsaltを持つなら外部ファイルはパフォーマンス的にどうなんだろう、と思ってしまう。サイトで1つしか持たないのなら3のソースベタ書きでいいように思う。


3.ソースベタ書き

そもそもこれだとユーザー個別のsaltは保持できず、サイト全体で1つのsaltしか持てない。また、ユーザー登録のタイミングでsalt値を決めるのではなく、あらかじめsalt値を決めることとなるので、salt値を知る者が存在することになる。


・・・・・・・・・


saltをかける意味というのはレインボーテーブルを防ぐことと、同一のパスワードが同一の文字列としてDBに格納されないところにある。だから、saltをどこに格納するかとか、salt値がわかっちゃったらどうだとかは、あんまり考えなくてもいいかな、という気がする。


ユーザーのパスワードの保持の仕方。もっというとsaltの保持の仕方


上記をよんで、あんまり気にしなくても良いのかの〜という気になってきました。


後、WIKI レインボーテーブルの説明読んだけど、よくわかりませんでした。あとで読みなおそっと。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/T-miura/20090304/1236152193