Güvenen taraflar (RP'ler), ilişkili ortak anahtar kimlik bilgisinin AAGUID'sini inceleyerek geçiş anahtarının hangi geçiş anahtarı sağlayıcısı 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ş anahtarının sağlamlığıyla birlikte bu esneklik sayesinde, kullanıcı geçiş anahtarlarından birini kaybederek hesabın kilitlenmesine rağmen alternatif geçiş anahtarları kullanarak güvenilen tarafta oturum açabilir.
Bir RP'de birden fazla geçiş anahtarı yöneten kullanıcıların karşılaştığı zorluk, diğerlerinden belirli bir geçiş anahtarını düzenlemesi veya silme ihtiyacı duyduğunda doğru geçiş anahtarını belirlemektir. Kullanıcının kullanılmayan bir geçiş anahtarını kaldırmak istemesi buna örnek verilebilir. RP'lerin, 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, kullanıcıların geçiş anahtarını oluşturulduktan hemen sonra veya daha sonra adlandırmalarına da izin verebilir ancak çoğu kullanıcı bunu yapmaz. İdeal olarak geçiş anahtarları, istemciden gönderilen sinyalleri veya ortak anahtar kimlik bilgisine dahil edilen bilgileri yansıtacak şekilde otomatik olarak adlandırılır.
Tarayıcılar, güvenen 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 izin verir ve kullanıcı aracısı dizesi, gerçek geçiş anahtarı sağlayıcının kim olduğunu her zaman göstermez.
Geçiş anahtarı kaydında döndürülen ortak anahtar kimlik bilgisine dahil edilen Kimlik Doğrulayıcı 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ı kolayca bulabilmesi için bu sağlayıcıyı kullanabilir.
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 bir örneğini değil) tanımlayan benzersiz bir sayıdır. 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ı Android cihazda Google Şifre Yöneticisi'ni kullanarak geçiş anahtarı oluşturursa RP, "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4"
değerine sahip bir AAGUID alır. RP, geçiş anahtarı listesinde geçiş anahtarının Google Şifre Yöneticisi'nde oluşturulduğunu belirtmek için geçiş anahtarına ek açıklama ekleyebilir.
RP'ler, bir AAGUID'yi geçiş anahtarı sağlayıcıyla eşlemek için topluluk kaynaklı bir AAGUID deposunu kullanabilir. AAGUID'yi listede arayarak geçiş anahtarı sağlayıcının adını ve simgesi svg veri metnini bulabilirsiniz.
AAGUID'yi almak, çoğu WebAuthn kitaplığının sunduğu 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ı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'i kullanabilir. AAGUID'lerin topluluk tarafından sağlanan depoları, AAGUID'leri geçiş anahtarı sağlayıcılarla eşlemek için kullanılabilir.