Needham–Schroeder protokolü

Needham–Schroeder protokolü her ikisi de Roger Needham ve Michael Schroeder  tarafından önerilen güvenli olmayan bir ağ üzerinde kullanılması amaçlanan iki anahtar taşıma protokolünden biridir. Bunlar:Needham-Schroeder Simetrik Anahtar Protokolü bir simetrik şifreleme algoritmasına dayalı protokoldür . Kerberos protokolünün temelini oluşturur. Bu protokol, genellikle daha fazla iletişimi korumak için bir ağ üzerindeki iki taraf arasında bir oturum anahtarı oluşturmayı amaçlamaktadır.Needham-Schroeder Açık Anahtar Protokolü açık anahtar şifrelemeye dayalı bir protokoldür. Bu protokol, bir ağ üzerinde iletişim kuran iki taraf arasında karşılıklı kimlik doğrulaması sağlamayı amaçlamaktadır, ancak önerilen biçiminde güvensizdir.Burada Alice (A) Bob (B) ile iletişimi başlatır. S, her iki tarafın da güvendiği bir sunucudur. İletişimde:Alice sunucuya kendini ve Bob'u tanımlayan bir mesaj gönderir ve sunuya Bob ile iletişim kurmak istediğini söyler.Sunucu  oluşturur ve Alice'e   ile şifrelenmiş bir kopyasını Bob'a iletmesi için ve bu Kab'nin bir kopyasını kendisinde tutması için yollar. Nonce Alice'e gelen mesajın güncel olduğunu ve server'ın bu belirli mesajı cevapladığını garanti etmektedir. Alice birçok kişi ile iletişim kurabileceği için Alice'in bu anahtarı paylaşması gereken kişi olan Bob'un ismini Alice ile mesajın bir içeriği olarak bu mesaj içerisinde paylaşılmaktadır.Alice anahtarı sunucu ile daha önceden paylaştığı anahtarla şifresini çözebilen Bob'a iletir ve böylece verilerin kimlik doğrulaması gerçekleşir.Bob Alice'e Kab ile şifrelenmiş bir nonce'ı kendisinin anahtara sahip olduğunu göstermek için gönderir.Alice, nonce üzerinde basit bir işlem yapar,yeniden şifreler,onu kendisinin hala hatta olduğunu ve anahtara sahip olduğunu doğrulamak için geri yollar.Protokol bir tekrarlama saldırısına karşı savunmasızdır (Denning ve Sacco  tarafından tanımlandığı gibi). Bir saldırgan daha eski, güvenliği ihlal edilmiş KAB kullanırsa mesajı kabul eden ve anahtarın taze olmadığını bilmeyen Bob'a yeniden mesajı oynattırabilir.Bu kusur Kerberos protokolünde bir zaman damgası eklenerek düzeltildi. Aşağıda tarif edildiği gibi nonces kullanımı ile de düzeltilebilir. Protokolün başında:Alice sunucuya kendisini ve Bob'u tanımlayan bir mesaj gönderir ve sunucuya Bob ile iletişim kurmak istediğini söyler.Protokol daha sonra yukarıdaki orijinal protokolde tarif edildiği gibi son üç adım ile devam eder. nin  'den farklı bir nonce olduğuna dikkat edilmesi gerekmektedir. Bu yeni nonce'nin dahil edilmesi, güvenliği ihlal edilmiş bir  sürümünün  tekrar oynatılmasını engeller çünkü böyle bir mesajın   formda olması gerekir ki saldırgan, 'ye sahip olmadığı için bu formu taklit edemez.Burada Alice (A) ve Bob (B), açık anahtarların dağıtılması için bir güvenilir sunucu kullanır. Bu anahtarlar:K PA ve K SA, sırasıyla A'ya ait bir şifreleme anahtar çiftinin genel ve özel yarılarıdır (S burada "gizli anahtar" anlamına gelir)KPS ve KSS, A ve B'dekine benzer S'ye ait olan anahtarlardır. (Bu anahtar çiftleri  dijital imzalar için kullanılacaktır, yani, KSS mesajı imzalamak için kullanılır ve KPS mesajı doğrulamak için kullanılır. KPS protokol başlamadan önce A ve B tarafından bilinmelidir.)S, kimlik doğrulama amacıyla sunucu tarafından imzalanan B'nin kimliğinin yanında B'nin açık anahtarı olan KPB ile yanıt verir.B rastgele bir NB seçer ve KSB anahtarı ile çözümleyebildiğini ispatlayabilmek için gönderdiği NA 'nın yanında NB 'yi  gönderir.Protokolün sonunda, A ve B birbirlerinin kimliklerini biliyorlar ve NA ve N B de biliniyor olacaktır. Bu nonce'lar araya sızacak olan dinleyiciler tarafından bilinmiyor olacaktır.Bu protokol man-in-the-middle saldırısına karşı savunmasızdır. Bir sahtekar , 'yı kendisi ile bir oturum başlatmak için ikna edebilirse,sahtekar mesajı 'ye iletebilir ve 'yi  ile konuştuğuna ikna edebilir.Saldırının sonunda B, A'nın onunla iletişim kurduğuna ve NA,NB 'nin sadece A ve B tarafından bilindiğine inanıyor olacaktır.Bir sonraki örnek saldırıyı göstermektedir. Alice (A) bankası (B) ile temasa geçmek istiyor. Bir sahtekârın (I) A'yı başarılı bir şekilde banka olduklarına ikna ettiğini varsayıyoruz. Sonuç olarak A, bankasına göndermek istediği mesajları şifrelemek için B'nin açık anahtarını kullanmak yerine I'nin açık anahtarını kullanır. Bu nedenle, A, I'inin açık anahtarıyla şifrelenmiş olan nonce'ı gönderir. Gizli anahtarını kullanarak mesajı çözümler ve B ile A'nın açık anahtarı ile şifrelenmiş gibi mesajı yollamak için iletişime geçer.B'nin mesajın I'dan geldiğini anlamasının hiçbir yolu yoktur. B kendi nonce ve mesajı kendi açık anahtarı ile şifreleyerek yanıt verir. I, A'nın açık anahtarına sahip olmadığı için o mesajı A'ya  içeriği bilmeden aktarmak zorundadır. A mesajı kendi gizli anahtarıyla çözümler ve B'nin nonce'nı kendi I'nın açık anahtarı ile şifreleyerek yanıt verir. I mesajı kendi açık anahtarı ile çözümler ve A,B'nin nonce'ına aynı anda sahip olur. Bu yüzden dolayı,I sırasıyla banka ve kullanıcı gibi davranabilir.Saldırı ilk olarak 1995 yılında Gavin Lowe tarafından bulunmuştur. Makalesinde ayrıca, Needham – Schroeder – Lowe protokolü 'nün düzeltilmiş bir versiyonu da açıklanmaktadır. Düzeltilmiş versiyona  mesajın yanıtlayanın kimliğini içermesi  dahil edilmiştir. Protokolün şu kısmı değiştirilmiştir:İzinsiz girmeye çalışan kişi mesajı tekrar oynattıramayabilir çünkü mesaj B'nin kimliğine sahip olmasına karşı A mesajda I'nın kimliğini beklemektedir.