I'm developing a small CRM application that will have to store some sensitive data and I would like to (optionally) supply my users with the possibility to use a readerless smart card (aka "security token", "USB hardware key", etc) to protect their data. My application is aimed to the Linux/KDE platform and will be written in C++ with Qt 4.8 or 5.0. A cross-platform version (Linux/Windows/Mac) could be requested later. This application is aimed to a niche market traditionally characterized by small IT budgets.
I need a USB-Token / Smart-Card with these features:
- Ability to integrate with the existing Linux PAM authentication system
- Ability to integrate with the existing Linux EFS (encrypted file system)
- Ability to generate and store one or more user passwords/keys
- Ability to store some user data (protected/encrypted flash memory)
- Ability to use TWO different USB tokens with the same application (one for general use, the other one as a backup. The two token can/have to be totally equivalent)
- Ability to use a encrypted channel for the application/token communication (that is: some kind of protection against SW/HW keyloggers).
Any suggestion for a good hardware token for this task?
Please note that I would like to do some experiment/testing with this tool before adopting it so I would like to find a solution provider who allow me to download its SDK (maybe with a demo token or a software emulator) before buying tokens in any relevant quantity.
Did you have any good/bad experience with the existing manufacturers of security tokens? Can you address me towards a good product?