Arch Linux(Manjaro)의 Windows에서 Yubikey를 사용하여 설정

Arch Linux(Manjaro)의 Windows에서 Yubikey를 사용하여 설정

Windows에 YubiKey가 설정되어 있고 Manjaro(Chrome)에서 사용하려고 합니다. 온라인에서 많은 것을 확인했지만 이 문제를 해결할 수 없는 것 같습니다.

을 사용하면 ykman list다음을 얻습니다.

YubiKey 5 NFC [OTP+FIDO+CCID] Serial: ...

나는 따라가려고 노력한다이 지침yubico웹 사이트 상에서 .

또한, 내가 찾은YubiKey에 관한 ArchWiki 기사: libu2f-host내 컴퓨터에 설치되어 있고 추가했습니다.70-u2f.rules/etc/udev/rules.d/디렉토리 에 추가합니다 (지침에는 를 설치할 때 규칙이 자동으로 추가되어야 한다고 나와 있지만 libu2f-host).

을 사용하면 ykman-gui다음과 같은 인터페이스가 표시됩니다. 여기에 이미지 설명을 입력하세요.

하지만 Chrome을 열고 YubiKey를 사용해야 하는 웹사이트에 로그인하려고 하면 다음 오류가 발생합니다.

여기에 이미지 설명을 입력하세요.

이는 다음을 의미합니다.

No valid client certificate found in the request. No valid certificates found in the user's certificate store.

YubiKey를 전혀 연결하지 않으면 동일한 오류 메시지가 표시된다는 점에 유의할 가치가 있습니다!

그렇다면 이 작업을 수행할 수 있는 방법이 있습니까? 누락된 단계가 있나요?

답변1

웹사이트가 클라이언트 인증서를 기다리고 있는 것으로 보이므로 FIDO U2F 모드가 아닌 YubiKey의 PIV(스마트 카드) 모드를 특별히 지원할 수도 있습니다.

이를 지원하려면 도구를 설치 ccid하고 패키지 한 다음 이를 사용하도록 Chrome 브라우저를 구성해야 합니다 . 이렇게 하려면 먼저 브라우저의 모든 인스턴스를 닫은 후 다음과 같은 명령을 사용합니다.openscnssmodutil/usr/lib/opensc-pkcs11.so

modutil -dbdir sql:$HOME/.pki/nssdb/ -add "Smart card/YubiKey PKCS#11" -libfile /usr/lib/opensc-pkcs11.so

기본적으로 YubiKey PIV 모드는 CCID 호환 스마트 카드 리더와 PKCS#11 호환 스마트 카드의 조합을 에뮬레이트합니다.

(원천:ArchWiki YubiKey 페이지의 이 섹션그리고CAC 스마트 카드 인증 지침.)

CCID는 USB로 연결된 스마트 카드 리더 및 기타 장치와 인터페이스하기 위한 하드웨어 표준이고, PKCS#11은 PIV 스마트 카드와 통신하기 위한 소프트웨어 표준입니다. 둘 사이의 격차를 해소하기 위해 ccid서비스 드라이버는 pcscd다음을 위한 PC/SC 소프트웨어 인터페이스를 제공합니다.어느스마트 카드와 유사한 장치어느opensc낮은 수준의 PC/SC 인터페이스를 사용하고 특히 PIV 목적을 위한 높은 수준의 PKCS#11 호환 소프트웨어 인터페이스를 제공하는 라이브러리를 제공합니다 . (예, 이것은 복잡하고 다층적인 시스템입니다.)

Chrome은 Chromium과 마찬가지로 $HOME/.pki/nssdb인증서 관리를 위해 NSS 공유 DB를 사용합니다.이 명령은 호환되는 스마트 카드 리더 및 유사한 장치에 액세스하는 데 사용되는 OpenSC PKCS#11 라이브러리에 대한 참조를 추가합니다. 기본적으로 공유 NSS DB(Chrome 포함)를 사용하는 모든 장치에 "다음과 같은 스마트 카드를 사용할 수 있습니다. 인증을 위한 클라이언트 인증서의 잠재적 소스가 있는 경우 해당 컴퓨터의 스마트 카드 판독기 하위 시스템과 통신하는 방법은 다음과 같습니다."

이 명령은 런타임에 YubiKey를 연결할 필요는 없지만 Chrome 브라우저가 연결되어 있어야 합니다.아니요명령이 실행되는 동안 실행: 브라우저가 실행 중이면 이미 NSS DB를 읽고 종료 시 이전 값으로 덮어쓰므로 명령 실행이 효과적으로 취소됩니다.

어떤 이유로 Chrome에는 이 설정을 구성하기 위한 GUI가 포함되어 있지 않으므로 modutil이를 구성하려면 패키지의 도구가 필요합니다.nss

이 설정 문제를 해결해야 하는 경우 먼저 YubiKey를 삽입하고 opensc-tool --list-readersOpenSC 레이어에서 YubiKey가 인식되는지 확인하세요. 응답은 다음과 유사해야 합니다.

$ opensc-tool --list-readers
# Detected readers (pcsc)
Nr.  Card  Features  Name
0    Yes             Yubico YubiKey OTP+FIDO+CCID 00 00

그래도 작동하지 않으면 pcscd데몬이 실행 중인지 확인하세요.

그런 다음 opensc-tool --reader N --name -vN은 이전 명령 출력의 가장 왼쪽 열에 있는 YubiKey의 "리더 번호"(스마트 카드 리더와 같은 다른 장치가 없는 경우 0이어야 함)를 사용하여 OpenSC가 PIV 콘텐츠가 존재하는지 인식하는지 확인합니다. YubiKey에 있습니다. 후자 명령에 대한 응답에는 다음 줄이 포함되어야 합니다.

Card name: Personal Identity Verification Card

문제 해결의 두 번째 부분은 Chrome을 실행하고 설정 -> 고급 -> 개인 정보 보호 및 보안 -> 인증서 관리로 이동하는 것입니다. 이 시점에서 YubiKey PIN을 입력하라는 팝업 창이 나타납니다. 이는 정보를 표시하기 위해 YubiKey에 액세스해야 하는 부작용입니다. 이는 이제 Chrome이 PKCS#11 라이브러리를 사용하여 OpenSC를 통해 YubiKey PIV 기능에 액세스할 수 있음을 확인합니다.

PIN을 입력한 후 인증서 관리에 표시되는 인증서 페이지에는 사용 가능한 하드웨어 지원 클라이언트 인증서가 하나 이상 있음이 표시되어야 합니다. 이 시점에서 인증서 보기를 선택할 수 있습니다. 정보는 YubiKey에 있어야 하는 정보와 일치해야 합니다. 즉, 내용에 대해 질문이 있는 경우 YubiKey를 발급한 사람이나 조직에 문의해야 합니다.

Chrome에서 YubiKey에 저장된 인증서를 볼 수 있으면 이제 YubiKey PIV 인증 웹사이트에 액세스할 수 있습니다. 브라우저가 YubiKey PIN을 묻는 메시지를 표시하면 브라우저를 종료하거나 YubiKey를 분리할 때까지 YubiKey에 액세스할 수 있으므로 브라우저 세션당 PIN을 여러 번 묻는 메시지가 표시되어서는 안 됩니다.

YubiKey를 삽입할 때 브라우저가 이미 실행 중이라면 YubiKey가 삽입되었음을 인식하는 데 몇 초 정도 걸릴 수 있습니다. 따라서 키를 삽입한 후 확인된 웹사이트를 클릭하기 전에 몇 초 정도 기다려야 합니다.

관련 정보