Pergunta  
 
Rede de conhecimento computador >> Pergunta >> senhas >> Content
Como você pode redefinir as senhas dos usuários se conhecer a senha atual dele?
Você deve nunca Use a senha existente do usuário para redefini -la, mesmo que você o saiba. Essa é uma grande vulnerabilidade de segurança e uma violação das melhores práticas. Eis por que e como você deve * realmente * redefinir senhas:

Por que usar a senha existente está errado:

* Segurança comprometida: Se você puder usar a senha antiga para definir uma nova, qualquer pessoa que obtenha acesso a esse recurso (por exemplo, um funcionário desonesto, um hacker que compromete seu sistema) pode alterar silenciosamente as senhas de usuário e assumir contas sem que o usuário saiba.
* Perda de responsabilidade: Se você conhece a senha de um usuário, teoricamente pode executar ações como esse usuário. Isso impossibilita a auditoria e a responsabilidade. Você não pode provar que o usuário tomou a ação, como você poderia ter feito você mesmo.
* Princípios de armazenamento de senha: Os sistemas modernos nunca armazenam senhas em texto simples. Eles são *hashed *e frequentemente *salgados *. Mesmo que você * pudesse * obter o hash armazenado, usá -lo para definir uma nova senha derrota o objetivo do algoritmo de hash e apresenta vulnerabilidades. Tentar reverter um hash é computacionalmente difícil e potencialmente impossível (projetado dessa maneira!), Mas dar acesso à senha contorna a segurança.

A maneira correta de redefinir senhas (mesmo com acesso a administrador):

Os métodos adequados envolvem o usuário iniciando o processo de redefinição ou um administrador acionando uma redefinição que * força * o usuário a escolher uma nova senha no próximo login.

1. redefinição de senha iniciada pelo usuário (autoatendimento): Este é o método preferido.
* "Esquecido senha" Recurso: A maioria dos sites e aplicativos possui um link "Esquecido senha" ou "redefinir senha".
* Verificação de email: O usuário clica no link, insere seu endereço de e-mail (ou nome de usuário) e o sistema envia um email com um link exclusivo e limitado para uma página de redefinição de senha.
* Perguntas de segurança/opções de recuperação: Menos comum, mas ainda válido:o usuário responde a perguntas de segurança que eles configuraram anteriormente ou usa um método de recuperação predefinido (por exemplo, um número de telefone de recuperação).
* nova entrada de senha: O usuário clica no link, é levado para uma página em que pode entrar e confirmar uma nova senha. Essa nova senha é então com segurança hash e armazenada.

2. redefinição de senha iniciada pelo administrador (forçando uma alteração):

* Painel de administrador/ferramenta de linha de comando: O administrador usa uma ferramenta com permissões adequadas para redefinir o * estado * da senha, não para * definir * uma nova senha diretamente.
* sinalizador para alteração de senha: O sistema define um sinalizador na conta do usuário que os obriga a alterar sua senha na próxima vez que eles fizerem login.
* senha temporária (não recomendada): Em * alguns casos * muito específicos (e * apenas * se outras opções não estiverem disponíveis), um administrador poderá gerar uma senha * temporária *. O sistema * deve * forçar O usuário para alterá -lo para uma nova senha imediatamente após seu primeiro login com a senha temporária. Geralmente é uma prática ruim porque:
* Requer armazenar a senha temporária, mesmo brevemente.
* Os usuários não podem alterá -lo imediatamente, aumentando o risco.

Detalhes da implementação (variam por sistema/idioma):

O código e as etapas exatos dependem do idioma e da estrutura que você está usando (por exemplo, Python com Django, PHP com Laravel, Node.js com Express, etc.). Aqui está um esboço geral:

