SlideShare a Scribd company logo
1 of 7
Download to read offline
SSL’in Açıklıkları ve TLS ile Alınan Önlemler
SSL (Secure Sockets Layer) standardı Netscape Communications şirketi tarafından sunucu ve
istemciler arasında şifreli bir bağlantı kurulabilmesi için 1994’te geliştirilmiş bir güvenlik
protokolüdür. SSL kredi kartı numaraları, kimlik bilgileri ve sistemlere giriş bilgileri gibi hassas
verilerin güvenli bir şekilde iletimini sağlamaktadır.
1996 yılında Internet Engineering Task Force (IETF) benzer bir standart geliştirmek üzere SSL
3.0 versiyonunu temel aldı ve TLS (Transport Layer Security) protokolünü ortak İnternet
Standardı olarak düzenledi. TLS, SSL’in yeni bir versiyonu olarak tanımlanmakta ve SSL için
geriye dönük uyumluluk sağlamaktadır. SSL ve TLS sunucu ve istemci arasında güvenli
internet trafiğini sağlayan HTTPS’in (secure HTTP) yanısıra FTP ve SMTP gibi diğer web
hizmetleri için de kullanılabilmektedir. SSL aynı zamanda Açık Anahtar Altyapısı
kriptografisinin bileşenlerinden olan elektronik sertifika sistemini destekleyerek yüksek
güvenlik gerektiren online işlemlerin yetkisiz kişilerin müdahalesine imkan vermeyecek bir
şekilde gerçekleştirilmesini amaçlamaktadır.
SSL mimarisi uçtan uca güvenli bir haberleşme sunabilmek için TCP protokolünü
kullanmaktadır. SSL oturumu (SSL session) istemci ve sunucu arasında El
Sıkışma(Handshaking) protokolüne göre oluşturulmaktadır. Oturumlar birden fazla bağlantı
için kullanılabilen kriptografik güvenlik parametrelerini tanımlamaktadır, böylece her
bağlantı için yeni güvenlik parametrelerinin üretimi zorunlu olmaktan çıkarılmaktadır. SSL
bağlantı (SSL connection) kavramı ise istemci ve sunucu arasında gerekli servisleri sağlayan
mantıksal(logical) bir bağlantı olarak tanımlanmaktadır. SSL’de bağlantılar eşdüzeylidir(peer-
to-peer) ve süreksizdir, her bir bağlantı bir oturumla ilişkilendirilmiştir.
SSL, başta Kayıt Katmanı (Record Protocol) olmak üzere çeşitli katmanlardan oluşmaktadır.
Kayıt protokolü bağlantılar için gizlilik ve mesaj bütünlüğü hizmetlerini sunmaktadır. Gizliliği,
uygulama verisini şifreleyerek mesaj bütünlüğünü ise mesaj asıllama kodu (MAC) kullanarak
gerçekleştirir. Kayıt katmanı SSL’in üst katmanları tarafından kullanılan temel bir katmanıdır.
Kayıt katmanı SSL’in üst katmanları tarafından kullanılan temel bir katmanıdır. Kayıt katmanı
üzerinde uygulanan SSL El Sıkışma(Handshaking) katmanı sunucu ve istemcinin birbirini
karşılıklı olarak doğrulamasını, bir şifreleme ve mesaj asıllama kodu üzerinde anlaşmalarını
sağlamak üzere anahtarların karşılıklı alınıp verilmesini sağlar. Anahtar değişim süreci
tamamlandıktan sonra hassas uygulama verileri SSL kayıt katmanı tarafından gönderilmeye
başlanmaktadır.
TLS protokolünün güvenlik mimarisi taşıma katmanı(transport layer) üzerinde çalışacak
şekilde geliştirilmiştir. Böylece TLS’nin taşıma katmanı protokollerinden birini (TCP veya UDP)
kullanan herhangi bir uygulamaya hizmet verebilmesi sağlanmıştır. SSL’de kullanılan Mesaj
Asıllama Kodu (MAC) yerine TLS’de daha güvenli olan Şifrelenmiş Mesaj Doğrulama Kodu
(HMAC) kullanılması TLS’yi daha güvenli kılan etmenlerden biridir.
SSL’in Zayıflıklarını Ortaya Çıkaran Ataklar ve TLS ile alınan Önlemler
1- SSL 3.0 ve POODLE Saldırısı (2014)
TLS geriye dönük uyumluluk çerçevesinde daha eski sürümü olan SSL’i hala
desteklemektedir. Buna göre sunucu ve istemcinin ikisininde TLS versiyonuna sahip olduğu
durumlarda bile SSL/TLS protokolü daha düşük versiyon kullanımı üzerinde anlaşmaya imkan
vermektedir. Bu Downgrade olarak adlandırılmaktadır. POODLE(Padding Oracle On
Downgraded Legacy Encryption) saldırısı, güvenli bir bağlantı girişiminin başarısızlıkla
sonuçlandığı durumlarda sunucuların bağlantıyı yeniden sağlayabilmek için SSL 3.0 gibi eski
versiyonlara gerilemesi faktörü istismar edilerek gerçekleştirilmektedir. Bağlantının
kurulamamasını sağlayan bir saldırgan SSL 3.0 kullanımını dayatabilir ve yeni bir saldırı
girişiminde bulunabilir. Ayrıca saldırgan POODLE atağını başarıyla gerçekleştirebilmek için SSL
bağlantısının istemci tarafını kontrol edebilmeli(girdilerin boyunu değiştirebilmek gibi) ve
oluşan şifreli metinleri görebilmelidir, bu iki yöntem araya girme saldırısını gerektirmektedir.
POODLE, saldırgana gizli verinin bir bytelık kısmını deşifreleme imkanı vermektedir, atağı
tekrarlamak suretiyle sık sık gönderilen Oturum-Çerez(Session-Cookie) ve parola gibi hassas
verilerin birden fazla byte değeri deşifrelenebilir.
Bu atağın yapılabilmesine yol açan SSL zayıflığı, blok şifreleme kullanılmasından
kaynaklanmaktadır. Blok şifreleme kullanıldığında verinin yetkisiz kişilerce değiştirilmesini
önlemek için mesaj asıllama değeri gönderilecek verinin sonuna eklenir. Elde edilen verinin
boyutu blok boyunun integral bir katı olmayabilir. Bu durumda şifre için gerekli blok boyuna
ulaşabilmek için veriye dolgulama(padding) işlemi yapılır. Dolgulamanın son byte değeri
dolgulama boyunu tutmaktadır. Veri padding eklendikten sonra Şifre Bloğu Zincirleme
modunda şifrelenmektedir.
Bu atağın gerçekleştirilmesi için deşifrelenmesi hedeflenen blok yalnızca padding
değerlerinden oluşan son blok ile değiştirilir. Normal şartlarda bütün bir bloğun padding
değerlerinden oluşması ve AES şifreleme kullanıldığı bir durumda deşifrelenen son bloğun
son byte’ı 15 olacaktır. Ancak bu durumda son blok saldırgan tarafından deşifrelenmek
istenen blok olduğu ve yalnızca padding değerlerinden oluşan son blok olmadığı için bloğun
son byte değeri 15 olmayacaktır. Bu durumda sunucu mesajda beklenenden daha az padding
olduğunu varsayarak anlamlı mesajın olması gerekenden daha fazla olduğu çıkarımında
bulunarak bir hata verecek ve MAC doğrulaması yapılmayacaktır, SSL bağlantısı kopacaktır.
Deşifrelenen son byte rastsal bir değer olduğu için bu hata 1/256 ihtimalle gerçekleşecektir,
yani 1/256 defada bir deşifrelenen son bloğun son byte değeri 15 olacaktır ve sunucu bunun
geçerli bir padding olduğunu varsayıp deşifreleme işlemini sorunsuz gerçekleştirecektir. Bu
bilgi kullanılarak çözülmek istenen byte’ın açık metin değeri bulunabilir. Bunun için 15
değerini tutan byte bir önceki şifreli bloğun son byte’ı ile XOR işleminden geçirilir, sonra da
elde edilen değer çözülmesi hedeflenen bloktan bir önceki şifreli bloğun son byte değeri ile
XORlanır. Bu şekilde örneğin Cookie gibi önemli bir bilginin son byte değeri çözülmüş olunur.
Bu işlem tekrarlanarak bir oturumdaki rastgele şifreli metin bloklarının son byte değerlerinin
çözülmesi sağlanabilir.
Bu atağa karşı TLS ile alınan önlem, araya giren saldırganların protokolü downgrade
yapmasını engelleyen TLS_FALLBACK_SCSV eklentisidir. Buna göre istemci sunucuya
downgrade gerçekleştiği konusunda bilgi verir. Bu istemcinin daha yüksek versiyonlu bir
protokol ile sunucuya bağlanma girişiminde bulunduğunu ancak el sıkışma (handshake )
işlemi tamamlanamadan oturumun koptuğu bilgisini sunucuya bildirmektedir. Bu durumda
sunucu, eğer istemcinin bildirdiği versiyondan daha üst bir versiyon önerebiliyorsa bağlantıyı
kesecektir. Böylece saldırganların şifreleme protokolünü daha düşük seviyeye indirgemeleri
engellenmiş olur.
2- FREAK Saldırısı (2014)
FREAK(Factoring RSA Export Keys) saldırısı da POODLE atağı gibi daha zayıf bir şifreleme
algoritmasına gerilemeyi(downgrade) sağlayarak gerçekleştirilmektedir. İstemcilerin daha
zayıf RSA kripto sistemine gerilemelerine ve böylece HTTPS trafiğinin dinlenmesine imkan
veren bu zayıflık Microsoft Research ve French Institute for Research in Computer Science
and Automation enstitüsünden bir grup araştırmacı tarafından ortaya çıkarılmıştır. Entrust
şirketinin sitesinde yer alan bilgilere göre bu zafiyetin istismar edilmesinde, Amerika’nın
güçlü şifreleme algoritmalarının yurt dışına ihraç edilmesini yasaklayan düzenlemelerine
uyumluluk sağlamak için web tarayıcılarında zayıf şifreleme algoritmalarına(export grade
RSA) destek verilmesi zorunluluğu da rol oynamıştır. Şifreleme yazılımı ihracatına dair bu
düzenleme sadece anahtar boyu 512-bit’ten daha küçük olan şifreleme algoritmalarının diğer
ülkelere satılmasına izin vermektedir. Zafiyeti tetikleyen bir diğer unsur da hala “güçlü RSA”
şifrelemesinden “ihraç düzeyi RSA(export grade RSA)” yani daha zayıf RSA’ye gerilemeye
destek veren istemcilerin bulunmasıdır. Bu istemicler OpenSSL ve Apple Secure Transport
protokollerini kullanmaktadır, bu nedenle Android mobil cihazlarının ve Mac, iPhone ve iPad
gibi Apple ürünlerinin FREAK saldırısına maruz kaldığı görülmektedir.
Saldırının nasıl gerçekleştirildiği konusuna gelince, öncelikle kurban web tarayıcısı üzerinde
gerçek bir siteye girilmeye çalışıldığında tarayıcı standart bir RSA şifreleme talebinde
bulunacaktır. Araya girme (MITM) atağını gerçekleştiren saldırgan bu iletişimi algılayacak ve
siteden zayıf RSA ( export grade RSA) algoritmasını kullanmasını isteyecektir. Saldırgan
böylece tarayıcı ile el sıkışma işlemini zayıf şifreleme düzeyini kullanmak suretiyle
tamamlayacaktır. Saldırgan artık düşük boyuta sahip anahtarı kolaylıkla kırabilecek ve bu da
TLS master anahtarını kırabilmesini ve oturum bilgilerini analiz edip değiştirebilmesini de
kolaylaştıracaktır.
Entrust sitesinde yer alan bilgilere göre siber güvenlik araştırmacısı Ivan Ristic FREAK atağının
pratikte çok etkili olabilmesi için birden fazla etmenin bir araya getirilebilmesi gerektiğini
vurgulamaktadır; bunlar ihraç düzeyli zayıf şifreleme algoritması sunan ve aynı anahtarı uzun
bir süre kullanan bir sunucu bulmak, anahtarı kırmak, zafiyeti olan bir istemci bulmak, araya
girme atağını gerçekleştirmek olarak sıralanmaktadır. Araya girme (MITM) saldırısı, yerel bir
ağda veya kablosuz WiFi ağında uygulanması kolay ancak öbür türlü zor gerçekleştirilebilen
bir saldırıdır.
Bu saldırıya önlem olarak sunucu taraflı çözümler daha etkili olmaktadır. Sunucular düşük
güvenliğe sahip şifreleme algoritmalarına destek sunmamalıdır.
3- BEAST Saldırısı (2011)
BEAST(Browser Exploit Against SSL/TLS), SSL 3.0’da varolan bir açıklığın istismar edilmesine
imkan vererek saldırganın, kullanıcının web tarayıcısındaki HTTPS çerezlerini(cookies) elde
edip deşifrelemesini ve kurbanın oturum bilgilerini çalmasını(session hijacking)
sağlamaktadır. Bu, HTTP iframe injection saldırısı ile veya kurbanın tarayıcısına BEAST
JavaScript yüklenerek gerçekleştirilebilmektedir.
BEAST atağında, Şifre Blok Zincirleme(CBC) modunda kullanılan bir başlangıç vektörü (IV)
değeri istismar edilmektedir. Burada ağda gönderilen bir paket için kullanılan IV değeri bir
önceki paketin son şifreli mesaj bloğudur. Bu, şifreli trafiği izleyen saldırganın oturum-cookie
bilgisi için kullanılan IV değerini tespit edebilmesini sağlar. Saldırgan deşifrelemek istediği
şifreli metni ve IV değerini yani bir önceki şifreli metin bloğunu elde ettikten sonra bu iki
değeri kullanarak ulaşmak istediği hassas bilgiyi(örneğin cookie bilgisini) içeren açık metni
tahmin etmeye çalışır. Saldırgan açık metni tahmin edebilirse IV ile XOR işleminden geçirip
ilişkili şifreli metin ile aynı olup olmadığını kontrol eder. Eğer aynı ise saldırgan açık metni
elde etmiş olur. Böyle rastsal bir değeri tahmin edebilmek zor olacaktır, dolayısıyla bu atakta
açık metnin harf harf çözülmesi yöntemi kullanılmaktadır. Bu atağı yapabilmek için saldırgan
kurban ile aynı ağda olmalı ve araya girme atağı gerçekleştirmelidir. Ayrıca saldırgan
sonuçların eşleşip eşleşmediğini kontrol edebilmek için trafikte değişiklik yapabilmelidir, bu
birçok talep paketinin gönderilmesini gerektirmektedir. Saldırgan her defasında sadece bir
bloğu tahmin edebilmektedir.
Bu zafiyet TLS 1.1 ve 1.2’de her bir blok için yeni bir IV(explicit IVs) kullanımı ile çözülmeye
çalışılmıştır. Ayrıca her bir paket gönderiminden önce boş bir paket gönderilerek CBC
modunun durum değiştirmesi sağlanmaktadır, böylece mesaja saldırganın tahmin etmesini
zorlaştıracak yeni bir IV verilmiş olur.
4- SSL RC4’ü İstismar Eden Ataklar
Nadhem AlFardan, Dan Bernstein, Kenny Paterson, Bertram Poettering and Jacob Schuldt
adlı akademisyen ve araştırmacılar tarafından 2013’te yayınlanan makalede SSL/TLS’ye RC4
dizi şifreleme algoritmasının zayıflıkları istismar edilerek gerçekleştirilebilecek bir atağa yer
verilmektedir. RC4 anahtarının rastgele seçilmesi durumunda bile üretilecek kayan anahtar
bazı yanlılıklara(biases) sahip olacaktır. Örneğin kayan anahtarın ikinci byte’ı 1/256 olasılıkla
sıfır olacaktır. Son yapılan çalışmalarda bu tür yanlılıkların daha çok olduğu tespit edilmiştir.
Bir açık metin SSL/TLS üzerinde gönderildiğinde saldırgan açık metin hakkında küçük bir
ipucu elde edebilir. Aynı açık metin RC4 ile şifreli şekilde tekrar tekrar gönderildiğinde RC4
tarafından oluşturulan kayan anahtardaki yanlılıklar kullanılarak metnin ilk byte değerleri
tespit edilebilir. Bunun için diğer açık metin ve kayan anahtar byte değerlerinin tahmin
edilmesi gerekmemektedir. RC4 hızlı, uygulaması kolay ve blok şifreleme algoritmaları gibi
padding gerektirmediği için çok tercih edilen bir şifreleme fonksiyonudur. RC4 zayıflıkları
istismar edilerek gerçekleştirilen bir saldırıda açık metnin bütünü 2^30 oturum ile
çözülebilmektedir. Eğer sadece bir byte değerinin çözülmesi gerekiyorsa byte’ın metindeki
yerine bağlı olarak 2^24 oturum yeterli olabilmektedir.
Bu atak RC4 çıktısının ilk byteleri ile en iyi sonucu vermektedir. Bu nedenle RC4 kayan
anahtarının ilk çıktı bytelarının düşürülmesi bu zayıflığa karşı uygulanacak TLS çözümleri
arasında sayılmakta ancak bunun tüm sunucu ve istemcilerde uyumlu bir şekilde
uygulanabilmesinin zor olduğu vurgulanmaktadır. Bu nedenle uzmanlar istismarı önlemek
için TLS’de RC4 kullanımından kaçınılması gerektiğini vurgulamaktadır.
5-Heartbleed Saldırısı (2014)
TLS Heartbeat, bağlantıyı kuran her bir düğümün bir diğerini hala mevcut olup olmadığı
konusunda kontrol etmesini sağlayan bir eklentidir. TLS, El Sıkışma sürecinde taraflar
kuracakları bağlantının bu eklentiyi desteklemesi için anlaşmaya varabilirler. Bağlantı
süresince her iki taraf da HeartbeatRequest mesajı göndererek bağlantıyı doğrulayabilir.
HeartbeatRequest mesajını alan taraf, HeartbeatRequest verisinin aynısını ve kendi rastsal
padding değerini içeren HeartbeatResponse mesajı ile karşılık verir. Bu eklenti 2011’de
OpenSSL’e eklenmiş ve 14 Mart 2012’de yayımlanan OpenSSL 1.0.1 versiyonunda yer
almıştır. (Durumeric vd., 2014)
Heartbleed saldırısına zemin hazırlayan zafiyet Heartbeat eklentisinin OpenSSL’deki
uygulamasına özgüdür, bu zayıflık bağlantının her iki ucundaki düğümün de bir diğerinin
hafızasındaki payload mesajını takip eden verileri (HeartbeatRequest mesajının içerdiği
veriden daha büyük payload uzunluğu belirleyerek) okumasına olanak sağlamaktadır.
Payload uzunluğu alanı iki bytelık olduğu için, karşı taraf 2^16’ya kadar varan bir memory
alanı açmaktadır. Bu eklentideki bug küçük bir hataya dayanmaktadır, saldırgan tarafından
gönderilen ve saldırganın belirlediği uzunluktaki mesaja güvenmek.
Bu zafiyet için geliştirilen OpenSSL yaması payload uzunluk alanının veri uzunluğundan daha
büyük olduğu durumda HeartbeatRequest mesajını düşüren bir işleve sahiptir. Bu zafiyetin
önlenmesi kolay olmakla birlikte zafiyetin neden olabileceği potansiyel risk büyük hasara yol
açabilmektedir, çünkü saldırganın hassas bilgileri içeren özel hafızayı okumasına olanak
sağlamaktadır.
Kaynakça:
1. https://www.us-cert.gov/ncas/alerts/TA14-290A
2. https://cryptanalysis.eu/blog/2014/10/15/sslv3-considered-to-be-insucure-how-the-
poodle- attack-works-in-detail/
3. http://blog.cryptographyengineering.com/2014/10/attack-of-week-poodle.html
4. https://devcentral.f5.com/articles/poodle-and-tlsfallbackscsv-deep-dive
5. https://www.entrust.com/is-your-ssl-server-vulnerable-to-a-freak-attack/
6. http://thehackernews.com/2012/04/90-ssl-sites-vulnerable-to-beast-ssl.html
7. http://resources.infosecinstitute.com/ssl-attacks/
8. https://cryptanalysis.eu/blog/2013/03/15/ssltls-broken-again-a-weakness-in-the-rc4-
stream- cipher/
9. Durumeric, Z., Kasten, J., Adrian, D., Halderman, J. A., Bailey, M., Li, F., Weaver, N.,
Amann, J., Beekman, J., Payer, M., Paxson, V., 2014, The Matter of Heartbleed, IMC ’14
Proceedings of the 2014 Conference on Internet Measurement Conference, p. 75-
488. http://dl.acm.org/citation.cfm? id=2663755 sitesinden alınmıştır.

More Related Content

Similar to SSL-TLS Guvenlik

Ulasim Katmani Guvenlik Iletisim Kurallari
Ulasim Katmani Guvenlik Iletisim KurallariUlasim Katmani Guvenlik Iletisim Kurallari
Ulasim Katmani Guvenlik Iletisim Kurallari
eroglu
 
Dagitilmis Sistemlerde Guvenlik
Dagitilmis Sistemlerde GuvenlikDagitilmis Sistemlerde Guvenlik
Dagitilmis Sistemlerde Guvenlik
eroglu
 
Infraskope Security Event Manager
Infraskope  Security  Event  ManagerInfraskope  Security  Event  Manager
Infraskope Security Event Manager
logyonetimi
 
HTTPS Ne Kadar Güvenlidir?(sslstrip)
HTTPS Ne Kadar Güvenlidir?(sslstrip)HTTPS Ne Kadar Güvenlidir?(sslstrip)
HTTPS Ne Kadar Güvenlidir?(sslstrip)
BGA Cyber Security
 
Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101
Mehmet Ince
 
Web servisi güvenliği
Web servisi güvenliğiWeb servisi güvenliği
Web servisi güvenliği
Emrah Gürcan
 
Sistem ve network
Sistem ve networkSistem ve network
Sistem ve network
Aba Emekçi
 

Similar to SSL-TLS Guvenlik (20)

Ağ sunusu
Ağ sunusuAğ sunusu
Ağ sunusu
 
Ulasim Katmani Guvenlik Iletisim Kurallari
Ulasim Katmani Guvenlik Iletisim KurallariUlasim Katmani Guvenlik Iletisim Kurallari
Ulasim Katmani Guvenlik Iletisim Kurallari
 
Network101 murat arslan
Network101 murat arslanNetwork101 murat arslan
Network101 murat arslan
 
SSL Nedir
SSL NedirSSL Nedir
SSL Nedir
 
Dagitilmis Sistemlerde Guvenlik
Dagitilmis Sistemlerde GuvenlikDagitilmis Sistemlerde Guvenlik
Dagitilmis Sistemlerde Guvenlik
 
Kriptografi
Kriptografi Kriptografi
Kriptografi
 
Infraskope Security Event Manager
Infraskope  Security  Event  ManagerInfraskope  Security  Event  Manager
Infraskope Security Event Manager
 
HTTPS Ne Kadar Güvenlidir?(sslstrip)
HTTPS Ne Kadar Güvenlidir?(sslstrip)HTTPS Ne Kadar Güvenlidir?(sslstrip)
HTTPS Ne Kadar Güvenlidir?(sslstrip)
 
Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101
 
PKCS 7 ve CMS (Kriptografik İleti Sözdizimi)
PKCS 7 ve CMS (Kriptografik İleti Sözdizimi)PKCS 7 ve CMS (Kriptografik İleti Sözdizimi)
PKCS 7 ve CMS (Kriptografik İleti Sözdizimi)
 
Wireshark.pdf
Wireshark.pdfWireshark.pdf
Wireshark.pdf
 
Kablosuz Ağlarda Adli Analiz
Kablosuz Ağlarda Adli AnalizKablosuz Ağlarda Adli Analiz
Kablosuz Ağlarda Adli Analiz
 
Web servisi güvenliği
Web servisi güvenliğiWeb servisi güvenliği
Web servisi güvenliği
 
Ağ Temelleri
Ağ TemelleriAğ Temelleri
Ağ Temelleri
 
Security Misconfiguration (Güvenlik Yalnış Yapılandırma)
Security Misconfiguration (Güvenlik Yalnış Yapılandırma)Security Misconfiguration (Güvenlik Yalnış Yapılandırma)
Security Misconfiguration (Güvenlik Yalnış Yapılandırma)
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
 
Socket Programming.pdf
Socket Programming.pdfSocket Programming.pdf
Socket Programming.pdf
 
Netscaler WAF XSS
Netscaler WAF XSSNetscaler WAF XSS
Netscaler WAF XSS
 
MikroTik Vae Kurulumu.pdf
MikroTik Vae Kurulumu.pdfMikroTik Vae Kurulumu.pdf
MikroTik Vae Kurulumu.pdf
 
Sistem ve network
Sistem ve networkSistem ve network
Sistem ve network
 

SSL-TLS Guvenlik

  • 1. SSL’in Açıklıkları ve TLS ile Alınan Önlemler SSL (Secure Sockets Layer) standardı Netscape Communications şirketi tarafından sunucu ve istemciler arasında şifreli bir bağlantı kurulabilmesi için 1994’te geliştirilmiş bir güvenlik protokolüdür. SSL kredi kartı numaraları, kimlik bilgileri ve sistemlere giriş bilgileri gibi hassas verilerin güvenli bir şekilde iletimini sağlamaktadır. 1996 yılında Internet Engineering Task Force (IETF) benzer bir standart geliştirmek üzere SSL 3.0 versiyonunu temel aldı ve TLS (Transport Layer Security) protokolünü ortak İnternet Standardı olarak düzenledi. TLS, SSL’in yeni bir versiyonu olarak tanımlanmakta ve SSL için geriye dönük uyumluluk sağlamaktadır. SSL ve TLS sunucu ve istemci arasında güvenli internet trafiğini sağlayan HTTPS’in (secure HTTP) yanısıra FTP ve SMTP gibi diğer web hizmetleri için de kullanılabilmektedir. SSL aynı zamanda Açık Anahtar Altyapısı kriptografisinin bileşenlerinden olan elektronik sertifika sistemini destekleyerek yüksek güvenlik gerektiren online işlemlerin yetkisiz kişilerin müdahalesine imkan vermeyecek bir şekilde gerçekleştirilmesini amaçlamaktadır. SSL mimarisi uçtan uca güvenli bir haberleşme sunabilmek için TCP protokolünü kullanmaktadır. SSL oturumu (SSL session) istemci ve sunucu arasında El Sıkışma(Handshaking) protokolüne göre oluşturulmaktadır. Oturumlar birden fazla bağlantı için kullanılabilen kriptografik güvenlik parametrelerini tanımlamaktadır, böylece her bağlantı için yeni güvenlik parametrelerinin üretimi zorunlu olmaktan çıkarılmaktadır. SSL bağlantı (SSL connection) kavramı ise istemci ve sunucu arasında gerekli servisleri sağlayan
  • 2. mantıksal(logical) bir bağlantı olarak tanımlanmaktadır. SSL’de bağlantılar eşdüzeylidir(peer- to-peer) ve süreksizdir, her bir bağlantı bir oturumla ilişkilendirilmiştir. SSL, başta Kayıt Katmanı (Record Protocol) olmak üzere çeşitli katmanlardan oluşmaktadır. Kayıt protokolü bağlantılar için gizlilik ve mesaj bütünlüğü hizmetlerini sunmaktadır. Gizliliği, uygulama verisini şifreleyerek mesaj bütünlüğünü ise mesaj asıllama kodu (MAC) kullanarak gerçekleştirir. Kayıt katmanı SSL’in üst katmanları tarafından kullanılan temel bir katmanıdır. Kayıt katmanı SSL’in üst katmanları tarafından kullanılan temel bir katmanıdır. Kayıt katmanı üzerinde uygulanan SSL El Sıkışma(Handshaking) katmanı sunucu ve istemcinin birbirini karşılıklı olarak doğrulamasını, bir şifreleme ve mesaj asıllama kodu üzerinde anlaşmalarını sağlamak üzere anahtarların karşılıklı alınıp verilmesini sağlar. Anahtar değişim süreci tamamlandıktan sonra hassas uygulama verileri SSL kayıt katmanı tarafından gönderilmeye başlanmaktadır. TLS protokolünün güvenlik mimarisi taşıma katmanı(transport layer) üzerinde çalışacak şekilde geliştirilmiştir. Böylece TLS’nin taşıma katmanı protokollerinden birini (TCP veya UDP) kullanan herhangi bir uygulamaya hizmet verebilmesi sağlanmıştır. SSL’de kullanılan Mesaj Asıllama Kodu (MAC) yerine TLS’de daha güvenli olan Şifrelenmiş Mesaj Doğrulama Kodu (HMAC) kullanılması TLS’yi daha güvenli kılan etmenlerden biridir. SSL’in Zayıflıklarını Ortaya Çıkaran Ataklar ve TLS ile alınan Önlemler 1- SSL 3.0 ve POODLE Saldırısı (2014) TLS geriye dönük uyumluluk çerçevesinde daha eski sürümü olan SSL’i hala desteklemektedir. Buna göre sunucu ve istemcinin ikisininde TLS versiyonuna sahip olduğu durumlarda bile SSL/TLS protokolü daha düşük versiyon kullanımı üzerinde anlaşmaya imkan vermektedir. Bu Downgrade olarak adlandırılmaktadır. POODLE(Padding Oracle On Downgraded Legacy Encryption) saldırısı, güvenli bir bağlantı girişiminin başarısızlıkla sonuçlandığı durumlarda sunucuların bağlantıyı yeniden sağlayabilmek için SSL 3.0 gibi eski versiyonlara gerilemesi faktörü istismar edilerek gerçekleştirilmektedir. Bağlantının kurulamamasını sağlayan bir saldırgan SSL 3.0 kullanımını dayatabilir ve yeni bir saldırı girişiminde bulunabilir. Ayrıca saldırgan POODLE atağını başarıyla gerçekleştirebilmek için SSL bağlantısının istemci tarafını kontrol edebilmeli(girdilerin boyunu değiştirebilmek gibi) ve oluşan şifreli metinleri görebilmelidir, bu iki yöntem araya girme saldırısını gerektirmektedir. POODLE, saldırgana gizli verinin bir bytelık kısmını deşifreleme imkanı vermektedir, atağı tekrarlamak suretiyle sık sık gönderilen Oturum-Çerez(Session-Cookie) ve parola gibi hassas verilerin birden fazla byte değeri deşifrelenebilir. Bu atağın yapılabilmesine yol açan SSL zayıflığı, blok şifreleme kullanılmasından kaynaklanmaktadır. Blok şifreleme kullanıldığında verinin yetkisiz kişilerce değiştirilmesini önlemek için mesaj asıllama değeri gönderilecek verinin sonuna eklenir. Elde edilen verinin boyutu blok boyunun integral bir katı olmayabilir. Bu durumda şifre için gerekli blok boyuna ulaşabilmek için veriye dolgulama(padding) işlemi yapılır. Dolgulamanın son byte değeri dolgulama boyunu tutmaktadır. Veri padding eklendikten sonra Şifre Bloğu Zincirleme modunda şifrelenmektedir.
  • 3. Bu atağın gerçekleştirilmesi için deşifrelenmesi hedeflenen blok yalnızca padding değerlerinden oluşan son blok ile değiştirilir. Normal şartlarda bütün bir bloğun padding değerlerinden oluşması ve AES şifreleme kullanıldığı bir durumda deşifrelenen son bloğun son byte’ı 15 olacaktır. Ancak bu durumda son blok saldırgan tarafından deşifrelenmek istenen blok olduğu ve yalnızca padding değerlerinden oluşan son blok olmadığı için bloğun son byte değeri 15 olmayacaktır. Bu durumda sunucu mesajda beklenenden daha az padding olduğunu varsayarak anlamlı mesajın olması gerekenden daha fazla olduğu çıkarımında bulunarak bir hata verecek ve MAC doğrulaması yapılmayacaktır, SSL bağlantısı kopacaktır. Deşifrelenen son byte rastsal bir değer olduğu için bu hata 1/256 ihtimalle gerçekleşecektir, yani 1/256 defada bir deşifrelenen son bloğun son byte değeri 15 olacaktır ve sunucu bunun geçerli bir padding olduğunu varsayıp deşifreleme işlemini sorunsuz gerçekleştirecektir. Bu bilgi kullanılarak çözülmek istenen byte’ın açık metin değeri bulunabilir. Bunun için 15 değerini tutan byte bir önceki şifreli bloğun son byte’ı ile XOR işleminden geçirilir, sonra da elde edilen değer çözülmesi hedeflenen bloktan bir önceki şifreli bloğun son byte değeri ile XORlanır. Bu şekilde örneğin Cookie gibi önemli bir bilginin son byte değeri çözülmüş olunur. Bu işlem tekrarlanarak bir oturumdaki rastgele şifreli metin bloklarının son byte değerlerinin çözülmesi sağlanabilir. Bu atağa karşı TLS ile alınan önlem, araya giren saldırganların protokolü downgrade yapmasını engelleyen TLS_FALLBACK_SCSV eklentisidir. Buna göre istemci sunucuya downgrade gerçekleştiği konusunda bilgi verir. Bu istemcinin daha yüksek versiyonlu bir protokol ile sunucuya bağlanma girişiminde bulunduğunu ancak el sıkışma (handshake ) işlemi tamamlanamadan oturumun koptuğu bilgisini sunucuya bildirmektedir. Bu durumda sunucu, eğer istemcinin bildirdiği versiyondan daha üst bir versiyon önerebiliyorsa bağlantıyı kesecektir. Böylece saldırganların şifreleme protokolünü daha düşük seviyeye indirgemeleri engellenmiş olur. 2- FREAK Saldırısı (2014) FREAK(Factoring RSA Export Keys) saldırısı da POODLE atağı gibi daha zayıf bir şifreleme algoritmasına gerilemeyi(downgrade) sağlayarak gerçekleştirilmektedir. İstemcilerin daha zayıf RSA kripto sistemine gerilemelerine ve böylece HTTPS trafiğinin dinlenmesine imkan veren bu zayıflık Microsoft Research ve French Institute for Research in Computer Science and Automation enstitüsünden bir grup araştırmacı tarafından ortaya çıkarılmıştır. Entrust şirketinin sitesinde yer alan bilgilere göre bu zafiyetin istismar edilmesinde, Amerika’nın güçlü şifreleme algoritmalarının yurt dışına ihraç edilmesini yasaklayan düzenlemelerine uyumluluk sağlamak için web tarayıcılarında zayıf şifreleme algoritmalarına(export grade RSA) destek verilmesi zorunluluğu da rol oynamıştır. Şifreleme yazılımı ihracatına dair bu düzenleme sadece anahtar boyu 512-bit’ten daha küçük olan şifreleme algoritmalarının diğer ülkelere satılmasına izin vermektedir. Zafiyeti tetikleyen bir diğer unsur da hala “güçlü RSA” şifrelemesinden “ihraç düzeyi RSA(export grade RSA)” yani daha zayıf RSA’ye gerilemeye destek veren istemcilerin bulunmasıdır. Bu istemicler OpenSSL ve Apple Secure Transport protokollerini kullanmaktadır, bu nedenle Android mobil cihazlarının ve Mac, iPhone ve iPad gibi Apple ürünlerinin FREAK saldırısına maruz kaldığı görülmektedir. Saldırının nasıl gerçekleştirildiği konusuna gelince, öncelikle kurban web tarayıcısı üzerinde gerçek bir siteye girilmeye çalışıldığında tarayıcı standart bir RSA şifreleme talebinde
  • 4. bulunacaktır. Araya girme (MITM) atağını gerçekleştiren saldırgan bu iletişimi algılayacak ve siteden zayıf RSA ( export grade RSA) algoritmasını kullanmasını isteyecektir. Saldırgan böylece tarayıcı ile el sıkışma işlemini zayıf şifreleme düzeyini kullanmak suretiyle tamamlayacaktır. Saldırgan artık düşük boyuta sahip anahtarı kolaylıkla kırabilecek ve bu da TLS master anahtarını kırabilmesini ve oturum bilgilerini analiz edip değiştirebilmesini de kolaylaştıracaktır. Entrust sitesinde yer alan bilgilere göre siber güvenlik araştırmacısı Ivan Ristic FREAK atağının pratikte çok etkili olabilmesi için birden fazla etmenin bir araya getirilebilmesi gerektiğini vurgulamaktadır; bunlar ihraç düzeyli zayıf şifreleme algoritması sunan ve aynı anahtarı uzun bir süre kullanan bir sunucu bulmak, anahtarı kırmak, zafiyeti olan bir istemci bulmak, araya girme atağını gerçekleştirmek olarak sıralanmaktadır. Araya girme (MITM) saldırısı, yerel bir ağda veya kablosuz WiFi ağında uygulanması kolay ancak öbür türlü zor gerçekleştirilebilen bir saldırıdır. Bu saldırıya önlem olarak sunucu taraflı çözümler daha etkili olmaktadır. Sunucular düşük güvenliğe sahip şifreleme algoritmalarına destek sunmamalıdır. 3- BEAST Saldırısı (2011) BEAST(Browser Exploit Against SSL/TLS), SSL 3.0’da varolan bir açıklığın istismar edilmesine imkan vererek saldırganın, kullanıcının web tarayıcısındaki HTTPS çerezlerini(cookies) elde edip deşifrelemesini ve kurbanın oturum bilgilerini çalmasını(session hijacking) sağlamaktadır. Bu, HTTP iframe injection saldırısı ile veya kurbanın tarayıcısına BEAST JavaScript yüklenerek gerçekleştirilebilmektedir. BEAST atağında, Şifre Blok Zincirleme(CBC) modunda kullanılan bir başlangıç vektörü (IV) değeri istismar edilmektedir. Burada ağda gönderilen bir paket için kullanılan IV değeri bir önceki paketin son şifreli mesaj bloğudur. Bu, şifreli trafiği izleyen saldırganın oturum-cookie bilgisi için kullanılan IV değerini tespit edebilmesini sağlar. Saldırgan deşifrelemek istediği şifreli metni ve IV değerini yani bir önceki şifreli metin bloğunu elde ettikten sonra bu iki değeri kullanarak ulaşmak istediği hassas bilgiyi(örneğin cookie bilgisini) içeren açık metni tahmin etmeye çalışır. Saldırgan açık metni tahmin edebilirse IV ile XOR işleminden geçirip ilişkili şifreli metin ile aynı olup olmadığını kontrol eder. Eğer aynı ise saldırgan açık metni elde etmiş olur. Böyle rastsal bir değeri tahmin edebilmek zor olacaktır, dolayısıyla bu atakta açık metnin harf harf çözülmesi yöntemi kullanılmaktadır. Bu atağı yapabilmek için saldırgan kurban ile aynı ağda olmalı ve araya girme atağı gerçekleştirmelidir. Ayrıca saldırgan sonuçların eşleşip eşleşmediğini kontrol edebilmek için trafikte değişiklik yapabilmelidir, bu birçok talep paketinin gönderilmesini gerektirmektedir. Saldırgan her defasında sadece bir bloğu tahmin edebilmektedir. Bu zafiyet TLS 1.1 ve 1.2’de her bir blok için yeni bir IV(explicit IVs) kullanımı ile çözülmeye çalışılmıştır. Ayrıca her bir paket gönderiminden önce boş bir paket gönderilerek CBC modunun durum değiştirmesi sağlanmaktadır, böylece mesaja saldırganın tahmin etmesini zorlaştıracak yeni bir IV verilmiş olur.
  • 5. 4- SSL RC4’ü İstismar Eden Ataklar Nadhem AlFardan, Dan Bernstein, Kenny Paterson, Bertram Poettering and Jacob Schuldt adlı akademisyen ve araştırmacılar tarafından 2013’te yayınlanan makalede SSL/TLS’ye RC4 dizi şifreleme algoritmasının zayıflıkları istismar edilerek gerçekleştirilebilecek bir atağa yer verilmektedir. RC4 anahtarının rastgele seçilmesi durumunda bile üretilecek kayan anahtar bazı yanlılıklara(biases) sahip olacaktır. Örneğin kayan anahtarın ikinci byte’ı 1/256 olasılıkla sıfır olacaktır. Son yapılan çalışmalarda bu tür yanlılıkların daha çok olduğu tespit edilmiştir. Bir açık metin SSL/TLS üzerinde gönderildiğinde saldırgan açık metin hakkında küçük bir ipucu elde edebilir. Aynı açık metin RC4 ile şifreli şekilde tekrar tekrar gönderildiğinde RC4 tarafından oluşturulan kayan anahtardaki yanlılıklar kullanılarak metnin ilk byte değerleri tespit edilebilir. Bunun için diğer açık metin ve kayan anahtar byte değerlerinin tahmin edilmesi gerekmemektedir. RC4 hızlı, uygulaması kolay ve blok şifreleme algoritmaları gibi padding gerektirmediği için çok tercih edilen bir şifreleme fonksiyonudur. RC4 zayıflıkları istismar edilerek gerçekleştirilen bir saldırıda açık metnin bütünü 2^30 oturum ile çözülebilmektedir. Eğer sadece bir byte değerinin çözülmesi gerekiyorsa byte’ın metindeki yerine bağlı olarak 2^24 oturum yeterli olabilmektedir. Bu atak RC4 çıktısının ilk byteleri ile en iyi sonucu vermektedir. Bu nedenle RC4 kayan anahtarının ilk çıktı bytelarının düşürülmesi bu zayıflığa karşı uygulanacak TLS çözümleri arasında sayılmakta ancak bunun tüm sunucu ve istemcilerde uyumlu bir şekilde uygulanabilmesinin zor olduğu vurgulanmaktadır. Bu nedenle uzmanlar istismarı önlemek için TLS’de RC4 kullanımından kaçınılması gerektiğini vurgulamaktadır. 5-Heartbleed Saldırısı (2014) TLS Heartbeat, bağlantıyı kuran her bir düğümün bir diğerini hala mevcut olup olmadığı konusunda kontrol etmesini sağlayan bir eklentidir. TLS, El Sıkışma sürecinde taraflar kuracakları bağlantının bu eklentiyi desteklemesi için anlaşmaya varabilirler. Bağlantı süresince her iki taraf da HeartbeatRequest mesajı göndererek bağlantıyı doğrulayabilir. HeartbeatRequest mesajını alan taraf, HeartbeatRequest verisinin aynısını ve kendi rastsal padding değerini içeren HeartbeatResponse mesajı ile karşılık verir. Bu eklenti 2011’de OpenSSL’e eklenmiş ve 14 Mart 2012’de yayımlanan OpenSSL 1.0.1 versiyonunda yer almıştır. (Durumeric vd., 2014) Heartbleed saldırısına zemin hazırlayan zafiyet Heartbeat eklentisinin OpenSSL’deki uygulamasına özgüdür, bu zayıflık bağlantının her iki ucundaki düğümün de bir diğerinin hafızasındaki payload mesajını takip eden verileri (HeartbeatRequest mesajının içerdiği veriden daha büyük payload uzunluğu belirleyerek) okumasına olanak sağlamaktadır. Payload uzunluğu alanı iki bytelık olduğu için, karşı taraf 2^16’ya kadar varan bir memory alanı açmaktadır. Bu eklentideki bug küçük bir hataya dayanmaktadır, saldırgan tarafından gönderilen ve saldırganın belirlediği uzunluktaki mesaja güvenmek.
  • 6. Bu zafiyet için geliştirilen OpenSSL yaması payload uzunluk alanının veri uzunluğundan daha büyük olduğu durumda HeartbeatRequest mesajını düşüren bir işleve sahiptir. Bu zafiyetin önlenmesi kolay olmakla birlikte zafiyetin neden olabileceği potansiyel risk büyük hasara yol açabilmektedir, çünkü saldırganın hassas bilgileri içeren özel hafızayı okumasına olanak sağlamaktadır.
  • 7. Kaynakça: 1. https://www.us-cert.gov/ncas/alerts/TA14-290A 2. https://cryptanalysis.eu/blog/2014/10/15/sslv3-considered-to-be-insucure-how-the- poodle- attack-works-in-detail/ 3. http://blog.cryptographyengineering.com/2014/10/attack-of-week-poodle.html 4. https://devcentral.f5.com/articles/poodle-and-tlsfallbackscsv-deep-dive 5. https://www.entrust.com/is-your-ssl-server-vulnerable-to-a-freak-attack/ 6. http://thehackernews.com/2012/04/90-ssl-sites-vulnerable-to-beast-ssl.html 7. http://resources.infosecinstitute.com/ssl-attacks/ 8. https://cryptanalysis.eu/blog/2013/03/15/ssltls-broken-again-a-weakness-in-the-rc4- stream- cipher/ 9. Durumeric, Z., Kasten, J., Adrian, D., Halderman, J. A., Bailey, M., Li, F., Weaver, N., Amann, J., Beekman, J., Payer, M., Paxson, V., 2014, The Matter of Heartbleed, IMC ’14 Proceedings of the 2014 Conference on Internet Measurement Conference, p. 75- 488. http://dl.acm.org/citation.cfm? id=2663755 sitesinden alınmıştır.