Я был вдохновлен этим xkcd webcomic:
Тема также обсуждена здесь: https://www.ted.com/talks/lorrie_faith_cranor_what_s_wrong_with_your_pa_w0rd
Теперь интересно:
Как я могу создать пароль из четырех случайных слов словаря, не используя Интернет?
Используйте метод, который обеспечивает, достаточная случайность искажают энтропию, часто измеряемую в битах.
Примите первый предлагаемый выбор от вероятностного процесса. Иначе энтропийные уменьшения (часто больше, чем Вы думали бы), и Ваш уровень безопасности будет ниже.
Рассмотрение человеческого аспекта, важно, чтобы Вы могли
принять
помните?
написание
слова в пароле/пароле.
Для сохранения случайности, энтропии, очень важно, чтобы Вы приняли первый предлагаемый выбор, и список слов может иметь значение.
Используя большой список слов обеспечивает больше энтропии на слово, но возможности состоят в том, что Вы или пользователи в группе, безопасностью IT-систем которой Вы управляете, отказываетесь использовать первый предлагаемый пароль/пароль. Ваше имя, город или другие персональные данные могли бы быть выбраны из списка слов в чрезвычайно редком случае, но чаще Вы могли бы быть оскорблены политическим, этническим, религиозным, сексуальным или обычно грубым словом. Конечно, если Вам нравятся такие слова, Вы можете добавить их к своему собственному списку слов ;-) но не вынуждаете их на других людей.
Это поможет принять, помнить и записать пароль/пароль при использовании списка наиболее распространенных слов где слова выбраны для этой конкретной цели.
Можно создать такой список сами (и на собственном языке и удалить слова со специальными символами, потому что они могли бы вызвать проблемы с некоторым программным обеспечением).
Следующий сценарий оболочки 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
Сценарий оболочки найдет списки слов по умолчанию и также списки слов для xkcdpass
и cracklib
, если установлено.
Теперь можно выполнить Ваш shuf
командная строка для тестирования сокращенных списков слов,
$ for i in *pruned*; do echo "$i:";shuf -n4 "$i"| awk NF=NF RS= OFS=' ';echo "-----";done
но я предпочел бы xkcdpass
.
Можно загрузить такой список (проверьте, что он состоит из уникальных слов и достаточно длинен, по крайней мере 2 048 слов = 2^11 слова, который соответствует 11 битам энтропии).
Загрузка, проверка и использование такого файла из Интернета должны быть безопасными. Как обычно, необходимо только использовать надежные веб-сайты.
Важной вещью для безопасности не являются сами слова, но что Вы позволяете вероятностному процессу (например, игра в кости), или хороший псевдослучайный компьютерный процесс выбирают слова. Не вмешивайтесь в вероятностный процесс путем выбора или изменения пароля вручную.
В этой Ubuntu помогают странице Wiki: метод XKCD - xkcdpass Вы может найти a
Пользовательский список слов - 'word-list.txt'
Решите, в каких работах лучше всего для уровня безопасности Вы нуждаетесь в своем особом случае,
Это может быть, варьируются между людьми (и группы людей, если Вы рассматриваете, как установить инструмент политики или инструмент пользователя для организации).
Можно позволить xkcdpass
вычислите энтропию псевдонима случайности в битах путем добавления опции многословия -V
. Эти примеры используют список слов по умолчанию и пользовательский список слов от страницы справки Ubuntu word-list.txt
,
xkcdpass -V -n 3
xkcdpass -V -n 4 --min 4 --max 10 -d . -w word-list.txt
Используя файл слова по умолчанию: более низкое количество слов, которые являются странными и сложными
# 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
Заметьте, что это - настройка по умолчанию. Но уровень безопасности очень высок только если пользователь
Используя пользовательский файл слова: более высокое количество слов, которые являются общими и легкими
# 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
Здесь первые два интересны, те словари являются простыми списками слов с одним словом на строку. Мы можем использовать shuf
производить 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
, Модуль NodeJSdiceware
, который следует за подобным процессом, но веб-сайтами использованияВыберите свой яд.
Также см.:
Не делайте этого.
Я знаю, что это - боль, но используйте менеджер паролей вместо этого. Имейте его, генерируют уникальные, случайные пароли для каждого сайта. Если Вы параноики как я, можно изменить пару символов в предложенном пароле в случае, если генератор (псевдо-) случайный алгоритм когда-либо поставлен под угрозу. Мне нравится KeePassX с базой данных, сохраненной в Dropbox, но LastPass легче для некоторых людей использовать. Также существует много заплаченных менеджеров паролей.
Человеческий мозг способен налагать порядок, даже когда нет ни одного. Можно помнить случайные символы, уставившись на них, пока Вы не чувствуете порядка в хаосе. Нет никакого порядка. Это, что делает Ваш мозг. Например:
bJbRpZ2S9
Средства что-то Вам. При вводе его достаточно раз Вы придумаете что-то вроде этого для запоминания этого:
black Jack beyond Re post Zaps 2 Surly 9's
Можно в конечном счете помнить 2 или 3 основных пароля тот путь. Один для Вашей ОС, и один для Вашего менеджера паролей. Это - все, в чем Вы нуждаетесь.
P.S. При использовании менеджера паролей периодически распечатывайте пароли и помещайте их в очевидный для трамбовки конверт в сейфе где-нибудь, таким образом, Вы не теряете их. Идеально, где Ваш ближайший родственник может получить их, если что-то происходит с Вами, как банковская ячейка.