For a project we working on we need to implement multi-factor authentication. We where planning to do this with an NFC card and an NFC reader which we are going to build with an Arduino.
The planned workflow:
- A user logs in on the site; credentials are checked. There will be a flag in the database saying that the users needs to use their keycard.
- The website will use ajax to call a desktop service which is installed. The service calls the usb connected Arduino to say that the user needs to hold the keytag for the device.
The user does this. The key inside the keycard is transmitted back to the service. The service passes this trough to the server. When accepted:
1: The server set the flag in the database on true
2: It answers to ajax request from the browser to tell it can continue.
Would it be a good idea to implement your own method like this? There is some discussion about it. How else can this be implemented? With a existing protocol?
A requirement is that the multi-factor works on multiple devices (Windows, Mac, Android) and in all browsers.
Thanks for the replies. As I expected there are better options. But I can't find the right solution. I need all browser support. (http://caniuse.com/#feat=u2f). Is there a program that extends u2f support to all browsers?
I don't want to use phones. Just keycards.