Система контроля доступа на Wiren Board



    Всем привет!

    Мы уже писали о том, что делаем Wiren Board — компактный индустриальный компьютер с Wi-Fi, GPRS, GPS, NFC и Ethernet под управлением Linux. На его основе можно быстро делать готовые устройства, задействовав нужные модули.
    Чтобы показать его возможности, мы решили сделать законченное устройство. Сегодняшняя статья — про систему контроля доступа на Wiren Board.


    Идея устройства


    В общежитиях нашей альма-матер — МФТИ — есть объекты инфраструктуры общественного пользования — прачечные и спортивные комнаты. На протяжении многих лет доступ к ним осуществлялся путем получения ключа у охранника с записью в журнале.

    Конечно же, это весьма неудобно. Хорошим решением было бы сделать пропускную систему по карточкам.

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

    Мы решили помочь родному институту.

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

    Реализация


    Как обычно строятся такие системы? Простые автономные СКУД включают в себя:
    1. Считыватель карт
    2. Контроллер замка (может быть объединен с считывателем)
    3. Электромагнитный замок
    4. Кнопка выхода (с обратной стороны)

    Программируются обычно с помощью мастер-карты.

    В сетевых решениях ставят дополнительно сервер СКУД, преобразователи интерфейсов и прокладывается линия RS-485, по которой сервер общается с контроллерами.

    Естественно, можно было использовать готовые системы, которых много на рынке, но у них обнаружились различные фатальные недостатки. А мы вспомнили, что у нас есть Wiren Board, который может и карты считывать, и замком управлять, и с сервером связываться по Ethernet, то есть объединяет в себя все компоненты. Мы решили сделать “умный” контроллер доступа.

    Нам не потребуется прокладка отдельной линии RS-485 до сервера, нужно только подключение к СКС по Ethernet, а это не проблема в общежитии. И сам сервер в виде отдельного компьютера (да ещё и с Windows) в серверной не нужен, достаточно поднять виртуальный сервер. Питание на устройство подаётся по Ethernet (PoE) — не нужно задумываться, где подключить блок питания и как протянуть от него провода до двери.

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

    Также СКУД необходимо интегрировать с существующими и будущими самописными системами: сайтом, системой записи в прачечную и т.д. Закрытое сложное ПО делает это весьма сложной задачей. Ещё оно может быть платным, с подпиской или лицензией — лишние проблемы.

    Железо

    Что мы будем задействовать в Wiren Board:
    NFC — для чтения Социальных карт (карты типа Mifare Classic)
    Ethernet — для связи с БД
    транзисторные выходы для управления магнитным замком и светодиодами индикации
    GPIO для подключения кнопки “Выход”
    Power over Ethernet — чтобы уменьшить число подводимых кабелей и не заботиться о розетке

    Схема подключения изображена на рисунке.

    Зеленый и красный светодиоды выполняют функции индикации. Кнопка выхода по требованиям безопасности должна быть трёхконтактной и обеспечивать механическое размыкание цепи электромагнитного замка. При нажатии на кнопку пара контактов размыкается и средний контакт замыкается на третий, идёт сигнал на плату. Управляющий транзистор закрывается, разрывая цепь питания замка на 3-4 секунды.



    Электромагнитный замок управляется подачей 12В через транзисторный выход. Для питания использовались Passive PoE-инжекторы от Ubiquiti.

    Был подобран подходящий по размерам корпус, и устройства заняли свои законные места у дверей.



    Софт

    Программная часть и логика работы системы очень простые.

    Используются социальные карты, которые есть у большинства студентов. Теоретически, можно пользоваться любой ISO 14443-совместимой меткой, например, банковской картой, брелоком Mifare, карточкой метро или даже смартфоном с NFC.

    Вся информация хранится в БД MySQL на удалённом сервере. Там хранится список пользователей (список студентов факультета), список карточек каждого пользователя, логи и т.д. Для каждой карточки хранится заводской номер, её тип и дополнительная информация, зависящая от типа карточки: ФИО, номер и срок действия социальной карты; номер одноразовой карты метро и т.д.

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

    Для упрощения системы контроллер общается напрямую с БД MySQL посредством вызова хранимых процедур. Конечно же прямого доступа к таблицам у контроллера нет.

    Клиентская часть, запущенная на контроллере, написана на Python и занимает несколько десятков строк.

    Заключение


    Получившийся контроллер понравился даже нам, поэтому мы решили выпустить его в продажу как готовое устройство. В качестве опций доступны все возможности, которые предоставляет Wiren Board, например, GPRS для резервирования канала связи, или подключение к линии RS-485. К устройству также можно подключить внешние считыватели, дополнительные замки и кнопки.

    Подробное описание самого компьютера Wiren Board можно найти на портале документации, а в магазине можно купить образец. Также ждём ваших замечаний и предложений на нашем форуме и в комментариях.
    Бесконтактные устройства 38,79
    Компания
    Поделиться публикацией
    Похожие публикации
    Комментарии 44
    • 0
      А где аспиранты могут получить карточку для прохода в эти комнаты? Им социальная карта не полагается…
      И как записать в телефон с nfc ID карты какого-нибудь первокурсника?
      • 0
        Самый удобный способ для аспирантов — зарегистрировать обычную карточку метро. Это, разумеется, будет уже не автоматически — нужно подойти к администратору, и он внесёт её в базу
        • 0
          Судя по принципу работы подойдет любая карточка стандарта ISO14443, то есть: карточка метро, банковские карты со встроенным чипом NFC, например с PayPass, современный загран паспорт, Sony SmartCard и пр…
          • 0
            Загранпаспорт не подойдёт к сожалению, там номер обычно генерируется при каждом обращении случайный.
            • 0
              Вот этого не знал.
          • 0
            Телефоном с NFC эмулировать ID никакой реальной карты не получится, обычно первый байт номера там маскируется 0x80, как раз для защиты от такого.
            • 0
              Присоединяюсь к вопросу про телефон с NFC.
              Есть такой телефон и настольный NFC-сканер — имеющиеся отладочные приложения на телефон не реагируют (
              • 0
                Вам надо явно перевести чип в телефоне в режим passive target, т.е. «карточки». По-умолчанию он находится в режиме initiator т.е. «считывателя».

                Как я понимаю, в обычном Android поддержки passive target нет, есть в Cyanogen для телефонов на PN544.

                Либо можно работать через настоящий NFC p2p.
                • 0
                  Спасибо.

                  Т.е. пока Гугл не реализует, в стоковых прошивках от Сони ждать passive target не стоит?
            • 0
              Вот хрен ли платы от таких производителей использовать?
              • 0
                Не платы, а ethernet-разъёмы: www.huilyn.com/en/. Если вопрос был «почему», то ответ — потому что все разъёмы сейчас китайские. Конкретно эти, потому что они с поддержкой PoE.
                • 0
                  Würth Elektronik православные немецкие с PoE не очень дорого(около 2,2 евро). По ощущениям как порш каен среди разъемов.
                  • 0
                    Ну эти кажется по 6 юаней в Китае, никаких проблем с ними ни разу не было.

                    А чем протестантские немецкие могут быть лучше?
                    • 0
                      Ну, вы говорите, что «все разъемы китайские»…
                • 0
                  Эх, нотариально заверенного скриншота на вас нет.

                  Каждый раз собираемся заклеить надпись на разъёме чем-нибудь более оптимистичным, надеюсь к следующей статье не забуду.

                  А что не так с производителями? Одна плата там наша, производители — мы. Вторая от уважаемой болгарской конторы Olimex.
                  • –1
                    Ну я имел в виду разъём, а не платы.
                • +1
                  Круто, конечно, но дороговато. На малинке дешевле будет.
                  • 0
                    Нигде не указан температурный диапазон работы платы. Также непонятно модули идут в плате или за отдельные деньги
                    • 0
                      Диапазон индустриальный -25+85C, мне казалось это должно быть где-то указано. Добавим более явно.

                      Не понял второго вопроса. Вы имеете в виду цену на саму плату Wiren Board? Если да, то в магазине можно посмотреть цену в любой комплектации.

                      Что касается этого контроллера, то конечно же всё в цену включено.
                      • 0
                        Industrial диапазон вроде всегда с -40°С начинался. Тем паче в России.
                        -25 — больше на просто расширенный похож.
                        • 0
                          У кого как. Вот Maxim например называет диапазон от -40 «Extended Industrial».

                          На самом деле в нашем случае диапазон разный в зависимости от комплектации, для некоторых комплектаций получается и -40.
                          • 0
                            Вики говорит, что от -25 — это sometimes industrial, и это согласно стандартам МО Асашай. Подозреваю, что и ISO какой-нибудь такой же найдётся.
                            Commercial grade: 0 °C to 70 °C (sometimes −10 °C to 70 °C)
                            Industrial grade: −40 °C to 85 °C (sometimes −25 °C to 85 °C)
                            Military grade: −55 °C to 125 °C (sometimes -65 °C to 175 °C)


                            На мой взгляд, в России скрывать за промышленным диапазоном «от -25°С» — есть голый маркетинг на грани мошенничества. Везде это обычный расширенный (по минусу) и есть, если речь об электронике конечно же.
                            • 0
                              Диапазон работы нашей платы -25-85С, от того, как вы его называете, ничего не меняется.

                              Этот диапазон является, как всегда, неким компромиссом между ценой и характеристиками.
                              Если заказчику хочется -40 — это почти всегда осуществимо, т.к. большинство компонентов у нас от -40. Предлагаю на этом в этой ветке и остановиться.
                              • –1
                                Так это не я, а вы его почему-то индустриальным называете.

                                Чего уж там, пишите сразу — aerospace! От этого тоже в диапазонах работы вашей платы ничего не поменяется!
                                А если заказчику захочется настоящий aerospace — это почти всегда осуществимо, т.к. большинство компонентов у вас заменяемы. ;)

                                Поддерживаю остановиться — я все понял.
                    • 0
                      А вот к примеру электричество выключиться и все двери откроются, на ключ они ведь не закрываются?
                      • 0
                        В данном случае питание по PoE, на другом конце инжекторы вставлены в UPS, так что на несколько часов их хватит.
                        • 0
                          На этот случай используйте электромеханические замки.
                        • 0
                          Поправьте ссылку на магазин. Выдает «Page not found».
                        • 0
                          Я правильно понимаю, что на фотографии показана дверь снаружи помещения?
                          Вы разместили магнитный замок снаружи? Это ведь нарушает безопасность помещения. В таком случае достаточно просто что-нибудь плоское заколотить между планкой и магнитом и вскрыть дверь, разведя магнит и планку. Или если замок слабый, то вовсе с силой пнуть дверь, т.к. она внутрь открывается (какую прижимную силу замок оказывает по спецификации?)
                          Или стояла задача лишь организации пропускного режима без необходимости охраны?

                          И еще вопрос. Как попасть в помещение в случае, если с сервером будут проблемы? Когда я на работе инсталлировал аналогичную систему фирмы Kaba, там ридеры автоматически запоминали около 30 последних кард, которыми дверь открывалась (т.е. которые сервер пустил внутрь). В случае недоступности сервера, этими картами все-также можно было замок открыть.

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

                          Прошу прощения, если эти вопросы были освещены, но вроде не нашел в тексте, пересмотрев.
                          • 0
                            1) Да, фотография снаружи помещения и замок стоит снаружи. Да, это не безопасно, но по другому на уже поставленной двери было не сделать.

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

                            К тому же, насколько я знаю, дверь находится в поле зрения камер.

                            2) Пока там просто несколько номеров жёстко прописаны. Но то, что вы описываете, делается в дополнительные 5 строчек на Python в скрипте, который крутится на устройстве. Хорошая идея, сделаем.

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

                            3) Лог конечно же пишется на сервере.
                            • 0
                              Заколотить я предлагаю для того, чтобы следов не оставить после вскрытия. Во всяком случае явно видимых.

                              Кстати, да, возможность свободного изменения ПО ридера очень понравилась. Своего рода openware, если так можно выразиться.

                              Насчет лога, появилась шикарная идея для соц жизни в общаге: вывешивать каждый месяц студента, который больше всех в качалку ходил :)) Лишний повод сходиться спортом заняться)) Тем более, что особо никаких трудозатрат не нужно на это)
                            • 0
                              я так понял эта штука скорее для контроля и лога, чем для защиты…
                            • –1
                              Меня давно вопрос мучает
                              а возможно ли клонировать NFC карту и скажем использовать в метро 2 карты?
                              Задача на первый взгляд кажется не сложной, но вероятно есть какие-то подводные камни
                              • 0
                                Карту нельзя* клонировать, у каждой номер уникальный на заводе записанный.
                                • 0
                                  Компакт диски тоже когда-то записывались только на заводе…
                                  • 0
                                    Потому и звёздочка. На самом деле сейчас есть китайские карточки, которые как Mifare S50, но с возможностью записывать нулевой сектор с UID. Но это, опять же, касается только копирования Mifare Classic 1K, а в метро классики — это только социальные карты и даже они 4K.
                                    Я уж не говорю про секретные* ключи, которые надо знать для чтения/записи карт.
                                    • 0
                                      Меня удивляет следующий момент: вокруг нас разные Сноудены и Ассанджи, ворующие секретнейшие документы у своего государства и потом играющие с ним в шпионские игры, хакеры, которые взламывают банковские системы, гениальные вирусописатели и т.д., и т.п.

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

                                      Не подумайте, что я призываю к взлому этих систем, мне просто интересно — почему это не вызывает интереса у тех, для кого подобные дела — своего рода хобби.
                                      • 0
                                        Есть такие, но ключи в метро все время меняются.
                                        Есть в сети исследование на эту тему, когда человек достал ключи и пользоваться ими мог только неделю.
                                        Потом все поменялось.
                                        • 0
                                          Ну ладно билеты Ultralight. А как же социальные карты?
                                          На них то новые ключи не запишешь, они жестко прошиты в карте в момент ее выпуска на заводе.
                                          Сменить ключи — равно заменить всему городу карты (что, в общем-то, в современных масштабах уже трудновыполнимо).
                                          • 0
                                            Если бы разработчики в метро в своё время подумали головой (или хотя бы почитали аппноут от NXP), то сделали бы диверсификацию ключей с хранением мастер-ключа в secure element.

                                            Ну и ключи на заводе не прошиты, они в Mifare Classic свободно меняются.
                                          • 0
                                            И самое интересное, что зная ключи к этим картам — возможно по сути делать дампы карт пассажиров, просто стоящих рядом с тобой. Мало того, они даже ничего не узнают.
                                            • 0
                                              Тем не менее ключи действуют ограниченное время.
                                              • 0
                                                Ограниченное время действительно действуют ключи к ultralight. К социальным картам ключи постоянны и узнать их не составляет никакого труда.

                                                Как дела обстоит с новыми карточками тройка я не знаю, знаю только что там Mifare Plus SL1, т.е. ключи взламываются спецоборудованием. Если товарищам из метро хватило в этот раз ума прочитать аппноут NXP и они сделали диверсификацию ключей, то большого практического смысла в их взломе нет.

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

                                Самое читаемое