it-swarm-eu.dev

Zabezpečení soukromého klíče chráněného heslem

Pokud útočník získá soukromý klíč, který byl vytvořen bez přístupového hesla, zjevně získá přístup ke všem chráněným tímto klíčem. Jak bezpečné jsou soukromé klíče nastaveny s přístupovou frázi? Pokud útočník ukradne klíč chráněný heslem, jak je těžké tento klíč ohrozit? Jinými slovy, je soukromý klíč s dobrou přístupovou frází bezpečný, i když k němu má přístup útočník?

45
jrdioko

S OpenSSL, OpenSSH a GPG/PGP bude balicí algoritmus dostatečně silný, aby se s tím nemusíte starat (a pokud se s tím budete muset starat, pak budete mít větší problémy, a to je nejméně z vašich starostí) .

Stejně jako jakékoli heslo nebo přístupové fráze, závisí to na síle přístupové fráze. Přístupová fráze 40 znaků je stejně tvrdá jako hrubá síla jako 256bitový klíč (protože ASCII používá pouze 7 bitů). Platí zde stejná pravidla pro silná hesla:

  • Náhodné je lepší
  • Delší je silnější
24
bahamat

Jakmile je šifrovaný blok dat v rukou útočníka, nikdy není bezpečný navždy - je to otázka, jak dlouho a jaké prostředky jsou k dispozici crack it.

Zde je třeba zvážit:

  • síla balicího algoritm - Jsem ochoten uvěřit bahamatům o OpenSSL, OpenSSH a GPG/PGP - to jsou docela dobře prověřené komponenty.

  • velikost klíčového prostor - tj. - velikost a složitost hesla - platí typické náklady na odhady hrubé síly. Některé formy ukládání klíčů omezují typy znaků, které lze použít v hesle - například JKS (Java Key Store) eliminovalo několik zvláštních znaků, čímž se snížil potenciál velikost prostoru pro klíče Také si dávejte pozor na systémy, které oříznou velikost klíče na určitý počet znaků.

  • náklady na pokus jak výpočetně drahé je pokusit se rozbalit klíč? To zpomalí pokus o brutální sílu.

  • jaký algoritmus? - záleží na tom, jak je zabezpečený soubor uložen - je zřejmé, jaký algoritmus byl použit pro šifrování?

  • je k dispozici šifrovací text, který lze porovnat s? Jak bude útočník vědět, že je úspěšný - jaký je jeho testovací mechanismus? Jedním z výkonnějších prvků zachycení úložiště klíčů je to, že útočník může být schopen vyzkoušet své pokusy bez další detekce systémem ukládajícím klíč.

  • Kolik zdrojů má útočník k dispozici? - analýza hrozeb obecně zahrnuje analýzu toho, jaké jsou prostředky útočníka. Má 1 počítač? Banka počítačů? A celá virová síť ukradené energie procesoru, kterou má k dispozici? Záleží na tom, zda mluvíte o 13 letém dětském skriptovém dítěti nebo o nepoctivém národě.

  • jak dlouho, dokud se klíč nezmění? & jak dlouho musí data zůstat chráněna? - pokud útočníkovi trvá déle, než crackuje úložiště hesel, než užitečnost dat uvnitř obchod, pak se obchod považuje za dostatečně bezpečný

15
bethlakshmi

Podle Martin Kleppmann :

ochrana soukromého klíče [výchozí OpenSSH] má dvě slabiny:

  • Algoritmus digest je pevně zakódován na MD5, což znamená, že bez změny formátu není možné upgradovat na jinou hashovací funkci (např. SHA-1). To by mohl být problém, pokud se ukáže, že MD5 není dost dobrý.
  • Funkce hash se použije pouze jednou --- nedochází k roztahování. To je problém, protože MD5 a AES se dají rychle spočítat, a proto je krátká přístupová fráze docela snadno přerušitelná hrubou silou.

Pokud se váš soukromý klíč SSH někdy dostane do nesprávných rukou [a pokud byl chráněn heslem pomocí výchozího nastavení OpenSSH a pokud] je vaše heslo slovníkem slovo, může být pravděpodobně [dešifrováno] během několika sekund. ... Ale je tu dobrá zpráva: můžete upgradovat na bezpečnější formát soukromého klíče a vše pokračuje!

Dále vysvětluje, jak používat „PKCS # 8“ podle RFC 5208 k získání bezpečněji šifrovaného soukromého klíče:

$ mv test_rsa_key test_rsa_key.old
$ openssl pkcs8 -topk8 -v2 des3 \
    -in test_rsa_key.old -passin 'pass:super secret passphrase' \
    -out test_rsa_key -passout 'pass:super secret passphrase'
7
sampablokuper

Šifrování soukromého klíče OpenSSH je zranitelné?

Ochrana soukromého klíče pomocí přístupové fráze je třeba provést opatrně, jak je tomu obvykle v případě kryptomateriálů. Obecně je přístupem šifrování soukromého klíče symetrickým algoritmem pomocí klíče odvozeného od přístupové fráze pomocí funkce odvození klíče. Klasický příklad vhodné funkce odvození klíče je PBKDF2 z RFC 2898 - PKCS # 5: Specifikace kryptografie na základě hesla verze 2.0 .

Podle prezentace Scrypt Colin Percival , "OpenSSH používá MD5 jako funkci odvození klíčů pro přístupová fráze v klíčových souborech". Z kontextu se zdá, že říká, že nepoužívají soli nebo iterace, což je děsivé, vzhledem k tomu, jak rychle je v dnešní době násilné násilí. Existuje několik různých formátů, které OpenSSH používá k ukládání soukromých klíčů, takže bych rád věděl některé další podrobnosti a přesně, jaké verze jsou ovlivněny, ale to zní jako vzdálený výkřik od PBKDF2 nebo jiného iterovaného , solené techniky, které existují od roku 1978 .

Vidím odkaz, který tvrdí, že PGP a GPG používají při ochraně soukromého klíče uloženého v souboru iterační/protahovací techniky, ale podrobnosti ještě neznám.

4
nealmcb