* back-end (lado do servidor):
* Hash de senha: Use um forte algoritmo de hash como BCRYPT, ARGON2 ou SCRYPT (não MD5 ou SHA1, que são considerados quebrados). As bibliotecas estão prontamente disponíveis para todos os principais idiomas.
* geração de sal: Gerar um sal exclusivo para cada senha. O sal é um valor aleatório combinado com a senha antes do hash. Isso evita ataques de mesa do arco -íris.
* armazenamento de senha: Armazene o * hash * e * sal * em seu banco de dados, nunca a senha de texto simples.
* Redefinir geração de token: Quando uma redefinição for solicitada, gere um token aleatório único (por exemplo, um UUID) e associe -o ao usuário no banco de dados. Inclua um registro de data e hora para expirar o token após um certo período (por exemplo, 1 hora).
* Envio de e -mail: Use uma biblioteca ou serviço para enviar e -mails. Certifique -se de que seus e -mails sejam formatados corretamente e não pareçam spam.
* Validação do token: Quando o usuário clicar no link de redefinição, valide o token em relação ao banco de dados, verificando que existe, não expirou e está associado ao usuário correto.
* Atualização de senha: Após a validação bem -sucedida, permita que o usuário insira uma nova senha, a hash com um novo sal e atualize o banco de dados. Invalidar ou excluir o token de redefinição.

* front-end (lado do cliente):
* Formulários seguros: Use https para criptografar a comunicação entre o navegador e o servidor.
* Medidor de força de senha: Forneça feedback visual ao usuário sobre a força de sua senha.
* Campo de confirmação: Exige que o usuário insira a nova senha duas vezes para evitar erros de digitação.

Exemplo (conceitual python/django):

`` `Python
de django.contrib.auth.hashers import make_password, check_password
de django.contrib.auth.models importa o usuário de importação
importar uuid
importar datetime

def Reset_password_request (email):
tentar:
usuário =user.objects.get (email =email)
reset_token =uuid.uuid4 ()
user.profile.reset_token =reset_token # assumindo que você tem um modelo de uso do usuário
user.profile.reset_token_expiry =dateTime.dateTime.now () + dateTime.timedelta (horas =1)
user.profile.save ()

# Enviar e -mail com reset_token
send_password_reset_email (user.email, reset_token)
retornar verdadeiro
Exceto user.doesnotexist:
Retorne false # ou lide com o erro adequadamente

def verify_reset_token (token):
tentar:
user =user.objects.get (perfil__reset_token =token, perfil__reset_token_expiry__gt =dateTime.dateTime.now ())
Retornar usuário
Exceto user.doesnotexist:
retornar nenhum

def set_new_password (usuário, new_password):
user.password =make_password (new_password) # hash a nova senha
user.profile.reset_token =nenhum # invalida o token
user.profile.reset_token_expiry =Nenhum
user.profile.save ()
User.Save ()
`` `

Considerações importantes de segurança:

* https: Sempre use https para criptografar a comunicação.
* Limitação da taxa: Implementar a limitação da taxa para evitar ataques de força bruta no terminal de redefinição de senha.
* Expiração do token: Defina um tempo de validade razoável para os tokens de redefinição.
* log: LOG PASSET RESET SOITOS E TENTAÇÕES PARA FINS FINS DE AUDITAÇÃO.
* auditorias de segurança regulares: Revise periodicamente sua implementação de redefinição de senha para identificar e corrigir possíveis vulnerabilidades.
* Princípio do menor privilégio: Conceda apenas as permissões mínimas necessárias aos administradores que podem iniciar as redefinições de senha.

Em resumo, conhecer a senha existente de um usuário deve * nunca * ser usado para redefini -la. Use os métodos seguros, iniciados pelo usuário ou iniciados pelo administrador (forçando a alteração no próximo login) descritos acima para proteger as contas de usuário e manter um sistema seguro.

Anterior :

Próximo :
  Os artigos relacionados
·Quando um cliente do Windows 95 é configurado como par…
·Como redefinir a senha do administrador para um Laptop …
·Quais comandos Linux podem ser usados ​​para definir um…
·Como você assina as coisas em um computador? 
·Por que você usa senhas? 
·Como acessar uma conta de administrador sem uma senha 
·Como remover uma senha de disco rígido Toshiba 
·Como limpar a senha do administrador 
·Como recuperar a senha do Outlook 
·Como redefinir a senha de administrador no modo de segu…
  Artigos em destaque
·Open Source Zip Password Recovery 
·Como redefinir a senha do administrador para um Laptop …
·Como cancelar AdBlock 
·Quantas pessoas podem assistir ao Disney Plus ao mesmo …
·Como consertar um morto Laptop Battery 
·Como consertar um Chromebook que não entra no modo de …
·Como acessar as pastas ocultas 
·Como desativar notificações de comentários do Jetpac…
·O que é um protocolo do IE? 
·Como você converte o tipo de arquivo de um vídeo baix…
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados