Portál AbcLinuxu, 4. května 2025 23:11

Dotaz: Bezpečnsť SSH -> heslo vs. kľúč

12.11.2014 14:10 Peter
Bezpečnsť SSH -> heslo vs. kľúč
Přečteno: 631×
Odpovědět | Admin
Dobrý deň vám prajem.

Vopred podotýkam, že táto otázka má výlučne akademický charakter a sám osobne používam na SSH kľúče.

Hádam sa s kolegom o bezpečnosti používania hesiel voči kľúčom. On tvrdí, že používať kľúče je oveľa bezpečnejšie ako heslá a ja tvrdím, že je to úplne rovnaké (samozrejme za určitých podmienok). On svoje tvrdenie podložiť nevie, moje tvrdenie je založené na nasledovnom:

Samozrejme vopred predpokladám, že idem porovnávať silné heslo a nie heslo typu nbusr123. Čiže napríklad povedzme nejaké 30 písmenkové heslo, samozrejme náhodne vygenerované (povedzme pwgen -s 30). Bruteforce útok na SSH je podľa mňa pri tomto hesle nemyslitelný. Takisto ani keby útočník získal shadow to necrackne (a to nehovorím o tom, že keby útočník mal možnosť získať shadow, tak je to už aj tak jedno, lebo je vlastne v systéme a môže si robiť čo chce).

Na druhej strane keby útočník napadol môj pc je tiež úplne jedno či jeho keyloger "zistí" heslo alebo stiahne súbor kľúča. Dokonca by som povedal, že pri kľúči to je jednoduchšie, lebo pri ňom nemusí čakať kým sa používateľ bude chcieť pripojiť. Samozrejme ak je kľúč zaheslovaný tak je to to isté ako pri samotnom hesle - počká na vstup používateľa.

Samozrejme si teraz odmyslime hardwarové kľúče typu yubikey (tu je to jasné, že bezpečnosť je na úplne inej úrovni) a takisto si odmyslime to, že útočník má možnosť použiť len hardwarový keyloger čo mu logicky nezabezpečí prístup k súboru kľúča. Jeden známy napríklad používa heslár (KeePassX) a heslá pri prihlásení kopíruje a vkladá cez schránku čo tiež eliminuje možnosť odchytenia cez keyloger.

Preto moja otázka - existuje nejaký prípad, model útoku, ... pri ktorom by používanie kľúčov oproti heslám bolo bezpečnejšie? A vážne predpokladajme, že používateľ nie je BFU a vie čo robí, čiže silné heslo, nekopíruje si ho kdekoľvek bez ochrany (napríklad spomínaný KeePassX), ...
Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.11.2014 14:37 VM
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Odpovědět | | Sbalit | Link | Blokovat | Admin
2048+bitový RSA klíč je přece jen delší než 30písmenné heslo. Není omezen na znaky zadatelné na klávesnici, ani není nutné si jej pamatovat. Takže ano, je bezpečnější pro případ síťového odposlechu. Navíc mám podezření, zda heslo poslané po síti nelze v případě napadené protistrany ukrást (a pak zkoušet zda se nepoužívá i na jiných systémech), zatímco soukromý klíč se nikam nijak neposílá.

Ano, v případě napadení uživatelova systému jsou kompromitovány obě metody.
12.11.2014 15:35 pavele
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Pokud používáš přihlašování pomocí hesla, je možné provést "man in the middle attack".

Pokud používáš přihlašování pomocí hesla, je možné provést "brute-force attack".

Pokud používáš přihlašování pomocí hesla, je možné se podívat do .bash_history, jestli tam heslo "neuvízlo" při občasném chybném zadávání hesla.

Pokud používáš přihlašování pomocí klíče s heslem, jedná se vlastně o dvoufaktorovou autentizaci - k přihlášení potřebuješ klíč + heslo. Takže když ztratíš flashdisk s klíčem, je to nepříjemné, když ztratíš flashdisk s heslem, je to na mašli. :-)

Pokud používáš přihlašování pomocí klíče bez hesla - například kvůli pravidelnému zálohování, je možné omezit použití pouze na spuštění zálohování. Na serveru, kde chceš spustit zálohování, budeš mít například klíč:

command="/opt/unisonzaloha",no-port-forwarding,no-agent-forwarding,no-pty ssh-rsa xxxxxxklíčxxxxx

12.11.2014 16:12 Peter
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč

Pokud používáš přihlašování pomocí hesla, je možné provést "man in the middle attack".
Predpokladal som skúseného používateľa, to znamená, že ak ssh klient zahlási, že sa niečo zmenilo tak sakra spozorniem. Podľa mňa jediná možnosť je keď sa z daného stroja prihlasujem prvykrát a nepozerám na fingerprint

Pokud používáš přihlašování pomocí hesla, je možné provést "brute-force attack".
Na silné heslo? Ako?

Pokud používáš přihlašování pomocí hesla, je možné se podívat do .bash_history, jestli tam heslo "neuvízlo" při občasném chybném zadávání hesla.
Môže byť, ale myslím, že keď sa mi vie niekto pozrieť do .bash_history, tak má môj kľúč aj z jeho heslom

Pokud používáš přihlašování pomocí klíče s heslem, jedná se vlastně o dvoufaktorovou autentizaci - k přihlášení potřebuješ klíč + heslo. Takže když ztratíš flashdisk s klíčem, je to nepříjemné, když ztratíš flashdisk s heslem, je to na mašli.
Jedine za predpokladu, že flash disk nemám šifrovaný čo pri mne nehrozí. Tam kde sa dajú používať kľúče tam ich používam, kde ide dvojfaktorova autentizácia, tak tú mám tiež a na zvyšok je KeePassX

Pokud používáš přihlašování pomocí klíče bez hesla - například kvůli pravidelnému zálohování, je možné omezit použití pouze na spuštění zálohování. Na serveru, kde chceš spustit zálohování, budeš mít například klíč:
Toto mi je úplne jasné, veď tak to aj používam.

Mne sú jasné výhody kľúča, ale mňa zaujíma akademická debata, že aké má útočník možnosti navyše pri hesle oproti kľúču. Zatiaľ akceptujem MITM, lebo nepoznám paranoika, ktorý kontroluje fingerprint pri prvom prihlásení na novom systéme, ale je to ošetritelné tým, že budem ten fingerprint kontrolovať a takisto ukradnutie hesla na napadnutom systéme a skúšanie či sa nepoužíva aj inde čo je tiež ošetritelné veľmi jednoducho. Budem rád ak bude táto debata pokračovať ďalej, lebo rád by som vedieť všetky - podotýkam reálne - slabiny hesla oproti kľúču. Veľmi pekne ďakujem.

Max avatar 12.11.2014 16:41 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Setkal jsem se systémem, kde měl admin zálohu několika skriptů v /root a tu zálohu měl v "ro" pro všechny. Klasický bash_history nešel přečíst, ale byl i v záloze. V historii pak bylo root heslo k mysql, které bylo shodné s heslem roota do systému.
Od té doby si všude vypínám ukládání "bash_history" do souboru a používám tedy jen aktuální historii v ramce.
Zdar Max
Měl jsem sen ... :(
12.11.2014 17:30 Peter
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Úsmevné - takáto blbosť by ma ani nenapadla. Mimochodom keď už sme pritom - bash_history stále za sebou mažem, ako sa dá vypnúť úplne? chattr +i alebo je na to normálnejšia metóda?
12.11.2014 17:36 Chulda | skóre: 20
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
man bash

If HISTFILE is unset, or if the history file is unwritable, the history is not saved.
Max avatar 12.11.2014 19:36 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
HISTFILE="/dev/null"
MYSQL_HISTFILE="/dev/null"
Zdar Max
Měl jsem sen ... :(
12.11.2014 18:37 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Sám si na několika serverech zálohuji vše, včetně všech dat uživatelů pokud nejsou „v adresáři k nezálohování“. Jako ochrana, jsou zálohy šifrované, ale /root daného stroje heslo k záloze obsahuje + na šifrované zařízení, ale to je vše. Jinak je to klasika, k informacím je často nejsnazší se dostat přes zálohy.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
12.11.2014 16:43 Filip Jirsák
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Pokud používáš přihlašování pomocí hesla, je možné provést "brute-force attack".
Na silné heslo? Ako?
Pořád je ten klíč podstatně delší než heslo. Dostatečně silné heslo samozřejmě stejně nebude prolomitelné útokem zkoušejícím jedno heslo za druhým. Ale co když útočník dokáže nějakým způsobem získat pár bitů informací o vašem hesle? Snad všechny útoky na moderní kryptografické algoritmy jsou založené na tom, že se podaří délku klíče jakoby zkrátit – a na kratším klíči už se pak provede útok hrubou silou. Tj. i to, že máte na délce klíče nějakou rezervu, je výhoda.
Max avatar 12.11.2014 15:46 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Odpovědět | | Sbalit | Link | Blokovat | Admin
Admin by měl být paranoidní ;-).
Zdar Max
Měl jsem sen ... :(
12.11.2014 16:18 Peter
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
To mi je jasné - to je základ "kľudného" spánku - vlastne ako by som to - poznáš kľudného admina?
paul2no avatar 12.11.2014 16:10 paul2no | skóre: 16 | blog: Paulovo doupě | Praha
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Odpovědět | | Sbalit | Link | Blokovat | Admin
Není klíč bezpečnější už jen proto, protože narozdíl od hesla při přihlašováno nikdy neopustí klientský systém, a tudíž nejde ani teoreticky odposlechmout?
Pravda, láska a elektrická trakce zvítězí nad lží, nenávistí a trakcí motorovou.
12.11.2014 16:17 Peter
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
To samozrejme ano - plne súhlasím, ale pozrime sa na to reálne:

Do SSL spojenia mi nikto nevstúpi, lebo je to šifrované, čiže nič neodpočuje. A ak by bolo šifrovanie prelomené, tak si myslím, že je jedno či odpočuje heslo alebo mi vstúpi do sedenia a urobí čo potrebuje. Na druhej strane ak napadne server kde je heslo posielané, tak mu je možnosť odpočuť heslo už ukradnutá, veď už na tom systéme je.

Veľmi pekne ďakujem za zaujímavé typy.
12.11.2014 16:54 Filip Jirsák
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Po HeartBleed a Poodle by každému, kdo to myslí s bezpečností alespoň trochu vážně, mělo být jasné, že „SSL je šifrované, takže z něj nikdo nic nepřečte“ je neplatný předpoklad. Je potřeba mít spojení správně nakonfigurované (aby se použil alespoň protokol, který má nejméně známých bezpečnostních chyb), musí to být správně implementované. Zrovna v případě HeartBleed je rozdíl mezi heslem a klíčem rozdíl v tom, zda by útočník měl možnost získat váš účet nebo ne (pokud by taková chyba byla ve vašem SSH serveru). V případě Poodle by zase útočník možná mohl získat alespoň část hesla, takže z útoku hrubou silou na dostatečně silné heslo by se mohl stát útok hrubou silou na příliš krátký zbytek dostatečně silného hesla.
12.11.2014 17:27 Peter
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Nooo - toto je veľmi rozumný názor. Len sa pýtam - pri HeartBleed, aký je rozdiel: odchytím heslo, neodchytím kľúč a vstúpim priamo do sedenia? A ako je to s tym Poodle a časťou hesla?

Veľmi pekne ďakujem.
12.11.2014 17:59 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
"vstupim do sedenia" - to musi byt velmi zaujimavy druh pohybu. Slovencina je krasna.
If you hold a Unix shell up to your ear, you can you hear the C.
12.11.2014 18:58 Filip Jirsák
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Při HeartBleed bylo možné přečíst část paměti serveru, kde mohlo být zrovna heslo uložené. To je vše, nabourat se přímo do komunikace nebylo možné. Poodle umožňoval opakovaným zasíláním velmi podobných požadavků (sestavených útočníkem) dešifrovat malou část komunikace. Je znám popis útoku pro HTTPS, kde útočník může sestavit požadavek, jaký potřebuje (může volit např. název a obsah cookies, čímž ovlivní jak délku požadavku, tak může požadavek postupně po jednom bitu měnit), a díky JavaScriptu v prohlížeči může útočník ty požadavky relativně snadno vygenerovat v kontextu uživatele, na kterého útočí. Donutit někoho, aby podobným způsobem poslal desítky specifických požadavků přes SSH je mnohem těžší - ale netvrdil bych, že je to nemožné.
Jendа avatar 12.11.2014 20:25 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Implementovat s HeartBleedem vstoupení do sezení není úplně triviální, nejspíš by to i vyžadovalo MITM.
Jendа avatar 12.11.2014 20:24 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Zrovna v případě HeartBleed je rozdíl mezi heslem a klíčem rozdíl v tom, zda by útočník měl možnost získat váš účet nebo ne (pokud by taková chyba byla ve vašem SSH serveru). V případě Poodle by zase útočník možná mohl získat alespoň část hesla, takže z útoku hrubou silou na dostatečně silné heslo by se mohl stát útok hrubou silou na příliš krátký zbytek dostatečně silného hesla.
Na druhou stranu zase v případě debianího generátoru klíčů bylo lepší heslo.
13.11.2014 08:16 Filip Jirsák
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
To je pravda, nicméně je snazší napsat bezchybný generátor klíčů než bezchybný SSH server. Takže statisticky bude víc chyb, kde bude lepší mít klíč, než těch, kde bude bezpečnější heslo.
12.11.2014 18:12 Robot
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Odpovědět | | Sbalit | Link | Blokovat | Admin
Za předpokladu, že je přihlašování klíčem bezpečnější/lepší, jaký jsou bezpečný praktiky skladování?
12.11.2014 19:05 Fenry
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Něco takového?

SmartCard
Jendа avatar 12.11.2014 20:12 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Odpovědět | | Sbalit | Link | Blokovat | Admin
Hlavní problém je v tom, že se musíš ke každému počítači hlásit jiným heslem. A dobře si kontrolovat, co je to za stroj (vazbou fingerprint:ipadresa), abys heslo náhodou neposlal někam jinam.
hardwarové kľúče typu yubikey (tu je to jasné, že bezpečnosť je na úplne inej úrovni)
Povídej, přeháněj. Zatím v případě, že uživatel, který spustil můj software pro distribuované výpočty, používá yubikey, prostě jenom počkám, až se na vzdálený server přihlásí, k SSH se připojím přes gdb a příkazy na vzdálený stroj pošlu tak.
12.11.2014 21:29 pavele
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
To asi ne, aspoň v případě OpenSSH 2 v okamžiku narušení/vkládání příkazů "man in the middle" dojde k okamžitému ukončení relace.
Jendа avatar 12.11.2014 21:37 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Bezpečnsť SSH -> heslo vs. kľúč
Server to nemá jak poznat a klient je kompromitovaný. V podstatě mu stačí na chvilku ukrást stdin a něco tam napajpovat (předtím je teda potřeba zajistit, že je zrovna uživatel třeba v shellu, a ne v nějaké aplikaci). Nebo si nechat vyrobit další kanál a dělat si co chci.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.