dlinyj: (Default)
dlinyj ([personal profile] dlinyj) wrote2010-01-03 12:37 am

Радиоэлектронная байка

Нет, нет. Тут не будет сложных технических формул. Этот пост будет вполне доступен для понимания каждого. Написать я собирался его достаточно давно, но таки написал с подачи товарища [livejournal.com profile] mlen.

Собственно говоря, вторая моя статья в Хакер, которая и принесла мне славу, называлась "Ключ от всех дверей", ознакомится с версией без картинок можно тут: http://www.xakep.ru/magazine/xa/093/020/1.asp . В дальнейшем я обязуюсь выложить доредакционную версию данной статьи, с иллюстрациями и некоторыми картинками, которые не вошли в статью (либо те, которые я отсниму отдельно). На пальцах, конецепт этой статьи был в том, как на коленке собрать эмулятор ключей от домофона. Немного вдаваясь в технические тонкости, эмулятор был реализован на микроконтроллере AT89С2051 (пользуясь случаем передаю пламенный привет [livejournal.com profile] di_halt). Тогда у меня был доступ к программатору этих микроконтроллеров, и т.п. Проблемы программирования меня мало интересовали.

Идея эмулятора ключей от домофона зажгла многих! Я получил море писем, и на удивление, не смотря, что статья вышла аш в 2006 году(!) я продолжаю получать письма от читателей! (боже, я работаю в Хакере почти 4 года!). И вот однажды я получил письмо от некоторого товарища, которого зовут Роман. Он учился тогда в институте МИЭМ. И была у него курсовая работа, в качестве изучения шины one-wire - разработка аналогичного эмулятора, как раз на контроллере C51 архитектуры. При чём не просто абстрактного эмулятора, а чтобы можно было сделать конкретное действия.

Я познакомился лично с Романом, и даже поехал к нему в институт и познакомился с преподавателем, который дал это задание. В институте существует преподавательский лифт. Чтобы студенты на нём не катались, он защищён таблетками DS1990A, или говоря простым языком - ключами, аналогичными домофонным. И задача его была создать эмулятор, чтобы можно было прокатится на преподавательском лифте

http://images04.olx.ru/ui/1/57/04/15675304_1.jpg
Домофонный ключ


Я договорился с Романом, что я ему сделаю этот эмулятор. Но на микроконтроллере AT89S2051. Буковка S - говорит нам о том, что он программируется последовательным интерфейсом, яки AVR, а мой программатор для AVR как раз может шить такие ключи. К тому же, как оказалось, распиновка, даже разъёма программирования полностью соответствует ATTINY2313 в DIP корпусе. А у меня как раз были готовые платки для этих целей!

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

http://media.digikey.com/photos/Dallas%20Semicon%20Photos/DS1990A-F5+.JPG
Один из вариантов написания ключа. Слева две шестнадцатиричные цифра - это контрольная сумма, а справа 01 - это код семейства 1990А




После того, как я всё запаял и прошил, получилось вот такое вот устройство:


Готовый эмулятор


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

Кульминация байки Я отдал Роману данное устройство, с компилятором и исходным кодом. Рассказал ему в каком месте менять ключ, чтобы вбить ключ от лифта. И он отправился на следующий день в институт, тестировать данное устройство. Получив ключик от научрука, и прошив институтским программатором это устройство, он приступил к натурному тестированию лифта. Представьте себе: стоит студент, на первом этаже и каким-то самопальным устройством хачит преподский лифт! В момент пробного, и удачного пуска, мимо шёл ректор. Увидев сие безобразие, отобрал студенческий билет у Романа, а когда узнал что это курсовая работа, то ещё залепил хороший выговор преподу.

Результатом стало безоговорочный зачёт этой курсовой работы, без лишней бумажной волокиты :).

[identity profile] intac.livejournal.com 2010-01-02 09:48 pm (UTC)(link)
трогательная история.
меня волнует только, студент хоть освоил матчасть или так и прокатило твоими силами?

[identity profile] dlinyj.livejournal.com 2010-01-02 09:53 pm (UTC)(link)
Освоил, освоил. Не дурак студент был. Крутой спец, просто электроника был не профелирующий предмет.

[identity profile] iosaaris.livejournal.com 2010-01-02 10:21 pm (UTC)(link)
Классно! Я как раз прикупил себе подобных контроллеров. Будет ещё идея для опытов.

[identity profile] dlinyj.livejournal.com 2010-01-02 10:40 pm (UTC)(link)
С51? Это ж старьё... AVR лучше!

