İçeriğe atla

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

Bilgisayar güvenliğinde, meydan okuma – karşılık verme temelli kimlik doğrulama, bir tarafın soru sorduğu (meydan okuma) ve diğer tarafın da, kimlik doğrulama için, bu soruya geçerli bir cevap (karşılık) üretmek zorunda olduğu bir protokol ailesidir.

En basit örneği, parola ile kimlik doğrulamadır. Burada, meydan okuma parolanın sorulması ile sağlanır. Geçerli karşılık ise doğru parolanın girilmesidir.

Açıkça, parola ile kimlik doğrulama sürecini dinleyen bir düşman, aynı şekilde kimlik doğrulamayı gerçekleştirebilir. Bu konudaki çözümlerden biri, her biri farklı bir belirteç ile işaretlenmiş çok sayıda parola kullanmaktır. Onaylayıcı bu parolalardan herhangi birini sorabilir. Kimliğini kanıtlayacak kişi, sorulan belirteç için doğru parolaya sahip olmalıdır. Parolaların bağımsız olarak seçildiğini varsayarsak, bir kimlik doğrulama mesaj çiftini dinleyen düşman farklı bir meydan okuma ile ilgili hiçbir ipucuna sahip değildir.

Örneğin; diğer iletişim güvenlik metotları kullanılabilir olmadığında, ABD ordusu, kimlik doğrulama ve şifreleme için AKAC-1553 TRIAD numaralı şifrelemeyi kullanır. TRIAD, 3 harflik meydan okuma kodlarının bulunduğu bir listeyi içerir. Onaylayıcı, bu listeden meydan okuma kodunu ve bu kodun karşılığını rastgele seçer. Güvenliği artırmak için, her bir kod kümesi, genellikle 24 saat olan belirli bir zaman aralığında, sadece bir kez geçerlidir.

Daha ilginç bir meydan okuma – karşılık verme tekniği şöyle çalışır: Diyelim ki “Bob”, bazı kaynaklara erişimi kontrol eden kişi. Alice giriş yapmak için gelir. Bob bir meydan okuma yayımlar, “52w72y” gibi. Alice, Bob’un yayımladığı meydan okumaya “uyan” tek karşılığı cevaplamak zorundadır. Burada “uyan” ifadesi, Bob ve Alice tarafından bilinen, algoritma tarafından belirlenmiş bir karşılıktır (Doğru karşılık “63x83z” gibi meydan okumadaki her bir karakterin bir üstüne tekabül eden bir karşılık dahi olabilir. Yine de gerçek dünyada karşılığı bulamaya yarayan bu kurallar çok daha karmaşıktır). Bob, her seferinde farklı bir meydan okuma yayımlar ve bir önceki meydan okumanın karşılığını bilmek işe yaramaz, Alice ve Bob arasındaki mesajlaşma gizli olmasa bile. Alice’in verdiği karşılığın bir parçası kimlik doğrulama yapmak isteyenin Alice olduğu bilgisini içerebilir.

1980 ve 1990’lardaki yazılımlar sıkça benzer bir metodu kullanmışlardır, kopyalamayı engellemek için: meydan okumalar şu şekilde sorular olabilir “Kullanım kılavuzunun 418. Sayfasında, üçüncü paragraftaki ikinci kelime nedir?”. Buradaki güvenlik varsayımı, kullanım kılavuzunu kopyalamanın yazılım diskini kopyalamaktan daha zor olacağı düşüncesinden gelmektedir. Bazı durumlarda kullanım kılavuzu, modern fotokopi makinelerinin sayfaları çift kopya çoğaltamayacağı şekilde çıkartılabilirdi.

Diğer kriptografik olmayan protokoller

Meydan okuma – karşılık verme protokolleri, gizli bir bilginin bilinmesi dışında şeyler de ileri sürebilir. CAPTCHA’lar, örneğin, Turing testinin bir türevidir ve Web uygulamasını görüntüleyenin gerçek bir kişi olup olmadığını belirlemeyi amaçlar. Görüntüleyen tarafa gönderilen meydan okuma, bir yazının bozulmuş halidir ve görüntüleyen tarafın metni girmesi beklenir. Burada bozulma, otomatik optik karakter tanımayı (OCR) zorlaştırmak ve bir bilgisayar programının insan olarak geçişini engellemek için tasarlanmıştır.

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.

