Как сделать универсальный ключ для домофона
Перейти к содержимому

Как сделать универсальный ключ для домофона

  • автор:

Делаем универсальный ключ для домофона

Заголовок получился слишком громким — и ключ не такой и универсальный, и домофон поддастся не любой. Ну да ладно.
Речь пойдет о домофонах, работающих с 1-wire таблетками DS1990, вот такими:

В интернете можно найти множество материалов о том, как читать с них информацию. Но эти таблетки бывают не только read-only. Человеку свойственно терять ключи, и сегодня ларёк с услугами по клонированию DS1990 можно найти в любом подземном переходе. Для записи они используют болванки, совместимые с оригинальными ключами, но имеющие дополнительные команды. Сейчас мы научимся их программировать.

Зачем это нужно? Если отбросить заведомо нехорошие варианты, то самое простое — это перепрограммировать скопившиеся и ставшие ненужными клонированные таблетки от старого домофона, замененного на новый, от подъезда арендованной квартиры, где больше не живете, от работы, где больше не работаете, и т.п.

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

Немного теории.

Как известно, DS1990 характеризуется, в общем случае, одним параметром — собственным идентификационным номером. Он состоит из 8 байт и нанесен на поверхность таблетки. И он же выдаётся в ответ на запрос по 1-wire. На самом деле один из этих байт — это идентификатор типа устройства, ещё один — контрольная сумма, но для нас это всё не принципиально. В памяти домофона прописаны все известные ему ключи, изменять это множество может только компания, домофоном управляющая. Но кроме ключей, явно записанных в память, домофон иногда реагирует на так называемые мастер-ключи, единые для домофонов этого производителя, этой серии, этого установщика. Коды мастер-ключей стараются держать в секрете, но иногда они утекают. За пять минут гугления можно найти порядка 20 мастер-ключей от различных домофонов. У меня стоит «Визит», поэтому выбор пал на ключ 01:BE:40:11:5A:36:00:E1.

Болванки, на которые клонируются ключи, бывают разных типов. У нас в городе самые распространенные — это TM2004. По описанию они поддерживают финализацию, после которой теряют возможность перезаписи и функционируют как самые обычные DS1990. Но по каким-то причинам умельцы, делающие копии, финализацию выполняют не всегда. Возможно потому, что основная масса программаторов на рынке куплена давно и не имеет такой функции, возможно потому, что для финализации требуется повышенное (9В) напряжение. Не знаю. Но факт остаётся фактом, из 4-х ключей, на которых я экспериментировал, финализирован был только один. Остальные легко позволяли менять свой код на какой душе угодно.

Практика.

Собирать программатор будем на Arduino Uno, которая для подобных целей макетирования и сборки одноразовых поделок подходит идеально. Схема простейшая, 1-Wire на то и 1-Wire.

Время сборки устройства на бредборде не превышает пяти минут

Код скетча. Сам алгоритм записи взят тут — domofon-master2009.narod.ru/publ/rabota_s_kljuchom_tm_2004/1-1-0-5
Там, правда, написано, что можно записывать все 8 байт подряд, но у меня так не заработало. Поэтому каждый байт пишется отдельно, через свою команду 0x3C.

