Pre-Shared Key (PSK), iki tarafın el sıkışmadan önce paylaştığı gizli bir anahtardır. TLS 1.3'te PSK hem oturum devamı hem de sertifikasız kimlik doğrulama için kullanılır; bu yüzden protokolde ayrı bir "oturum bileti" mekanizması yoktur, her şey PSK çerçevesinde tanımlanır.
İki PSK türü
- Resumption PSK: Başarılı bir el sıkışmadan sonra sunucunun verdiği bilet (NewSessionTicket) ile türetilir. Web tarayıcılarında gördüğünüz oturum devamı budur.
- Harici (external) PSK: Taraflar anahtarı önceden, başka bir kanaldan paylaşır; ör. IoT cihazı ve sunucusu. Sertifika altyapısı gerekmez.
Anahtar değişim modları
- psk_ke: Yalnızca PSK'dan anahtar türetilir. Hızlıdır ancak ileri gizlilik sağlamaz; PSK ele geçirilirse eski trafik çözülebilir.
- psk_dhe_ke: PSK ile birlikte (EC)DHE anahtar değişimi yapılır; ileri gizlilik korunur. Mümkün olduğunda tercih edilmelidir.
ClientHello'daki pre_shared_key eklentisi PSK kimliklerini ve bunlara ait bağlayıcıları (binder) taşır; binder, PSK bilgisine sahip olunduğunu doğrular.
Ne zaman kullanılır?
- Kaynak kısıtlı cihazlarda sertifika yönetiminin zor olduğu kapalı sistemlerde.
- Sunucu-sunucu iç bağlantılarında, anahtar dağıtımının güvenli yapılabildiği durumlarda.
- Herkese açık web sitelerinde PSK uygun değildir; ziyaretçilerle önceden paylaşılmış sır olamaz, bu yüzden sunucu kimliği SSL sertifikasıyla kanıtlanır.
Deneme örneği
openssl s_server -accept 4433 -tls1_3 -psk 1a2b3c4d5e6f -psk_identity cihaz01 -nocert
openssl s_client -connect localhost:4433 -tls1_3 -psk 1a2b3c4d5e6f -psk_identity cihaz01
Örnek anahtarlar yalnızca denemeye yöneliktir; gerçek kullanımda yeterince uzun, rastgele anahtarlar üretin ve güvenli saklayın. Komut bayrakları OpenSSL sürümüne göre değişebilir. Genel bakış için bilgi bankasına göz atın.
Ek notlar
- PSK ile kimlik doğrulamada anahtarın ele geçirilmesi, taraflardan birinin taklit edilmesine yol açar; anahtar yönetimi bu yüzden kritiktir.
- Her cihaza ayrı PSK vermek, tek ortak anahtara göre çok daha güvenlidir.
- Anahtarları düzenli yenileyin ve sızıntı durumunda iptal edebileceğiniz bir süreç tanımlayın.
Bu önlemler olmadan PSK, sertifikaların sağladığı ölçeklenebilir güveni sağlayamaz.
Özet: PSK, sertifikasız ama güvenli iletişim sağlar; uygulamada ileri gizlilik için psk_dhe_ke tercih edilmelidir.