[owasp-tr uygulama güvenliği günü 2016] Özkan boztaş - ssl protokolüne karşı güncel...
TRANSCRIPT
SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri
Özkan BoztaşGüvenlik Mimari
||
Hakkımda
Matematik (Bilkent 2004)
Cryptography (ODTÜ 2006)
Tübitak - UEKAE (2005-2015)
Türk Telekom - Güvenlik Mimari
||
Başlıklar
01 SSL ProtokolüNedir/Nerelerde Kullanılır?
Tarihsel Gelişim
Üst seviye tanım.
02 SSL SaldırılarıZayıf Algoritmalar
Implementation
Padding Oracle
TLS compression
Downgrade
03 Zaafiyet Tespit Araçları
04 Korunma Yöntemleri
||
SSL/TLS ProtokolüHigh Level Definition
01
FootNotePresentaion Title I 4
|
• Sunucu ve uç noktalar arası;
–İletişim Güvenliği
–Kimlik Doğrulama
–Bütünlük koruması
• Kullanıldığı yerler;
–HTTPS
–SSL-VPN
–EAP-TLS
–STARTLS
–LDAPS
–FTPS (SFTP değil!)
Secure Socket Layer (SSL)
|
Tarihçe
• Orijinal versiyon Netscape tarafından 1990’ların başında
geliştirildi.
• TLS = IETF standardization of SSL
–SSL 1.0 (?)
–SSL 2.0 (1994 - Netscape)
–SSL 3.0 (1996 - Netscape)
–TLS 1.0 (1999 – IETF)
–TLS 1.1 (2006 – IETF)
–TLS 1.2 (2008 – IETF)
–TLS 1.3 (Draft)
|
• Dr. Taher A. Elgamal (father of SSL)
–Kahire Üniversitesi BSc (1977)
–Stanford MSc (1981)
–Stanford Phd (1984)
–Advisor : Martin Hellman (Açık Anahtarlı
Kripto Sistemleri!)
• 1995-1998 Netscape Corporation
–Chief Scientist
–SSL protokolünü geliştirdi.
Secure Socket Layer (SSL)
|
Tarihçe
• SSL 2.0 - 3.0
–Standart Değil!
–Teorik - Pratik Saldırılar
……..
• TLS 1.2
–2008’te standartlaştı.
–Zayıf algoritmalar kaldırıldı(DES)
–(SHA256,AESGCM) desteği
–Pratikte bir saldırı yok.
|
Tarihçe
• Gerçeklenme sorunları
–Yazılım
–Donanım
• TSL 1.0 sunucu tarafında kapandığında
cihazların %50’si bağlanamayacak!
|
Kriptografi
• Gizlilik
–Açık Anahtarlı Sistemler (Public Key Cryptography)
–Simetrik Sistemler (Symmetric Ciphers)
• Bütünlük
–Özet (hash) Fonksiyonları
• Kimlik Doğrulama
–Mesaj Asıllama Kodları (MAC functions)
–Sayısal İmza
|
SSL Protokolü• OSI 5. Katman
• İki katmanlı yapı
–Protocol
–Record
|
• Client Hello
–Kripto kabiliyetlerinin paylaşımı
• Server Hello
–Kripto algoritmalarının seçimi
–Sertifika
• Client Key Exchange
–Premaster Key (Public Key ile yollanır)
• Change Cipher Spec
–Anahtarlar üzerinde anlaşma
• Finished
–Handshake finished.
–Encrypted, includes MAC
SSL Protokolü
|
• Record Katmanı
–Fragmante et
–Sıkıştır (Opsiyonel)
–MAK değerini hesapla
–Şifrele
–Paketle
SSL Protokolü
||
SSL/TLS Saldırıları
02
FootNotePresentaion Title I 4
|
• Gerçekleme (Implementation) Zaafiyetleri
–OpenSSL /Secure Transport
• Zayıf Simetrik Algoritmalar
–RC4, DES
• Protokol Zaafiyetleri
–Padding Oracle Saldırıları
–TLS Compression Saldırıları
–Downgrade Saldırıları
SSL/TLS Saldırıları
|
• HEARTBLEED (7 Nisan 2014 - Public)
• OpenSSL 1.0.1 - 1.0.1f versiyonlarında mevcut.
• OpenSSL’in koştuğu sunucudaki hafıza içeriğine uzaktan erişim!
• İnternet tarihindeki en büyük zafiyetlerden biri (Forbes)
İmplementasyon Zaafiyetleri
|
İmplementasyon Zaafiyetleri
• TLS Heartbeat extension
• Memory Safety bug
• 64KB’ya kadar hafıza okunabiliyor!
• Gizli anahtarlar, parolalar vb…
|
İmplementasyon Zaafiyetleri
• TLS Heartbeat extension
• Memory Safety bug
• 64KB’ya kadar hafıza okunabiliyor!
• Gizli anahtarlar, parolalar vb…
|
• DES (56 bit)
–TripleDES( 112 – 168 bit)
• RC4
–Dizi Şifreleme
–Onlarca akademik çalışma
–Pratik olarak kırılıyor.
–Kesinlikle kullanılmamalı!
Zayıf Simetrik Şifreleme Algoritmaları
|
• Blok Şifreleme Sistemleri
–Şifrelenecek veri Blok Boyu’nun katı olmalı.
–Değilse Padding (Dolgulama) yapılmalı.
–SSL 3.0’da Padding:
Padding Oracle Saldırıları
|
• SSL – MAC then ENCRYPT
• Önce Şifre Çözme ardından MAC kontrolü!
• Padding hataları raporlanıyor.
• Yan Kanal Analizleri?
• Bleichenbacher – Crypto 98
–RSA padding
• Serge Vaudenay - Eurocrypt 2002
Padding Oracle Saldırıları
|
• CBC Şifreleme Modu
Padding Oracle Saldırıları
|
• CBC Şifre Çözme Modu
Padding Oracle Saldırıları
|
• (n-1). şifreli blok üzerinde manipülasyon!
Padding Oracle Saldırıları
|
• (n-1). şifreli blok üzerinde manipülasyon!
• Padding hatası almayana dek manipülasyona devam.
• Anahtarı kullanmadan son bloğun son baytı çözüldü!
Padding Oracle Saldırıları
|
• (n-1). şifreli blok üzerinde manipülasyon!
• Padding hatası almayana dek manipülasyona devam.
• Anahtarı kullanmadan son bloğun son baytı çözüldü!
Padding Oracle Saldırıları
|
• BEAST - 2011
• LUCKY13 - 2013
• POODLE – 2014
• En pratik ve tehlikeli saldırılar!
• Önlemler
–Sunucudan padding hatalarınının verilmemesi
–MAC fonksiyonunun her daim çalıştırma.
–IV’yi her pakette değiştirme.
–RC4 kullanma
Padding Oracle Saldırıları
|
• TLS Data Sıkıştırma (opsiyonel)
• Sunucu tarafında aktiflenir.
• DEFLATE algorithm
–LZ77 (Tekrar eden pattern’lar)
–Huffman Coding
• Teori: Compression and information
leakage of plaintext – FSE 2002
TLS Compression Saldırıları
|
• LZ77 Algoritması
• Source Compressed Encrypted
• --------------------------------------------------------------------------------
• ABCDEFGHIJKL = ABCDEFGHIJKL = Z@%fkT2r$#!B
• AAAAABCDEFGH = 5ABCDEFGH = jhG*4m,$A
• Saldırgan araya girip sorguya paket injecte eder!
• XYZABCDEFGHIJK = XYZABCDEFGHIJK = At9XeCNVxKt@XZC
• ZZZ[Unknown] = [Unknown] = QvnQSHvQWB3*QR
• YYY[Unknown] = [Unknown] = f*fB&cfcM7sya*u7F
• AAA[Unknown] = [Unknown] = rAW^26uffH%8
• Çıktı uzunluğu yan kanal analizi!
TLS Compression Saldırıları
|
• MITM tipi saldırı.
• CRIME – 2012 Ekoparty
–Cookie’ler birkaç bin sorgu ile çözülebiliyor.
• BREACH – 2013 Black Hat
–HTTP Compression özelliğini de kullanıyor.
• Önlem:
–Disable TLS Compression.
–Disable HTTP Compression!
–CSRF token
TLS Compression Saldırıları
|
• RSA Export Ciphers
–U.S Export contol for encryption systems
–512 bit ve altı RSA anahtarı.
–Bu politika sonradan kalkmasına rağmen sunucularda bu opsiyon
senelerce zombi olarak kaldı!
–Client tarafında desteği olmadığından böyle bir istek gelmeyeceği
düşünüldü!
–Başka bir MITM saldırısı!
Downgrade Saldırıları
|
• OpenSSL / Apple Secure Transport bug
– MITM
– Client istemese de 512 bit RSA kullanımı.
– PC’de 2 haftada kırılıyor
– Cloud Based: 108$ 1 saat (Amazon)
Freak - 2015
|
Logjam - 2015
• DH – Export Parametreleri
• 512 bit
• Protokol seviyesinde bir açıklık.
• Cipher süite’ler üzerinde imza yok!
• Paket sonundaki MAC hesabı tutmayacak!
• Finished mesajı gelmeden 512 bit DSA
kırılmak zorunda?
• Pre-computation ile mümkün.
• Dakikalar seviyesinde kırılabiliyor.
|
Snowden – NSA
|
Downgrade Atakları
• Önlemler:
–Export cipher suitler sunucudan
kaldırılmalı.
–Precoded DH grupları minimum 2048
bit olacak şekilde yeniden
oluşturulmalı.
–Client tarafı – Güncel tarayıcılar 1024
bit altı DH gruplarda sayfayı
göstermiyor!
|
• Sunucular TLS destekli
ancak;
• SSL 2.0 destekleyen başka
bir sunucuda aynı sertifika
kullanılıyorsa.
• Padding oracle saldırısı.
• 1000 TLS, 40,000 SSL 2.0
bağlantısı gerekli.
• GPU’da 18 saatte çözülüyor.
Cross Protocol Saldırıları – DROWN - Mart 2016
||
SSL/TLS Zaafiyet Tespit Araçları
03
|
• SSLLABS (Qualys)
–https://www.ssllabs.com/
• SSLScan (Linux)
–Desteklenen cipher süit’ler
–Anahtar boyları
Zaafiyet Tespit Araçları
||
SSL/TLS Saldırıları Korunma Yöntemleri
04
|
• Protokol Desteği
–SSL 2.0 ve 3.0 kullanılmamalı.
• Cipher Desteği
–RC4, DES gibi zayıf simetrik algoritmalar kullanılmamalı.
–Minimum 2048 bit açık anahtarlı sistemler kullanılmalı.
–Export Cipher Suite’lar kaldırılmalı.
• Forward Secrecy
–Geçici anahtarlı DH algoritmaları kullanılmalı.
–EECDH, EDH
• Zaafiyet Yönetimi
–OpenSSL yamaları
–Güncel Tarayıcılar
–Sunucu/Cihaz yamaları
Önlemler
|
• Mozilla SSL Configuration Generator
–https://mozilla.github.io/server-side-tls/ssl-config-generator/
Güvenli Konfigurasyon
|
Mozilla SSL Configuration Generator
|
• Windows Kayıt Defteri – Güvenli SSL Anahtarları
Güvenli Konfigurasyon
|
IIS Crypto
FootNote
https://www.nartac.com/Products/IISCrypto
|
• Donanım cihazları
–TLS 1.0 yukarısı her zaman desteklenmeyebiliyor.
–Poodle TLS (implementasyon zaafiyeti, yama’nın çok geç yayınlanması)
• Windows
–Uygulamalar kendi konfigürasyonlarını force edebiliyor!
–Windows SecureChannel DH 1024 grup üzeri desteklemiyor!
• Java
–Java 7 ve altı DH 1024 grup üzeri desteklemiyor. (Java 8 ile geldi)
• Linux
–Enterprise versiyonlar, eski ve güncellenemeyen OpenSSL sürümleri.
Karşılaşılan Zorluklar
||
Sorular ?