Pular para o conteúdo
Skillpedia
Segurança35 mil · #5888

implementing-hardware-security-key-authentication

Implementa autenticação com chaves de segurança de hardware FIDO2/WebAuthn. Cobre registro, autenticação e fluxos de trabalho de credenciais residentes (senhas).

O que ela faz

Esta ferramenta ajuda a criar um sistema de login seguro usando chaves de segurança físicas (como YubiKey) ou recursos do seu dispositivo (como impressão digital). Ela substitui ou complementa senhas, tornando o acesso mais difícil para hackers.

Quando usar

  • ✓Quando você quer proteger contas importantes com um método extra de segurança.
  • ✓Ao construir um site ou aplicativo que precisa de logins mais seguros.
  • ✓Para permitir que as pessoas façam login sem senhas, usando apenas a chave de segurança.

Exemplo do que pedir para a IA

“Configure um login seguro para meu site usando chaves de segurança.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-hardware-security-key-authentication/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-hardware-security-key-authentication/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta configura o servidor para se comunicar com a chave de segurança. Ela gerencia o registro de novas chaves e a verificação delas durante o login, garantindo que apenas o dono da chave possa acessar.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-hardware-security-key-authentication

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-hardware-security-key-authentication/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Implementando Autenticação com Chave de Segurança de Hardware

Quando Usar

  • Implementando autenticação multifator (MFA) resistente a phishing usando chaves de segurança de hardware FIDO2 para contas de alto valor (administradores, desenvolvedores, usuários privilegiados)
  • Construindo um servidor de parte confiável (relying party) WebAuthn que suporte tanto autenticadores itinerantes (chaves de segurança USB/NFC) quanto autenticadores de plataforma (Windows Hello, Touch ID, biometria Android)
  • Migrando um sistema de autenticação existente baseado em senha para suportar senhas (credenciais detectáveis) como um fator de autenticação primário ou secundário
  • Registrando dispositivos YubiKey para a força de trabalho de uma organização, incluindo configuração de PIN, registro de credenciais e provisionamento de chaves de backup
  • Implementando fluxos de autenticação sem senha que estejam em conformidade com os requisitos NIST SP 800-63B AAL3 (nível de garantia do autenticador 3)

Não use sem HTTPS em produção (WebAuthn requer uma origem segura), para sistemas onde os usuários não podem acessar fisicamente uma porta USB/NFC, ou como o único fator de autenticação sem um mecanismo de recuperação para chaves perdidas.

Pré-requisitos

  • Python 3.10+ com fido2 (python-fido2 >= 2.0.0), flask e cryptography bibliotecas instaladas
  • Servidor web com HTTPS ativado (API WebAuthn requer contexto seguro; localhost é isento para desenvolvimento)
  • Chave de segurança de hardware compatível com FIDO2 (YubiKey Série 5, SoloKeys, Titan Security Key) ou autenticador de plataforma
  • Navegador web moderno que suporte a API WebAuthn (Chrome 67+, Firefox 60+, Safari 14+, Edge 79+)
  • Compreensão de criptografia de chave pública, protocolos de desafio-resposta e gerenciamento de sessão HTTP

Fluxo de Trabalho

Etapa 1: Configuração do Servidor da Parte Confiável

Configure a identidade e o servidor da parte confiável (RP) WebAuthn:

  • Definir identidade da RP: Crie uma PublicKeyCredentialRpEntity com o nome da parte confiável (nome de exibição mostrado aos usuários) e o ID da RP (o domínio efetivo do aplicativo). O ID da RP deve ser um sufixo de domínio registrável da origem -- por exemplo, example.com é válido para https://auth.example.com, mas other.com não é.
  • Inicializar Fido2Server: Instancie a classe Fido2Server da biblioteca python-fido2 com a entidade RP. O servidor lida com a geração de desafios, verificação de atestado e validação de asserção.
  • Configurar preferência de atestado: Defina a preferência de transporte de atestado para controlar se o servidor solicita prova da identidade do autenticador:
    • none: Nenhum atestado solicitado (mais simples, recomendado para a maioria das implementações)
    • indirect: O atestado pode ser fornecido, mas a CA pode anonimizá-lo
    • direct: Cadeia completa de atestado do fabricante do autenticador
    • enterprise: Atestado que identifica o dispositivo para ambientes gerenciados
  • Gerenciamento de sessão: Configure sessões do lado do servidor para armazenar o estado WebAuthn entre as fases de início e conclusão das cerimônias de registro/autenticação. Use cookies seguros, httponly com SameSite=Strict.
  • Armazenamento de credenciais: Projete o esquema do banco de dados para armazenar registros de credenciais: credential_id (binário), public_key (chave COSE), sign_count (uint32 para detecção de clone), user_id, created_at, last_used, display_name e transports (USB, NFC, BLE, interno).

Etapa 2: Cerimônia de Registro (Criação de Credencial)

Implemente o fluxo de registro WebAuthn para criar novas credenciais:

  • Iniciar registro: Chame server.register_begin() com a entidade do usuário (PublicKeyCredentialUserEntity contendo ID do usuário, nome de usuário e nome de exibição), a lista de credenciais existentes para o usuário (para evitar registro duplicado) e opções para user_verification e authenticator_attachment.
  • Critérios de seleção do autenticador:
    • authenticator_attachment: cross-platform restringe a autenticadores itinerantes (chaves USB/NFC)
    • authenticator_attachment: platform restringe a autenticadores integrados (Touch ID, Windows Hello)
    • Omitir este campo permite ambos os tipos
    • resident_key: required força a criação de uma credencial detectável (senha) armazenada no autenticador
    • user_verification: required impõe PIN ou verificação biométrica no autenticador
  • Cerimônia do lado do cliente: O navegador chama navigator.credentials.create() com as opções do servidor. O autenticador gera um novo par de chaves, armazena a chave privada em seu elemento seguro e retorna a chave pública, o ID da credencial, o objeto de atestado e o JSON dos dados do cliente.

…

Perguntas frequentes

Preciso de uma chave de segurança física?

Não necessariamente. Você pode usar chaves físicas (como YubiKey) ou recursos do seu computador/celular, como Windows Hello ou Touch ID.

O que é 'phishing-resistant'?

Significa que o sistema é muito mais difícil de enganar por meio de e-mails ou sites falsos, pois depende de um dispositivo físico ou biometria que o hacker não possui.

Posso usar isso em qualquer site?

É ideal para sites e aplicativos que você está construindo ou administrando. Para sites que você apenas usa, você pode ativar essa opção se o site oferecer.

Detalhes

Descrição original do autor

Builds a FIDO2/WebAuthn relying party server with the python-fido2 library, covering registration and authentication ceremonies, YubiKey enrollment, resident key (discoverable credential/passkey) workflows, and user verification policies. Use when implementing phishing-resistant MFA with hardware security keys, building a WebAuthn relying party, enrolling YubiKeys for a workforce, or migrating pas

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5888
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas