Cihaza bağlı oturum kimlik bilgileri (DBSC), donanım destekli oturum güvenliği ekleyerek kimlik doğrulama sürecini güçlendirir.
Giriş
Birçok web sitesi, kullanıcı kimlik doğrulaması için uzun ömürlü çerezlere güvenir ancak bunlar oturum ele geçirmeye karşı savunmasızdır. Cihaza bağlı oturum kimlik bilgileri (DBSC), bu riski azaltmak için donanım destekli bir güvenlik katmanı ekleyerek oturumların belirli cihazlara bağlı olmasını sağlar.
Bu kılavuz, web uygulamalarındaki kimlik doğrulama akışlarını yöneten geliştiriciler için hazırlanmıştır. Bu makalede, DBSC'nin işleyiş şekli ve sitenize nasıl entegre edileceği açıklanmaktadır.
Cihaza bağlı oturum kimlik bilgilerinin işleyiş şekli
DBSC, genel olarak kullanıcının cihazıyla ilişkili bir şifreleme anahtarı çifti sunar. Chrome, bu anahtar çiftini giriş sırasında oluşturur ve varsa özel anahtarı Güvenilir Platform Modülü (TPM) gibi güvenli donanımda saklar. Oturumlarda kısa ömürlü çerezler kullanılır. Bu çerezlerden birinin süresi dolduğunda Chrome, bunları yenilemeden önce özel anahtarın sahipliğini kanıtlar. Bu işlem, oturum sürekliliğini orijinal cihaza bağlar.
Kullanıcının cihazı güvenli anahtar depolamayı desteklemiyorsa Cihaza bağlı oturum kimlik bilgileri, kimlik doğrulama akışını bozmadan sorunsuz bir şekilde standart davranışa geri döner.
Uygulamaya genel bakış
DBSC'yi uygulamanıza entegre etmek için aşağıdaki değişiklikleri yapmanız gerekir:
- Giriş akışınızı
Secure-Session-Registrationüstbilgisi içerecek şekilde değiştirin. - Aşağıdaki özelliklere sahip bir oturum kaydı uç noktası ekleyin:
- Kullanıcının oturumuyla bir ortak anahtar ilişkilendirir.
- Oturum yapılandırmasına hizmet eder.
- Kısa ömürlü çerezlere geçiş
- Çerez yenileme ve anahtar sahipliği doğrulamasını işlemek için yenileme uç noktası ekleyin.
Mevcut uç noktalarınızın çoğu için herhangi bir değişiklik yapmanız gerekmez. DBSC, ekleyici ve kesintisiz olacak şekilde tasarlanmıştır.
Gerekli olan kısa ömürlü bir çerez eksik olduğunda veya süresi dolduğunda Chrome, isteği duraklatır ve çerezi yenilemeye çalışır. Bu sayede uygulamanız, kullanıcının oturum açtığını doğrulamak için normal oturum çerezi kontrollerini kullanmaya devam edebilir. Bu, normal kimlik doğrulama akışlarıyla eşleştiğinden DBSC, oturum açma mantığınızda minimum değişiklikle çalışır.
Uygulama adımları
Bu bölümde, kimlik doğrulama sisteminizde yapılması gereken değişiklikler (ör. oturum açma akışınızı değiştirme, oturum kaydını işleme ve kısa ömürlü çerez yenilemelerini yönetme) açıklanmaktadır. Her adım, mevcut altyapınızla sorunsuz bir şekilde entegre olacak şekilde tasarlanmıştır.
Uygulama adımları, oturum açmış bir kullanıcının DBSC etkin olduğunda deneyimleyeceği ortak akışı takip eder: giriş sırasında kayıt ve ardından düzenli olarak kısa süreli çerez yenilemeleri. Uygulamanızın oturum hassasiyet düzeyine bağlı olarak her adımı bağımsız bir şekilde test edip uygulayabilirsiniz.

