Jak bezpiecznie wykonać kopię zapasową klucza prywatnego GPG?

25

Znalazłem bardzo interesujący menedżer haseł CLI o nazwie pass . Aby go użyć, wygeneruj parę kluczy GPG2 i użyj narzędzia, które pomoże Ci przechowywać hasła w zaszyfrowanych plikach gpg2.

Aby zaszyfrować pliki (dodać nowe hasło), używa klucza publicznego.

Aby odszyfrować pliki (odzyskać zapisane hasło), używa klucza prywatnego, który wymaga hasła.

To działa świetnie.

Teraz, gdy narzędzie przechowuje wszystkie moje hasła, chcę wykonać kopię zapasową wszystkich tych danych, aby w razie awarii komputera nie zostałem zablokowany na wszystkich kontach online.

Narzędzie ładnie integruje się z git, dzięki czemu mogłem z łatwością przesyłać pliki .gpg do mojego prywatnego repozytorium git na innym komputerze. Z tego, co rozumiem, pliki te są bezużyteczne bez klucza prywatnego do ich odszyfrowania.

Moje pytanie brzmi: w jaki sposób mogę wykonać kopię zapasową klucza prywatnego i publicznego w bezpieczny sposób, aby w razie potrzeby móc przywrócić „bazę danych” na innym komputerze? Czy mogę po prostu przechowywać zarówno klucze publiczne, jak i prywatne w moim repozytorium git i importować je później na innym komputerze? A może przechowywanie klucza prywatnego w prywatnym lokalnym repozytorium git jest uważane za niebezpieczne? Repozytorium git wymaga hasła, aby uzyskać dostęp. Klucz prywatny jest zaszyfrowany i wymaga hasła do otwarcia - czy to zapewnia bezpieczne przechowywanie?

Tal
źródło

Odpowiedzi:

10

Przechowywanie klucza prywatnego PGP w systemie kontroli wersji samo w sobie nie stwarza istotnych problemów bezpieczeństwa. Przechowywanie klucza prywatnego w lokalnym, prywatnym (niepublikowanym) repozytorium git nie powinno mieć znaczącego wpływu na bezpieczeństwo w porównaniu do przechowywania klucza prywatnego na tym samym komputerze, ale poza jakimkolwiek repozytorium git.

Jedyne, o czym mogę myśleć, to przechowywanie klucza prywatnego w sposób kontrolowany wersją, to to, że o ile nie uda ci się w jakiś sposób zniszczyć starszych wersji, zmiany hasła kluczowego zapewnią ci znacznie mniejszą ochronę niż w przeciwnym razie.

Tym , co może wiązać się z własnym zestawem implikacji dla bezpieczeństwa, jest przechowywanie klucza prywatnego w taki sposób, aby ktoś inny mógł uzyskać dostęp do pliku klucza. W takiej sytuacji wszystko, co stoi między atakującym a twoim kluczem, to siła jego hasła.

Uznając, że bezpieczeństwo pamięci masowej nie jest doskonałe, a tym bardziej w nowoczesnym środowisku, w którym ludzie regularnie wykonują kopie zapasowe w usługach w chmurze (co dosłownie przetłumaczone oznacza „komputer innej osoby”), zwykle chronimy nasze tajne klucze hasłami. Ufam, że nawet jeśli działasz na przykład gpg-agent, robisz to samo.

Najważniejsze jest to, że dopóki twoje hasło jest dobre, nawet przechowywanie kopii zaszyfrowanego pliku klucza na cudzym komputerze powinno być względnie bezpieczne.

Jest to jednak dość duże, jeśli: hasła większości ludzi lub hasła są raczej kiepskie, jeśli chodzi o komputerowe próby ich złamania. GnuPG idzie do jakiegoś długości, aby spróbować pracy, jak to możliwe, co dajesz, ale dla stałej ochrony danych, to trzeba dobre hasło, a ty potrzebujesz , aby ustawić go przed importem klucza prywatnego do repozytorium git. Po zaimportowaniu klucza osoba atakująca może w zasadzie zaatakować dowolną jego wersję, a jeśli mają powody, by sądzić, że dana wersja ma hasło niższej jakości, prawdopodobnie to zrobi. Z tego powodu pamiętaj, aby starannie wybrać hasło. Napisałem mały elementarz na temat obsługi haseł, w tymsugestie dotyczące wyboru haseł lub haseł, które musisz zapamiętać , co może okazać się przydatne.

