Sobes.tech
Junior

Sunucudan istemciye hangi anahtarlar iletilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Başlık kurallara göre gerekmez.

Sunucudan istemciye, bağlam ve kullanılan protokole bağlı olarak çeşitli anahtarlar iletilebilir. Gönderilebilecek veya kararlaştırılabilecek anahtarların temel türleri:

  1. Halkalı Anahtarlar: Asimetrik kriptografide, sunucu kendi halka açık anahtarını istemciye iletebilir. Bu, şunlar için kullanılır:

    • İstemci tarafından şifreleme, yalnızca sunucu (ilgili özel anahtara sahip) tarafından çözülebilir.
    • Sunucu tarafından özel anahtarla oluşturulan dijital imzanın doğrulanması.
  2. Oturum Kimlikleri (Session IDs) / Oturum Tokenleri: Bunlar doğrudan kriptografik anahtarlar olmasalar da, kullanıcının oturumunu tanımlamak için anahtar görevi görürler. Sunucu, kimlik doğrulama sonrası benzersiz bir tanımlayıcı oluşturur ve bunu (genellikle çerez olarak) istemciye gönderir. İstemci, bu ID'yi sonraki isteklerde oturum durumunu korumak için kullanır.

  3. Simetrik şifreleme anahtarları: Simetrik anahtarlar nadiren doğrudan açık metin olarak iletilir, ancak genellikle güvenli bağlantı kurulumu sırasında (örneğin TLS/SSL protokolleriyle) oluşturulur veya kararlaştırılır. Sunucu ve istemci, güvenli bir şekilde ortak bir simetrik anahtar üzerinde anlaşmak için Diffie-Hellman algoritması veya varyantlarını kullanabilir. Bu simetrik anahtar, oturum boyunca tüm trafiğin şifrelenmesinde kullanılır.

  4. Kimlik doğrulama ve yetkilendirme tokenleri (örneğin JWT): Sunucu, başarılı bir kimlik doğrulama sonrası istemciye bir token (örneğin JSON Web Token) verebilir. Bu token, kullanıcının bilgilerini ve izinlerini içerir. İstemci, bu tokeni her istekte sunucuya göndererek kimliğini ve izinlerini doğrular. Token, kriptografik anahtar olmasa da, yalnızca sunucu (veya birkaç sunucu/hizmet) tarafından bilinen anahtarlar kullanılarak imzalanmış veya şifrelenmiş olabilir.

  5. API Anahtarları / İstemci gizli anahtarları: Bazı mimarilerde, sunucu, istemciye (örneğin, mobil uygulama veya başka bir hizmet) statik bir API anahtarı veya gizli anahtar sağlayabilir. Ancak, bu, istemci uygulamaları için daha az güvenlidir çünkü anahtarın ele geçirilmesi mümkündür.

  6. Sertifikalar: Sunucu, güvenli bağlantı kurulmasının başında SSL/TLS sertifikasını istemciye iletir. Sertifika, sunucunun halka açık anahtarını içerir ve güvenilir bir Sertifika Otoritesi tarafından imzalanmıştır. İstemci, sertifikayı kullanarak sunucunun kimliğini doğrular ve onun halka açık anahtarını alır.

HTTPS/TLS bağlamında halka açık anahtarın kullanımı örneği:

  1. İstemci TLS el sıkışmasını başlatır.
  2. Sunucu, halka açık anahtarını içeren sertifikasını istemciye gönderir.
  3. İstemci, sertifikayı (güven zinciri, geçerlilik, vb.) doğrular ve sunucunun halka açık anahtarını çıkarır.
  4. İstemci, oturum için geçici bir simetrik anahtar oluşturur.
  5. Bu simetrik anahtar, sunucunun halka açık anahtarı kullanılarak şifrelenir.
  6. Şifrelenmiş bu anahtar, sunucuya gönderilir.
  7. Sunucu, özel anahtarıyla oturum anahtarını çözer.
  8. Daha sonra, istemci ve sunucu arasındaki veri alışverişi, bu kararlaştırılan simetrik anahtar kullanılarak şifrelenir ve çözülür.

Anahtar noktalar:

  • Güvenlik nedenleriyle, sunucudan istemciye gizli/özel anahtarların doğrudan iletimi son derece önerilmez.
  • Çoğu zaman, sunucu halka açık anahtarlar, oturum kimlikleri, tokenler veya simetrik anahtarların kararlaştırılması ile ilgilenir.
  • Belirli anahtar türlerinin kullanımı, senaryoya bağlıdır (kimlik doğrulama, şifreleme, oturumun sürdürülmesi vb.).