nikeee
nikeee

Reputation: 10715

MIFARE Ultralight C Challenge-Response One-Sided Authentication

I have a Mifare Ultralight C card and want to authenticate its genuineness using an untrusted reader. Essentially, I want to ensure that the untrusted device scans the card to verify it has not been cloned or forged.

The only trusted entity is a server, which can securely hold a shared secret, such as a 3DES key or a public key. Therefore, I believe some form of challenge-response process is necessary.

It appears that the AUTHENTICATE command of the Ultralight C performs mutual authentication. While this could work, it has a significant drawback: it unlocks the card and is vulnerable to MITM (Man-In-The-Middle) attacks. This behavior exposes the card to the untrusted reader, which I want to avoid.

I couldn’t find a way to simply perform an encryption like 3DES(challenge) for a one-sided challenge-response process. The AUTHENTICATE command also seems to prioritize reader validation, so I cannot "abort" authentication after verifying the card's authenticity.

I don't think putting some signed data on the tag woulöd work, as this opens the ability for cloning and/or replay attacks.

Is there a way to achieve this using the Mifare Ultralight C? What are the cheapest and still safe alternatives, if this is not possible achieve with an Ultralight C?

Upvotes: 0

Views: 23

Answers (0)

Related Questions