I am designing a workflow for issuing and acquiring of voucher cards for a client and the chosen technology for the cards has been mifare desfire.
I have a lot of experience with credit cards and we want to make the technology as POS friendly as possible, so the acquiring process could be made as simple as possible to plug into existing POS application workflows.
Also, the HSM is one of those really credit-card centric ones, so if I want to keep the security benefits of having a super-secured locked down HSM, I need to use "industry standards" cryptography.
The card being closed-loop I have total control over all of the components of the issuing and acquiring process. My naive first idea was to have the card generate a signature for the transaction, but looking at the card commands specification, nothing really corresponds to this, it's hardly more than a data store with encrypted communication.
So the answer could be "use the channel encryption Luke", but this encryption then needs to happen between the POS and the device meaning that either the POS needs to do an online call during the duration of the contactless swipe (bad mobile internets etc) or the POS needs to know the card keys, which isn't nice.
So my question is, did I really understand it right and the only way to secure this thing in acquiring is to:
- share the secret with the POS network
- have the POS behave like a channel to the host exchanging the secure messages, but I'm not sure if this is even an option
Am I missing something?