2016年5月16日月曜日

パスワードに関するWEBアプリの仕様

あるWEBサイトの仕様でビックリする事がありました。
それは下記のような仕様です。
①会員登録時のパスワードが6~8桁
②「パスワードを忘れた場合はこちら」で再発行をしたら設定したパスワードが届いた

そこで、今回はこの2点について書きたいと思います。

①会員登録時のパスワードが6~8桁
発注者はWEBサービスを利用するユーザーの利便性を考えてパスワード桁数を増やしたくないと思ってます。
そのため、最低文字数を決める際に「出来る限り短いパスワードにしたい」という要望に対して、利便性とセキュリティを考慮した桁数を提示する必要があります。

最低桁数の根拠としてOWASPのガイドラインを基にすると良いです。
アカウントロック機能などを搭載する事を前提としてですが、下記のガイドラインが参考になります。
実践 OWASP
・Webシステム/Webアプリケーションセキュリティ要件書

最大桁数ですが、少なく制限するのは問題となります。
ユーザーが大きい桁数を選択出来ない事によって認証が突破された場合、システム側の責任となる可能性があります。
パスワードの保管はソルト+ストレッチングでハッシュ値を保存しますのでデータとして保持するサイズは桁数で変わりません。
もし、6~8桁のように上限が小さい場合は、最大桁数を増やせない理由がある可能性があります。
「桁数が増える事によってデータ容量が増える」といった理由であれば、ハッシュで保存していない事にもなります。


②「パスワードを忘れた場合はこちら」で再発行をしたら設定したパスワードが届いた
「設定したパスワードが届く」ということはパスワードがハッシュ化されていません。
平文で保存していた場合は論外ですが、暗号化で保存してあったと暗号鍵が奪われるリスクや保守担当者が鍵を知っていた場合は復号が可能です。


こういったサイトをどうしても利用する際はパスワードの使いまわしは辞めましょう。