No Unix (e Linux), o envelhecimento de senha é um mecanismo de segurança que força os usuários a alterar suas senhas periodicamente. O objetivo é reduzir o risco de contas comprometidas, limitando a vida útil de qualquer senha. Aqui está um colapso dos principais conceitos:
ideia central: * Expiração baseada no tempo: Após um certo número de dias (definido pelo administrador do sistema), a senha de um usuário se torna "antiga" e exige que eles o alterem no próximo login.
como funciona (atributos -chave): *
`idade` em`/etc/shadow`: A implementação mais comum é gerenciada através do arquivo `/etc/Shadow` (que armazena informações de senha com segurança). Este arquivo contém atributos relacionados ao envelhecimento de senha para cada usuário. Os principais atributos que você pode ver são:
*
`last_changed` (última data de alteração): O número de dias desde a época (1 de janeiro de 1970) quando a senha foi alterada pela última vez. Este é o ponto de partida para calcular o envelhecimento.
*
`min_days` (idade mínima de senha): O número mínimo de dias que deve passar * antes de * um usuário pode alterar sua senha novamente. Isso impede os usuários de reverter imediatamente para uma senha antiga e potencialmente comprometida.
*
`max_days` (idade máxima de senha): O número máximo de dias em que uma senha pode ser válida. Depois disso, muitos dias, o usuário é forçado a alterá -lo no próximo login.
*
`warn_days` (período de aviso): O número de dias * antes * da expiração `max_days` de que o usuário começará a receber avisos sobre sua senha expirando. Isso lhes dá tempo para alterá -lo convenientemente.
*
`inactive_days` (período de inatividade): O número de dias após uma senha expirar que a conta está desativada. Efetivamente bloqueia o usuário.
*
`expire_date` (data de expiração da conta): Uma data fixa (dias desde a época) quando toda a conta se torna inutilizável. Este é um conceito separado, mas geralmente usado em conjunto com o envelhecimento de senha para gerenciar contas temporárias.
*
`flag`: Um sinalizador que pode ser usado para desativar o recurso de envelhecimento de senha ou para forçar uma alteração de senha no próximo login.
*
`passwd` comando: Usuários e administradores normalmente usam o comando `passwd` para alterar senhas. Quando um usuário altera sua senha, a data `last_changed` em`/etc/shadow` é atualizada.
*
Processo de login: Quando um usuário tenta fazer login, o sistema verifica a data `last_changed` em relação aos valores` max_days` e `warn_days` em`/etc/shadow`. Se a senha expirou, o usuário será solicitado a alterá -la * antes * eles podem acessar sua conta. Se a senha estiver se aproximando da expiração, uma mensagem de aviso será exibida.
Exemplo: Digamos que `/etc/shadow` tenha a seguinte entrada (simplificada) para um usuário chamado" John ":
`` `
John:$ 6 $ SOMESALT $ HASHSTRING:19400:7:90:7:-1 :::
`` `
Veja como interpretar isso (assumindo os significados padrão dos campos):
* `John`:nome de usuário.
* `$ 6 $ SOMESALT $ HASHSTRING`:Hash de senha.
* `19400`:` last_changed` (dias desde a época).
* `7`:` min_days` (deve esperar pelo menos 7 dias antes de mudar novamente).
* `90`:` max_days` (a senha expira após 90 dias).
* `7`:` warn_days` (avise o usuário 7 dias antes da expiração).
* `-1`:` inactive_days` (desativado). Não usado neste exemplo.
* `:::` - Data de expiração da conta (vazia, significando nenhuma expiração da conta)
Isso significa:
1. John mudou sua senha pela última vez no dia de 19400 (desde a época).
2. Ele deve esperar pelo menos 7 dias antes de alterá -lo novamente.
3. Sua senha expirará 90 dias após 19400.
4. Ele será avisado sobre a expiração 7 dias antes da data de validade.
Ferramentas para gerenciamento: *
`passwd` comando: Como mencionado, usuários e administradores usam `passwd` para alterar senhas.
*
`chage` comando: O comando `chage` (alterar a idade) foi projetado especificamente para gerenciar parâmetros de envelhecimento de senha em`/etc/shadow`. Os administradores o usam para definir o `min_days`,` max_days`, `warn_days` etc., para usuários individuais.
*
PAM (módulos de autenticação travável): O PAM é uma estrutura que permite personalizar mecanismos de autenticação. O envelhecimento de senha é normalmente tratado por módulos PAM, que fornecem flexibilidade na forma como é implementada. Você configura o PAM em arquivos em `/etc/pam.d/`.
*
`/etc/login.defs`: Este arquivo define os padrões em todo o sistema para o envelhecimento de senha e outros parâmetros relacionados ao login. Os valores definidos aqui são frequentemente usados como ponto de partida, a menos que seja substituído por configurações específicas do usuário em `/etc/Shadow`.
Por que usar o envelhecimento da senha? *
Mitigar a senha quebrando: Mesmo que uma senha seja fraca ou comprometida por ataques de força bruta ou ataques de dicionário, ela será alterada, limitando a janela de oportunidade do atacante.
*
Reduza o impacto das senhas reutilizadas: Muitos usuários reutilizam senhas em várias contas. Se um serviço estiver comprometido, as senhas do usuário em outros serviços estão em risco. Alterações regulares de senha pode ajudar a mitigar isso.
*
conformidade: Muitas políticas e regulamentos de segurança exigem o envelhecimento de senha como uma prática recomendada de segurança.
*
Ameaças internas: O envelhecimento de senha pode ajudar a mitigar os riscos de funcionários descontentes ou ex -funcionários que podem conhecer uma senha.
Desvantagens: *
aborrecimento do usuário: Os usuários geralmente encontram mudanças frequentes de senha irritantes, levando a:
*
Senhas previsíveis: Os usuários podem simplesmente aumentar um número no final de sua senha, tornando -os facilmente previsíveis.
*
Post-it Notas: A gravação de senhas derrota o objetivo.
*
fadiga de senha: Os usuários podem esquecer suas senhas com mais frequência, aumentando as chamadas de suporte técnico.
*
não aborda o phishing ou a engenharia social: O envelhecimento de senha sozinho não protege contra os usuários que distribuem suas senhas de bom grado.
Considerações modernas (além do envelhecimento da senha tradicional): Embora o envelhecimento de senha tenha sido uma prática de segurança de longa data, as recomendações modernas geralmente sugerem uma mudança para:
*
Senhas fortes: Aplicar os requisitos de complexidade de senha (comprimento, tipos de caracteres) e impedir que os usuários usem senhas fracas ou facilmente adivinhadas. Ferramentas como `pwquality` e módulos PAM ajudam com isso.
*
Autenticação multifatorial (MFA): Adicione uma camada extra de segurança além de apenas uma senha (por exemplo, um código de um aplicativo móvel).
*
gerentes de senha: Incentive os usuários a usar os gerentes de senha para gerar e armazenar senhas fortes e exclusivas para cada conta.
*
Monitoramento e alerta: Detecte a atividade suspeita de login (por exemplo, locais de login incomuns, tentativas de login com falha múltipla).
*
Detecção de senha comprometida: Use serviços que detectam se as senhas foram vazadas em violações de dados e notificam os usuários para alterá -los.
O envelhecimento da senha, por si só, não é mais considerado uma solução de segurança completa, mas ainda pode ser um componente útil em uma estratégia de segurança mais ampla, especialmente quando combinada com outras práticas recomendadas. A melhor abordagem depende das necessidades de segurança específicas e da tolerância a riscos da organização.