Hallo,
Ik was bezig met een 2 step login te maken.
Een 2 step login bestaat altijd uit iets dat de gebruiker weet, zoals een gebruikersnaam/email en wachtwoord, en iets dat de gebruiker heeft. Zoals een telefoon, random reader, vinger afdruk of usb-stick.
Ik dacht dus het volgende te maken:
Inloggen met emailadres en wachtwoord. Als gegevens correct zijn, dan naar stap 2.
Bij stap 2 wordt een code (van bijv. 8 cijfers) gemaakt en in een sessie gezet.
Dan wordt die code versleuteld met rijndael.
De cipher van die 8 cijferige code is redelijk kort, waardoor deze in een QR code past.
rijndael encryptie is symmetrisch. De sleutel van het account staat opgeslagen op de telefoon van de gebruiker van dat account.
Met een app op de telefoon wordt de QR code gelezen, waardoor de app de cipher heeft. De sleutel heeft de app ook en zo wordt de cipher ontsleuteld en verschijnt de 8 cijferige code op het scherm van de telefoon.
De gebruiker vult de cijfercode in op de web pagina op de pc. De code staat ook in de sessie, dus PHP kan controleren of het de juiste code is.
Heeft dit zin?
De rijndael sleutel is altijd hetzelfde voor het account, dus je zou eigenlijk geen 8 cijferige code hoeven te gebruiken om een telefoon te identificeren. Je zou net zo goed de sleutel kunnen laten overtypen van het telefoon scherm naar de computer, maar dan is het weer meer iets dat de gebruiker "weet" en opgeslagen staat op de telefoon, dan dat het iets is dat de gebruiker heeft
Ik wilde dat het telefoon gedeelte per-see zonder internet kon, vandaar de QR code om gegevens uit te wisselen tussen webpagina op pc en app op telefoon.
Als ooit iemand de sleutel uit de telefoon krijgt, maakt het niet eens meer uit of er een cijfercode wordt gevraagd... Iemand hoeft maar even je telefoon te hebben en de sleutel uit het geheugen te kopieren.
2.392 views