
Randomness: o que é e porque é importante
Já se perguntou: – have i been pwned? (HIBP), um site gerenciado pelo pesquisador de segurança Troy Hunt, onde você pode verificar quantas vezes seu endereço de e-mail apareceu em violações de dados.
Surpreendentemente, o número de contas violadas que Troy processou em seu banco de dados ao longo dos anos é de pouco menos de 7 bilhões.
Nós não estamos olhando para 7 bilhões de contas reais ou mesmo contas ainda ativas, é claro, e definitivamente não estamos olhando para 7 bilhões de usuários únicos, o que cobriria praticamente todos no planeta. mas a quantidade acumulada de dados violados expostos publicamente nos últimos anos é alarmante.
Felizmente, o HIBP não tem senhas para todas as contas violadas, pois os websites bem administrados armazenam suas senhas em um formato com salted-hashed-and-streched, para que as senhas originais não possam ser recuperadas facilmente no caso de um hack.
“A ideia de armazenar um hash de senha em vez da senha real é que um hash pode ser usado para verificar uma senha, mas não pode ser revertido para recuperar a senha original. Um bandido que usa 1.000.000 de senhas em texto puro já ganhou a batalha e não tem nada a fazer. Mas um bandido com 1.000.000 hashes ainda tem que quebrar cada um, adivinhando a senha que calcula para cada hash”.
No entanto, o HIBP atualmente possui mais de 550.000.000 de senhas violadas em seu banco de dados.
Essas senhas realmente correspondem a 3,34 bilhões de contas, uma vez que cada senha vazada foi escolhida por cerca de seis pessoas diferentes em média.
Alguns deles usam senhas como correctgiraffebatterystaple ou QPDizG / V4gLtmlo30dXEHLC5, cuidadosamente criadas manualmente ou produzidas automaticamente por um gerenciador de senhas.
Outros de nós não são tão cuidadosos e escolhem palavras que parecem ou soam secretas – ou talvez, na verdade, são a palavra secret -, mas são bem conhecidas dos vigaristas e, portanto, entre os que experimentam primeiro.
Alguns de nós não são cuidadosos, e selecionamos senhas simplesmente porque elas são fáceis de lembrar e fáceis de digitar, como 1234567 ou qwertyuiop.
Com isso em mente, você provavelmente pode adivinhar quais senhas estão no topo da lista de HIBP, mas e o melhor (ou o pior) do resto?

Robert Ou, um desenvolvedor de software da Califórnia, fez a mesma pergunta e procurou a resposta:

A explicação óbvia, você pode pensar, é que a senha ji32k7au4a83 era apenas alguém espancando um pouco o teclado, de modo que, em uma longa lista de senhas, é razoável esperar que algumas pessoas acabaram com a mesma máscara. de teclas por acaso.
Por exemplo, qpeowpalsk20 parece meio aleatório, mas nós o classificamos digitando caracteres em um padrão esquerda-direita-esquerda-direita entre as três primeiras linhas e as duas colunas externas de um teclado americano.
É improvável, mas longe de ser impossível, que dois usuários diferentes apenas clamando em seus teclados de maneira semelhante possam ter a mesma sequência.
Uma senha de 12 caracteres do conjunto a-z0-9 apresenta 3612 escolhas diferentes, para um total de quase cinco milhões de milhões (4,744 × 1018).
Mas a senha qpeowpalsk20 acima vem de um conjunto muito menor de possibilidades.
Acertamos um dos 12qwas no lado esquerdo do teclado, depois um dos dois caracteres na mesma linha do outro lado do teclado, com seis repetições para a esquerda e para a direita para obter 12 caracteres.
O número total de senhas diferentes usando essa abordagem é (6 × 2) 6, ou pouco menos de três milhões – uma fração minúscula (apenas 0,00000000006%) do conjunto completo de senhas que usaríamos se usássemos todas as letras e números aleatoriamente.
Mesmo assim, você não esperaria ver mais do que alguns exemplos de qpeowpalsk02 em uma lista de 550.000.000 de senhas, nem esperaria ver muitos exemplos de ji32k7au4a83.
Mas a misteriosa senha ji32k7au4a83 aparece 141 vezes na lista de HIBP, comparada a zero aparências de nossa própria senha “randomly mashed”.
Por que tantos sucessos?
A explicação de por que uma sequência de 12 caracteres aleatória aparece tantas vezes é fascinante e deprimente em igual medida.
O Twittersphere rapidamente descobriu que a sequência de teclas faz sentido no que é conhecido como teclado Bopomofo.
Esse é um sistema de teclado amplamente usado em Taiwan para inserir palavras taiwanesas como caracteres silábicos, construindo caracteres chineses ao longo do caminho enquanto você digita.
“O nome Bopomofo é um pouco como o alfabeto da palavra inglesa, que vem das duas primeiras letras gregas, alfa e beta, ou o árabe abjad, que recebeu o nome do som das quatro primeiras consoantes árabes. Bopomofo refere-se aos primeiros quatro sons do silabário taiwanês (o nome dado ao que é essencialmente um alfabeto de sons distintos) conhecido como Zhuyin”.
Como o fã do Twitter e cientista Peter Barfuss, que é de Paris, rapidamente apontou:

A verdade simples é que a repetição incomum de ji32k7au4a83 não é tão incomum, afinal.
Tudo isso nos lembra que pelo menos alguns usuários em Taiwan têm exatamente os mesmos hábitos de senha incorretos que o resto de nós.
Tudo o que existe sobre os amantes do direito em Taiwan tem os mesmos hábitos de segurança incorretos que o resto de nós.
Caso você esteja se perguntando, a senha mypassword do caractere romano foi repetida 38.621 vezes nos dados de HIBP, enquanto o segredo da senha não-tão-secreto mencionado acima ficou em 159º lugar, usado 226.313 vezes.
O que fazer?
O randomness, geralmente não é a aleatoriedade: O fato de um monte de dados “parecer” aleatório não significa nada e nunca pode por conta própria. Quando você está avaliando se algo é aleatório ou não, é necessário abordar todo o histórico desses dados, de como eles foram gerados, onde foram usados, o que aconteceu a seguir e se foram reutilizados de forma inadequada.
Senhas adequadas são importantes: Remover o teclado é melhor do que usar o nome do seu gato, mas, como explicamos acima, você geralmente acaba escolhendo uma pequena fração do espaço de senha disponível se usar um gerador aleatório decente.
A autenticação de dois fatores é sua amiga: Essa história é um lembrete simples, mas muito eficiente, de como as violações de senha são predominantes e de que, se você estiver enviando senhas para websites, mesmo que temporariamente, você não terá controle sobre o quão bem ou mal eles tratarão posteriormente essa senha. Um segundo fator, como um código de login único, torna a aquisição de conta muito mais difícil para os hackers.