Otrzymywanie klucza prywatnego od administratora serwera: dobrze czy nie?

20

Mam uzyskać dostęp do zdalnego serwera SFTP. Administrator utworzył dla mnie użytkownika i wygenerował dla mnie parę kluczy publiczny / prywatny. Następnie bezpiecznie przesłał mi plik klucza prywatnego, którego używam do uwierzytelnienia. Uważam, że to nie jest dobre, to ja powinienem wygenerować parę kluczy i przekazać mu klucz publiczny. Ale nie jestem w stanie wymyślić żadnego dobrego powodu, dla którego byłoby to złe, jeśli użyję tego klucza tylko do zalogowania się na tym serwerze, a nie na innych serwerach. Czy są jakieś takie powody?

matthiash
źródło
17
Na przykład zła higiena bezpieczeństwa. Administrator serwera powinien wiedzieć lepiej i nie powinien „szkolić” użytkowników w zakresie oczekiwania na uzyskanie kluczy prywatnych ze źródeł zewnętrznych.
wmorrell,
1
Komu jeszcze to daje? Zawsze myśl, co najgorszego może się zdarzyć?
mckenzm
1
Właściwie nie sądzę, żeby było tak źle. Analogia poniżej (Eric Towers) z podaniem użytkownikowi „początkowego hasła”, które następnie należy natychmiast zmienić, jest dobra. Mówienie z własnego doświadczenia, wyjaśnianie użytkownikom, jakie klucze są po raz setny, może być nieco żmudne - administrator nadal jest człowiekiem. Dawanie ci klucza prywatnego jest leniwe - tak, ale nic nie powstrzyma cię przed jego samodzielnym zastąpieniem. W gruncie rzeczy, po wysłaniu go do ciebie, nie musisz ponownie niepokoić sysadmina (chyba że postanowili wyłączyć uprawnienia do zapisu w pliku ... to po prostu ich zirytuj).
Ray
@matthiash to pytanie pasuje do tej witryny, ale tak jak w przypadku FYI istnieje strona dotycząca bezpieczeństwa informacji zawierająca inne pytania dotyczące bezpieczeństwa.
topher
Chciałbym również zauważyć, że tak właśnie robi to AWS. Po utworzeniu wystąpienia nie przesyłasz do niego klucza publicznego, generowana jest dla Ciebie para kluczy i pobierasz klucz prywatny.
GnP,

Odpowiedzi:

23

Dokładnie tak, jak mówisz: cała koncepcja uwierzytelniania za pomocą klucza publicznego polega na tym, że klucz prywatny powinien być znany tylko właścicielowi, podczas gdy odpowiedni klucz publiczny może być szeroko rozpowszechniony. Bezpieczeństwo uwierzytelnienia zależy od bezpieczeństwa klucza prywatnego, a nie bezpieczeństwa klucza publicznego.

Fakt, że ktoś udostępnia ci klucz prywatny, automatycznie powoduje, że jest on zagrożony. (Nie wiesz, czy ten inny administrator nadal ma kopię, której można użyć do podszywania się pod Ciebie).

HBruijn
źródło
4
Załóżmy, co najlepsze od administratora serwera i załóżmy, że generowanie nowej pary kluczy jest lepsze, ponieważ nie ufałby użytkownikowi, że nie będzie miał skompresowanego klucza prywatnego. Może administrator serwera uważa, że ​​klucz prywatny użytkowników jest bardzo stary i może z biegiem lat został przejęty. Podobnie jest z U2F, gdzie konsorcjum lub dostawcy nie ufają użytkownikom w generowaniu kluczy, dlatego urządzenia U2F są dostarczane z wcześniej utworzonymi kluczami!
cornelinux
8
Administrator powinien pomóc użytkownikowi wygenerować i zabezpieczyć klucz prywatny.
Alex
1
Masz całkowitą rację. Ale często administratorzy lepiej radzą sobie z komputerami niż z ludźmi, -)
cornelinux
7
Administrator i tak może podszywać się pod Ciebie.
user253751
2
Myślę, że mylicie praktyki teoretyczne wąskiego przykładu z rzeczywistością i szerszym obrazem. W każdym razie musisz ufać administratorowi, ponieważ ma on kontrolę nad systemem i może uniknąć konieczności używania klucza w ogóle. Rozdawanie kluczy prywatnych odbywa się w prawdziwym świecie, ponieważ użytkownicy końcowi albo nie rozumieją, jak je utworzyć, ani jak zrobić je bezpiecznie.
JamesRyan
10

W przypadku tego klucza organizacja nie ma niezaprzeczalności . IE, jeśli ktoś zrobi coś obraźliwego lub destrukcyjnego w stosunku do tego systemu za pomocą „twojego” klucza, administrator nie może zrzucić winy na ciebie za to, że jesteś za to całkowicie odpowiedzialny. Ponieważ osoba, która ci go dała, również miała klucz. Prawdopodobnie nie jest tak źle dla ciebie, ponieważ daje ci obronę, ale okropne dla organizacji kontrolującej serwer, jeśli coś złego się kiedykolwiek wydarzy.

Być może będziesz mógł skorzystać z uprawnień do zapisu z dostarczonych kluczy, aby zaktualizować autoryzowane klucze, dodać swój klucz i usunąć dostarczony klucz.

Zoredache
źródło
3
W rzeczywistości administrator może oczekiwać, że użytkownik zmieni klucz podczas pierwszego użycia, podobnie jak w przypadku generowanych administracyjnie pierwszych haseł.
Eric Towers
7
Jak powiedział kiedyś wielki człowiek: „oczekujcie odejścia”. Zmiana pierwszego użycia jest często konieczna w przypadku haseł, ale nigdy nie jest konieczna w przypadku szyfrowania z kluczem publicznym - o to właśnie chodzi.
womble
@EricTowers Czy jest to w ogóle możliwe, aby wymagać współczesnych implementacji SFTP (lub nawet SSH, chyba że sam zechcesz połączyć coś razem)?
CVn
Ta odpowiedź sprawia wrażenie, że działania nad sftp są gdzieś podpisywane w dzienniku i zabezpieczone tym kluczem od końca do końca. Po prostu tak nie jest, administrator może manipulować działaniami lub dziennikami nawet bez użycia klucza.
JamesRyan
1
@marcelm: Jest powód, dla którego powiedziałem „często konieczne”, a nie „zawsze absolutnie obowiązkowe we wszystkich okolicznościach bez wyjątków”. Jako osoba, która w rzeczywistości regularnie prosi (i akceptuje) skróty haseł oraz klucze publiczne, wiem, że znacznie większą barierą jest przekonanie kogoś, aby dostarczył hashowane hasło (z bezpieczną solą i wszystkim) niż klucz publiczny. Jeśli masz klienta SSH, masz narzędzie do generowania kluczy. Tego samego nie można powiedzieć o czymś, co można nazwać crypt(2) w wielu zabawnych formach.
womble