(no subject)

[identity profile] iosaaris.livejournal.com - 2010-01-03 10:35 (UTC) - Expand

(no subject)

[identity profile] dlinyj.livejournal.com - 2010-01-03 13:19 (UTC) - Expand

[identity profile] svchost1101.livejournal.com 2010-01-02 10:24 pm (UTC)(link)
чёрт,а у меня к МК как-то не сложилось
На ПЛИС гораздо проще всё понимается.

[identity profile] dlinyj.livejournal.com 2010-01-02 10:39 pm (UTC)(link)
А у меня пока с ПЛИС не сложилось. Нехватает ни времени, ни понимания, может даже желания изучать...

(no subject)

[identity profile] svchost1101.livejournal.com - 2010-01-02 22:44 (UTC) - Expand

(no subject)

[identity profile] vitmain.livejournal.com - 2010-01-08 10:03 (UTC) - Expand

[identity profile] cluster-d.livejournal.com 2010-01-02 10:33 pm (UTC)(link)
Именно этим занимался наверное каждый второй, кто решил изучать микроконтроллеры :)
Я тоже на эту тему курсач писал.
Edited 2010-01-02 22:34 (UTC)

[identity profile] dlinyj.livejournal.com 2010-01-02 10:40 pm (UTC)(link)
Ну не второй, иначе бы интернет был бы завален схемами. А моя статья оказалась бумовой. Следовательно на тот момент не так много народу это делало.

[identity profile] devmind.livejournal.com 2010-01-02 10:56 pm (UTC)(link)
Я, видать, каждый первый :) Сначала был один замок на работе. В эмуляторе не было нужды. А когда поставили замок у родителей на подъезде, мы уже сменили офис и перешли на RFID. В Одессе же в общем на парадных и дворовых воротах больше распространены механические кодовые замки (вот такие (http://www.kza.com.ua/zamok.htm)).

(no subject)

[identity profile] der-fremd.livejournal.com - 2010-01-03 06:57 (UTC) - Expand

(no subject)

[identity profile] devmind.livejournal.com - 2010-01-03 12:13 (UTC) - Expand

(no subject)

[identity profile] der-fremd.livejournal.com - 2010-01-03 12:39 (UTC) - Expand

(no subject)

[identity profile] easyjohn.livejournal.com - 2010-01-03 14:43 (UTC) - Expand

(no subject)

[identity profile] dlinyj.livejournal.com - 2010-01-03 13:22 (UTC) - Expand

[identity profile] cluster-d.livejournal.com 2010-01-02 11:48 pm (UTC)(link)
Кстати, у меня лежит парочка перепрошиваемых ключей. А на работе у коллеги валяется устройство для их прошивки. Узнать бы что там за протокол...

[identity profile] mlen.livejournal.com 2010-01-03 07:40 am (UTC)(link)
мне до сих пор пишут по поводу статей 1999, 2000 года и позже -)
хотя уже не пишут, гл снова залочил ящик, а оживлять его влом

[identity profile] dlinyj.livejournal.com 2010-01-03 09:06 am (UTC)(link)
Ой, разлочивать его просто - рисуешь письмо админам, и всё... Кстати, по моему у меня тоже залочился ящик...

[identity profile] d191t41-n0153.livejournal.com 2010-01-03 10:44 am (UTC)(link)
это все хорошо, но просто вот так взять и открыть любой подьезд - не выйдет. а сколько там байт в ключе? может есть смысл в дополнении эмулятора алгоритмом прямого перебора?

а как тебе идея скиммера для домофона?

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

[identity profile] devmind.livejournal.com 2010-01-03 12:29 pm (UTC)(link)
Картинка с ключом выше есть. Используются 8 знакомест. Отбросим 2 как подозрительно простые. Остается 6. 6 ^ 16 = 2 821 109 907 456. Учтем, что ключ домофон читает далеко не мгновенно, значит велик шанс состариться возле первого домофона (для справки: 100 лет = 3 153 600 000 с).

(no subject)

[identity profile] dlinyj.livejournal.com - 2010-01-03 13:13 (UTC) - Expand

(no subject)

[identity profile] devmind.livejournal.com - 2010-01-03 14:12 (UTC) - Expand

(no subject)

[identity profile] dlinyj.livejournal.com - 2010-01-03 14:18 (UTC) - Expand

(no subject)

[identity profile] devmind.livejournal.com - 2010-01-03 14:31 (UTC) - Expand

(no subject)

[identity profile] dlinyj.livejournal.com - 2010-01-03 14:37 (UTC) - Expand

(no subject)

[identity profile] devmind.livejournal.com - 2010-01-03 15:08 (UTC) - Expand

(no subject)

[identity profile] dlinyj.livejournal.com - 2010-01-03 13:16 (UTC) - Expand

(no subject)

[identity profile] devmind.livejournal.com - 2010-01-03 19:42 (UTC) - Expand

[identity profile] dlinyj.livejournal.com 2010-01-03 01:10 pm (UTC)(link)
Рекомендую прочитать мою статью, хотя бы без картинок. Чтобы было о чём поразмыслить. Сегодня сверстаю и выложу доредакционную версию с иллюстрациями. Если учесть, что домофон даёт ошибку при неправильном ключе, даёт 5 подходов, а потом даёт ERROR на 5 минут, то можно забыть о брутфорсе как факте...

[identity profile] cyber-lyric.livejournal.com 2010-01-03 11:11 am (UTC)(link)
класс :)

[identity profile] pavel239.livejournal.com 2010-01-03 12:22 pm (UTC)(link)
Весело!

[identity profile] di-halt.livejournal.com 2010-01-03 01:11 pm (UTC)(link)
А я без выебонов открываю такие двери пьезозажигалкой :)

[identity profile] dlinyj.livejournal.com 2010-01-03 01:17 pm (UTC)(link)
Не всегда канает...

(no subject)

[identity profile] di-halt.livejournal.com - 2010-01-03 13:19 (UTC) - Expand

(no subject)

[identity profile] dlinyj.livejournal.com - 2010-01-03 13:23 (UTC) - Expand

[identity profile] bs1.livejournal.com 2010-01-03 04:56 pm (UTC)(link)
В случае с домофонами часто помогает наличие инструкции и лень инсталляторов :)
Ну и, конечно, конструктивные недостатки некоторых моделей, позволяющие при необходимости добраться либо до питания замка, либо до кабеля управления замком.

***
«В дальнейшем я обязуюсь выложить доредакционную версию данной статьи, с иллюстрациями и некоторыми картинками, которые не вошли в статью»

Жду статью! :)

[identity profile] surovmag.livejournal.com 2010-01-03 06:20 pm (UTC)(link)
Вашу статью я читал. Прочтение сподвигло меня и коллегу на некие экспириенсы, о которых я от писался, вот ссылки, вдруг пригодится:

1. http://surovmag.livejournal.com/221921.html
2. http://surovmag.livejournal.com/227635.html

[identity profile] andrey-yurin.livejournal.com 2010-01-03 09:06 pm (UTC)(link)
А кварц-то сюда нахуя пихать? Встроенного RC генератора там - заглаза и за уши. Запас по допускам на тайминги там лошадиный. Я года два назад собирал поделку, которая могла читать ключи и запоминать (память была на 10 ключей) и, собственно, потом могла этот ключ эмулировать. Плюс свистелки, перделки и прочее. Всё это безобразие - на базе 2313тини. Эх, были студенческие годы.

[identity profile] dlinyj.livejournal.com 2010-01-03 09:58 pm (UTC)(link)
Внутренний генератор у AT89C2051? Вы батенька что-то путаете...

[identity profile] deeprat.livejournal.com 2010-01-04 12:00 pm (UTC)(link)
Рульный девайс 8) Хорошая история 8)

[identity profile] leoniv.livejournal.com 2010-01-05 10:54 am (UTC)(link)
Я тоже далал подобное в 2001 году:
http://www.telesys.ru/electronics/projects.php?do=p019
И версия на много ключей:
http://www.telesys.ru/electronics/projects.php?do=p038

[identity profile] funny-undead.livejournal.com 2010-01-08 01:27 pm (UTC)(link)
Практически офф-топ: как вам институт? и в каком здании хачили лифт?

[identity profile] dlinyj.livejournal.com 2010-01-08 03:43 pm (UTC)(link)
Институт отличный, я туда собирался в аспу поступать. А хачили в главном здании. После охраны направо, и там лифт.

[identity profile] capt-threepwood.livejournal.com 2010-01-09 12:09 am (UTC)(link)
О, МИЭМ, преподавательский лифт...
Когда учился там - многих посещали идеи об "открывашке". Собственно, под это дело и разобрался, как 1-Wire работает -)
Техническую возможность сделать эмулятор осознал ещё тогда - но не придумал, как получить номер с преподавательского ключа и забил ;-)