Предисловие

Всем привет! Меня зовут Дмитрий Попов, я менеджер продукта в компании Sigur - управление доступом.

Про RFID-карты и их уязвимости написано многое. Но если посмотреть внимательно, то большинство материалов — это либо инструкции по клонированию, либо обзоры форматов карт.

Очень мало кто рассказывает, как вообще работают считыватели и карты изнутри: от физики процессов до обмена данными и механизмов защиты.

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

Рассматриваем все это в контексте применения в системах контроля и управления доступом (СКУД). В статье не будет нотаций про то, что требуется переходить на MIFARE Plus или DESFire, и про взлом и копирование карт MIFARE Classic. Надеюсь, этот материал поможет кому-то лучше разобраться в теме, а кому-то — просто с интересом заглянуть под капот привычных технологий.


Что скрывается за одним движением карты

Каждый раз, когда сотрудник подносит карту к считывателю, запускается процесс, который снаружи выглядит достаточно банально — считыватель у двери или целый турникет сигнализирует вам о разрешении доступа и вы проходите. 

Может показаться, что в этот момент происходит достаточно простой процесс, однако за этой простотой скрыта сложная система: генерация поля, питание карты, установление связи, аутентификация и передача данных. 

В обычной эксплуатации этот процесс незаметен. Всё должно происходить быстро и надежно. Но чтобы обеспечить такую незаметность и легкость, за десятки лет инженерам пришлось решить множество задач на уровне физики, протоколов и архитектуры устройств.


Физические процессы взаимодействия карты и считывателя

Давайте начнём с начала. Когда рядом со считывателем нет ни одной карты — может показаться, что он просто бездействует, но это совсем не так.

Он периодически «просыпается»: запускает генерацию электромагнитного поля и отправляет в эфир стандартные команды — что-то вроде «есть ли здесь кто-то из знакомых мне карт?». Ждет короткое время, и если ответа нет — «засыпает» обратно. Или продолжает опрашивать вхолостую — всё зависит от логики работы и реализации конкретного устройства.

Если карта действительно попала в поле и активировалась — она начинает отвечать. Считыватель принимает этот ответ, проверяет, что всё читается корректно в соответствии с его правилами работы и запускает полноценную сессию обмена. Дальше — аутентификация, сверка ключей, отправка данных на контроллер. Если всё сходится — доступ разрешён.

Сложно? Вроде нет, но давайте попробуем углубиться в конкретные этапы процесса.


Генерация электромагнитного поля считывателем

Как вы поняли вся история начинается не с карты, а со считывателя.

Он первым начинает работать, создавая вокруг себя переменное электромагнитное поле. Современные считыватели работают на частоте 13,56 МГц в соответствии с ISO/IEC 14443 — это международный стандарт для RFID ближнего действия. 

Внимание! Да, в этой статье мы рассматриваем работу с одним из популярных стандартов, который позволяет организовать защищенную работу в СКУД, и не рассматриваем работу с самыми популярными и небезопасными низкочастотными картами EM-Marine – считаем их out of date.

Как считыватель это делает? Внутри него есть миниатюрный радиопередатчик состоящий из генератора переменного тока, контура согласования антенны и собственно самой антенны, представляющей собой что-то вроде катушки индуктивности. 

Генератор высокой частоты запускает ток по катушке антенны. Катушка начинает «пульсировать», создавая переменное магнитное поле вокруг себя. Для максимальной эффективности антенна и согласующие элементы настраиваются так, чтобы образовать резонанс на нужной частоте.

В отличие от привычных нам радиоволн от антенн мобильной связи или Wi-Fi, здесь речь идёт о ближнем поле — основную работу делает не электромагнитная волна, а магнитное взаимодействие между считывателем и картой (такая технология фактически называется Near Field Communication).

В чем разница между электромагнитной волной и ближнем полем? Если кратко – волна “уносит” электромагнитную энергию вдаль от генератора, а ближнее поле это энергия которая пульсирует в пространстве около него — поле как бы не оторвалось от антенны. 

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

Карта на этом этапе еще «спит». Но как только карта попадает в зону действия поля, у неё появляется шанс «проснуться» — и начать диалог со считывателем.

Чтобы карта действительно «проснулась», ей нужно получить достаточно энергии. Для этого у неё есть своя антенна — тоже в виде катушки индуктивности, через которую карта не только получает питание, но и передаёт данные. Это происходит за счёт изменений магнитного потока, проходящего через антенну, — того самого, что создаётся в ближнем поле считывателя. 

Сложно? Помните уравнения Максвелла? Давайте упростим: энергия пульсирует вокруг считывателя, а в карточке есть настроенный на нужную частоту контур, который умеет забирать эту энергию из ближнего электромагнитного поля. Более того, карта умеет влиять на то, как оно пульсирует при помощи рассогласования этого контура. За счёт этого и происходит: во-первых — питание карты энергией, а во-вторых — передача данных от неё к считывателю.

Чуть выше я писал про зону видимости, точнее про условие достаточного уровня энергии, чтобы карта активировалась. Разберёмся, что это значит. 

Зона видимости — это и есть тот объём пространства, в котором поле считывателя достаточно сильное, чтобы карта (или идентификатор в любом другом форм факторе) могла работать. Для таких зон существуют свои стандарты: они определяют минимальный и максимальный уровни поля, в которых карта должна быть работоспособна и гарантировать качественный обмен информацией. Именно это и формирует ту самую дальность чтения.

Настройка антенны на резонансную частоту — чувствительная процедура. Изменение паразитной емкости на несколько пикофарад или добавление пары миллиметров к длине дорожки в согласующем контуре могут сместить частотный отклик, ухудшить добротность и привести к деградации амплитуды поля. Это напрямую влияет на зону действия считывателя и стабильность возбуждения карты.


Влияние окружающей среды на работу RFID-считывателя

Когда мы обсуждаем работу считывателя и карты, важно помнить: идеальные условия существуют только в лаборатории. В реальной жизни зона действия считывателя формируется не только самой антенной считывателя и карты, но и окружающей средой:

  • стенами;

  • рамами;

  • металлическими элементами рядом,

ну и конечно мистические явления, когда влияет неизвестно что, где без бубна и шамана не обойдешься. Как правило это электромагнитные излучения разной природы.

Все эти условия могут существенно изменить дальность и стабильность чтения карты.


Как металл влияет на электромагнитное поле считывателя

Металлические поверхности могут поглощать и деформировать электромагнитное поле.

 

При установке считывателя прямо на металл:

  • Поле «прижимается» к поверхности;

  • Зона действия становится сильно сжатой и направленной вбок, а не преимущественно вперёд;

  • Резонансные свойства антенны считывателя тоже меняются, что делает передатчик менее эффективным;

  • Возможна потеря дальности чтения в 2–3 раза, а соответственно и вероятности нормально считать данные с карты.

В некоторых случаях возможно появление мертвых зон, где карты вообще не считываются.


Как минимизировать влияние металла

  1. Использовать ферритовые прокладки между считывателем и металлической поверхностью:

    1. Феррит экранирует заднюю сторону поля.

    2. Поле «выправляется» и направляется вперёд.

  2. Компромисс в конструкции считывателя:

    1. Иногда на стороне разработчика можно заложить некую «среднюю» настройку — она чуть снижает характеристики поля в идеальных условиях (без металла), но зато дает более стабильную работу при установке на металл или рядом с ним. Это компромисс, который помогает минимизировать эффект деградации поля без необходимости в дополнительных прокладках.

  3. Тестировать реальную зону действия на месте установки:

    1. Тестируйте дальность считывания на объекте в конкретных условиях, а не только на столе или только по параметрам в паспорте устройства.

Условия установки

Эффект на поле

Что делать

Открытая стена (бетон, дерево)

Зона действия вперед и в стороны

Стандартная установка

Прямая установка на металл

