10周年のSPコンテンツ!

平文パスワードの再送問題について

MySoftbankの「パスワード確認」機能がパスワード再発行ではなく過去に設定したパスワードを平文で再送してきたことについて愚痴ったら、ツッコミが入った件。 論点はハッシュから元パスワードが復元できるか?という話になってます。 この点に関してはどうも@kawazの認識に間違いがあったようです。 今回はこの分野について勉強しなおすよい機会になりました。 続きを読む
16
Yoshiaki Kawazu🐸ずん @kawaz
うは、MySoftbankのパスワード忘れたのでパスワード確認から送信してもらったらSMSに「昔設定した覚えのあるパスワード」が再送されてキター!平文保存確定かよ、そこは再発行して欲しかった…orz
tomokisanaki @tomoki0sanaki
なんで深謀遠慮しないかなぁ~。確かに平文かも知れないが、暗号化ぐらいしているかも知れないでしょうに。 QT @kawaz 平文保存確定かよ、そこは再発行して欲しかった…orz
tomokisanaki @tomoki0sanaki
てか、「パスワードリマインダしてます」ってステータスをパブリックにするのは、危険じゃないのか?・・・数日経ってから、「先日、パスワードリマインダしたんだけど・・・」と呟く方がリスクは減少していると思うが・・・まぁ、どうでもいいけど・・・
Yoshiaki Kawazu🐸ずん @kawaz
@tomoki0sanaki 仮にサーバ側で暗号化されているとして復号できる暗号化に何の意味が?ユーザが入力したパスワードは例え管理者だろうと復元できないよう暗号ではなくハッシュ化して保存されるべきでしょう。
徳丸 浩 @ockeghem
@kawaz @tomoki0sanaki 単にハッシュ値で保存するくらいなら、暗号化した方がよっぽとマシだと思いますね。ハッシュ値のパスワードから元パスワードを復元するテクニックがありますので。PCI DSSの要求も、ハッシュではなく暗号化(ハッシュでもよいのだとは思うけど)
Yoshiaki Kawazu🐸ずん @kawaz
@ockeghem @tomoki0sanaki 同じハッシュ値になるパスワードを生成することは可能でも、ハッシュ値から元パスワードを復元出来るという認識は間違っています。例えばあらゆるデータを0か1の二値に落とすハッシュ関数を想像してもらえば復元できないことは明らかでしょう。
徳丸 浩 @ockeghem
@kawaz @tomoki0sanaki パスワード暗号化の主な意味は、SQLインジェクションなどでパスワードが漏えいした場合の悪用防止ですよね。暗号鍵がもれなければ、暗号化でも目的は達します。管理者には暗号鍵を教えなければよい
Yoshiaki Kawazu🐸ずん @kawaz
@ockeghem @tomoki0sanaki 勘違いされているようです。まず話の発端はMySoftbankのパス確認でパスワードが再発行ではなく過去の設定の再送であったことです。これが出来るということはサーバ上に復号可能な状態でユーザパスが保存されているということです。(続く
Yoshiaki Kawazu🐸ずん @kawaz
@ockeghem @tomoki0sanaki ユーザのパスワード保存には不可逆な暗号(ハッシュ)化アルゴリズムを用いるべきで、サーバ側で復号化可能な暗号化では「SQLインジェクション等で(暗号化パスワードのみが)漏洩した場合」のリスクしか防げず管理者による悪用リスクが残ります
徳丸 浩 @ockeghem
@kawaz @tomoki0sanaki 単純なハッシュだと、総当たり攻撃、辞書攻撃、レインボーテーブルなどでパスワードが復元できます
Yoshiaki Kawazu🐸ずん @kawaz
@ockeghem @tomoki0sanaki ちなみに僕はMySoftbankさんには普通にMD5Cryptとかで保存してもえればそれで十分なんですが。プロフィールを拝見するとお二方ともセキュリティを生業とされているようなので、その意義は理解して頂きたいところです…。
Yoshiaki Kawazu🐸ずん @kawaz
@ockeghem @tomoki0sanaki いや、復元できませんよ(^^; それで得られるのは元のパスワードの可能性がある文字列なだけです。元のパスワードを一意で復元できるようなものを普通はハッシュ関数とは言わないと思います。http://bit.ly/hbWv2f
徳丸 浩 @ockeghem
@kawaz @tomoki0sanaki 辞書攻撃などでハッシュ値が一致したら、まず間違いなく元のパスワードでしょう。そうでないと、衝突困難性が足りない悪質なハッシュ関数ということになります。それと、ハッシュ値が一致すれば、悪用には十分です
Yoshiaki Kawazu🐸ずん @kawaz
@ockeghem 衝突困難性が足りない悪質なハッシュ関数を持ち出してきたのはそちらだと思うのですが…。ハッシュ値が一致すれば悪用には十分とのことですが、それはそのサービス内だけに被害が留まってくれますよね、それで十分なのです。僕は初めからハッシュして欲しいと言っています。
Yoshiaki Kawazu🐸ずん @kawaz
@ockeghem 続き)平文だろうと可逆暗号化されていようと復号可能な形でパスワードを保存されている場合は、それ+必要ならアルゴリズムとセットで元パスワードが割れてしまいます。それは同一パスワードを複数サイトで利用していた場合にそちらも破られる等の大きなリスクにもなります。
徳丸 浩 @ockeghem
@kawaz ハッシュ値からでもパスワードを知る手段はあるということです。 http://j.mp/eVydJG は、@ntsuji さんによるハッシュ値からのパスワード復元の優れた記事です。ご参考までに
Yoshiaki Kawazu🐸ずん @kawaz
@ockeghem @ntsuji その例で得られたパスワードはあくまで同じハッシュ値になる文字列の一つであって、元のパスワードとは限らないでしょう(偶然オリジナルと一致する可能性はありますが)。「AならばB」が正しくても「BならばA」が正しいとは限らないという簡単な論理です。
Yoshiaki Kawazu🐸ずん @kawaz
@ockeghem なんかもうSoftbankのパスワード再送問題とはかけ離れた場所での問答になってますが…。
徳丸 浩 @ockeghem
私のどのツイートですか? RT @kawaz: 衝突困難性が足りない悪質なハッシュ関数を持ち出してきたのはそちらだと思うのですが…
Yoshiaki Kawazu🐸ずん @kawaz
これについては僕の勘違いでしたすみません。 RT @ockeghem : 私のどのツイートですか? RT @kawaz: 衝突困難性が足りない悪質なハッシュ関数を持ち出してきたのはそちらだと思うのですが…
徳丸 浩 @ockeghem
.@kawaz MD5は元々署名に使うものですよ。そんなに簡単にハッシュ値が衝突する平文があっては困るでしょう。MD5は128ビット、パスワードはせいぜい80ビット程度で、十分に余裕はありますし。
Yoshiaki Kawazu🐸ずん @kawaz
@ockeghem 今回の流れで改めてパスワードの安全性やクラック周りについて調べたところどうやら僕の認識の方に誤りがあったようです。拙い知識と思い込みで批判してしまっていたようですみませんでした。
徳丸 浩 @ockeghem
@kawaz 理解し合えたようで嬉しいです
Yoshiaki Kawazu🐸ずん @kawaz
ところで、一番最初のツイートのパスワードが平文で届く件についてはSMSじゃなくてSNSの間違いです、1という番号アドレスから届く。ところでSNSのネットワークは詳しくないんだがどれくらい安全なものだろうか? http://togetter.com/li/77080
残りを読む(5)

コメント

睦月@インフラ技術…者? @mutsuki99 2010年12月9日
??? Saltつき前提の話をしているということでFAなのかな? それでもMD5Cryptは無いと思うけど。
佳太郎 @hasegawakani 2010年12月9日
Salt付き前提じゃないのかもしれませんでね。「ハッシュ値が一致したら、まず間違いなく元のパスワードでしょう。」saltついてたら一致しても元のパスワードかはわからないような。。。
kusanoさん@がんばらない @kusano_k 2010年12月9日
?? 少なくともSBのパスワードは管理者なら復元可能な状態で保存されているようだけど、それでもハッシュ化よりはマシなんだろうか?
kusanoさん@がんばらない @kusano_k 2010年12月9日
パスワードを平文で送ってきたSBはダメ、Salt付ハッシュが最善という前提で、Salt無ハッシュと暗号化とどっちがマシかという話か。
高橋雅奇 @TakahashiMasaki 2010年12月9日
"暗号ではなくハッシュ化して保存されるべきでしょう"←これを"暗号ではなくソルトを付加してからハッシュ化して保存されるべきでしょう"って言っていれば何の問題もなかった(つまりまとめ主の日本語の問題?
Yoshiaki Kawazu🐸ずん @kawaz 2010年12月9日
今見なおしたらSBのパスワード再送問題に関しては実質は最初の4ツイートで終了だね。残りはハッシュ値から元パスワードが復元できるか?という話になってた(^^;
ǝunsʇo ıɯnɟɐsɐɯ @otsune 2010年12月9日
パスワード認証をするにはsalt付きハッシュだけ保持してりゃ実用には充分なんだから、短時間で復元可能な生パスワードを持っておく必要性はないよね。(仮にハッシュが漏れても一人のパスワードを突き止めるのに何年も掛かるほうがマシ)
Yoshiaki Kawazu🐸ずん @kawaz 2010年12月9日
トゥギャッター更新しておいた。今回僕が理解したことについてちゃんと書きたいがツイッターではやりにくいのであとで記事書くかも。
Tsuyoshi CHO @tsuyoshi_cho 2011年1月14日
場合によって、Root/管理者でもパスワード周りの制御できないような権限管理するかもしれないので、それはそれだよな...(関係ないか?
ログインして広告を非表示にする
ログインして広告を非表示にする