CVn
źródło
6

Ostatnio rozważałem podobną konfigurację. Zanim odpowiem na twoje pytanie, pozwól mi wskazać, co mnie w tym martwi. Wyjaśniono to tutaj szczegółowo . Krótko mówiąc, gdy Pass wywołuje GPG, wykonuje niepotrzebne szyfrowanie asymetryczne (RSA / EC) pod maską. Niepotrzebne - ponieważ nie ma tutaj niezaufanej partii.

Jest to denerwujące, ponieważ krypto asymetryczne jest mniej przyszłościowe niż krypto symetryczne. Na przykład dzisiejsze kryptowaluty asymetryczne są łamane przez wystarczająco duże komputery kwantowe, które jeszcze nie istnieją. Mówiąc bardziej ogólnie, asymetryczne krypto opiera się na „problemach matematycznych”, których nie wiemy, jak rozwiązać, o wiele bardziej niż krypto symetryczne.

Aby zminimalizować tę słabość, możesz przynajmniej zachować klucz publiczny GPG używany również z Pass jako prywatny, ponieważ na przykład (potencjalny) atak kwantowy potrzebuje tego klucza publicznego: patrz tutaj .

Jeśli chodzi o twoje aktualne pytanie, nie jest jasne, czy zamierzasz przechowywać repozytorium git (z hasłami) publicznie czy prywatnie. Jeśli chcesz zachować prywatność, możesz robić, co chcesz, i zmniejszyć bezpieczeństwo klucza prywatnego GPG do tego na nośniku, na którym tworzona jest kopia zapasowa repozytorium. Może to jednak stać się problemem z kurczakiem i jajami: jeśli repozytorium jest prywatne, jak je odzyskać w razie awarii? Innymi słowy, w przypadku „złego katastrofie”, musi istnieć coś odzyskać pierwszy . Więc możesz chcieć zachować prywatność git repo, ale wykonaj kopię zapasową klucza GPG w taki sposób, abyś mógł odzyskać pierwszy, niezależnie od czegokolwiek innego.

Rozwiązania do tworzenia kopii zapasowych offline są liczne, prawnicy, piwnice itp. Patrz tutaj . Ale piwnice nie są dla wszystkich, dlatego proponuję rozwiązanie online:

  • Utwórz super silne hasło, które nie powinno być pisane przez lata. Sugestia: długie, niezapomniane błędy w pisowni frazy, która ma jakieś osobiste znaczenie, lub w książce, której nie zabraknie kopii, jeśli zajdzie potrzeba jej wyszukania.

  • Utwórz plik tar z wyeksportowanym tajnym kluczem GPG i być może poświadczeniami SSH.

  • Szyfruje je symetrycznie z hasłem: gpg --symmetric --armor.

  • Utwórz bezpłatne konto hostingowe git.

  • Utwórz publiczne repozytorium, które można klonować bez poświadczeń.

  • Umieść tam zaszyfrowaną i opancerzoną kulę smoły.

Aby odzyskać go po „poważnej awarii”:

  • Uruchom pamięć USB na żywo.

  • Klonuj publiczne repo.

  • gpg --decrypt.

Symetryczne hasło będzie Twoim głównym zabezpieczeniem przed zombie. Ludzie czasami nie dają tobie ani anonimowemu czytelnikowi korzyści z wątpliwości co do wyboru haseł. Ale przy dobrym haśle hasło symetryczne powinno być solidne.

Po wyeksportowaniu klucza prywatnego GPG zostanie on zaszyfrowany własnym hasłem. Najnowsze wersje GPG nie zezwalają na nieszyfrowany eksport. Możesz użyć tutaj „zwykłego” hasła GPG. Pamiętaj tylko, że w razie awarii będziesz potrzebować obu haseł, aby dostać się do klucza prywatnego GPG.

Matei David
źródło
4

Inną opcją, której używam, jest: Wydrukuj swój klucz na papierze .

Szczegóły znajdują się w powiązanej odpowiedzi. Dużymi zaletami są: Możesz łatwo przechowywać go gdziekolwiek chcesz i możesz sprawdzić, czy nadal jest w dobrej formie, patrząc na niego. Ale największą zaletą jest to, że nikt nie może go zhakować bez fizycznego przebywania w miejscu, w którym przechowujesz kopię zapasową i bierzesz ją.

