Ok so I need 2 of the 3.
Something the user knows.
Something the user has.
Something the user is.
I have a system that is exposed to the internet and we need clients to connect in a secure manner to satisfy our security standards.
I'm thinking when a user registers to use our system we send them an application that they install on their home system. The application generates a key based on a timed randomness algorithm. Our application server has the same algorithm so when the user submits their credentials with the key we know that they are a legitimate user.
Is this a valid method of 2 factor authentication?
What is another way of doing this?
Are there any pitfalls that I should be aware of?
Thanks for your help!