Всем здравия, господа! Сегодня я расскажу про x10. “X10 — международный открытый промышленный стандарт, применяемый для связи электронных устройств в системах домашней автоматизации. Стандарт X10 определяет методы и протокол передачи сигналов управления электронными модулями, к которым подключены бытовые приборы, с использованием обычной электропроводки или беспроводных каналов.” - вики. Наверняка, многие видели видео “Хакеры - такому в школе не научат”. Там показывалось, как несколькими нажатиями на свой смартфон, герой видео выключает свет в целом офисном здании. Естественно, когда я увидел это, я подумал, как так? Хочу также! Но увидев огромное количество опровержений этого видео и прочитав несколько статей, рассказывающих, что это невозможно, я “слегка” подзабил, а точнее, вообще забыл про это. Но недавно услышал про протокол автоматизации электроники в офисе - X10. И углубился в эту тему…
И понял, что это именно то, что было показано в том видео. Изначально я считал, что так не бывает. Как можно программно включить или выключить свет, если выключатель механический? Это то же самое, что попытаться программно вытащить флешку из компьютера. Но все оказалось намного более интересно, нежели я думал. Оказывается есть целая наука – автоматика, которой занимаются целые полчища ученых по всему миру. Уже очень давно они решили задачу автоматического управления электропитанием: научились удаленно включать и выключать различные электроприборы, вроде ламп освещения, электродвигателей и кофеварок. И уж конечно они решили проблему управления освещением в крупных зданиях. Или ты думаешь, что такой проблемы нет?
Погасить свет сразу во всем здании – очень просто, а что делать, если какому-нибудь сотруднику-трудоголику вздумается поработать ночью? Во всех коридорах и офисах погашен свет, а этому работничку надо дойти до своего офиса и ходить время от времени в туалет. Не думаю, что кто-то в здравом уме будет из-за него включать свет во всем здании.
И конечно же нельзя доверять ему пользоваться ручными выключателями: он обязательно забудет что-нибудь погасить, и охраннику снизу придется из-за этого топать на этаж. Само собой, таких трудоголиков в большом офисном центре может быть немало, и вручную включать и выключать для них свет - непростая задача. Да и вывести на единый пульт у охраны все выключателей - так себе идея. Только представьте, сколько проводов придется прокладывать! Для примера, если в здании 1000 выключателей, то толщина связки всех подходящих к пульту проводов будет достигать четырёх метров! Да и сориентироваться в тысяче кнопок для охранника – нелегкое дело.
Гораздо разумнее подошли к этому вопросу ученые-автоматчики, разработавшие автоматическую систему управления освещением. Предлагаю разобраться, как она работает.
Представьте себе, что каждый из выключателей – это не просто механический замыкатель контактов, а умное реле с собственным логическим адресом. Все реле, естественно, подключаются к общей сети и, понятное дело, физически связаны друг с другом. Также к сети подключается некий пульт, который координирует работу всех реле, посылая им специальные сигналы.
Протокол X10 впервые был представлен в 1978 году компанией PICO electronics. У него есть несколько огромных плюсов для взломщика.
Прежде всего, несколько слов об электрической составляющей этого протокола. Как я уже говорил, для передачи информации используется обычная электрическая сеть 220 вольт 50 Гц, доступ к которой можно получить через любую розетку. Хитрость тут в том, что провода могут легко передавать радиосигналы вместе с сетевым напряжением. Информация распространяется в виде наложенных на синус сети пакетов переменного напряжения с амплитудой в 5 вольт и частотой 120 кГц. Длится каждый пакет 1 мс. Данные передаются в последовательном виде. Синхронизация импульсов определяется переходом переменного напряжения через ноль. Единица кодируется тремя импульсами с интервалом 3,33 мс (это справедливо для частоты сети 50 Гц), что соответствует переходу всех трех фаз через ноль. Нулевой бит является отсутствием этого импульса. Проще говоря, если у нас в сети идет переменный ток синусоидальной формы, то на экране осциллографа в момент передачи сигналов в месте перехода сетевого напряжения через ноль будут видны небольшие всплески, напоминающие шум или даже некоторую рябь. А при передаче нулевого бита подобного всплеска не будет. Это была электрическая составляющая протокола. Теперь расскажу о логике.
Логика
В Х10 существует адресация получателя сигнала. Есть так называемый «адрес дома», который символически обозначается латинской буквой от А до O. В каждой такой «ячейке» имеется адрес кода прибора - число от 0 до 16-ти. «Адрес дома» – это абстрактное понятие, просто дополнительный адрес. Можно в одной квартире поставить один светильник на дом А и пятый адрес, второй - на В и десятый адрес. Команда передачи по сети занимает 22 перехода фазового напряжения через нулевой уровень (22 бита информации, по биту на переход через ноль). Начальная команда называется стартовым кодом, она всегда равна 1110b. Когда на исполнительное устройство приходит такая последовательность бит, то оно понимает, что началась передача. Дальше передается адрес кода дома, который занимает один байт. Затем - 10 бит, несущих код устройства или код команды для всех устройств в адресе этого дома (например, выключить все приборы). Если передается адрес, то он еще содержит в себе команду, что сделать с тем или иным прибором (например, можно сделать свет менее ярким, если в качестве приемника используется диммерный модуль). Получается, что посылка выглядит так. Сначала идет стартовый код, потом - адрес дома, затем - адрес исполняемого устройства с командой, либо команда для всех устройств в этом «доме». Чтобы исключить помехи в осветительной сети от разных устройств, посылка отправляется дважды. Между посылками делается небольшая пауза, чтобы отделить их друг от друга. Вся посылка обычно занимает 94 бита, которые занимают 47 периодов силового напряжения и по времени длятся 0,94 секунды. Поэтому работа осуществляется достаточно медленно, но этого вполне хватает для управления освещением, бытовыми приборами и иной электрикой офиса. Также есть возможность дать дополнительные инструкции, просто в последней части сообщения даётся инструкция - “включить расширенные коды” и далее идёт ещё 256 бит инструкций. Но это чаще применимо к сложным системам, типа сигнализаций, но сейчас не об этом.
Что будет принимать команды, я думаю, понятно, однако их надо с чего-то отправлять. В основе всей этой системы лежит некоторый передатчик формата Х10, которым может управлять либо человек, либо некоторый автономный девайс.
Начнем с трансивера. Представьте, что вы уже лежите в постели и тут вспоминаете, что забыли погасить свет во всей квартире, но вставать вам лень. Берёте пульт, нажимаете пару кнопок, и свет везде гаснет. Этот пульт тоже работает по стандарту Х10 на частоте 433,92 МГц, но только передает команды в виде радиоволн, то есть без проводов. Передача сигналов с пульта в сеть 220 вольт осуществляется трансивером – девайсом, преобразующим радиосигнал в команды Х10. Выходит, что если в нашем здании стоит управление автоматикой с такого пульта, то не составит большого труда просто взять его и включить лампы по необходимым адресам. Остается только добыть карту адресов освещения этого здания или просто самому вечером с пульта составить ее методом перебора. Если трансивера в здании нет, то ничего не мешает его туда тихо пронести, воткнуть в ближайшую розетку… и осуществить описанный выше взлом.
Но всё это как-то не интересно. Для настоящих программеров есть неплохое хакерское устройство, которое называется Marmitek CM11. На мой взгляд, это самое удачное решение. Девайс подключается к компьютеру через USB- или COM-интерфейс и позволяет с помощью программы Home Control управлять освещением, писать небольшие макросы, которые можно сохранить в него и выполнить в определенное время уже без компьютера. Нам останется лишь узнать адреса ламп в заветном офисном помещении, написать соответствующий макрос, который включится в определенное время, затем залить его в CM11 и подключить этот девайс к любой офисной розетке.
Конечно, кроме X10 существует множество других стандартов автоматизации, но эта статья не о них, если желаете, могу и про них написать. А за сим я откланяюсь, вам желаю хорошего дня, и надёжной системы автоматизации, если конечно вы ей пользуетесь.
P.S. С практикой по asm возникли некоторые, проблемы, кто шарит в древних версиях биос, отпишите в лс, пожалуйста.
И понял, что это именно то, что было показано в том видео. Изначально я считал, что так не бывает. Как можно программно включить или выключить свет, если выключатель механический? Это то же самое, что попытаться программно вытащить флешку из компьютера. Но все оказалось намного более интересно, нежели я думал. Оказывается есть целая наука – автоматика, которой занимаются целые полчища ученых по всему миру. Уже очень давно они решили задачу автоматического управления электропитанием: научились удаленно включать и выключать различные электроприборы, вроде ламп освещения, электродвигателей и кофеварок. И уж конечно они решили проблему управления освещением в крупных зданиях. Или ты думаешь, что такой проблемы нет?
Погасить свет сразу во всем здании – очень просто, а что делать, если какому-нибудь сотруднику-трудоголику вздумается поработать ночью? Во всех коридорах и офисах погашен свет, а этому работничку надо дойти до своего офиса и ходить время от времени в туалет. Не думаю, что кто-то в здравом уме будет из-за него включать свет во всем здании.
И конечно же нельзя доверять ему пользоваться ручными выключателями: он обязательно забудет что-нибудь погасить, и охраннику снизу придется из-за этого топать на этаж. Само собой, таких трудоголиков в большом офисном центре может быть немало, и вручную включать и выключать для них свет - непростая задача. Да и вывести на единый пульт у охраны все выключателей - так себе идея. Только представьте, сколько проводов придется прокладывать! Для примера, если в здании 1000 выключателей, то толщина связки всех подходящих к пульту проводов будет достигать четырёх метров! Да и сориентироваться в тысяче кнопок для охранника – нелегкое дело.
Гораздо разумнее подошли к этому вопросу ученые-автоматчики, разработавшие автоматическую систему управления освещением. Предлагаю разобраться, как она работает.
Представьте себе, что каждый из выключателей – это не просто механический замыкатель контактов, а умное реле с собственным логическим адресом. Все реле, естественно, подключаются к общей сети и, понятное дело, физически связаны друг с другом. Также к сети подключается некий пульт, который координирует работу всех реле, посылая им специальные сигналы.
Протокол X10 впервые был представлен в 1978 году компанией PICO electronics. У него есть несколько огромных плюсов для взломщика.
- Сигнал передаётся по силовым проводам, значит не придётся вклиниваться не в какую доп проводку, так как её попросту нет
- Данный протокол полностью описан, следовательно, не возникнет проблем с поиском способа его взлома
Прежде всего, несколько слов об электрической составляющей этого протокола. Как я уже говорил, для передачи информации используется обычная электрическая сеть 220 вольт 50 Гц, доступ к которой можно получить через любую розетку. Хитрость тут в том, что провода могут легко передавать радиосигналы вместе с сетевым напряжением. Информация распространяется в виде наложенных на синус сети пакетов переменного напряжения с амплитудой в 5 вольт и частотой 120 кГц. Длится каждый пакет 1 мс. Данные передаются в последовательном виде. Синхронизация импульсов определяется переходом переменного напряжения через ноль. Единица кодируется тремя импульсами с интервалом 3,33 мс (это справедливо для частоты сети 50 Гц), что соответствует переходу всех трех фаз через ноль. Нулевой бит является отсутствием этого импульса. Проще говоря, если у нас в сети идет переменный ток синусоидальной формы, то на экране осциллографа в момент передачи сигналов в месте перехода сетевого напряжения через ноль будут видны небольшие всплески, напоминающие шум или даже некоторую рябь. А при передаче нулевого бита подобного всплеска не будет. Это была электрическая составляющая протокола. Теперь расскажу о логике.
Логика
В Х10 существует адресация получателя сигнала. Есть так называемый «адрес дома», который символически обозначается латинской буквой от А до O. В каждой такой «ячейке» имеется адрес кода прибора - число от 0 до 16-ти. «Адрес дома» – это абстрактное понятие, просто дополнительный адрес. Можно в одной квартире поставить один светильник на дом А и пятый адрес, второй - на В и десятый адрес. Команда передачи по сети занимает 22 перехода фазового напряжения через нулевой уровень (22 бита информации, по биту на переход через ноль). Начальная команда называется стартовым кодом, она всегда равна 1110b. Когда на исполнительное устройство приходит такая последовательность бит, то оно понимает, что началась передача. Дальше передается адрес кода дома, который занимает один байт. Затем - 10 бит, несущих код устройства или код команды для всех устройств в адресе этого дома (например, выключить все приборы). Если передается адрес, то он еще содержит в себе команду, что сделать с тем или иным прибором (например, можно сделать свет менее ярким, если в качестве приемника используется диммерный модуль). Получается, что посылка выглядит так. Сначала идет стартовый код, потом - адрес дома, затем - адрес исполняемого устройства с командой, либо команда для всех устройств в этом «доме». Чтобы исключить помехи в осветительной сети от разных устройств, посылка отправляется дважды. Между посылками делается небольшая пауза, чтобы отделить их друг от друга. Вся посылка обычно занимает 94 бита, которые занимают 47 периодов силового напряжения и по времени длятся 0,94 секунды. Поэтому работа осуществляется достаточно медленно, но этого вполне хватает для управления освещением, бытовыми приборами и иной электрикой офиса. Также есть возможность дать дополнительные инструкции, просто в последней части сообщения даётся инструкция - “включить расширенные коды” и далее идёт ещё 256 бит инструкций. Но это чаще применимо к сложным системам, типа сигнализаций, но сейчас не об этом.
Что будет принимать команды, я думаю, понятно, однако их надо с чего-то отправлять. В основе всей этой системы лежит некоторый передатчик формата Х10, которым может управлять либо человек, либо некоторый автономный девайс.
Начнем с трансивера. Представьте, что вы уже лежите в постели и тут вспоминаете, что забыли погасить свет во всей квартире, но вставать вам лень. Берёте пульт, нажимаете пару кнопок, и свет везде гаснет. Этот пульт тоже работает по стандарту Х10 на частоте 433,92 МГц, но только передает команды в виде радиоволн, то есть без проводов. Передача сигналов с пульта в сеть 220 вольт осуществляется трансивером – девайсом, преобразующим радиосигнал в команды Х10. Выходит, что если в нашем здании стоит управление автоматикой с такого пульта, то не составит большого труда просто взять его и включить лампы по необходимым адресам. Остается только добыть карту адресов освещения этого здания или просто самому вечером с пульта составить ее методом перебора. Если трансивера в здании нет, то ничего не мешает его туда тихо пронести, воткнуть в ближайшую розетку… и осуществить описанный выше взлом.
Но всё это как-то не интересно. Для настоящих программеров есть неплохое хакерское устройство, которое называется Marmitek CM11. На мой взгляд, это самое удачное решение. Девайс подключается к компьютеру через USB- или COM-интерфейс и позволяет с помощью программы Home Control управлять освещением, писать небольшие макросы, которые можно сохранить в него и выполнить в определенное время уже без компьютера. Нам останется лишь узнать адреса ламп в заветном офисном помещении, написать соответствующий макрос, который включится в определенное время, затем залить его в CM11 и подключить этот девайс к любой офисной розетке.
Конечно, кроме X10 существует множество других стандартов автоматизации, но эта статья не о них, если желаете, могу и про них написать. А за сим я откланяюсь, вам желаю хорошего дня, и надёжной системы автоматизации, если конечно вы ей пользуетесь.
P.S. С практикой по asm возникли некоторые, проблемы, кто шарит в древних версиях биос, отпишите в лс, пожалуйста.
Последнее редактирование: