O analista Rafael implementou com sucesso uma função hash, ...

Próximas questões
Com base no mesmo assunto
Q3874309 Segurança da Informação
O analista Rafael implementou com sucesso uma função hash, que denominou H, para armazenar as senhas em um sistema. A fim de mitigar eventuais ataques de tabela arco-íris, Rafael implementou nas senhas a técnica padrão de salting, antes de aplicar a função H.
A técnica de salting implementada por Rafael mitiga o ataque de tabela arco-íris na medida em que:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: C

Fundamento decisivo: O elemento decisivo era saber que salt é um valor aleatório acrescentado antes do hash, o que impede o uso direto de tabelas arco-íris pré-computadas.

Tema central: Salting e rainbow tables
Análise das alternativas
A
Errada
Está errada porque salting não é armazenar parte da senha original junto com o hash. O critério técnico é outro: salt é um valor adicional aleatório, não um fragmento da própria senha.
B
Errada
Está errada porque atribui ao salting dois efeitos que não pertencem à técnica: menor custo computacional e aumento de colisões. O objetivo do salt é mitigar pré-computação de rainbow tables e diferenciar hashes de senhas iguais, não baratear o hashing nem elevar colisões.
C
Certa
A alternativa C está correta porque descreve o salting como a introdução de um valor aleatório único por senha antes do hashing, o que dificulta a pré-computação de tabelas arco-íris.
D
Errada
Está errada porque trocar caracteres da senha original por outros aleatórios não corresponde ao procedimento padrão de salt. O salt é adicionado à entrada do hash; ele não redefine a senha por substituição de caracteres.
E
Errada
Está errada porque descreve inserção de valor aleatório entre blocos de senhas e ainda vincula isso ao aumento de colisões. O critério correto é que o salt se associa a cada senha individualmente antes do hash e sua finalidade não é aumentar colisões.
Pegadinha da questão
A confusão explorada foi trocar o conceito exato de salt por outras formas de aleatorização, como alterar a senha, armazenar parte dela ou associar a técnica a colisões.
Dica para questões semelhantes
  • Se a questão falar em salting, procure a ideia de valor aleatório adicionado à senha antes do hash.
  • Para rainbow tables, o ponto-chave é a pré-computação: salt único por senha impede reaproveitamento amplo dessas tabelas.
  • Elimine alternativas que tratem salt como substituição de caracteres, fragmento da senha ou mecanismo para aumentar colisões.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

O que é TABELA ARCO-ÍRIS?

É um livrão pronto que o hacker cria antes do ataque.

Analogia da Pizzaria

Imagina que você é um ladrão ( só na história kkk).

Você pensa:

“Um dia eu vou invadir um sistema.

Então vou deixar tudo preparado antes.”

Você pega 1 milhão de senhas comuns:

123456

senha123

admin

12345678

E faz o seguinte:

1️⃣ Aplica o hash em cada uma

2️⃣ Anota tudo numa tabela

Fica assim:

Senha

Hash

123456

A8F9K2

admin

J29DK3

senha123

K392KS

Isso é a tabela arco-íris.

O que é pré-computação em tabela arco-íris?

Primeiro: o que é “pré-computação”?

Pré-computar =

Calcular antes

Deixar tudo pronto antecipadamente

É como fazer uma cola antes da prova.

Tabela Arco-íris (Rainbow Table) é um banco de dados pré-computado que mapeia hashes para senhas originais, permitindo ao atacante descobrir senhas ao comparar hashes capturados com os da tabela.

Salting é a técnica de adicionar um valor aleatório único (salt) a cada senha antes de aplicar a função hash.

Gabarito: C

Para entender de forma muito simples: imagine que dez usuários de um sistema criem a mesma senha clássica e fraca: . Se o sistema apenas aplicar a função hash (uma espécie de liquidificador que transforma a senha em um código fixo), todas as dez senhas vão gerar exatamente o mesmo código final na base de dados (Ex: ).

Um hacker que roube esse banco de dados usa uma Rainbow Table (Tabela Arco-Íris), que é basicamente um "dicionário de senhas prontas" contendo milhões de senhas comuns e seus respectivos códigos hash já calculados de antemão (pré-computados). O hacker só precisa cruzar os códigos para descobrir que aqueles dez usuários usam .

O Salting resolve isso jogando um "tempero" aleatório. Quando você cria a senha , o sistema gera um valor aleatório único (o salt), por exemplo, , junta com a sua senha () e só então calcula o hash. Para o próximo usuário que usar a mesma senha, o sistema gerará um salt diferente, resultando em um código hash completamente distinto. Isso inutiliza as tabelas arco-íris pré-computadas, pois o hacker teria que recalcular a tabela inteira para cada salt aleatório existente.

  • A) armazena parte da senha original juntamente com o hash, tornando a tabela arco-íris maior e mais custosa;

O sistema nunca armazena parte da senha original (em texto claro), pois isso comprometeria a segurança. O que se armazena ao lado do hash é apenas o próprio valor do salt (que é público e aleatório).

  • B) resulta em um hashing de menor custo computacional, aumentando as chances de colisão na tabela arco-íris;

O salting não diminui o custo computacional (ele adiciona uma etapa a mais, embora leve) e o objetivo da segurança nunca é aumentar as chances de colisão (colisão é quando duas senhas diferentes geram o mesmo hash, o que é um defeito).

  • D) troca caracteres da senha original por outros aleatórios antes do hashing, tornando a tabela arco-íris maior e mais custosa;

O sistema não altera ou troca os caracteres que o usuário digitou. Ele mantém a senha intacta e apenas adiciona (concatena) o valor aleatório ao final ou início dela.

  • E) adiciona um valor aleatório único entre blocos de senhas antes do hashing, aumentando as chances de colisão na tabela arco-íris.

O salt é gerado de forma individual por senha/usuário, e não "entre blocos de senhas". Além disso, repete o erro de dizer que busca aumentar colisões.

  • GABARITO: C

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo