Mifare Сверхлегкий C Lock

Я пытаюсь заблокировать тег Mifare Ultralight C. Я хочу, чтобы страницы NDEF от 0x04 до 0x27 были доступны только для чтения. Я думаю, что это может быть достигнуто с помощью Ndef.makeReadonly(),

Кроме того, я хотел бы установить для страниц с 0x29 по 0x2F защиту паролем (для чтения и записи), чтобы к ним можно было получить доступ только после успешной аутентификации. Я изо всех сил пытаюсь понять, какие байты необходимо установить в байтах блокировки (страница 0x28, байты 0, 1) и нужно ли также устанавливать сектора 0x2A и 0x2B.

1 ответ

Решение

Я пытаюсь установить страницы NDEF от 0x04 до 0x27 только для чтения. Я думаю, что это может быть достигнуто с помощью Ndef.makeReadonly().

Не обязательно, Ndef.makeReadonly() может только установить флаг только для чтения в контейнере возможностей (в соответствии со спецификацией операции тега типа 2 форума NFC).

Если вы хотите убедиться, что установлены фактические биты блокировки, вы должны подключить тег как NfcA или же MifareUltralight пометьте технологию и введите команду записи для битов блокировки.

NfcA nfcA = NfcA.get(tag);
nfcA.connect();

byte[] result1 = nfcA.transceive(new byte[] {
    (byte)0xA2,  /* CMD = WRITE */
    (byte)0x02,  /* PAGE = 2    */
    (byte)0x00, (byte)0x00, (byte)0xFF, (byte)0xFF  /* DATA = lock pages 3..15 */
});

byte[] result2 = nfcA.transceive(new byte[] {
    (byte)0xA2,  /* CMD = WRITE */
    (byte)0x28,  /* PAGE = 40   */
    (byte)0x0F, (byte)0x00, (byte)0x00, (byte)0x00  /* DATA = lock pages 16..27 */
});

Также см. Mifare Ultralight: блокировка определенных страниц для кодирования битов блокировки.

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

Используя команду записи, которую я показал выше, вы сначала запишите свой ключ аутентификации на стр. 44..47. Затем вы должны написать AUTH1 (стр. 43) как все нули. Наконец, вы должны написать AUTH0 (стр. 42) как 0x29 0x00 0x00 0x00 требовать аутентификацию для страниц 41 и выше. На самом деле я бы предложил заблокировать страницы 40 и выше, чтобы никто не мог установить биты блокировки для этих страниц. В качестве альтернативы, вы можете установить блокирующие биты блока (т.е. записать 0x1F 0x0F 0x00 0x00 на стр. 40) так, чтобы биты блокировки для разблокированных страниц не могли быть изменены.

Другие вопросы по тегам