AAGUID ile geçiş anahtarı sağlayıcısını belirleme

Güvenen taraflar (RP'ler), ilişkili ortak anahtar kimlik bilgisinin AAGUID'sini inceleyerek bir geçiş anahtarının hangi geçiş anahtarı sağlayıcı tarafından oluşturulduğunu belirleyebilir.

Geçiş anahtarı yönetimiyle ilgili zorluklar

Geçiş anahtarlarının avantajlarından biri, kullanıcıların tek bir hesap için birden fazla geçiş anahtarı oluşturmasına olanak tanımasıdır. Geçiş anahtarlarının sağlamlığıyla birlikte bu esneklik sayesinde, kullanıcı geçiş anahtarlarından birini kaybederek hesabının kilitlenmesi durumunda bile alternatif geçiş anahtarlarını kullanarak güvenen tarafta oturum açabilir.

Bir RP'de birden fazla geçiş anahtarı yöneten kullanıcılar için, belirli bir geçiş anahtarını düzenlemeleri veya silmeleri gerektiğinde doğru geçiş anahtarını belirlemek zor olabilir. Kullanıcının kullanılmayan bir geçiş anahtarını kaldırmak istemesi iyi bir örnektir. RP'lerin, geçiş anahtarı listesine geçiş anahtarıyla ilgili bilgileri (ör. oluşturma tarihi ve son kullanma tarihi) eklemesi önerilir. Bu sayede kullanıcılar belirli bir geçiş anahtarını bulabilir.

RP'ler, kullanıcıların geçiş anahtarlarını oluşturulur oluşturulmaz veya daha sonra adlandırmasına da izin verebilir ancak birçok kullanıcı bunu yapmaz. İdeal olarak, geçiş anahtarları istemciden gönderilen sinyalleri veya ortak anahtar kimlik bilgilerinde yer alan bilgileri yansıtacak şekilde otomatik olarak adlandırılır.

Tarayıcılar, geçiş anahtarlarını adlandırmak için güvenen tarafların kullanabileceği bir kullanıcı aracısı dizesi sağlar. Ancak Android, iOS veya uzantı özelliklerine sahip masaüstü tarayıcılar gibi platformlar, üçüncü taraf şifre yöneticileri tarafından geçiş anahtarı oluşturulmasına olanak tanır ve kullanıcı aracısı dizesi, gerçek geçiş anahtarı sağlayıcısının kim olduğunu mutlaka göstermez.

Geçiş anahtarı kaydında döndürülen ortak anahtar kimlik bilgisine dahil edilen Authenticator Attestation Globally Unique Identifier (AAGUID) ile RP'ler geçiş anahtarı sağlayıcısını belirleyebilir ve kullanıcıların doğru geçiş anahtarını bulmasına yardımcı olabilir.

AAGUID ile geçiş anahtarı sağlayıcısını belirleme

AAGUID, kimlik doğrulayıcının modelini (kimlik doğrulayıcının belirli örneğini değil) tanımlayan benzersiz bir sayıdır. AAGUID, ortak anahtar kimlik bilgisinin kimlik doğrulayıcı verilerinde yer alır.

Doğrulanmış kimlik bilgisi verilerini içeren, dahil edilen kimlik doğrulayıcı verilerini ve doğrulama ifadesini gösteren doğrulama nesnesi düzeni.
AAGUID, kimlik doğrulayıcı verilerinde bulunabilir.

RP'ler, geçiş anahtarı sağlayıcıyı tanımlamak için AAGUID'yi kullanabilir. Örneğin, bir kullanıcı Google Şifre Yöneticisi'ni kullanarak bir Android cihazda geçiş anahtarı oluşturursa RP, "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4" AAGUID'sini alır. RP, geçiş anahtarı listesinde geçiş anahtarını Google Şifre Yöneticisi'nde oluşturulduğunu belirtecek şekilde açıklama ekleyebilir.

Güvenlik ayarları sayfasındaki geçiş anahtarı ayarları, her geçiş anahtarıyla ilgili ayrıntılı bilgileri gösterir.
Geçiş anahtarı yönetimi kullanıcı arayüzü örneği.

RP'ler, bir AAGUID'yi geçiş anahtarı sağlayıcıyla eşlemek için topluluk kaynaklı bir AAGUID deposu kullanabilir. Listede AAGUID'yi arayarak geçiş anahtarı sağlayıcısının adı ve simge svg veri metni bulunabilir.

AAGUID'yi alma, çoğu WebAuthn kitaplığının sağladığı bir özelliktir. Aşağıdaki örnekte, SimpleWebAuthn kullanılarak sunucu tarafı kayıt kodu gösterilmektedir:

// 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';

Sonuç

AAGUID, geçiş anahtarı oluşturan geçiş anahtarı sağlayıcısını tanımlayan benzersiz bir dizedir. RP'ler, kullanıcıların geçiş anahtarlarını yönetmesini kolaylaştırmak için AAGUID'yi kullanabilir. AAGUID'leri geçiş anahtarı sağlayıcılarla eşlemek için topluluk kaynaklı bir AAGUID deposu kullanılabilir.