前回の続きからです。
今回の記事を書くにあたっての経緯などです。
ASVSとは
本記事で紹介している内容(各No)は自分で作った資料のNoをもとにしています。
#V2:認証に関する検証要件
##No.18 知識に基づく質問("秘密の質問")を実装する必要がある場合,アプリケーションを保護できる十分強固な質問である
”秘密の質問”について調べてみると、そもそもそんなに強固ではないみたいですね。
参考
実装する場合は以下の点に気を付けて設問するようにすれば大丈夫かと
・SNSなどで収集できない(出身学校、ペットの名前)
・ありきたりな回答にならない(好きな食べ物)
##No.21 よくあるパスワードや弱いパスフレーズの使用を禁止する対策がとられている
こういったjqueryライブラリを使用する。
また、「強固なパスワード例(P@ssw0rd)」「IDと似たようなパスワード」など簡単に推測できるような物を禁止する処理も同時に行う。
##No.22 成功,失敗にかかわらず,認証要求に対する応答が同じ平均応答時間で返される
レベル3の事項です。(気になったので)
ログインIDの一致、不一致でレスポンスに大きな差異があるだけで、そのIDが存在するのかが判明してしまいます。
ここは大きな誤差が生まれない範囲で作りましょう。
(難しければsleepなどで調整)
<?php
sleep(5); // 5秒間待つ
usleep(5000000); // 5秒間待つ
?>
###No.24 ユーザが認証を行うことをアプリケーションが許可する場合,安全性が実証されている認証メカニズムを使用する
パスワード認証はもちろんですが、それに加えて「Google+」「Facebook」「YahooID」などのアカウント連携を使用する方法があります。
また、パスワード認証と共に「reCAPTCHA」を使えばさらに強度が高まる。
###No.26 信頼できない第三者が管理インターフェイスにアクセスできない
管理画面へはIP制限やログイン中の権限などの認証も掛けること。
また、その際にエラー画面として表示するメッセージは「404 Not Found」とすること。
「ドメインが違うから大丈夫」「URLを公開していないから大丈夫」ではいずれ破られます。
これでV2のレベル1(例外あり)は終了です。
次回は「V3:セッション管理に関する検証要件」に入ります。
▼▽▼▽▼▽▼▽▼▽▼▽▼▽▼▽▼▽▼▽▼▽
ASVS 3.0.1まとめ - Google スプレッドシート
▲△▲△▲△▲△▲△▲△▲△▲△▲△▲△▲△