1. Giriş akışını değiştirme
Kullanıcı giriş yaptıktan sonra uzun ömürlü bir çerez ve Secure-Session-Registration üstbilgisiyle yanıt verin. Örneğin:
Başarılı oturum kaydından sonra aşağıdaki HTTP yanıt başlığı döndürülür:
HTTP/1.1 200 OK
Secure-Session-Registration: (ES256 RS256); path="/StartSession"
Set-Cookie: auth_cookie=session_id; max-age=2592000; Domain=example.com; Secure; SameSite=Lax
Cihaz güvenli anahtar depolamayı destekliyorsa Chrome, /StartSession
uç noktasıyla JSON Web Token (JWT) biçiminde bir ortak anahtar kullanarak iletişim kurar.
Bu örnekteki auth_cookie, oturum jetonunuzu temsil eder. Oturum yapılandırmanızdaki name alanıyla eşleştiği ve uygulamanızda tutarlı bir şekilde kullanıldığı sürece bu çerezi istediğiniz gibi adlandırabilirsiniz.
2. Oturum kaydı uç noktasını uygulama
/StartSession şirketinde sunucunuzun şu özelliklere sahip olması gerekir:
- Alınan ortak anahtarı kullanıcının oturumuyla ilişkilendirin.
- Oturum yapılandırmasıyla yanıt verme
- Uzun süreli çerezi kısa süreli bir çerezle değiştirin.
Aşağıdaki örnekte, kısa ömürlü çerez 10 dakika sonra sona erecek şekilde yapılandırılmıştır:
HTTP/1.1 200 OK
Set-Cookie: auth_cookie=short_lived_grant; Max-Age=600; # Expires after 10 minutesSet-Cookie: Domain=example.com; Secure; SameSite=Lax
{
"session_identifier": "session_id",
"refresh_url": "/RefreshEndpoint",
"scope": {
"origin": "https://example.com",
"include_site": true,
"scope_specification": [
{ "type": "exclude", "domain": "*.example.com", "path": "/static" }
]
},
"credentials": [{
"type": "cookie",
"name": "auth_cookie",
"attributes": "Domain=example.com; Secure; SameSite=Lax"
}]
}
3. Yenileme uç noktasını uygulama
Kısa ömürlü çerez sona erdiğinde Chrome, özel anahtarın sahipliğini kanıtlamak için bir yenileme akışı başlatır. Bu işlem, hem Chrome hem de sunucunuzun koordineli işlemlerini içerir:
Chrome, kullanıcının isteğini uygulamanıza erteler ve
/RefreshEndpointadresine yenileme isteği gönderir:POST /RefreshEndpoint HTTP/1.1 Sec-Secure-Session-Id: session_idSunucunuz bir sorguyla yanıt verir:
HTTP/1.1 403 Forbidden Secure-Session-Challenge: "challenge_value"Chrome, depolanan özel anahtarı kullanarak sorguyu imzalar ve isteği yeniden dener:
POST /RefreshEndpoint HTTP/1.1 Sec-Secure-Session-Id: session_id Secure-Session-Response: <JWT proof>Sunucunuz, imzalı kanıtı doğrular ve yenilenmiş kısa ömürlü bir çerez yayınlar:
HTTP/1.1 200 OK Set-Cookie: auth_cookie=short_lived_grant; Max-Age=600; Domain=example.com; Secure; SameSite=LaxChrome, yenilenen çerezi alır ve orijinal ertelenen isteği sürdürür.
Alternatif entegrasyon kalıbı
Siteler, dayanıklılığı artırmak için kısa ömürlü çerezin yanı sıra ikinci bir DBSC dışı çerez ekleyebilir. Bu uzun ömürlü çerez yalnızca yeni kısa ömürlü jetonlar vermek için kullanılır ve gerçekten kimliği doğrulanmamış istekler ile geçici DBSC hataları arasında ayrım yapmaya yardımcı olur.
- DBSC başarısız olsa bile uzun ömürlü çerez kalıcı olur.
- Kısa ömürlü çerez, DBSC kullanılarak yenilenir ve hassas işlemler için gereklidir.
Bu kalıp, sitelere uç durumların nasıl ele alınacağı konusunda daha fazla kontrol sağlar.
Uyarılar ve yedek davranış
Chrome, aşağıdaki senaryolarda DBSC işlemlerini atlayabilir ve istekleri DBSC tarafından yönetilen kısa ömürlü çerez olmadan gönderebilir:
- Yenileme uç noktasına ağ hataları veya sunucu sorunları nedeniyle ulaşılamıyor.
- TPM meşgul veya imzalama hatalarıyla karşılaşıyor. TPM, sistem süreçleri arasında paylaşıldığı için aşırı yenileme işlemleri, TPM'nin hız sınırlarını aşabilir.
- DBSC tarafından yönetilen kısa ömürlü çerez, üçüncü taraf çerezidir ve kullanıcı, tarayıcı ayarlarında üçüncü taraf çerezlerini engellemiştir.
Bu durumlarda Chrome, uzun ömürlü çerez varsa onu kullanmaya geri döner. Bu yedek yalnızca uygulamanızda hem uzun ömürlü hem de kısa ömürlü çerez varsa çalışır. Aksi takdirde Chrome, isteği çerez olmadan gönderir.
Özet
Cihaza Bağlı Oturum Kimlik Bilgileri, uygulamanızda minimum değişiklikle oturum güvenliğini artırır. Oturumları belirli cihazlara bağlayarak oturum çalınmasına karşı daha güçlü koruma sağlar. Çoğu kullanıcı herhangi bir kesinti yaşamadan bu özellikten yararlanır. DBSC, desteklenmeyen donanımlarda sorunsuz bir şekilde devre dışı kalır.
Daha fazla bilgi için DBSC spesifikasyonuna bakın.