問題
私は定期的にCTOと議論を交わしており、通常はこのようなことから始まります...
CTO: My password expired, that should never happen.
Me : It's a security risk to never expire passwords.
CTO: It's a security risk to force passwords to be reset because users have bad habits.
Me : Yes but the security is in the user not the system, enforcing password expiry ensures the system is secure in the event of an unknown breach of the userbase.
これは、私たちのどちらも主にシステム管理者ではなく、この効果にポリシーを適用する必要がある立場であるということは、正しい答えがどうあるべきかについて実際には同意しないという興味深い質問を提起します。
私の立場
すべてのユーザーにX時間以内にパスワードを変更するように強制すると、システムはより安全になります。Xは、パスワードを保護するために使用されるアルゴリズムの強度と、生の値を(ブルートフォースで)破壊する推定時間を決定することによって計算されます。元のパスワード。
CTOの地位
ユーザーに常にパスワードを変更するように強制する行為は、時間の経過とともにパターン/ **** 123の「いいね」パターンをもたらすか、ユーザーがパスワードを書き留めることを意味します。より技術的な方法で侵害されている(ブルートフォーシングなど)。
知りたいのですが
業界のベストプラクティスに基づいてパスワードリセットポリシーを適用する必要があるかどうかを証明できる方法はありますか?
[〜#〜]または[〜#〜]
私たちの一人はまったく間違っていますか?
あなたのCTOはより正しいですが、それはより複雑な問題です。 NIST( https://csrc.nist.gov/ )は、おそらく「業界のベストプラクティス」リファレンスです。
パスワードの長さに関しては、複雑さや頻繁な変更ではなく、進むべき道です。 ( https://nakedsecurity.sophos.com/2016/08/18/nists-new-password-rules-what-you-need-to-know/ )彼らはではなくphrashesまたは文を提案します単一の単語。
パスワードを保存する前にハッシュパスワードを記述します。これは、プレーンテキストよりも論理的に優れた代替手段です。問題は、マルチGPUシステムでは、1秒あたり数十から数百のハッシュを計算してチェックできることです。
以下のリンクで変更について説明します。パスワードをハッシュする前に、パスワードのソルトに特に注意を払うことをお勧めします。
https://nakedsecurity.sophos.com/2016/08/18/nists-new-password-rules-what-you-need-to-know/
https://www.passwordping.com/surprising-new-password-guidelines-nist/
はい、パスワードの有効期限を強制しないと、セキュリティリスクが高まります。
あなたのCTOが言ったように、私たちには悪い習慣があるので、パスワードは最終的に何らかの形で漏洩します。ユーザー入力フィールドにパスワードを入力し、一部のアプリケーション構成ファイルなどで暗号化しないままにします。
ユーザーにパスワードの変更を強制すると、可用性の面でセキュリティが強化されます。リークされたパスワードが15日で期限切れになると、攻撃者は次の2週間でそれを利用するようになりますが、永続的なパスワードは外部の危険にさらされます。
攻撃者の観点からもこれを見ると、数週間後にデータを盗んだ後にパスワードを盗聴して、それらすべてのパスワードを処理する途中で変更されたことがわかり、最初からやり直す必要があることを知るのはかなり思いがけないことです。
システムをクラックしにくくする最善の方法は、システムをより堅牢にすることではなく、時間を無駄にすることを人々に知らせることで、害を完全に回避することです。
私には、新しいパスワードを考え出したくない怠惰なCTOがいるように見えます。