Pergunta  
 
Rede de conhecimento computador >> Pergunta >> senhas >> Content
Como você pode redefinir as senhas dos usuários se conhecer a senha atual dele?
Você está certo em ter cuidado com esse cenário. Embora tecnicamente viável em alguns sistemas, redefinir a senha de um usuário quando você já sabe que a senha atual deles geralmente é uma prática de segurança muito ruim e deve ser evitado sempre que possível. Aqui está o porquê e o que você deve fazer:

Por que é uma má ideia:

* Credenciais comprometidas: Conhecer a senha existente de um usuário sugere fortemente que a conta do usuário já foi comprometida. O invasor provavelmente conhece a mesma senha. Alterar a senha usando a senha existente como verificação não remove o acesso do invasor. Eles podem simplesmente mudar de volta ou continuar usando as sessões existentes.
* Quebra de confiança: Os usuários esperam que suas senhas sejam conhecidas apenas para si (e talvez salgadas e hashed cópias no sistema). Demonstrar que você sabe que a senha deles destrói essa confiança e cria um enorme risco de segurança.
* Questões de trilha de auditoria: A redefinição de uma senha "para" um usuário sem seu conhecimento ou iniciação dificulta o rastreamento de quem realmente iniciou a alteração e por quê. Isso pode prejudicar as investigações de incidentes de segurança.
* Bypass of Multi-Factor Autentication (MFA): Se o MFA estiver ativado, sabendo que a senha por si só deve * não * ser suficiente para redefinir a conta. A redefinição apenas com a senha existente ignora o segundo fator crítico.
* Potencial de abuso: Dando aos administradores a capacidade de redefinir senhas, sabendo que as atuais abrem a porta para insiders maliciosos, redefinindo as contas de propósitos nefastos (espionagem, roubo de dados etc.).
* Violações de conformidade de segurança: Muitos padrões de segurança (PCI DSS, HIPAA, SOC 2) exigem fortes práticas de gerenciamento de senhas, incluindo impedir que os administradores conheçam ou usem senhas de usuário.

O que você deve fazer (trate -o como uma conta comprometida):

1. Força uma redefinição de senha no próximo login: Este é o * mínimo * que você deve fazer. O usuário será solicitado a criar uma senha * nova * na próxima vez que fizer login. Isso quebra o acesso atual do invasor (supondo que eles estivessem usando a senha comprometida).

2. Força logout todas as sessões: Encerrar imediatamente todas as sessões ativas para o usuário afetado. Isso impede que um invasor que já ganhou acesso continuando a usar essas sessões.

3. Revogar as teclas/tokens da API: Se o usuário tiver alguma chave de API, tokens OAuth ou outros mecanismos de autorização, revogue -os imediatamente. Um invasor pode ter usado a senha comprometida para gerar novas chaves/tokens.

4. investigar: Investigue minuciosamente como a senha foi comprometida. Foi um ataque de phishing? Senha fraca? Viola de dados em outro site? Identifique a causa raiz para evitar compromissos futuros. Procure qualquer atividade suspeita que ocorra desde que a conta foi comprometida (por exemplo, acesso não autorizado, exfiltração de dados).

5. Ativar MFA (se já não estiver): Implemente a autenticação de vários fatores para todos os usuários. Isso adiciona uma camada crítica de segurança que torna muito mais difícil para os invasores obter acesso, mesmo que saibam a senha.

6. Revise os registros de segurança: Examine cuidadosamente os logs de atividades do usuário para obter sinais de acesso não autorizado, modificação de dados ou outro comportamento suspeito.

7. Informe o usuário: Informe imediatamente ao usuário que sua conta foi potencialmente comprometida e que eles precisam criar uma senha forte e exclusiva. Eduque -os sobre phishing e outras ameaças à segurança. Explique as etapas que você tomou para garantir a conta deles.

8. Considere uma auditoria de segurança completa: Se uma única conta estiver comprometida, poderá indicar uma vulnerabilidade de segurança mais ampla dentro do sistema. Considere a realização de uma auditoria de segurança abrangente para identificar e abordar quaisquer outras fraquezas em potencial.

Considerações técnicas de implementação (se você absolutamente precisar - mas novamente, *evite isso *):

Se, apesar de todos os avisos acima, você tiver uma situação muito específica e incomum em que acredita que * deve * redefinir a senha ao conhecer a antiga, o processo * pode * envolver o seguinte (mas esteja ciente das implicações de segurança):

1. acesso ao banco de dados (altamente arriscado):
* Se as senhas não forem armazenadas com segurança (por exemplo, não salgadas e com hash), você já está em uma situação muito ruim.
* Você precisaria de acesso direto ao banco de dados em que as credenciais do usuário sejam armazenadas.
* Você localizaria o registro do usuário e * cuidadosamente * atualiza o campo Senha com uma nova, forte e gerada senha gerada aleatoriamente.
* Você precisaria garantir que a nova senha esteja adequadamente salgada e com hash usando o mesmo algoritmo que as senhas existentes.

