Pergunta  
 
Rede de conhecimento computador >> Pergunta >> senhas >> Content
Quando um usuário faz login no sistema como a verificação se a senha foi fornecida corretamente?
O processo de verificação da senha de um usuário envolve várias etapas, concentrando -se nas melhores práticas de segurança, em vez de armazenar a senha em texto simples. Aqui está um colapso de como ele normalmente funciona:

1. Armazenamento de senha (da maneira correta):

* hash: Em vez de armazenar diretamente a senha do usuário, o sistema armazena um hash * criptográfico * da senha. Um hash é uma função unidirecional; É fácil calcular o hash a partir da senha, mas praticamente impossível derivar a senha original do hash.
* salga: Para melhorar ainda mais a segurança, um salão * Salt aleatório é adicionado à senha antes da hash. O sal é uma sequência única e gerada aleatória de caracteres. Isso torna muito mais difícil para os invasores usar mesas de hash pré-computadas (tabelas de arco-íris) para quebrar senhas, mesmo que obtenham acesso ao banco de dados.

* O `sal 'é normalmente armazenado ao lado da senha` hash` no registro do usuário.
* Algoritmos fortes de hash: Os sistemas modernos usam algoritmos robustos de hash como:
* bcrypt: Algoritmo de hash adaptativo que é lento e computacionalmente caro, tornando-o muito resistente a ataques de força bruta. Inclui geração de sal e armazenamento dentro do próprio hash.
* Argon2: Um algoritmo de hash mais moderno e de memória, geralmente considerado o sucessor do BCRYPT.
* scrypt: Outra função de derivação -chave que é projetada para ser computacionalmente intensiva, dificultando a quebra de senhas.

2. Processo de login/autenticação:

1. entrada do usuário: O usuário insere seu nome de usuário e senha no formulário de login.

2. recuperar sal: O sistema recupera o * sal * associado ao nome de usuário inserido no banco de dados do usuário.

3. Hashing com sal: O sistema pega a senha inserida do usuário e o Salt recuperado *combina -os e aplica o mesmo algoritmo de hash que foi usado quando a senha foi originalmente armazenada.

4. Comparação: O hash resultante da etapa 3 é comparado ao hash de senha armazenada para esse usuário no banco de dados.

5. Verificação:
* Se os dois hashes correspondem: É altamente provável que o usuário tenha inserido a senha correta. O usuário é autenticado e uma sessão é estabelecida.
* Se os hashes não corresponderem: A senha inserida está incorreta. O usuário tem acesso negado e normalmente recebe uma mensagem de erro.

Por que isso é seguro:

* sem texto simples: O sistema * nunca * armazena a senha real no texto simples, portanto, mesmo que o banco de dados esteja comprometido, os invasores não terão acesso direto às senhas.
* sal previne os ataques de mesa de arco -íris: O sal exclusivo para cada usuário faz tabelas de arco-íris (tabelas de hash pré-computadas) ineficazes. Um invasor precisaria gerar uma tabela de arco -íris para * cada * sal, que é computacionalmente proibitivo.
* O hash lento evita ataques de força bruta: Os algoritmos modernos de hash (como BCRYPT, Argon2 e Scrypt) são deliberadamente projetados para serem lentos. Isso significa que um invasor não pode tentar um grande número de senha adivinha rapidamente.

Exemplo de código (conceitual - python com bcrypt):

`` `Python
importar bCrypt

def hash_password (senha):
"" "Hashes uma senha usando BCRYPT com um sal gerado aleatoriamente." ""
# Gere um sal
sal =bcrypt.Gensalt ()
# Hash a senha usando o sal
hashed_password =bcrypt.hashpw (senha.encode ('utf-8'), sal)
Retorne hashed_password, sal #return o hash e o sal para que o sal possa ser armazenado com o hash

def verify_password (Enterred_password, armazenado_hash, armazenado_salt):
"" "Verifica se a senha inserida corresponde ao hash armazenado." ""
# Hash a senha inserida com o sal armazenado
hashed_entered_password =bcrypt.hashpw (Enterred_password.encode ('utf-8'), armazenado_salt)
# Compare o hash gerado com o hash armazenado
retornar hashed_entered_password ==stored_hash

Exemplo de uso (ao criar um novo usuário):


senha ="mySecretPassword123"
hashed_password, sal =hash_password (senha)

Armazene o hashed_password e o sal no banco de dados (associado ao usuário)



Exemplo de uso (durante o login):


Enterred_password ="mySecretPassword123" #User fornece durante o login

Obtenha o armazenado_hash e armazenado_salt do banco de dados com base no nome de usuário


armazenado_hash =b '$ 2b $ 12 $ ek11we0gqj8dk9j7cqh9yoc9/s8/6rxlg13n/l604qg1v14k6ydna' # Exemplo - armazenado de cima
Stored_salt =B '$ 2b $ 12 $ ek11we0gqj8dk9j7cqh9yo' # Exemplo - armazenado de cima

Se verify_password (Enterred_password, armazenado_hash, armazenado_salt):
Print ("Senha verificada! Login bem -sucedido.")
outro:
print ("Senha incorreta. O login falhou."))

`` `

Considerações importantes:

* Complexidade da senha: Aplicar as regras de complexidade da senha (comprimento mínimo, caracteres necessários) para dificultar a adivinhação de senhas.
* Limitação da taxa: Implementar a limitação da taxa de login para evitar ataques de força bruta. Bloquear contas após um certo número de tentativas com falha.
* Autenticação de dois fatores (2FA): Use 2FA para uma camada extra de segurança. Mesmo que a senha esteja comprometida, um invasor ainda precisará de um segundo fator (por exemplo, um código de um aplicativo móvel).
* auditorias de segurança regulares: Realize auditorias regulares de segurança para identificar e abordar possíveis vulnerabilidades.
* Mantenha as bibliotecas atualizadas: Mantenha as bibliotecas e dependências de hash atualizadas para se beneficiar dos mais recentes patches de segurança.
* Mecanismos de redefinição de senha: Implementar mecanismos seguros de redefinição de senha usando questões de verificação de email ou segurança.

Ao usar esses princípios, os sistemas podem efetivamente verificar senhas enquanto protegem os dados do usuário do compromisso. É um aspecto crucial da segurança geral.

Anterior :

Próximo :
  Os artigos relacionados
·Como desbloquear as preferências do sistema se já est…
·Como você desbloqueia um laptop se a senha for esqueci…
·O G-MAIL senha é fácil? 
·Como faço para me livrar de uma senha necessária para…
·Como desativar a senha de login no Mac? 
·Qual utilidade é usada para criptografar uma senha par…
·Como você redefine a senha de email? 
·Qual é a diferença entre uma conta de usuário padrã…
·Como você pode obter a senha do Plantronics Explorer 2…
·Qual é a senha para Lincoln WiFi? 
  Artigos em destaque
·Como ligo o Screensaver 
·Como consertar o não upload do Google Fotos 
·Como ir para as configurações de fábrica em um compu…
·Como faço Reorganizar meus ícones do Windows 
·Como converter de áudio MP3 Formato de CD regular 
·Como mudar seu nome ou gênero no Tinder? 
·Como matar Hiberfil 
·Como remover o Microsoft Office XP 
·Como solucionar um laptop a uma TV RCA 
·Permissão negada ao excluir a chave do Registro 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados