Is dit deze beveiliging de moeite waard?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark Hogeveen

Mark Hogeveen

13/08/2015 12:26:17
Quote Anchor link
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.
Gewijzigd op 13/08/2015 12:29:50 door Mark Hogeveen
 
PHP hulp

PHP hulp

28/01/2023 13:52:26
 
Elmar vH

Elmar vH

13/08/2015 12:33:07
Quote Anchor link
--> Zoals een telefoon, random reader, vinger afdruk of usb-stick.

Je gehele onderwerp gaat over het gebruik van een telefoon... hoe wil je dat voor de rest oplossen?

Bijkomend iets: wat als de telefoon nou geen smartphone is...?
 
Ozzie PHP

Ozzie PHP

13/08/2015 13:18:05
Quote Anchor link
>> Een 2 step login bestaat altijd uit iets dat de gebruiker weet, zoals een gebruikersnaam/email en wachtwoord, en iets dat de gebruiker heeft. ... of krijgt toegestuurd.

Gebruiker vult e-mailadres en wachtwoord in en krijgt naar het mailadres (die hij zowel op computer als telefoon kan ontvangen) een willekeurige logincode toegestuurd. Die logincode invoeren is dan stap 2. Na x keer de code fout invoeren kan de gebruiker x minuten niet meer inloggen.

You're welcome ;-)
 
Randy vsf

Randy vsf

13/08/2015 13:32:31
Quote Anchor link
maak je voor de app gebruik van een framework? zoja, welke?
ik gebruik zelf ionic voor apps. Met ionic kan je de telefoon in de app laten identificeren.

dan kan je dus als de gebruiker zich identificeert een random code laten genereren en naar de server sturen, die je vervolgens kan kopppelen aan de gebruiker, en laten gebruiken om in te loggen.
 
Ivo P

Ivo P

13/08/2015 13:40:33
Quote Anchor link
"De cipher van die 8 cijferige code is redelijk kort, waardoor deze in een QR code past."

In een QR code kan een heel visitekaartje, dus voor de lengte hoeft het geen probleem te zijn, lijkt me.

Via een QR code heeft wel beperkingen
je gebruiker moet een smartphone hebben met de mogelijkheid om barcodes te lezen en moet ook nog de betreffende app kunnen draaien.
Vraag me af wat voor soort site het is, maar in elk geval beperk je de gebruikersgroep.


De werkwijze kan wel, maar dan moet de app op een voorspelbare manier reageren op de code.
Bijvoorbeeld de sleutel is 32 van de app.
Dan zal de barcode 123456 beantwoord worden met het verhogen van elk 2e cijfer met de waarde 3

dus 153759
Waarbij je als phpscript moet weten dat de sleutel 32 is
Eventueel aan te vullen met de beveiliging dat sommige andere cijfers random mogen wijzigen.

Toevoeging op 13/08/2015 13:43:04:

wbt Randy´s opmerking

in Android kun je inderdaad een uniek id van de telefoon opvragen. Los of je een framework gebruikt.
Die sleutel kun je meegebruiken in het unieke antwoord dat de app geeft op een gegeven code.
 
Mark Hogeveen

Mark Hogeveen

13/08/2015 14:22:50
Quote Anchor link
Ozzie PHP op 13/08/2015 13:18:05:
>> Een 2 step login bestaat altijd uit iets dat de gebruiker weet, zoals een gebruikersnaam/email en wachtwoord, en iets dat de gebruiker heeft. ... of krijgt toegestuurd.

Gebruiker vult e-mailadres en wachtwoord in en krijgt naar het mailadres (die hij zowel op computer als telefoon kan ontvangen) een willekeurige logincode toegestuurd. Die logincode invoeren is dan stap 2. Na x keer de code fout invoeren kan de gebruiker x minuten niet meer inloggen.

You're welcome ;-)


Heb ik al aan gedacht, maar mensen gebruiken vaak hetzelfde wachtwoord, dus het zelfde wachtwoord voor hun email. Het emailadres is dan ook nog eens hetzelfde als dat wat je in de login invult op de site.

Eigenlijk zou je gewoon een sms met een code moeten sturen naar een telefoon.
Gewijzigd op 13/08/2015 14:23:23 door Mark Hogeveen
 
Ozzie PHP

Ozzie PHP

13/08/2015 15:01:05
Quote Anchor link
>> Heb ik al aan gedacht, maar mensen gebruiken vaak hetzelfde wachtwoord, dus het zelfde wachtwoord voor hun email. Het emailadres is dan ook nog eens hetzelfde als dat wat je in de login invult op de site.

Ik kan even niet volgen wat je bedoelt. Mijn wachtwoord voor jouw site is 123. Ik vul op jouw site mijn e-mailadres (of gebruikersnaam in) + mijn wachtwoord 123. Vervolgens stuur jij een willekeurige code abc naar mijn mailadres, die ik vervolgens als stap 2 op jouw website moet invoeren.
 
Ivo P

Ivo P

13/08/2015 15:12:19
Quote Anchor link
Randy wil afvangen, dat als jij dezelfde login gebruikt voor de site, als voor je emailadres de "hacker" ook direct in kan loggen op de email om de betreffende code te zien.

Scheelt al iets als de gebruiker niet met zijn emailadres in moet loggen, maar met een gebuikersnaam.
 
Ozzie PHP

Ozzie PHP

13/08/2015 15:37:59
Quote Anchor link
>> Randy wil afvangen, dat als jij dezelfde login gebruikt voor de site, als voor je emailadres de "hacker" ook direct in kan loggen op de email om de betreffende code te zien.

Dat lijkt me vergezocht. Als een hacker het wachtwoord van jouw mailbox weet, kun je beter meteen stoppen.
 
Richard Snijders

Richard Snijders

13/08/2015 15:42:43
Quote Anchor link
Klinkt een beetje als symptoombestrijden als je je user systeem verantwoordelijk wilt maken voor de veiligheid van het e-mailaccount van een gebruiker. Natuurlijk is het wel 'veiliger' om in te loggen met een verificatiecode, maar ten koste van veel gebruiksvriendelijkheid. Ik wil namelijk als ik ergens inlog meteen alle features kunnen gebruiken die ik daarbij krijg.
Kortom, het is waarschijnlijk wel de moeite waard om zoiets te bouwen, maar het is beter om zoiets optioneel te maken. De veiligheid van gebruikersaccounts is namelijk zijn/haar eigen verantwoordelijkheid.
Gewijzigd op 13/08/2015 15:43:27 door Richard Snijders
 
Randy vsf

Randy vsf

13/08/2015 16:06:32
Quote Anchor link
Ozzie PHP op 13/08/2015 15:37:59:
>> Randy wil afvangen, dat als jij dezelfde login gebruikt voor de site, als voor je emailadres de "hacker" ook direct in kan loggen op de email om de betreffende code te zien.

Dat lijkt me vergezocht. Als een hacker het wachtwoord van jouw mailbox weet, kun je beter meteen stoppen.


Heel veel mensen gebruiken hetzelfde wachtwoord voor de site en email.
Wat heeft de verificatie dan voor zin via email?

Dus zover gezocht vind ik het niet

Quote:
Eigenlijk zou je gewoon een sms met een code moeten sturen naar een telefoon.


Ook dat is mogelijk via een SMS gateway
Gewijzigd op 13/08/2015 16:14:56 door Randy vsf
 
Ozzie PHP

Ozzie PHP

13/08/2015 16:16:39
Quote Anchor link
>> Heel veel mensen gebruiken hetzelfde wachtwoord voor de site en email.
>> Wat heeft de verificatie dan voor zin via email?

Dan zit dáár dus de (gebruikers)fout. Stompzinnigheid van een gebruiker kun je niet tegengaan.

Als een hacker het wachtwoord van de mailbox heeft, dan kan hij dus ook makkelijk het wachtwoord van de site verkrijgen. Als je als developer er rekening mee moet gaan houden dat iemands mailbox misschien is gehackt, dan kun je maar beter per direct stoppen met programmeren, want dan kun je niks meer fatsoenlijk beveiligen.
 
