Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Протокол предотвращения столкновений ISO 14443-3 неверен

Автор вопроса: Martin SkalskýОтветов: 2

Недавно я переписывал цикл предотвращения столкновений ISO 14443-3 и обнаружил, что на самом деле он неправильно определен в стандарте.

Пример: две карты в поле войдут в цикл предотвращения столкновений:

  1. uid карты = AB CD EF GH IJ KL xx xx xx (10 байт / UID тройного размера)

  2. uid карты = AB CD EF 88 GH IJ KL (7 байт/UID двойного размера)

Они оба попадут на уровень каскада предотвращения столкновений 2, где:

  1. будет передавать: UID CL2 = 88 GH IJ KL - поскольку 88 является тегом каскада, указывающим, что его UID длиннее

  2. будет передавать: UID CL2 = 88 GH IJ KL - как его фактический UID

    =› нет коллизии.

PCB отправит SELECT, и обе карты ответят SAK, где будет коллизия во втором бите.

Стандарт ISO/IEC 14443-3 ничего не говорит о запрете uid[3] быть 0x88, только uid[0] запрещено иметь 0x88.

Я прав или я что-то пропустил? Я знаю, что очень мала вероятность (1 : 2^56) того, что две такие карты появятся на поле одновременно. Но все же это неправильно (и гендиректор компании, в которой я работаю, обязательно придет посмотреть, что мы делаем с двумя такими карточками в кошельке).

  • Не могли бы вы перефразировать это предложение: Нигде в стандарте iso 14443-3 не написано, что uid3 не может быть 88, только uid0 не может быть 88. Я не совсем понимаю. Marcus Müller 18.09.2015

nfcstandardsisocontactless-smartcardsmartcard-reader

Ответы

Ответ 1 · рейтинг 6 · Michael Roland

Вы явно не имеете в виду последнюю версию стандарта ISO/IEC 14443-3. Эта проблема существовала в версии стандарта 2001 г. и была исправлена ​​в Поправке 1 (в 2005 г.) путем добавления пункта:

Значение '88' каскадного тега CT не должно использоваться для uid3 в UID двойного размера.

Я ожидаю (хотя и не проверял), что это относится и к версии стандарта 2011 года.

Ответ 2 · рейтинг 2 · Marcus Müller

Как то, что происходит с p = 2 ^ -56, не подходит для использования в стандарте беспроводной связи? Вероятность возникновения шума, нарушающего любую коммуникацию, вероятно, намного выше!

Следовательно: Практические стандарты имеют практические последствия. Посмотрите, например, на хеш-функции. Очевидно, что ни один хэш не свободен от коллизий, пока хэш короче хэшированных данных, но вероятность того, что что-то случайно изменит хешированные данные на ложные данные с тем же хешем, настолько мала, что на практике ею можно пренебречь. Криптография зависит от злоумышленника, а не от чистой удачи, находящей правильный ключ с первой попытки; машиностроение - это все "о, все эти атомы железа расположены в аккуратной металлической сетке, поэтому вероятность разрушения кристалла, проходящего через всю стальную балку, поддерживающую этот небоскреб, действительно очень мала".

2^-56 действительно очень мало.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы