Náhodná data jako zdroj bezpečí v RFC 4086
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Náhodná data jako zdroj bezpečí v RFC 4086Náhodná data jako zdroj bezpečí v RFC 4086

 

Náhodná data jako zdroj bezpečí v RFC 4086

Google       Google       3. 8. 2006       10 486×

Perfektní bezpečnost je samozřejmě jen těžko dosažitelná, přesto současné algoritmy nabízejí poměrně spolehlivý stupeň utajení – ať už v podobě obligátního šifrování, steganografie, nebo dalších technik. Základem bezpečnosti se v mnoha případech stávají dostatečně náhodná data, jejichž pořízení nemusí být vždy až tak jednoduché. Ucelené informace o snadno dostupných zdrojích entropie, jejich využití i (pseudo) náhodných číslech shrnuje RFC s pořadovým číslem 4086 a výmluvným názvem Randomness Requirements for Security.

Kolik náhody je zapotřebí?

Současný návrh kryptografického softwaru velice často trpí nedostatkem zdrojů náhodných dat, což představuje velký problém pro celou navazující oblast bezpečnosti. Nemálo bezpečnostních systémů je totiž pouze natolik bezpečných jako generování odpovídajících tajných a zároveň náhodných parametrů. Za použití pseudonáhodných postupů pro generování tajných veličin je možné dospět až do kritické situace nežádané „pseudobezpečnosti“.

Požadavky na náhodné veličiny se odvíjejí od povahy konkrétní kryptografické funkce. Například klasický algoritmus RSA požaduje unikátní náhodné veličiny pouze při prvotním generování nové dvojice šifrovacích klíčů, s jejichž pomocí v budoucnu může být podepsáno libovolné množství zpráv. Naproti tomu algoritmus DSS si vynucuje použití náhodných veličin při každém podpisu a konečně perfektní „one-timepad“ vyžaduje náhodnost během celého průběhu šifrování původní zprávy.

Další problém je v kvantifikaci dostatečné entropie, tedy kolik náhodnosti je a do budoucna ještě bude zapotřebí. Pohledem na současné počítače lze nalézt několik poměrně (za určitých okolností) spolehlivých zdrojů náhodnosti, které pokrývají například data získaná ze zvukových a video zařízení, rotujících pevných disků apod.

V hlavní roli hardware i software

Podle odkazovaného RFC 4086 je možné ze zvukového vstupu získat náhodná data analýzou dat bez připojeného vstupního zařízení, tedy například zachytáváním a následnou digitalizací analogového zvukového vstupu bez zapojeného mikrofonu. Podobná situace nastává také v případě video vstupu, kdy lze použít a dále zpracovat obraz z objektivu cloněného nepropustnou krytkou. V obou případech se jedná o zdroj potenciálně náhodných dat, nicméně je zapotřebí ověřit jejich korektnost – entropie může být ovlivněna chybou hardwaru, vlivem vnějšího prostředí a dalšími okolnostmi.

Běžný počítačový hardware však poskytuje také celou řadu dalších unikátních informací, jež ale nemusejí být natolik náhodné, jak se na první pohled zdá. Kupříkladu odvozování jakýchkoli dalších „náhodných“ dat z MAC adresy síťového adaptéru není zdaleka nepředvídatelné – pokud obchodní společnost bude zároveň vyrábět síťové adaptéry i celé počítačové sestavy, dá se předpokládat, že do druhého artiklu vhodně zařadí svůj prvně jmenovaný produkt. Tím se na určitých sestavách značně snižuje náhodnost spektra dat získaných z informací síťové karty.

Svět entropie samozřejmě není a ani nemůže být živ z čistě hardwarových zdrojů dat. Asi každý pokročilý koncový uživatel si již setkal s výzvou softwaru o co možná nejnáhodnější pohyb myší nebo psaní na klávesnici. Jedná se o efektivní využití běžné interakce počítač-uživatel, která může přinést požadované ovoce. Bohužel zde platí známá pravda, že uživateli může být výrazně doporučováno, nikoliv striktně přikazováno, takže náhodnost závisí čistě na spolehlivosti lidského faktoru.

Náhodně napříč platformami

Pokud nelze zajistit zdroj dostatečně náhodných dat, přichází na řadu výpomoc v podobě takzvané mixující funkce. Opět s odkazem na původní RFC 4086 ji lze definovat jako funkci, která zachovává jakoukoli entropii obsaženou v libovolném z původních zdrojů, při silnějším požadavku pak na výstupu dává nelineární kombinaci všech vstupů. Jinými slovy se dá říct, že změna jednoho vstupního bitu zajistí změnu kolem poloviny výstupních bitů, přičemž nelze předpovědět korespondenci mezi změnou a výstupem. Za jeden z příkladů mixujících funkcí lze zvolit třeba kryptografický standard AES či některé hashovaní funkce. Jakmile je k dispozici dostatečně kvalitní zdroj náhodných dat, lze je použít jako takzvané semínko (seed) pro další generování.

Například Americký DoD pro tvorbu hesel doporučuje použití DES v módu OFB (Output Feedback), kdy je prvotní inicializační vektor vytvořen z aktuálních systémových hodnot (datum, čas, identifikátor uživatele atd.). Poté je podobným způsoben určen klíč, například z hodnot registrů přerušení či systémových čítačů. Konečně jako otevřený text do celého šifrovacího soukolí vstupuje 64 bitů, které mohou odpovídat 8 osmibajtovým znakům napsaným na klávesnici.

Z dalších příkladů generátorů stojí za zmínku třeba unixový /dev/random, který svou nepředvídatelnost staví na událostech zpracovávaných jádrem. Jedná se tak o přerušení při stisku kláves, zápis na disk, pohyb myší apod. Na platformě Windows zdroj náhodnosti představuje CryptAPI, které uchovává semínko spojené s každým uživatelem. Při zavolání konkrétní funkce CryptGenRandom je toto semínko spojeno s aktuálními hodnotami, kterými mohou být identifikátory procesu, vlákna, obsah paměti apod.

Generování náhodných dat představuje velkou výzvu a na jeho spolehlivosti ve velké míře závisí bezpečnost celého softwaru. Za použití hardwarových zdrojů je nutné brát v úvahu možné poruchy, aktuální prostředí provozu a nezanedbávat testování. V případě softwarového řešení velká část generování spadá na bedra aktuálních hodnot systémových proměnných, stejně tak interakce s uživatelem. Pokud už se podaří získat dostatečně náhodná data, nic nebrání jejich použití v kryptografických algoritmech a budování zase o něco bezpečnějšího softwaru.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Lukáš ChurýLukáš je šéfredaktorem Programujte, vyvíjí webové aplikace, fascinuje ho umělá inteligence a je lektorem na FI MUNI, kde učí navrhovat studenty GUI. Poslední dobou se snaží posunout Laser Game o stupeň výše a vyvíjí pro něj nové herní aplikace a elektroniku.
Web     Twitter     Facebook     LinkedIn    

Nové články

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Reklama autora

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý