Toon posts:

Wachtwoordmanagers met waarschuwingen

Pagina: 1
Acties:

  • MatHack
  • Registratie: Oktober 2001
  • Niet online

MatHack

Dev by day, Gamer by night

Topicstarter
In het reviews: Wachtwoordmanagers met eigen wachtwoordencheckers artikel van @Tijs Hofmans wordt mijns inziens gesuggereerd dat de Have I Been Pwned password API geen k-anonymity gebruikt, maar dat doet het wel degelijk, zie: https://haveibeenpwned.co...hingPwnedPasswordsByRange

There's no place like 127.0.0.1


  • Alfredo
  • Registratie: Maart 2007
  • Laatst online: 23-11 14:38
De beschrijving van hoe Google zijn Password Checkup tool implementeert klopt niet. Er komt geen homomorphic encryption aan te pas, in tegenstelling tot bij Microsoft. Beide gebruiken PSI, maar Googles techniek stopt bij een Oblivious Pseudo-Random Function (OPRF), terwijl het bij Microsoft OPRF + HE is. De OPRF bij Microsoft is echter niet integraal voor PSI, maar maakt hun protocol maliciously secure en helpt het met performance. Voor Google is OPRF = PSI.

Google gebruikt 2 zaken: k-anonymity en EC-OPRF. Voor EC-OPRF is het idee dat je een invoer (de hash van je email + wachtwoord) kan mappen tot een punt op een elliptic curve. Dan genereer je een geheime sleutel k1 die je gebruikt om een scalar multiplication (de som van je punt met zichzelf) uit te voeren op dat punt. Om dit idee makkelijker te maken, denk dat je een punt op een cirkel x keer verplaatst met een bepaalde afstand. Als je niet weet hoeveel x is, kan je onmogelijk achterhalen wat de originele locatie van je punt was. Dit is je versleuteld resultaat dat je doorstuurt naar Google. Zij hebben hetzelfde gedaan met alle 4 miljard entries met hun sleutel k2. Nu nemen ze je versleutelde data, en voeren ze nogmaals dezelfde operatie uit, maar dan met k2. Dat sturen ze terug naar de gebruiker, die de eerste scalar multiplication ongedaan kan maken met hun eigen sleutel. Dit geeft je je eigen input, versleuteld met de sleutel van Google die je niet kent (het idee achter Oblivious Pseudo-Random Functions).
Om nu tot PSI te komen waar enkel de gebruiker de overlap leert zou Google normaal gezien al hun data moeten doorsturen. Dan is het gewoon een kwestie om na te gaan of jouw input versleuteld met Googles key gelijk is aan 1 van de entries in hun tabel. Er zijn echter 4 miljard rijen, dus veel te groot om door te sturen. Daar gebruiken ze dan k-anonymity voor. Buiten de versleutelde data heb je ook de eerste 2 karakters van de hash van je data. Dus die stuur je door naar Google, en Google stuurt je de 60000 rijen terug die ook dezelfde eerste 2 karakters hebben.

Zoals MatHack hierboven vermeldt is dit identiek hetzelfde systeem als dat van Have I Been Pwned voor hun API. Alleen slaan zij gewoon de SHA-1 hashes op. Het "probleem" met dit systeem is dat deze hashes deterministisch zijn (mits salt). Beide partijen moeten enkel dezelfde salt gebruiken om te kunnen matchen, het algoritme achter SHA zelf is publiekelijk bekend. Als je hun data binnenkrijgt, zou je buiten de match dus kunnen proberen om de rest te brute-forcen met andere wachtwoorden. Google kan niet alleen op eender welk moment hun key veranderen en alle data opnieuw versleutelen, je kan hun 60000 entries ook veel moeilijker proberen te brute-forcen omdat de search space van keys veel groter is dan die van typische wachtwoorden. En tot slot, je kan niet gewoon een nieuwe combinatie van email + wachtwoord matchen met Googles data zonder Google bij de berekening te betrekken. Zij moeten immers jouw data versleutelen met hun key. Dus offline brute-force attacks zijn niet mogelijk.

  • Alfredo
  • Registratie: Maart 2007
  • Laatst online: 23-11 14:38
@Tijs Hofmans wordt hier nog iets mee gedaan?


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee