Locked History Actions

Skirtumas „Tide protocol“

Pakeitimai tarp versijų 4 ir 5
Versija 4 nuo 2019-11-25 19:38:50
Dydis: 10923
Redaktorius: RobertasKulakovskij
Komentaras:
Versija 5 nuo 2019-11-25 19:39:07
Dydis: 10920
Redaktorius: RobertasKulakovskij
Komentaras:
Pašalinimai yra pažymėti taip. Pridėjimai yra pažymėti taip.
Eilutė 2: Eilutė 2:
= Tide protokolas =
== Įvadas ==
Dėl kasdienių duomenų pažeidimų, kai įsilaužėliai pavogia šimtus milijonų neskelbtinų duomenų, viena pelno nesiekianti organizacija turi tikslą – aprūpinti pasaulį tokiu apsaugos lygiu, kuris neleistų asmenims prarasti savo duomenų. „Tide.org“ sukūrė naują šifravimo schemą, vadinamą „Suskaidymu“ (angl. „Splintering“), kuri paverčia vartotojo vardo ir slaptažodžio autentifikavimą 14 mln. procentų sunkiau nulaužiamą.
Eilutė 3: Eilutė 6:
= Tide protokolas = 2019 m. gegužės mėn. vykstančioje „Tide H4X“ kampanijoje pati organizacija „Tide.org“ pakvietė įsilaužėlius nulaužti vieną naudotoją (vardą / slaptažodį). Organizacija vadovavosi šūkiu, „Jeigu kam nors pavyks įsilaužti, mes grįšim prie braižymo etapo ir bandysim iš naujo“,o tam kuris įsilauš prizas – vienas „Bitcoin“. Tačiau net gavus užuominų iš „Tide“ komandos, po 6,5 milijono bandymų nė vienam iš įsilaužėlių nepavyko to padaryti.
Eilutė 5: Eilutė 8:
== Įvadas ==

Dėl kasdienių duomenų pažeidimų, kai įsilaužėliai pavogia šimtus milijonų neskelbtinų duomenų, viena pelno nesiekianti organizacija turi tikslą – aprūpinti pasaulį tokiu apsaugos lygiu, kuris neleistų asmenims prarasti savo duomenų. „Tide.org“ sukūrė naują šifravimo schemą, vadinamą „Suskaidymu“ (angl. „Splintering“), kuri paverčia vartotojo vardo ir slaptažodžio autentifikavimą 14 mln. procentų sunkiau nulaužiamą. 2019 m. gegužės mėn. vykstančioje „Tide H4X“ kampanijoje pati organizacija „Tide.org“ pakvietė įsilaužėlius nulaužti vieną naudotoją (vardą / slaptažodį). Organizacija vadovavosi šūkiu, „Jeigu kam nors pavyks įsilaužti, mes grįšim prie braižymo etapo ir bandysim iš naujo“,o tam kuris įsilauš prizas – vienas „Bitcoin“. Tačiau net gavus užuominų iš „Tide“ komandos, po 6,5 milijono bandymų nė vienam iš įsilaužėlių nepavyko to padaryti.
Eilutė 11: Eilutė 11:

Tide protocol

Tide protokolas

Įvadas

Dėl kasdienių duomenų pažeidimų, kai įsilaužėliai pavogia šimtus milijonų neskelbtinų duomenų, viena pelno nesiekianti organizacija turi tikslą – aprūpinti pasaulį tokiu apsaugos lygiu, kuris neleistų asmenims prarasti savo duomenų. „Tide.org“ sukūrė naują šifravimo schemą, vadinamą „Suskaidymu“ (angl. „Splintering“), kuri paverčia vartotojo vardo ir slaptažodžio autentifikavimą 14 mln. procentų sunkiau nulaužiamą.

