Ony jsou i zařízení například do USB, který dokážou vygenerovat sadu klíčů, privátní se nedá vyčíst a operace s ním se dělají tak, že se zapíše soubor do něj (např. standardní mass storage) a přečte se zpátky zašifrovaný/rozšifrovaný. Veřejný klíč je tam normálně dostupný.
Tam samo takový útok nemá smysl. Tam bych spíš šel po řadičích USB, než po CPU.
Obe, ktere se s privatnim klicem obvykle delaji: podepsani a desifrovani zpravy. Token vam nikdy privatni klic neda, ale na pozadani s nim tyhle operace udela. Takhle funguji vsechny tokeny i HSM moduly. Poslete jim zpravu, pak zadate treba na PIN padu heslo a vrati se vam vysledek. Klic v pameti pocitace nikdy neni, nikdy ho neuvidite.
Privatni klic se vygeneruje na externim zarizeni (token, smart karta, HSM...) a nikdy ho neopusti. Nedostane se do pameti pocitace, procesor s nim nepracuje. Nikdo ho z toho zarizeni nedostane. Pokud ho chces pouzit, musis zpravu predat tomu zarizeni a to na ni operaci samo provede. Zarizeni je pripojene pomoci nejake linky, USB, PCI Express, NFC, Bluetooth a podobne. Prave proto se tyhle moduly pouzivaji, protoze zadna hardwarova ani softwarova chyba v PC neohrozi privatni klice.
@Kentan z Montargi
Představ si to tak (a není to daleko od pravdy), že přes to USB se pošle nějaký text do jiného počítače. Ten jiný počítač je ten dongle. Má svůj procesor, svou vnitřní paměť, ... a nic z toho není přístupné (přes USB). Jediné, co tam po USB, běhá, je text který chceš (de)cryptovat. Putuje jednou tam a jednou zpět (upravený). Privátní části klíče nikdy neopustí ten dongle pčítač.
Tam není šance se dovnitř dostat ... jedině pokud by byl bug uvnitř toho dongle počítač a musel bys na to napsat speciální útok (na nějaký známý bug - ale žádné známé nejsou) ale to je jiná otázka (a navíc je ten dobgle počítač celkem jednoduchý, takže není tolik prostoru pro chyby)
Taky USB kluc ma exposnute API. Ty mu posles PIN a string ktory chces hashnut. Ked je PIN spravny, tak si zariadenie otvori storage kde je private key a tym zahashuje string a vrati ti ho. Tieto zariadenia maju vlastny procesor, takze netreba pouzivat procesor z pocitaca. A ku storage v USB zariadeni nie je ziaden priamy pristup z vonku, ma k nemu access len procesor na zariadeni.
Ne hash, ale crypt/decrypt.
Hash je jenom schování zprávy do jednoho čísla definované délky s tím, že nejde zprávu dostat nazpět. A to můžeš udělat kdekoliv bez prozrazení tajemství*. Resp. pokud něco hashuješ, máš to v paměti v surovým stavu a nepotřebuješ tajemství.
* - pokud neděláš hash z kombinace zpráva + sůl + klíč
AES ani RSA nejsou hashe. Hash je jednosměrný, pokud útočník není schopen odhadnout preimage. To se může stát, pokud je málo variant (například útočník ví, že jde buď o hash z „ano“, nebo z „ne“), případně některá z variant je dostatečně pravděpodobná (například heslo „123456“ nebo heslo shodné s nickem). Pak útočník může zkusit svůj tip a ověřit, zda se trefil.
@ByCzech
Já netvrdil že to jde nebo nejde, ani že jsem odborník na Krypto tokeny. Ty jsi sem zatahl Kryptotokeny o kterých evidentně víš že to mu nepodléhají a máváš pojmy jako "paměť", ale nejsi schopný říct kterou máš na mysli nebo jak je ten token manipulován - zhomotnit se asi nějak nezhmotní a cest jak ho používat bude evidentně více, třeba jak to psal @Petr M.
Takže jaký je vlastně význam tohoto cvičení? Proč si hraješ na to, že se na to "ptáš" ?