Şifre Yöneticisi: LastPass, Bitwarden, Buttercup ve KeePassXC

07.06.2019

Online kimliklerinizin en zayıf noktası şifrelerinizdir. İdeal olarak her kimlik için özgün bir şifre kullanmanız gerekir. Fakat sahip olduğunuz her hesap için, özgün bir şifreyi hatırlamanızın imkansız olması, genellikle 3-4 şifreyi tüm hesaplarınızda kullanmanıza sebep olur. Ya da “sifreler.txt” gibi bir dosyada bu bilgileri düz bir biçimde saklarsınız. Bu yöntem, özgün şifreler kullanarak çözdüğünüz güvenlik problemine, “bu dosyayı nasıl koruyacağım?” problemini eklemekten öteye geçemez. İşte tam bu noktada devreye güvenli bir şifre yöneticisi giriyor.

LastPass Şifre Yöneticisi

Yaklaşık 4 senedir şifre yöneticisi olarak LastPass 🡥‘ın ücretsiz versiyonunu kullanıyorum. Tüm işletim sistemlerinde (browser eklentisi olarak) ve Android telefonumda kullanabiliyorum. End-to-end encryption (E2EE) var. Ana şifrenizi unuttuğunuz zaman, hesabınızın kontrolünü ele geçirebilmek için yapabileceğiniz çok fazla bir şey yok. Eklentiyi daha önce kullanmış olduğunuz browserlardan veri kurtarmaya çalışıyorsunuz. Veri orada değilse geçmiş olsun :) Bu durum, E2EE olayının gerçek olduğunu işaret ediyor.

LastPass’ın daha önce komple hacklenmiş 🡥 olması, belki de tüm ürünü çöpe atacak bir bug‘ı bulan ve çözen kişiye sadece 1000$ ödül vermesi 🡥 ve kaynak kodunun açık olmaması sebebiyle benzer özellikleri sunan ve açık kaynak kodlu olan bir şifre yöneticisi arayışına girdim.

Bitwarden

Bitwarden 🡥, neredeyse LastPass’ın klonu sayılabilecek, açık kaynak kodlu bir şifre yöneticisi. LastPass gibi cross-platform ve senkronizasyon sunucusu ile tüm cihazlarınızdaki şifreleri senkronize edebiliyorsunuz. Senkronizasyon sunucusu da açık kaynak kodlu, kendi sunucunuza kurup kullanabiliyorsunuz ya da onların sunucusunu kullanıyorsunuz. Çeşitli rakip ürünlerden verilerinizi import edebiliyorsunuz. Gelelim eksilerine; sunucu, 8-10 adet Docker container’dan oluşuyor. En az 10$’lık bir sunucu almanız gerekecektir. Kendini sunucunuzda, sadece ücretsiz hesap özelliklerini kullanabiliyorsunuz. “E ben barındırıyorum bu sunucuyu” diyip premium özellikleri kullanabilme imkanınız yok malesef. OTP/TOTP gibi günümüzün en çok kullanılan güvenlik önlemini premium hesap türünde sunmaları (tam olarak LastPass’ın yaptığı gibi) beni Bitwarden’a geçiş yapmaktan alıkoyan 2 sebepten biri. İkinci sebep ise, masaüstü ve mobil uygulamalarının, browser eklentilerinin “sunucu olarak x adresini kullan” seçeneğinin olmaması. Sadece web arayüzünü kullanabiliyorsunuz. Kullanacağınız tüm clientların kaynak kodlarını indirip, sunucu adresi değişikliğini yaparak compile etmeniz gerekecek.

Buttercup

Buttercup 🡥, açık kaynak kodlu ve cross-platform olan bir diğer şifre yöneticisi. Şifrelerinizin, ana şifre ile şifrelenmiş (şifrepcition?!) halini kendi bilgisayarınızda saklamanıza izin veriyor. Eğer bu bilgileri kendi bilgisayarınızda saklamak istiyorsanız, masaüstü uygulamasını indirmek zorundasınız. Bu noktada browser eklentileri, masaüstü uygulaması ile iletişime geçerek kullanım kolaylığı sunuyor. Eğer bu dosyanın saklanması/senkronizasyonu için Google Drive’ı ya da WebDAV entegrasyonu sağlayan bir hizmet/kendi sunucunuz ile sağlanmasını istiyorsanız, sadece browser eklentisini de kurabilirsiniz. Android ve iOS uygulamaları, şifrelerin lokal olarak saklanmasına henüz izin vermiyor. Mobil uygulamalarına, yakın zamanda “offline mod” diye bir özellik eklemişler. Bu özellik, internet erişiminiz olmadığı zaman önceden internet erişimi ile edindiğiniz kopyayı “read-only” olarak kullanmanıza olanak sağlıyor. OTP/TOTP özelliği 🡥, eklemeyi planladıkları ama aciliyeti olmayan bir özellik. Proje sahipleri, LastPass’tan daha ulaşılabilir 🡥 hissiyatı yaratıyorlar.

Masaüstü uygulamasını Ubuntu 18.04’e kurup, LastPass şifrelerimi import ettim. Arayüzü genel olarak yeterli, fakat notları tek satır gösteriyor. Notlarım arasında SSH keylerim, paragraflar halinde çeşitli notlarım var ve tek satır görüntüleme tamamen yetersiz. Chrome eklentisi (Brave Browser’a kurduğum), masaüstü uygulaması ile read-only iletişime geçebildi. Hiç bir şekilde yeni şifre ekleyemedi ve ya mevcut şifreyi güncelleyemedi. Dosyaya ait bir yetki problemi olduğunu düşünerek herkese tüm yetkileri verdim (ki bunu yapmamalısınız), sorun yine de çözülemedi. Dolayısıyla alternatif arayışıma devam etme kararı aldım. Önümüzdeki aylarda Github changelog’larını incelemeye devam edeceğim. OTP ve masaüstü offline çalışabilme özelliği eklenir, mevcut buglar temizlenirse kesinlikle tekrar denemeyi düşünüyorum.

KeePassXC

KeePassXC 🡥, 2003’ten beri yayında olan açık kaynak kodlu KeePass‘in 2. nesil cross-platform forku (direkt fork olan KeePassX’ten forklanmış). Buttercup gibi, bütün şifrelerinizi lokal olarak saklayabiliyorsunuz. Buttercup senkronizasyon taraflı seçenekler sunarken, KeePassXC “Asıl amacımız şifre yönetimini güvenli bir hale getirmek. Senkronizasyon amaçlı kod yazmak hem geliştirme ve bakım maliyetini artırıyor hem de yazılımı komplikeleştiriyor. Ana şifreniz ile şifrelenmiş olan bu arşiv dosyalarını GDrive ya da Dropbox ile senkronize etmek çok daha kolay” diyor 🡥. Bu durum, lokal dosyaya sahip olup, kendi sunucuma yedeklemeyi planladığımdan, benim için hiç bir sorun oluşturmuyor.

Masaüstü

Firefox ve Chromium için KeePassXC-Browser eklentisi var. Masaüstü uygulaması ile eşleştirerek LastPass ve diğerleri gibi kullanım kolaylığı sunuyor. Kullanım sürem boyunca hiç bir sorun yaşamadım. Fakat bu eklentilere ihtiyaç duyduğunuz tek nokta “bu sitede x adet hesabın var” bildirimi. Masaüstü uygulamasının desteklediği tüm işletim sistemlerinde, “auto-type” özelliğinin olması, kullanıcı adı ve şifrenizi kopyala/yapıştır yapma zorunluluğunu ortadan kaldırıyor. Kopyala/yapıştır demişken “x saniye sonra clipboardı temizle” özelliği de muhteşem.

Buttercup’ın sunmadığı, LastPass ve Bitwarden’ın ücretli hesap türlerinde sunduğu OTP/TOTP ücretsiz olarak sunuyor. Aslına bakarsanız, hiç bir özelliği ücret karşılığı sunmuyor, tamemen ücretsiz. 2FA için kullandığım Google Authenticator, yedekleme, export etme ya da secretı gösterme gibi veri kaybını önleyen hiç bir özellik sunmadığı için, tüm 2FA secretlarını tek tek LastPass’e yedeklemiştim. KeePassXC’nin önerdiği gibi 2FA secretlarını şifrelerden ayrı bir arşiv dosyasına, farklı bir ana şifre ile eklemem 5 dakika bile sürmedi. Ağırlıklı olarak bilgisayar kullandığım için, 2FA kodlarını bilgisayardan üretebilmem ve bu secretları güvenli bir şekilde saklayabilmem/yedekleyebilmem/senkronize edebilmem benim için önemliydi.

Mobil (Android)

Android taraflı da Keepass2Android Offline uygulamasını kullanıyorum. TOTP tokenlarını bu uygulamadan da üretebiliyorum. Keepass2Android’e hayran kaldım diyebilirim.

2021’den gelen edit: KeepassDX çok daha temiz bir UI’a sahip, daha modern bir alternatif. Görür görmez ona terfi ettim.

Geliştirici, bir çok noktayı düşünmüş. Örneğin, eğer online senkronizasyon kullanmıyorsanız (GDrive, Dropbox vb), uygulamanın offline versiyonunu kullanabiliyorsunuz. Bu versiyon sadece dosya saklama/okuma yetkisi istiyor :) Böyle bir opsiyon olmasını düşünmek bile çok ince bir hareket. Ayrıca kullanıcı adı ve şifre bilgilerini kopyalamak için kendi sanal klavyesini yazmış. Kullanıyor olduğunuz kapalı kaynak kodlu diğer klavyeler, kopyala/yapıştır yaptığınız verilere erişebiliyor diye böyle bir özellik eklemek kesinlikle artı puan. Açık kaynak kodlu olan bu uygulama, sadece güvenlik hizmeti vermiyor, aynı zamanda sizi ufak ufak eğitiyor da.

LessPass Deterministic Şifre Yöneticisi

LessPass 🡥, açık kaynak kodlu, deterministic şifre yöneticisi. Deterministic şifre yöneticileri; girdiğiniz her URL, eposta adresi/kullanıcı adı, bir takım parametreler (karakter sayısı, versiyon) ve belirlediğiniz ana şifreyi kullanarak, o kombinasyona özgü şifreler üretirler. Bu parametreler girildiğinde, her zaman aynı şifreyi üretir. MD5’in çalışma mantığı ile aynıdır.

Bu yaklaşımın artısı kullandığınız şifrelerin hiç bir zaman, hiç bir yere kaydedilmesinin gerekmemesi. En büyük pazarlama noktası da bu. Fakat eksilerine gelecek olursak; mevcut şifrelerinizin hepsini çöpe atmanız gerekiyor. Migration mümkün değil! Çünkü uygulama sadece şifre üretiyor. Üstelik hangi siteye hangi eposta adresi ya da kullanıcı adıyla üye olduğunuzu hatırlamanız gerekir. Hatırlıyorsunuz diyelim, ana şifrenizin (master key) kötü niyetli kişiler tarafından çalınması durumunda tüm hesaplarınızın şifrelerinin hesaplanması mümkün. Bu noktada master key + URL + eposta adresi bilgilerini değişken olarak kullanmanız gerekiyor. Çeşitli hesaplarda farklı master key kullanımı, versiyonu 1-999 arasında seçmek gibi bir çözüm üretebilirsiniz. Hatırlayabiliyorsanız ne ala! Fil hafızasına sahip olmayan çoğunluk ise “farklı şifreleri hatırlayamıyorum”dan daha büyük bir problem ile karşılaşıyor. Oysa, deterministic olmayan şifre yöneticilerinde, hem ana şifrenizi hem de şifrelerinizin bulunduğu dosyayı ele geçirmeleri gerekir, yani 2 kat daha güvenlidirler.

Bu yüzden “geçiniz efendim!”.

Peki Hangi Şifre Yöneticisi?

Bu noktada benim tercihim KeePassXC. Beni, sorunsuz çalışması ve TOTP desteği ile kapmıştı zaten. Android alternatifinin (official bir uygulama değil) bu denli başarılı olması da tuzu biberi oldu :)

Tabiki burada bahsetmediğim bir çok şifre yöneticisi var. Mesela en popülerlerden biri olan 1Password 🡥‘den bahsetmedim. Çünkü açık kaynak kodlu değil, ücretsiz de değil. Dashlane de açık kaynak kodlu değil. Ücretsiz versiyonu ise sadece 50 adet şifreyi tek bir cihazda saklamaya izin veriyor (şaka gibi). LastPass harici incelediklerimin hepsi açık kaynak kodlu. Cross-platform ve de ücretsiz versiyonları var. Dolayısı ile bu üç kriteri barındırmayan ürünleri incelemeyi düşünmedim.

Uyarı: İster şifre yöneticisi kullanın, ister kullandığınız browserın şifre kaydetme özelliğini kullanın, kesinlikle otomatik olarak şifre girme özelliğini aktifleştirmeyin. Gezdiğiniz sitelerde, 3. parti JavaScript kodları ile sizin haberiniz olmadan kişisel bilgilerinizi çalabiliyorlar.

Detaylı bilgi 🡥 | Açığı kullanan siteler 🡥