[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp/index.php?FrontPage]] -[[戻る>サインアップ]] *目次 [#f356bddf] #contents *概要 [#fea075a1] ログイン・アカウント = ユーザーIDとパスワード *アカウント登録 [#m3dfab2a] 将来的にはIDフェデレーション対応なども検討。 **ユーザーID [#c613e18b] メールアドレスをユーザーIDとして使用する。 ***メールアドレス検証 [#v9a0d143] -メールアドレス検証画面のGUID付きリンクをメール送信する。 -GUID付きリンクに有効期間(1時間~1日程度)を設ける。 ***メールアドレス変更 [#qdf0b9e1] ・・・。 **パスワード [#hb02a2f5] ***DBに登録する際、 [#g0e238c8] [[ハッシュ+ソルト+ストレッチング>https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Tools/Encryption/EncAndDecUtil/Form1.cs]]したもの保存する。 ***パスワードフィルタ [#jb408c05] -8文字以上で英字と数字と記号がそれぞれ1文字以上含まれるものを許可。 -上記は、Password Generatorの既定の設定でクリアできる。 *画面・機能 [#u7ead8c6] **ログイン画面 [#ofe67d6a] ***エラーメッセージ [#mb2621ed] 攻撃の手がかりを与えないように曖昧にする。~ 「ユーザIDまたはパスワードが正しくありません」 ***アカウントのロックアウト [#j03518b2] 20-30回ぐらいと多めにするか、採用しない。 ***二要素認証 [#ede05609] -http://www.slideshare.net/hatanakaakihiro/ss-53907884 -http://itpro.nikkeibp.co.jp/atcl/keyword/14/260922/010400045/ **パスワード [#td3951a3] ***有効期限 [#oaa036a8] 主要なWebサービスで必須でないため採用しない。 ***リマインダ [#k12e3101] 実装しない。~ パスワード・リセットを実装する。 ***リセット [#l0775e44] -セキュリティレベルによっては合言葉を必要とする。 -パスワードリセットのパスワード再設定画面のGUID付きリンクをメール送信する。 -GUID付きリンクに有効期間(1時間~1日程度)を設ける。 *参考 [#pd3bed7a] -IPA セキュア・プログラミング講座:Webアプリケーション編~ https://www.ipa.go.jp/security/awareness/vendor/programmingv2/web.html --第2章 アクセス制御 ---ユーザ認証を自製する場合~ https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/101.html ---ユーザ認証を外部化する場合~ https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/104.html -パスワードリマインダが駄目な理由 | 徳丸浩の日記~ http://blog.tokumaru.org/2013/05/why-is-the-password-reminder-bad.html