Josef mówi Przywróć Monikę
źródło
O ile widzę, papier nie ma w tym przypadku przewagi nad nośnikami wymiennymi, a wadą jest to, że jeśli musisz odzyskać klucz, musisz wpisać cały bełkot dla klucza.
MAP
Zaletą jest to, że jest o wiele trwalszy i możesz sprawdzić, czy nadal można go odczytać na własne oczy bez komputera. Gdybym miał dolara za każdą używaną dyskietkę, dysk CD lub DVD, która ma teraz niemożliwe do odzyskania błędy danych, mógłbym spędzić wakacje z tymi pieniędzmi. Nie musisz nic pisać! PaperBack drukuje go jako kody 2D z dodaną korekcją błędów. Wystarczy go zeskanować lub sfotografować, a program zamieni go z powrotem w wszystko, co wcześniej wydrukowałeś.
Josef mówi Przywróć Monikę
Zakładając oczywiście, że nadal masz do tego technologię.
MAP
Cóż, prawdopodobieństwo, że z łatwością zdobędę maszynę wirtualną z systemem Windows lub Linux z Wine z kopią tego oprogramowania Open-Source w ciągu 20 lat, jest moim zdaniem znacznie wyższe niż prawdopodobieństwo, że uda mi się odczytać dyskietkę / dysk CD /PŁYTA DVD. Załóżmy, że zrobiłem to w 1990 roku. Teraz mogę nawet uruchamiać oprogramowanie w mojej przeglądarce . Ale powodzenia w zdobywaniu sprzętu, który pozwala odczytać dyskietkę 5 1/4 cala na nowoczesnym komputerze.
Josef mówi Przywróć Monikę
2

Inną odpowiedzią na to pytanie jest „offline”, tzn. Przechowywanie go w bezpiecznym miejscu i niepołączonym z żadnym komputerem. Trzymam pełną, niezaszyfrowaną kopię wszystkich moich kluczy na dyskietce (robiłem to w ten sposób od dłuższego czasu, teraz to nawyk) w sejfie w banku. Powodem, dla którego trzymam je niezaszyfrowane w mediach w banku, jest to, że jednym z potencjalnych scenariuszy „zgubienia” klucza jest zapomnienie hasła (moje hasła często zawierają dziwne interpunkcje i pisownię, a zapomnienie tylko jednego z nich sprawia, że ​​jest to bezużyteczne). Nigdy nie musiałem uciekać się do odzyskania go z tej kopii, ale planuję na najgorsze.

Dodatkowo w mediach istnieje kluczowa rezygnacja i notatka instruująca moich spadkobierców, co z tym zrobić, w przypadku gdy nie będę już dostępny.

MAPA
źródło
Jeśli wykonasz kopię zapasową klucza prywatnego podpisywania głównego, czy nie można go użyć do wygenerowania certyfikatu odwołania? W jakim scenariuszu przydatne jest utworzenie kopii zapasowej certyfikatu odwołania?
Matei David
Ach tak, ale musicie zrozumieć, że nie mogę być pewien, jak osoba znająca się na komputerach będzie zorientowana w działaniu (pamiętajcie, że to nie ja to wykorzystam, ale „moi spadkobiercy”). Tak więc wygenerowanie odwołania i instrukcje „po prostu wyślij wiadomość e-mail z załączonym plikiem” są mniej podatne na niewłaściwe zarządzanie.
MAP
@MateiDavid Generowanie certyfikatu odwołania podczas początkowego tworzenia pary kluczy i przechowywanie tego certyfikatu odwołania pozwala na odwołanie klucza, jeśli klucz stanie się niedostępny. Istnieją prawidłowe scenariusze, w których może się to zdarzyć. Oczywiście musisz bardzo dobrze strzec certyfikatu odwołania, ponieważ każdy, kto go otrzyma, może go opublikować, odwołując w ten sposób twoją parę kluczy. Nie jestem jednak do końca pewien, w jaki sposób certyfikat cofnięcia odnosi się nawet do sytuacji PO.
CVn
Tak, poszliśmy do dziury dla szczurów. Przepraszam, moja wzmianka o certyfikacie cofnięcia była tylko dla kompletności w opisie kroków, które podejmuję, i nie miała nic wspólnego z pierwotnym pytaniem.
MAP