コンピューターのことなどを綴ったメモ (旧:目から鱗 w/SQLite)

Jeans & Development 電子ブロック工房 三日坊主 フロントページ

ブルートフォースアタックを防ぐために - 2 [Nucleus]

2007年12月4日

先の記事で書いたこととほぼ同様のことを、今のバージョンのNucleusで実現する方法を考えていたが、以外と簡単にできそう。

まず、確認しておかないといけないのは、現在の Nucleus (ver 3.3) では、パスワードの長さが40文字に制限されていること。これは、非常に長い文字列を用いれば、md5 コリジョン脆弱性を用いて、任意のハッシュ値を生み出すようなパスワードが作成できるかもしれないので、それを防ぐためである。

現在のコンピューターの性能だと、ランダムな40文字の文字列の可能性のすべてをブルートフォースで調べるのはほぼ不可能であろうから、キー長としてはこれでよかろう。

実装には、config.php を若干書き換えるだけである。コアの改造も、これ用のプラグインも要らないし、実装後のコアのバージョンアップも問題なく行える。これを実装することにより、SQLインジェクションでパスワード用のハッシュ値を盗み取るだけでは、ブルートフォースアタックはほとんど不可能になるはずだ。

ブルートフォースアタックを防ぐために [Nucleus]

2007年12月3日

現在のところNucleusは、パスワードをMD5ハッシュ値として保存している。平文ではなくハッシュを用いているのは、万一サーバの保存データが洩れた場合に、容易ににパスワードを類推できないようにするためである。

ところが、先の記事で述べたように、たとえMD5の様なハッシュ関数を用いても、PS3のような演算速度の速いコンピューターでパスワードをはじき出すことが容易になってきた。MD5の代わりにSHA1のような新しいアルゴリズムのハッシュを用いても、解決にはならない。

王道の解決方法は、長いパスワードを用いることである。100文字ほどの長さのパスワードを用い、SHA1のような最新もしくはそれに順ずるアルゴリズムでハッシュ化すれば、ブルートフォースでパスワードを求めることは、現在の技術ではほとんど不可能になる。

ところが、パスワードを100文字にすると、それを入力するのが面倒くさいばかりでなく、パスワードの内容まで忘れてしまうことは頻繁に起こりうるだろう。そこで、どうすればよいか対策を考えてみた。

PS3で米大統領選の結果を「正確に」予知? [コンピューター・その他]

2007年12月3日

スラッシュドット ジャパンより

PS3で米大統領選の結果を「正確に」予知?…実はMD5脆弱性への問題提起

アイントホーフェン工科大学(TUE)のBenne de Weger、CWIのMarc Stevens、ベル研のArjen Lenstraらセキュリティ研究者3名が、SonyのPlayStation 3一台を使用して2008年米国大統領選挙の結果を正確に予知したと発表した(Predicting the winner of the 2008 US Presidential Elections using a Sony PlayStation 3)。「有権者への影響を考慮して予知結果は選挙後まで秘密とするが、予知結果を記入したファイルが後で改竄されていないことを証明するため、ファイルのフィンガープリントをウェブサイトで公開しておく」としてMD5ハッシュの値を公開している。(スラッシュドット ジャパンより抜粋)

NP_ProtectByMD5 アップデート [Nucleus]

2007年12月2日

NP_ProtectByMD5 ver 0.3.0を公開しました。

ver 0.2.5 からバージョンアップするメリットは、次のとおりです。

1.携帯電話から投稿できる。
2.スパム認証に失敗したときのエラーメッセージを設定できる。
3.ログを残すことが出来る。

PHP 5.2.4 [プログラミング]

2007年11月27日

Zend による PHP4 のサポートが年内で終了することに伴い、このサイト(kandk.cafe.coocan)で使用している PHP のバージョンを、5.2.4 に上げました。問題なく動くと思いますが、もし不具合を発見されましたら、e-mail か、Nucleus フォーラムのプライベートメッセージで連絡いただければ、嬉しいです。

CSRFとリファラについて [プログラミング]

2007年11月26日

ちょっと遅い情報なのだけれど。以前は多くのサイトで、リファラ(PHPでは、$_SERVER['HTTP_REFERER'])を利用したCSRF対策について有効とされていた。ところが最近(1年ほど前から)では、これが使えないということになっているようだ。

理由としては、Flashを用いると、リファラを偽装してサーバにアクセスできるため。Flashのどのバージョンからそうなのかは、調べていないので不明。いずれにせよ、リファラのみでのCSRF対策は出来ない。

当然であるが、リファラを調べたほうが、調べないよりもよっぽど良いのは確か。

自戒の意味で、メモ。

NP_R2Referer [Nucleus]

2007年11月19日

公式Wiki本家フォーラムを見ていて思いついたプラグイン。

ログイン/ログアウトした直後に、リファラにリダイレクトするだけ。リファラが管理ページの場合/リファラが設定されていない場合/リファラがログアウトページの場合、リダイレクトは行わない仕様。需要があるようなら公式Wikiに載せますけれど、どうでしょう?

正規表現でHTMLコメントを取り除くには [プログラミング]

2007年11月19日

HTMLコメントを削除する方法

2008/02/19 改定
<pre><?php
$html='outside <!--[inside]--> outside <!--[inside]--> outside';
echo htmlspecialchars(preg_replace('/<!--[\s\S]*-->/','',$html));                  // 1)
echo '<br />-----<br />';
echo htmlspecialchars(preg_replace('/<!--([^-]|-[^-]|--[^>])*-->/','',$html));     // 2)
echo '<br />-----<br />';
echo htmlspecialchars(preg_replace('/<!--(([^-]|-[^-]|--[^>])*)-->/','$1',$html)); // 3)
echo '<br />-----<br />';
echo htmlspecialchars(preg_replace('/<!--(([^-]|-[^-]|--[^>])*)-->/','$2',$html)); // 4)
echo '<br />-----<br />';
echo htmlspecialchars(preg_replace('/<!--[\s\S]*?-->/','',$html));                 // 5)

NP_Multilingual [Nucleus]

2007年11月18日

多国語表示プラグインがどうやら出来たみたいだ。50行に満たない長さだけれど、予定していた機能は一通り実装している。

始めは、どのような言語を使うかというところについて、プラグインオプションで設定できるようにしようかと考えたけれど、PHPファイルを直接書き換えて設定するようにした。自分自身で使う場合は日本語(ja)と英語(en)だけだし(デフォルトの状態)、他の人が使う場合でもインストールの際に一度きり設定するだけだろうから、これでよいだろう。

とりあえずこのブログにインストールして、少し使用した後に、公式サイトのWikiに上げる予定。
<<前の記事   後の記事>>