暗号
PHPのmt_rand()/rand()問題
PHPのmt_rand()とrand()には状態の初期化/再初期化に問題があります。話しを簡単にするためにrand()をmt_rand()のエイリアスにする提案 https://wiki.php.net/rfc/rng_fixes が適用された状態を前提にMT rand問題として解説します。しかし、基本的には古いPHPでrand()を使う場合も同じ(かそれ以…
password_hash()の重要な制限
password_hash関数はcrypt関数のラッパーです。パスワードを簡単かつ安全にハッシュ化するための関数です。現在のPHPマニュアルにはpassword_hash関数の重要な制限が未記載であったため追加しました。
SSL暗号を無効化する仕組み – BREACH, CRIME, etc
CRIMEやBREACHといったSSL暗号を無効化する攻撃を知っている方は多いと思います。しかし、今ひとつその仕組みや攻撃方法は理解されていないようです。原理は簡単で、直ぐに理解できると思います。Webシステムに関わる方であれば、正しくBREACH攻撃の原理と対策を正確に理解しましょう。全く難しくありません。簡単です!
PHP本体でタイミング攻撃を防御できるようになります
PHP 5.6からタイミング攻撃に対する対策が導入されます。メジャーなアプリケーションはスクリプトでタイミング攻撃対策が導入されていますが、PHP 5.6から簡単に対策できるようになります。
PHPのOpenSSL関数を利用して暗号化する例
色々やることがあってブログを更新できていませんでした。久々のブログはPHPのOpenSSL関数を使ってAES-256-CBCを使って暗号化する例です。今時のハードウェアとソフトウェアならハードウェアAESが利用できるので普通はAES-256-CBCで構わないでしょう。