O aspecto do computador
Use um método que forneça entropia de aleatoriedade suficiente, geralmente medida em bits.
Aceite a primeira escolha oferecida do processo aleatório. Caso contrário, a entropia diminui (geralmente mais do que você imagina) e seu nível de segurança será menor.
O aspecto humano
Considerando o aspecto humano, é importante que você possa
-
aceitar
-
lembre-se
-
soletrar
as palavras na senha / senha.
Para preservar a aleatoriedade, entropia, é muito importante que você aceite a primeira escolha oferecida, e a lista de palavras pode fazer a diferença.
Usar uma lista de palavras grande fornece mais entropia por palavra, mas é provável que você ou os usuários do grupo, cuja segurança de TI você está gerenciando, se recusem a usar a primeira senha / frase secreta oferecida. Seu nome, cidade ou outros dados pessoais podem ser selecionados da lista de palavras em um caso extremamente raro, mas com mais frequência você pode se sentir ofendido por uma palavra política, étnica, religiosa, sexual ou geralmente rude. É claro que, se você gosta dessas palavras, pode adicioná-las à sua própria lista de palavras ;-), mas não as force a outras pessoas.
Isso tornará mais fácil aceitar, lembrar e soletrar a senha / senha, se você usar uma lista das palavras mais comuns, onde as palavras são selecionadas para esse fim específico .
Crie uma lista de palavras você mesmo
Você mesmo pode criar essa lista (e em seu próprio idioma e remover palavras com caracteres especiais, porque elas podem causar problemas em alguns softwares).
O seguinte script pruner
pode ajudar. Você obtém apenas palavras minúsculas, o que facilita a digitação (caracteres especiais são removidos) e apenas palavras no intervalo [4,10] letras (não muito curtas, nem muito longas). Mas não há classificação desses arquivos de acordo com a facilidade de aceitação. Você precisa de outras informações para remover palavras incomuns, difíceis e potencialmente ofensivas, ou pode fazê-lo manualmente.
#!/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 '5'| \
grep '^[a-z]\{4,10\}$' | \
tee "$prunedlist" | \
wc -l
echo "-------"
done
O shellscript encontrará as listas de palavras padrão e também listas de palavras para xkcdpass
e cracklib
, se instalado.
Agora você pode executar sua linha de comando shuf
para testar as listas de palavras removidas,
$ for i in *pruned*; do echo "$i:";shuf -n4 "$i"| awk NF=NF RS= OFS=' ';echo "-----";done
mas eu preferiria xkcdpass
.
Faça o download de uma lista de palavras
Você pode fazer o download de uma lista desse tipo (verifique se ela consiste de palavras únicas e se é longa o suficiente, pelo menos 2048 palavras = 2 ^ 11 palavras, o que corresponde a 11 bits de entropia).
O download, a verificação e o uso desse arquivo da Internet devem ser seguros. Como de costume, você deve usar somente sites confiáveis.
O importante para a segurança não são as próprias palavras, mas você deixa um processo aleatório (por exemplo, um dado) ou um bom processo de computador pseudo-aleatório seleciona as palavras . Não adultere o processo aleatório selecionando ou modificando a senha manualmente.
Nesta página wiki da ajuda do Ubuntu: O método XKCD - xkcdpass você pode encontrar um
Lista de palavras personalizadas - 'word-list.txt'
Linhas de comando úteis com xkcdpass
Decida o que funciona melhor para o nível de segurança necessário no seu caso específico,
- menor número de palavras que são estranhas e complicadas
- maior número de palavras comuns e fáceis
Pode variar entre pessoas (e grupos de pessoas, se você estiver pensando em como definir uma política ou uma ferramenta personalizada para uma organização).
Você pode permitir que xkcdpass
compute aleatoriedade entropia em bits adicionando a opção verbosity -V
. Estes exemplos usam a lista de palavras padrão e a lista de palavras personalizadas da página de ajuda do Ubuntu word-list.txt
,
xkcdpass -V -n 3
xkcdpass -V -n 4 --min 4 --max 10 -d . -w word-list.txt
Usando o arquivo de palavras padrão: menor número de palavras que são estranhas e complicadas
# 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
Por favor, note que esta é a configuração padrão. Mas o nível de segurança é muito alto somente se o usuário
- pode aceitar a primeira senha / frase secreta oferecida,
- pode lembrá-lo sem um adesivo post-it no monitor / laptop (ou outro 'atalho'),
- pode soletrá-lo sem um adesivo post-it no monitor / laptop (ou outro 'atalho').
Usando um arquivo de palavras personalizado: maior número de palavras comuns e fáceis
# 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