Meydan okuma karşılık verme temelli kimlik doğrulama
Kriptografik teknikler

Kriptografik olmayan kimlik onaylama, internetten önceki günlerde genellikle yeterliydi. O zamanlar, kullanıcılar parolalarını girerlerken, parolayı soranın erişmek istedikleri sistem olduğundan ve kimsenin hattı dinlemediğinden emindiler. Ancak, güvenli olmayan kanal problemini çözmek için daha gelişmiş bir yaklaşım gerekli. Birçok kriptografik çözüm 2 yönlü kimlik doğrulamayı içeriyor. Bu yöntemde hem kullanıcı hem de sistem paylaşılan sırrı (secret) bildiklerine karşı tarafa ikna etmek zorunda.
Bu uygulamayı gerçekleştirmenin bir yolu, parolayı rastgele oluşturulan meydan okumayı şifrelemek için kullanmak ve karşı tarafın da meydan okumanın karşılığını aynı şekilde şifreleyip yollaması ki böylece şifreyi bildiğini ve meydan okumayı çözebildiğini kanıtlamış olsun. Örneğin, Kerberos’ta, meydan okuma şifrelenmiş bir tam sayıdır. Karşılık ise bu sayının bir fazlasının şifrelenmiş halidir. Böylece meydan okumaya karşılık veren taraf meydan okumanın şifresini çözdüğünü, dolayısıyla anahtara sahip olduğunu kanıtlamış olur. Diğer türevlerinde ise, bir özet fonksiyonu (hash function), karşılık değerini bulmak amacıyla, parolanın ve rastgele bir değerin hash sonucunu bulmada kullanılır.
Bu tür şifrelenmiş ya da özet fonksiyonu kullanılan değişimler, dinlemeler karşısında parolanın direkt öğrenilmesini engeller. Bununla beraber, dinleyen kişinin parolanın ne olduğunu, sözlük ya da kaba kuvvet saldırılarıyla bulmasına yetecek kadar bilgi de sızdırabilir. Burada, her bir değişim için ayrı ayrı kullanılan rastgele değerin amacı tekrar saldırılarına (replay attack) karşı koymak için içindir. Bu saldırıda, değiştirilen veriyi dinleyen bir saldırgan, sonraki bir zamanda bu veriyi aynen göndererek taraflardan birini, kimliğinin doğrulanmış olduğuna dair kandırabilir.
Kimlik doğrulama protokolleri, genellikle kriptografik nonce’ları (bir kez kullanılan sayılar), her bir karşılığın eşsiz olduğundan emin olmak adına meydan okumada kullanırlar. Böylece, ortadaki adam (man in the middle) ve ardışık tekrar saldırılarına karşı koruma sağlanır. Eğer gerçek bir nonce oluşturmak pratik değilse, güçlü bir kriptografik olarak güvenli sözderastsal sayı üreteci ve özet fonksiyonu da bir kereden fazla ortaya çıkması oldukça düşük ihtimal sayılar üretebilir. Bu noktada zaman tabanlı nonce’lar kullanmamak, farklı zaman dilimindeki ve hassas olmayan saatlere sahip sunucuları yanıltacağından önemlidir.
Karşılıklı kimlik doğrulama, çift yönlü meydan okuma – karşılık verme el sıkışması uygulanarak sağlanır. Hem sunucu hem de kullanıcı, karşı tarafın sırrı bildiğinden ve hilekâr bir sunucunun gerçek sunucu yerine geçmeye çalışmadığından emin olurlar.
Meydan okuma – karşılık verme temelli kimlik doğrulama, şifreleme için oturum anahtarlarının değişiminde karşılaşılan problemi çözmede kullanılabilir. Anahtar türetme işlevi (key derivation function) kullanılarak, meydan okuma değeri ve sır tahmin edilemez bir oturum anahtarı oluşturmak için bir araya getirilebilirler. Bu yöntem, özellikle ortadaki adam saldırısına karşı etkilidir, çünkü saldırgan sırrı bilmeden meydan okumayı kullanarak oturum anahtarına ulaşamayacaktır ve böylece veri akışının şifresini de çözemeyecektir.