私はこのxkcdウェブコミックに触発されました:
トピックについてもここで説明します: https://www.ted.com/talks/lorrie_faith_cranor_what_s_wrong_with_your_pa_w0rd
今、私は疑問に思う:
4つのランダムな辞書ワードwithoutからパスワードを作成する方法インターネット?
多くの場合ビット単位で測定される、十分なランダムエイリアスエントロピーを提供するメソッドを使用します。
ランダムプロセスから最初に提示された選択肢を受け入れます。そうしないと、エントロピーが低下し(多くの場合、予想よりも多くなります)、セキュリティレベルが低下します。
人間の側面を考慮すると、できることが重要です
受け入れる
覚えている
スペル
パスワード/パスフレーズの単語。
ランダム性、エントロピーを保持するには、最初に提示された選択肢を受け入れることが非常に重要であり、Wordリストが違いを生むことができます。
大きなWordリストを使用すると、Wordごとにエントロピーが増えますが、ITセキュリティを管理しているあなたまたはグループのユーザーが、最初に提供されたパスワード/パスフレーズの使用を拒否する可能性があります。非常にまれなケースでは、名前、市、またはその他の個人データがWordリストから選択される場合がありますが、多くの場合、政治的、民族的、宗教的、性的または一般的に失礼なWordに腹を立てることがあります。もちろん、あなたがそのような単語が好きなら、あなたはあなた自身の単語リストにそれらを加えることができます;-)他の人にそれらを強制しないでください。
この特定の目的のために選択されている最も一般的な単語のリストを使用すると、パスワード/パスフレーズの受け入れ、覚え、綴りが簡単になります。
このようなリストは自分で作成できます(また、自分の言語で作成し、一部のソフトウェアで問題を引き起こす可能性があるため、特殊文字を含む単語を削除します)。
次のシェルスクリプトpruner
が役立つ場合があります。入力しやすい小文字(特殊文字が削除されます)と、間隔[4,10]文字(短すぎず、長すぎない)の単語のみを取得します。ただし、これらのファイルを受け入れるのが簡単であるかどうかによるソートはありません。珍しい、難しい、潜在的に不快な言葉を削除するには、他の情報が必要です。または、手動で行うこともできます。
#!/bin/bash
LANG=C
for wordlist in \
$(find /usr/share/dict/ /usr/lib/python3/dist-packages/xkcdpass/static -type f -size +10k) \
$(ls -1 Word-list.txt 2> /dev/null)
do
# prunedlist="${wordlist##*/}"
prunedlist="${wordlist//\//_}"
prunedlist="${prunedlist/.txt}-pruned.txt"
echo "source: $wordlist"
echo -n "Total number of words in list: "
< "$wordlist" wc -l
echo "target: $prunedlist"
echo -n "Used lower case words ( 4 < length < 10 ): "
< "$wordlist" tr -d '\015'| \
grep '^[a-z]\{4,10\}$' | \
tee "$prunedlist" | \
wc -l
echo "-------"
done
シェルスクリプトは、デフォルトのWordリスト、およびインストールされている場合はxkcdpass
およびcracklib
のWordリストも検索します。
shuf
コマンドラインを実行して、プルーニングされたWordリストをテストできます。
$ for i in *pruned*; do echo "$i:";shuf -n4 "$i"| awk NF=NF RS= OFS=' ';echo "-----";done
しかし、私はxkcdpass
を好むでしょう。
このようなリストをダウンロードできます(一意の単語で構成され、少なくとも2048単語= 2 ^ 11単語で、11ビットのエントロピーに対応する十分な長さであることを確認してください)。
このようなファイルをインターネットからダウンロード、確認、使用することは安全です。通常、信頼できるWebサイトのみを使用する必要があります。
セキュリティにとって重要なことは、単語そのものではなく、ランダムプロセス(サイコロなど)または優れた擬似ランダムコンピュータプロセス単語を選択です。パスワードを手動で選択または変更して、ランダムプロセスを改ざんしないでください。
これで buntuヘルプwikiページ:XKCDメソッド-xkcdpass を見つけることができます
特定のケースで必要なセキュリティレベルに最適なものを決定し、
人(および組織のポリシーまたはカスタムツールの設定方法を検討している場合は、人のグループ)によって異なる場合があります。
xkcdpass
にランダムさのエイリアスエントロピーを計算させることができます冗長オプション-V
を追加することにより、ビット単位で。これらの例では、UbuntuヘルプページWord-list.txt
のデフォルトのWordリストとカスタムWordリストを使用しています。
xkcdpass -V -n 3
xkcdpass -V -n 4 --min 4 --max 10 -d . -w Word-list.txt
デフォルトのWordファイルを使用:奇妙で複雑な単語の数を減らす
# Normal security level at home, entropy = 45 bits;
$ xkcdpass -n 3
demeanour basely extrude
# Next security level, entropy = 60 bits:
$ xkcdpass -n 4
metal cottager advocacy soursop
# High security level, entropy = 76 bits:
$ xkcdpass -n 5
hostile impounder Caledonia ramie Goddard
# Very high security level, entropy = 91 bits:
$ xkcdpass
ambrosia Cossack vivify Barbudan royal Campinas
これがデフォルト設定であることに注意してください。ただし、セキュリティレベルが非常に高いのは、ユーザーが
カスタムWordファイルの使用:一般的で簡単なより多くの単語
# Normal security level at home, entropy = 47 bits:
$ xkcdpass -n 4 --min 4 --max 10 -d . -w Word-list.txt
sharp.hockey.steal.backyard
# Next security level, entropy = 59 bits:
$ xkcdpass -n 5 --min 4 --max 10 -d . -w Word-list.txt
initially.assistant.barely.framework.regional
# Next security level, entropy = 71 bits:
$ xkcdpass -n 6 --min 4 --max 10 -d . -w Word-list.txt
snake.food.dress.perception.club.waste
# High security level, entropy = 83 bits:
$ xkcdpass -n 7 --min 4 --max 10 -d . -w Word-list.txt
stand.mentor.know.cream.automatic.treatment.effect
ローカルにインストールされた辞書は、/usr/share/dict/
に保存されます。次に例を示します。
$ ls -1 /usr/share/dict/
american-english
british-english
cracklib-small
README.select-wordlist
words
words.pre-dictionaries-common
ここで、最初の2つは興味深いものです。これらの辞書は、1行に1ワードの単純なWordリストです。 shuf
を使用して、そのうちの1つから4
ランダムな行を出力できます(そして、awk
を使用して改行をスペースに置き換えます)。
shuf -n4 /usr/share/dict/american-english | awk NF=NF RS= OFS=' '
出力例を次に示します。
contributions autumn's catalepsy's hemline's
footlights Levi's awfuller rascals
fogies flavoring preregistering requital's
Coleman's cartel halfpennies Williamson
étude's maintainers reviler's dapperest
pizazz Galahads McDowell derby
corroborate bureaucracies anchovy meager
filet Tawney feudalistic backstabbing
Beatriz sitcom surpasses guttural's
warehouse's unfamiliarity's Ashlee's sanguinary
おそらく、XKCDパスワードジェネレーターの実装は数多くあります。
xkcdpass
、xkcdpass
パッケージから入手可能、Python(CSPRNGを使用していないようです)
$ xkcdpass
baroque viand blindfold hooch notion ravening
$ xkcdpass -n4
useless elated liveable overfly
xkcd-password
、NodeJSモジュールdiceware
、同様のプロセスに従いますが、ウェブサイトを使用しますあなたの毒を選んでください。
参照:
これをしないでください。
私はそれが苦痛であることを知っていますが、代わりにパスワードマネージャーを使用してください。すべてのサイトに対して一意のランダムなパスワードを生成します。私のように妄想している場合は、ジェネレータの(擬似)ランダムアルゴリズムが危険にさらされた場合に備えて、提案されたパスワードのいくつかの文字を変更できます。 DropBoxにデータベースをバックアップしたKeePassXが好きですが、LastPassは一部の人にとって使いやすいです。多くの有料パスワードマネージャーもあります。
人間の脳は、秩序がなくても強要できます。カオスの秩序を認識するまで、それらを見つめることでランダムなキャラクターを覚えることができます。順序はありません。これはまさにあなたの脳がすることです。例えば:
bJbRpZ2S9
あなたにとって何かを意味します。十分な回数入力すると、次のようなものが思い浮かびます。
black Jack beyond Re post Zaps 2 Surly 9's
そのようにして、最終的に2つまたは3つのマスターパスワードを覚えることができます。 1つはOS用、もう1つはパスワードマネージャー用です。必要なのはそれだけです。
追伸パスワードマネージャーを使用する場合は、パスワードを定期的に印刷して、どこかにある安全な改ざん防止用封筒に入れて、紛失しないようにします。理想的には、セーフティボックスのような何かがあなたに起こった場合、あなたの近親者がそれらを手に入れることができる場所です。