Pass - Unix parola yöneticisi
(passwordstore.org)- Pass, Unix felsefesini izleyen basit bir parola yönetim aracıdır; her parolayı GPG ile şifreleyip dosyada saklar
- Parolalar klasör yapısı içinde düzenli biçimde yönetilebilir; komut satırı aracı ile ekleme, düzenleme, oluşturma, görüntüleme, silme gibi işlemler kolayca yapılır
- Git entegrasyonu sayesinde parola değişiklik geçmişi izlenebilir ve senkronizasyon yapılabilir; bu da birden çok bilgisayar ve ekip ortamında kullanışlı olmasını sağlar
- Kullanıcı özgürlüğü yüksektir; dosya yapısı ve saklanan veri biçimi kullanıcının durumuna göre serbestçe düzenlenebilir
- Genişletilebilirlik ve yüksek uyumluluk sayesinde, çeşitli eklenti özellikleri ile platforma özel istemciler/GUI'ler aktif olarak geliştirilip dağıtılmaktadır
Pass'e giriş
- Parola yönetimi basit olmalı ve Unix felsefesini takip etmelidir
- Pass, her parolayı GPG ile şifrelenmiş bir dosya olarak saklar; dosya adı ise ilgili parolanın gerekli olduğu web sitesi ya da kaynak adını kullanır
- Bu şifreli dosyalar istenilen klasör yapısı içinde düzenlenebilir. Genel dosya yönetim komutlarıyla bilgisayarlar arasında kopyalama, taşıma, silme gibi işlemler de kolayca yapılabilir
- Pass, her parola dosyasının eklenmesi, düzenlenmesi, oluşturulması, görüntülenmesi için özelleşmiş komutlar sunar ve parolalar varsayılan olarak
~/.password-storealtında saklanır - Yalnızca basit bir shell betiği ile uygulanmıştır
- Parola kopyalama (panoya kopyalama) ve parola değişiklik geçmişi kaydı için Git kullanır
- Temel shell komutlarıyla da düzenlenebilir; Zsh, Fish, Bash gibi çeşitli shell'lerde otomatik tamamlama desteği vardır
- Çeşitli eklenti özellikleri ve diğer platformlara yönelik istemciler/GUI'ler, topluluğun öncülüğünde aktif olarak geliştirilmektedir
Parola deposunun kullanımı
- Saklanan tüm parolaların listesi görüntülenebilir
- Belirli bir parolayı görüntüleme ve panoya kopyalama özelliği desteklenir (otomatik temizleme ile)
gpg-agentaracılığıyla parola girişi ve kimlik doğrulama işlemleri rahatça yönetilir- Yeni parola ekleme, mevcut dosyayı çok satırlı kaydetme (
-mseçeneği), varsayılan metin düzenleyici üzerinden dosyayı doğrudan düzenleme mümkündür /dev/urandomkullanarak rastgele parola üretme özelliği sunar (seçeneklere göre sembol dahil/haricinde, doğrudan panoya kopyalama desteğiyle)- Parola silindiğinde, dosya sistemindeki şifreli dosya da kaldırılır
- Git deposu olarak başlatıldıktan sonra, her parola değişikliğinde commit oluşturulur ve
pass git push/pullile senkronizasyon yapılabilir - Ek özellikler ve ayrıntılı kullanım için man page'e bakılabilir
Temel yapılandırma yöntemi
- Parola deposu başlatılırken yalnızca GPG anahtarı girerek kolayca başlanabilir (birden fazla GPG anahtarı belirtildiğinde ekip ortamları için uygundur)
- Belirli klasörlere göre ayrı GPG anahtarları atanabilir (
-pseçeneği) - Git deposu olarak da başlatılabilir (ayrıca remote belirtilebilir)
- Tüm parola ekleme, silme ve düzenleme işlemleri Git commit'leriyle yönetilir
- man page'de daha gelişmiş başlatma örnekleri bulunabilir
Kurulum yöntemi
- Debian/Ubuntu: apt-get install pass
- Fedora/RHEL: yum install pass
- openSUSE/Gentoo/Arch/Macintosh/FreeBSD gibi çeşitli platformları destekler
- Tarball indirilebilir veya Git deposu doğrudan clone edilebilir (tüm sürümler imzalı etiketlerle sunulur)
Veri düzeni ve esneklik
- Pass, verileri kullanıcının tercihine göre serbestçe düzenlemeye olanak tanır (şema ya da biçim zorlaması yoktur)
- Çok satırlı saklama, veriyi dosya adıyla ayırma, klasör yapısı kullanma gibi çeşitli yöntemler seçilebilir
- Örnek: Amazon/bookreader için ilk satırda parola, sonrasında URL, kullanıcı adı, gizli soru gibi ek bilgiler saklanabilir
- Gerekirse her bilgi ayrı dosyalarda da yönetilebilir (ör. password, secretquestion1 vb.)
- Panoya kopyalama seçeneği yalnızca ilk satırı kopyaladığından, gerçek kullanım ile ek bilgilerin saklanması verimli biçimde birlikte yürütülebilir
Eklenti özellikleri
- Eklenti özellikleri (extensions), çeşitli kullanıcı ihtiyaçlarına yanıt vermek için desteklenir
- Sistem klasörüne veya kullanıcı klasörüne kurulur ve etkinleştirme durumu ortam değişkeniyle belirlenir
- Topluluk tarafından çeşitli eklentiler aktif biçimde geliştirilip sunulmaktadır
Uyumlu istemciler
- Birden çok platform için istemciler/GUI'ler topluluk tarafından geliştirilip dağıtılmaktadır
- Kullanıcılar işletim sistemine veya kullanım ortamına uygun istemciyi seçebilir
Diğer parola yöneticilerinden geçiş
- Başka parola yöneticilerinden veri taşırken çeşitli dönüştürme betikleri ve yöntemler desteklenir
- Kullanıcı, kendisine uygun şekilde en iyi veri düzenini seçebilir
Geliştirici ve lisans
- Jason A. Donenfeld (zx2c4.com) tarafından geliştirildi
- GPLv2+ lisansı ile özgürce kullanılabilir ve değiştirilebilir
2 yorum
Aslında yalnızca depolamaya yarayan çok araç var, ancak asıl önemli olan otomatik doldurma gibi entegrasyonlar.
Hacker News görüşleri
Burada
passhakkında çok sayıda olumlu görüş var, ancak birkaç temel dezavantaj da açıkça mevcutYapılandırılmamış veri olması nedeniyle genel olarak kullanımı rahatsız edici
Örneğin kullanıcı adı ve parolayı bir scriptte kullanmak istediğinizde her seferinde kendiniz ayrıştırma kodu yazmanız gerekiyor
pass generateile yeni parola oluşturunca mevcut tüm değerlerin üzerine yazılıyorYani parola ve gizli soru cevabı birlikteyken sadece parolayı yeniden üretirseniz cevap kayboluyor
Geçmişi incelemek çok zor
Her şey şifreli olduğu için
git diffile de faydalı bir içerik elde edilemiyor ve komut satırı araçlarıyla geçmişi görmek ya da hataları geri almak zorAdı fazla genel olduğu için araması zor
Son zamanlarda benzer bir araç olan passworth geliştiriliyor (container/sandbox kullanımı da düşünülüyor) https://github.com/andrewbaxter/passworth
Geçmişi incelemenin zor olduğu noktasına karşılık, aslında
pass.gitattributesdosyası ayarlayarak git'in gpg dosyalarını metne çevirip diff göstermesini destekliyor~/.password-store/.gitattributesiçine*.gpg diff=gpgekleniyor.git/configiçinde[diff "gpg"]ayarıylatextconv = gpg2 -d ...belirtiliyorpasskullanırken yaşadığım ek sorunları da paylaşayımpassdeposunu başka bir bilgisayara taşırken tam olarak neyin kopyalanması gerektiği belirsiz)pass, gpg üzerine konmuş çok ince bir arayüz olduğu için gpg'nin tüm dezavantajlarını aynen taşıyor (özellikle gpg-agent ile ilgili sorunlar)agegibi daha basit şifreleme araçlarına geçmeye çalışıyor https://github.com/FiloSottile/agepassile Android kombinasyonu pek iyi değildi; resmi paket artık bakımsız, fork ise F-Droid'te yok ve arayüz de kullanışsızpasskullanıyorum ama daha iyi genel amaçlı çözüm pek yokageile değiştirmek mümkün ama Android desteği yokgopassdaha iyi görünüyor (passile uyumlu, tüm Unix'lerde çalışıyor,ageeklentisi sunuyor, https://www.gopass.pw), ama onun da Android paketlemesi yokVeri yapılandırma sorununu klasör yapısıyla çözüyorum
username,password,emaildosyalarını ayrı ayrı yönetiyorumnotes(yapılandırılmamış notlar) ya da özel durumlardajson(makine tarafından okunması için) dosyası da ekliyorumBen ise tam tersine verinin yapılandırılmamış olmasını büyük bir avantaj olarak görüyorum
Username: xxxgibi bir formatta yazarsanızbrowserpassgibi tarayıcı eklentileri bunu tanıyıp otomatik doldurabiliyorVeri yapılandırma ve geçmiş sorunları hakkında özellik bazında görüş paylaşımı
pass generatetüm değeri ezse bilesite/pass,site/secret-questiongibi ayrı dosyalarla yönetilebilirgit diffile üretilmiş parolaları takip etmek zor olabilir ama asıl önemli olan son değişiklik zamanı (git logile görülebilir); gerekirsegit checkout -dile geri yüklenebilir$ passyazınca ilgili paketler de çıktığı için arama sorunu o kadar ciddi değilTarayıcı parola yöneticisi + passkey çok daha kullanışlı, ama
passkasası da kurtarma kodları ve API anahtarları saklamak için işe yarayabilirpasskullanırken bana en muğlak gelen şey tehdit modelinin belirsiz olmasıydıGPG agent önbelleğe alınırsa herhangi bir script (
npm postinstallgibi)pass lsile tüm kimlik bilgilerini tarayabiliyorO noktada bu, her şeyi tek bir
~/passwords.txtdosyasında tutmaktan çok da farklı olmuyorAma önbelleği kapatırsanız her seferinde uzun GPG parolasını girme eziyeti var
YubiKey ile isteğe bağlı açmayı da denedim ama entegrasyon zayıf ve sık parola girişi gereken durumlarda oldukça rahatsız edici
Bu yüzden Bitwarden'a geçtim
Benim durumumda yubi'yi sürekli takılı bırakıyorum
Tüm parola yöneticilerinde esasen depo kilidi açıksa ana parola RAM'de ya da önbellekte kalır ve tüm parolalar açığa çıkabilir
Boş USB portunuz varsa Nano key'i de sürekli takılı bırakabilirsiniz
Ben parolaları şifreli dosya bölümü içindeki bir sqlite DB'de tutuyorum
YubiKey'de PIN veya dokunuş zorunluluğu ayarlayarak GPG anahtarının kullanımına onay gerektirebilirsiniz
passin en büyük sorunu, iOS'ta YubiKey ile uyumunun zayıf olmasıBunu gerçekten çok seviyorum ve her gün kullanıyorum
CLI sevenler için
passilgi çekici olabilir ama sıradan kullanıcılar için masaüstünde KeePassXC, Android'de KeePassDX ve WireGuard ile uzaktan erişim yaklaşımı daha uygun görünüyorKeePass'ta pek konuşulmayan faydalı özelliklerden biri, birden fazla vault'u aynı anda açıp arayabilmek
normieölçütünün göreceli olduğunu düşünüyorumkeepassxc.cliyi de unutmayınpassdenemiştim amagnupgyönetiminin karmaşıklığı ve değerleri home dizininde tutması gibi nedenlerle sonunda vazgeçtimpassin yaygınlığı iyi ama copy-one-file iş akışıma uymadığı için tekrar KeePassXC'ye döndümKeePass ile çözemediğim kullanım örneklerinden biri, birbirinden ayrılmış iki bilgisayarda ayrı ayrı parola üretip sonra bunları birleştirmek
KeePassXC'yi de kullanmak isterdim ama eşimle kimlik bilgisi paylaşmak kolay değil
passtek başına kullanırken eğlenceli bir çözüm, ancak birden fazla kişiyle paylaşırken dikkat etmek gerekiyorŞirket parolalarını yönetmek için kullanırsanız, kimin hangi sırrı ne zaman görüntülediğini bilmenin yolu yok; bu yüzden çalışan değişimlerinde tüm parolaları değiştirmek gerekir
Birinin yeni erişim hakkına ihtiyacı olduğunda dosyaları seçmeli olarak yeniden şifrelemek için standart bir yöntem yok, bunu kendiniz kurmanız gerekir
Depolamak için git kullanılsa da commit mesajları otomatik üretildiğinden pratikte Dropbox'tan çok da fazla avantaj sağlamıyor
Yanlış bir şeyi push edip geri almak isteseniz git geçmişini yeniden yazmanız gerekir ve bu da diğer kullanıcıların cihazlarında bozulmaya yol açabilir
Basit ve elle müdahale edilebilir olması avantaj gibi görünse de, bu sadeliğin kendisi bir tuzak
hash(site_name+main_password)gibi yaklaşımlar estetik görünse de pratikte çeşitli sorunlar doğuyorİş ortamında da uçtan uca şifreleme, kullanıcılar arası fingerprint doğrulama gibi özellikler gerekiyor; Bitwarden bu iş için en yakın seçenek gibi duruyor ama daha iyi örnek varsa öneri almak isterim
passte de dizin başına farklı anahtarlar (veya birden çok anahtar) kullanarak grup ve kişi bazlı erişim ayrıntılandırılabiliradminsklasörü admin anahtarını kullanır,techsklasörüne hem admin hem tech anahtarları erişebilirŞirketimde 1Password kullanıyoruz
.envdosyalarıylaop runkomutu, CI entegrasyonu gibi çeşitli özellikler sunuyorSadece değerlendirme yaptım, gerçek kullanım tecrübem yok ama ekip için parola paylaşım aracı olarak Passbolt da iyi bir seçenekti https://www.passbolt.com
Şirketimizde
paadlı, çok bilinmeyen bir aracı iyi şekilde kullanıyoruz https://git.j3s.sh/paagetabanlı ve birden çok anahtarla şifreleme yapabiliyorFOKS tabanlı iyi bir çözüm üretmek de mümkün görünüyor https://foks.pub
Yakın zamanda
passten Bitwarden ve Vaultwarden'a geçtimFlatpak tabanlı bir ortamda GUI uygulamaları kurarken Firefox tarayıcı uzantısıyla
passentegrasyonu çalışmadığı için rahatsız ediciydiGeçici çözüm olarak çalıştır penceresinden
pass -c <path>ile parolayı kopyalayıp tarayıcıya yapıştırıyordum ama ideal bir deneyim değildiAndroid resmi uygulamasının arşivlenmiş olması da etkili oldu; bir fork var ama ne kadar sürdürüleceği belli değil https://github.com/android-password-store/Android-Password-Store/discussions/3260
Şu anda Vaultwarden'ı self-host edip çeşitli Bitwarden istemcileriyle kullanıyorum
passten KeePassXC'ye geçiş deneyimimi paylaşayımpasste saklıyordumpassmenudiye bir araç da varpassin Android uygulamasının durdurulduğunu bilmiyordumpass -cile elle kopyalamayı tercih ediyorumVaultwarden'ın çevrimdışı kullanım deneyimini merak ediyorum
pass-otpeklentisi de var https://github.com/tadfisher/pass-otppassiçin Android uygulaması da oldukça iyi https://play.google.com/store/apps/details?id=dev.msfjarvis.apsTermux'ta da çalışıyor
Android Password Store uygulaması geçen yıl arşivlendi, ardından agrahn bir fork oluşturup çok geliştirdi
Benim kişisel alternatifim,
~/biniçine küçük bir script koyup OTP üretmek içinpassveoathtoolkullanmakpassile çekip TOTP kodunuoathtoolile üretiyorumpassiçin bazı eski Android uygulamaları artık cihazıma kurulamaz olduGPG yerine
agekullananlar içinpassagearacı faydalı olabilir https://github.com/FiloSottile/passageagekullanan çeşitlipassbenzeri yöneticiler varYaklaşık 10 yıldır farklı bir yaklaşım kullanıyorum
Tüm parola meta verilerini düz metin JSON içinde tutuyorum; her kayıtta kullanıcı, sürüm ve parola kuralları (uzunluk, karakter türleri vb.) yer alıyor
Gerçek parolaları saklamak yerine, passphrase + meta veri karmasıyla parolayı deterministik olarak üretiyorum
Sadece sürüm numarasını değiştirerek tamamen yeni bir parola üretebiliyor ve yalnızca
versionalanına bakarak geçmişi kolayca görebiliyorumDezavantajı, paylaşımın neredeyse imkânsız olması (başkasının benim kullandığım passphrase'i bilmesi gerekiyor)
Paylaşım gerektiğinde parola üreticisiyle bir şifreli metin üretip bunu ayrı meta veri olarak saklama modunu düşündüm ama pratikte buna çok ihtiyaç duymadım
Parola üretici yaklaşımının iyi yanı, vault'u kaybetme kaygısını azaltması
Bu yaklaşımı yakın zamanda SECUSO password generator üzerinden öğrendim https://secuso.aifb.kit.edu/english/105.php
Passphrase'i paylaşmak saldırı yüzeyini büyütüyor; bir kez sızarsa birden fazla kimlik bilgisi aynı anda riske giriyor
passi 8 yıldan uzun süredir kullanıyorum, 1300 parola saklıyorumCihazlar arasında git ile senkronize edip çok memnun şekilde kullanıyorum
"1300 parola nasıl bu kadar çok oluyor?"