Czy bezpiecznie jest przechowywać (zaszyfrowane) hasła w GitHub?

21

Używam przepustkę do obsługi wszystkich swoich haseł. Są one szyfrowane przy użyciu GPG z kluczem 4096 bitów, przy użyciu algorytmu SHA256. Używam innego hasła do każdego logowania w moim magazynie haseł.

Jedną z fajnych cech pass jest to, że wszystko trzyma się w folderze z ładną hierarchią, co jest idealne do konfiguracji repozytorium git (pass zapewnia nawet taką możliwość). Chciałbym, aby moje hasło było aktualne na wszystkich moich komputerach.

Czy można bezpiecznie przekazać repozytorium git pass do prywatnego repozytorium GitHub? Jeśli nie, jaki jest słaby link?

Nicolas Mattia
źródło
Nie poleciłbym tego robić. Jednym z powodów byłoby pozostawienie zaszyfrowanego hasła atakowi typu brute-force w trybie offline.
heavyd
Biorąc pod uwagę, że jest to prywatne repo, zakładam (podobnie jak klienci GitHub), że nikt poza GitHubem nie będzie miał dostępu do repozytorium. Chyba że, oczywiście, któregoś dnia popełniam złe repozytorium.
Nicolas Mattia,
1
Ponadto nikt nie miałby dostępu do klucza GPG, więc ktoś musiałby przerwać szyfrowanie 4096 bitów, co jest mało prawdopodobne nawet w przypadku ataku siłowego offline
Nicolas Mattia
1
O ile nie spieprzyli, a hasło klucza prywatnego to Hasło1;) tylko dlatego, że przywołałem je już dziś, nadal myślę o superfishie, używając nazwy firmy jako hasła (komodia). To po prostu ułatwia złamanie, ale nadal. Głupie błędy ułatwiają odszyfrowanie haseł.
dakre18
@ poziom dakre18 zmienia się z „mało prawdopodobnego” na „zabawne odszyfrowanie”
m3nda

Odpowiedzi:

13

Krótka odpowiedź

Można włożyć github pass repo.

Pełna odpowiedź

Twoje repozytorium jest szyfrowane GPG przy użyciu dowolnego klucza prywatnego, który wybrałeś, więc jest tak samo kuloodporny jak wybrany klucz. Ponadto klucz prywatny nie jest przechowywany w repozytorium transakcji. Oznacza to, że prywatna vs. publiczna lokalizacja zaszyfrowanych plików haseł nie stanowi słabego łącza w zabezpieczeniach menedżera haseł. Raczej jest to klucz prywatny, którym je zaszyfrowałeś, o co musisz się martwić.

Upewnij się, że jest to dobry klucz (jak ten, o którym wspomniałeś) i nie udostępniaj go nikomu, ponieważ nie będą musieli łamać tego wielkiego klucza, aby go użyć. Będą musieli wykasować twoje hasło i, spójrzmy prawdzie w oczy, naprawdę trudno jest upewnić się, że twoje hasło jest wystarczająco dobre, aby zatrzymać wszystkich .

Więc nie pozwól nikomu zobaczyć twojego klucza. Jeśli przeniesiesz swój klucz prywatny na każdy komputer, który korzysta z pass, możesz po prostu pobrać repozytorium pass z github i użyć klucza prywatnego przechowywanego na tych komputerach indywidualnie. Teraz wszystkie pozostaną zsynchronizowane i bezpieczne.

Dwie kolejne rzeczy do rozważenia

Chodzi o to, aby hasła były szyfrowane. Jeśli nie masz nic przeciwko, że są na github.com, to na czym naprawdę polegasz, to ich prywatna lokalizacja, a nie ich zaszyfrowany stan. Jeśli tak, to po co w ogóle je szyfrować? Możesz po prostu użyć tych samych płaskich plików, które przechodzą, i nie zawracać sobie głowy ich szyfrowaniem. To byłoby całkiem wygodne!

Pamiętaj również, że ułatwienie korzystania z menedżera haseł oznacza, że ​​rzadziej będziesz chciał / trzeba go obalić. Za każdym razem, gdy musisz wykonać zadanie przejścia (np. Zresetować hasło do konta, ponieważ ładne bezpieczne hasło zostało wygenerowane na innym komputerze i jeszcze nie synchronizowałeś ręcznie, ale musisz się teraz zalogować), jesteś zmniejszy bezpieczeństwo, które zapewnia.

Tyler Abair
źródło
Myślę, że robisz trzy naprawdę dobre punkty: 1) klucz szyfrujący nie jest obecny na serwerze 2) niech ktoś zobaczy moje hasło, jest powodem, dla którego jest ono szyfrowane w pierwszej kolejności 3) moje niezdarne palce są w większości usuwane z pętla. Ale jak powiedział @Jens, muszę zaufać oprogramowaniu.
Nicolas Mattia,
1
Pass jest na tyle prosty, że tak naprawdę nie ufasz Passowi, ufasz PGP. Biorąc to pod uwagę, tak, nadal musisz ufać PGP. Zastanawiam się nad tym, po co w ogóle używać PGP, jeśli nie ufasz, że szyfruje różne rzeczy?
Tyler Abair,
7

Będzie to bezpieczne, ale narazi Cię na dodatkowe ryzyko w porównaniu z nie umieszczeniem magazynu haseł w miejscu publicznym.

  • Przypadkowe przesłanie niezaszyfrowanych haseł (nie zrobisz tego celowo, ale na pewno nie stanie się to przypadkowo lub z powodu błędu oprogramowania?)
  • Nieznane słabości RSA lub szyfrowania symetrycznego w użyciu
  • Ujawniono wzorce użycia (statystyki są potężne)
  • Przypadkowe zwolnienie twojego tokena dostępu skutkuje danymi publicznymi; jeśli dodatkowo zachowałeś tę prywatność, jesteś znacznie bezpieczniejszy
  • Najgorszym przypadkiem jest ujawnienie całej historii przechowywania haseł , w porównaniu do bieżącej

Innymi słowy: jeśli nie popełnisz błędów, zaufaj oprogramowaniu, a matematyka kryjąca się za algorytmem szyfrowania pozostaje bezpieczna, publiczne przechowywanie zaszyfrowanego magazynu haseł jest w porządku. Jeśli masz jakiekolwiek wątpliwości (i osobiście, moje zaufanie byłoby dokładnie w tej kolejności, z utratą zaufania do siebie jako użytkownika o wysokiej poufności w matematyce), zachowaj prywatność sklepu.

Czy kiedykolwiek przez przypadek wyskoczyło prywatne hasło w oknie czatu? Znam grupę ludzi, którzy to zrobili, w tym mnie.

Jens Erat
źródło
3

To dobre pytanie, ponieważ w przeszłości problemem było umieszczanie prywatnego hasła w publicznym repozytorium.

Pomyśl o tym w ten sposób, dobrą praktyką jest nie przechowywać tego pliku (wraz z innymi poufnymi plikami) w publicznym repozytorium, nawet jeśli jest ono prywatne. Dobrze jest gdzieś utworzyć kopię zapasową, ale jeśli powiedzmy, że Twoje hasło zostało w jakiś sposób pobrane (na przykład witryna innej firmy), mogą uzyskać dostęp do Twojego github i nadal odzyskiwać hasło. Najgorszy przypadek, ale nadal jest możliwy. Zwykle sugerowałbym, aby jakiś plik był przechowywany na zewnętrznym dysku twardym i ewentualnie przechowywać dysk twardy gdzieś na wypadek pożaru.

Jeśli naprawdę chcesz używać repozytorium lub chmury do przechowywania go, po prostu zrób wszystko, co możliwe, aby go zabezpieczyć.

Ogólnie nie jest to najlepszy pomysł. To nie jest najgorsze, ale najlepiej pomyśleć o „co by się stało, gdyby?” scenariusze. Może ci się to nigdy nie zdarzyć, ale jeśli tak, czy warto?

Edycja: Myślałem o programach w niektórych moich postach, więc przygotowałem je, aby lepiej odpowiedzieć na twoje pytanie.

dakre18
źródło
0

Jedną z fajnych cech przejścia jest to, że wszystko mieści się w folderze z ładną hierarchią, co jest idealne do konfiguracji repozytorium git

Myślę, że to nie jest bezpieczne. Dla wszystkich Twoich kont (struktura katalogów) nie jest szyfrowana. Tylko hasło było chronione przez gpg.

(podanie zapewnia nawet tę umiejętność)

Jeśli to zrobisz, używając umiejętności podania. Może to jest bardziej bezpieczne. Ale musisz odbudować swój sklep za pomocą „pass git init”.

utopic eexpress
źródło