2. endpoint API (potencialmente menos arriscado, mas ainda ruim):
* Alguns sistemas * podem * ter um terminal de API administrativo projetado para redefinir senhas de usuário.
* *Idealmente *, esse endpoint exigiria forte autenticação e autorização para evitar o uso não autorizado.
* O terminal * pode * permitir que você especifique o nome de usuário ou o ID do usuário e forneça uma nova senha.
* *Mesmo neste caso *, verifique se o endpoint da API está devidamente protegido e auditado.

Exemplo (conceitual - e novamente, desencorajar):

`` `Python

Prática muito ruim - não use na produção


importar hashlib
OS de importação

def Reset_password_with_existing (nome de usuário, Old_password, new_password, db_connection):
"" "
Não use isso na produção. Isto é apenas para fins ilustrativos.

Esta função demonstra como você pode redefinir uma senha teoricamente
Conhecer o antigo, mas é uma terrível prática de segurança.
"" "

cursor =db_connection.cursor ()

# 1. Recupere o sal e a senha do usuário do banco de dados. (Assume que é armazenado dessa maneira)
cursor.execute ("Selecione Salt, hashed_password de usuários onde o nome de usuário =%s", (nome de usuário))
resultado =cursor.fetchOne ()

se não for resultado:
print ("Usuário não encontrado.")
retornar falso

sal, armazenado_hashed_password =resultado

# 2. Verifique a senha antiga (usando o algoritmo de sal e hash armazenado).
hashed_old_password =hashlib.sha256 ((Old_password + sal) .encode ('utf-8')). hexdigest ()

Se hashed_old_password! =stored_hashed_password:
Imprima ("Senha antiga incorreta")
retornar falso

# 3. Gere um novo sal e hash a nova senha.
new_salt =os.urandom (16) .hex () # gerar um forte sal aleatório
hashed_new_password =hashlib.sha256 ((new_password + new_salt) .encode ('utf-8')). hexdigest ()

# 4. Atualize o registro do usuário no banco de dados com a nova senha de sal e hash.
cursor.execute ("Usuários de atualização definem Salt =%s, hashed_password =%s onde o nome de usuário =%s",
(new_salt, hashed_new_password, nome de usuário))
db_connection.commit ()

Imprima ("Redefinição de senha (mas essa foi uma má ideia!).")
retornar verdadeiro


Exemplo de uso (não execute isso):


db =connect_to_database ()


RESET_PASSWORD_WITH_EXISTING ("TestUser", "Oldpassword", "NewPassword123", DB)


`` `

Considerações importantes:

* algoritmos de hash: Use algoritmos fortes e modernos de hash como BCRYPT, SCRYPT ou ARGON2. O SHA-256 (como mostrado no exemplo) é melhor que o MD5 ou o SHA-1, mas ainda não é a melhor opção para o hash de senha.
* salga: Sempre use um sal exclusivo e gerado aleatoriamente para cada senha. Os sais impedem ataques de mesa do arco -íris.
* Políticas de complexidade de senha: Aplicar regras de complexidade de senha fortes (comprimento mínimo, requisitos de caracteres).
* rotação regular de senha: Incentive os usuários a alterar suas senhas regularmente.
* gerentes de senha: Promova o uso de gerentes de senha para ajudar os usuários a criar e armazenar senhas fortes e exclusivas.

Em resumo:a capacidade de redefinir a senha de um usuário sabendo que sua senha atual é uma prática perigosa. Sempre o trate como um sinal de compromisso e siga as etapas recomendadas para proteger a conta e investigar a violação.

Anterior :

Próximo :
  Os artigos relacionados
·Como alterar a senha do Gmail em 5 minutos 
·do que eu fiz, o cara por trás das regras de senha ped…
·O que você se esqueceu da sua senha para o Windows XP?…
·Como alterar a senha da AOL no iPhone 
·Como faço para livrar meu computador de senhas antigas…
·O que você usa para criptografar todos os arquivos da …
·Como posso alterar meu nome de usuário e senha no comp…
·Como você quebra a senha do cartão de memória do Nok…
·O que acontece se você esquecer sua senha? 
·Como salvar automaticamente uma senha para um computado…
  Artigos em destaque
·Como usar o ScanDisk Com Vista 
·Por que o Boost não está disponível no Facebook? 6 m…
·Como extrair arquivos de um pacote MSI 
·Como formatar meu Dell Inspiron 6000 
·Como impedir o acesso ao Regedit 
·Eu gostaria de correr Karoke do meu laptop na TV? 
·Problemas de inicialização do computador 
·Como editar rolos usando o editor integrado 
·Como Registrar Controle OCX 
·Como converter meu Cubase Arquivos LE para MP3 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados