HTTP Kullanıcı Asıllama ve Yetkilendirme Ozan Eren BİLGEN İTÜ Bilişim Enstitüsü Bilgisayar Bilimleri Yüksek Lisansı Ağ Güvenliği Dersi Sunumu Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Giriş Web’deki bazı kaynaklar herkese açık değildir. HTTP istekleriyle bu asıllama ve yetkilendirme işleri nasıl gerçeklenir? Apache web sunucusu örneklemesiyle bu ayarlar nasıl yapılır? Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Gündem Giriş HTTP Temel (Basic) Yetkilendirme HTTP Özet (Digest) Yetkilendirme Proxy Sorunları Sertifika Temelli Yetkilendirme Apache: Yetki ve Erişim Sonuç Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Genel Bakış HTTP protokolü kullanıcının tanımlanması için bir takım yapılar barındırır. Sunumda bu yapıları ve evrimlerini gerektiren süreçleri inceleyeceğiz. Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Sorunun Konumu Web sunucuları genellikle anonim istekleri cevaplarlar ama bazen işler değişir. Şirketler bazı verilerini sadece çalışanlara açabilirler, bazı verileriyse parasını ödemiş müşterilerle paylaşabilirler. HTTP yetkilendirme, mevcut protokol üzerinden bunu sağlamak için tasarlanmıştır. Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Seçenekler Gizli URL IP/DNS sınırlaması Kullanıcı Adı/Şifre eşleştirmesi Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Gizli URL www.oebilgen.com/super_gizli.html Kullanıcılar tarafından paylaşılır. Arama motoru örümcekleri indeksler. Gizlilik güvenlik değildir! Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
IP/DNS sınırlaması www.oebilgen.com/butun_siteyi_sil.cgi DNS Spoofing IP Address Takeover Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Kullanıcı Adı/Şifre eşleştirmesi Kişiye özgü sınırlama imkanı. Adım 1: Asıllama (Bilgilerinin alınması) Adım 2: Yetkilendirme (Kaynağa erişim) Şifreler de şifrelenmiş halde tutulmalıdır. htpasswd uygulaması Nasıl yapılacak? Temel yetkilendirme. Özet yetkilendirme. Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
HTTP Temel Yetkilendirme İstek: GET /super_gizli.html HTTP/1.0 Cevap: HTTP/1.0 401 Unauthorized ... WWW-Authenticate: Basic realm=“Pek gizli şifren ne yabancı?” Yeni istek: GET /super_gizli.html HTTP/1.0 ... Authorization: Basic Yabanci:GizliSifre Base64 HTTP stateless, her seferinde tekrarlanmalı. Çok rahat izlenir, FTP ve Telnet gibi kötü. Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
HTTP Özet Yetkilendirme HTTP 1.1 yeniliği. Kullanıcı adı, şifre, rastgele sayı, HTTP metodu ve URL’nin özeti, genelde MD5. Rastegele sayı = Özet(IPC,“:”, TS,“:”, KS) Ek alanlar: Opaque, Algorithm, Domain ve Stale. Özetin içine istenen URL eklenir, böylece en fazla bir adrese erişim ele geçirilir. Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
HTTP Özet Yetkilendirme (2) Cevap: HTTP/1.0 401 Unauthorized ... WWW-Authenticate: Digest realm=“Parola?”, nonce=“3f28a42b9f08ec40234802a38c9fe04121”, 34 harf opaque=“43eaf43b53cf453b4ecf123aaf1cb380” 32 harf Yeni istek: ... Authorization: Digest username=“Yabanci”, realm=“Parola?”, nonce=“3f28a42b9f08ec40234802a38c9fe04121”, aynısı uri=“/super_gizli.html”, response=“e1211313aa231sbcf647655fd423d594”, 32 harf opaque=“43eaf43b53cf453b4ecf123aaf1cb380” aynısı Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Proxy Sorunları WWW-Authenticate, Authentication-info ve Authorization başlıkları aynen iletilmeli. Dosyalar bellekte tutulmamalı. Aykırı durumlar: must-revalidate: Yetkilendirmeyi proxy yapar. public: Proxy herkese dağıtabilir. Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Açıklar ve Öneriler Temel ve Özet, HTTP asıllama ekleri “Man in the middle” saldırısına karşı savunmasızdır. Sunucu şifreleri iyi korumalıdır: Şifre dosyası şifrelerin özetini tutmalıdır. Dosya, veriler şifresizmişçesine korunmalıdır. Realm özgün olmalıdır sonuna alan eklenir. Rasgele sayı zaman damgası taşımalıdır. Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Sertifika Temelli Yetkilendirme Apache mod_digest’i ekledi ama tarayıcılar HTTPS ile SSL/TLS tercih ettiler. Açık anahtar ile azami güvenlilik: Sertifika temelli yetkilendirme ile sunucuyu sınama imkanı doğdu. X.5009v3 sertifikalarıyla grup tabanlı erişim kontrolü, kullanıcı ayrıntılarıyla uğraşmadan yapıldı. Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Apache: Yetki ve Erişim Kullanıcı gruplarıyla kolay erişim denetimi htpasswd –c /var/www/html/oebilgen oe /var/www/html/oebilgen dosyasının içeriği: oe:RcWasdqed18a3 mavi:DxFw1qr48qlth İlgili klasörde .htaccess dosyasına veya sunucunun access.conf’undaki <Directory> bölümüne. Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Apache: Yetki ve Erişim (2) AuthName “Süper Gizli Bölge” AuthType Basic - AuthType Digest AuthUserFile /var/www/kullanicilar require valid-user - require user oe - yetkili: oe mavi require group yetkili Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Apache: Yetki ve Erişim (3) <Limit> - <Limit POST> require ... </Limit> Çok I/O işlemi: DBM formatı (İndeksli) Apache mod_auth_dbm + dbmmanage kullanicilar.pag: anahtar kullanicilar.dir: değeri Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Özet Her bilgi herkese açık değildir ama güvenlik gizlilikle sağlanamaz. Web saldırıları popülerdir ama HTTP Basic Authentication önlemi yetersizdir. Digest Authentication tutulmamış, SSL/TLS kullanılmıştır. Apache’de grup ve kullanıcı temelli sınırlamalar dosya ve klasörlere uygulanabilir. Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018
Dinlediğiniz İçin Teşekküler... R. Oppliger, “Security Technologies for the WWW”, Artech House, 1999. “HTTP - Hypertext Transfer Protocol”, http://www.w3.org/Protocols/ “Apache HTTP Server Project”, http://httpd.apache.org/ “RFC #2069: HTTP Digest Authorization”, http://www.ietf.org/rfc/rfc2069.txt “GDBM – GNU DBM”, http://www.gnu.org/software/gdbm/ Ozan Eren BİLGEN (oe@oebilgen.com) 04.12.2018