Домофонный мультиключ и всё про имитацию «таблеток» / Хабр

Cyfral

Ключ «Цифрал DC-2000А» — это отечественная разработка. Взаимодействовать с ними гораздо проще, т.к. они весьма глупые — не принимают никакие команды. Достаточно просто подать на ключ питание, и он сразу начнёт бесконечно посылать код, изменяя своё сопротивление. Если дать ему 5 вольт, подключив через резистор в 1 кОм, то на осциллографе можно увидеть примерно такую картину:

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

И да, домофон после этого можно открыть самым обычным MP3 плеером. Но нас же интересуют более цивилизованные методы, верно?

Кодирование немного странное. Ключ циклически посылает девять нибблов (четыре бита), меняя своё сопротивление. Если оно сохраняется низким около 50 микросекунд, то это логический ноль, а если 100 микросекунд — это единица. Но данные кодируется не логическими нулями и единицами, а положением единиц среди нулей!

То есть ключ при посылке кода может выдать только одну из четырёх комбинаций: «1000», «0100», «0010» и «0001». Однако, используется ещё и комбинация «0111» как стартовая последовательность. В итоге данные от ключа могут выглядеть как-то так: «0111 1000 0100 0010 0001 1000 0100 0010 0001 », где «0111» указывает на начало. Никакой контрольной суммы нет — код просто читается несколько раз для уверенности.

Итого восемь последовательностей, в которых возможны четыре комбинации. Не сложно посчитать, что это даёт нам 65536 вариантов ключей. Не так уж и много, они явно часто повторяются. Теоретически если в подъезде 50 квартир, каждой из которых выдано три ключа, можно подобрать один из них перебрав всего 436 комбинаций. Но я таким не занимался.

Как же лучше читать ключи от Cyfral? Как я уже говорил, уровни аналоговые. Варианта два: аналого-цифровой преобразователь и компаратор. Последний мне кажется надёжнее. Всё отлично работает, если к одному из входов компаратора подключить линию данных подтянутую к Vdd резистором в 650 Ом, а ко второму — ровно половину Vdd, для чего можно использовать делитель напряжения из двух одинаковых резисторов. После этого результат вывода компаратора можно с уверенностью воспринимать как высокое и низкое сопротивление ключа.

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

Ibutton

Самый популярный тип домофонных ключей — это iButton, а именно DS1990A от компании Dallas, работает по протоколу 1-Wire. Протокол весьма хитрый, подразумевает двустороннее взаимодействие — на ключ можно отправлять различные команды, на которые он по-разному реагирует. Серийный номер имеет размер в шесть байт, что даёт 2

8*6

= 281474976710656 различных комбинаций и подразумевает, что все выпущенные ключи должны быть уникальны. Если вам повезло, и у вас оригинальный iButton, то этот номер в шестнадцатеричном виде должен быть выгравирован на нём лазером:

То есть теоретически чужой такой ключ можно подделать, если просто записать куда-то или сфотографировать эти цифы!

Для взаимодействия с iButton достаточно подключить его к микроконтроллеру и подтянуть линию данных к питанию (2.8-5 вольт) через резистор:

Скорее всего для многих это всё уже старо как мир, но всё-таки расскажу кратко принцип работы 1-Wire. Обмен данными происходит за счёт поочерёдного прижимания линии к земле, информация при этом кодируется длительностью таких сигналов. Происходит это примерно так:

  • Reset — мастер прижимает линию к земле как минимум на 480 микросекунд, это говорит о начале передачи данных.
  • Presence — через некоторое время ключ отвечает импульсом около 120 микросекунд, что подтверждает его наличие на линии.
  • Команда — мастер посылает команду из восьми бит, при этом логическая единица — это 1-15 микросекунд, а ноль — 60-120.

Далее всё зависит от посланной команды. Обычно это 33h — «READ ROM», чтение серийного номера, после которого мастер читает 64 бита (1 байт — тип устройства, 6 байт — сам номер, 1 байт — CRC). Чтение каждого бита инициализируется мастером, для этого он посылает импульс в 1-15 микросекунд. Если после этого линия прижата к земле со стороны ключа на 60-120 микросекунд, то прочитан ноль, иначе — единица.

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

  • Нужно всегда реагировать на reset, даже если он послан во время передачи данных. Импульс длиннее 480 микросекунд говорит о том, что надо начать всё сначала.
  • Момент прикладывания ключа с его точки зрения — это тоже reset, ведь до этого питания не было. Поэтому теоретически домофон может и не посылать reset, и следует периодически отвечать сигналом presence по своей инициативе.
  • Ключи могут реагировать и на другие команды: 0Fh как альтернатива 33h, SKIP ROM (CCh), MATCH ROM (55h) и самое хитрое, о чём я расскажу отдельно ниже, — SEARCH ROM (F0h). Некоторые домофоны могут послать самые разные комбинации таких команд, чтобы убедиться в том, что ключ настоящий.
  • Бывает и обратная ситуация — домофон посылает команду, на которую ключ реагировать не должен. Дело в том, что некоторые программируемые ключи на них всё-таки реагируют, и так происходит ещё одна проверка. Необходимо полностью игнорировать всё, что идёт за этими командами, пока не будет послан reset.
  • Для отсчёта времени лучше использовать асинхронный таймер в микроконтроллере, т.к. счёт идёт на микросекунды. Однако, установка кварца при этом будет излишней.
Читайте также:  Как сделать подпись в Яндекс почте, Mail.Ru и Gmail

Про SEARCH ROM (F0h) — это команда поиска всех 1-Wire устройств на шине. Дело в том, что теоретически можно подключить параллельно много ключей и получить список всех серийных номеров. В реальности для iButton такое не используется, ведь к домофону всегда прикладывается один ключ.

Однако, некоторые домофоны посылают эту команду, ожидая найти один единственный серийный номер. Алгоритм весьма интересный. Каждое из устройств на шине одновременно посылает бит своего серийного номера, при чём два раза (т.е. мастер должен прочитать два бита).

Сначала обычным образом, а затем инвертированным. Что же получается в итоге? Если у устройства в серийном номере стоит единица, то посылается «10». Если ноль, то «01». И всё отлично, пока у всех устройств эти биты совпадают. А если нет… Выше я написал, что при чтении наличие длинного сигнала — это 0, а отсутствие — это 1, т.е.

0 является доминантным. Таким образом, при возникновении конфликтов читаются два нуля. После получения «10», «01» или «00» мастер должен послать в линию только что прочитанный бит. В случае с «00» он таким образом выбирает, с какой группой устройств работать далее.

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

Как работает ключ от домофона?

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

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

На данный момент имеется несколько разновидностей ключей-таблеток. Чаще всего можно встретить такой тип, как Touchmemory – это устройство контактного типа, работа которого состоит в том, чтобы во время контакта передать необходимые данные на модуль считывания, это приведет к открытию запирающего механизма.

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

Как сделать ключ от домофона

Можете представить себе многоквартирный дом без домофонной двери. Получается? Чуть более ста лет назад это казалось невероятным изобретением. Сегодня же использование ключей от домофона плотно вошло в нашу жизнь, вы открываете не один подъезд в день.

Вид

Модель

Контактные

Таблетка

Touch Memory (TM) или iButton

Dallas, Vizit, Eltis, Z-5R, Cyfral, Metakom

* Резистивные (считывают сопротивление

Cyfral

* Оптический (встречаются очень редко, не защищают, так как легко вскрыть такую дверь)

Cyfral

Бесконтактные

Капельки, брелоки, браслеты

Proximity (MiFare, EM-Varin, HID)

Vicinity

Магнитные карты (встречаются в банках)

Wiegand

(российское производство)

Сейф-Сервис

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

  1. Изготовление домофонных копий проводится специализированной организацией или у мастера, который сделает это за несколько минут при предъявлении оригинала. Сделать дубликат быстро и качественно можно в офисе StarNew в Москве (м. Дубровка), где вы легко подберёте заготовку на любой вкус и возраст: это могут быть изображения мультяшных героев, стильная кожаная обработка, пластик. 
  1. Изготовить ключ домофона можно самостоятельно. Для этого нужно знание основ программирования и электромеханики. Однако наличие дубликатора значительно упрощает задачу. Он считывает код оригинального ключа от домофона, а затем записывает его на заготовку. Копия ключа получится, если знать модель и марку домофона. Большой выбор дубликаторов, заготовок на сайте.
  2. Возможно переписать индивидуальный код в чип таблетки самостоятельно. Как программировать копию ключа от домофона смотрите в видео
Читайте также:  Набор скриптов для подписания и проверки ЭЦП КриптоПро на Linux

Чем больше квартир мы посещаем (родители, близкие люди), тем больше ключей для подъездных дверей требуется. Можно использовать один домофонный ключ, прописав его в считывателе кодовых замков или внеся его в список всех контроллеров. Подобрать  заготовку, домофонный ключ, подходящий к нему дубликатор поможет таблица.

КлючTMD-1v3RFD 1TMD RW-15RFD 3TMD-3RTMD-5RTMD-5STMD-6

SMkey

ПОДДЕРЖИВАЕМЫЕ ФОРМАТЫ

Контактные

Touch Memory

Dallas

Metakom

Сyfral

Бесконтактные (RFID)

125 кГц

EM-Marin

HID26

HID34

HID37

Indala

Urmet

Electra

13.56 МГц

ТехKом

Factorial (Ti-256)

Mifare Ultralight

Mifare Classic

!

!

iCode (Hi-Tag)

 для старых моделей домофонов; ! нужен крипто-ключ или один открытый сектор

ПОДДЕРЖИВАЕМЫЕ ЗАГОТОВКИ

Контактные

Touch Memory

TM08v2 (RW1990

TM2004

ТМ08 Vi-F

ТМ08 Vi-2

RW1.1

RW2021

KC-07

RW15

TM01A

DS1996 EEPROM

TM2004 EEPROM

Бесконтактные (RFID)

125 кГц

Заготовки с чипом H1

Заготовки с чипом H2 (T55x7)

Заготовки с чипом H3 (EM4305)

Заготовки с чипом H5.5

Заготовки с чипом H7

13.56 МГц

TKRF, TKRF-v2

FK-3

MF ZERO

MF OTP, MF OTP 2.0

MF UL, MF UL2, MF UL3, MF UL-X

iCode (Hi-Tag)

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

  1. Подключите прибор к сети. На экране дисплея высветиться уведомление о готовности к работе.
  2. Возьмите оригинальный домофонный ключ, приложите его к зоне считывания. Как только код ключа скопируется, вы увидите сообщение на дисплее или услышите звуковой сигнал (разные модели программатора информируют по-разному).
  3. Приложите заготовку (болванку) к зоне считывания. Дождитесь сообщение / звуковой сигнал о завершении копирования.
  4. Новый домофонный ключ готов.

При помощи электронного прибора вы записали необходимый код на заготовку. Работа занимает несколько минут при условии, что верно определена совместимость домофонов и заготовок с дубликатором (смотрите таблицу).

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

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

Комплект Вездеход УК 15 заменяет домофонный ключ  популярных моделей домофонных дверей российских, а также иностранных производителей (Форвард, Визит, Маршал, другие). К каждому комплекту есть таблица соответствия.

По каким причинам ключ приходит в негодность?

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

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

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

Proxy-ключ имеет еще одну проблему, отдельные модели оснащены специальным временным фильтром. Он отвечает за отслеживание дубликатов ключей и затем прописывает коды, которые несовместимы с моделью. Спустя некоторое время ключ просто не функционирует вовсе.

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

Принцип работы ключа

Опираясь на работу того или иного ключа, их разделяют на:

  1. Резистивный. Тут в основе работы лежит резистор конкретного номинала. Есть минус у такой системы, ключ каждого владельца в помещении имеет один и тот же номинал. То есть не составит никакого труда дублировать ключ и в дальнейшем им пользоваться и на регулярной основе вскрывать замок.
  2. Герконовая основа. Тут уже в основе работы лежит герконовая пара, то есть внутри изделия располагается колба с контактным механизмом. Если на этот элемент воздействует магнитный ключ, то колба активируется и двери отпираются.
  3. Оптический. Светодиодно-фотодиодная пара является основой работы ключа, то есть для открытия двери нужно поднести ключ  к специальному отверстию, информация считывается и дверь открывается.

Создание мультиключа

Перейдём уже к практике! Да, я пытался совместить в одном устройстве и имитацию ключей, и их считывание (кроме Метаком), и синхронизацию с компьютером по USB. Вот схема того, что получилось (кликабельно):

Компоненты и их предназначение:

  • IC1 — микроконтроллер ATMEGA8/ATMEGA8A/ATMEGA8L;
  • U1 — USB-контроллер FT232RL, нужен для подключения устройства к компьютеру;
  • CON1 — miniUSB разъём;
  • BT1 — батарейки, дающие 3-5 вольт;
  • D1 и D2 — диоды (желательно шоттки), которые изолируют питание от батареи от питания от USB;
  • P1 — «таблетка» iButton, используется для подключения к домофонам;
  • P2 — контакты считывателя ключей, используются для подключения к ключам;
  • R1 — резистор, подтягивающий линию 1-wire к VCC;
  • R2 — токопонижающий резистор для управления транзистором Q2;
  • R3 — резистор, ещё сильнее подтягивающий линию к VCC для считывания ключей Cyfral;
  • R4 — токопонижающий резистор, используется для открытия Q1 и определения подключения к USB;
  • R5 — подтягивает базу Q1 к земле, чтобы закрывать его, когда нет подключения к USB;
  • R6 — токопонижающий резистор для светодиодов, достаточно одного, т.к. одновременно они не горят;
  • R7 и R8 — делитель напряжения для одного из входов компаратора, чтобы считывать ключи Cyfral;
  • Q1 — транзистор для определения подключения к USB;
  • Q2 — транзистор для включения земли на считывателе и эмуляторе, чтобы не сажать батарейки, случайно замкнув контакты в кармане;
  • C1, C2 и C3 — конденсаторы для фильтрации питания;
  • SW1 — единственная кнопка для управления устройством;
  • LEDS — семь светодиодов в форме восьмёрочки для отображения номера ключа.

Печатная плата (кликабельно):

Это было ещё время до покупки 3D принтера, когда я проектировал устройства под корпуса, а не корпуса под устройства. Ко мне в руки попал очень приятный экземпляр в виде брелка и с кнопкой. Просто идеально, оставалось только проделать отверстия под USB и светодиоды. Увы, я до сих пор не могу найти в продаже точно такой же корпус. В итоге получилось как-то так:

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

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

Длительное нажатие на кнопку переводит устройство в режим считывания ключей, при этом мигает средний светодиод. В этот момент нужно приложить ключ к контактам считывателя ключей (именно для этого у меня снизу вкручен винтик). Если считывание прошло успешно, отобразится номер, под которым ключ занесён в память.

При подключении по USB устройство видится как виртуальный COM-порт. Для простоты работы был написан клиент под Windows:

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

Типы домофонных ключей «таблеток»

Домофонный мультиключ и всё про имитацию «таблеток» / Хабр

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

Заключение

Очень удобно в одном устройстве иметь ключи от дома, родственников, работы и подъездов друзей. Особенно актуально для тех, кто не провёл в квартиру домофонную трубку. Но создавать мультиключ было не столько полезно, сколько интересно. Это отличная практика для изучения микроконтроллеров.

Да, именно с этого я в своё время начинал. Помимо этого каждый новый не открывающийся подъезд вызывал целую бурю интереса. Бегать по городу и решать логические задачи, чтобы открыть какую-то дверь — это как видеоигра в реальной жизни! Чертовски увлекательно. Не хватает только схваток с гопниками и бабулек у подъездов в виде боссов 😉

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

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

Adblock
detector