Home > アーカイブ > 2011-05

2011-05

CakePHP Authコンポーネントでパスワード・ハッシュをストレッチングするには?

  • 2011-05-27 (金)
  • PHP

体系的に学ぶ 安全なWebアプリケーションの作り方 』で解説されていたパスワード・ハッシュのストレッチングをCakePHPで実装してみました。 
ストレッチング処理の肝となる部分は書籍に書いてある内容のままですので(汗)、設定方法を簡単に説明します。

【 注意事項 】
今回実装したStretchAuthコンポーネントの導入にはパスワード( ハッシュ )の再登録が必要です。
また、運用中のシステムへの導入や導入後の設定変更により、ハッシュ方式やストレッチ回数が異なるパスワードがDBへ登録されますので、必ずDB及びシステムのバックアップを行ってからお試しください。

体系的に学ぶ 安全なWebアプリケーションの作り方

※ 諸般の事情により、CakePHP-1.2.10 でしか動作確認していませんので 1.3 や 2.0 で動いた方は @scriptwork まで教えて頂けると助かります

それではまず bootstrap.php でパラメーターを設定。

define( 'HASH_TYPE',     'sha256' ); // 使用するハッシュ関数の種類
define( 'STRETCH_COUNT', 1000 );     // ハッシュのストレッチング回数

HASH_TYPE は 使用するハッシュ関数のアルゴリズムでPHPのhash関数へのパラメーターになります。
sha1 / sha256 / sha512 など、お使いのサーバー環境に合わせて指定してください。
※ CakePHP 1.3.9 と 2.0-alpha はデフォルトが sha1 になっていますが、できれば sha256 か sha512 がお薦め

HASH_TYPEの指定によって、生成されるハッシュ値の長さが変わります。
このため、mysql側もパスワードハッシュを格納するフィールドサイズの調整が必要。
※ 実際にPHP 5.3.6で生成されたハッシュの長さを見るとsha256で64バイト、sha512なら128バイトでした

STRETCH_COUNT でパスワード文字列に対するハッシュ関数の適用回数を指定。
ここはサーバー性能とアクセス負荷のバランスによって調整が必要なところですが、とりあえず1000回で様子見中…

続きを読む

  • コメント (Close): 0
  • トラックバック (Close): 0

Rails3 開発手順まとめ本がやってきた。


昨年、WEB+DB PRESS( Vol.58 ) で Rails3特集 が組まれた頃は『 実務ベースはまだ Rails2 で 』といった話も聞いたが、リリースから半年以上たってそろそろ Rails3 を導入したいと考えていた。 そんなおり Twitter で Rails3本 の レビューアー募集 があり申し込んでみたところ、
Ruby on Rails 3 アプリケーションプログラミング 』という発売前の本が到着!
日本語で今すぐ Rails3 の開発手順をざざっと読めるのはとても助かります。

Ruby on Rails 3 アプリケーションプログラミング

Ruby on Rails 3 アプリケーションプログラミング

全体の構成は Rails3 の開発環境を準備する手順から、MVC ごとの新しい開発手順や開発したプログラムのテスト方法がコンパクトに解説されていて、一言でいうと 『 図解 Ruby on Rails Guides 』 という感じで、内容も Rails3 の リリースノート にある 5つのハイライト のうち4つをカバーしている。

  • RESTfulなインターフェイスをともなった新しいルーティング
  • 手軽になったAction Mailerでのmultipartメッセージ送信方法
  • Active Recordのクエリでメソッドチェーンの利用方法と遅延ロード
  • 控えめなJavaScript と jQueryドライバー( rails.js )の利用方法

 ※ 5つめのハイライトはプロジェクトごとにgem依存関係を管理する Bundler
ですが今回は解説なし

読み始めて1週間ほどですが図解が豊富で 掲載コードのダウンロードサービス もあり、Webで情報を捜し回るよりも この1冊 で楽に Rails3 を使い始められそうです。

書評を書いた Ruby on Rails 3 アプリケーションプログラミング という本はこちらです。

以下、詳しい目次を掲載。

続きを読む

  • コメント (Close): 0
  • トラックバック (Close): 0

Home > アーカイブ > 2011-05

Fedora 20
アーカイブ

Return to page top