Dijital çağda şifre güvenliğini sağlamak

Herkesin ezberleyebildiği bir şifre mutlaka vardır. Daha doğrusu ezberlenmesi gereken bir şifre olmak zorunda. Mesela, doğum tarihli ve en sevdiğim takımlı bir kombinasyon ile o an giydiğin gömleğin rengi. Bunlardan daha iyi kombinasyon elbette “123456”. Kim bilebilir ki bu şifreyi, değil mi? Yıl olmuş 2022, halen şifrelerini telefonunda ki not defretine veya çantanda ki adres defretine mi not alıyorsun? Yahut, “benim neyimi çalabilirki” diyerek şifreni e-posta adresi mi yapanlardan mısın?

Örneğin şifresi “123456” yapanlar 2021 tarihli NorPass raporuna göre 1,461,585 defa, mısır gibi patlatılan Facebook, Wattpad veya en sevdiğin oyunların bulunduğu Epic Games servisleri üzerinde kullanıldı. Peki şifresini “sanane” yapanlara ne demeli? 51,605 kez bu şifre çalınan veriler içinde bulundu. Bu elbette bir son değil ve eğer sende kullanıyorsan bu şifrelerden yarın birgün sözlük saldırılarına1 karşı savunabileceğin bir şansın olmayacak. Bu veri sadece Türk kullanıcılar için geçerli. Daha büyük resme bakarsak durum daha vahim.

İnsanlar şifrelerinde isimlerini, en sevdikleri müzik gruplarını, fanatikleri olduğu futbol takımlarını, sahip olmak istedikleri araba markalarını ve bazende küfür kullanabiliyorlar. Bir başka örnek vermek gerekirse Dünya genelinde kadınlar erkeklere %50 oran ile sevgi sözcükleri kullanırken, erkekler “Hokey” kelimesini %75 oran ile kadınlara göre daha fazla kullanmış.

Bunca bilgiden sonra sende eğer şifrende böyle zayıflıklar bulduysan veya şifrelerini saklama yönteminden ötürü çalınmasından endişeliysen şifrelerini güvenli saklama yöntemlerini öğrenmek istersin.

Şifre güvenliğinin temeli: Entropi

Şifre güvenliğine geçmeden önce şifreler hakkında az bilinen bazı özelliklerini paylaşmak istiyorum. Kullandığımız ve ezberleyebileceğimiz şifrelerin önemli bir kısmı malesef ki sözlük saldırılarında bulunabilirler. Bu sebepten ötürü şifrelerimiz belli bir kombinasyon takip etmektense, daha özel bir algoritmaya sahip olmaları gerekiyor.

Bir şifrenin gücünü kullandığı karakter sayısı veya tuhaflığı değil, o şifrenin rastgeleliği (düzensizliği) yani entropisi ölçer. “Tr0ub4dor&3” şifresi oldukça karmaşık gözüküyor. Bu şifrenin temel entropisi 28 bit. Saniyede 1000 harf tahmin etme hızımız olduğunu varsaylım. Hızlı bir matematiğe var mısınız?

>>> 2**28 / 1000 / 60 / 60 / 24
3.1068918518518522

Yani 3 gün 2 saatde bu şifreye kırabilirler. O zaman farklı bir şifre deneyelim: “correct horse battery staple”. Çok basit bir şifre sanırsam. Aklınızda her bir harfin anlamı canlanabiliyor. Peki bilgisayar bilimleri açısından güçlü, yani entropisi yüksek mi? Bu şifrenin entropisi 44. Üstte ki matematiği tekrardan bu şifreye uygulayalım o zaman.

>>> 2**44 / 1000 / 60 / 60 / 24 / 365
557.8445600081178

558 yıl boyunca elektrik kesilmeden, işlemci yavaşlamadan, teknik sorun yaşamadan saniyede 1000 harf tahmin etme kapasitemiz ile bulabiliriz. Böyle bir senaryo pek mümkün olmayacağından ve gerçekten böyle bir şifreyi bulma ihtiyacınız varsa, zaten tek bir bilgisayar ile kimsenin yapmacağını düşünerek şifrenin kırılmasının “imkansız” olarak ifade edebilirim. Bilişim güvenliği üzerine çalışanlarının ilgisi Kuantum bilgisayarında olması ile, az önce ki yaptığım hesaplamanın bir o kadar değersiz hale gelmesi doğru orantılı.

Bu mükemmel şifre kavgasına çözüm bulabilecek yöntem yine yazılımarda aranması gerekiyor.

Yazılım ile şifreleri yönetmek

Kulağa biraz tuhaf geliyor “şifreleri yönetmek” ama temelinde gündelik olarak girdiğimiz şifrelerin çoğu belli periyot ile değiştirilmesi gerekiyor. Bunu normal bir kullanıcı için söylemek biraz haksızlık olarak düşüsenizde kurumsal ortamda bu yapılmak zorundadır. Müşteri İlişikileri Yönetim sisteminde kullanacağınız bir şifrenin basitliğinden ötürü size yaşatabileceği sorunlar KVKK ile sınırlı kalmayacak. Aynı zamanda işe alınan veya çıkarılan çalışnaların bu sistemlere tekrardan girmemeleri gerek. Bu şifre yönetim sistemleri ile uygulanmakta.

Son kullanıcının yani, senin, benim gibi gibi kullanıcılar içinde yazılım veya Web servisi bulunuyor. Fakat, temelinde bu yazılımları ve servisleri kullanmak için yine bir şifre veya sertifikaya ihtiyacımız var. Bunun başlıca sebebi sadece gerçekten veritabanına erişmesi gereken kişi anlamında değil, o veritabanının kriptografik şifresinin çözülmesi gereken özel anahtarın o şifre ile mümkün olmasından kaynaklanıyor.

Bu yazılımları seçmemde ki temel sebep özgür ve açık kaynak kodlu olmalarından.

KeePass

Bu listenin en eski ve bir o kadar tarihe boyun eğmeyen yazılımarından bir tanesi. C# dili ile aslında MS Windows platformuna geliştirilmiş yazılım GPLv2 lisansı ile dağıtıldı. Ne kadar son kullanıcının kaynak koduna bakmayacağını bilsekte, bu bilgi bir güvenlik yazılımı için çok önemli bir sosyal anlaşma.

KeePass, Mono sayesinde Ubuntu 20.04’de

Bir önce ki paragrafta ifade ettiğimiz gibi MS Windows platformuna geliştiriliyor. Fakat Mono kütüphanesi sayesinde Linux veya BSD sistemlerde de çalışabiliyor.

KeePass kullanımı en başta zor olsada önemli güvenlik parametrelerini en başta biraz zorlayarak uygulatabiliyor. Özellikle “master” yani ana şifrenizin entropisinin yüksek olması, o şifre veritabanının ne kadar güvenli olacağını belirtiyor.

Bu yazılımı özel kılan özelliklerden bir başkası “Auto Typing” olması. Böylelikle örneğin bir programa girerken şifreleri kopyala ve yapıştır yapmaktansa bu özellikle otomatik doldurabileceksiniz. Tek bir sıkıntısı bu özelliğin kurulumu zahmetli.

Projenin web sayasına KeePass.info‘dan erişebilirsiniz ve daha fazla ekran görüntüsü ile buraya yazamayacağım kadar fazla olan özelliklerine göz atabilirsiniz.

Bitwarden

Herkese rahatlıkla önerebileceğim, kullanıcı ve kullanım dostu bir web yazılımı. Ne kadar web için olduğunu söylesemde bu yazılımı Android ve iOS cihazlarından erişebileceğiniz yazılımları bulunmakta. Servis olarak Bitwarden kullanabileceğiniz gibi Bitwarden yazılımını Linux sunucunuza kurabileceğiniz bir servis halinede getirebilirsiniz.

Teknik detaylarına bir göz atmak istersek sunucu tarafı C# dili yazılmış ve birçok işletim sisteminde çalışabilecek masaüstü yazılımları dışında birçok tarayıcıda çalışacak eklentileri mevcut. Sunucu tarafında ki kod AGPLv3, istemci tarafında ki kod ise GPLv3 ile lisanslanması ile gerçek bir özgür açık kaynak kodlu yazılım olduğunu lisanslıyor.

Aynı zamanda Bitwarden topluluğu çok aktif bir forum ve mesajlaşma sistemine sahip olması ile birlikte, bu sistem hakkında weblog yazıları internette bulunuyor.

Bitwarden websayfası

Hiçbir sunucu kurmadan Bitwarden servisini kullanmak isterseniz, Bitwarden.com‘dan tek kullanıcı sınırsız şifre saklamaya başlayabilirsiniz.

pass

Bazen ihtiyaçlarımız o kadar basit ve kullanışlı olmasını istiyoruz ki herşeyi terminalden yapabileceğimizi biliriz. pass bu konuda, UNIX ve UNIX benzeri sistemlerde bulunabilecek bir şifre yönetim yazılımı. Temelinde GnuPG ve UNIX klasörlerini kullanan bu yazılım, başka programlar ile farklı noktalara getirilebilir.

Örneğin Git ile birlikte elinizde ki şifrelerin bir kısmını uzak bir sunucuda, sadece sizin şifresini çözeceğiniz bir formatta saklanacak. Eğer X11 kullanıyorsanız xclip ile birlikte kopyalama ve yapıştırma özelliklerinide kullanabilirsiniz.

ZX2C4‘ün yaptığı bu proje kabuk betik (shell script) dilini kullanarak ~/.password-store klasöründe işlem görüyor.

Bu programı kullanabilmek için biraz GnuPG bilgisi iyi olacak. GnuPG anahtarınız süresi biten bir anahtar şeklinde ayarladıysanız, bunu yazımızda nasıl yenileyeceğinizi takip edebilirsiniz.

Program teknik, özellikle UNIX, GnuPG ve Git, bilgiye sahipse kullanması ve başlaması çok vakit almayacak, yeni özelliklerin eklenebileceği bir yazılım.

Şifre yöneticisi ile dijital güvenliği sahiplenme

Şifre yöneticisi ile bu digital çağda şifrelerinizi korumak neredeyse tek yöntem olduğunu söyleyebiliriz. 3 farklı tipte yazılım ile şifrelerimizin nasıl korunabileceğini göstermeye çalıştık. Bu yazılımların ayrı topluluklar tarafından geliştirilen sürümleri olmasına rağmen bahsetmek yerine bu temel yöneticilere sadece değindik. İleriki yazılarımızda TOTP ile dijital güvenliğinize bir güvenlik adımıda daha eklemenin nasıl olacağını ve periodik olarak şifrelerin veya sertifikalarin nasıl değişebileceğini göstereceğiz.


  1. Bir sözlük saldırısı, kaba kuvvet (brute force) saldırısına benzer değildir. Sözlük saldırısında önceden bilininen kelimeler farklı sıralar ile kullanılırken, kaba kuvvet saldırında harfler ve onların kombinasyonları kullanılıyor. ↩︎