2019 m. gegužės mėn. vykstančioje „Tide H4X“ kampanijoje pati organizacija „Tide.org“ pakvietė įsilaužėlius nulaužti vieną naudotoją (vardą / slaptažodį). Organizacija vadovavosi šūkiu, „Jeigu kam nors pavyks įsilaužti, mes grįšim prie braižymo etapo ir bandysim iš naujo“,o tam kuris įsilauš prizas – vienas „Bitcoin“. Tačiau net gavus užuominų iš „Tide“ komandos, po 6,5 milijono bandymų nė vienam iš įsilaužėlių nepavyko to padaryti.


Terminologija, protokolo architektūra ir struktūrinė schema

  • Seeker (Ieškotojai) – bet kuri organizacija ar įmonė, siekianti užmegzti ar rinkti vartotojų duomenis.
  • Vendor (Pardavėjai) – bet kuri su vartotojais susijusi organizacija ar įmonė, kuri renka, tvarko ir saugo vartotojų duomenis.
  • Consumer (Vartotojas) – bet kuris fizinis asmuo, kuris Pardavėjo duomenų bazėje turi unikalų identifikavimo arba duomenų pėdsaką.
  • Smart Contract (Išmanioji sutartis) – kompiuterinis protokolas, skirtas skaitmeniniu būdu palengvinti, patvirtinti ar priversti vykdyti derybas ar vykdyti sutartį.
  • ORK (Orchestrated Recluder of Keys) – Tide protokolo decentralizuoti mazgai.
  • Key Pair (Raktų pora) – susideda iš slapto rakto (angl. SK(Secret Key)) ir viešojo rakto (angl. PK(Public Key)).

arch.png

1 pav. Tide protokolo architektūra

sch.png

2 pav. Tide protokolo struktūrinė schema

„Splintering“ sąvoka

Siekiant šio tikslo, buvo sukurta technika, kuri pavadinta „Suskaidymu“ (angl. „Splintering“). Aukštu lygiu tai reiškia, kad reikia sumažinti bet kokių slaptažodžių fragmentų, bendrinamų su ORK, dydį ir paskirstyti juos papildomuose ORK. Reikia pasiekti tokį susiskaidymo lygį, kai konceptualiai bet kuris ORK fragmentas tampa įprastu, nes galimų klaidingų teigiamų atitikimų slaptažodžio alternatyvoms skaičius daro žodyno ataką („Dictionary attack“) nepraktišką. Stebėtinai dažnai pasitaiko atvejų, kai net didžiausios technologijų kompanijos saugo slaptažodžius savo duomenų bazėje aiškaus teksto formatu („Facebook“, „Google“), geriausia praktika užtikrintų, kad slaptažodžiai būtų saugomi tik kaip saugios maišos. Saugus maišos būdas yra vienpusis veiksmas, leidžiantis bet kokio ilgio eilutę įvesti į simbolių eilutę, kuri visada yra vienodo ilgio, neatsižvelgiant į įvesties eilutės ilgį. Yra daugybė maišos turinio algoritmų. SHA256, suprojektuota Nacionalinės saugumo agentūros, grąžins unikalų 32 baitų masyvą bet kuriai eilutei. Pvz., Slaptažodžio „123456“ maišos sritis: „8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92“.

Maišymas yra vienpusio veiksmo rezultatas, jis negali būti pritaikytas atvirkštiniam panaudojimui norint atkurti pradinę eilutę. Maišytojo slaptažodžio negalima identifikuoti iš jo atitinkamos maišos. Tačiau ta pati originali eilutė (arba slaptažodis) visada duos identišką maišą. Taigi, jei įsilaužėlis bet kokiomis priemonėmis sugeba susieti slaptažodžių maišos duomenis su originaliu slaptažodžiu, tada bet kurią kitą sąskaitą, identifikuotą tuo pačiu slaptažodžiu, taip pat gali pasiekti tuo pačiu slaptažodžiu su 100% užtikrintumu.

Bendrieji slaptažodžiai, tokie kaip „123456“, kuriuos pasirenka daugelis vartotojų, tik palengvina atitikimo procesą per žodyno atakas (angl. „Dictionary attacks“). Jei užuot saugoję pilną slaptažodžių maišalynę kiekviename ORK, būtų saugomi tik pirmieji 16 bitų (t.y. 16 bitų „Splinter“), tada palyginti galima tik tą „Splinter“ ir pradedame matyti susidūrimus, kur „Splinter“ galėtų būti taikomas daugybei slaptažodžių. Pvz., „8d96“ padalijimas („Splinter“) gali būti taikomas tiek „123456“, tiek „linked92“ slaptažodžiams. Kai užpuolikas bando panaudoti žodyno ataką šioms skeveldroms („Splinters“), rezultatas nebėra 100%, nes skirtingi slaptažodžiai turi tuos pačius splinterius. Jei dar labiau sumažiname atplaišų dydį iki 8 bitų, klaidingų teigiamų skaičių tampa dar daugiau. Jei bendras maišos tūris yra tik 8 bitai, užpuolikas gali lengvai atlikti žiaurios jėgos išpuolį (angl. „Brute force attack“), nes yra tik 256 galimybės teisingai atspėti vertę. Tačiau jei slaptas vartotojo atkūrimo slenkstis būtų 32, o jų 8 bitų atplaišos būtų dalijamos su 40 skirtingų ORK mazgų ir kiekviena iš šių atplaišų būtų užrakinta skirtingu unikaliu kiekvieno ORK mazgo identifikatoriumi, užpuolikas turės bandyti ne tik 256 kartus, bet 25632 skirtingas alternatyvas. Tai atitinka tas pačias pastangas vykdant brutalios jėgos išpuolį (angl. „Brute force attack“), kai maišos dydis yra 256 bitai. Šis dalinio maišos tikrinimo procesas, kurį skirtingi mazgai padarė autentifikavimo metu, buvo pavadintas: Splintering.

„Splintering“ efektyvumo patikrinimas

Norint patvirtinti šią koncepciją, buvo atliktas tikslinis tyrimas, kuriame kaip bandymo duomenų rinkinys buvo panaudoti nutekinti 60 milijonų „LinkedIn“ vartotojų duomenys.

table.png

3 pav. Paskutinio „LinkedIn“ pažeidimo metu aptikti 65 labiausiai naudojami slaptažodžiai. Vienodos spalvos vizualiai parodo Splinter sutapimus.

Lentelės stulpelių paaiškinimai:

  • Password – naudotas slaptažodis.

  • Password frequency – kiek kartų šis slaptažodis pasikartoja per visą vartotojų bazę.

  • Splinter – pirmieji 8 maišos slaptažodžiu bitai.

  • Splinter collisions – skaičius, kiek kartų vieno slaptažodžio Splinter sutampa su kito slaptažodžio Splinter.

  • Certainty – tikimybės aiškumo lygis, kad slaptažodžio spėjimas, atitinkantis „Splinter“, reiškia ir atitikimą teisingam slaptažodžiui.

Pirmiausia identiški slaptažodžiai buvo sugrupuoti, suskaidyti ir surūšiuoti pagal pasikartojimų skaičių, kaip parodyta stulpelyje Password frequency. Buvo pastebėta daug dažniausiai naudojamų slaptažodžių: pavyzdžiui, „123456“ slaptažodį pasirinko 374 825 skirtingi vartotojai. 65 dažniausiai naudojami slaptažodžiai sudarė 1,84% (1 070 882) visos vartotojų bazės (57 950 593).

Slaptažodžiai buvo maišyti naudojant SHA256 algoritmą, o pirmieji 8 bitai (t.y. pirmasis „Splinter“) buvo užpildyti Splinter stulpelyje. Yra tik 256 galimos 8 bitų atvaizdų vertės nuo 0 iki 255. Reiškia, kad tik pirmas 8 bitų „Splinter“ maišos fragmentas, kurį saugo atskiras ORK, vietoje visos maišos ar paprastojo teksto slaptažodžio, pasikartoja, o kiekvieno „Splinter“ pasikartojamumas yra didesnis, už kiekvieno originalaus slaptažodžio pasikartojamumą (Password frequency). Tai pasitvirtino visiems slaptažodžiams, įskaitant ir labiausiai paplitusį „123456“ su „Splinter“ 141, beveik padvigubinant galimus slaptažodžių atitikmenis nuo pradinio 374 825 kartų Password frequency iki 603 443 kartų, Splinter collisions.

Taip atsitinka dėl to, kad skirtingi slaptažodžiai turi bendrus atplaišus, skirtingai nei tada, kai visa maiša yra saugoma ir garantuojama atitiktis „1 už 1“. Šį reiškinį galima nedelsiant pastebėti didžiuosiuose 65 slaptažodžiuose, kur, pavyzdžiui, „pasword“ turi tą pačią „Splinter“ reikšmę „94“ kaip „sophie“. Be to, galima pastebėti, kad „Splinter“ 94 yra naudojamas 285 088 kartus, palyginti su 49 868 kartais, kai naudojamas slaptažodis „password“, tai reiškia, kad slaptažodis sudaro tik 17,49% visų slaptažodžių, kuriems „Splinter“ gali būti taikomas. Kitaip tariant, jei būtų bandoma nustatyti, kurie vartotojai naudoja slaptažodį „password“, ir palyginti „Splinter“ su „Splinters“ duomenų baze, tai gautų didelį klaidingų teigiamų procentų kiekį (82,51%), nes yra tik 17,49% tikimybė parinkti teisingą slaptažodį su jo susietu vartotoju, būtent tai parodo lentelės stulpelis Cerntainty.

pic.png

4 pav. Maišos dydis prieš „nulaužimo“ tikrumą naudojant „LinkedIn“ nulaužtus duomenis.

4 paveiksle parodytas išsidėstymas, nuo labiausiai, vidutiniškai ir mažiausiai paplitusių slaptažodžių. Galima pamatyti, kad labiausiai paplitusius slaptažodžius sudėtinga apsaugoti. Slaptažodžiams, kurie yra ties vidurkiu ir žemiau, pakanka 16 bitų „Splinter“ apsaugos. Tačiau įprastesniems slaptažodžiams, tokiems kaip „iloveyou", 16 bitų „Splinters“ tikrumas tampa nepageidaujamas. 8 bitų „Splinters“ apsaugo beveik visus slaptažodžius, išskyrus labiausiai paplitusius, pvz., „123456“, kurių tikrumą vis tiek pagerina 160%.

Išvados

Nors slaptažodžių autentifikavimas turi daug skylių ir yra linkęs būti atakuojamas įvairių išpuolių platintojų, jo, kaip pagrindinio autentifikavimo metodo, paplitimas išlieka didelis dėl jo naudojimo paprastumo. Tokios sąvokos kaip decentralizavimas gali būti panaudotos norint žymiai pagerinti slaptažodžių autentifikavimo saugumą, o tai, kartu su papildomais metodais, gali išplėsti labiausiai paplitusio internetinio autentifikavimo metodo gyvybingumą. „Splintering“ yra slaptažodžių atpažinimo saugumo perversmas tradicinėje aplinkoje, decentralizuotų aplinkų, kuriose nėra jokių papildomų apsaugų, naudojimas, tikėtina, suteiks papildomų galimybių tobulėti. Tolesni šios srities tyrimai gali sumažinti dažniausiai pasitaikančių slaptažodžių, tokių kaip „123456“, paskirstymo pėdsaką, sumažinti mazgų skaičių, reikalingų norint išlaikyti 256 bitų maišos teikiamą saugumo lygį ir bendrai pagerinti saugos lygį.

Literatūros sąrašas

1. https://tide.org/blog/tideprotocolprotection

2. https://www.darkreading.com/operations/new-technique-makes-passwords-14m-percent-harder-to-crack-nonprofit-claims/d/d-id/1335748

3. https://micky.com.au/blockchain-based-protocol-eliminates-password-breaches/

4. https://jaxenter.com/blockchain-tide-protocol-splintering-162073.html

5. https://tide.org/Tide_Whitepaper.pdf

6. https://github.com/tide-foundation/Tide-h4x-for-Privacy