Otázka:
Je možné bezpečně ukládat hesla pomocí reverzibilního šifrování?
Steve
2011-08-10 06:26:42 UTC
view on stackexchange narkive permalink

Všichni říkají, že při ukládání hesel musíte použít nevratný hash, takže i když dojde k úniku databáze, hesla jsou stále bezpečná. Zajímalo by mě, jestli vůbec existuje použití reverzibilního šifrování k ukládání hesel.

Přinejmenším byste museli vyžadovat, aby bylo zneužito jakékoli zneužití databáze (přístup SQL, přístup k shellu serveru atd.) ) nepropustí šifrovací klíč a že pokud máte prozrazenou databázi, nebylo by rozumně možné zjistit šifrovací klíč pomocí známého prostého hesla.

Nemyslím to vážně, protože to vypadá, že i když je to technicky možné, bylo by těžké to udělat správně, ale vypadá to jako zajímavý problém.

Na naší sesterské stránce byla nedávno položena související otázka týkající se kryptografie: [Jak mám ukládat hesla, která musí být dostupná ve formátu prostého textu?] (Http://crypto.stackexchange.com/q/345/58)
čtyři odpovědi:
gowenfawr
2011-08-10 08:21:22 UTC
view on stackexchange narkive permalink

Reverzibilní šifrování se pro hesla běžně nepoužívá, protože specifické požadavky a parametry ověřování pomocí hesla nejsou kompatibilní se slabostí reverzibilního šifrování.

Primární slabost reverzibilního šifrování je jednoduchá: pokud je klíč ohrožen , šifrovaná data jsou ohrožena, tečka.

Hesla se používají neustále, kdykoli se uživatelé přihlásí. Proto musí být proces ověřování schopen neustále přistupovat k pověření uživatelů automatizovaným způsobem , bez obstrukčních ovládacích prvků. To znamená, že klíč pro reverzibilní šifrování musí být neustále na disku nebo v paměti. Pokud je tento program, disk nebo paměť nějakým způsobem kompromitován, pak jsou všechna tato reverzibilně šifrovaná hesla narušena jedním tahem.

Naproti tomu zvažte použití nevratných hashů. Pokud dojde k ohrožení programu, disku nebo paměti, útočník získá „uzamčené“ hodnoty hash a není zde žádný klíč. Mohou pak útočit na další - známý útok na šifrovaný text, hrubou silou atd. - ale dosud „nevyhráli“.

Stále používáme reverzibilní (řekněme klíčové) šifrování - disky, soubory , e-mailové přílohy. Všechna tato použití mají však společné to, že podporují (pokud to nevyžadují) lidskou intervenci jako klíč.

Nejsem si jistý, proč se na to ptáte, ale co hybridní model? Vezměte v úvahu, že by mohlo být rozumné uložit obojí reverzibilní i nevratný šifrovací text pro hesla uživatelů. Když jsou hesla vytvářena, ukládejte dvě šifrované verze: jednu vytvořenou pomocí jednosměrné hashovací funkce a druhou vytvořenou asymetrickým šifrovacím algoritmem („kryptografie veřejného klíče“). Všechny procesy automatizovaného ověřování používají pro účely ověřování nevratné hodnoty hash. Polovinu „veřejného klíče“ ponechejte v systému pro generování šifrovaných hesel pro systém a polovinu „soukromého klíče“ dvojice uložte offline . V případě potřeby prostého textu hesla přepněte šifrované heslo do režimu offline a dešifrujte ho příslušným klíčem. Dokud dešifrovací klíč není přístupný autentizačnímu systému, nemůže útočník využít skutečnosti, že jste k ukládání hesel ve formátu prostého textu použili „reverzibilní“ šifrování.

To vám pomůže pouze v případě potřeby přístup k heslům ve formátu prostého textu samozřejmě není automatizovaná potřeba. Ale zdá se mi to jako chytrý nápad.

this.josh
2011-08-10 13:39:21 UTC
view on stackexchange narkive permalink

Je možné bezpečně ukládat hesla pomocí reverzibilního šifrování?

Ano, ale je to mnohem obtížnější a vyžaduje mnohem větší úsilí a náklady. Klíčování je těžké udělat dobře.

Chcete-li podporovat reverzibilní šifrování (nemusí to být nutně symetrické , jak uvádí poznámky @goenfawr), potřebujete alespoň jeden klíč (dva pro kryptografii veřejného klíče). Musíte vygenerovat klíč, bezpečně jej uložit, chránit před poškozením nebo zničením, získat jej pro použití, chránit jej, když se používá, a pravidelně jej vyměňovat.

Významnou součástí problému je, jak chránit klíč, když se nepoužívá. Pokud zašifrujete klíč, potřebujete další klíč k jeho dešifrování. V takovém případě jste zpět tam, kde jste začali. Jiné metody ochrany používají pro parametry zabezpečení speciální hardware nebo zabezpečené operační systémy nebo dokonce vlastní počítače se samostatnou pamětí a procesory. Všechna tato řešení vyžadují další náklady na školení a podporu.

Porovnejte tato řešení s použitím maloobchodního počítače, maloobchodního operačního systému a hashovací funkce.

Rory McCune
2011-08-10 21:41:22 UTC
view on stackexchange narkive permalink

Jedna věc, kterou je třeba přidat k existujícím odpovědím, je, že je možné použít symetrické (reverzibilní) šifrování pro ukládání tajemství (včetně hesel), ale je to trochu složitější / nákladnější.

Dobrým příkladem Jedná se o sítě ATM / Cash Machine, které tradičně používaly symetrickou správu klíčů (i když se přesouvají od řešení založeného na PKI).

Klíčem (není určen k použití slovní hříčky) je, že šifrovací klíče jsou uloženy na důvěryhodném místě, v tomto případě je třeba použít hardwarový bezpečnostní modul (HSM) a přísné postupy týkající se načítání a správy klíčů následoval, aby klíče zůstaly tajné.

Klíčovým bodem zde, jak jste zmínili, je, že někde po cestě musí existovat delegování důvěry. Ať už je to delegování na databázi nebo na člověka, * něco * v řetězci musí být implicitně a nakonec 100% důvěryhodné, nebo řešení není zabezpečené.
stejně jako u každého řešení je vyžadována úroveň důvěryhodnosti, i když bych řekl, že 100% nelze věřit ničemu, je to všechno relativní.
A je tu jádro práce v oblasti bezpečnosti. Některé součásti musí být 100% důvěryhodné, ale je nemožné věřit čemu 100%. Úkolem profesionála v oblasti zabezpečení je proto porozumět (a komunikovat!), Jak moc můžete důvěřovat různým komponentám v řetězci, a určit, jak tyto hodnoty dostat dostatečně blízko sebe. Definování „dostatečně blízko“ je těžká část.
nik3daz
2011-08-10 06:57:13 UTC
view on stackexchange narkive permalink

Podívejte se na wiki stránku pro šifry. I když existuje mnoho bezpečných šifer, vždy existuje riziko úniku klíče. Použitím jednosměrného hashu se tomuto riziku vyhnete tím, že nebudete mít klíč.

Princip bezpečnostního inženýrství spočívá v minimalizaci informací, které lze získat, vzhledem k ohrožení systému.

Šifra nedělá rozdíl, když je klíč ohrožen.


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...