Não é possível registrar Yubikey como passkeys para login sem senha

Estou enfrentando um problema estranho - não consigo registrar Yubikeys (estou usando a série 5 e tenho 4 delas) como passkeys em nenhum fórum discourse. Consigo registrar a passkey do meu celular Android e a passkey do meu Gerenciador de Senhas com sucesso.

Quando tento registrar a Yubikey, recebo o erro abaixo, sempre:

No entanto, uma chave residente é criada na minha Yubikey. Confirmo isso com ykman fido credentials list.
image

Essa chave, obviamente, não funciona quando tento fazer login novamente.

Posteriormente, tentei registrar a chave em minha própria instalação do discourse para verificar os logs e este é o erro que vejo:

COSE::MalformedKeyError (Entrada de chave CBOR malformada) lib/discourse_webauthn/registration_service.rb:161:in `extract_public_key_and_credential_from_attestation' lib/discourse_webauthn/registration_servic

Gostaria de entender se este é um problema conhecido, pois não encontrei nada no fórum sobre a Yubikey não funcionar. Se não for, ficarei feliz em compartilhar quaisquer detalhes adicionais que possam ser necessários.

2 curtidas

Não tenho certeza se uma yubikey seria um bom candidato para uma passkey, apenas o bio?

Erros não deveriam acontecer e deveríamos ter algumas yubikeys para testar. @pmusaraj ajudará a investigar isso.

EDIT O bio funciona como uma passkey. Não tenho certeza se algo além do bio é adequado como passkey? Você tem apenas 1 fator naquele ponto.

2 curtidas

Você pode registrar essas yubikeys em um aplicativo de senhas que não seja do Discourse, como Github, Google ou uma implementação de teste como https://www.passkeys.io/?

2 curtidas

@pmusaraj Sim, registrei-os com sucesso no Google, GitHub, Vercel e em alguns outros serviços e eles funcionam bem.

@sam O Yubikey Série 5 é um bom candidato para passkey porque combina algo que eu sei (PIN) e algo que eu tenho (o próprio token) para usar como passkey. Ele nem lista as chaves residentes sem o PIN. A série bio substitui o PIN pela biometria.

4 curtidas

Obrigado por verificar, @rishabhlakhotia. Vejo os erros em nossos logs no meta e a localização dessa falha é uma função geral de atestado de chave de segurança que não sofreu alterações nos últimos quatro anos. Ela também é usada pelo processo de chave de segurança 2FA.

Você consegue registrar a Yubikey como uma chave de segurança de autenticação de dois fatores aqui no meta?

2 curtidas

Qual é a saída de ykman list?

Meu YubiKey 5 NFC (5.1.2) funciona bem como uma chave de acesso aqui no Meta.

Eu me registrei com o Chromium e posso usá-lo para fazer login com Chromium, Firefox e Edge.

3 curtidas

Qualquer Yubikey com chaves residentes deve ser adequado, pois o navegador pode impor autenticação multifator nele: tanto a verificação de presença (tocar na chave) quanto a configuração do PIN do Yubikey.

6 curtidas

Sim, tenho todas as quatro Yubikeys registradas como Chaves de Segurança. Para possivelmente evitar quaisquer casos extremos, tentei novamente removendo duas delas como chaves de segurança para registrá-las novamente como passkeys, mas mesmo isso não funcionou.

Eu tenho YubiKey 5C NFC (5.4.3), e uso o navegador Chrome.

Eu sei que se uma chave tiver uma credencial de Chave de Segurança para um site, tentar usá-la como Passkey falhará, eu já passei por isso.

Mas remover a Chave de Segurança e registrar novamente como Passkey deve funcionar.

2 curtidas

ATUALIZAÇÃO: Graças à resposta de @supermathie, acabei de baixar o Firefox e tentei registrar a Yubikey e funcionou. Consegui registrar a mesma chave que estava dando erro no Chrome.

Curiosamente, uma vez registrada no Firefox, pude fazer login usando a mesma Yubikey no Chrome. Repeti o mesmo processo mais uma vez no Chrome, mas obtive o mesmo erro, mais uma vez.

Acho que podemos reduzir um pouco o problema.

3 curtidas

Você pode nos informar a versão do Chrome e FF que você tentou?

3 curtidas

Versão 120.0.6099.234 do Chrome (Build oficial) (arm64) e Versão 122.0.1 do Firefox (64 bits)

1 curtida

Encontrei o mesmo problema agora com um YubiKey 5C NFC (5.4.3) e um YubiKey Security Key (os azuis) com o Navegador Arc, ou seja, Chromium (122.0.6261.57) no macOS.

Fiz o mesmo com o Safari e funcionou perfeitamente. E assim como no seu caso, usar essas Passkeys não apresentou problemas com o navegador Chromium também.

3 curtidas

Olá, fico muito feliz por ter encontrado este tópico! Eu estava tentando desesperadamente adicionar minha YubiKey em uma instância do Discourse, o que não estava funcionando corretamente — então pensei, bem, talvez esses caras estejam auto-hospedando e tenham algum erro de configuração. Então pensei que poderia pesquisar no Google — e vi que meta.discourse.org parecia ter mencionado isso em algum momento.

Infelizmente, minha tentativa de configurar as coisas no Brave (Chromium) falhou completamente, como antes, e assim como o OP relatou.

Aqui está minha configuração:

  • macOS Big Sur 11.7.9 (20G1426) rodando em um antigo MacBook Pro da Apple.
  • YubiKey 5 NFC Firmware: 5.4.3

Navegadores:

  • Brave [Chromium] Versão 1.73.91 Chromium: 131.0.6778.85 (Build oficial) (x86_64)
  • Safari: [WebKit] 16.6.1 (16615.3.12.11.5, 16615)
  • Firefox: [Gecko] 133.0
  • Microsoft Edge: [Chromium] Versão 131.0.2903.70 (Build oficial) (x86_64)

Então, eu abri o Safari, procedi para adicionar uma chave de acesso, comecei com uma chave de acesso baseada em software, que o Safari gostou e o Discourse aceitou; em seguida, adicionalmente, tentei adicionar a YubiKey 5 NFC como uma chave de acesso e como uma confirmação adicional de 2FA — e o Discourse não teve problemas em aceitar tudo!

Uma vez configurado, testei com o Firefox, e funcionou imediatamente; o mesmo aconteceu com o Microsoft Edge. E, ao retornar ao Brave, ele agora funcionou com a YubiKey sem nenhum problema.

Parece que o único problema que o Discourse tem é com a comunicação inicial com a chave (ou, melhor dizendo, o que quer que permita que a chave seja ‘visível’ para o navegador) em navegadores baseados em Chromium. Uma vez que essa chave é atribuída ao Discourse, ela será facilmente aceita por qualquer outro navegador. Eu não testei no Safari para iOS (a YubiKey 5 NFC definitivamente funciona com ele também), mas suspeito seriamente que não haverá problemas lá também.

Agora terei que voltar a essas muitas configurações do Discourse em que me juntei sem sucesso e ver se elas funcionam agora! :smile_cat:

2 curtidas