readiv

Задачка: Помогите определить алгоритм расчета keyA по uid

Рекомендуемые сообщения

Привет. Есть некое семейство устройств, которое работает с картами mifare clasic 1k.

К ним есть 12 прекрасно работающих карт. Так же есть большая куча чистых карт, тоже mifare clasic 1k.

Хотелось бы их тоже заставить работать с данными девайсами. При изучении нормально работающих карт,

выяснилось что у них у всех разный ключ A.

 

Видимо девайс сначала считывает UID, затем по какому-то алго рассчитывает ключ и уже с его помощью читает карту.

Вот собственно и вопрос, как определить этот алго. Вот список N:uid:crc:key от рабочих карт:

 

N		----UID----		crc		key
1		0a f8 ee 08		14		d8 f6 fc cf d7 ce
2		5a 12 e0 09		a1		8a a6 e9 c3 d6 9c
3		f7 ce ae 2f		b8		82 f4 c8 8f f4 94
4		ba fe 49 0a		07		d4 b8 f8 97 d5 c6
5		9a a4 02 0a		36		95 98 a0 df d5 86
6		6a 02 e1 09		80		89 68 f9 c3 d6 9e
7		fa 28 f1 08		2b		c4 f8 d1 d3 d7 d6
8		9a 0c e9 09		76		b8 98 f5 cb d6 ae
9		8a d9 0f 0a		56		5c 88 dd d3 d5 4e
10		aa d8 e9 09		92		54 a8 dc cb d6 46
11		5a 8c 09 09		d6		d8 a6 88 d7 d6 ce
12		0a 24 12 09		35		96 f6 dd cf d6 84

 

Корреляция явно есть и вроде как и совсем несложная.

 

Байты UID прям явно соотносятся с центральной частью ключа.

 

1. Карты 2,6,8,10,11,12: Последнему байту 09 в UID соответствует предпоследний байт d6 в key.

2. Карты 1,2,4,5,6,7,8,9,10,11,12: Последний байт. Какое-то алго на уменьшение 08=>d7,09=>d6, 0a=>d5

 

3. Карта 11, 3 и 4 байты равны 09. В ключе 4 и 5 равны d7,d6

 

4. Карты 5 и 8, 1-ый байт равен 9a, второй байт ключа 98, а карты 2 и 1: 5a=>a6

 

5. Так же есть взаимосвязь между первым и последним байтом ключа. Смотрим карты номер 1 и 11.

Причем взаимосвязь симмитричная. Это следует если сопоставить ключи карт 3 и 12, 1 и 7

 

6. В первых полубайтах ключей отсутствует цифры 0,1,2,3,4.

 

Прошу помощи. Может кто-нибудь ещё что заметит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скорее всего считыватель получив uid будет к карте обращаться уже нужным, сгенерированным крипто ключем, что означает что лучше и легче просто смкеем или самоделкой граббером получить от считки нужные ключи. По такому же алгоритму работают считыватели iL, их так и копируют.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть проснифав проксмарком обмен девайса и чистой карты можно определить нужный ключ. Верно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, проснифав я точно не знаю, а вот командой hf mf sim u x можно попробовать, но если не получится то лучше специализированным девайсом воспользоваться

А, и для той командой что я предложил понадобится ещё mfkey

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Сработало.

c:\ProxSpace\official\win64>mfkey32 4474a97f 01020304 765b90f6 d4b0a4e0 e7c662cd c2dde7d6
MIFARE Classic key recovery - based 32 bits of keystream
Recover key from two 32-bit reader authentication answers only!
Recovering key for:
uid: 4474a97f
 nt: 01020304
{nr_0}: 765b90f6
{ar_0}: d4b0a4e0
{nr_1}: e7c662cd
{ar_1}: c2dde7d6
LFSR succesors of the tag challenge:
 nt': 20f8ed56
nt'': 3c2bcdad
Keystream used to generate {ar} and {at}:
 ks2: f44849b6
Found Key: [c0b8708b5fd6]

 

Уже проще. Теперь можно нагенерить ключей на основе uid типа 00000001, 1111111111, 22222222. И поизучать

 

00 00 00 00   df fc f9 df df cc
ff ff ff ff   dc fc f9 df df ce
00 00 00 01   de fc f9 df de cc
00 00 00 10   cf fc f9 df cf dc
00 00 01 00   de fc f9 df df cc
00 00 10 00   cf fc f9 cf df dc
00 01 00 00   de fc f8 df df cc
00 10 00 00   cf fc e9 df df dc
01 00 00 00   de fc f9 df df cc
10 00 00 00   cf ec f9 df df dc
00 00 00 01   de fc f9 df de cc
00 00 00 02   dd fc f9 df dd ce
00 00 00 03   dc fc f9 df dc ce
00 00 00 04   db fc f9 df df cc
00 00 00 05   da fc f9 df de cc
00 00 00 06   d9 fc f9 df dd ce
00 00 00 07   d8 fc f9 df dc ce
00 00 00 08   d7 fc f9 df d7 c4
00 00 00 09   d6 fc f9 df d6 c4
00 00 00 0a   d5 fc f9 df d5 c6
00 00 00 0b   d4 fc f9 df d4 c6
00 00 00 0c   d3 fc f9 df d7 c4
00 00 00 0d   d2 fc f9 df d6 c4
00 00 00 0e   d1 fc f9 df d5 c6
00 00 00 0f   d0 fc f9 df d4 c6
00 00 00 10   cf fc f9 df cf dc
00 00 00 11   ce fc f9 df ce dc

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А ключ точно правильно определился? Не всегда оно правильно работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вступить в беседу

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...