Kullanışlı Güvenlik Ne? Neden? Nasıl?
Transkript
Kullanışlı Güvenlik Ne? Neden? Nasıl?
Kullanışlı Güvenlik Ne? Neden? Nasıl? Doç. Dr. Kemal BIÇAKCI TOBB Ekonomi ve Teknoloji Üniversitesi ANKARA E-posta Güvenliği - PGP • PGP güvenlik yazılımı: amaç e-posta mesajlarını imzalamak ve şifrelemek. • 1999 yılında Whitten ve Tygar PGP 5.0’ın kullanışlılığını ölçerler. Alma Whitten and J. D. Tygar. Why johnny can’t encrypt: A usability evaluation of PGP 5.0. In Proceedings of the 8th USENIX Security Symposium, August 1999. • Eğitimli ve e-posta konusunda tecrübeli 12 kullanıcının sadece üçte biri 90 dakikalık süre içerisinde PGP 5.0 kullanarak şifreli ve imzalı e-posta gönderebilmeyi başarabilmişler. Bilgi Güvenliği ve İnsan “İnsanoğlu yüksek kalitede kriptografik anahtar saklama kabiliyetinden yoksundur ve kripto işlemlerini yapmada kabul edilemez ölçüde yavaştır. İnsanlar iri, bakımı zor, yönetimi pahalı varlıklardır ve ayrıca çevreyi de devamlı kirletirler. Şaşılacak bir durumdur ki bütün bunlara rağmen bu aygıtlar devamlı üretilirler ve kullanılırlar. O kadar her tarafa yayılmışlardır ki, protokol tasarlarken bu varlıkların sınırlı yeteneklerini dikkate almak zorunluluğu vardır.” Kaufman, Perlman, Speciner, 2002. Örnekler ve Rakamlar 1. Olta Saldırıları (Phishing) 2008’de kurban sayısı bir önceki yıla göre %40 artmış durumda. 2. Sosyal Mühendislik Saldırıları “Hiçbir zaman şifre kırmak zorunda kalmadım, şifrenin ne olduğunu sadece uygun bir dille sahibine sormak gerekti.” Kevin Mitnick 3. 2006 yılında yapılan bir anket: güvenlik problemlerinin %60’ının insan kaynaklı olduğunu ortaya koymakta (bir önceki yıl bu oran %47) Kullanışlı Güvenlik Neden Gereklidir? • İnsan öğesini barındıran güvenlik problemlerinin doğru ve etkin çözümü • Yanlış/eksik kullanım veya kullanılmama kaynaklı güvenlik sorunlarının giderilmesi • Güvenlik konusunda bilinçsiz fakat güvenlik ihtiyaçları olan kullanıcıların güvenlik kararlarını doğru ve mantıklı bir şekilde verebilmeleri Ancak güvenliğin kullanışlı olması şartı ile sağlanabilir. Kullanışlı Güvenlik Nedir? TANIM: Bir (güvenlik) yazılımı (donanım,sistem); o yazılımı kullanması beklenilen kişilerce – güvenilir ve gerekli bulunuyorsa – yapılması gerekenler doğru bir şekilde anlaşılıyor ve güvenli bir şekilde yapılabiliyorsa – devamlı kullanımda yeteri kadar rahat ve sorunsuz kullanılabiliyorsa bu yazılım (donanımı, sistemi) Kullanışlı Güvenlik özelliğine sahiptir. Kullanışlı Güvenlik Nasıl Sağlanır? KURAL #1: Kullanıcıyı güvenlik çemberinin dışına çıkararak Örnek: İletim aşamasındaki E-posta güvenliği mail protokollerinin SSL üzerinde çalışması yolu ile belli oranda sağlanıyor. Fakat halen e-postalarımız sunucularda şifrelenmeden saklanmakta. 38 adet manuel adım gerektiren güvenli kablosuz ağ konfigürasyonu (ortalama harcanan süre 140 dakika) Aynı işlemin otomasyona kavuşturulması (ortalama harcanan süre 1 dakika 39 saniye) Kaynak: D. Balfanz et al., “Network-in-a-Box: How to Set up a Secure Wireless Network in under a Minute,” Proc. 13th Usenix Security Symp., Usenix Assoc., 2004, pp. 207–221. Güvenlik Çemberi ve İnsan • Bugün artık güvenlik zafiyetlerinin büyük çoğunluğunun insan kaynaklı olduğundan eminiz. • Güvenliği artırma adına takip edilebilecek en cazip yöntem insanı güvenlik çemberinin dışına çıkarmaktır. • Bu prensip bilhassa güvenlik kararlarının kullanıcıya danışılmadan uygulanabileceği durumlarda titizlikle takip edilmelidir. • Fakat günümüz teknolojisi ile bazı kritik güvenlik işlemlerinin tamamen otomatik hale getirilmesi mümkün değildir. (veya sözkonusu otomasyon kullanışlılığı azaltmaktadır). Kullanışlı Güvenlik Nasıl Sağlanır? KURAL #2: Kullanışlı güvenlik için güvenlik uzmanlığı ve yenilikçi çözümler gerektiğini anlayarak Problem: Açık Anahtar Kriptografisinin güvenli çalışabilmesi için açık anahtarların güvenli bir şekilde paylaşılması gerekli Geleneksel Çözüm: Güvenilir Sertifika Otoritelerince imzalanmış sertifikalar Geleneksel Çözümün Problemi: Kullanışsızlık Kablosuz Ağ Kayıt Odası Yenilikçi Çözüm: (1) Açık anahtarların yer sınırlı kanallar (infrared gibi) üzerinden taşınması (2) Bu işlemin fiziksel olarak girişi kontrol altında tutulan kayıt odasında yapılması Kullanışlı Güvenlik Nasıl Sağlanır? KURAL #3: Kullanışsız güvenlik sebebiyle suçu kullanıcıya atmayarak (Herkes benim gibidir yanılgısından kurtularak) Güvenlik Eğitimi • Güvenlik eğitimi önemlidir. Ama Kullanışlı Güvenliğin alternatifi değildir. • Bir şirket çalışanlarını eğitmek belki mümkün peki ya İnternet kullanıcılarını? • Sözkonusu eğitimin hangi şartlarda verilebileceği, ne zaman ve nasıl verildiği sorgulanmalıdır. • Örnek: Olta Saldırısı Kurbanları ve Eğitim Kullanışlı Güvenlik Nasıl Sağlanır? • KURAL #4: Teorideki en iyi güvenliğin pratikte en iyi güvenlik olmadığını bilerek. ÖRNEK: Teori: Şifreler güvensizdir, şifre yerine başka bir teknik kullanılmalıdır. Pratik: Başka teknikleri kullanan (SSL gibi PKI teknolojisine dayalı) protokoller şifreleri ortadan kaldırmadığı gibi şifreleri daha da güvensiz hale getirmiştir. Çözüm: Güçlü Şifre Protokolleri – Sıfır Bilgi İspatı (Zero Knowledge Proof) (TLS SRP gibi) Kullanışlı Güvenlik Nasıl Sağlanır? • KURAL #5: Güvenliği sağlamanın kullanıcıların çoğu için birincil amaç olmadığını hesaba katarak Internet Explorer Active X Dialoğu orijinal hali Internet Explorer Active X Çubuğu Windows XP SP 2 Kullanışlı Güvenlik Nasıl Sağlanır? “Sorma, Savun” prensibi • Yazılım geliştirici olarak sizin veremediğiniz güvenlik kararlarını kullanıcının vermesini beklemeyerek • Sizin güvenlik adına yaptığınız işleri takdir etmesi için güvenliği gereksiz yere görünür hale getirmekten kaçınarak Kullanışlı Güvenlik Nasıl Sağlanır? • KURAL #6: Kullanıcıyı güvensiz kullanıma iten şartlandırmalardan kaçınarak Güvenlik mesajı Mesajın ne anlama geldiği Kullanışlı Güvenlik Nasıl Sağlanır? Kullanıcılar Güvenlik Kararlarını Nasıl Veriyorlar? Problemi farket ve tanı Devam etmemi engelleyen bir diyalog kutusu var Problemi tanımla, daha önceki bilinenleri kullanarak bir çözüm stratejisi oluştur Bu kutudan kurtulmazsam işime devam edemem Buna benzer kutularda kapat kutusuna (veya OK/Cancel Düğmesine) basınca problem çözülmüştü Akli/fiziki kaynakları problemin çözümüne tahsis et Uygulanan çözümün çalışıp çalışmadığını kontrol et El, Hareket Et! Mükemmel, kutu kayboldu. Nerde kalmıştım? Kullanışlı Güvenlik Nasıl Sağlanır? • KURAL #7: Kullanıcıya anlayacağı dil ile hitap ederek (Basitlik ilkesi) Güvenlik mesajı Kullanıcının mesajı nasıl gördüğü İnternet Kullanıcılarının % kaçı DSA & Elgamal’ı biliyor olabilir? Kullanışlı Güvenlik Nasıl Sağlanır? • KURAL #8: Güvenliği ölçen metrikler arasında kullanışlılığa yer vererek ve kullanışsızlığın bir risk unsuru olduğunun farkına vararak • Kullanışlılık (usability) kelimesinin ISO/IEC 27001:2006 standardında ve NIST tarafından yayınlanan 800-30 no’lu risk yönetim dökümanında bahsi bile geçmemektedir. Kolay Metriklere Örnekler: Zor Metriklere Örnek: 1. Anahtar uzunluğu ? 2. Saniyede kaç paket işlenebiliyor? 3. Kripto algoritması kaç saniyede şifrelemeyi gerçekleştiriyor? Kullanışlılık (Nasıl Ölçeceğiz? ) Kullanışlı Güvenlik Nasıl Sağlanır? • KURAL #9: Kullanıcıların zihinlerindeki güvenlik modeline uygun davranarak / doğru metaforlar kullanarak Geri Dönülmeyen Silmeyi Anlatabilmek İçin Kağıt Kırpma Makinesi Metaforu Masaüstü (Ofis) Metaforu Tasarlanırken Çizilmiş Taslaklar Kullanışlı Güvenlik Nasıl Sağlanır? • KURAL #10: Hızlı prototip ve küçük kullanıcı çalışmaları ile veya DENEY, DENEY, DENEY,… Günümüz Fare öncesi Tasarlanmış Bazı Fare Prototipleri Bazı Çarpıcı Deney Sonuçları • Nobel ödüllü Kahneman ve Tversky’nin yapmış oldukları deney: – İnsanların %84’ü garanti 500 $’ı %50 kazanma şanslarının olduğu 1000 $’a tercih ediyor. – Aynı soru 1000 $’ın 500 $’ını kesin kaybetmek mi yoksa 1000 $’ın hepsini %50 ihtimal ile kaybetmek mi diye sunulunca aynı oran %31’e iniyor. • Site-tanıma resimlerinin başarı oranı: % 8. – 25 kullanıcıdan 23′ü kendilerine ait gerçek bir e-bankacılık işleminde seçtikleri resim yerine “xxx bankası ödüllü STR teknolojisini şu anda iyileştiriyor. Eğer seçtiğiniz resim 24 saat içerisinde gözükmezse müşteri servisi ile bağlantıya geçiniz.” şeklinde bir uyarı mesajı çıkmasına rağmen bankacılık işlemlerine devam ediyorlar. • İnternet’te Kimlik Doğrulama İşlemi için bedava dağıtılan Akıllı Kartları kullanmak isteyenlerin oranı: % 0. Kullanışlılık Çalışmaları • Kullanıcı Çalışmalarındaki Etik Sorunlar • ÖRNEK 1: Gerçek Zamanlı Olta (Phishing) Saldırıları Ne zaman başlayacak? Başlayınca mı önlem alacağz? • ÖRNEK 2: SMS Tek Kullanımlık Şifreler Niye hareket kimlik kanıtlama (transaction authentication) için kullanılmıyor? Orijinal E-Bankacılık Sitesi Phishing Sitesi TÜBİTAK 1001 - Resim-Şifre Projesi Tecrübeler - Kazanımlar • Projenin amacı: hepimizin kullana geldiği ve problemlerinin artık hemen herkes tarafından bilindiği metin tabanlı şifrelere (parolalar) alternatif olabilecek kullanışlı ve güvenli çözümler önermek. • Bilişsel psikoloji bilimi insanların resim hafızasının metin hafızasından üstün olduğunu ortaya koymakta (1. fotoğraf 1000 sözcüğe bedeldir.). • Peki bu prensibi problemimizin çözümü için nasıl ve ne şekilde kullanacağız? Veya bu prensip doğruysa hala niye resim-şifreler günlük hayatta yaygınlaşmıyor? Projede Yapılanlar • 6 Laboratuar Deneyi (Toplam 174 katılımcı) • Uzun Dönem (3 ay) Alan Çalışmaları – Ders Web Sayfası Giriş Uygulamaları • Uzun Dönem (1.5 ay) Alan Çalışması – Şifre yönetim eklentisi ile farklı web sitelerine giriş • 3 uluslararası konferans, 1 poster ve 2 (hazırlıkları devam eden) dergi makale çalışması. • GPEX (Graphical Passwords as Browser EXtension) açık kaynak kodlu Firefox şifre yönetim eklentisi – http://myuceel.etu.edu.tr/gpexV2.0.xpi adresinden son sürümü elde edilebilir. Parolalar ve Problemleri • • • • Unutma Tahmin edilebilirlik (Düşük Entropi) Çalınma – Paylaşma Farklı sitelerde aynı parolayı kullanma – Parola gerektiren site sayısındaki artış – Hangi site için hangi güvenlik seviyesinde parola gerekir? – Her sitede farklı parola kullanılmasını bekleyebilir miyiz? (Unutma – Karıştırma) GPEX Eklentisi 1. Kullanıcı password alanına çift tıklar. 2. Açılan pencerede resim-şifresini girer. GPEX (devamı) Kullanıcı oluşturulacak mevcut web sitesine özgü şifreyi görmek isterse 3. Enter Password düğmesine basılması ile birlikte password alanı üretilen şifre ile doldurulur GPEX’in Avantajları 1. Tek sabit bir kullanıcı şifresi (master password) ile her web sayfasına (örneğin: gmail) farklı şifre üretebilme özelliği Web sayfası şifresi = Hstr(Web sayfası URL || Master Password) H Str || URL : güvenli bir özet işlevi (hash function) : Şifre güçlendirme sabiti (açıklanacak) : birbirine bağlama (concatenation) : örneğin gmail.com GPEX’in Avantajları 2. Şifre tekrar kullanım problemlerini ve Olta Saldırılarını (Phishing Attacks) engelleme özelliği Phishing sayfasının URL’i farklı olacağı için bu sayfaya iletilen şifre farklı bir şifre olacaktır. Web sayfası şifresi = Hstr(Web sayfası URL || Master Password) H Str || URL : güvenli bir özet işlevi (hash function) : Şifre güçlendirme sabiti (açıklanacak) : birbirine bağlama (concatenation) : örneğin gmail.com GPEX’in Avantajları 3. İstenilen şifre türünü ayarlayabilme özelliği GPEX’in Avantajları 4. Çevrim dışı ataklara karşın ayarlanabilir şifre güçlendirme özelliği Her web sayfası için kullanılan özet işlevi “str” kez tekrar ettiriliyor, böylece çevrimdışı ataklar “str” kadar zorlaştırılıyor. Web sayfası şifresi = Hstr(Web sayfası URL || Master Password) GPEX’in Avantajları 5. Ziyaret edilen web sitesinin şifre kurallarına uygun şifre üretimi Parola Oluşturma Politikası XML dosyası Ziyaret edilen sitenin kurallarına uygun şifre politikası GPEX’in Avantajları 6. Üretilen şifrelerin gözlemlenebilmesi ile kullanıcının güvenini kazanma GPEX’in Avantajları 7. Web sitelerini güvenlik seviyelerine ayırma ve güvenlik seviyesi düşük siteler için master password’ün tamamını veya bir kısmını kullanmama ÖRNEK: Ziyaret edilen web sayfası oyun indirmek için kayıt olmayı gerektiriyor ÇÖZÜM: 1. Web sayfasının güvenlik seviyesinin 0 olarak atanması. 2. Web sayfası şifresi = Hstr(Web sayfası URL || Master Password) formülü yerine Web sayfası şifresi = Hstr(Web sayfası URL) formülünün kullanılması. GPEX’in Avantajları 8. Farklı şifre yöntemlerini güvenliğin önemli olduğu gerçek hayat uygulamalarında deneme ve karşılaştırma imkanı GPEX Alan Çalışması ve Sonuçları • 20 üniversite öğrencisi GPEX’i ortalama 1.5 aylık süre boyunca ziyaret ettikleri toplamda 7 farklı site için 1197 kez kullandılar. – – – – – Hatasız giriş oranı: % 98.5 (19 hatalı giriş). Şifresini unutanların oranı: % 0 Ortalama giriş süresi: 6.24 saniye. GPEX’in kullanışlılığına verilen puan: 4,525 / 5. GPEX’in güvenliğine verilen puan: 4,75 / 5. • Çalışma sonrasında günlük kullanımda GPEX’i kullanmaya devam edenlerin oranı: % 5. • Sebepler: – – – – – Klavyeden girmeye alışkınım. Zaten güvenli şifre kullanıyorum. Güvenlik benim için o derece önemli değil. Programın yüklenmesindeki zaman kaybı Taşınabilirlik problemi Son Söz “6th Principle: Finally, it is necessary, given the circumstances that command its application, that the system be easy to use, requiring neither mental strain nor the knowledge of a long series of rules to observe.” “6. Prensip: Son olarak, uygulamaya hükmeden koşullar bağlamında, sistemin zihinsel zorlama veya uzun kurallar silsilesi izleme bilgisine gereksinim duymayan kolay kullanılabilir bir sistem olması gerekir.” Auguste Kerckhoffs, 1883. Bazı Kaynaklar 1. 2. 3. 4. 5. Peter Gutmann: Security Usability, http://www.cs.auckland.ac.nz/~pgut001/pubs/usability.pdf, February 2008. Draft. L.F. Cranor and S. Garfinkel: Security and Usability: Designing Secure Systems that People Can Use, O’ReillyMedia, Inc., Sebastopol, CA, USA, August 2005. L.F.Cranor: A framework for reasoning about the human in the loop. In Proceedings of the 1st Conference on Usability, Psychology, and Security, pages 1-15, Berkeley, CA, USA, 2008. USENIX Association. Alma Whitten and J. D. Tygar: Why Johnny can’t encrypt: A usability evaluation of PGP 5.0. In 8th USENIX Security Symposium, pages 169 – 184. Usenix, 1999. Akademik Güvenlik Bloğu, http://akademikguvenlik.wordpress.com/