0

The german ChipTAN (https://en.wikipedia.org/wiki/Transaction_authentication_number#ChipTAN_/_CardTAN) system calculates a TAN that is send to the banking server to proof the transaction. The number is usually 6-8 digits long. But how can this short number be secure?

In my opinion a secure TAN has to be calculated from the receivers bank account number, the transfer amount, the date/time and a secret that is only known by the bank and the user.

But how can this all be calculated into 8 digits? In my oppionion this is highly vulnerable to collision attacks. And I also think that the secret could be easily calculated if an attacker can catch multiple TANs. If an attacker could catch multiple TANs and also knows the algorithm he can find a key that can reproduce those TANs. And there is a high chance that this value may work for new TANs as well.

Is this system as vulnerable as described? Or do I misunderstand something?

3

In my opinion a secure TAN has to be calculated from the receivers bank account number, the transfer amount, the Date/Time and a secret that is only known by the bank and the user.

From the Wikipedia article you refer to "The TAN generated is specific to the bank card as well as to the current transaction details. "

But how can this all be calculated into 8 digits? In my opionion this is highly vulnerable to collision attacks.

Collision attacks only matter if you can do a brute force attack against the system asking for the TAN. I'm not sure about exactly this system but it is common to both limit the amount of queries from one system and also limit the number of tries in total. My guess is that you have only a single or a few tries to guess the TAN and if this fails you have to create a new TAN based on new transaction details (i.e. new time).

If an attacker could catch multiple TANs and also knows the algorithm he can find a Key that can reproduce those TANs.

This argumentation is wrong. For example take a simple algorithm like sha256(secret + transaction_details): even if the secret is always the same and you know some transaction details and some output TAN's you will not be able to compute the secret with reasonable costs and time - i.e. reasonable meaning that the costs is lower than the gain and the secret has not been changed already after your computation is done. And, it is easy to harden the algorithm even more, just look at password hashes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.