Генератор пароля, комбинирующий фактические слова

Я был вдохновлен этим xkcd webcomic:

Тема также обсуждена здесь: https://www.ted.com/talks/lorrie_faith_cranor_what_s_wrong_with_your_pa_w0rd

Теперь интересно:
Как я могу создать пароль из четырех случайных слов словаря, не используя Интернет?

5
задан 16 November 2017 в 13:15

4 ответа

Компьютерный аспект

Используйте метод, который обеспечивает, достаточная случайность искажают энтропию, часто измеряемую в битах.

Примите первый предлагаемый выбор от вероятностного процесса. Иначе энтропийные уменьшения (часто больше, чем Вы думали бы), и Ваш уровень безопасности будет ниже.

Человеческий аспект

Рассмотрение человеческого аспекта, важно, чтобы Вы могли

  • принять

  • помните?

  • написание

слова в пароле/пароле.

Для сохранения случайности, энтропии, очень важно, чтобы Вы приняли первый предлагаемый выбор, и список слов может иметь значение.

Используя большой список слов обеспечивает больше энтропии на слово, но возможности состоят в том, что Вы или пользователи в группе, безопасностью 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

Решите, в каких работах лучше всего для уровня безопасности Вы нуждаетесь в своем особом случае,

  • более низкое количество слов, которые являются странными и сложными
  • более высокое количество слов, которые являются общими и легкими

Это может быть, варьируются между людьми (и группы людей, если Вы рассматриваете, как установить инструмент политики или инструмент пользователя для организации).

Можно позволить 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
4
ответ дан 23 November 2019 в 08:43

Локально установленные словари хранятся в /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
5
ответ дан 23 November 2019 в 08:43

Существует, вероятно, любое количество реализаций генератора пароля XKCD там:

  • xkcdpass, доступный от xkcdpass пакет, Python (кажется, не использует CSPRNG),

    $ xkcdpass
    baroque viand blindfold hooch notion ravening
    $ xkcdpass -n4
    useless elated liveable overfly
    
  • xkcd-password, Модуль NodeJS
  • десятки веб-сайтов
  • diceware, который следует за подобным процессом, но веб-сайтами использования
  • ...

Выберите свой яд.

Также см.:

3
ответ дан 23 November 2019 в 08:43

Не делайте этого.

  • Возможно, некоторые инструменты только предполагают символы использования паролей, но некоторое предположение несколько общих слов скоро, если они уже не делают.
  • Если Вы помните свои пароли, Вы почти наверняка снова используете их (возможно, с изменениями) для различных сайтов. Если у Вас есть 30 учетных записей в Интернете, я держал пари, что по крайней мере один из Ваших паролей поставлен под угрозу каждый год. Кто-то с Вашим паролем от одного сайта попробует его вариациями на Ваши другие учетные записи. Таким образом, Ваш horseBatteryStapleLinkedIn пароль позволяет кому-то предполагать, что Ваш пароль Gmail является horseBatteryStapleGoogle, horseBatteryStapleGmail, horseBatteryStapleLiamg (Gmail, записанный назад). Если можно думать о нем, кто-то еще может также.

Я знаю, что это - боль, но используйте менеджер паролей вместо этого. Имейте его, генерируют уникальные, случайные пароли для каждого сайта. Если Вы параноики как я, можно изменить пару символов в предложенном пароле в случае, если генератор (псевдо-) случайный алгоритм когда-либо поставлен под угрозу. Мне нравится KeePassX с базой данных, сохраненной в Dropbox, но LastPass легче для некоторых людей использовать. Также существует много заплаченных менеджеров паролей.

Хорошие новости

Человеческий мозг способен налагать порядок, даже когда нет ни одного. Можно помнить случайные символы, уставившись на них, пока Вы не чувствуете порядка в хаосе. Нет никакого порядка. Это, что делает Ваш мозг. Например:

bJbRpZ2S9

Средства что-то Вам. При вводе его достаточно раз Вы придумаете что-то вроде этого для запоминания этого:

black Jack beyond Re post Zaps 2 Surly 9's

Можно в конечном счете помнить 2 или 3 основных пароля тот путь. Один для Вашей ОС, и один для Вашего менеджера паролей. Это - все, в чем Вы нуждаетесь.

P.S. При использовании менеджера паролей периодически распечатывайте пароли и помещайте их в очевидный для трамбовки конверт в сейфе где-нибудь, таким образом, Вы не теряете их. Идеально, где Ваш ближайший родственник может получить их, если что-то происходит с Вами, как банковская ячейка.

2
ответ дан 23 November 2019 в 08:43

Другие вопросы по тегам:

Похожие вопросы: