GPG özel anahtarını nasıl güvenli bir şekilde yedeklersiniz?


25

Pass adında çok ilginç bir CLI şifre yöneticisi buldum . Bunu kullanmak için bir GPG2 anahtar çifti oluşturursunuz ve aracı gpg2 şifreli dosyalarda şifrelerinizi saklamanıza yardımcı olacak aracı kullanırsınız.

Dosyaları şifrelemek için (yeni bir şifre ekleyin), ortak anahtarı kullanır.

Dosyaların şifresini çözmek (saklanan bir parolayı almak) için parola gerektiren özel anahtarı kullanır.

Harika çalışıyor.

Araç tüm şifrelerimi sakladığına göre, bilgisayarım çökerse, tüm çevrimiçi hesaplarımdan kilitlenmeyecek şekilde tüm bu verileri yedeklemek istiyorum.

Aracı git ile güzel bir şekilde bütünleşir, bu yüzden kolayca farklı bir bilgisayarda benim özel git repo .gpg dosyalarını itmek mümkün oldu. Anladığım kadarıyla, bu dosyalar şifresini çözmek için özel anahtar olmadan işe yaramaz.

Sorum şu: özel ve genel anahtarları güvenli bir şekilde nasıl yedekleyebilirim, böylece ihtiyaç ortaya çıkarsa başka bir makinedeki "veritabanını" geri yükleyebilirim? Hem genel hem de özel anahtarları git repo'mda saklayabilir ve daha sonra başka bir makineye alabilir miyim? Yoksa özel bir anahtarın yerel, yerel bir git deposunda saklanması güvenli olmayan bir uygulama mıdır? Git repo'ya erişmek için bir şifre gerekiyor. Özel anahtar şifrelenir ve açmak için bir parola gerektirir - bu, depolamayı güvenli hale getirir mi?

Yanıtlar:


10

Bir PGP özel anahtarının revizyon kontrol sisteminde depolanması, kendi başına önemli bir güvenlik sorunu oluşturmaz. Özel anahtarın yerel, özel (yayınlanmamış) bir git deposunda depolanması, özel anahtarı aynı bilgisayarda, ancak herhangi bir git havuzunun dışında saklamak yerine önemli bir güvenlik etkisine sahip olmamalıdır.

Bunu düşünebildiğim tek sorun, özel anahtarı sürüm kontrollü bir şekilde saklamaktan kaynaklanıyor, eski revizyonları bir şekilde yok edemezseniz, anahtar parola değişiklikleri , aksi takdirde olabileceğinden çok daha az koruma satın alıyor.

Kendi güvenlik sonuçlarıyla birlikte gelebilecek, özel bir anahtarı , başka birinin anahtar dosyasına erişebilecek şekilde saklamaktır . Böyle bir durumda, bir saldırgan ve anahtarınız arasında duran tek şey parolasının gücüdür.

Depolama güvenliğinin mükemmel olmadığını ve hatta insanların düzenli olarak bulut hizmetlerine (yani kelimenin tam anlamıyla "bir başkasının bilgisayarı" anlamına gelir) yedeklediği modern ortamda, genellikle gizli anahtarlarımızı parolalarla koruyoruz. Örneğin gpg-agent çalıştırıyor olsanız bile, aynı şeyi yaptığınıza inanıyorum.

Sonuç olarak, parolanız iyi olduğu sürece, şifreli anahtar dosyasının bir kopyasını başka birinin bilgisayarında saklamak bile nispeten güvenli olmalıdır.

Ancak, bu şu durumlarda oldukça büyüktür: çoğu insanın şifreleri veya parolaları, onları kırmaya yönelik bilgisayarlı girişimler kadar berbattır. GnuPG bunu vermek ne de olabildiğince çalışmaya denemek için oldukça uzun bir uzunluğa gider, ama sağlam veri koruması için, size ihtiyacınız iyi bir parola ve sen lüzum ayarlamak için önce git depo içine özel anahtar alındığında. Anahtar alındıktan sonra, bir saldırgan ilke olarak herhangi bir sürümüne saldırabilir ve belirli bir revizyonun daha düşük kalitede bir parolaya sahip olduğuna inanmak için bir nedeni varsa, muhtemelen bunun için gidecektir. Bu nedenle, parolayı dikkatli bir şekilde seçtiğinizden emin olun. Şifreleri nasıl ele alacağınıza dair küçük bir astar yazdım,hatırlamanız gereken , yararlı bulabileceğiniz şifrelerin veya parolaların nasıl seçileceğine ilişkin öneriler .


6

Son zamanlarda benzer bir kurulum düşünüyoruz. Sorunuzu ele almadan önce, beni bu konuda neyin rahatsız ettiğini göstereyim. Bu, burada çok açıklanmaktadır . Kısacası Pass GPG'yi çağırdığında , kaputun altında gereksiz asimetrik (RSA / EC) kripto gerçekleştirir. Gereksiz - çünkü burada güvenilmeyen bir parti yok.

Bu sinir bozucu çünkü asimetrik kripto, simetrik kriptodan daha az geleceğe dayanıklıdır. Örneğin, günümüzün asimetrik kriptosu, henüz mevcut olmayan yeterince büyük kuantum bilgisayarlar tarafından kırılıyor. Daha genel olarak, asimetrik kripto simetrik kriptodan çok daha fazla çözmeyi bilmediğimiz "matematik problemlerine" dayanır.

: Bu zayıflığı azaltmak için, yapabileceği en az mesela (potansiyel) kuantum saldırı bu ortak anahtar gerektiğinden, özel yanı Pass kullanılan GPG genel anahtarı tutmaktır burada bkz .

Asıl sorunuza göre, git repo'yu (parolalarla) herkese açık mı yoksa özel olarak mı saklamak istediğiniz belli değil. Özel tutmak istiyorsanız, hemen hemen istediğiniz şeyi yapabilir ve GPG özel anahtarının güvenliğini, depoyu yedeklediğiniz ortamın güvenliğine azaltabilirsiniz. Ancak, bu bir tavuk ve yumurta sorunu haline gelebilir: repo özel ise, bir çarpışma durumunda nasıl geri alırsınız? Başka bir deyişle, bir "kötü çökmesi" durumunda yeniden alma şeyler olmalı ilk . Bu yüzden git repo'yu gizli tutmak isteyebilirsiniz, ancak GPG anahtarını, başka herhangi bir şeyden bağımsız olarak ilk önce alabileceğiniz şekilde yedekleyin.

Çevrimdışı yedekleme çözümleri çoktur, avukatlar, bodrumlar, vb . Buraya bakın . Ancak bodrumlar herkes için değildir, bu yüzden çevrimiçi bir çözüm önereyim:

  • Yıllarca yazılması gerekmeyen süper güçlü bir parola oluşturun. Öneri: Kişisel önemi olan bir cümlenin veya bakmanız gerekiyorsa kopyaları bitmeyecek bir kitaptan uzun, unutulmaz bir yanlış yazım.

  • Dışa aktarılan GPG gizli anahtarınızla ve belki SSH kimlik bilgilerinizle bir tarball oluşturun.

  • Parolanızı simetrik olarak şifrele: gpg --symmetric --armor.

  • Ücretsiz bir git hosting hesabı oluşturun.

  • Kimlik bilgileri olmadan klonlanabilen genel bir havuz oluşturun .

  • Şifrelenmiş ve zırhlı zift topunu oraya koy.

Bir "kötü kilitlenme" sonrasında geri almak için:

  • Canlı bir USB çubuğu önyükleyin.

  • Kamusal repoyu klonlayın.

  • gpg --decrypt.

Simetrik parola, zombilere karşı ana korumanız olacaktır. İnsanlar bazen ya da anonim okuyucunun parolaları seçme konusunda şüphe yararı vermezler. Ancak iyi bir parola ile simetrik kripto sağlam olmalıdır.

GPG özel anahtarınızı dışa aktardığınızda, kendi parolasıyla şifrelenir. GPG'nin son sürümleri şifrelenmemiş bir dışa aktarmaya izin vermez. Burada "normal" GPG parolanızı kullanabilirsiniz. Bir kilitlenme durumunda, GPG özel anahtarınıza erişmek için her iki parolaya ihtiyacınız olacağını unutmayın.


4

Kullandığım diğer bir seçenek: Anahtarınızı kağıda yazdırın .

Detaylar bağlantılı cevapta. Büyük avantajları şunlardır: İstediğiniz her yerde kolayca saklayabilir ve sadece bakarak iyi durumda olup olmadığını kontrol edebilirsiniz. Ama en büyük avantajı: Kimse fiziksel olarak yedeklemenizi sakladığınız ve aldığınız yerde hackleyemez.


Gördüğüm kadarıyla, bu durumda kağıdın çıkarılabilir medyaya göre bir avantajı yoktur ve dezavantajı , anahtarı kurtarmanız gerekiyorsa , anahtar için tüm anlamsızlıkları yazmanız gerekir.
HARİTA

Avantajı, çok daha dayanıklı ve bilgisayar olmadan kendi gözlerinizle hala okunabilir olup olmadığını kontrol edebilirsiniz. Şimdi kurtarılamayan veri hataları olan kullandığım her disket, CD veya DVD için bir dolar olsaydı, o parayla holliday devam edebilir. Hiçbir şey yazmak zorunda değilsiniz! PaperBack hata düzeltmesi eklenmiş olarak 2D kodları olarak yazdırır. Sadece tarar veya fotoğrafını çekersiniz ve program daha önce yazdırmak için verdiğiniz her şeye dönüştürür.
Josef, Reinstate Monica'ya

Elbette bunu yapacak teknolojiye sahip olduğunuzu varsayarsak.
HARİTA

Peki, 20 yıl içinde bu Açık Kaynak yazılımın bir kopyasıyla Şaraplı bir Windows VM veya Linux alabilme olasılığı bence donanımı disket / CD okuma olasılığından çok daha yüksek /DVD. Sadece bunu 1990'da yaptığımı varsayalım. Şimdi bile tarayıcımda yazılımı arkadan çalıştırabilirim . Ancak, modern PC'nizle 5 1/4 inç'lik bir disketi okumanızı sağlayan donanım elde etmeye çalışırken iyi şanslar.
Josef, Reinstate Monica'ya

2

Bunun başka bir cevabı "çevrimdışı", yani güvenli ve herhangi bir bilgisayara bağlı olmayan bir yerde saklamak. Bankadaki güvenlik kasasında tüm anahtarlarımın tam ve şifrelenmemiş bir kopyasını bir diskette saklıyorum (bunu uzun zamandır yapıyorum, şimdi bir alışkanlık). Onları bankadaki medyada şifrelenmeden tutmamın nedeni, anahtarı "kaybetmek" için olası bir senaryonun geçiş ifadesini unutmasıdır (geçiş ifadelerim çok garip noktalama ve yazım yapma eğilimindedir ve bunlardan sadece birini unutmak kullanılamaz). Asla bu kopyadan geri almak için başvurmak zorunda kaldım, ama en kötüsünü planlıyorum.

Buna ek olarak, medyada önemli bir iptal ve mirasçılarım bununla ne yapılacağına dair bir not var, artık müsait değilim.


Ana imza özel anahtarını yedeklerseniz, bu bir iptal sertifikası oluşturmak için kullanılamaz mı? Hangi senaryoda iptal sertifikasını yedeklemek yararlıdır?
Matei David

Ah evet, ama isteği yerine getiren kişinin bilgisayar konusunda bilgili olduğundan emin olamayacağımı anlamalısınız (bunu kullanacak kişinin ben olmadığımı, ama “mirasçılarım” olduğunu unutmayın). Bu nedenle, iptalin önceden oluşturulmuş olması ve "yalnızca bu dosya eklenmiş bir e-posta gönderme" talimatlarının yanlış yönetilmesi daha az olasıdır.
HARİTA

@MateiDavid Anahtar çiftini ilk oluşturduğunuzda bir iptal sertifikası oluşturmak ve bu iptal sertifikasını saklamak, anahtar kullanılamaz hale gelirse anahtarı iptal etmenizi sağlar. Bunun olabileceği geçerli senaryolar vardır. Elbette, iptal sertifikasını çok iyi korumalısınız, çünkü ellerini tutan herkes bunu yayınlayabilir ve böylece anahtar çiftinizi iptal edebilir. Yine de, bir iptal sertifikasının OP'nin durumu için nasıl geçerli olduğundan emin değilim.
CVn

Evet, bir fare deliğinden aşağı indik. Özür dilerim, iptal sertifikasından bahsettiğim sadece attığım adımların açıklamasında tamlıktı ve orijinal soru ile hiçbir ilgisi yoktu.
HARİTA
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.