My (idiot's) HID iCLASS DY Cloning Guide

yes, ki0 is just the legacy key, you can’t use --ki0 on anything other than a legacy key.

Legacy - Uses globally static identical keys across cards (one of like 4 types of legacy, Ki0 being the default, others are weird sisters you rarely see)

SE - Uses a KDF known only to the internal SAM within the reader to build keys relevant to individual cards, making them applicable to all SE systems.

Elite - uses a shared base key for the system deployment that is “rolled” against a base card relevant to its current encoding scheme (SE/legacy) forming a uniquely generated key for each card tied to CSN, which the reader is able to generate upon first contact after establishing encoding scheme (via AIA) and reading the CSN, elite keyed cards can only be used within the system they’re encoded for and not applicable to other elite keyed systems unless they happen to have the same elite key (this doesn’t happen by accident, HID doesn’t allow two clients to share a key)

SIO is a second layer of security that can be applied to all card types regardless of what kind of keying they have, encoding the PACs data using criteria from the specific card and only allowing that specific SIO blob to be allowed.

some systems will use SIO, SE, Elite on the card you’re given but still allow legacy to pass PACs which makes all of those effectively useless security measures.

1 Like

So if we’re looking at this diagram from the datasheet, the “secret key” would be the same key as --ki, and the “diversified key” is the same key which is output by calcnewkey and stored on the card itself?

And it’s that “secret key” which is “hardened” in various ways in SE/Elite systems? Or do they use an entirely different authentication mechanism?

1 Like

Great post I had been at this for a week learning how to use the proxmark etc and trying various methods, but this one (along with a shortcut from Aox… worked a treat. Thank you for clear step by step instructions. A true one pager.

3 Likes