ssh-agent pasphrase forwarding

ssh-agent pasphrase forwarding
« kdy: 15. 06. 2021, 22:27:42 »
Ahoj, jsem člověk, který se věšinou nespokojí s miliardou blogů, které tvrdí že ukládání passphrase do ssh-agenta je bezpečné. Když neumím číst zdrojový kód a a ty blogy nepíšou jak to dělá, že je to bezpečné.

Všichni jen "tvrdí", že je to bezpečné, ale nikdo jako kdyby nevěděl proč to vlastně tvrdí, jakoby jen papouškovali. Nebo teda spíš neumím hledat správně informace a hlavně číst v kodu ssh-agenta.

Chápete to někdo, nebo jen slepě věříte, že je to bezpečné?

Můžete mi to prosím vysvětlit?:

  • Je to bezpečné?
  • Jak a kam ten ssh-agent ukládá (uchovává) ty passhprase?
  • Vrchol bezpečnosti je uložení těch passphrase na nějaký externí např. USB flash disk, který se připojí k PC, ani by ten samožný flashdisk měl přístup k internetu? Jaký to má význam, když se připojuje do PC, který k internetu přístup má, to potom je i ten samotný flashdisk automaticky také v internetu. Takže jaký to má smysl?
  • jak to funguje pod pokličkou a jaké to má nevýhody, popř. jak to používat správně?

Díky moc za info.


EDIT:

Tak už jsem našel nějaké informace. Prý to vlastně o moc bezpečnější není. Ten forward agent do sebe neukládá přímo passphrase, ale ten dešifrovaný klíč. Takže kdo se dostane do systému ten se pak automaticky dostane všude. Takže je to asi o trochu bezpečnější, ale asi jen nepatrně. Výhoda tedy není ani tak v bezpečnosti, jako v pohodlnosti, že se nemusí passphrase pokaždé vepisovat ani si ho člověk nemusí pamatovat. Je to vlastně takové primitivní udělátko. Které tam vždycky strčí svůj již dešifrovaný správný klíč.

Myslíte, že jsem to pochopil správně?
« Poslední změna: 15. 06. 2021, 22:33:01 od scientific »


Re:ssh-agent pasphrase forwarding
« Odpověď #1 kdy: 16. 06. 2021, 09:27:30 »
ssh-agent neukládá fráze, ale soukromé klíče. Ty jsou na disku uloženy v šifrované podobě a jsou zabezpečeny právě frází. Při každém použití klíče (přihlášení na server) se musí klíč dešifrovat = uživatel je požádán o zadání fráze. Protože to je nepohodlné, vznikl ssh-agent. Ten funguje jako softwarové úložiště klíčů v RAM, kde jsou klíče uloženy nešifrovaně a nevydávají se, ale agent je umí použít a vrátit SSH klientovi odpověď. Klient samotný (tedy program SSH) pak s klíči vůbec nepracuje a nechává to na agentovi.

Nahrát klíče na flešku nedává z bezpečnostního hlediska moc smysl, asi jste měl na mysli nějaký USB token, což ale není prosté úložiště, ale vlastně takový ssh-agent v hardware. Klíče se pak nedostávají vůbec do počítače, přes USB proudí jen požadavky na jejich použití.

Re:ssh-agent pasphrase forwarding
« Odpověď #2 kdy: 16. 06. 2021, 15:20:12 »
1) "Softwarové uložiště klíčů v RAM" - Po vypnutí PC co, se zapíše na disk, nebo všechny passphrase musím po zapnutí PC znovu vepisovat?

2) Používat ssh-agenta je naopak tedy nebezpečné, protože kdo se dostane do systému, ten automaticky z RAM ukradne i dešifrované klíče a získá tak přístup nad ostatními systémy? Není lepší nikde v RAM ten dešifrovaný klíč neválet? Není lepší vždy tu passphrase jednorázově zadat, dešifrovat a zahodí bez uložení do paměti ze které si ti potom útočník může dešifrované vzít? Přijde mi to jako mít v autě nejmodernější zámek na světě, ale stejně to auto parkovat do garáže, ale nezamykat ho, protože na garáži přece visí visací zámek, tak to auto nikdo "nemůže" úkrást, přitom stačí přeštípnout zámek, nastartovat a odjet.

3) Jo tak takhle funguje ten HW klíč, chápu, děkuji.

Re:ssh-agent pasphrase forwarding
« Odpověď #3 kdy: 16. 06. 2021, 16:08:49 »
1. Ano, klíče se při každém zapnutí počítače musejí do agenta znovu nahrát. Uživatel je dotázán na frázi a klíč je načten. Dá se to udělat automaticky při spuštění nebo třeba při prvním použití klíče. Klíč tam může být i omezenou dobu a agent ho třeba po osmi hodinách umí zapomenout. Takže ráno přijdete do práce, při prvním použití klíče se tento přenese do RAM a za osm hodin se zahodí.

2. Pokud se někdo stane pánem toho stroje, je jedno, jestli je klíč dešifrovaný v paměti pořád nebo mu ho tam dočasně dám, jakmile ten klíč budu příště potřebovat. V každém případě ten klíč získá. Nekompromitovaný stroj je v každém případě nutností. Jedinou skutečnou obranou proti kompromitaci je pak ten klíč oddělený v nějakém jiném hardware.

Re:ssh-agent pasphrase forwarding
« Odpověď #4 kdy: 17. 06. 2021, 15:35:32 »
Zamýšlím se v jakých případech je vhodné použití ssh-agenta a kdy je to zbytečné, protože to nemá žádné reálné znatelné bezpečnostní výhody.

Totéž by mě zajímalo ještě v případě používání forwardovaného ssh-agenta. V jakým případech to má jaké negativní/pozitivní bezpečnostní dopady?

Děkuji moc za informace.


Re:ssh-agent pasphrase forwarding
« Odpověď #5 kdy: 17. 06. 2021, 16:53:13 »
ssh-agent se nepoužívá primárně kvůli bezpečnosti, ale hlavně kvůli pohodlí. Bezpečnost je až druhotná – když budete heslo psát třicetkrát denně, asi nebude moc komplikované. Zároveň když ho budete zadávat často, je větší riziko, že ho někdo všímavý odpozoruje, nebo že to heslo zadáte někam jinam. Další věc je, že různé bezpečnostní chyby umožňují častěji získat soubor z disku (soubor s privátním klíčem), než komunikovat s jiným procesem (autorizovat komunikace ssh-agentem). Každopádně bych ale ssh-agenta nepovažoval za něco, co má primárně zvýšit bezpečnost (pokud ho nebudete kombinovat s klíčem uloženým na USB tokenu nebo čipové kartě).

Re:ssh-agent pasphrase forwarding
« Odpověď #6 kdy: 17. 06. 2021, 17:08:48 »
passphrase se přece zapisuje jen jednou (při zahájení konexe). Neotvírám si tu milion spojení, spíše třeba několik spojení denně, které si nechávám celý den otevřená. Takže to chápu tak, že ssh-agent mi nepřináší žádné výhody. To je pro borce, kteří denně otevřou desítky SSHček. :-)

Ahá tak to není jen pro borce, ale i mě to může trochu zvýšit bezpečnost. Říkal jsem si, jak náročné pro útočníka asi je sáhnout si pro ten klíč do paměti namísto na disk. Myslel jsem, že je to dokonce jednodušší, než ho hledat ve FS. Ale připouštěl jsem si, že v paměti musí fungovat něco jako izolace alokovaných adres paměti konkrétním procesům. Když je to ale takto složitější, tak to teoreticky přináší větší bezpečnost. A tudíž to pro mě má význam používat.

A co prosím ten forwarding ssh-agenta? Není to náhodou lepší než čpová karta/hw klíč? Já na něj zatím mrknul jen okrajově, ale potřeboval bych asi názor někoho, kdo porozuměl tomu, jak to funguje v praxi.

Re:ssh-agent pasphrase forwarding
« Odpověď #7 kdy: 17. 06. 2021, 17:54:08 »
To je pro borce, kteří denně otevřou desítky SSHček. :-)
Není potřeba desítky, stačí dvě :-) Pak také záleží na konfiguraci klientů, jestli se ssh nebo sftp na stejný server se stejným uživatelem připojí k existujícímu spojení, nebo si vytvoří spojení nové (což je u většiny klientů výchozí nastavení).

Ale připouštěl jsem si, že v paměti musí fungovat něco jako izolace alokovaných adres paměti konkrétním procesům.
To funguje. Nicméně ssh-agent poskytne službu autentizace (ne privátní klíč) každému procesu, který si o ni řekne (nemá jak poznat hodné procesy od těch zlých).

A co prosím ten forwarding ssh-agenta? Není to náhodou lepší než čpová karta/hw klíč?
Forwarding je vhodný tomu, že když se z jednoho stroje hlásíte dál, můžete použít toho agenta, kterého máte u sebe. Tj. nemusíte heslo zadávat na tom prvním vzdáleném počítači, nemusíte tam kopírovat svůj privátní klíč. Pokud by na tom „mezistroji“ byla nějaká škodlivá aplikace, může zneužít ssh-agenta v tu chvíli, kdy jste připojen, ale nezíská váš přístup trvale.

Těžko to porovnávat s čipovou kartou nebo HW klíčem, každé slouží k něčemu jinému. Hardwarová úložiště slouží k tomu, že je prvátní klíč uložen na nich a nikde je neopustí. Takže i kdyby měl útočník kompletní kontrolu nad vaším počítačem, privátní klíč nezíská. ssh-agenta můžete použít s USB tokenem nebo čipovou kartou.

Re:ssh-agent pasphrase forwarding
« Odpověď #8 kdy: 18. 06. 2021, 00:31:41 »
Citace
Forwarding je vhodný tomu, že když se z jednoho stroje hlásíte dál, nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím .

Těžko to porovnávat s čipovou kartou nebo HW klíčem...

Omlouvám se, ale mám velké problém porozumět tvému vysvětlení příkladu kdy je vhodné používat forwading agenta? Resp. proč ho vlastně používat? Co jeho používání řeší/zlepšuje?

Děkuji ti.

Re:ssh-agent pasphrase forwarding
« Odpověď #9 kdy: 18. 06. 2021, 06:59:28 »
nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím  nerozumím
To je ale váš problém, to vysvětlení je naprosto srozumitelného pro kohokoli, kdo by se aspoň trochu snažil ho pochopit. Asi nejvýstižnější reakce na lidi, kteří očekávají, že je povinností druhých za ně nastudovat dokumentaci a všechno jim do nejmenších podrobností vyložit, aby nemuseli vynaložit sebemenší úsilí, je "A kousat už budeš sám?"

Re:ssh-agent pasphrase forwarding
« Odpověď #10 kdy: 18. 06. 2021, 08:24:59 »
Citace
Forwarding je vhodný tomu, že když se z jednoho stroje hlásíte dál
Máte třeba počítače v nějaké interní síti, ke kterým se nedá připojit přímo z internetu – jeden z nich bude B. Ale abyste se na ně dostal, máte na rozhraní této interní sítě a internetu jeden počítač (A), ke kterému se z internetu přes SSH lze přihlásit. Takže se třeba z domova přihlásíte přes SSH na ten jeden veřejně dostupný počítač A a z něj přes SSH pokračujete na počítač B v té interní síti. No a abyste pro to druhé přihlášení k B nemusel zadávat heslo nebo mít na počítači A uložený klíč, použijete forwarding ssh-agenta. Takže ssh-agent na počítači A nebude sám nic řešit, ale deleguje autentizaci na ssh-agenta v počítači, ze kterého jste se připojil.

Re:ssh-agent pasphrase forwarding
« Odpověď #11 kdy: 18. 06. 2021, 08:47:49 »
@filip: Už chápu, děkuji za upřesnění. Jestli se to skutečně využívá jen v těchto případech, tak to mi je k ničemu. Myslel jsem to spíše tak, jestli to nejde využít pro nějaký kouzelný fígl, jak nemít klíče v notebooku, ale na nějakém serveru, který bude sloužit jako nějaká brána k ostatním serverům. Podle mě by se to tak využít dalo, ale asi by to nemělo žádné bezpečnostní výhody, jen by se to zesložitilo, ale stejně kdo získá přístup do notebooku, ten automaticky získá i přístup k mezipočítači, takže ke všem počítačům. Forwarding tady žádný kouzelný vychytaný způsob použití nemá. Vyjma toho, že slouží jako brána počitačům, kteří nejsou připojeni do internetu. Už mám jasno co chci používat, přegeneruji klíč at ho mám s passphrase, začnu používat ssh-agenta a možná nějak vyřeším jako bonus šifrování disku v notebooku. Děkuji ti za poskytnuté informace.

@Michal ***eček: Cenzura příjmení mi přišla vtipná, je to pro tvoje bezpečí v rámci GDPR. :-) Já zase nechápu lidi, kteří si dovolují soudit co je pro koho srozumitelné apod. A tvrdit, že něco je srozumitelné pro všechny. To přece žádný rozumný člověk takhle nemůže tvrdit. Okoštuj svoji medicínu. Takový argumentační faily... :-)

Nutím tě za mě studovat dokumentaci? Dokumentace ti neřekne poznatky z praxe, ta ti řekne jak s tím pracovat a jak to funguje, ale už ne to pro koho je to vhodné, proč t v jakém případě nepoužívat, jakou s tím mají zkušenost samotní uživatelé. Budu ji hodiny číst, už tuplem tam polovinu nepochopím, a stejně se nedozvěděl na co se ptám. Nejsem takovej bourák jako ty, který všude byl, a od všeho má klíče.  Až se budu ptát jak přidat klíč do agenta, tak měj chytrý kecy, jinak si to prosím odpusť.

Nejlepší jsou lidi, co si arogantně myslí, že když oni něčemu po letech praxe rozumí, že je to easy věc a všichni ostatní co tu dovednost/znalost ještě nemají vypilovanou, jsou neschopní pitomci.

Teď budu litovat, že jsem tě neodignoroval, akorát na to budeš hloupě reagovat a spamovat vlákno. Jen pochop, že do toho co dělají ostatní ti nic není pokud je to legální i kdybych se ptal na to co je to linux a jestli je pro mě vhodný, ty nemáš právo mi říkat a co se můžu ptát a na co ne, máš právo tak maximálně nedělat chytrého, nespamovat a držet pec. :-)

Re:ssh-agent pasphrase forwarding
« Odpověď #12 kdy: 18. 06. 2021, 10:07:43 »
Komu není rady... Ale je ironické, když si někdo s vaším přístupem zvolí nick "scientific". :-)