#include #define pin 10 byte key_to_write[] = < 0x01, 0xBE, 0x40, 0x11, 0x5A, 0x36, 0x00, 0xE1 >; OneWire ds(pin); // pin 10 is 1-Wire interface pin now void setup(void) < Serial.begin(9600); >void loop(void) < byte i; byte data[8]; delay(1000); // 1 sec ds.reset(); delay(50); ds.write(0x33); // "READ" command ds.read_bytes(data, 8); Serial.print("KEY "); for( i = 0; i < 8; i++) < Serial.print(data[i], HEX); if (i != 7) Serial.print(":"); >// Check if FF:FF:FF:FF:FF:FF:FF:FF // If your button is really programmed with FF:FF:FF:FF:FF:FF:FF:FF, then remove this check if (data[0] & data[1] & data[2] & data[3] & data[4] & data[5] & data[6] & data[7] == 0xFF) < Serial.println(". nothing found!"); return; >return; // remove when ready to programm // Check if read key is equal to the one to be programmed for (i = 0; i < 8; i++) if (data[i] != key_to_write[i]) break; else if (i == 7) < Serial.println(". already programmed!"); return; >Serial.println(); Serial.print("Programming new key. "); for (uint8_t i = 0; i < 8; i++) < ds.reset(); data[0] = 0x3C; // "WRITE" command data[1] = i; // programming i-th byte data[2] = 0; data[3] = key_to_write[i]; ds.write_bytes(data, 4); Serial.print("."); uint8_t crc = ds.read(); if (OneWire::crc8(data, 4) != crc) < Serial.print("error!\r\n"); return; >else Serial.print("."); send_programming_impulse(); > Serial.println("done!"); > void send_programming_impulse()

После запуска программа раз в секунду опрашивает 1-Wire интерфейс и выдаёт на последовательнй порт считанный с него код. Если это FF:FF:FF:FF:FF:FF:FF:FF, то считаем, что ничего не подключено. В общем случае это, конечно, неверно, так как некоторые болванки, например, TM2004, позволяют записать 8 0xFF в идентификатор ключа, поэтому если ваша таблетка прошита таким кодом, то проверку нужно убрать.

Порядок работы: запускаем, подключаем ключ, чей код хотим узнать, и полученное значение хардкодим в массив key_to_write. Убираем помеченный коментарием return. Снова запускаем и подключаем болванку, она должна прошиться новым ключом. Естественно, что для записи уже известного кода (скажем, мастер-ключа), первый шаг выполнять не требуется.

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

Успешный лог записи выглядит как-то так:

KEY FF:FF:FF:FF:FF:FF:FF:FF. nothing found! KEY FF:FF:FF:FF:FF:FF:FF:FF. nothing found! KEY FF:FF:FF:FF:FF:FF:FF:FF. nothing found! KEY 1:98:2C:CD:C:0:0:EB Programming new key. done! KEY 1:BE:40:11:5A:36:0:E1. already programmed! 

Спускаемся на улицу, пытаемся открыть соседний подъезд. Работает!

Морально-этические вопросы.

А стоило ли такое выкладывать? Вдруг в мой подъезд сможет зайти бомж и станет там жить?

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

Поэтому и публикую без малейших сомнений. Пользуйтесь!

Делаем универсальный RFID-ключ для домофонов

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

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

1. Что это такое? Что умеет?

Устройство, которое я собирал в далёком 2017 году, есть ни что иное, как спуфер домофонного RFID-ключа, работающего на частоте 125 кГц. Слово «спуфер» в данном случае означает, что устройство, по сути ключом не являясь, выдаёт себя за него, и домофоны реагируют на это соответствующе.

Прибор умеет транслировать любые коды ключей, которые записаны в его память. Некоторые коды можно найти в Сети по запросу «ключи-вездеходы», их я вставил в прошивку в первую очередь. Но при некотором навыке и желании можно вставить в прошивку коды вообще всех RFID-ключей, которыми вы пользуетесь (если они работают на частоте 125 кГц), и, таким образом, иметь возможность заменить одним прибором связку брелков.

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

2. Какими навыками нужно обладать, чтобы повторить данный проект?

Прежде всего, навыки работы с Arduino: иметь установленную среду разработки, уметь заливать в плату прошивки, устанавливать библиотеки, драйверы, вот это вот всё. Далее. Имеется в проекте место, где без пайки — ну вот никак. Потому — нужны прямые руки и паяльник с расходниками. Уметь читать электрические принципиальные схемы (или их подобия). Ну и навыки программирования на C++, дабы иметь возможность кастомизации прибора. Но это уже опционально.

3. Какие запчасти нужны и как их монтировать?

