비밀번호 없는 로그인용 패스키로 Yubikey 등록이 안 됩니다

이상한 문제를 겪고 있습니다. 어떤 Discourse 포럼에서도 Yubikey(5세대, 4개 보유)를 패스키로 등록할 수 없습니다. 안드로이드 폰의 패스키와 비밀번호 관리자의 패스키는 정상적으로 등록할 수 있습니다.

Yubikey를 등록하려고 하면 항상 아래 오류가 발생합니다:

그러나 Yubikey에는 상주 키(resident key)가 생성됩니다. ykman fido credentials list 명령어로 확인했습니다.

image

물론, 이 키는 다시 로그인하려고 할 때 작동하지 않습니다.

이후 로그를 확인하기 위해 제 자체 Discourse 설치 환경에서 키를 등록해 보았는데, 다음과 같은 오류가 표시됩니다:

COSE::MalformedKeyError (Malformed CBOR key input) lib/discourse_webauthn/registration_service.rb:161:in `extract_public_key_and_credential_from_attestation' lib/discourse_webauthn/registration_servic

포럼에서 Yubikey가 작동하지 않는 문제에 대해 아무것도 찾을 수 없었기 때문에, 이것이 알려진 문제인지 이해하고 싶습니다. 그렇지 않다면, 필요한 추가 세부 정보를 기꺼이 공유하겠습니다.

2개의 좋아요

Yubikey가 패스키에 적합한지, 아니면 Bio 모델만 그런지 확실하지 않습니다.

에러는 발생하지 않아야 하며, 테스트할 Yubikey를 몇 개 보유해야 합니다. @pmusaraj가 이 문제의 분류를 도와줄 것입니다.

수정 Bio 모델은 패스키로 작동합니다. Bio 모델 외에는 패스키로 적합한 것이 없는지 확실하지 않습니다. 그 시점에는 1인자 인증만 가능하기 때문입니다.

2개의 좋아요

GitHub, Google 또는 https://www.passkeys.io/ 같은 테스트 구현체와 같은 비-Discourse 패스키 애플리케이션에 이 YubiKey를 등록할 수 있나요?

2개의 좋아요

@pmusaraj 네, Google, GitHub, Vercel 및 기타 몇 가지 서비스에서 성공적으로 등록했고 잘 작동하고 있습니다.

@sam Yubikey Series 5는 패스키에 좋은 후보입니다. 제가 아는 것(PIN)과 제가 가진 것(토큰 자체)을 결합하여 패스키로 사용하기 때문이죠. PIN이 없으면 리저던트 키(resident keys) 목록조차 표시되지 않습니다. Bio 시리즈는 PIN을 생체 인식으로 대체합니다.

4개의 좋아요

@rishabhlakhotia 확인해 주셔서 감사합니다. 메타의 로그에서 해당 오류를 확인했으며, 이 실패의 원인은 4년 전 이후로 변경 사항이 없는 일반적인 보안 키 인증(attestation) 함수입니다. 이 함수는 2단계 인증(2FA) 보안 키 프로세스에서도 사용됩니다.

메타에서 Yubikey를 2단계 인증 보안 키로 등록할 수 있으신가요?

2개의 좋아요

ykman list의 출력 결과는 무엇인가요?

저의 YubiKey 5 NFC (5.1.2)는 Meta에서 패스키로 정상적으로 작동합니다.

Chromium으로 등록했으며, Chromium, Firefox, Edge 모두에서 로그인에 사용할 수 있습니다.

3개의 좋아요

거주 키(resident keys)를 지원하는 Yubikey라면 모두 적합합니다. 브라우저가 이를 통해 다중 인자 인증을 강제할 수 있기 때문입니다. 즉, 키 존재 확인(키 터치)과 Yubikey PIN 설정을 모두 요구할 수 있습니다.

6개의 좋아요

네, Yubikey 4개 모두 보안 키로 등록해 두었습니다. 엣지 케이스를 피하기 위해 두 개를 보안 키에서 제거하고 패스키로 다시 등록해 보았지만, 그래도 작동하지 않았습니다.

저는 YubiKey 5C NFC (5.4.3)를 사용 중이며, Chrome 브라우저를 쓰고 있습니다.

사이트에 대한 보안 키 자격 증명이 있는 키를 패스키로 사용하려고 하면 실패한다는 사실을 알고 있습니다. 저도 그 문제를 경험해 보았습니다.

하지만 보안 키를 제거하고 패스키로 다시 등록하면 작동해야 합니다.

2개의 좋아요

업데이트: @supermathie님의 답변 덕분에 Firefox를 다운로드하여 Yubikey를 등록해 보니 정상적으로 작동했습니다. Chrome에서 오류가 발생했던 동일한 키를 Firefox에서는 성공적으로 등록할 수 있었습니다.

흥미롭게도 Firefox에서 등록한 후, Chrome에서도 동일한 Yubikey로 로그인할 수 있었습니다. 이후 Chrome에서 동일한 과정을 다시 반복해 보았지만, 다시 동일한 오류가 발생했습니다.

문제를 어느 정도 좁혀 볼 수 있을 것 같습니다.

3개의 좋아요

사용하신 Chrome 및 FF 버전을 알려 주실 수 있나요?

3개의 좋아요

Chrome 버전 120.0.6099.234 (공식 빌드) (arm64) 및 Firefox 버전 122.0.1 (64비트)

1개의 좋아요

방금 YubiKey 5C NFC (5.4.3)와 YubiKey Security Key(파란색 모델)을 macOS의 Arc 브라우저(Chromium 122.0.6261.57)에서 사용하다가 동일한 문제를 겪었습니다.

저도 Safari에서 동일한 작업을 해봤는데 정상적으로 작동했습니다. 그리고 질문자분과 마찬가지로, 이 패스키를 크로미움 브라우저에서도 사용했을 때 아무 문제가 발생하지 않았습니다.

3개의 좋아요

안녕하세요, 이 스레드를 찾게 되어 정말 기쁩니다! 저는 Discourse 인스턴스에 YubiKey를 추가하려고 애쓰고 있었는데 제대로 작동하지 않아서, 혹시 이 사이트들이 자체 호스팅을 하고 있고 어떤 설정 오류가 있는 건가 생각했어요. 그러다가 Google로 검색해 보자 meta.discourse.org가 이 문제를 언급한 적이 있는 것 같더라고요.

불행히도, Brave(Chromium)에서 설정을 시도해 보았지만, 이전과 마찬가지로 OP가 보고한 것과 똑같이 완전히 실패했습니다.

제 환경은 다음과 같습니다:

  • macOS Big Sur 11.7.9 (20G1426)을 구형 Apple MacBook Pro에서 실행 중.
  • YubiKey 5 NFC 펌웨어: 5.4.3

브라우저:

  • Brave [Chromium] 버전 1.73.91 Chromium: 131.0.6778.85 (공식 빌드) (x86_64)
  • Safari: [WebKit] 16.6.1 (16615.3.12.11.5, 16615)
  • Firefox: [Gecko] 133.0
  • Microsoft Edge: [Chromium] 버전 131.0.2903.70 (공식 빌드) (x86_64)

그래서 Safari를 실행하여 패스키 추가를 진행했습니다. 먼저 소프트웨어 기반 패스키를 사용했는데, Safari는 이를 허용했고 Discourse도 받아들였습니다. 그 후 추가로 YubiKey 5 NFC를 패스키 그리고 추가적인 2FA 확인 수단으로 시도해 보았는데, Discourse는 모든 것을 문제없이 받아들였습니다!

설정이 완료된 후 Firefox로 테스트해 보았더니 즉시 작동했고, Microsoft Edge에서도 마찬가지였습니다. 그리고 다시 Brave로 돌아갔을 때, YubiKey가 아무 문제 없이 이제 작동하기 시작했습니다.

Discourse의 유일한 문제는 Chromium 기반 브라우저에서 키와의 초기 통신(또는, 키가 브라우저에 ‘보이게’ 하는 것)인 것 같습니다. 한 번 그 키가 Discourse에 할당되면, 다른 어떤 브라우저에서도 쉽게 받아들여집니다. iOS용 Safari에서는 테스트해 보지 않았습니다(YubiKey 5 NFC는 iOS Safari에서도 확실히 작동합니다)만, 거기에선 문제가 없을 것이라고 강력히 추정합니다.

이제 성공적으로 가입하지 못했던 수많은 Discourse 설정으로 돌아가서 이제 잘 작동하는지 확인해 봐야겠습니다! :smile_cat:

2개의 좋아요