Slijede razlike između dviju inačica stranice.
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
racfor_wiki:noise_framework [2021/01/16 19:47] ghorvat [Svojstva Noise Pipes složenog protokola] |
racfor_wiki:noise_framework [2024/12/05 12:24] (trenutno) |
||
---|---|---|---|
Redak 3: | Redak 3: | ||
===== Sažetak ===== | ===== Sažetak ===== | ||
+ | Noise je radni okvir za izgradnju sigurnih kriptografskih protokola baziranih na Diffie-Hellman razmjeni ključeva. \\ | ||
+ | Glavna ideja je da on pruža bazu koju korisnici nadopunjavaju kombiniranjem elemenata skupa osnovnih kriptografskih operacija da bi dobili različita sigurnosna svojstva. To omogućuje stvaranje protokola sa točno onim mogućnostima koje korisnicima trebaju što je idealno za IoT uređaje kojima su potrebni mali i jednostavni protokoli. | ||
+ | |||
+ | Ključne riječi: Noise, Diffie-Hellman, | ||
===== Uvod u protokole za razmjenu ključeva ===== | ===== Uvod u protokole za razmjenu ključeva ===== | ||
Redak 42: | Redak 46: | ||
Noise je radni okvir za izgradnju sigurnih kriptografskih protokola baziranih na Diffie-Hellman razmjeni ključeva. Fokusira se specifično na sigurnosne kanale. | Noise je radni okvir za izgradnju sigurnih kriptografskih protokola baziranih na Diffie-Hellman razmjeni ključeva. Fokusira se specifično na sigurnosne kanale. | ||
- | Glavna ideja Noise radnog okvira je da on pruža bazu koju korisnici nadopunjavaju kombiniranjem skupa osnovnih kriptografskih operacija da bi dobili različita sigurnosna svojstva. Na taj način se olakšava stvaranje novog protokola korisnicima jer ne moraju raditi protokol od nule. Jedna od primarnih | + | Glavna ideja Noise radnog okvira je da on pruža bazu koju korisnici nadopunjavaju kombiniranjem skupa osnovnih kriptografskih operacija da bi dobili različita sigurnosna svojstva. Na taj način se olakšava stvaranje novog protokola korisnicima jer ne moraju raditi protokol od nule. Jedna od primarnih |
Noise zahtjeva minimalan skup osnovnih operacija: | Noise zahtjeva minimalan skup osnovnih operacija: | ||
Redak 50: | Redak 54: | ||
Svaki Noise protokol počinje rukovanjem jedinstvenim uzorkom. Tijekom te faze stranke razmjenjuju DH javne ključeve i obavljaju niz DH operacija. Krajnji rezultat rukovanja je šifrirani kanal koji jamči povjerljivost, | Svaki Noise protokol počinje rukovanjem jedinstvenim uzorkom. Tijekom te faze stranke razmjenjuju DH javne ključeve i obavljaju niz DH operacija. Krajnji rezultat rukovanja je šifrirani kanal koji jamči povjerljivost, | ||
+ | |||
+ | ==== Jezgra Noise sustava ==== | ||
Jezgra Noise sustava je skup varijabla koje održavaju stranke tijekom faze rukovanja, te pravila slanja i primanja poruka rukovanja dobivenih procesiranjem tokena. | Jezgra Noise sustava je skup varijabla koje održavaju stranke tijekom faze rukovanja, te pravila slanja i primanja poruka rukovanja dobivenih procesiranjem tokena. | ||
Redak 70: | Redak 76: | ||
Uzorak poruke dobiva se iz nekog niza tokena iz skupa {‘e’, ‘s’, ‘ee’, ‘es’, ‘se’, ‘ss’, ‘psk’}. | Uzorak poruke dobiva se iz nekog niza tokena iz skupa {‘e’, ‘s’, ‘ee’, ‘es’, ‘se’, ‘ss’, ‘psk’}. | ||
+ | |||
+ | ==== Imenovanje uzoraka ==== | ||
Imena uzoraka sastoje se od dva znaka, a označavaju stanje statičkog ključeva inicijatora i odgovaratelja. | Imena uzoraka sastoje se od dva znaka, a označavaju stanje statičkog ključeva inicijatora i odgovaratelja. | ||
Redak 86: | Redak 94: | ||
Primjeni nekih imenovanih uzoraka: | Primjeni nekih imenovanih uzoraka: | ||
- | |NN():|XX(ss, rs):|KN(s):|IK(s, rs):| | + | ^ NN(): ^ XX(ss, rs): ^ KN(s): |
- | |-> e|::: -> e|-> | + | | -> e \\ <- e, eez | -> e \\ <- e, ee, s, es \\ -> s, se| -> s \\ ... \\ -> e \\ <- e, ee, se | <- s \\ ... \\ -> e, es, s, ss \\ <- e, ee, se| |
- | |< | + | |
- | ||::: -> s, se|-> e|-> e, es, s, ss| | + | |
- | | ::: |::: |<- e, ee, se|<- e, ee, se| | + | |
U prvom primjeru, uzorak NN opisuje neautentificirano DH rukovanje. | U prvom primjeru, uzorak NN opisuje neautentificirano DH rukovanje. | ||
Redak 104: | Redak 110: | ||
===== Noise Pipes složeni protokol ===== | ===== Noise Pipes složeni protokol ===== | ||
- | Do sada se pretpostavljalo da Alice i Bob žele izvršiti jedan Noise protokol izabran od strane inicijatora. Neka to bude Alice. No postoje brojni razlozi zašto bi možda | + | Do sada se pretpostavljalo da Ana i Branko |
Na primjer: | Na primjer: | ||
- | * Alice je možda odabrala protokol baziran na šifriranju, | + | * Ana je možda odabrala protokol baziran na šifriranju, |
- | * Alice je možda poslala zero-RTT šifriranu inicijalnu poruku baziranu na zastarjeloj verziji | + | * Ana je možda poslala zero-RTT šifriranu inicijalnu poruku baziranu na zastarjeloj verziji |
- | Rješavanje takvog scenarija zahtjeva složeni protokol gdje se Bob prebacuje s inicijalnog Noise protokola odabranog od Alice u novi Noise protokol. U takvom složenom protokolu role inicijatora i odgovaratelja bi bili obrnute. | + | Rješavanje takvog scenarija zahtjeva složeni protokol gdje se Branko |
- | Složeni protokoli uvode kompleksnost budući da Alice treba objaviti Noise protokol s kojim počinje i Noise protokole u koje se može prebaciti, a obje stranke moraju ugovoriti sigurnu tranziciju. | + | Složeni protokoli uvode kompleksnost budući da Ana treba objaviti Noise protokol s kojim počinje i Noise protokole u koje se može prebaciti, a obje stranke moraju ugovoriti sigurnu tranziciju. |
Tipični složeni protokol za zero-RTT šifriranje uključuje tri različita Noise protokola: | Tipični složeni protokol za zero-RTT šifriranje uključuje tri različita Noise protokola: | ||
- | * Potpuni protokol je korišten ako Alice ne posjeduje pohranjene informacije o Bobu koje bi omogućile zero-RTT šifriranje, | + | * Potpuni protokol je korišten ako Ana ne posjeduje pohranjene informacije o Branku |
* Zero-RTT protokol koji omogućuje šifriranje podataka u inicijalnoj poruci. | * Zero-RTT protokol koji omogućuje šifriranje podataka u inicijalnoj poruci. | ||
- | * Zamjenski protokol koji je aktiviran ako Bob ne može dešifrirati | + | * Zamjenski protokol koji je aktiviran ako Branko |
Noise Pipes podržava sve iznad navedene slučaje, a sljedeća rukovanja ga definiraju: | Noise Pipes podržava sve iznad navedene slučaje, a sljedeća rukovanja ga definiraju: | ||
- | XX uzorak je korišten za potpuno rukovanje ako obje stranke nisu komunicirale nikad prije, nakon čega će Alice zapamtiti | + | XX uzorak je korišten za potpuno rukovanje ako obje stranke nisu komunicirale nikad prije, nakon čega će Ana zapamtiti |
< | < | ||
-> e | -> e | ||
Redak 134: | Redak 140: | ||
<- e, ee, se</ | <- e, ee, se</ | ||
- | XXfallback je rezervni uzorak korišten za obrnuto rukovanje ako Bob ne uspije dešifrirati početnu IK poruku (recimo ako je promijenio svoj statički ključ). | + | XXfallback je rezervni uzorak korišten za obrnuto rukovanje ako Branko |
< | < | ||
Redak 144: | Redak 150: | ||
==== Svojstva Noise Pipes složenog protokola ==== | ==== Svojstva Noise Pipes složenog protokola ==== | ||
- | Prije nego napišemo svojstva Noise Pipes složenog protokola, definirajmo | + | Dane su sljedeće |
- | + | **Noise Boxes** – zaštićene zasebne poruke (slično kao PGP, NaCl, itd.) \\ | |
- | **Noise Boxes** – zaštićene zasebne poruke (slične kao PGP, NaCl, itd.) \\ | + | **Noise Pipes** – zaštićene interaktivne sjednice (slično kao SSL, SSH, CurveCP, itd.) |
- | **Noise Pipes** – zaštićene interaktivne sjednice (slične kao SSL, SSH, CurveCP, itd.) | + | |
Noise Pipes nadograđuje Noise Boxes protokol, pa nasljeđuje sva njegova svojstva: | Noise Pipes nadograđuje Noise Boxes protokol, pa nasljeđuje sva njegova svojstva: | ||
Redak 166: | Redak 171: | ||
Protokoli poput TLS, IPsec i SSH razvijani su veliki broj godina i zbog njihove kompleksnosti teško ih je nadograđivati s novim kriptografskim funkcionalnostima koje se svakodnevno pojavljuju. | Protokoli poput TLS, IPsec i SSH razvijani su veliki broj godina i zbog njihove kompleksnosti teško ih je nadograđivati s novim kriptografskim funkcionalnostima koje se svakodnevno pojavljuju. | ||
- | Uz veliku popularnost Internet svari, | + | Uz veliku popularnost Internet svari, |
- | Implementacija novog protokola uvijek je morala ići od nule što bi zahtijevalo puno posla. Taj posao bi bio ponavljajući budući da su mnogi elementi poput izvedbe ključa, potvrde ključa, analize sigurnosti, modela sigurnosti, dokaza sigurnosti, | + | Implementacija novog protokola uvijek je morala ići od nule što bi zahtijevalo puno posla. Taj posao bi bio ponavljajući budući da su mnogi elementi poput izvedbe ključa, potvrde ključa, analize sigurnosti, modela sigurnosti, dokaza sigurnosti, |
Noise se pojavio 2015. godine, i rješava upravo te probleme. | Noise se pojavio 2015. godine, i rješava upravo te probleme. | ||
Redak 177: | Redak 182: | ||
Njegov potencijal prepoznaje sve više kompanija koje ga koriste za vlastite projekte: | Njegov potencijal prepoznaje sve više kompanija koje ga koriste za vlastite projekte: | ||
- | * WhatsApp | + | * [[https:// |
- | * WireGuard | + | * [[https:// |
- | * Slackov | + | * [[https:// |
===== Literatura ===== | ===== Literatura ===== | ||
- | [1] [[https:// | + | [1] [[https:// |
- | [2] [[https:// | + | [2] [[https:// |
- | [3] [[https:// | + | [3] [[https:// |
- | [4] [[https:// | + | [4] [[https:// |
- | [5] [[https:// | + | [5] [[https:// |