それ以来、ほとんどのパスワードで XCKD スタイルのパスフレーズに移行しました。これは、パスフレーズを生成するための commandlinefu からの 1 つのライナーです:
shuf -n4 /usr/share/dict/words | tr -d '\n'
<ブロック引用>
2020:この回答を投稿したのは 2011 年でした。過去数年間で、サイバー セキュリティの様相とそれに対する要求は急速かつ大幅に変化しました。 anarcat によって指摘されているように、pwgen は高度なセキュリティ システムを保護するのに適していない (または適していない) 可能性があります。彼は、ある状況で pwgen が利用可能なエントロピーからパスワードを導出する安全でない方法をどのように使用できるかについての技術的な詳細を彼の記事で説明しようと試みています。パスワードを生成して自分で覚えようとすることはもはや信じていませんが、引用された記事の内容を保証するどころか、検証する技術的適性もありませんので、読んで自分の結論を引き出してください.そうは言っても、攻撃の可能性が非常に低いセキュリティの低いシステムには pwgen で十分だと確信しています。
pwgen
をチェックしてみてください。 応用。 Ubuntu、Fedora、Debian、および Suse リポジトリで利用できることを知っています。
マニュアルページから:
<ブロック引用>pwgen プログラムは、できるだけ安全でありながら、人間が簡単に記憶できるように設計されたパスワードを生成します。人間が記憶できるパスワードは、完全にランダムなパスワードほど安全ではありません。特に、-s オプションを指定せずに pwgen によって生成されたパスワードは、パスワードがオフラインのブルート フォース攻撃によって攻撃される可能性がある場所では使用しないでください。一方で、完全にランダムに生成されたパスワードは書き留められる傾向があり、その方法で危険にさらされる可能性があります.
pwgen プログラムは、対話型とシェルスクリプトの両方で使用できるように設計されています。したがって、デフォルトの動作は、標準出力が tty デバイスであるか、別のプログラムへのパイプであるかによって異なります。対話的に使用すると、pwgen は画面一杯のパスワードを表示し、ユーザーが 1 つのパスワードを選択してからすばやく画面を消去できるようにします。これにより、誰かがユーザーの選択したパスワードを「ショルダー サーフィン」することができなくなります。
pwgen の主な関心は「人間が記憶できるパスワード」を生成することでしたが、まさにそれを行う際に複数の脆弱性が示されました。また、それを使用して完全にランダムな文字列を生成しても、それほど役に立ちません。
まさにそのトピックについて詳細な記事を書きましたが、基本的には、ダイスウェア プログラム (ダイスが好きなら、実際のダイスウェア システム) または xkcdpass を使用することが要点です。覚えやすい強力なパスワードを生成するために、私は通常、次の構成ファイルでダイスウェアを使用します:
[diceware]
caps = off
delimiter = "-"
wordlist = en_eff
例:
$ diceware
turkey-eligibly-underwire-recite-lifter-wasp
$ diceware
lend-rubdown-cornflake-tint-shawl-ozone
$ diceware
syndrome-ramp-cresting-resolved-flinch-veneering
$ diceware
alto-badass-eclipse-surplus-rudder-quit
キャップとスペースは、攻撃者が利用できる明確な可聴ノイズを生成するため、オフにしています。 -
区切り文字はそれほど悪ではありません。区切り文字と en_eff
を使用しない方がよいでしょう。 wordlist は、その目的のために特別に作成されています。しかし、パスワードをいくつか持っていると、コミュニケーションや共有が容易になると思います
完全にランダムなパスワードを生成するには、次のシェル関数を使用します:
# secure password generator or, as dkg puts it:
# high-entropy compact printable/transferable string generator
# a password generator would be pwqgen or diceware
pwg() {
ENTROPY=${1:-20} # in bytes
# strip possible newlines if output is wrapped and trailing = signs as they add nothing to the password's entropy
head -c $ENTROPY /dev/random | base64 | tr -d '\n='
echo
}
これについて言及するのは、少ない 暗記することが重要であると信じているからです。 代わりに、推測しにくい大きな文字列を保存するパスワード マネージャーに依存します。これらの選択の背後にある理論的根拠の詳細については、前述の記事と私のパスワード マネージャーのレビューで説明されています。