Basit karşılıklı kimlik doğrulama örneği

  • Sunucu, istemciye eşsiz bir meydan okuma değeri, sc, gönderir
  • İstemci eşsiz bir meydan okuma değeri, cc, oluşturur
  • İstemci, cr=özet(cc + sc + sır) hesaplar
  • İstemci cr ve cc değerlerini sunucuya gönderir
  • Sunucu cr değerini hesaplar ve istemcinin gönderdiği değerle kıyaslar
  • Sunucu sr=özet(sc + cc + sır) değerini hesaplar
  • Sunucu sr değerini gönderir
  • İstemci sr değerini hesaplar ve sunucunun gönderdiği değerle kıyaslar

Parola depolama

Parolaların depolanmasından kaçınmak için, bazı işletim sistemleri (Unix-type gibi) parolaların kendileri yerine özetlerini depolar. Kimlik doğrulama sırasında, sistem sadece girilen parolanın özeti ile kayıtlı olan özeti kıyaslar. Bu metot, parola depolanmadığından ve özet değeri verilen parolanın kendisini bulmak çok zor olduğundan; sisteme sızan saldırgan için parolaları elde etmeyi zorlaştırır. Bununla beraber, bu metot, birçok meydan okuma – karşılık verme algoritması için bir problem teşkil eder. Hem istemcinin hem de sunucunun paylaşılan bir sırra sahip olmasını şart koşmaktadır. Parolanın kendisi tutulmadığından, algoritma genellikle parolayı değil de özetini kullanır. Bu durumda da, saldırgan parola yerine özet değeri çalabilir. SCRAM bu problemi çözmüş olan bir meydan okuma – karşılık verme algoritmasıdır.

Örnekler

Daha gelişmiş meydan okuma – karşılık verme algoritmalarının örnekleri sıfır-bilgi parola ispatı (zero-knowledge password proof) ve anahtar anlaşma sistemleridir (Secure Remote Password, SRP gibi). Meydan Okuma-El Sıkışma Kimlik Doğrulama Protokolü (Challenge-Handshake Authentication Protocol, CHAP), CRAM-MD5, OCRA, OATH, SCRAM bazı diğer örneklerdir.

Bazı kişiler CAPTCHA’yı da bir çeşit meydan okuma – karşılık verme tabanlı kimlik doğrulama yöntemi sayarlar.[1]

Ayrıca bakınız

Vikikitap
Vikikitap
Vikikitapta bu konu hakkında daha fazla bilgi var:
  • Challenge-handshake authentication protocol
  • CRAM-MD5
  • Cryptographic hash function
  • Cryptographic nonce
  • Kerberos
  • Otway-Rees
  • Needham-Schroeder
  • Wide Mouth Frog
  • Password-authenticated key agreement
  • Salted Challenge Response Authentication Mechanism
  • SQRL
  • Distance-bounding protocol
  • Reflection attack
  • Replay attack
  • Man-in-the-middle attack

Kaynakça

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Elektronik imza</span>

Elektronik imza ya da sayısal imza, başka bir elektronik veriye eklenen veya elektronik veriyle mantıksal bağlantısı bulunan ve kimlik doğrulama amacıyla kullanılan elektronik veridir. E-imza olarak da bilinir. Elektronik ortamlarda imza yerine kullanılabilen yasal kimlik doğrulama sistemidir. Elektronik imza, elektronik belge'ye girilen bir isim kadar basit olabilir. Dijital imzalar, elektronik imzaları kriptografik olarak korunan bir şekilde uygulamak için e-ticarette ve düzenleyici dosyalarda giderek daha fazla kullanılmaktadır. Özellikle e-ticaretin hızlı yükselişi nedeniyle daha fazla önem kazanmştır. Elektronik imza sayesinde imzalanmış verinin, kimin tarafından imzalandığı ve güvenilirliği kontrol edilmiş olur. Elektronik imza; iletilen bilginin bütünlüğünün bozulmadığını, bilginin tarafların kimlikleri doğrulanmak suretiyle iletildiğini garanti eder. Ulusal Standartlar ve Teknoloji Enstitüsü veya ETSI gibi standardizasyon ajansları, bunların uygulanması için standartlar sağlar.

<span class="mw-page-title-main">Transport Layer Security</span> Internet Şifreleme Protokolü

Taşıma Katmanı Güvenliği (TLS) ve onun öncülü/selefi olan Güvenli Soket Katmanı (SSL), bilgisayar ağı üzerinden güvenli haberleşmeyi sağlamak için tasarlanmış kriptolama protokolleridir. X.509 sertifikalarını kullanırlar ve bundan dolayı karşı tarafla iletişime geçeceklerin kimlik doğrulaması asimetrik şifreleme ile yapılır ve bir simetrik anahtar üzerinde anlaşılır. Bu oturum anahtarı daha sonra taraflar arasındaki veri akışını şifrelemek için kullanılır. Bu, mesaj/veri gizliliğine ve mesaj kimlik doğrulama kodları için mesaj bütünlüğüne izin verir. Protokollerin birçok versiyonu ağ tarama, elektronik mail, İnternet üzerinden faks, anlık mesajlaşma ve İnternet üzerinden sesli iletişim gibi uygulamalarda yaygın olarak kullanılmaktadır. Bu durumda/içerikte/bağlamda en önemli özellik iletme gizliliğidir. Bundan dolayı kısa süreli oturum anahtarı, uzun süreli gizli simetrik anahtardan türetilememelidir.

<span class="mw-page-title-main">Kerberos (iletişim kuralı)</span>

Kerberos / kərbərəs / güvenli olmayan bir ağ üzerinde haberleşen kaynakların, bilet mantığını kullanarak kendi kimliklerini ispatlamak suretiyle iletişim kurmalarını sağlayan bir bilgisayar ağı kimlik doğrulama protokolüdür. Protokolün tasarımcıları, ilk başta istemci-sunucu modelini hedef almış ve bu doğrultuda hem kullanıcının hem de sunucunun birbirlerinin kimliklerini doğrulamasını sağlayan karşılıklı kimlik doğrulama özelliğini sunmuşlardır. Kerberos protokol mesajları, izinsiz dinlemelere ve yansıtma ataklarına karşı dayanıklıdır.

<span class="mw-page-title-main">Aradaki adam saldırısı</span>

Man-in-the-middle saldırısı, saldırganın birbiri ile doğrudan iletişim kuran iki taraf arasındaki iletişimi gizlice ilettiği veya değiştirdiği saldırı türüdür. İletişim ağı üzerinde veri paketleri serbestçe dolaşır. Özellikle broadcast olarak salınan paketler, aynı ağa bağlı tüm cihazlar tarafından görülebilir. İlkesel olarak hedefinde kendi IP'si olmayan bir paketi alan makinelerin, bu paketlerle ilgili herhangi bir işlem yapmamaları gerekir. Ancak istenirse bu paketlere müdahale edebilir ya da içeriğini öğrenebilirler. Aradaki adam saldırısı ağ üzerindeki paketleri yakalayarak manipüle etmek olarak özetlenebilir.

<span class="mw-page-title-main">Kriptografik özet fonksiyonu</span>

Kriptografik özet fonksiyonu çeşitli güvenlik özelliklerini sağlayan bir özet fonksiyonudur. Veriyi belirli uzunlukta bir bit dizisine, (kriptografik) özet değerine, dönüştürür. Bu dönüşüm öyle olmalıdır ki verideki herhangi bir değişiklik özet değerini değiştirmelidir. Özetlenecek veri mesaj, özet değeri ise mesaj özeti veya kısaca özet olarak da adlandırılır.

Mesaj doğrulama kodu kriptografi biliminde bir mesajın doğruluğunu kanıtlamak için kullanılan küçük boyutlu bilgilerdir.

<span class="mw-page-title-main">Diffie-Hellman anahtar değişimi</span> dünyanın enyuksek dagı

Diffie-Hellman anahtar değişimi (D-H), kriptografik anahtarların değişiminde kullanılan özel bir yöntemdir. Bu kriptografi alanında uygulanan ilk pratik anahtar değişimi örneklerinden biridir. Diffie-Hellman anahtar değişimi metodu, güvenilmeyen bir sistem üzerinden iletişim kurmak isteyen karşılıklı iki tarafın ortaklaşa bir anahtar üzerinde karar kılabilmesine olanak sağlar. Böylece, iki tarafın da karar kıldığı bir simetrik anahtar, güvenli olmayan sistem üzerinden iletişimi şifrelemek için kullanılabilir. Diffie-Hellman protokolünde amaç, iletişim kurmak isteyen iki taraf arasındaki anahtar değişim prosedürünü, anahtarın kötü tarafların eline geçmediğine emin olacak şekilde güvenli bir şekilde gerçekleştirmektir. Bu işlem bir defa yapıldığında ve taraflar bir anahtar üzerinde ortaklaştığında her iki taraf da kendi mesajını paylaşılan anahtarla şifreleyebilir, böylece taraflar arasındaki iletişim güvenli bir şekilde sağlanmış olur.

Günlük kullanmış olduğumuz şifreler disk üzerinde özet olarak kayıt edilir. Bu özetler iki ayrı şekilde LM ve NTLM olarak tutulup birbiri ile entegre olarak işlem görür ve kimlik doğrulamasını gerçekleştirir. Windows işletim sisteminde ise kullanıcı hesapları ve parolaların şifrelemesinde kullanılan SYSKEY bilgisi SAM dosyasında tutulur. İşletim sistemi çalışır durumunda bu dosyayı kontrolünde tutar, Admin dahi olunsa işletim sistemi içerisinden herhangi bir müdahaleye izin vermez. Windows İşletim sistemleri versiyonu doğrultusunda, kullanıcı parolalarını NTLM veya LM özeti fonksiyonuna sokarlar. Sonuç olarak SYSTEM dosyası içerisinde bulunan SYSKEY ile şifreler ve bu şekilde SAM dosyasına kayıt eder. Örnek olarak SAM dosyasında tutulan kullanıcı hesap bilgileri aşağıdaki gibidir.

Güvenli kabuk,, ağ hizmetlerinin güvenli olmayan bir ağ üzerinde güvenli şekilde çalıştırılması için kullanılan bir kriptografik ağ protokolüdür. En iyi bilinen örnek uygulaması bilgisayar sistemlerine uzaktan oturum açmak için olandır.

<span class="mw-page-title-main">Tek seferlik parola</span>

Tek seferlik parola (OTP), bir bilgisayar sistemi veya başka bir dijital cihazda bir oturum ya da işlem için geçerli paroladır. OTP 'de geleneksel (statik) parola tabanlı kimlik doğrulamasıyla ilişkili birtakım eksiklikler yoktur. Ayrıca bir dizi uygulama sayesinde OTP, akıllı kart veya bir cep telefonu gibi bir kişide bulunabilecek cihazlara erişim gerektiren veya yalnız o kişinin bilebileceği bir PIN gerektiren iki faktörlü kimlik doğrulama içerir.

Tekrarlama saldırısı, geçerli bir veri iletiminin kötü niyetlilik veya sahtekarlıkla tekrarlandığı veya geciktirildiği bir ağ saldırısıdır. Bu saldırı, orijinal veri iletimcisi tarafından ya da veri iletimini IP paketi değişimi içeren bir aldatma saldırısı kullanarak kesen ve yeniden ileten bir saldırgan tarafından gerçekleştirilir. Bu, ortadaki adam saldırısının alt kademe versiyonlarından biridir.

SPEKE, açılımı Basit Parola Üssel Anahtar Değişimi olan, parola doğrulamalı anahtar anlaşmas için kullanılan kriptografik bir yöntemdir.

Şifrelemede Eşzamanlı Eşit Kimlik Doğrulama (SAE), parola tabanlı güvenli bir kimlik doğrulama ve parola doğrulanmış anahtar anlaşma yöntemidir.

Kriptografi alanında, PBKDF1 ve PBKDF2 olarak bilinen anahtar türetme fonksiyonları şifrelenmiş anahtarları kaba kuvvet saldırılarına karşı güçlendirmek amacıyla geliştirilmiştir.

<span class="mw-page-title-main">Anahtar türetme fonksiyonu</span>

Kriptografide, anahtar türetme fonksiyonu (ATF), bir veya daha fazla gizli anahtarı, ana anahtar, parola veya geçit parolası gibi unsurlardan bir sözderastlantısal fonksiyon kullanarak türetir. ATF'ler, anahtarlar boyutlarını uzatmak veya belirli formatlarda anahtarlar elde etmek için kullanılabilirler. Diffie-Hellman anahtar değişimi sonucunda oluşacak bir grup unsurların, AES'in kullanılabileceği bir simetrik anahtara dönüştürülmesi bu kullanıma örnek olarak gösterilebilir. Anahtar kullanılan kriptografik özet fonksiyonları, anahtar türetme için kullanılan sözderastlantısal fonksiyonların popüler örneklerinden biridir.

Skype, Skype Technologies S.A. tarafından geliştirilen İnternet Üzerinden Ses Protokolü (VoIP) sistemidir. Sesli aramaların özel amaçlı bir ağdan ziyade İnternet üzerinden geçtiği eşler arası (peer-to-peer) bir ağdır. Skype kullanıcıları diğer kullanıcıları arayabilir ve onlara mesaj gönderebilir.

<span class="mw-page-title-main">İnternet güvenliği</span>

Internet güvenliği, yalnızca Internet, sıkça tarayıcı güvenliği ve World Wide Web ile ilgili değil, aynı zamanda Ağ Güvenliği, uygulama ve işletim sistemleri sistemleri ile bir bütün olarak ilgilidir. Amacı, internet üzerinden saldırılara karşı kullanılacak kurallar ve önlemler oluşturmaktır. İnternet, bilgi alışverişi için güvenli olmayan bir kanalı temsil eder; bu da kimlik avı, çevrimiçi virüsler, truva atları, solucanlar ve daha fazlası gibi yüksek bir saldırı veya dolandırıcılık riskine yol açar.

<span class="mw-page-title-main">Needham–Schroeder protokolü</span>

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:

Bcrypt, Niels Provos ve David Mazières tarafından Blowfish şifreleme yöntemi esas alınarak geliştirilmiş ve ilk kez USENIX’te, 1999 yılında sunulmuş bir parola özet fonksiyonudur. Rainbow table saldırılarına karşı salt kullanmasının yanı sıra adaptif bir fonksiyon olma özelliğine sahiptir. İterasyon sayacı arttırılarak yavaşlatılabilir ve bu sayede kaba kuvvet saldırılarına karşı dirençli kalabilmektedir.

Kriptografide, ilklendirme vektörü kısaca İV ya da ilklendirme değişkeni, tipik olarak rastgele veya sözde rassal olması gereken bir şifreleme temelinin sabit boyuta sahip olan girdisidir. Bu rastgelelik, şifreleme işlemlerinde anlamsal güvenliği sağlamak için çok önemlidir. Anlamsal güvenlik tek bir şifreleme yönteminin aynı anahtar ile tekrar tekrar kullanılmasının şifrelenmiş mesajın bölümleri arasındaki ilişkileri çıkarmasına izin vermediği bir özelliktir. Blok şifreleri için, İV kullanımı çalışma kipleri ile açıklanmaktadır. Ayrıca, evrensel hash fonksiyonları ve buna dayanan mesaj kimlik doğrulama kodları gibi diğer temel öğeler için de rastgeleleştirme gereklidir.