it-swarm-eu.dev

Jsou přihlašovací údaje SSH bez hesla bezpečnější?

Dlouho jsem se svými spolupracovníky diskutoval o tom, zda je autentizace pomocí SSH na základě klíčů (zejména pro OpenSSH) bezpečnější než autentizace pomocí hesel. Moji spolupracovníci se vždy připojují k serverům pomocí hesel, zatímco já se raději přihlašuji do systému bez nutnosti zadávat heslo pokaždé.

Obávají se, že není bezpečné se připojit bez hesla. Co bych jim měl říct? Pro mě jsou hesla špatná, protože by mohla být vynucena hrubou zprávou nebo zachycena pomocí keyloggeru.

Používám ssh-copy-id nástroj pro zkopírování veřejného klíče na server. Pak se jednoduše spojím s ssh servername. Ve skutečnosti musím zadat heslo pro svůj soukromý klíč jedno při každém spuštění systému. Pokud moje pracovní stanice běží 3 dny, už nikdy nebudu muset znovu zadávat heslo, což je podle nich nejisté. Je to pravda? Vím, že klíče jsou lepší, ale nevím, jak jim to vysvětlit.

68
Daniel

Přihlašování na základě klíče je považováno za mnohem bezpečnější než přihlašování na základě hesla, když se díváme z pohledu pokusu brutální síly získat přístup ze systému třetí strany: Šance na rozbití klíče jsou ve skutečnosti nulové, zatímco špatná hesla jsou příliš běžná.

Z pohledu kompromitovaného klientského systému (vaší pracovní stanice) nebude žádný rozdíl, protože pokud útočníci mohou získat váš soukromý klíč a/nebo Hijack relaci, mohli by také nainstalovat nějaký druh loggeru klíčů a vykreslit vnímané výhoda hesel k ničemu.

54
Sven

Je stejně bezpečný jako váš počítač. Klíč je nešifrovaný v RAM; mohl by jej získat útočník s fyzickým přístupem k vašemu počítači nebo se vzdáleným přístupem root.

Přemýšlejte o tom stejným způsobem, jako by vaši spolupracovníci použili program bezpečný pro heslo a nechali jej na obrazovce s databází dostupnou bez zadání hesla; Pokud uzamknete svou pracovní stanici, když odjedete a budete ji chránit před nepřátelskou vzdálenou aktivitou, je to rozumně zabezpečené, ale zamrzlý útok RAM) by mohl klíč teoreticky získat.

Jak ale zdůraznil, někdo v těchto pozicích by mohl snadno nainstalovat keylogger. Dokud si dáváte pozor na zabezpečení vaší pracovní stanice, neřekl bych to méně bezpečným než hesla; Skutečné výhody přihlašování pomocí klíčů jsou však ve skutečnosti pro ochranu před například útoky hesel proti serveru brutální silou proti serveru (protože klíče jsou téměř nemožné silou brutální).

25
Shane Madden

Ve skutečnosti jsou vaši spolupracovníci v pořádku. Přemýšlejte o tom .. Vaše pracovní stanice jsou prasklé, je to už pár dní a hackeři teď pwn celou vaši síť, protože nepoužíváte fráze ssh ssh.

Sdílená hesla však nikdy nejsou dobrá a hlavní slabinou systému. Budu předpokládat, že mluvíte o přístupu root.

Chci říci, že oba mají nevýhody a kde musí být zabezpečení.

Pro všechny servery, které spravuji, používám přístupový klíč SSH. To mi dává to nejlepší z obou světů. Pouze heslo vím a nepoužívám sdílené heslo pro ostatní uživatele.

(a ano, viděl jsem, kde byl použit bezsfázový ssh klíč ke kompromisu a celé síti.

12
Squidly

Jste jen tak bezpeční jako vaše nejslabší spojení. Pokud vaše vzdálené servery umožňují ověřování pomocí hesla i klíče, jste ve srovnání s povolením pouze méně zabezpečeni.

Vaše další zranitelnosti v systému založeném na klíči kvůli ověření pomocí hesla (PA) jsou:

  1. Útočník získá kopii vašeho soukromého klíče chráněného heslem pomocí fyzického přístupu k nezašifrovanému disku v libovolném systému (např. Spuštění do režimu jednoho uživatele), poté na váš klíč spustí útok offline brutální silou založený na GPU a poté dostane přístup ke všem vašim systémům, pokud je vaše přístupová fráze vhodně slabá (např. 4 slova diceware).

  2. Používáte něco jako agent ssh, který uchovává vaše přístupové heslo nebo soukromý klíč v paměti pro pozdější použití a útočník je schopen jej nějakým způsobem z vašeho systému dostat (např. Jiný uživatel root byl přihlášen, zatímco jste měli v paměti heslo).

  3. Váš klíč byl mnohem méně bezpečný, než jste si mysleli. Například klíčová slabost OpenSSH; kde jediná náhodnost pocházela z id procesu, takže bylo vygenerováno pouze 65536 klíčů. Zatímco tyto druhy problémů se doufejme dostanou do povědomí a opraví se rychle, jako koncový uživatel je nemožné říct, že tam není nějaký hlavní chyba v generátoru náhodných čísel, který se používá k výrobě vašich klíčů.

Vaše mimořádné zabezpečení při používání ověřování pomocí klíče:

  1. Útoky hrubou silou jsou po celý život vesmíru nemožné, aniž byste ukradli váš soukromý klíč (a pokud to bylo chráněno heslem; pak bylo heslo porušeno).
  2. Útoky MITM nebudou fungovat (nebezpečný vzdálený hostitel nedokáže zjistit svůj soukromý klíč/přístupové heslo); i když ssh již upozorňuje na útoky MITM, aby varoval administrátory pomocí kláves Host a known_hosts soubory.

V praxi jsou oba stejně bezpečné. Kdokoli, kdo může ukrást ssh soukromé klíče z RAM, může nainstalovat keylogger získat vaše hesla/přístupová fráze/soukromé klíče.

Osobně se mi vaše řešení líbí, protože přístupové fráze jsou pohodlnější (uložené v paměti RAM; na stroji pro jednoho uživatele, který se zamkne po 5 minutách); i když svůj soukromý klíč chráněný heslem používám pouze na lokálních počítačích, kde jsem jediný uživatel.

9
dr jimbob

Jedním z důvodů, proč se domnívám, že ověřování na základě klíče má malou bezpečnostní výhodu, je to, že jsem občas viděl oba koncové uživatele, a dokonce jsem příležitostně zadal své heslo do pole uživatelského jména místo do dialogového okna pro heslo ( v závislosti na klientovi ssh). Nebo stiskněte klávesu Enter příliš rychle a klient ssh skončil a moje heslo šlo do historie terminálu.

Pokud si nejste opatrní pokaždé, když zadáte své heslo, pak existuje šance, že se vaše heslo přidá do jasného kódu, případně do několika souborů protokolu, případně do Shell historie nebo dokonce do jakéhokoli typu trojského koně. V případě klíče bez hesla nebo klíče načteného agentem SSH na začátku vaší relace byste nikdy neměli znovu zadávat heslo, takže je nepravděpodobné, že zadáte své přihlašovací údaje na nesprávném místě a odhalíte své heslo někomu nebo něčemu, co jste nezamýšleli.

6
Zoredache

Svým způsobem je to 6 let. Prvním bezprostředním bezpečnostním rizikem přihlašování založeného na hesle by byl neoprávněný uživatel, který získá (jakýmkoli způsobem) heslo k serveru. Stejně tak přihlašování pomocí klíče představuje bezpečnostní riziko, že některý neoprávněný uživatel získá přístup k vašemu počítači. Používáte-li na serveru složité heslo, riskujete, že si ho uživatelé budou muset někde zapsat, aby si ho pamatovali. S klíčovými uživateli riskujete, že odemknou počítač a odemknou počítač.

Hodně z toho se týká poměru rizika k použitelnosti. Samozřejmě byste mohli vyžadovat hesla ke klíčům, povolit pouze určité adresy IP na základě klíče a jakýkoli jiný počet bezpečnostních opatření, která jsou uzamčena, ale vaše lidi budou nešťastní.

Abychom ale odpověděli na vaši otázku: Pokud mluvíme o vanilské konfiguraci OpenSSH, mají přihlašovací hesla a hesla založená na klíčových i vlastních slabinách zabezpečení.

5
Safado

Vždy vypnu přihlášení hesla přes ssh pro root v mých systémech. Tímto způsobem neexistuje žádný způsob, jak by se útočník mohl pokusit hrubou silou vynutit heslo.

Na klientských systémech byste měli být stále opatrní. Možná budete chtít, aby agent ssh zapnul vaše klíčová pověření, jakmile se otevře obrazovka zámku. To by pomohlo zabránit útokům na klientský počítač v ohrožení vašeho klíče.

5
Jeff Strunk

Některé slušné odpovědi zde, ale zdá se, že všechny podle mého názoru chybí.

Použití dvojice klíčů pro ověření nahrazuje „něco, co víte“ systému založeného na hesle „něčím, co máte“ systému klíčů nebo tokenů. Zpět k tomuto za vteřinu.

Klíče jsou mnohem složitější. Myslím, že většina implementací SSH je nastavena na 2048 RSA klíč. Porovnejte to s heslem s 8 znaky. I když hash do 256 bitů, hesla, protože postrádají náhodnost klíčů může být brutálně vynucena. Schneier má k tomu několik skvělých pozorování; i údajně „dobrá“ hesla bývají pouze kombinací crackable dat (slovo s číslem a možná i několika jednoduchými substitucemi); my lidé jsme příliš předvídatelní.

Pokud jde o klíč, který je stejně bezpečný jako heslo pro přihlášení, není to úplně správné. Zabalením klíče jiným heslem výrazně zvýšíte zabezpečení, protože v zásadě používáte dvoufaktorové ověřování; pro přístup k něčemu, co máte (klíč), musíte použít něco, co znáte (heslo). Ano, použití přihlašovacího hesla k zabalení klíče by to podkopalo.

Takže k původnímu plakátu bych řekl, že se vy i vaši spolupracovníci mýlíte. Můžete být méně, než jsou, ale správná odpověď je, že byste měli používat klíč i heslo.

3
JoePete