Três telefones, um router e uma verificação de monitorização ainda guardam a palavra-passe antiga, e um deles volta a ligar-se a cada noventa segundos. A palavra-passe da conta mudou há dez minutos, por isso cada um desses clientes está agora a enviar um valor que o servidor rejeita. É o momento em que o mito se quebra: uma alteração de palavra-passe toca na conta, não nas cópias do valor antigo que estão em cada dispositivo. O que se segue é o trabalho que a alteração não fez.

O mito: uma alteração, em todo o lado ao mesmo tempo

A crença é que uma alteração de palavra-passe encerra todas as sessões e obriga a um início de sessão limpo. Não é assim, porque o servidor só acompanha qual credencial aceitou por último, enquanto os clientes mantêm o que guardaram. Um dispositivo com uma palavra-passe guardada volta a tentá-la segundo o seu próprio calendário e falha em silêncio até alguém notar que a conta está bloqueada. Quando aceita que as cópias vivem fora da conta, a rotação deixa de parecer uma única ação.

Nada disto argumenta contra a rotação. Argumenta a favor de tratar as cópias guardadas como parte da alteração e não como um pensamento posterior. Um bloqueio vem geralmente de tentativas paralelas: cada dispositivo continua a enviar o valor antigo segundo o seu calendário até o contador disparar. A conta parece então atacada quando apenas lhe são oferecidas credenciais que ninguém substituiu. Essa distinção importa, porque a solução é uma lista de dispositivos e não uma política de bloqueio mais rígida.

Inventarie as cópias antes de rodar

Escreva o inventário antes de abrir o formulário da palavra-passe. Liste cada cliente, script, automatização e perfil gerido que se autentica como esta conta: o telefone que se liga sozinho, o router configurado há dois anos, o portátil que só acorda às segundas-feiras e a verificação de monitorização que tenta a cada minuto. Para cada um, anote onde está guardada a credencial, se o dispositivo pode ser alcançado durante a alteração e que via de recuperação existe se não conseguir voltar a ligar-se. É essa lista que transforma uma alteração arriscada numa alteração planeada, e tem de existir antes de a palavra-passe antiga deixar de funcionar.

Os dispositivos offline são o esquecimento clássico. Um portátil numa gaveta regressa três semanas depois e apresenta o valor obsoleto no pior momento possível. Anote também a localização e o calendário, porque terá de o perseguir em vez de esperar por ele.

Numa frota Linux a procura é mecânica e não engenhosa. Procure perfis que referenciem um ficheiro de credenciais, depois procure os próprios ficheiros de credenciais, porque é a segunda lista que tem de ser reescrita. Repita o exercício para clientes de ambiente de trabalho e telefones, onde o armazenamento é um perfil ou uma entrada de chaveiro e não um caminho. O objetivo é uma lista com que possa trabalhar, não uma análise que afirma encontrar cada cópia.

grep -rl auth-user-pass /etc/openvpn /etc/NetworkManager
grep -rl auth-user-pass ~/.config 2>/dev/null

Compare as cópias com as pessoas que as possuem. Um dispositivo que ninguém reclama é um dispositivo que ninguém vai atualizar, e é também o que mais provavelmente continuará a tentar.

Que segredo está realmente a rodar

Uma palavra-passe de conta é apenas uma credencial numa implementação de VPN. Uma frase de acesso de chave, uma identidade de certificado e um segredo de par opcional têm cada um a sua via de substituição e o seu proprietário. Alterar a palavra-passe da conta não faz nada por um dispositivo que se autentica com um certificado, e reemitir um certificado não faz nada por um cliente que guarda uma palavra-passe. Nomeie o segredo antes de nomear a solução.

Se a rotação é movida pela suspeita e não pela política, o processo de incidente prevalece sobre o plano de conveniência. Revogue o que as provas exigirem e aceite o trabalho extra na lista de dispositivos. Essa decisão pertence ao responsável do incidente, não a quem tem por acaso o formulário de reposição da palavra-passe.

Substitua o valor guardado onde ele vive

Altere a credencial através do mecanismo que o serviço documenta, depois atualize a cópia guardada ou execute o fluxo de início de sessão em cada dispositivo que pretende manter. Não edite uma configuração gerada por trás de um gestor que a reescreve, porque o gestor restaura o valor mais antigo na execução seguinte e a edição torna-se uma falha adiada. Atualize a fonte que o gestor lê, ou use o armazenamento de credenciais do próprio cliente. De qualquer forma, o dispositivo tem de acabar com o valor novo no local onde o cliente lê de verdade.

Um cliente que guarda um ficheiro de palavra-passe precisa do ficheiro reescrito, enquanto um cliente que pergunta precisa de um início de sessão concluído. O NetworkManager guarda o segredo dentro do perfil de ligação, por isso a alteração passa pelo nmcli e não por um editor de texto:

nmcli connection modify work vpn.secrets "password=NEW"
nmcli connection up work

Um perfil que lê um ficheiro de credenciais é um terceiro caso. Substitua o conteúdo desse ficheiro, mantenha as permissões fechadas e recarregue o cliente em vez de editar o perfil que aponta para ele. O perfil não mudou; só o segredo que lê mudou.

Volte a ligar cada dispositivo previsto uma vez, deliberadamente, e veja quais falham. Se um dispositivo continuar a falhar, olhe para a conta para a qual aponta e para o armazenamento que lê antes de alterar a palavra-passe outra vez, porque uma segunda alteração multiplica as cópias a atualizar. Um dispositivo que falha duas vezes costuma apontar para a conta errada ou ler um armazenamento que ainda não encontrou. Corrija isso e volte a ligar.

As sessões e os tokens sobrevivem à palavra-passe

Alterar a palavra-passe não prova que as sessões existentes ou os certificados separados foram revogados. Alguns serviços mantêm uma sessão viva até expirar ou ser terminada explicitamente, e os tokens emitidos têm a sua própria vida útil. Verifique o que o serviço faz realmente em vez de assumir que a alteração foi global. Se a alteração foi movida pela suspeita, termine as sessões explicitamente e confirme o resultado.

A orientação sobre o ciclo de vida das credenciais no NIST SP 800-63B mantém autenticadores e sessões em categorias separadas, e é por isso que uma alteração de palavra-passe e um encerramento de sessão global são operações diferentes. Trate-os como duas tarefas com dois critérios de conclusão. A primeira termina quando o valor novo funciona, e a segunda quando as sessões antigas desapareceram.

Registe a conclusão sem escrever a palavra-passe nova no registo. Um registo de rotação que contenha a credencial é um novo incidente à espera num disco partilhado. Anote a data, os dispositivos atualizados e os dispositivos ainda pendentes.

Artigos relacionados