» »

ZeroPass

ZeroPass

Luka Percic ::

Bi vam predstavil projekt na katerem delamo; http://zeropass.io/

Gre za zero-knowledge password/private_key manager, kjer za (privzeto) varnost ne skrbi vaše geslo, ampak lokacija delov (od) ključev.
Sam password/ključ se prvo razdeli na dva dela med server ter tvoje naprave, sam server pa potem zahteva 2 podpisa (napravi/faktorje), preden pošlje svojo polovico v tvoj lokalni app.
Delitev na pol zajamči to da nihče ne more zgolj z zlorabo serverja pridobit dostopa(niti mi), dva lokalna faktorja pa zajamčita da si za napravo res ti. Opensourcanje app-ov zajamči da počnemo to kar trdimo.

Do tukaj nič posebnega.
Bolj zanimivo je izvest recovery brez enega "passworda". To naredimo tako da (kriptografsko) razdelimo backup ključ med 3 tvoje "zansljive stike". Dva od njih lahko odkleneta ter tvoj backup vseh passwordov/ključev (ločen ali pobran iz naših strežnikov).

Kaj hočemo doseči? Narediti privatne ključe otročje lahke. Pa tudi vrnit opcijo za recovery dostopa do izgubljenih ključev. Na tak način hočemo približat kriptografsko varne storitve (ki pa nas opozarjajo da izgubljen ključ pomeni izgubo vseh podatkov/vrednosti) v mainstream. Brez da bi se uporabniki rabili odreči dokončni kontroli.

Samih aplikacij nažalost še ni (se razvijajo- še cca 6 mesecev).

Varnostna shematika; http://zeropass.io/schematics, pa priloženi "whitepaper" http://zeropass.gitbooks.io/whitepaper/...
Se priporočamo za komentarje/preglede/kritike whitepaper-ja.

Yacked2 ::

Glede "backupa": Deljenje subkeyev že dolgo obstaja, določa aplikacija omogoča (imena se ne spomnim, ampak bo verjetno kdo drug vedel), da kjuč razdrobiš na n-delov in nastaviš, da je potrebno za pridobitev keya zbrati m-subkeyev, pri čemer je m manjši ali enak n-ju. Kaj narediš z generiranimi subkeyi je odvisno od uporabnika. Dva od tri se mi zdi celo malo prelahko.

Razloži stavek: "Private keys are long, random, and should never leave the end-user machine.", v vašem primeru bo "polovica" kjuča pri uporabniku, "druga polovica" pa na serverju. Zakaj bi bilo to boljše kot to, da ima uporabnik celoten kjuč ? Če mu odtujijo polovico ključa ali cel kjuč je popolnoma enako nevarno. V obeh primerih potrebuje napadalec zbrati vse "naprave".

Kakšna bi bila razlika v primeru, če so uporabniku odtujeni vsi njegovi "ključi" in se z njimi napadalec predstavi serverju kot legit user, server pa pošlje svojo polovico ključa. In druga situacija, kjer bi napadalec uporabniku odtujil vse njegove "ključe" in z njimi dešifriral datoteko.

V nobenem primeru z samo zlorabo serverja ne moreš do uporabnikovih datotek. Mogoče v primeru da poznaš del kjuča celo lažje ?!?

Kaj pa če bi uporabnik datoteko šifriral z ključem 1, ki ga ima shranjenega na disku, nato bi šifrirano datoteko še enkrat šifriral z drugim ključem 2 (kjuč1 ni enak kjuču2), ki ga ima shranjenega na neki drugi napravi (kartica?), ter nato to datoteko poslal v svet. Do nje bi lahko prišela samo oseba, ki bi imela oba kjuča (n-kjučev), seveda lahko potem server še enkrat šifrira to datoteko s svojim kjučem in to bi se lahko nadaljevalo v neskončnost. Šifriranje datoteke lahko primerjaš z dostopom do manengerja.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

FX6300B ::

pa če se zgodi tako kot nekaj časa nazaj googlu? se nespomnim točno jim je strela usekala ali nekaj podobnega

edit: našel članek https://slo-tech.com/novice/t651190#crta
May the force be with you!

Zgodovina sprememb…

  • spremenil: FX6300B ()

Luka Percic ::

v vašem primeru bo "polovica" kjuča pri uporabniku, "druga polovica" pa na serverju. Zakaj bi bilo to boljše kot to, da ima uporabnik celoten kjuč ? Če mu odtujijo polovico ključa ali cel kjuč je popolnoma enako nevarno. V obeh primerih potrebuje napadalec zbrati vse "naprave".

Kakšna bi bila razlika v primeru, če so uporabniku odtujeni vsi njegovi "ključi" in se z njimi napadalec predstavi serverju kot legit user, server pa pošlje svojo polovico ključa.

Par razlik je. Če je polovica ključa na serverju, lahko mi preprečimo vpis. Prijaviš se na javni računalnik, oziroma trusted contact lahko pozove naš server da so bile naprave odtujene, ter naj ne podpisuje do nadaljnega(razrešitve).
Pravtako imaš lahko par dodatnih omejitev, recimo omejitev na ugibanje pin-a (če si ga bo kdo želel nastavit), omejitev na lokacijo, omejitev na količino različnih passwordov na uro (ker zgleda sumljivo dobiš obvestilo) ...
Teh možnosti bo nazačetku bolj za šcepec, kasneje pa vedno več (glede na feedback).

In druga situacija, kjer bi napadalec uporabniku odtujil vse njegove "ključe" in z njimi dešifriral datoteko.

Načeloma ni datoteke. So le dovoljene naprave, ter pravilno podpisani requesti. Da se pa simulirat requeste seveda, ter vse podpisat. Težko, ampak gre.
Point ni da je ta sistem neprebojen, ampak da je težje ukrast ključe iz vseh naprav neopazno, neopazno izvajat podpise (vse naprave so obveščene da se podpis izvaja) kot je recimo pobrat/keylogat eden "varen"(dolg) password.

Mogoče v primeru da poznaš del kjuča celo lažje ?!?

nope, Shamirjeva delitev ključev posamezni deli ne izdajajo vsebine.
Razdeljevanje ključa se lahko dogaja na različne načine, tudi šifriranje šifriranega, smo pa izbrali Shamirja ker ga uporabljamo drugod ter je bolj prilagodljiv (v prihodnosti imamo v mislih tudi off-line 2 factor mode).

pa če se zgodi tako kot nekaj časa nazaj googlu? se nespomnim točno jim je strela usekala ali nekaj podobnega

Sistem je tako nastavljen da za sam recovery ne rabiš serverja. Torej četudi mi propademo (nebomo:)), oziroma nam nekdo zaseže/ugasne serverje,.. lahko recover izvedeš "peš". V nastavitvah tvoje lokalne aplikacije te čakajo polja, kjer lahko vpišeš 2x kodo ki jo dobiš v lokalnih napravah svojih "zansljivih stikov".
Sam server pa lahko zaradi zero-knowledge pristopa izvajamo kar na javnih strežnikih (Azure), kjer se samodejno delajo snapshoti tvoje baze. Da ne govorimo o tem da ima vsaka pametna naprava kopijo tvojega računa (vse razem manjkajoče polovičke).

O tem bomo več pisali ko bo skončano, o server delu naj zaenkrat zajamčim samo to da bodo podatki za nas povsem neberljivi(zero-knowledge), ter da se bo enkripcija dogajala v tvojem lokalnem (open-sourced) app-u.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Varen dostopat do strežnika

Oddelek: Informacijska varnost
304706 (3143) galu
»

USB ključ ali SD kartica?

Oddelek: Pomoč in nasveti
314674 (4163) ST-777
»

LastPass dobil novega lastnika

Oddelek: Novice / Nakupi / združitve / propadi
2719089 (12348) murmur
»

USB boot

Oddelek: Strojna oprema
229785 (9234) T-Majo

Več podobnih tem