MainPage 〜きまぐれ ぷろぐらま語録〜
 

2024年11月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24
25
26 27 28 29 30

最近の記事
Blog移転

エアポート2010を見た

花椒油

Steve Jobs,1955-2011

鉄球に無数のとげが付いた武器

M55→M42(T)が欲しい

健康診断done

回転寿司のルール

相模湖リゾート・プレジャー・フ ..

過去ログ 【表示/最小化】
2011年10月
2011年 9月
2011年 8月
2011年 7月
2011年 6月
2011年 5月
2011年 4月
2011年 3月
2011年 2月
2011年 1月
2010年12月
2010年11月
2010年10月
2010年 9月
2010年 8月
2010年 7月
2010年 6月
2010年 5月
2010年 4月
2010年 3月
2010年 2月
2010年 1月
2009年12月
2009年11月
2009年10月
2009年 9月
2009年 8月
2009年 7月
2009年 6月
2009年 5月
2009年 4月
2009年 3月
2009年 2月
2009年 1月
2008年12月
2008年11月
2008年10月
2008年 9月
2008年 6月
2008年 5月
2008年 4月
2008年 3月
2008年 2月
2008年 1月
2007年12月
2007年11月
2007年10月
2007年 9月
2007年 8月
2007年 7月
2007年 6月
2007年 5月
2007年 4月
2007年 3月
2007年 2月
2007年 1月
2006年12月
2006年11月
2006年10月
2006年 9月
2006年 8月
2006年 7月
2006年 6月
2006年 5月

広告欄

 

Blogを移転させました。
新Blogは次のURLです。
https://kerokero.org/wp/




PHP5.3.8リリース
ちょこっと前の話だが、PHP5.3.8がリリースされた。
http://www.php.net/archive/2011.php#id2011-08-18-1
このPHP5.3.8というか、その前の5.3.7がくせ者で、
5.3.7のリリースのわずか5日後に、5.3.8がリリースされる事態となっている。

5.3.5=1月6日リリース
5.3.6=3月17日リリース
を見ても、この短期間のリリースの異常さはわかるだろう。

それもそのはずで、5.3.7には重大なバグが含まれていた。
なお、本バグの経緯などは
http://blog.tokumaru.org/2011/08/php537crypt.html
この辺の記事が詳しい。

で、通常、パスワードなどは、サーバーなどにそのまま保存せず、
一方向性関数で暗号化して保存するのが通例だ。
【パスワード】→(一方向性関数(=ハッシュ関数ともいう))→【ランダムに見える文字(ハッシュという)】こうすることで万が一【ランダムに見える文字】が流出しても、
一方向性関数、つまり「AからBに変換するけど、
BからAには変換することが出来ないことが数学的に保証されている関数」を使っているため、
【パスワード】自体がばれることはない。
※ちなみに、パスワードの認証は、ログインなどで入力されたパスワードを、
 同じ一方向性関数に入力して、生成されたランダムな文字が、
 保存している物と一致しているかの確認をすればよい。


ただ『「ABC」というパスワードが「XYZ」に変換される』という事を知っている人が居れば、
【ランダムに見える文字】が流出して、それが「XYZ」だと、
流出したデータを見た人が、パスワードを推測できてしまう。

このような問題に対処するために、様々な方法があるのだが、
その一つがSaltという物である。

Saltというのものは、
サーバー上で隠し持っているランダムな文字の事で、
ユーザーから入力されたパスワードにSaltを付加して
一方向性関数に与えることで【ランダムに見える文字】から【パスワード】を推測しにくくしようという物。
【パスワード】→【パスワード+Salt】→(一方向性関数)→【ランダムに見える文字】こうすることで、
一方向性関数の入力と出力を知っている人が居て居も、
【ランダムに見える文字】から【パスワード】の推測は困難である。

実用的には、さらに他の手法との併用をするのだが、今は言及しない。


で、そのSaltですが、
今回のPHPのバグはMD5という、超メジャーな一方向性関数を用いて、
パスワード等のハッシュ化をする際に、Saltを使うと指定したら、
変換結果がハッシュではなくSaltそのものになってしまったという重大なバグ。

どれぐらい重大かというと、
PHPのバージョンアップをきちんとやっているサーバーで、
ユーザーがログインできるようなWebサイトをPHPで稼働させていて、
パスワードの保存にSalt付きMD5を使っていた場合、

PHP5.3.7にすると
・それまでのユーザーがログインできなくなる。
・新規登録したユーザーのパスワードがABCだったとしても、
 実際には、DEFだろうが、どんな値を入力したとしても、ログインできてしまう。
・前項のユーザーはこのバグが治ったあとに、速やかにパスワードを変更しなければログインできない。
等の問題が生じます。
※特に2番目が個人情報流出に繋がるため非常に危険。


ところで、このSalt。要するに「ソルト」、つまり「塩」である。
なので、このように、ハッシュに余計な文字を加えることを
「塩を振る」などと表現するのだが、会社の上司の一言
「料理に塩を振ったら塩だけになったのかぁ」
いや、正しいんだけど、誰が上手いことを言えと。



ところで、PHPを業務レベルで正しく覚えられる入門書って無いのかな?
初心者向けの本は、セキュリティーの話はすっ飛ばして書いてあるから、
初心者がなんちゃってで作ると、セキュリティーホールだらけになるし、
ちゃんとした、PHPのセキュリティー本とかは、初心者向けじゃないし・・・
21:10, Saturday, Aug 27, 2011 ¦ 固定リンク ¦ 携帯


■コメント

■コメントを書く

※コメントの受け付けは終了しました

△ページのトップへ
 

最新のつぶやき

サイト内検索
カスタム検索

旅行関係の記事等
九州・広島旅行記 2009(かみちゅ!)
大阪出張(KANON)
大阪出張(ハルヒ)
三宅島旅行記'05
三宅島旅行記'08
三宅島旅行記'10
伊豆半島小旅行

最近のコメント

最近のトラックバック

IPv4枯渇時計

携帯で読む
   URLを携帯に送る





[Valid RSS]

Powered by CGI RESCUE