Ik ben bezig met een 2FA-systeem voor bij het inloggen. En nu vroeg ik mij af of iemand een goede methode of package kent om een device als veilige device te herkennen.

Facebook gebruik dit ook als je met 2FA inlogt, en je dan kan aangeven dat 'dit een veilige device is' waarbij er dan geen 2FA wordt gevraagd.
Een 2fa melding volgt meestal nadat een OS of IP-adres is gewijzigd of als er via een andere browser wordt ingelogd. Fingerprinting wordt tegenwoordig door veel browsers tegengegaan. Of er packages voor bestaan weet ik niet (zal vast wel), maar als je zelf iets wil maken zou je kunnen controleren op min of meer vaststaande gegevens zoals IP-adres, OS, browser en taal. Als een van deze parameters dan wijzigt, zou je het apparaat als een "onveilig" apparaat kunnen beschouwen wat eerst moet worden goedgekeurd door de gebruiker alvorens deze kan inloggen. Merk wel op dat dit lastig is bij dynamische IP-adressen. Op een mobiele telefoon zou controle op IP-adres niet werken.
De software/virtual authenticator is gekoppeld aan het device, niet aan het IP-adres van het device. Ik hoef bijvoorbeeld niet opnieuw in te loggen als ik met telefoon of laptop op pad ben (en mijn IP-adres daardoor vaak verandert), maar wél nadat ik een update heb geïnstalleerd van besturingssysteem of browser.

Waarom zou je zelf iets verzinnen als browsers daarvoor een standaard ondersteunen? ;-)

https://developer.chrome.com/blog/webauthn/
Ik zal daar eens naar kijken, hoewel het best complex in elkaar steekt. Maar heeft iemand eventueel ervaring met library's die dit kunnen?
Ward van der Put op 05/07/2022 17:32:20

Ik zou eens naar OAuth 2.0 kijken:

https://oauth.net/2/

Daarvoor bestaan ook goede PHP libraries:

https://oauth.net/code/php/

Oauth is toch een complete login-flow? Het gaat mij enkel om de herkenning van 'trusted devices'.
Toch even een schopje. Kent iemand misschien goede PHP-library's om een device als vertrouwd te kunnen laten herkennen? Ik zie dit op steeds meer sites komen. Dus ik denk dat er wel een handige library bestaat. Ik heb geen zin in om het wiel opnieuw uit te vinden. :-P

[sub]Oh ja, ik heb 2FA werkend.
Voor de liefhebbers die ook aan de slag willen met twee-traps-verificatie (2FA) en Google Authenticator op de telefoon: Daarvoor gebruik ik deze class (tevens via composer binnen te hengelen): https://github.com/PHPGangsta/GoogleAuthenticator.
De secretkey vraagt de gebruiker bij 'registratie' eenmalig op, en die kan je ook via de QR-code die het script genereert in je telefoon hengelen. Die secret gebruik je steeds bij de controle.[/sub]

Het enige wat ik kan vinden is iets voor Symphony, wat ik niet gebruik. Ik ga eens kijken of ik wat hiermee kan doen.
Ik zou wel willen reageren als ik begreep wat je precies bedoelt met 'om een device als veilige device te herkennen'.
Gaat het om het vaststellen dat een bepaalde partij het apparaat als veilig heeft bestempeld?
Of wil je een technische check doen en voor jezelf vaststellen dat het apparaat veilig is?
En veilig waarvoor?
Laten we het maar houden op 'betrouwbare apparaten'. Die zeker weten van jezelf zijn, waardoor die vrijgesteld worden van 2FA.

Reageren