Поле сплющено, уходит вбок

Использовать ферритовую прокладку

Установка с зазором от стены 5–10 мм

Частичное восстановление зоны

Допустимо при отсутствии прокладки


Ошибка установки: считыватели напротив друг друга

Иногда рядом с дверью устанавливают два считывателя — один для входа, второй для выхода — строго напротив друг друга. Точнее, задней частью к задней части считывателя.

Это приводит к наложению электромагнитных полей и типичным проблемам:

  • Карта может считываться двумя устройствами одновременно;

  • Возможны ошибки в передаче данных или нестабильная работа – считывается не с первого раза и сильно уменьшается дальность чтения;

  • В некоторых случаях карта вообще не определяется считывателем.

Как правильно устанавливать считыватели при двухстороннем проходе:

  • Смещайте считыватели по горизонтали.

    Не устанавливайте считыватели строго друг напротив друга. Лучше сместить их в стороны на 30–40 см. Так вы минимизируете наложение электромагнитных полей и предотвратите одновременное считывание одной карты двумя устройствами;

  • Разносите считыватели по высоте.

    Если нет возможности сместить их по горизонтали, например, из-за особенностей конструкции двери, можно установить один считыватель выше стандартного уровня, а другой — ниже. Это также уменьшит пересечение полей.


Питание карты от поля считывателя

Считыватель установлен и запущен. В штатном режиме он с заданной периодичностью формирует вокруг себя переменное электромагнитное поле на нужной частоте. Следующая задача — «разбудить» карту.

Считыватель установлен и запущен. В штатном режиме он с заданной периодичностью формирует вокруг себя переменное электромагнитное поле на нужной частоте. Следующая задача — «разбудить» карту.

Дальше для примера мы возьмем достаточно популярный и востребованный на российском рынке формат карт Mifare.

RFID-карта, используемая в системах контроля доступа, — это пассивное устройство. У неё нет ни батареи, ни собственного источника питания. Вся энергия, необходимая для её работы, поступает из переменного магнитного поля, создаваемого считывателем на частоте 13,56 МГц – в рамках ISO/IEC 14443).

Когда карта попадает в зону действия поля, в её антенной катушке индуцируется переменный ток. Эта катушка вместе со встроенным конденсатором образует LC-контур, настроенный на резонансную частоту поля считывателя. Резонанс позволяет максимально эффективно извлекать энергию из поля — даже при его относительно небольшой амплитуде.

Если поднести карту в поле считывателя, то в ее антенне наводится переменный ток. Антенна, в данном случае, выполняет 2 функции:

  • Источник питания карты. Переменный ток, через выпрямитель, превращается в постоянный ток и заряжает конденсатор достаточной емкости. Таким образом обеспечивается питание всей микроконтроллерной системы управления бесконтактной карты;

  • “Общение” между картой и считывателем. Антенна, как часть колебательного контура карты, является приемником-передатчиком. Посредством модуляции электромагнитного поля происходит обмен данными между картой и считывателем.

Индуцированный ток поступает на выпрямитель – обычно это диодный мост или специализированная схема, затем сглаживается фильтрами и стабилизируется с помощью регуляторов напряжения. Полученное постоянное напряжение, обычно в пределах 2-3.3В   подается на логическую часть микросхемы карты.

Микросхема «просыпается»: проходит инициализацию питания, запускает микроконтроллер и переходит в режим готовности к обмену данными. Всё это происходит за несколько миллисекунд, незаметно для пользователя — именно на этом этапе начинается работа всей системы.

На полный запуск микроконтроллера стандарт ISO 14443 выделяет 5 миллисекунд.

Проще говоря. Считыватель посылает в пространство магнитную энергию, а карта «ловит» ее и запускает свою электронику.

Если резонансная частота карты не совпадает с частотой поля считывателя, энергия передаётся неэффективно. В результате — недостаточный ток, нестабильное питание микросхемы и, как следствие, либо отсутствие активации, либо обрыв связи при попытке обмена данными.


Что критично для питания карты

Фактор

Влияние

Частота поля

Должна строго совпадать с резонансом карты

Сила поля

Недостаточная мощность приводит к проблемам с активацией карты

Расстояние до считывателя

Чем дальше — тем слабее индуцируемый ток

Качество антенны карты

Размер, витки, настройка LC-контуров – все это зависит от производителя

Что может пойти не так

  • Если антенна карты повреждена (например, отломан виток) — карта не активируется;

  • Если считыватель экранирован металлом — поле ослабевает, питание становится нестабильным – именно так, кстати, работают чехлы и холдеры с защитой для банковских карт;

  • При несовпадении частот LC-контуров теряется эффективность передачи энергии, карта может не успеть активироваться.


Запуск и подготовка ответа

После того как карта получила питание от поля считывателя, она переходит к следующему важному этапу – запуску микросхемы и подготовка к первому ответу.

Микросхема в карте — это компактный микроконтроллер с памятью и интерфейсами связи. Но в отличие от обычных микроконтроллеров, работающих в смартфонах или компьютерах, здесь всё достаточно энергоэффективно: питание ограничено, время на ответ минимальное.

Как выглядит последовательность запуска работы карты?

  1. Инициализируется питание. Стабилизированное напряжение подается на основные узлы чипа. Выравниваются внутренние опорные напряжения, активируются регистры;

  2. Сбрасывается и стартует контроллер. Микроконтроллер карты проходит быструю процедуру сброса и стартует с начальной инструкции;

  3. Проверяется готовность интерфейса связи. Карта должна быстро определить, что вокруг есть активное поле, и подготовить свой передатчик для ответов методов обратной модуляции.

  4. Подготовка UID. Микросхема готовит свой уникальный идентификатор (UID) к отправке в ответ на команду считывателя. В некоторых типах карт (например, MIFARE Classic) UID зашит жёстко. В других, например, DESFire могут использоваться динамические UID.

  5. Ожидание команды. Карта переходит в режим прослушивания поля и ждет запроса от считывателя (обычно это Request и Wake-up команды, которые описаны в протоколе ISO/IEC 14443).

Если питание нестабильное или интерфейс не успевает инициализироваться, карта не сможет корректно ответить — считыватель её «не увидит». Медленные или поврежденные карты иногда проявляют странные симптомы: сбои в антиколлизии, обрыв сессий при слабом поле. С точки зрения наблюдателя, определить причину невозможно.


Первичный обмен данными: передача UID

После того как карта активировалась, она готова сделать первый шаг в общении со считывателем: отправить свой UID – уникальный идентификатор. Это базовый этап, с которого начинается вся сессия взаимодействия. К этому моменту со стороны кажется, что процесс на этом и закончится, но на самом деле даже этот процесс продуман и стандартизирован до мелочей.

Как это работает

Мы уже подсветили раньше, что для примера берем тип карты Mifare. Спускаясь глубже ясно, что внутри тоже есть специализация и разделение на типы. Остановимся на популярном в СКУД типе карт Type A реализуемых по стандарту ISO/IEC 14443, хотя конечно иногда вы можете столкнуться и с Type B, например в специфичных отельных системах.

ISO/IEC 14443 определяет два типа карт - Type A и Type B, часть 2 определяет различия модуляции сигнала и способе кодирования, а часть 3 - в протоколах. 

Команды REQA и WUPA относятся к типу A, как и все остальные команды с A на конце. Request Command, Type A и Wake-Up Command, Type A. Для Type B это команды REQB и WUPB соответственно. Также между типами А и Б существует разница в подходе к процессу антиколлизии.

Как в общих чертах происходит процесс:

  1. Рассылка команды REQA или WUPA от считывателя. Считыватель регулярно рассылает короткие команды в своём поле.Они выполняют роль запроса: «Есть ли кто-нибудь живой в зоне действия?»;

  2. Ответ карты — ATQA. Карта отвечает специальным коротким ответом ATQA (Answer To Request), в котором: сообщает базовую информацию о себе (тип, поддерживаемые протоколы) и намекает, сколько UID байт будет передано (4, 7 или 10 байт).

  3. Антиколлизия. Если в поле считывателя попадает несколько карт, начинается процедура «разруливания ситуации», чтобы каждая карта могла быть опрошена по отдельности и нужная карта прочитана. Карты по очереди передают свои UID.

  4. Передача UID. Карта передает свой уникальный идентификатор. UID — это последовательность байт, которая в картах ISO/IEC 14443-3 определяет каждую карту в мире.

  5. Команда SELECT. Считыватель получает UID и отправляет SELECT — окончательное подтверждение работы именно с этой картой. 

Еще несколько важных моментов об UID

  • UID не шифруется и передается без попытки его скрыть или зашифровать, именно поэтому его так легко клонировать при использовании уязвимых картах вроде EM-Marine или MIFARE Classic, HID Prox II;

  • В защищённых картах (например, MIFARE DESFire EV2) используется внутренний UID для привязки к сессии и может быть применён механизм random UID (псевдослучайный UID);

  • Размер UID зависит от технологии карты: в Mifare это может быть 32, 56 или 80 бит. Карт с поддержкой 80 бит для UID в индустрии систем контроля доступа я не встречал, но в самом стандарте такая возможность заложена. Если рассматривать другие типы карт, то разных карт по битности можно насчитать десятки.

На этапе передачи UID закладывается вся дальнейшая сессия: если UID был перехвачен или подделан, считыватель может принять неправильное решение о доступе. Поэтому современные системы всё чаще требуют не просто UID, а полноценную аутентификацию карты после его получения.


Передача данных методом обратной модуляции нагрузки (Load Modulation)

Когда карта готова передать свой ответ, например, UID, она сталкивается с одной технической проблемой: у неё нет собственного передатчика.

Карта не может сама генерировать радиоволны. Всё, что у неё есть — это энергия, полученная от поля считывателя, и возможность немного изменить это поле, чтобы передать информацию обратно.

Как работает Load Modulation

Карта подключает и отключает дополнительную нагрузку (обычно — крошечные резисторы или конденсаторы) к своей антенне. Эти микроскопические изменения создают модуляцию в электромагнитном поле считывателя, что влияет на несущий сигнал.

Считыватель, в свою очередь, замечает изменение несущего сигнала и восстанавливает переданные данные.

Процесс можно представить на примере простого эксперимента с зеркалом и фонариком. Представьте, что вы направляете луч фонарика на зеркало, и свет отражается обратно. В этой аналогии свет от фонаря – это несущий сигнал от считывателя, постоянное электромагнитное поле, которое он создает. Теперь представьте, что зеркало может изменять свою отражательную способность: становиться более или менее отражающим. Эти изменения интенсивности отраженного света и есть модуляция сигнала. Именно так карта передает данные: изменяя нагрузку на свою антенну, она модулирует электромагнитное поле считывателя, а считыватель детектирует эти изменения и обрабатывает информацию.

Этот механизм позволяет картам работать без батареек, экономить энергию и быть крайне надёжными.


Процедура антиколлизии – когда в поле несколько карт

Когда в зоне действия считывателя оказывается сразу несколько RFID-карт, возникает вполне ожидаемая проблема: если все карты начнут отвечать одновременно — будет «каша». Это, кстати, проблема некоторых устаревших стандартов.

Чтобы избежать этой ситуации, в протоколе ISO/IEC 14443 предусмотрена специальная процедура — антиколлизия.

Как она работает?

  1. Считыватель отправляет общий запрос (REQA): запрос не конкретной карте, а «всем, кто меня слышит»;

  2. Карты начинают откликаться: каждая формирует свой ответ, не зная о наличии других карт поблизости. Если сигналы накладываются, считыватель определяет коллизию и инициирует пошаговую процедуру опроса;

  3. Пошаговая разборка UID: если сигналы от нескольких карт пересекаются, считыватель запускает специальную процедуру разборки UID по битам:

    1. Карты «разбиваются» на группы по первым битам своего UID;

    2. Считыватель уточняет запросы: «Те, у кого первый бит — 0, отзовитесь!»;

    3. Далее фильтрует карты по следующим битам.

  4. Выбор одной карты:

    1. В итоге считыватель находит карту с уникальной комбинацией битов и «выбирает» её для дальнейшего общения (SELECT).

Почему это важно?

Без антиколлизии считыватель либо не увидел бы ни одну карту, либо перепутал бы идентификаторы. Работа антиколлизии критична для стабильного доступа в условиях высокой плотности проходов — например, в бизнес-центрах, на проходных заводов или на других объектах в часы пик.

Прочитать подробнее о процессе и рассмотреть схемы можно в источнике самих стандартов карт.


Передача SAK: финальный этап выбора карты

После завершения процесса антиколлизии, когда считыватель получил UID карты, взаимодействие не останавливается. Считыватель отправляет специальную команду SELECT, указывая, с какой картой он хочет продолжить работу.
В ответ карта передает сообщение SAK (Select Acknowledge) — короткий, но очень важный ответ для последующей коммуникации.

Что сообщает SAK

Подтверждает, что карта выбрана правильно. Указывает, нужно ли продолжать выбор (если UID многоуровневый).Информирует считыватель о возможностях карты, например, поддержка аутентификации, тип карты.

Если в SAK установлен бит каскадирования (cascade bit) считыватель воспринимает это как факт незаконченной передачи всего UID – передана только часть. Считыватель переходит на следующий уровень - каскад и продолжает процесс выбора карты.

Если бит каскадирования сброшен, считыватель завершает процесс идентификации и может начинать процедуру аутентификации или сразу обмена данными.


Аутентификация карты: когда UID уже недостаточно

Передача UID — это только первый шаг. Чтобы система контроля доступа могла уверенно разрешить проход, считыватель должен проверить подлинность карты. В противном случае любой, кто клонировал UID карты, а это несложно даже на многих старых картах Mifare, сможет получить доступ.

Для защиты используется процесс аутентификации — обмен данными, в котором карта должна доказать, что у неё есть секретные ключи. Аутентификация — это процедура взаимной проверки между считывателем и картой, чтобы удостовериться, что обе стороны знают секретный ключ.

Как устроена аутентификация 

Пример командной последовательности для MIFARE Plus EV2 (уровень SL3, AES)

  1. Инициализируется сессия. Проходит команда от считывателя начать процедуру аутентификации на определённом уровне доступа;

  2. Передается вызов (Challenge). Считыватель генерирует случайное число (nonce) и отправляет его карте;

  3. Картой обрабатывается вызов и отправляется ответ (Response). Карта шифрует полученный nonce с использованием секретного ключа и отправляет зашифрованный ответ;

  4. Проверяется ответ. Считыватель дешифрует ответ карты и сравнивает с ожидаемым результатом;

  5. Устанавливается сессионный ключ. В случае успеха устанавливается временный сессионный ключ для дальнейших операций;

  6. Запускается защищенный обмен. Все дальнейшие команды шифруются на основе сессионного ключа.

Процесс аутентификации можно рассмотреть более подробно
  1. Команда от считывателя: First Authentication Command (или просто Authenticate-First)

    Указывает идентификатор ключа, который будет использоваться для сессии.

    Передает Random A, зашифрованный транспортным, грубо говоря дефолтным ключом (если это первый контакт, когда происходит эмиссия карты) или существующим мастер-ключом.

  2. Ответ карты

    Карта отправляет свой Random B, зашифрованный тем же ключом.

    Обычно: Карта расшифровывает Random A, Генерирует собственный Random B, Отправляет Random B, зашифрованный сессией.

  3. Второй этап аутентификации

    Команда считывателя: Second Authentication Command

    Считыватель получает Random B, Выполняет определенную операцию (обычно поворот Random B на один бит или другое задание), Отправляет обратно зашифрованное сообщение, включающее обработанное Random B.

  4. Подтверждение успешной аутентификации

    Если всё выполнено правильно, карта принимает сессию.

    Оба устройства теперь вычисляют сессионный ключ, производный из Random A и Random B.Random A — случайное число от считывателя (генерируется новым каждый раз).

    Random B — случайное число от карты.

