Co když ztratím SSH klíč?

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Co když ztratím SSH klíč?
« kdy: 28. 01. 2014, 17:48:12 »
Zdravím,

přihlašuju se všude svým SSH klíčem s heslem (soubor id_rsa, generoval mi ho kdysi na mym kompu kámoš). Vím,ž e je to privátní klíč a že ho nemám ztratit nebo si ho nechat přímo vzít. Aby měl ten klíč význam, nosím ho stále s sebou (abych se mohl kdykoliv připojit). Logicky ho mám v mobilu (odkud se připojuju) a v NTB.

Otázky:
Co by zloděj/útočník získal, kdyby se mu můj privátní klíč dostal do ruky? Mám to přece ještě zaheslovaný...
Co bych já měl dělat, kdybych se dozvěděl, že došlo ke kompromitaci?
Co bych já měl dělat, kdybych přišel o klíče co mám u sebe a neměl okamžitý přístup k záloze klíče a tím pádem nemohl uryleně provést kroky z předchozí odpovědi?

Zkuste to laicky a buďte na mě hodní :-)
« Poslední změna: 28. 01. 2014, 18:05:06 od Petr Krčmář »


DgBd

  • ****
  • 282
    • Zobrazit profil
    • E-mail
Re:Co když ztratím SSH klíč (získá ho někdo jiný)?
« Odpověď #1 kdy: 28. 01. 2014, 17:56:52 »
1. pokud je to rozumné heslo, tak nic
2. zastavit stroj, obnovit ze zálohy a smazat klíče z authorized_keys
3. modlit se a provést krok 2.

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Co když ztratím SSH klíč (získá ho někdo jiný)?
« Odpověď #2 kdy: 28. 01. 2014, 18:03:41 »
DgBd:
1. jasné ;-)
2. Lze se přihlásit na stroj a okamžitě mu zakázat přijmout další SSH spojení? Ideálně to říct přímo sshd, ne pomocí iptables nebo dalších externích programů...
3. jasné :-)

Ehm... další dotaz:
Když má privátní klíč na každym stroji, ze kterýho se můžu přihlašovat na jinej (tj. na každym stroji.), je něco špatně, co? místo toho používat ssh-agent?

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Co když ztratím SSH klíč (získá ho někdo jiný)?
« Odpověď #3 kdy: 28. 01. 2014, 18:04:56 »
K řpedchozímu jen upřesním - slovem kompromitace jsem měl na mysli zcizení klíče, ne nalogování cizí osoby na server s pomocí mého klíče.

DgBd

  • ****
  • 282
    • Zobrazit profil
    • E-mail
Re:Co když ztratím SSH klíč?
« Odpověď #4 kdy: 28. 01. 2014, 18:15:11 »
2. zastavit ssh démona.
Kód: [Vybrat]
service ssh stop

vzdálené přihlášení zůstane živé, další spojení nepřijímá


Re:Co když ztratím SSH klíč (získá ho někdo jiný)?
« Odpověď #5 kdy: 28. 01. 2014, 18:21:15 »
Když ztratíte klíč od domu, musíte vyměnit zámek u dveří. Když ztratíte privátní klíč, je to v principu stejné.

Musíte si vygenerovat novou kombinaci soukromého a veřejného klíče a na všechn službách, které tímto privátním klíčem odemykáte, musíte nastavit nový veřejný klíč. Soukromý klič si necháte jen u sebe a nikde jinde jej nenahráváte (ani na těch službách - tam jsou jen veřejné kliče).

Popsaná procedura odpovídá koupi nového zámku s klíčem a jeho instalace do dveří.

Pokud máte na soukromém klíči nastaveno dobré a dost dlouhé heslo (passphraze), není s výměnou takový spěch. Nicméně útočník může toto heslo časem prolomit (heslo je totiž mnohem kratší než samotný klíč), takže je výměna nutná. Pokud chcete bezpečnost, doporučuju používat delší passphraze, zakázat možnost zalogování na server heslem (nyní mluvím o ssh loginu) a ponechat jen login přes soukromý klíč.

Postup výměny klíčů je u každé služby jiný (u ssh typicky stačí vyměnit odpovídající řádek v ~/.ssh/authorized_keys + zkontrolovat, že se klíče neválejí někde jinde na serveru - jejich ponechání v ~/.ssh je typická chyba). Pro výměnu klíče není třeba resartovat sshd, při změně nastavení už pochopitelně ano. Pokud by byl kompromitován samotný server - útočník se nalogoval - je situace o několik řádů složitější, než při zprátě klíče bez nalogování útočníka.

Možná jsem na něco zapomněl - nechť mě někdo případně doplní.

pyskoptak

Re:Co když ztratím SSH klíč?
« Odpověď #6 kdy: 28. 01. 2014, 20:27:04 »
Presne pro pripad kompromitace klice se hodi mit SSH nastaven jak pro klic tak i pro heslo. Zaplatpambu od nejake verze uz to jde.

Rejpal

Re:Co když ztratím SSH klíč?
« Odpověď #7 kdy: 28. 01. 2014, 20:58:59 »
Ano zaplatpanbu, povolit SSH pouzivat prosta hesla bez klicu znamena vyrobit bezpecnostni diru jako hrom. Ted uz jen staci, abyste zverejnil svoji IP adresu, takze ostatni mohou pripojit vas pocitac do sveho cloudu a pak ho zacit poradne vyuzivat, jak byste to sam nesvedl.

Pro pripad kompromitace je nutno mit pripravenu v zaloze dalsi sadu klicu na off-line miste, odkud je tezko nekdo zcizi (idealne napr. zakopany trezor pod stromem na zahrade)