Не откладывая в долгий ящик — вот схема устройства:

Простите за то, что «не по ГОСТ» — я в drawio рисую, ибо единственная бесплатная и удобная альтернатива Visio, а я сейчас только лицензионный софт использую. Но, полагаю, всё и так предельно понятно.

Как видно, BOM для базовой версии выглядит примерно так:

  1. Arduino Nano (или любая другая Дуня, которая под рукой есть);
  2. RFID-ключ формата EM4100 (вместо катушки индуктивности);
  3. n-p-n транзистор (любой какой отыщется, частоты тут не очень высокие);
  4. резистор на 10К;
  5. конденсатор на 560 пФ (лучше SMD, можно прямо в корпус от ключа припаять);
  6. литий-ионный аккумулятор — по вкусу;
  7. три сенсорных кнопки;
  8. OLED-дисплей с I2C интерфейсом;
  9. модуль зарядки для liIon;
  10. повышающий DC-DC преобразователь с выходом 5 В.

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

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

Она представляет собой катушку и микросхему памяти с двумя контактными площадками по бокам. Выводы катушки припаяны как раз к этим площадкам. Всё это залито тонким слоем эластичного термополимера (по виду и свойствам похожего на застывший клей B7000). Чтобы добыть катушку, я поступил следующим образом. Взяв канцелярский нож, я аккуратно продавил лезвием текстолит между площадками и микросхемой. Микросхему отделил от катушки и выкинул. Затем паяльником я аккуратно (чтобы не отпаять тонкие проводки катушки) сжёг термополимер над контактными площадками, сделав возможным дальнейшую прозвонку.

Прежде чем паять, следует измерить сопротивление катушки, убедившись, что она не в обрыве. Если всё в порядке, то собирать лучше так: сперва припаять SMD-конденсатор к контактным площадкам (он должен аккуратно поместиться между ними), затем — ножки транзистора и под конец — резистор к базе. Всё это можно аккуратно смонтировать в корпус ключа. Провода «земли» и базы транзистора припаивать в последнюю очередь.

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

4. Прошивка, тест и наладка

Как и обещал, ссылка на репозиторий проекта. Файлы прошивки лежат в папке My_125_kHz_spoofer_v.03.

После сборки и заливки прошивки прибор готов к использованию. Чтобы убедиться в его работоспособности, совсем не обязательно искать домофон — можно обойтись китайским модулем для чтения RFID-ключей, который называется RDM6300 и ещё одной платой Arduino (хотя кому что проще). Прошивку для модуля RDM6300, выдающую транслируемый код ключа в том же формате, в каком он внесён в прошивку спуфера, я также положил в репозиторий проекта. Схема подключения ридера — там же.

Порядок тестирования с помощью ридера RDM6300:

  1. Убедиться, что ридер работает, поднеся к антенне любой из имеющихся в наличии ключей на 125 кГц (данные будут выводиться в COM-порт);
  2. Выбрать в меню спуфера интересующий код ключа;
  3. Поднести антенну к ридеру. Если ридер прочёл тот же ключ, что указан в прошивке — всё получилось! Else — проверяем схему, ищем, где ошибка, устраняем её и начинаем с пункта 1.

5. Что в прошивке можно менять, а что — лучше не трогать

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

Свои ключи можно добавлять в массив uint64_t universalID[], расположенный на 75 строке кода. Поскольку я не «задефайнил» общее количество ключей в памяти устройства, а некоторые функции завязаны на эту константу, при добавлении своего ключа следует менять также пределы, в которых находится переменная keyNumber, отвечающая за выбор ключа. Ну и не забывать свой ключ в меню добавлять. В общем, всё сыровато, но при желании, повторюсь, разобраться не трудно.

6. Что в приборе можно было бы доработать

  1. Добавить поддержку ключей iButton (хотя бы самых распространённых от Dallas).
  2. Добавить эмуляцию ключей, работающих на частоте 13,5 МГц (как я понял, либо через ношение перезаписываемой заготовки и модуль RC522, либо технически-сложно, через реальную эмуляцию).
  3. Добавить в прибор ридеры iButton, RDM6300 и RC522, чтобы сделать прибор ещё более универсальным.

7. История создания

Была на дворе осень 2017 года. Будучи студентом второго курса магистратуры, я томился неразрешёнными вопросами самоопределения. Проще говоря, маялся бездельем и искал, чем бы заняться. В итоге решил довести до конца свои старые инженерные проекты в ущерб посещению университета.

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

Днём попасть в подъезд любой многоэтажки труда не составляет никакого — социнженерия из серии «Здравствуйте, соцопрос о качестве работы управляющей компании для название_местной_газеты» отлично работает, да и вообще, в основном жильцы не против, чтобы кто-то заходил в подъезд вместе с ними. Ночью — другое дело. А я любил вылазить на крыши либо на закате, либо ночью… Назрела проблема, которую я и решил вышеописанным способом.

Как я помню, информация о подобных устройствах нашлась не сразу. Гуглёжка по ключевикам «взломщик домофонов» не давала почти ничего. Адекватное стало находиться, когда я чуть-чуть разобрался в технологии RFID, и стал задавать уже более осмысленные вопросы, типа «RFID emulator», «RFID multykey», «RFID spoofer».

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

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

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

  • C++
  • Разработка под Arduino
  • DIY или Сделай сам
  • Лайфхаки для гиков

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

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

Без названия (22).png

Виды домофонных ключей

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

Touch Memory (TM) или iButton

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

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

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

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

Proximity (MiFare, EM-Varin, HID)

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

Небольшие населённые пункты чаще используют контактные домофонные ключи в форме таблеток, представляющие собой постоянное запоминающее устройство (ПЗУ) с идентификатором.

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

Сделать дополнительную копию можно на любую болванку. Большой выбор заготовок и дубликаторов домофонных ключей вы можете найти в интернет-магазине (цена зависит от модели).

Без названия (23).png

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

Программирование ключа домофона

Намеренно испортить ключ домофона довольно сложно, но возможно. Итак, что может произойти? Магнитный ключ для домофона (дубликат) понадобится, если бесконтактные карточки или браслеты сломались из-за изломов или перегибов. Размагничивание подобных ключей от нахождения рядом с телефоном или пластиковыми картами невозможно.

Без названия (24).png

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

Три способа изготовить копию ключа:

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

Без названия (25).png

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

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

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

Сравнительная таблица совместимости дубликаторов и заготовок

SMkey

Контактные

Как сделать универсальный ключ для домофона

Текущее время: Вс мар 31, 2024 02:38:38

Часовой пояс: UTC + 3 часа

Как самому сделать универсальный ключ для домофона?

Страница 3 из 3 [ Сообщений: 49 ] На страницу Пред. 1 , 2 , 3

Заголовок сообщения: Re: Как самому сделать универсальный ключ для домофона?
Добавлено: Чт окт 02, 2014 17:43:15

Встал на лапы

Чёт наткнулся на эту тему и решил в крац блеснуть умом))) Сам работаю в компании по обслуживанию домофонов фирмы VIZIT в нашем городе. С универсальными ключами не разу не сталкивался. Есть у нас по два мастер-ключа. И с ними мы тоже можем снять видео, что мул одним ключом открываем разные подъезды. Но суть в том, что это не какие-то модные ключи, а два обычных ключа прописанных в каждый БУД в ручную. Без ручной прописки микросхема абсолютно пуста. Так-что если честно, х..й знает есть ли такие вообще.

Нашел в инете разумное объяснение принципа работы этих самых ключей. Говорят мул по принципу нулевых ячеек работает. Если кто подключал микруху памяти от БУДа к ПК, тот поймет о чём это. Завтра на работе попробую сделать такой. Если получится, отпишусь со своим отзывам.

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

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