Randy vsf

Randy vsf

13/08/2015 16:18:36
Quote Anchor link
Ligt er maar net aan wat voor informatie er achter de login beschikbaar is :)
Er zijn genoeg sites met gevoelige informatie die gebruik maken van zo'n soort systeem.

Dus om te zeggen dat die mensen dan per direct moeten stoppen met programmeren is een beetje krom :)

Digid geeft je ook de keuze om voor de veiligheid nog eens met SMS te bevestigen
Gewijzigd op 13/08/2015 16:19:09 door Randy vsf
 
Ozzie PHP

Ozzie PHP

13/08/2015 16:26:46
Quote Anchor link
Als extra kan het ook geen kwaad, maar ik denk niet dat je er rekening mee moet houden dat een mailbox is gehackt. Als dat zo is ben je gewoon aardig de l*l. Dan schrijf je je in bij een site, krijg je een bevestigingsmail en de hacker leest alles gewoon mee. Dan ga je dus gewoon altijd nat. Dan ligt het probleem dus op een ander, bovenliggend niveau.

Als je iemand een mail stuurt dan moet je er vanuit kunnen gaan dat die alleen wordt gelezen door de ontvanger en niet door een hacker. En als de hacker al zover is dat hij kan inloggen in de site, dan kan hij waars. ook de 2 staps verificatie uitschakelen of het tel.nr. wijzigen enz. Lijkt me lastig om daar allemaal rekening mee te houden.
 
Mark Hogeveen

Mark Hogeveen

13/08/2015 17:43:17
Quote Anchor link
Inderdaad, als een hacker in je mail komt heb je een heel groot probleem. (Helaas heb ik al vaker van mensen gehoord dat toch hun email is gehackt...)

Maar stel dat je een verstandige gebruiker bent, en je gebruikt een verschillend wachtwoord voor de site om in te loggen, en je email.

Om dan toegang tot het account op de site te krijgen, heb je 2 verschillende wachtwoorden nodig (van site, en van email)

Je kunt dan net zo goed bij registratie of accountinstellingen op die site 2 wachtwoorden in laten vullen, en dan bij de login ook die 2 wachtwoorden vragen. Dan staat het helemaal los van een email.
(En natuurlijk gebruik je niet het wachtwoord van je email als één van die 2 wachtwoorden)
Het komt er dus op neer dat je gewoon een login hebt met een extra wachtwoord.

Maar goed.

Weet iemand hoe je een SMS gateway kunt opzetten? Ik ga er van uit dat je dan via een ander bedrijf een sms moet laten versturen tegen betaling? (Want het lijkt me natuurlijk raar als je gratis kunt sms'sen).
Of kan het wel gratis?
Gewijzigd op 13/08/2015 17:44:43 door Mark Hogeveen
 
Ozzie PHP

Ozzie PHP

13/08/2015 17:57:00
Quote Anchor link
>> Om dan toegang tot het account op de site te krijgen, heb je 2 verschillende wachtwoorden nodig (van site, en van email)

Euh ... ik snap niet wat je bedoelt. Om in te loggen heb ik alleen het wachtwoord van de site nodig, niet van de mail.

>> Het komt er dus op neer dat je gewoon een login hebt met een extra wachtwoord.

Nee dus.
 
Ramon van Dongen

Ramon van Dongen

13/08/2015 19:02:28
Quote Anchor link
Quote:
Ik ga er van uit dat je dan via een ander bedrijf een sms moet laten versturen

Je kunt ook zelf gaan lopen pielen met een simkaart en die aansturen etc. Via bedrijf sowieso makkelijker.

Quote:
Of kan het wel gratis?

Als het een stabiel netwerk moet zijn en dus iets waar je van op aan kan, zou ik niet gaan zoeken naar iets gratis.
Deze biedt bijvoorbeeld iets gratis aan: http://www.earthsms.net/
Maar heel degelijk komt het op mij al niet over.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.