Кажется, что с чипами Mifare все понятно: модули семейств Plus и DESFire самые защищенные, Classic – самый уязвимый. Чем большая безопасность нужна на объекте, тем более серьезная защита должна быть у чипа – все просто. Оказывается, нет, настроить правильную систему доступа гораздо сложнее, чем это видится на первый взгляд. Постараемся найти все подводные камни и разобраться, как их можно обойти.
Mifare Classic - как обычно работают с ней
Начнем с Mifare Classic, который еще недавно считался достаточно надежным. Допустим, некая компания решила установить СКУД с идентификаторами, которые было бы невозможно скопировать. Выбор пал на Mifare Classic, недорогой, качественный и защищенный.
Компания уверена: это идеальный вариант, и заказывает эти идентификаторы и подходящие к ним считыватели. Однако результат оказывается совсем другим: у них недостаточная защита от копирования, а все возможности почти не используются.
Как же тогда работает система доступа? Считыватель использует только UID карты, который ничем не защищен. То есть любой может легко скопировать его и сделать дубликат. Вся защита, указанная в описании чипа, относится к его памяти, а не номеру.
Еще одна проблема, с которой придется столкнуться – дублирование номеров карт. Считыватели обычно выпускаются с интерфейсом Wiegand-26. Он передает на контроллер максимально 3 байта информации. Однако UID Mifare Classic содержит 4 байта, то есть последний байт не считывается. Поэтому номер передается в систему не полностью, из-за чего и возникают повторы.
UID карты | UID, передающийся в контроллер |
DDFF02AB | DDFF02 |
DDFF02AC | DDFF02 |
DDFF02AD | DDFF02 |
Получается, что UID нескольких карт передаются на контроллер одинаково. И таких дубликатов может быть не один десяток. Эта проблема усложняется еще и тем, что несколько лет назад закончился диапазон уникальных номеров, длиной 4 байта, о чем объявил сам производитель. Теперь Mifare Classic выпускаются с 7-байтными UID и не уникальными 4-байтными nUID. Поэтому количество таких повторений в системе становится еще больше, ведь теперь не будет читаться целых 4 байта.
Как правильно настроить Mifare Classic
Возникает вопрос: зачем тогда вся эта защита на чипах, раз она не используется? Все дело в том, что настроить эту защиту все же можно, необходимо лишь выбрать считыватель, который будет использовать все возможности модуля. То есть он должен взаимодействовать не с номерами, а с памятью.
Настроить Mifare Classic достаточно просто. Вся ее память разделена на 64 блока, в один из которых можно занести номер, длиной 3 байта, и ограничить доступ к нему. Считыватель необходимо настроить так, чтобы он обращался к этому блоку и считывал информацию, используя занесенный туда криптоключ.
Чтобы работать с ключом, сначала нужно его придумать. И вот здесь есть еще один подводный камень: доверять его создание кому-то из посторонних - это риск. Защита карт будет зависеть от добропорядочности этого человека. Поэтому лучше самостоятельно придумать ключи. Чтобы упростить процесс, можно создать так называемую “мастер-карту”, где будут храниться все ключи. Затем специалист с ее помощью прошьет каждый идентификатор и считыватель, при этом данные он не узнает.
Mifare Plus - меняем настройки и создаем надежную защиту
Однако известно, что на сегодняшний день криптозащиту Mifare Classic можно легко взломать. Поэтому если нужны высокозащищенные карты доступа, следует выбирать более современные модули, предлагаемые компанией-производителем. Например, семейство Mifare Plus считается одним из лучших, ведь скопировать с них информацию невозможно.
Но здесь скрыта очередная сложность: часто производители считывателей не указывают многие технические тонкости. Например, они дорабатывают свою продукцию, чтобы можно было использовать 7-байтные UID Mifare Classic. При этом интерфейс остается тем же – Wiegand-26. И в характеристиках он указывает, что теперь можно работать и с другими семействами модулей: Ultralight, Plus, DESFire. Но на практике оказывается, что он все так же читает незащищенный UID. То есть безопасность остается на прежнем низком уровне. Современные криптографический алгоритм AES (его невозможно взломать) не защищает UID, он оказывается бесполезен.
кроме того, NXP поставляет на рынок чипы в незащищенном режиме – SL0. Они не предназначены для использования. Сначала нужно их инициализировать – перевести в более защищенный режим. Например, Plus имеет три режима: SL1, SL2 и SL3. И вот еще одна особенность. Модули семейства Plus в режиме SL1 полностью совместимы с Classic. Однако если его перевести в SL2 или SL3, то он будет некорректно работать со считывателем для Mifare Classic.
Как же сделать так, чтобы Mifare Plus функционировали и были защищены?
- Выбрать уровень безопасности: SL1, SL2 и SL3. Ориентироваться следует на требований к безопасности. Например, SL3 – самая высокая защита, но и подготовить СКУД к такому режиму технически сложно.
- Решить, в каких блоках чипа будет содержаться информация и закрываться ключами. Например, для СКУД может вполне хватить и одного блока.
- Провести предэмиссию, то есть перевести идентификаторы в выбранный режим безопасности, закрыть сектор при помощи AES.
- Подготовить считыватели – запрограммировать их на считывание информации из закрытого сектора с помощью созданного ключа AES.
- После этого можно записывать данные на карту доступа в выбранный блок.
- Теперь Ваш объект будет неуязвим для преступников, ведь никто не сможет скопировать такой идентификатор.
Такая настройка Mifare Plus позволит использовать практически в любой СКУД. Все современные считыватели поддерживают различные интерфейсы для работы с каждым из режимов безопасности. Все это помогает постепенно переводить имеющуюся СКУД на более защищенный уровень.