Furkan BUYRUKOĞLU, Yazar: CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me cypm! Tue, 19 Sep 2017 16:49:12 +0000 tr hourly 1 https://wordpress.org/?v=6.0 https://canyoupwn.me/wp-content/uploads/2016/02/cropped-Başlıksız-1-32x32.png Furkan BUYRUKOĞLU, Yazar: CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me 32 32 TR | Kriptografiye Giriş – 2 https://canyoupwn.me/tr-kriptografiye-giris-2/ https://canyoupwn.me/tr-kriptografiye-giris-2/#respond Tue, 19 Sep 2017 16:48:10 +0000 https://canyoupwn.me/?p=7265 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Merhaba, Uzun bir aradan sonra Kriptografiye Giriş yazısının ikinci kısmıyla karşınızdayım. Bir önceki yazıyı okumak için buraya tıklayabilirsiniz. Bu yazıda Kriptografi biliminin temel konseptlerinden olan şifreleme(encryption) ve doğrulama(authentication) süreçlerinden bahsedeceğim. 1. Şifreleme (Encryption) Şifreleme, Kriptografi bilimiyle ulaşılmak istenen önemli hedeflerden biridir. Şimdi ilk ve en temel senaryomuzu modelleyelim. Senaryolarımızın olmazsa olmaz üçlüsü: Alice, Bob ve […]

TR | Kriptografiye Giriş – 2 Furkan BUYRUKOĞLU

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Merhaba,
Uzun bir aradan sonra Kriptografiye Giriş yazısının ikinci kısmıyla karşınızdayım. Bir önceki yazıyı okumak için buraya tıklayabilirsiniz.
Bu yazıda Kriptografi biliminin temel konseptlerinden olan şifreleme(encryption) ve doğrulama(authentication) süreçlerinden bahsedeceğim.

1. Şifreleme (Encryption)

Şifreleme, Kriptografi bilimiyle ulaşılmak istenen önemli hedeflerden biridir. Şimdi ilk ve en temel senaryomuzu modelleyelim.

Senaryolarımızın olmazsa olmaz üçlüsü: Alice, Bob ve Eve. Bu modelde birbirleriyle iletişim kurmak isteyen Alice ve Bob’un yanı sıra bu iletişimin gerçekleştiği güvenli olmadığı varsayılan iletişim kanalını dinleyebilen Eve karşımızda. Alice ve Bob’un amacı ise Eve’e karşın birbirleriyle iletişim kurmak. Yazı boyunca bu süreçte Eve’in olası saldırılarına karşın Alice ve Bob’un amaçlarına ulaşmak için kullanacağı çözümleri görmüş olacaksınız.Bu amaca ulaşmak adına ilk olarak, Alice ve Bob daha önceden anlaştıkları şifreleme anahtarını (Ke) kullanıyorlar. Bu anahtar üzerinde nasıl anlaşıkları yani anahtar değişimi aslında ayrı bir yazı konusu olacak kadar önemli; fakat bu senaryoda anahtarı birbirlerine mail attıklarını varsayalım. Alice göndermek istediği mesajları(m) önce bu bu anahtar(Ke) ve bir şifreleme fonksiyonu (E) kullanarak şifreledikten sonra gönderiyor. Bob başka bir fonksiyona(D) anahtar(Ke) ve kendisine ulaşan şifreli mesajı(c) vererek orjinal mesajı(m) elde ediyor. İletişim kanalını her zaman dinleyen Eve, anahtara sahip olmadığından elde ettiği şifreli mesajı çözemiyor. Burada basit bir şekilde modellediğimiz senaryoyu mail alıp gönderirken kullandığımız gibi bilginin depolanması aşamasında da kullanıyoruz. Burda söz konusu, bilginin fiziksel ortamının değişmesi değil de bilginin zamanın farklı anlarını arasında taşınmasıdır. Bu durumda Alice ve Bob zamanın farklı dilimlerini temsil ediyor.

Kerckhoffs İlkesi

Yukarıda bahsettiğimiz Alice ve Bob’un güvenli iletişim kurmasını sağlayan şifreleme düzeni, kullandıkları şifreleme fonksiyonun gizliliğine değil de kullandıkları şifreleme anahtarının gizliliğine dayanmalıdır. Kerckhoffs İlkesi şifreleme sisteminin ya da düzeninin güvenliği, kullanılan anahtarının gizliliğine dayanması ilkesidir.
Bu ilkenin arkasında mantıklı sebepleri maddeleyecek olursak,

  • Algoritmalar yazılım ya da donanımlar üzerine konuşlandırıldığından değiştirilmeleri zordur.
  • Aynı algorimanın uzun süre kullanılması daha kullanışlı ve pratiktir. Günümüzde karşımıza çıkan çoğu protokolun bu şekilde kullanılması gibi.
  • Bir anahtarın gizli tutulması, bir algoritmanın gizli tutulmasından çok daha kolay ve ucuzdur.

Algoritmaların herkese açık hale getirilmesinin avantajları ise,

  • Saldırganların olası ataklarının diğer insanlar tarafından önceden fark edilebilmesi ve hatanın giderilebilmesi
  • Potansiyel güvenlik açığının vereceği zarar, algoritma gizliliğinin katacağı ekstra güvenlikten çok daha fazla olacağından gizli protokellere güvenmemeliyiz.

2. Doğrulama (Authentication)

Alice ve Bob, modellediğimiz ilk senaryoda birbirlerine gönderdikleri mesajları şifreleyerek Eve için okunamaz, anlaşılamaz hale getirmişlerdi. Bu işlem ikili arasındaki iletişimin gerçekleşmesindeki bir problemi çözmüş oldu fakat hala problemlerimiz var. Eve’in hala bu iletişimi sekteye uğratacak sinsi planları mevcut. İletişim kanalını üzerindeki hakimiyetini bildiğimiz Eve, mesajı değiştirmeye ya da yok etmeye kalkışabilir. Eve’in bu denemeleri yapabilmesi için iletişimin gerçekleştiği kanal üzerinde daha fazla yetki ve kontrole sahip olması gerekiyor fakat bu imkansız bir durum olmadığından göz önünde bulundurulması gereken bir mesele olarak karşımızı çıkıyor. Bob’a ulaşan bir mesajın, sadece ve sadece Alice tarafından oluşturulduğuna Bob nasıl ikna olacak? Eğer bu doğrulanma sağlanamaz ise, Bob’a gelen mesajın hiç bir önemi kalmayacaktır. Bu problemi çözmek için doğrulama (authentication) sürecini tanımak ve uygulamak durumundayız. Şifreleme (encryption) kısmında da bahsettiğimiz gibi bu kez Alice ve Bob’un bildiği bir doğrulama anahtarı(Ka) kullanacağız. Bir mesajın nasıl doğrulanacağını basit bir şekilde modelleyelim.

Alice göndermek istediği bir mesaji öncelikle doğrulama anahtarıyla(Ka) birlikle bir fonksiyona(H) sokarak mesaj doğrulama kodunu(message authentication code – MAC) elde ediyor(a). Mesajını ve elde ettiği MAC’i Bob’a gönderiyor. Bob kendisine gelen mesajı tıpkı Alice’in yaptığı gibi önce doğrulama anahtarıyla MAC fonksiyonuna(H) veriyor. Oluşan kodu kendisine gelen MAC ile karşılaştırıp doğrulamayı sağlayabiliyor. Eve’in muhtemel bir mesajı değiştirme çabası(m’), eşleşmeyen MACler sayesinde ortaya çıkmış olacaktır. Burda MAC fonksiyonun farklı girdiler için aynı kodlar oluşturmamasına dikkat edilmelidir. Eve’in doğrulama anahtarını bilmediğini varsayalım. İletişim kanalını dinleyebilen Eve, mesaj ve ona karşılık gelen geçerli MAC ikilisine sahip olabilir. Bu durumda Eve’in yapabileceği bir şey daha var. Eve mesajları biriktirip Bob’a daha sonra gönderebilir ya da mesajların geliş sırasını bozabilir. Bu ihtimaller hala Alice ve Bob’un yazının başında ifade ettiğim iletişim amacının önüne geçebilir. Şimdiki problemimizi sadece doğrulama (authentication) süreciyle çözemeyiz. Mesajın silinmesi ya da ardışık mesaj sırasının bozulması hala problem teşkil ediyor. Bu yüzden doğrulama işleminin yanı sıra mesaj numaralandırma işlemi de yapmamız gerekiyor. Bu işlemi her bir mesajın ardışık olarak numaralandığı bir işlem olarak tanımlayabiliriz. Alice’in gönderdiği mesaj bir mesaj numarası içerirse, Bob’un Eve tarafından kandırılması daha da zorlaşacaktır. Eve’in eski mesajları göndermesi ya da mesaj sırasını bozma girişimi Bob’un mesaj numaralarını takibiyle etkisiz kalacaktır. Bir sonraki yazıda Açık Anahtar Şifrelemesi, Dijital İmza, şifrelemeye karşın yapılan saldırılardan bahsedeceğim.

İyi Günler.

TR | Kriptografiye Giriş – 2 Furkan BUYRUKOĞLU

]]>
https://canyoupwn.me/tr-kriptografiye-giris-2/feed/ 0
TR | Kriptografiye Giriş – 1 https://canyoupwn.me/tr-kriptografi-giris-1/ https://canyoupwn.me/tr-kriptografi-giris-1/#respond Wed, 28 Dec 2016 22:10:15 +0000 https://canyoupwn.me/?p=5228 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Kriptografi şifreleme bilimi ve sanatıdır. Günümüz dünyasında yetkilendirme, dijital imzalar ve daha birçok temel güvenlik fonksiyonlarının temelini oluşturur. Ayrıca kriptografi hayatın birbirinden farklı yüzlerinde karşılaşabileceğimiz bir alandır. Mesela kriptografi konulu bir konferansta, bilgisayar güvenliği, cebir, iktisat, adli suçlar, istatistik, çip dizaynı, yazılım optimizasyonları gibi konularla karşılaşmanız muhtemeldir. Bahsedilen alanlardaki çeşitlilik kriptografiyi, bir çalışma konusu olmak […]

TR | Kriptografiye Giriş – 1 Furkan BUYRUKOĞLU

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Kriptografi şifreleme bilimi ve sanatıdır. Günümüz dünyasında yetkilendirme, dijital imzalar ve daha birçok temel güvenlik fonksiyonlarının temelini oluşturur. Ayrıca kriptografi hayatın birbirinden farklı yüzlerinde karşılaşabileceğimiz bir alandır. Mesela kriptografi konulu bir konferansta, bilgisayar güvenliği, cebir, iktisat, adli suçlar, istatistik, çip dizaynı, yazılım optimizasyonları gibi konularla karşılaşmanız muhtemeldir.
Bahsedilen alanlardaki çeşitlilik kriptografiyi, bir çalışma konusu olmak için ziyadesiyle cazip hale getirdiğinin kanısındayım.

1. Kriptografinin Rolü

Tek başına kriptografinin rolünden bahsetmek gereksiz ve anlamı olmayan bir harekettir. Kriptografi daha büyük bir sistemin parçası olmak zorundadır. Bunu daha iyi anlamak için kriptografiyi günlük hayatta kullandığımız kilitlere benzetebiliriz. Bir kilit ancak koruduğu binayla ya da kafesle bir anlam ifade eder. Aksi halde, tek başına bir kilidin kullanışlı olduğundan bahsetmemiz mümkün değildir. Bina örneğinden devam edersek, bu binada oturan insanların kapılarını kilitlemeyi unutmaması ve anahtarı güvenli bir şekilde saklayarak hırsızlardan uzak tutması gerekir. Aynı şekilde kriptografi de, içinde bulunduğu güvenlik sisteminin ya da protokolünün küçük bir kısmını oluşturur.
Kriptografi içinde bulunduğu sistemin küçük bir parçası olsa bile, sistemin en kritik kısımlarından biridir. Kriptografi, bazı insanlara erişim vermek zorunda olduğu gibi istenmeyen insanları da bu erişimden uzak tutmak zorundadır. “İyi” ve “kötü” arasında ayrım yapmak zorundadır. İşte bu kısım kriptografi biliminin ince noktalarından birisini oluşturur. Güvenlik sistemlerinin büyük çoğunluğunu oluşturan kısımlar, tüm insanları dışarısında tutabileceğimiz duvarlara benzer. Kriptografi ise “iyi” ve “kötü” insanları ayırmak zorundadır. Görüldüğü üzere bu işlem, herkesi dışarıda tutmaktan daha zahmetli bir iştir. İşte bu yüzden kriptografi ve kullandığı diğer etmenler, bir sisteme yapılacak olan saldırının en doğal noktası konumundadır.
Ama bu durum kriptografinin, bir sistemin her zaman en zayıf noktası olduğu anlamına gelmez. Bazı durumlarda kötü bir kriptografi yaklaşımı bile bir güvenlik sisteminin diğer parçalarından daha iyi olabilir. Hepimiz filmlerde, banka kasalarını koruyan birkaç metre kalınlığında etkileyici çelik kapıları görmüşüzdür. Dijital dünyada ise bunun gibi bir kapının basit bir çadırı korumak için kullanıldığını görebiliriz. İnsanlar ise çadırın basitliğine bakmak yerine, kapının kalınlığının ne kadar olması üzerinde tartışarak vakit harcıyorlar. Siber dünyadan daha somut bir örnek vermek gerekirse herhangi bir web uygulamasındaki şifreleme anahtarının uzunluğunu tartışarak, o uygulamadaki buffer overflow zafiyetini göremeyebiliyoruz. Sonuç ise saldırgan kriptografi sistemine saldırmakla uğraşmayıp buffer overflow zafiyetini kullanarak amacına ulaşıyor. Sonuç olarak sistemin diğer parçalarının “yeterli” seviyede güvenli olması şartıyla kriptografinin asıl yararına ulaşılabilir.
Bir sistemdeki farklı zafiyetler, farklı saldırganlar için farklı yollarla yararlı olabilir. Mesela, kriptografi kısmını atlayabilen bir saldırganın tespit edilme olasılığı düşüktür. Çünkü saldırganın sisteme erişimi “iyi” ya da “muhtemel” bir erişim olarak görülecektir. Bu ayrıca saldırganın takip edilmesini de zorlaştıracaktır. Yine gündelik hayattan bir örnek vermek gerekirse, levye kullanarak eve giren bir hırsız, kapıda görülebilen bir hasar bırakırken, maymuncuk kullanan bir hırsız da bu durum söz konusu olmayacaktır. Maymuncuk kullanılan bir hırsızlığın tespit edilmesi çok daha zordur.

2. En Zayıf Halka İlkesi

“Bir sistem en zayıf halkası kadar güçlüdür.”  Büyük puntolarla yazıp bilgisayarımıza, ofise, panolara yapıştırılabilecek bir ifade değil mi sizce de?
Bu ilke, güvenli bir sistem oluşturmanın ne kadar zahmetli olduğunu gösteren ana sebeplerden birisidir. Bir zincirin diğer kısımları ne kadar sağlam olursa olsun, en zayıf halkası, kopacak olan ilk kısımdır. Bir plazadaki her ofis kapısının geceleyin kilitlendiğini düşünelim. Kulağa gayet makul ve güvenli geliyor değil mi? Ama bir problem var ki, plazada asma tavan kullanılmış. Asma tavan parçalarından birisi kaldırıldığında kilitli kapının üzerinden tırmanılıp kapı çok kolay bir şekilde aşılabilir. Başka bir açıdan düşünürsek, kilitli kapılar elbette hırsızların işini zorlaştıracaktır fakat güvenlik görevlisinin ofisleri kontrol etmesini de zorlaştıracaktır. Bu örnekte “en zayıf halka ilkesi”, kapıların kilitlenmesinin sağlayacağı etkiyi azaltmıştır. Evet, kapılar kilitlenerek aşılması zor hale getirilmiştir fakat hala tedbir almamız gereken asma tavan problemi devam etmektedir. Bu durumda “en zayıf halka” asma tavan problemidir.
Bir sistemin güvenliğini artırmak için, en zayıf halkasının güçlendirilmesi gerekir. Bunu başarabilmek içinse halkaların hepsinin bilinmesi ve hangilerinin en zayıf olduğunun tespit edilmesi gerekir. Bu tespitleri, saldırı ağacı(attack tree) kullanarak yapabiliriz.

Saldırı ağaçları, muhtemel atakları önceden görebilmek için değerli bir bakış açısı sağladığından dolayı önemlidir. Bir sistemi güvenli hale getirmek için yapılan çalışmaların ilk adımı, bu yapının ortaya çıkarılmasıdır. Aksi halde vakit ve efor kaybı kaçınılmazdır.
“En zayıf halka ilkesi” kriptografi çalışmalarını çeşitli yollardan etkiler. Mesela, kullanıcıların güçlü parolalara sahip olduğunu varsaymak her ne kadar cazip gelse de, günlük hayatta maalesef bu gerçekleşen bir durum değildir. Genelde kısa parolalar kullanılmaktadır. Parolaların ekrana yapıştırılması verilebilecek en bariz örneklerden birisidir. Böyle bir durum sistem tasarımcıları tarafından göz ardı edilemez. Bir sistem tasarımcısı olarak kullanıcılara her hafta 13 haneli rastgele oluşturulmuş parola verseniz bile, bu parolaların ekrana yapıştırılacağından emin olabilirsiniz. Bu zafiyet en zayıf halka olan kullanıcıyı daha da zayıf hale getirmektedir. Kısaca zayıf halka dışındaki diğer halkaların güçlendirilmesinin hiçbir yararı olmayacaktır.
Sistemin zayıf halkası saldırgana ve kullandığı araçlara göre de değişkenlik gösterebilir. Bunun için kriptografi bilimi, bu alanda uğraşan insanlara profesyonel paranoyaya sahip olmaya zorlayabilir.

3. Kriptografi Çözüm Değildir

Kriptografi, güvenlik problemlerine bir çözüm değildir. Çözümün bir parçası olabileceği gibi problemin de bir parçası olabilir. Bazı durumlarda kriptografi, bir problemi daha da zor hale getirerek, kriptografi kullanmanın avantajı ortadan kalkabilir.
Kimse tarafından okunmasını istemediğiniz bir dosyanız olduğunu varsayalım. Bu dosyayı basit bir şekilde istenmeyen erişimlerden koruyabilirsiniz. Diğer bir seçenek ise dosya içeriğini şifreleyip rastgele oluşturulan anahtarı koruyabilirsiniz. Dosyanızı şifreledikten sonra USB’de sakladığınızı varsayalım. USB kaybolsa bile okumak için hala anahtara ihtiyaç var. Peki anahtarı nerede saklayabiliriz? İyi bir anahtar, hatırlanmayacak kadar uzun bir anahtardır. Bazı programlar bu anahtarları diskte depolarlar. Dosyanızı sabit diskten ya da USB’den ele geçirebilen bir saldırıyı göz önüne alırsak, artık anahtarınız da tehlike altındadır. Bu saldırı anahtarınızı ve şifrelenmiş dosyanızı ele geçirerek dosyanızı okuyabilir. Artık yeni bir zafiyet noktamız var: Eğer şifrelerin rastgele oluşturma oranı düşükse ya da şifreleme işlemi güvensizse, saldırgan şifreleme işlemini kırabilir.
Kriptografi uygun yollarla sağlanmazsa sistemi güvenli hale getirmek yerine daha büyük bir problemlere yol açabilir. Yukarıdaki örnekte de bu görülebilir.
——–
Bu gerçeklemesini istediğim Kriptoloji yazı dizisinin ilk parçası… Bu ve olası diğer yazılar için yapıcı olduğunu düşündüğünüz her türlü eleştiriyi ve fikri paylaşırsanız hem keyifli hem de öğretici bir yolculukta beraber olabiliriz.

TR | Kriptografiye Giriş – 1 Furkan BUYRUKOĞLU

]]>
https://canyoupwn.me/tr-kriptografi-giris-1/feed/ 0