Re:Co když ztratím SSH klíč?
« Odpověď #8 kdy: 28. 01. 2014, 21:12:26 »
Co by zloděj/útočník získal, kdyby se mu můj privátní klíč dostal do ruky? Mám to přece ještě zaheslovaný...
Nevím přesně, jak vypadá ten zaheslovaný soubor - zda po "odheslování" je hned zřejmé, zda bylo heslo správně (případně se to dá určit s nějakou pravděpodobností, nebo zda pod odheslování i správným heslem dostanu něco, co vypadá jako náhodná změť znaků, a musím to zkusit poslat na server, od kterého se teprve dozvím odpověď (správný/špatný klíč).

Pokud platí první případ, je problém v tom, že lokálně je možné ta hesla zkoušet mnohem rychleji, a útočník v tom není nijak omezen. Klidně to louskání může distribuovat na víc počítačů - a pak i na první pohled ne úplně slabá hesla jsou prolomitelná. Opravdu silná hesla odolají i tomuhle útoku.

Pokud platí druhá varianta, musí útočník zkoušet klíč proti vašemu serveru. Což jednak půjde výrazně pomaleji, jednak tam můžete mít nějaké limity, že pokud někdo zkouší po milionté špatný klíč, asi bude něco špatně. Je to pak vlastně (co do možností útočníka) stejné, jako byste se nepřihlašoval klíčem, ale heslem stejným, jako je to heslo ke klíči.

pyskoptak

Re:Co když ztratím SSH klíč?
« Odpověď #9 kdy: 28. 01. 2014, 21:26:15 »
Rejpale, ja za to nemuzu, ze nemate prehled. Takze: klic a zaroven heslo pro lidske ucty, jen klic pro skripty.

Re:Co když ztratím SSH klíč?
« Odpověď #10 kdy: 28. 01. 2014, 21:45:45 »
Mám za to, že passphraze slouží k ochraně libovolného použití klíče. Tj passphraze je třeba zadat i pokud klíč loaduju do ssh-agenta nebo s ním nějak manipuluju, konvertuju apod (ssl).

Jinak vyžadovaná kombinace klíč + passphraze + ssh heslo + případně omezení na ip adresu + případně port knocking je asi ideální, ale komfort přihlášení se už lehce zhoršuje :-) Jinak samozřejmě souhlasím, že ponechání plaintext hesla jako dostačujícího oměření pro ssh přihlášení je samozřejmě dost rizikové, roboti běžně ssh porty zkouší - 10x, 100x, 1000x denně zkoušejí různé kombinace přihlašovacích jmen a hesel. Při blbém heslu je šance na kompromitaci 100%.

Čemu by mělo vadit povolené přihlášení pouze a jedině přes privátní klíč nevím. Přijde mi to celkem dobrý kompromis.

pyskoptak

Re:Co když ztratím SSH klíč?
« Odpověď #11 kdy: 28. 01. 2014, 21:49:15 »
Kradez klice malokdo oznamuje majiteli, ze :)

Jenda

Re:Co když ztratím SSH klíč?
« Odpověď #12 kdy: 28. 01. 2014, 22:18:16 »
Ano zaplatpanbu, povolit SSH pouzivat prosta hesla bez klicu znamena vyrobit bezpecnostni diru jako hrom. Ted uz jen staci, abyste zverejnil svoji IP adresu, takze ostatni mohou pripojit vas pocitac do sveho cloudu a pak ho zacit poradne vyuzivat, jak byste to sam nesvedl.
fry.hrach.eu|46.167.245.64|2a01:5e0:36:5001::22

Běží tam pod uživatelem jenda IRC klient, když do něj napíšeš Bitcoinovou adresu, pošlu ti na ni 10mBTC. Počítají se pouze útoky úspěšné díky zapnutému přihlašování heslem v sshd (pokud to nebude zřejmé, tak uveď, jak jsi úspěchu dosáhl).

Pozn. nespouštějte tam prosím slovník, hesla jsou typu hLSNsuUnbWaa4GTaw, ta ve slovníku nejspíš nemáte.

troll

Re:Co když ztratím SSH klíč?
« Odpověď #13 kdy: 28. 01. 2014, 23:28:27 »
fry.hrach.eu|46.167.245.64|2a01:5e0:36:5001::22

Běží tam pod uživatelem jenda IRC klient, když do něj napíšeš Bitcoinovou adresu, pošlu ti na ni 10mBTC. Počítají se pouze útoky úspěšné díky zapnutému přihlašování heslem v sshd (pokud to nebude zřejmé, tak uveď, jak jsi úspěchu dosáhl).

Pozn. nespouštějte tam prosím slovník, hesla jsou typu hLSNsuUnbWaa4GTaw, ta ve slovníku nejspíš nemáte.
Tjn, za nieco ako 10^(10^20) rokov ti niekto napise, ze uz to ma bruteforcom ;-). A ked extrapolujeme rast BTC do tej doby, tak by som tych 10mBTC urcite neposielal :D.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Co když ztratím SSH klíč?
« Odpověď #14 kdy: 29. 01. 2014, 00:55:36 »
Brani vam neco, abyste na kazdem stroji mel jeste druhy klic? Kopii muzete treba za bezmesicne noci zakopat u hrbitovni zdi a pri kompromitaci ci uplne ztrate klice 1 se jednoduse prihlasite (podle okolnosti kliem 1 nebo 2) a klic 1 ze vsech stroju vymazete a pridate tam klic 3, ktery si vygenerujete.