Articles

Sal (criptografia)

Para compreender a diferença entre quebrar uma única senha e um conjunto delas, considere um ficheiro com utilizadores e as suas senhas de hashed. Digamos que o ficheiro não está salgado. Então um atacante poderia escolher uma corda, chamar-lhe tentativa, e depois calcular o hash(tentativa). Uma vez que as funções de hash são um-para-um, segue-se que qualquer utilizador cujo hash é hash(tentativa) deve ter como palavra-passe a sua tentativa. Assim, cada partida quebra uma palavra-passe de utilizador, e a hipótese de uma partida aumenta com o número de palavras-passe no ficheiro. Em contraste, se forem utilizados sais, o atacante teria de calcular o hash(tentativa ||| sal), comparar com a entrada A, depois o hash(tentativa ||| sal), comparar com a entrada B, e assim por diante. Isto impede qualquer tentativa de rachar múltiplas palavras-passe (apenas quando se evita a reutilização de sal).

Salts também combatem a utilização de tabelas pré-calculadas para rachar palavras-passe. Uma tal tabela pode simplesmente mapear senhas comuns para os seus hashes, ou pode fazer algo mais complexo, como armazenar os pontos de início e fim de um conjunto de cadeias de hash pré-calculadas. Em qualquer dos casos, a salga pode defender-se contra a utilização de tabelas pré-calculadas, alongando os hashes e fazendo com que sejam extraídos de conjuntos de caracteres maiores, tornando menos provável que a tabela cubra os hashes resultantes. Em particular, uma mesa pré-calculada teria de cobrir o cordel em vez de simplesmente .

O sistema moderno de palavra-passe sombra, no qual os hashes de palavra-passe e outros dados de segurança são armazenados num ficheiro não público, atenua de certa forma estas preocupações. Contudo, permanecem relevantes em instalações multi-servidor que utilizam sistemas centralizados de gestão de palavras-passe para empurrar palavras-passe ou hashes de palavra-passe para sistemas múltiplos. Nessas instalações, a conta raiz em cada sistema individual pode ser tratada como menos confiável do que os administradores do sistema centralizado de senhas, pelo que vale a pena assegurar que a segurança do algoritmo de hashing da senha, incluindo a geração de valores únicos de sal, seja adequada.

Um outro (menor) benefício de um sal é o seguinte: dois utilizadores podem escolher a mesma cadeia de caracteres da sua senha, ou o mesmo utilizador pode escolher utilizar a mesma senha em duas máquinas. Sem um sal, esta palavra-passe seria armazenada como a mesma cadeia de hash no ficheiro da palavra-passe. Isto revelaria o facto de as duas contas terem a mesma palavra-passe, permitindo a qualquer pessoa que conheça uma das palavras-passe da conta aceder à outra conta. Ao salgar as palavras-passe com dois caracteres aleatórios, mesmo que duas contas utilizem a mesma palavra-passe, ninguém pode descobrir isto apenas lendo hashes.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *