What are the best practices for implementing temporary transaction password feature for website?
For e.g in banking/finance scenarios like - While transfering funds from one account to another, a transaction password is required - While commiting a trade, a transaction password is required - etc.
The password should be temporary and time based i.e. this password should not work after x minutes has elapsed.
What algorithm would you recommend? Do you suggest keeping track of used passwords i.e. store used password in some store?
Some website use a OneTimePassword device. Apart from this please feel to highlight any other strategy you think may be appropriate.
Any other thoughts/suggestions/algorithm welcome.
Edit: Based on question from 'lassevk'
- The password would be communicated by email/phone/sms.
- There is no third site involved.
I require this for additional level of security for critical points in the application. This may also be called as "AuthenticationCode".