신뢰 당사자 (RP)는 연결된 공개 키 사용자 인증 정보의 AAGUID를 검사하여 패스키가 생성된 패스키 제공업체를 결정할 수 있습니다.
패스키 관리의 어려움
패스키 사용의 이점 중 하나는 사용자가 단일 계정에 여러 개의 패스키를 만들 수 있다는 것입니다. 이러한 유연성과 패스키의 견고성이 함께 제공되므로 사용자가 패스키 중 하나를 분실하여 계정에 액세스할 수 없게 되더라도 대체 패스키를 사용하여 신뢰 당사자에 계속 로그인할 수 있습니다.
RP에서 여러 패스키를 관리하는 사용자가 해결해야 할 문제는 특정 패스키를 수정하거나 삭제해야 할 때 올바른 패스키를 식별하는 것입니다. 사용자가 사용하지 않는 패스키를 삭제하려는 경우를 예로 들 수 있습니다. RP는 패스키 목록에 생성일 및 마지막 사용 날짜와 같은 패스키 관련 정보를 첨부하는 것이 좋습니다. 이렇게 하면 사용자가 특정 패스키를 찾을 수 있습니다.
또한 RP는 사용자가 패스키를 생성하는 즉시 또는 그 이후에 패스키에 이름을 지정할 수 있도록 허용하지만, 대다수의 사용자는 그렇게 하지 않습니다. 클라이언트에서 전송된 신호 또는 공개 키 사용자 인증 정보에 포함된 정보를 반영하여 패스키의 이름을 자동으로 지정하는 것이 좋습니다.
브라우저는 신뢰 당사자가 패스키 이름을 지정하는 데 사용할 수 있는 사용자 에이전트 문자열을 제공하지만, 확장 기능이 있는 Android, iOS 또는 데스크톱 브라우저와 같은 플랫폼에서는 서드 파티 비밀번호 관리자가 패스키를 생성할 수 있으며, 사용자 에이전트 문자열이 실제 패스키 제공업체를 나타내지 않을 수도 있습니다.
RP는 패스키 등록 시 반환된 공개 키 사용자 인증 정보에 포함된 OTP 증명 전역 고유 식별자 (AAGUID)를 사용하여 패스키 제공업체를 확인하고 이를 사용하여 사용자가 올바른 패스키를 쉽게 찾을 수 있습니다.
AAGUID로 패스키 제공업체 확인
AAGUID는 인증자의 특정 인스턴스가 아닌 인증자의 모델을 식별하는 고유한 숫자입니다. AAGUID는 공개 키 사용자 인증 정보의 인증자 데이터의 일부로 찾을 수 있습니다.
<ph type="x-smartling-placeholder">RP는 AAGUID를 사용하여 패스키 제공업체를 식별할 수 있습니다. 예를 들어 사용자가 Google 비밀번호 관리자를 사용하여 Android 기기에서 패스키를 만들면 RP는 "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4"
의 AAGUID를 수신합니다. RP는 패스키 목록의 패스키에 주석을 달아 패스키가 Google 비밀번호 관리자에서 생성되었음을 나타낼 수 있습니다.
AAGUID를 패스키 제공업체에 매핑하기 위해 RP는 커뮤니티에서 제공하는 AAGUID 저장소를 사용할 수 있습니다. 목록에서 AAGUID를 조회하면 패스키 제공업체 이름과 아이콘 SVG 데이터 텍스트를 찾을 수 있습니다.
<ph type="x-smartling-placeholder">AAGUID 검색은 대부분의 WebAuthn 라이브러리에서 제공하는 기능입니다. 다음 예에서는 SimpleWebAuthn을 사용하는 서버 측 등록 코드를 보여줍니다.
// Import a list of AAGUIDs from a JSON file
import aaguids from './aaguids.json' with { type: 'json' };
...
// Use SimpleWebAuthn handy function to verify the registration request.
const { verified, registrationInfo } = await verifyRegistrationResponse({
response: credential,
expectedChallenge,
expectedOrigin,
expectedRPID,
requireUserVerification: false,
});
...
const { aaguid } = registrationInfo;
const provider_name = aaguids[aaguid]?.name || 'Unknown';
결론
AAGUID는 패스키를 생성한 패스키 제공자를 식별하는 고유한 문자열입니다. RP는 AAGUID를 사용하여 사용자가 패스키를 더 쉽게 관리할 수 있도록 합니다. 커뮤니티에서 제공한 AAGUID 저장소를 사용하여 AAGUID를 패스키 제공업체에 매핑할 수 있습니다.