Перейти к содержанию
    

Добрый день. По ссылке дока уже не доступна. Не могли бы вы выложить этот файл на какой-нибудь файлообменник?

M2_02_MIFARE_Plus_RBt_07.pdf

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


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

Спасибо за доку.

По поводу катушек - важны характеристики. Некоторые китайцы пишут 80ма, но на деле там не больше 12. Я поставил хорошие изолированные катушки, и у меня со схемой описанной выше (без замены конденсаторов) работают все карты.

Пруф - https://www.youtube.com/watch?v=42DRSZrFyKc

 

На видео нет plus'а но он тоже работает (во всяком случае еще не персонализированная карта).

Изменено пользователем maddogmaycry

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


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

Что бы не дублировать тему, разобрался кто либо с PLUS?

Да, что Вас интересует?

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


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

Да, что Вас интересует?

Здравствутйе.

 

Пока собираю информацию но руки до кода пока не дошли. Когда начну, думал может кто пару моментов прояснит (если таковые появятся). А то пока начинал с Classic а потом и в последующем с Desfire EV1, то в одиночку было конечно весело, но долго :)

http://radiokot.ru/forum/viewtopic.php?f=2...199838#p3199838

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


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

В 10.07.2017 в 17:18, letni сказал:

 

Спасибо. Уже разобрался.

 

Если кому интересно, то вот эта дока полностью правдива M2-02_MIFARE-Plus_RBt_07.pdf, за исключением одного момента - в ней перевернутый порядок байт (0 -> 15; 1 -> 14 ..)

Читать и писать MFP у меня получилось.

Привет! проблема с таймаутом при аутентификации MFP SL3. не могу понять, в чем проблема..

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


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

Добрый день

Есть новые карты Mifare Plus 2K в режиме SL0. Для них получилось по инструкциям выше задать служебные пароли и пароли от секторов (через команды WritePerso и CommitPerso). У карт теперь поменялся SAK c 0x20 на 0x08. Как я понимаю карта теперь работает в режиме SL1.

Как её можно перевести в режим SL3?

Нужно в сектор записать значение и потом работать с этой картой в режиме SL3.

Из того, что удавалось найти в сети, написано, что нужно активировать протокол 14443-4, выполнить команду RATS и после этого авторизоваться в сектор 0х9003 с ключом который был задан через WritePerso.

Цитата

Yes, the “switch procedure” is a little bit tricky. With a blank card you start with SL0. Here you have to write the AES keys at (hex) blocknumber 9000 (Card Master Key), 9001 (Card Configuration Key), 9002 (SL2 Switch Key) and 9003 (SL3 Switch Key). For a MIFARE Plus S, address 9002 does not exist. With writePerso(), commitPers() and allowing layer 4 communication you switch to SL1. You switch to SL3 with an authentication to block 9003 with firstAuth() and also with allowing layer 4 communication.

Цитата

I'm theorizing that I am not properly allowing layer 4 communication. I've been able to write the AES keys at 0x9000, 0x9001, and 0x9003. However, I've only been able to authenticate with the SL1 Card Authentication Key at 0x9004. It looks like this is available in ISO14443-3 mode while the SL3 Switch Key requires ISO14443-4 mode, just as you suggested. This makes me think that I'm not properly enabling ISO14443-4 communication. Does that sound correct?

Цитата

“Layer 4 communication” is an option and you must set this option in SL0->SL1 and SL1->SL3. In SL0 you must do a write perso AND commit perso! In SL1 you make a “first authenticate” to block 9003 with the appropriate key. Do not forget to set also “Layer 4 communication”.

Тут как бы упоминается, что, возможно, где-то нужно активировать протокол 14443-4. Но, в контексте тех комманд которые выполнялись при программировании новых ключей, не понятно как именно это сделать.

Описание команды RATS пока найти не удалось. Как я понимаю, этой командой активируется протокол 14443-4?

При попытке авторизации в сектор 0х9003 приходит фрейм ошибки (возможно не от карты, а от микросхемы считывателя, используется считыватель на основе микросхемы NXP PN532).

00 00 FF 00 FF 00 00 00 FF 01 FF 7F 81 00 

Этот же считыватель может читать другие ключи Mifare Plus в режиме SL3 (проходить аутентификацию и читать значение из сектора).

Чип PN532 может не поддерживать всех функций 14443-4, а именно у него кажется нет готовой команды RATS.
При обнаружении совместимой карты он может сам отправить команду RATS, но изменить её параметры нет возможности. По-умолчанию используется FSL=0, что означает, что максимальный объем данных в команде может быть 64 байта.

How to program the RATS command in iso14443a initialization and anticollision

Может в моем случае проблема именно в считывателе?

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


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

Цитата

Описание команды RATS пока найти не удалось. Как я понимаю, этой командой активируется протокол 14443-4?

Реализация этой команды нашлась в проекте libnfс, в утилите nfc-mfclassic.

Там есть функция get_rats, которая используется, возможно, для получения подробностей о типе карты. Судя по коду, карточке передаётся команда

E0 50

через функцию считывателя InCommunicateThru.

// настройка считывателя
>>> [  9] 00 00 FF 03 FD D4 14 01 17
<<< [ 15] 00 00 FF 00 FF 00 00 00 FF 02 FE D5 15 16 00
// вызов функции InListPassiveTarget для поиска карточки    
>>> [ 10] 00 00 FF 04 FC D4 4A 01 00 E1
<<< [ 28] 00 00 FF 00 FF 00 00 00 FF 0F F1 D5 4B 01 01 00 44 08 07 04 84 3A F2 D5 76 80 0C 00
// ответ от карты, SAK=8
(8, 7, '\x04\x84:\xf2\xd5v\x80')
// функция RATS
>>> [ 10] 00 00 FF 04 FC D4 42 E0 50 BA
// ответ от карточки, Historical bytes
<<< [ 28] 00 00 FF 00 FF 00 00 00 FF 0F F1 D5 43 00 0C 75 77 80 02 C1 05 21 30 00 77 C1 1F 00
// После RATS пробуем снова обратиться к карточке
>>> [ 10] 00 00 FF 04 FC D4 4A 01 00 E1
// Но считыватель ее не видит
<<< [ 16] 00 00 FF 00 FF 00 00 00 FF 03 FD D5 4B 00 E0 00
(0, 0, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
// авторизация в сектор 9003 завершается ошибкой    
>>> [ 12] 00 00 FF 06 FA D4 40 01 70 03 90 E8
<<< [ 16] 00 00 FF 00 FF 00 00 00 FF 03 FD D5 41 27 C3 00

Кроме этого, в проекте libnfc (в файле nfc-anticol.c) встречается еще такая форма вызова команды RATS

uint8_t  abtRats[4] = { 0xe0, 0x50, 0x00, 0x00 };
...
if ((abtRx[0] & SAK_FLAG_ATS_SUPPORTED) || force_rats) {
    iso14443a_crc_append(abtRats, 2);
    if (transmit_bytes(abtRats, 4)) {
      memcpy(abtAts, abtRx, szRx);
      szAts = szRx;
    }
  }

Тут используется еще добавление контрольной суммы к команде.

 

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


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

Присоединяйтесь к обсуждению

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

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

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

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

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

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

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

×
×
  • Создать...