Um campo rotulado como número de conta não é automaticamente uma referência pública, e o rótulo não é o teste. O teste é o que a posse permite: se conhecer o número inicia sessão em nome de alguém, descarrega um perfil de ligação ou autoriza um dispositivo, esse número é uma credencial com um ciclo de vida. Executo as cinco verificações abaixo sempre que um serviço entrega uma identidade numérica e a chama inofensiva. Cada uma produz uma linha num registo breve, e o registo é o resultado, não um veredicto sobre o produto.

Inventarie o que a posse realmente concede

Anote separadamente cada ação que o número desbloqueia. Iniciar sessão num portal, obter um ficheiro de configuração, autorizar um novo dispositivo e fornecer um início de sessão de túnel aceite são autoridades diferentes, e um serviço pode implementar uma sem as outras. Um portal que aceita o número como único campo não lhe diz nada sobre como o túnel autentica o seu par mais tarde nem sobre como são derivadas as chaves de tráfego.

O modelo geral é fácil de enunciar: uma credencial de portador é aquela que o detentor pode usar sem provar a posse de uma chave criptográfica separada, que é a distinção que RFC 6750 traça para os tokens. É uma comparação, não a afirmação de que um serviço baseado num número implementa OAuth. Se o detentor não precisa de mais nada, trate o número como um segredo de portador e classifique o resto do desenho em conformidade.

Proteja-o como um segredo, não como uma referência

O armazenamento decorre da classificação. Um valor que inicia sessão pertence a um gestor de palavras-passe, não a uma captura de ecrã, ao histórico da área de transferência, a uma mensagem de chat ou a uma nota do navegador. As capturas de ecrã são a fuga habitual: o número é curto e parece inofensivo, por isso acaba num tópico de apoio que sobrevive ao dispositivo de onde veio.

O phishing é o outro modo de falha, e não se importa com o quão aleatório é o número. Um impostor que quer o valor pedir-lhe-á que o cole num formulário, e uma credencial que nunca expira e não tem segundo fator vale o esforço. Chegue ao caminho de início de sessão a partir de um marcador ou de um endereço conhecido, não de uma ligação numa mensagem que também pede o número.

Trate o material de recuperação como parte do segredo. Se o operador também emitiu um código de recuperação, um PIN ou um endereço de e-mail que pode repor a conta, são credenciais separadas com o mesmo requisito de proteção. Um único canal de reposição desprotegido transforma todos os outros controlos em decoração.

Verifique em conjunto a resistência às tentativas e a limitação de taxa

O comprimento só tem significado ao lado do método de geração. Um número longo produzido por uma sequência previsível é mais fraco do que um valor curto produzido por um gerador criptográfico, e um número impressionante de dígitos não estabelece imprevisibilidade. Pergunte como o valor é gerado antes de raciocinar sobre a dificuldade de o adivinhar.

A resistência às tentativas, por si só, também não sobrevive a uma taxa de tentativas ilimitada. Os controlos que interessam são os que o operador implementa: contadores de tentativas falhadas, bloqueios, limitação por origem e se um número errado é distinguível de um inexistente. Se o serviço o suportar, uma tentativa falhada mostra-lhe como é o erro e se aparece um contador de novas tentativas:

# one attempt, then read the response and any counter or delay
# do not script repeated guesses against a live account
curl -i -X POST https://portal.example.invalid/login -d "account=000000000000"

Registe o que a resposta revela. Um erro distinto para uma conta desconhecida é um oráculo de enumeração mesmo quando o número é impossível de adivinhar, e essa constatação pertence ao registo, quer possa corrigi-la do lado do cliente quer não.

Planeie a rotação e a revogação antes de precisar delas

Encontre o processo suportado para um número perdido ou exposto e escreva-o enquanto tudo funciona. A credencial da conta pode sequer ser substituída? A substituição invalida dispositivos já inscritos, sessões ativas ou configuração descarregada? Que material de recuperação exige o processo? Um serviço sem dependência de e-mail pode transferir mais responsabilidade de recuperação para o utilizador, o que torna o procedimento mais importante, não menos.

Separe a substituição da conta da revogação da credencial. Se o número autoriza o download de uma chave, certificado ou perfil, substituir o número pode deixar esse material descarregado válido, e revogar o material descarregado pode ser uma operação diferente com um responsável diferente. Não assuma que um campo alterado termina todas as ligações; verifique o modelo real do operador e anote onde o confirmou.

Documente a decisão e reexamine-a mais tarde

Mantenha um registo de uma página por serviço: que autoridades o número concede, onde é armazenado, quem o pode repor, que provas de utilização existem e o que faria na primeira hora após uma divulgação. Esse registo é o que transforma uma discussão sobre terminologia numa decisão que alguém pode auditar.

As afirmações de privacidade precisam do seu próprio âmbito. Um número gerado aleatoriamente pode continuar a ser um identificador estável que liga eventos de conta ao longo do tempo; a imprevisibilidade não é a não-ligação, e nenhuma das duas propriedades diz nada sobre os metadados de rede retidos. Compare desenhos completos em vez de contar campos num ecrã de início de sessão.

Antes de o arquivar:

  • Todas as autoridades que o número concede estão listadas, incluindo downloads e autorização de dispositivos.
  • Os canais de armazenamento e recuperação estão protegidos com o mesmo padrão que o próprio número.
  • O método de geração e os limites de taxa são conhecidos, não presumidos a partir do comprimento.
  • Existem um procedimento de substituição e um de revogação, e sabe qual anula qual.
  • O registo indica quem pode repor o valor e que provas permanecem após a utilização.

Artigos relacionados