コンピューターのことなどを綴ったメモ (旧:目から鱗 w/SQLite)
Jeans & Development | 電子ブロック工房 | 三日坊主 | フロントページ |
ブルートフォースアタックを防ぐために - 2 [Nucleus]
2007年12月4日
まず、確認しておかないといけないのは、現在の Nucleus (ver 3.3) では、パスワードの長さが40文字に制限されていること。これは、非常に長い文字列を用いれば、md5 コリジョン脆弱性を用いて、任意のハッシュ値を生み出すようなパスワードが作成できるかもしれないので、それを防ぐためである。
現在のコンピューターの性能だと、ランダムな40文字の文字列の可能性のすべてをブルートフォースで調べるのはほぼ不可能であろうから、キー長としてはこれでよかろう。
実装には、config.php を若干書き換えるだけである。コアの改造も、これ用のプラグインも要らないし、実装後のコアのバージョンアップも問題なく行える。これを実装することにより、SQLインジェクションでパスワード用のハッシュ値を盗み取るだけでは、ブルートフォースアタックはほとんど不可能になるはずだ。
ブルートフォースアタックを防ぐために [Nucleus]
2007年12月3日
ところが、先の記事で述べたように、たとえ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日
ver 0.2.5 からバージョンアップするメリットは、次のとおりです。
1.携帯電話から投稿できる。
2.スパム認証に失敗したときのエラーメッセージを設定できる。
3.ログを残すことが出来る。
PHP 5.2.4 [プログラミング]
2007年11月27日
CSRFとリファラについて [プログラミング]
2007年11月26日
理由としては、Flashを用いると、リファラを偽装してサーバにアクセスできるため。Flashのどのバージョンからそうなのかは、調べていないので不明。いずれにせよ、リファラのみでのCSRF対策は出来ない。
当然であるが、リファラを調べたほうが、調べないよりもよっぽど良いのは確か。
自戒の意味で、メモ。
PHPでのコールバック関数の呼び出し [プログラミング]
2007年11月21日
PHP extension からコールバックで hello, world を表示する
PHP Extension を作ろう第1回 - まずは Hello World
Google 検索
NP_R2Referer [Nucleus]
2007年11月19日
正規表現でHTMLコメントを取り除くには [プログラミング]
2007年11月19日
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日
始めは、どのような言語を使うかというところについて、プラグインオプションで設定できるようにしようかと考えたけれど、PHPファイルを直接書き換えて設定するようにした。自分自身で使う場合は日本語(ja)と英語(en)だけだし(デフォルトの状態)、他の人が使う場合でもインストールの際に一度きり設定するだけだろうから、これでよいだろう。
とりあえずこのブログにインストールして、少し使用した後に、公式サイトのWikiに上げる予定。