W jaki sposób zespół administratorów systemów bezpiecznie udostępnia hasła?

83

Jakie są najlepsze praktyki udostępniania setek haseł kilku osobom? Te hasła chronią dane o znaczeniu krytycznym i nigdy nie będą widoczne poza małym zespołem.

Chris Henry
źródło
11
Setki BTW to bardzo niepokojąca liczba. Co się stanie, gdy jeden z członków zespołu zostanie zwolniony? Aktualizacja setek haseł będzie bolesna.
Zoredache,
2
Oddane w „setkach to bardzo niepokojąca liczba”. Myślę, że być może będziesz musiał najpierw wykonać kopię zapasową i przemyśleć, w jaki sposób zarządzasz całą kwestią bezpieczeństwa, zamiast próbować nakleić plaster na to, co obecnie masz.
Maximus Minimus
1
Nieco powiązane: serverfault.com/questions/119892 W szczególności ta odpowiedź: serverfault.com/questions/119892/company-password-management
Nathan Hartley

Odpowiedzi:

14

Prawdopodobnie napisałbym niestandardowe rozwiązanie internetowe hostowane w korporacyjnym intranecie. (poszukaj inspiracji na http://lastpass.com lub skorzystaj z niego. Udostępnianie haseł jest jedną z jego funkcji, choć może nie działać w przypadku twojego wolumenu).

EDYCJA : Jasne, najlepsze rozwiązanie, nie udostępniaj ich. Przechowywanie haseł w postaci czystego tekstu na dowolnym nośniku jest niebezpieczne, szczególnie gdy celem jest ich udostępnianie. Istnieje prawie nieskończona liczba rozwiązań, z których każde wiąże się z niebezpieczeństwem. Dlaczego nie umieścić ich na zaszyfrowanym obrazie dysku, wypalić ten obraz na jednej płycie CD, włożyć płytę CD do sejfu, który może otworzyć tylko jeden uzbrojony strażnik, i upoważnić osoby do przedstawienia zdjęcia ze zdjęciem, aby je odblokować?

Chodzi o to, że tak naprawdę nie znamy Twojego scenariusza. Dlaczego udostępniasz setki haseł o kluczowym znaczeniu? Czy są one przeznaczone dla twojego intranetu, sieci VPN, czy są to hasła klientów, które z jakiegoś powodu przechowujesz w postaci zwykłego tekstu? Czy wszystkie osoby, którym musisz się nią dzielić w tej samej instalacji? Czy fizyczne przeniesienie, takie jak zaszyfrowana płyta CD lub wydrukowany stolik przechowywane w sejfie, rzeczywiście działałoby? A może Twoi sysadmini są rozsiani po całym świecie, dzięki czemu jedynym sposobem jest elektroniczne udostępnianie ich ?

msanford
źródło
50
IMO Budowanie własnego systemu bezpieczeństwa / szyfrowania prawie nigdy nie jest właściwym podejściem do problemu.
Zoredache,
2
@Zoredache, to mnóstwo bzdur. Chociaż myślę, że internetowe rozwiązanie do hostowania haseł jest głupie - ale on powiedział, że msanford powiedział intranet. Wciąż ryzykowne. To samo dla wszystkich innych rozwiązań sieciowych.
d -_- b
2
@Zoredache, OP nie buduje niestandardowego systemu szyfrowania, wygląda na to, że wszystko, czego potrzebuje, to bezpieczna baza danych. @sims Nie widzę nic złego w dobrze zaprojektowanym rozwiązaniu internetowym. Podwyższona odpowiedź dokładnie to sugeruje (oparty na sieci! = Http; oparty na sieci = przechowywany online). Wprawdzie po ponownym przeczytaniu tego pytania zgadzam się, że podstawowy model udostępniania ton haseł wydaje się być niepotrzebny i że można znaleźć lepsze rozwiązanie. Ale OP nie dostarczył mi wystarczających informacji, aby dokonać takiego osądu…
msanford
2
> @Zoredache, to mnóstwo bzdur. <Um, Sims, prawie lecisz w obliczu większości ludzi szyfrujących od samego początku. Projektowanie szyfrowania jest trudne, dlatego warto go szyfrować. schneier.com/essay-037.html Czasami mniejsze zło - to, które znasz - jest lepszym wyborem, gdy skonfrontowane zostanie ze złem, którego nie znasz (tj. projekt, który nie jest testowany, nie jest recenzowany, może mieć błędy, mogą mieć dziury w zabezpieczeniach itp.)
Avery Payne
1
@ Bardzo - zaprojektowanie systemu kryptograficznego jest trudne i należy je pozostawić ekspertom, tak. Korzystanie ze sprawdzonych narzędzi, takich jak GPG we współdzielonym pliku tekstowym lub Keepass (który korzysta z implementacji AES i SHA-256 .NET), nie projektuje własnego systemu.
mfinni
38

Najlepszą praktyką jest nie udostępnianie haseł. Skorzystaj z narzędzi takich jak sudo, aby umożliwić użytkownikom dostęp do konta z własnego konta. Jeśli masz kilku użytkowników, każdy powinien mieć własne konto w razie potrzeby. LDAP (Unix / Linux) i Active Directory to dobre rozwiązanie do udzielania dostępu do wielu serwerów ze wspólnej bazy danych.

Gdy konieczne jest posiadanie pisemnej kopii hasła, należy je zapieczętować w kopercie podpisanej i opatrzonej datą w poprzek pieczęci. Zmień hasło, gdy jest używane. Po zmianie hasła zapieczętuj nową kopertę.

W przypadku haseł, które naprawdę muszą być udostępniane, użyj jednego z narzędzi do haseł, takich jak Keepass, które mogą mieć bazę danych w sieci. Narzędzia z klientami dla wielu platform są lepsze. Zastanów się, czy potrzebujesz więcej niż jednej bazy danych. Pamiętaj, że musisz naprawdę zaufać wszystkim, którzy mają dostęp do tych danych.

BillThor
źródło
+1 dla nieuprzywilejowanych kont użytkowników dla administratorów z możliwą eskalacją uprawnień, na serwerach * nix połączę to z używaniem tylko sshd certyfikacji dsa / rsa. Jeśli robisz rzeczy z narzędziami graficznymi pod Linuksem, możesz również użyć niestandardowej konfiguracji zestawu narzędzi.
Aaron Tate
12
To. Odwołanie dostępu dla użytkowników korzystających z wspólnych danych logowania to absolutny koszmar. Tam, gdzie to możliwe, deleguj dostęp za pośrednictwem unikalnego konta użytkownika. Zawsze zdarza się kilka sytuacji, w których wspólne hasło jest nieuniknione, ale „setki” haseł współdzielą krytyczną wadę projektową.
Chris Thorpe
4
Zgadzam się z tym, że zwykle nie udostępniam haseł, ale jest wiele sytuacji, w których jest to konieczne, takich jak urządzenia sieciowe z jednym logowaniem, witryny dostawców, w których wszyscy sysadmini używają tego samego loginu do zamawiania oraz użytkownicy SQL sa lub hasła lokalnego administratora, gdzie niezbędny. Dlatego uważam, że KeePass jest do tego najlepszy: działa na wielu platformach, zapewnia sporo bezpieczeństwa i łatwo organizuje setki haseł.
Paul Kroon,
2
Mamy taką odmianę, w której zapisane są hasła roota, ale zamknięte w sejfie, który tylko zespół systemowy ma do otwarcia. Nasze hasła root mają długość 16 znaków i są generowane w taki sposób, aby były prawie niemożliwe do zapamiętania. Tak, jest tam trochę niepewności, ale jeśli ktoś włamie się do sejfu, podejrzewam, że mamy większe problemy.
Frenchie
2
Oto prawdziwy przykład zastosowania dla naszego zespołu: udostępnianie haseł do aplikacji internetowych, w których nie obsługują one wielu loginów dla jednego konta. Jeśli więc więcej niż jedna osoba w zespole musi mieć dostęp do tego konta, musi istnieć sposób udostępniania haseł do tego konta.
Jordan Reiter
11

Poszliśmy z KeePass właśnie w tym celu. To świetny mały program, który przechowuje wszystkie hasła w zaszyfrowanym pliku bazy danych. Istnieją dodatkowe funkcje bezpieczeństwa, takie jak potrzeba pliku klucza wraz z hasłem głównym, aby uzyskać dostęp do haseł. Umożliwia to stosowanie wielu warstw zabezpieczeń (oddzielenie pliku klucza i bazy danych), jednocześnie zapewniając wszystkim wygodną pracę z wszystkimi różnymi hasłami. Na przykład możesz uruchomić aplikację i plik klucza z dysku USB, ale gdzieś przechowywać bazę danych w sieci. Wymagałoby to poświadczeń dla udziału sieciowego, głównego hasła i fizycznego napędu USB z plikiem klucza.

Paul Kroon
źródło
Wygląda na to, że KeePass obsługuje wiele platform, co jest dużą wygraną w moich oczach (pracuję w środowisku mieszanym). Przydatna jest też funkcja „automatycznego pisania”.
Avery Payne
2
Głupi pomysł na utrzymanie haseł w sieci.
d -_- b
1
@Sims - w jaki sposób je udostępniasz? KeePass używa zaszyfrowanego pliku dla sklepu. Jest to po prostu bardziej użyteczna wersja pliku tekstowego zaszyfrowanego GPG na serwerze Unix, do którego wszyscy mają dostęp.
mfinni
1
@Sims - zwykle zgadzam się z tobą, ale może to być sytuacja bezpieczeństwa a produktywności. Nie chciałbym umieszczać hasła root serwera do czegoś takiego, ale hasło administratora do przełącznika warstwy 2, który ma tylko jedno logowanie, jest dobrym kandydatem do tego. Jest taki moment, że potrzeba więcej pracy, aby robić rzeczy w bardziej bezpieczny sposób, niż by to zrobić po naruszeniu bezpieczeństwa. Dodatkowo, oprócz całego szyfrowania, będziesz mieć zabezpieczenia pliku AD / NTFS i trochę niejasności, umieszczając plik (który można nazwać dowolnym) w losowej lokalizacji.
Paul Kroon
Nie myślałem o maszynie z Windows. Ale tak, jeśli możesz mieć tylko jednego użytkownika dla tego przełącznika, to myślę, że miałoby to sens. W przeciwnym razie, jak mówi Bill, powiedz „nie” dla wspólnych haseł, co również było moim punktem na temat kluczy.
d -_- b
5

Jakie są najlepsze praktyki udostępniania setek haseł kilku osobom?

Łatwo, występuje w dwóch smakach:

  1. Nie, jasne i proste. Jeśli to zrobisz, odroczysz uwierzytelnianie hasła do zewnętrznego zaufanego organu i stamtąd kontrolujesz uwierzytelnianie.

  2. Robisz to, ale robiąc to, masz zewnętrzną kontrolę dostępu, która ma hasła lub tokeny bezpieczeństwa, które nie są rejestrowane w używanym systemie (tj. Zapis haseł jest chroniony innym hasłem o ograniczonej dostępności). Jest z tym wiele problemów.

Te hasła chronią dane o znaczeniu krytycznym i nigdy nie będą widoczne poza małym zespołem.

Należy poważnie rozważyć bezpieczną usługę uwierzytelniania zintegrowaną z usługą katalogową w celu rozwiązania problemu. Kombinacja DS / AS tworzy zaufany „organ”, który może działać jako arbiter dla wszystkich użytkowników i urządzeń. Dostęp do kont użytkowników można oddzielić od faktycznego hasła użytego do uwierzytelnienia, co ułatwia „odłączenie” haseł od zasad dostępu. Kontrola haseł polega na dezaktywacji konta użytkownika; więc jeśli administrator odejdzie, po prostu zamkniesz jego konto, a jego dostęp zniknie (ponieważ hasło tej osoby zapewnia dostęp tylko na podstawie ważności DS / AS potwierdzającego, że konto jest ważne).

Działa to tylko wtedy, gdy jesteś w środowisku, które pozwala twoim urządzeniom / programom przesyłać żądania uwierzytelnienia do zewnętrznych źródeł, więc może to nie być dla ciebie rozwiązaniem . Jeśli masz znaczny odsetek urządzeń / programów, które mogą obsługiwać zewnętrzne uwierzytelnianie, to zrobiłbym to, gdyby tylko skonsolidować kilkaset haseł do możliwej do zarządzania listy, powiedzmy, tuzina. Jeśli zdecydujesz się pójść tą drogą, istnieje kilka gotowych, dobrze znanych i przetestowanych rozwiązań.

  • Active Directory. Prawdopodobnie najbardziej znana z tej grupy, udostępnia Kerberos jako opcję uwierzytelniania i zapewnia LDAP dla podstawowych DS.
  • Samba / Winbind. Pomyśl o tym jako o „Active Directory Light”, nie masz wszystkich funkcji AD, ale raczej starszy model oparty na NT4 (pomyśl hash LANMAN). Zostanie to zastąpione integracją AD Samby 4 i prawdopodobnie „odejdzie”.
  • Usługi katalogowe Novell. Nie wiem wystarczająco dużo, aby go polecić, ale wiem, że nadal istnieje. Wiele podmiotów rządowych nadal prowadzi NDS, więc jeśli wykonujesz pracę w tym „sektorze”, będzie to dla Ciebie interesujące. Novell niedawno przeniósł NDS do działania jako usługa Linux, ale nie wiem, czy nadal jest to aktywny produkt (około 2005 r.).
  • LDAP + Kerberos. Jest to w zasadzie „domowa” usługa Active Directory, pomniejszona o wszystkie „miłe funkcje”. Są to jednak również znane komponenty ze stabilną, dojrzałą bazą kodu, więc integracja tych usług jest zwykle „dostosowaniem” potrzebnym do działania.
  • SSH Keys + (wstaw tutaj program do administrowania systemem, prawdopodobnie marionetka). Przydatne tylko wtedy, gdy masz SSH na całej tablicy, a wszystkie urządzenia są dostępne w ten sposób. Klucze można wydawać i odwoływać w razie potrzeby, a hasła stają się „nieistotne”, gdy klucz SSH zapewnia dostęp. Korzystanie z systemu takiego jak marionetka umożliwia aktualizację setek maszyn poprzez wydawanie komend masowych w celu dodania / odwołania kluczy SSH.
  • Niektóre kombinacje powyższych.

Pojawia się również pytanie, ile bezpieczeństwa potrzebujesz. Nie określiłeś, czy przez „krytyczny dla misji” masz na myśli, że głowice nuklearne mogą padać na miasta, czy też „dla krytycznej misji” oznacza, że ​​najnowsza dostawa Furbies nie dotrze do miasta. Naprawdę by to pomogło, gdyby było coś, co opisywało ocenę ryzyka / zagrożenia.

Avery Payne
źródło
2

Kilka spraw:

  • Jak powiedzieli inni, to zły pomysł. Użyj LDAP itp
  • Jeśli chcesz to zrobić z jakiegokolwiek powodu, przynajmniej skonsoliduj hasła. 100 niezarządzanych haseł oznacza, że ​​nie aktualizujesz haseł.
  • Trzymaj je na papierze. Wymagaj, aby personel podpisał papier atramentem w innym kolorze, aby ułatwić ustalenie, czy arkusz został skopiowany.
  • Jeśli korzystasz z Uniksa, użyj S / KEY, aby wygenerować hasła jednorazowe. Przechowuj to w bezpiecznym miejscu.

Musisz także wykroczyć poza mechaniczne środki bezpieczeństwa polegające na umieszczeniu haseł papierowych w sejfie lub szyfrowaniu haseł. Przeczytaj, jak organizacje z dojrzałymi modelami zabezpieczeń zabezpieczają klucze i bezpieczne kombinacje. Nie polecam robić tego, co chcesz, ale jeśli to zrobisz:

  • Ludzie, którzy będą używać haseł, nie mogą kontrolować dostępu do haseł. Odrębna grupa ludzi z innego łańcucha zarządzania musi kontrolować dostęp do sejfu, szuflady itp. Jeśli masz grupę finansową, mogą być kandydatami. Może wiceprezes ds. Marketingu itp.
  • Kiedy sejf jest otwarty, a ktoś musi posiadać hasło, musi istnieć zapisany dziennik.
  • Hasło musi zostać zmienione w ciągu 24 godzin od sprawdzenia.

Procedury takie jak ta powodują ból szyi, ale będą stanowić zachętę dla ludzi do przyjęcia bardziej rozsądnych praktyk. Jeśli nie zrobisz czegoś podobnego do tego, co opisałem, nie zawracaj sobie głowy zamykaniem haseł, bo i tak kiedyś zostaniesz złamany.

duffbeer703
źródło
2

Wiem, że to stare pytanie, ale niedawno natknąłem się na internetowe rozwiązanie open source o nazwie Corporate Vault, które może być interesujące dla niektórych. Nie miałem jeszcze okazji tego wypróbować.

3dinfluence
źródło
1

korzystamy z programu o nazwie Password Safe . jest ładna i bardzo bezpieczna, możesz ustawić bazę danych na dysku sieciowym i dać każdemu, kto jej potrzebuje, dostęp i hasło do samego sejfu, który następnie bezpiecznie przechowuje wszystkie nazwy użytkowników i hasła zaszyfrowane.

użytkownik44650
źródło
1

https://pypi.python.org/pypi/django-pstore/ używa szyfrowania GPG dla użytkownika dla współdzielonych haseł (i wszelkich innych danych, które chcesz udostępnić). Serwer nigdy nie wie o żadnych hasłach, przechowuje tylko zaszyfrowane dane. Każdy używa własnego klucza prywatnego do odszyfrowania wspólnych tajemnic.

System obejmuje zarządzanie prawami: nie każdy ma pełny dostęp.

wdoekes
źródło
1

Używamy https://passwork.me jako rozwiązania hostowanego przez siebie. Ale możesz także przechowywać hasła w ich chmurze.

Iliya Garakh
źródło
To twój produkt Iliya, ale wygląda dobrze.
Foliovision,
0

Portfel SPB to dobry sposób, w jaki używaliśmy PW bezpiecznie przez ducha, ale portfel SPB pozwala synchronizować z udziałem sieciowym, a także synchronizować z iPhone'em, jeśli dostaniesz aplikację. Ma również wbudowany generator haseł i możesz je generować od prostych haseł do bardzo skomplikowanych haseł. Możesz również skopiować hasło, gdy hasło jest wciąż oznaczone gwiazdką, więc jeśli ktoś szuka, możesz je skopiować i wkleić, aby nikt go nie widział. Aplikacja na komputer automatycznie się blokuje, gdy przez określony czas nie będzie żadnej aktywności.

JohnyV
źródło
0

Inną opcją jest usługa Azure Key Vault, która bezpiecznie przechowuje twoje sekrety i pozwala ci na programowy dostęp do nich, łatwe obracanie haseł itp. Nie jest to przyjemny interfejs użytkownika, ale jeśli nie masz nic przeciwko dostępowi z wiersza poleceń, to dobrze.

Rory
źródło
0

Naszą najlepszą praktyką jest udostępnianie jak najmniejszej liczby haseł.

Dlatego na przykład: - używamy my.cnf w katalogu głównym katalogu głównego dla haseł do bazy danych - używamy kluczy ssh do logowania na serwery i mamy jedno hasło roota, które jest dozwolone tylko przez konsolę (więc musisz mieć fizyczny / bmc dostęp do serwera ) - używaj ldap wszędzie, gdzie to możliwe (ssh, bmc, przełączniki, redmine, ....)

Istnieje jednak kilka sytuacji, w których nie jesteśmy w stanie zastosować tego podejścia (np. Hasło roota). Następnie używamy keepass na naszej wspólnej pamięci, ale przechowujemy tam zaledwie 10 haseł.

Yarik Dot
źródło
-1

Bardzo dobre pytanie. Byłbym zainteresowany innymi odpowiedziami.

Oto, co robię, ale najpierw zalecam używanie kluczy współdzielonych, tam gdzie to możliwe. Nie wiem jednak, czy jest to możliwe w systemach Windows.

Ponieważ ilość haseł powinna być niewielka (używasz kluczy tam, gdzie to możliwe), używam zwykłego pliku tekstowego zaszyfrowanego gpg w systemie, który nie ma karty sieciowej. Zatem (1) potrzebujesz dostępu fizycznego i (2) hasła.

zredagowane dla jasności

d -_- b
źródło
Klawiatura? Jak w, klucze USB? Fizyczne klucze, które otwierają zamki? Klucze kart inteligentnych? Klucze GPG? Klucze fraz, które istnieją tylko w oprogramowaniu mokrym w twojej głowie? Kombinacje powyższych?
Avery Payne
Kluczyki samochodowe! JK. Dla wyjaśnienia mam na myśli klucze ssh. Dlatego powiedziałem, że użycie wstępnie udostępnionych kluczy w systemie Windows może być niemożliwe.
d -_- b