Детали обработки Random B (например, точная операция сдвига или перестановки) не описаны публично. Формула расчета Session Key не раскрыта публично, так как является частью проприетарного протокола NXP.

Какие алгоритмы используются

  • MIFARE Classic: Использует собственный алгоритм Crypto1 (на данный момент устаревший и уязвимый).

  • MIFARE Plus (SL3) и DESFire: Используют стандартные криптографические методы:
    AES-128, иногда 3DES.

  • Мобильные идентификаторы (BLE/NFC): Чаще всего используют TLS-канал или собственные механизмы аутентификации приложений.

Важные моменты

  • При аутентификации используется динамический обмен: даже если злоумышленник перехватил один сеанс, он не сможет повторить его снова (защита от replay-атак);

  • Без успешной аутентификации карта не может выполнять команды чтения, записи или передачи других данных.

Именно на этапе аутентификации система реально отличает оригинальную карту от клона.

На старых картах, где проверка ограничивалась только UID, взлом был делом нескольких минут. Современные карты с аутентификацией защищают доступ даже в случае перехвата сигнала.


Защищенный обмен данными (Secure Messaging)

После успешной аутентификации считыватель и карта получают общий сессионный ключ. Но зачем он нужен, если аутентификация уже пройдена?

Ответ прост: передача данных между картой и считывателем также должна быть защищена. Иначе обмен можно было бы перехватить и воспроизвести. Без шифрования передаваемых команд любой злоумышленник мог бы перехватить команды чтения, записи, управления доступом и использовать их повторно или изменить.

Именно поэтому включается режим Secure Messaging. Процесс включает шифрование всех команд и ответов между считывателем и картой сессионным ключом. Проверку целостности - каждое сообщение сопровождается Message Authentication Code (MAC) – специальной криптографической подписью, которая защищает сообщение от подделки или изменения. Поддержку разных уровней защиты –  в зависимости от настроек, используется только MAC (проверка подлинности без шифрования содержимого) или MAC + Шифрование (полная защита содержимого и целостности).


Настройка ключей карт и считывателей: кто и как управляет аутентификацией на практике

Когда мы говорим об аутентификации карты, важно помнить: сама по себе карта не знает, какие ключи использовать по умолчанию. Ключи и политика доступа определяются администратором системы на этапе настройки.

Что настраивает администратор при развертывании системы

  1. Мастер-ключ карты (Master Key):

    1. Устанавливается в память карты;

    2. Является основным для защиты от несанкционированного доступа к данным карты и проведения аутентификации;

    3. Обычно AES-128 – ключ в современных картах (например, MIFARE Plus EV2, DESFire EV2/EV3);

  2. Ключи для приложений или секторов:

    1. Если карта поддерживает несколько приложений (например, DESFire), каждый из них может иметь свой набор ключей – часто такое используется на всяких кампусных проектах, в рамках которых запускается много разных не связанных сервисов;

    2. Они позволяют разделить доступ к разным областям памяти карты, например, разные зоны объекта или разные типы сотрудников. На практике на самом деле чаще всего устанавливаются одинаковыми.

  3. Настройка считывателей:

    1. В считыватели загружаются ключи для аутентификации;

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

  4. Политика доступа (правила):

    1. Администратор определяет: какой считыватель использует какой ключ, с какой областью карты работает, какие операции разрешены после аутентификации.


Какие бывают ошибки при настройке?

  • Оставляют заводские ключи на картах или в считывателях («FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF» — любимый ключ хакеров);

  • Отсутствуют регламенты и инструменты централизованного и контролируемого хранения и изменения ключей;

  • Предоставляется доступ до ключей множеству администраторов, что гарантированно приводит к их компрометации;

Почему важно правильно настроить ключи

Даже самая современная карта становится бесполезной, если её мастер-ключ известен постороннему лицу. Без правильной настройки считывателей процесс аутентификации либо не запустится, либо будет легко обманут клоном карты.


Чек-лист: Проверьте себя перед запуском системы контроля доступа

Как бонус к статье я подготовил материал для проведение небольшого аудита, если вы владеете или эксплуатируете систему контроля доступа.

  1. При работе с картами:

    1. Используете только защищенные типы карт: MIFARE Plus SL3, MIFARE DESFire EV2/EV3, BLE/NFC

    2. Исключаете применение устаревших карт типа EM-Marine, HID Prox, MIFARE Classic для новых объектов.

    3. Генерируете уникальные мастер-ключи и ключи приложений для каждой карты или группы карт (не оставляете заводские значения, например, «FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF»).

  2. При работе со считывателями:

    1. Загружаете в считыватели только ключи аутентификации, соответствующие целевому типу карт.

    2. Отключаете поддержку лишних форматов карт на считывателях (например, EM-Marine, MIFARE Classic UID-only, чтение только UID по ISO/IEC 14443A)..

    3. Обязательно меняете стандартные пароли доступа к конфигурации считывателей.

  3. Организационные меры

    1. Организуете централизованный реестр всех выданных карт и назначенных им ключей.

    2. Разрешаете выполнение операций по конфигурации ключей только уполномоченным сотрудникам

    3. Настраиваете систему таким образом, чтобы операторы работали только через учетные записи с индивидуальными правами и без использования стандартных паролей.

    4. Обеспечиваете дополнительную аутентификацию пользователей при доступе к системе управления, например, через SSO.


Заключение

Одна только технология никогда ничего не гарантирует. Настоящую безопасность обеспечивает правильная настройка и эксплуатация системы:

  • выбор защищённых карт,

  • грамотная работа с ключами,

  • отключение уязвимых форматов,

  • организация учёта и контроля.

Мы в Sigur искренне верим, что глубокое понимание процессов помогает строить действительно эффективные и безопасные решения.

И нам приятно делиться этой экспертизой и сервисом открыто.

Спасибо, что дочитали статью до конца! 

В следующих материалах я хотел бы продолжить разбирать, как работают контроллеры доступа, как строится принятие решений о проходе и как вся экосистема СКУД соединяется в единое целое решение. Поддержите статью, чтобы мы почувствовали отклик и продолжили выпускать полезные материалы!

— Дмитрий Попов, ведущий менеджер продукта Sigur

Комментарии (4)


  1. atues
    09.12.2025 06:51

    Класс! Хотя описываемая область далека от моих занятий, но все равно было интересно. А картинки - просто прелесть. Спасибо )


  1. zurabob
    09.12.2025 06:51

    А зачем практически нужно разрешение коллизий и работает ли оно? Дальность работы с картой 6 см на картинке, часто в реальной жизни меньше сантиметра(приходится прикладывать), при этом если в визитнице за пропуском лежит карта метро, то пропуск уже не срабатывает, хотя он снаружи лежит.


    1. HardWrMan
      09.12.2025 06:51

      В реальной жизни часто наоборот происходит то, о чего разработчик даже представить не может. Здесь приведён в качестве примера обычный СКУД на стене в офисе, там действительно проблематично сунуть более одной карты за раз, разве что специально. Но именно те же самые технологии применяются в тех же турникетах. И вот там коллизии вполне себе реальны.


      1. zurabob
        09.12.2025 06:51

        В комменте выше я писал именно о турникетах в метро и на проходной. Пробовал и в метро положить пропуск за Тройку, тоже не срабатывала Тройка. Или реально не разруливают коллизии на нижнем уровне, или под коллизиями что-то другое подразумевается.