Bağlı taraflar (RP'ler), ilişkili ortak anahtar kimlik bilgisinin AAGUID'sini inceleyerek hangi geçiş anahtarı sağlayıcısının oluşturulduğunu belirleyebilir.
Geçiş anahtarı yönetimiyle ilgili sorunlar
Geçiş anahtarı kullanmanı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. Bu esneklik ve geçiş anahtarının dayanıklılığı sayesinde kullanıcı, geçiş anahtarlarından birini kaybederek hesabına erişimi engellese bile alternatif geçiş anahtarları kullanarak bağlı tarafta oturum açabilir.
Kısıtlanmış taraflarda birden fazla geçiş anahtarını yöneten kullanıcıların başarması gereken, kullanıcılar arasından belirli bir geçiş anahtarını düzenlemeleri veya silmeleri gerektiğinde doğru geçiş anahtarını belirlemektir. Kullanıcının kullanılmayan bir geçiş anahtarını kaldırmak istemesi iyi bir örnektir. Kısıtlanmış tarafların geçiş anahtarı listesine geçiş anahtarıyla ilgili bilgileri (ör. oluşturulma tarihi ve son kullanım tarihi) eklemesi önerilir. Bu sayede kullanıcılar belirli bir geçiş anahtarını bulabilir.
RP'ler ayrıca kullanıcıların geçiş anahtarını oluşturulduktan hemen sonra veya daha sonra adlandırmasına izin verebilir ancak birçok kullanıcı bunu yapmaz. İdeal olarak geçiş anahtarları, istemciden gönderilen sinyalleri veya ortak anahtar kimlik bilgisinde bulunan bilgileri otomatik olarak yansıtacak şekilde adlandırılır.
Tarayıcılar, tarafların geçiş anahtarlarını adlandırmak için 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. Kullanıcı aracısı dizesi, gerçek geçiş anahtarı sağlayıcısının kim olduğunu göstermeyebilir.
Geçiş anahtarı kaydında döndürülen ortak anahtar kimlik bilgisine eklenen Authenticator Onayı Genel Benzersiz Tanımlayıcı (AAGUID) ile RP'ler, geçiş anahtarı sağlayıcıyı belirleyip kullanıcıların doğru geçiş anahtarını kolayca bulmaları için kullanabilir.
Geçiş anahtarı sağlayıcıyı AAGUID ile belirleme
AAGUID, kimlik doğrulayıcının modelini tanımlayan benzersiz bir sayıdır (kimlik doğrulayıcının belirli bir örneğini değil). AAGUID, ortak anahtar kimlik bilgisinin kimlik doğrulayıcı verilerinin bir parçası olarak bulunabilir.
Kısıtlanmış taraf, geçiş anahtarı sağlayıcıyı tanımlamak için AAGUID kullanabilir. Örneğin, bir kullanıcı Google Şifre Yöneticisi'ni kullanarak bir Android cihazda geçiş anahtarı oluşturursa kısıtlanmış taraf, "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4"
değerindeki AAGUID'yi alır. Kısıtlanmış taraf, geçiş anahtarı listesindeki geçiş anahtarına not ekleyerek geçiş anahtarının Google Şifre Yöneticisi'nde oluşturulduğunu belirtebilir.
AAGUID'leri geçiş anahtarı sağlayıcıyla eşlemek için RP'ler topluluk kaynaklı AAGUID'lerden oluşan bir depo kullanabilir. Listede AAGUID'yi arayarak geçiş anahtarı sağlayıcısının adını ve simge svg veri metnini bulabilirsiniz.
AAGUID alma, çoğu WebAuthn kitaplığının sağladığı bir özelliktir. Aşağıdaki örnekte SimpleWebAuthn kullanan 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ıyı tanımlayan benzersiz bir dizedir. Kısıtlanmış taraf, kullanıcıların geçiş anahtarlarını yönetmesini kolaylaştırmak için AAGUID kullanabilir. AAGUID'lerin topluluk tarafından sağlanan depoları, AAGUID'leri geçiş anahtarı sağlayıcılarla eşlemek için kullanılabilir.