Хабрахабр

СКУД моего ЖК — безопасность на двух болтах

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

Сегодня я хочу поговорить о безопасности систем контроля и управления доступом (СКУД) в целом и на примере моего ЖК. Приветствую читатель. Все манипуляции будут носить в основном аппаратный характер.
В моем жилом комплексе установлена домофонная система Sinthesi S2, а также система доступа двор/подъезд/этаж производства Urmet Group. Будут рассмотрены основные уязвимости, а также совершена успешная попытка копирование ключей. Вот так классно выглядела уличная панель

пока однажды не стала выглядеть так:

В ней был только считыватель и кнопочная панель. Провисела она так пару дней, а потом перекочевала в мусорный контейнер неподалеку. Из документации я нашел только огромный каталог из которого можно было сделать вывод, что это FD-020-017 — 13,56 МГц считыватель с интерфейсом Wiegand26. Потому как одним из направлений в моей компании является разработки HF считывателей я не удержался и решил изучить этот RFID считыватель подробнее. Внутри был бутерброд из плат считывателя (MFRC531) и МК с BLE (CC2541) приклеенные термоклеем к корпусу, который разрабатывался явно не под эту плату.

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

После полного запуска системы и отмены кодов доступа я начал изучать ее подробнее. До недавнего времени работа системы меня не интересовала, поскольку она была частично запущена (работали только подъездные замки, но на них был код доступа, который я знал и ключом не пользовался). С собой у меня были только карманные вещи, но как оказалось этого вполне достаточно, чтобы обойти всю элитную безопасность (как заверяет Urmet). Началось это одной из ночей, когда я вернувшись домой обнаружил, что тамбурная дверь уже работает и жена уже спит.

Все…
После этого случая, когда я смотрю очередной голливудский фильм («Пассажиры»(2016г.) на КДПВ) и вижу как супер секретные двери открывают путем снятия кодовой панели и засовывания в плату булавки (обязательно с искрами и эффектным открытием двери), то вижу вполне реальную ситуацию. Все что мне было нужно, это открутить ключом от машины 2 винта, держащих рамку панели, вынуть 2 блока и тем же ключом замкнуть релейный канал, идущий на замок двери тамбура.

Вся безопасность обеспечивается несколькими болтами, держащими эту панель, и на вере, что эта система надежна. На моей памяти большинство СКУД, которые я видел, имеют выход на замок прямо с кодовой панели и именно это является главной уязвимостью. Эта мера резко уменьшит вероятность спонтанного проникновения. А ведь при этом существенно увеличить порог входа (назовем ее защитой от человека с отверткой) можно применив замки с мозгами, которые управляются интерфейсом — пусть даже самым простым.

Исходные данные

СКУД ЖК в целом, ее работа, реакция на другие ключи, а также способ добавления ключей:

  • Выдается один бесплатный ключ на квартиру, каждый следующий — 300р, регистрируется в личном кабинете СКУД. Купить можно только у УК. В чате ЖК писали, что рыночные копировальщики не смогли сделать дубликат — значит система круче, чем просто чтение UID.
  • При поднесении любой другой карты mifare считыватель даже не подает признаков того, что он ее видит.
  • При поднесении ключа к другому подъезду/этажу считыватель пикает о прочтении, но ничего не происходит.
  • При чтении содержимого брелока 8 и 12 блоки скрыты и имеют ключ доступа отличный от Mifare well-known keys. Значит секрет где-то там.

Начало работ

Первым делом я скопировал Block0 (тот, что содержит UID и Manufacturer information) на болванку Mifare Zero и проверил, что этого недостаточно — брелок не заработал. Считыватель даже не реагировал на поднесение такого клона. Стало понятно, что нужно искать ключ от секторов 8 и 12. Прочитав все из имеющихся брелоков я увидел, что только в одном из них залочен 12 блок, в остальных он нулевой, поэтому очевидно, что магия содержится в блоке 8.

Итак имеем FD-020-017 — 13,56 МГц, интерфейс Wiegand26. Самое время достать дареный считыватель и рассмотреть его пристальнее. И он прекрасно заработал на столе — без остальной системы. Платы MFRC531 и CC2541 соединены 10-контактной гребенкой. Для начала посмотрим, что идет наружу: Реагировал на ключи так же как и остальные считыватели.

После прочтения в интерфейс уходит сообщение в полном соответствии с Wiegand26. Тишина ровно до поднесения валидного брелока. С помощью мультиметра я восстановил распиновку, оказалось что микросхемы общаются по SPI. Таким образом я декодировал посылку, которую отправляет мой ключ. Подключаем анализатор,

подносим валидный брелок и смотрим обмен по SPI:

Я нашел команды для подгрузки ключа: Далее я начал смотреть документацию на микросхему MFRC531 и почти опустил руки увидев, что она имеет специальную EEPROM для хранения ключей.

Казалось бы если подгружать ключ из EEPROM, то у меня нет шансов для реверса таким путем, НО к моему удивлению команды 0x0B в обмене нет, зато есть команда 0x19 Команда 0x0B загружает из EEPROM, команда 0x19 из FIFO, в который в свою очередь ключ попадает по SPI.

Осталось только собрать ключ согласно формату

И добавить в key лист.

Оказалось, что блок 8 начинается с 3х ненулевых байт, которые как раз и уходят в Wiegand при соответствии ключей брелока и считывателя. Бинго!!! У моих брелоков было 3 номера подряд + один сильно отличающийся. Эти данные никак не связаны с UID — скорее всего это просто порядковый номер при выдаче в УК. Запись болванки прошла успешно, я объединил ключ от ЖК с ключом от офиса, который работает по UID.

Заключение

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

Большинство работающих с технологией RFID знает, что алгоритм шифрования Crypto-1, используемый в картах Mifare (Classic) давно взломан и можно было получить ключ от блока более «чистым» способом, но я пошел «в лоб».

Это позволяет защититься от клонирования если оригинальная карта будет приложена к считывателю раньше клона, в противном случае позволит обнаружить факт дублирования (оригинальная карта перестанет работать). В своих же проектах мы используем программируемые считыватели с one time password словарями для шифрования.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть