ДЛЯ ЧЕГО ЭТО ВСЕ КОМУ ТО - это вопрос отдельный)) Сейчас в инете развелось много "радиолюбителей" ))
sashamelja писал(а):1.взлом wpa2
2.узнать айпи определеного модуля или айпи mqtt сервера
3.взломать пароль к mqtt серверу
4.подобрать идентификатор клиента mqtt сервера
5.Угадать топи, и команды mqtt
Это всё не проблема)) Достаточно знать как работает mqtt протокол.
https://habr.com/ru/company/advantech/blog/452904/Цитата: "Стандартный порт MQTT-брокера для входящих TCP-соединений — 1883. При использовании защищенного SSL-подключения используется порт 8883."
От себя: защищенный SSL вас не спасёт от атаки "человек посередине". ))
Узнать айпи и MAC адреса всех устройств в доме можно с помощью обычного анализатора трафика))
Телеграм ещё пока не взламывал... А всякие там аккаунты и ящики с паролями воруют... ещё и как))
Поэтому при проектировании умного дома надо быть готовым к тому что весь трафик в доме и за домом могут видеть все "радиолюбители"))
Далее...
Мне тут стало интересно как работает мой умный дом по VPN. Скачал оперу... В опере есть бесплатный встроенный VPN.
-Мой комп 192.168.0.101 установил защищённый канал связи с сервером VPN 77.111.244.26 по протоколу TLS версии 1.2.
-Оправляю пакеты... на IP сервер VPN 77.111.244.26
-сервера VPN 77.111.244.26 преобразует IP в 77.111.244.101 и отправляет моему дому W5500.
-мой дом W5500 определяет с какого IP пришёл запрос... проверяет корректность запроса (формат пакета, контрольные суммы, ключи шифрования и т.д.) и все эти данные возвращает серверу VPN 77.111.244.101
-сервер VPN 77.111.244.101 возвращает данные моему компу.
сервер VPN 77.111.244.26 находится где-то в Нидерландах))
Короче всё работает. ))
Только по VPN тормозит всё конкретно (скорость передачи пакетов меньше в 2...3 раза).
А ещё сервер VPN 77.111.244.26 фильтрует весь HTTP трафик. Просто TCP пакеты он не пропускает. Надо писать всё как положено (согласно HTTP протоколу).
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *\r\n
Content-Type: text/html\r\n\r\n
...
и т.д.
Но главное что всё работает. Буду в Нидерландах проверю))
Добавлено after 8 hours 19 minutes 20 seconds:sashamelja писал(а):Если надумаете переходить на esp32...
Подумаем))
В интернете нашёл прикольное видео)) Чувак сделал Ethernet модуль на... ATtiny85 !!!
https://www.youtube.com/watch?v=mwcvElQS-hMhttps://www.youtube.com/watch?v=m4f4OzEyuegЯ тоже так хочу )) Повторим эксперимент. Будем передавать UDP пакеты по интернету))
Правда ATtiny85 у меня нет... возьмём Atmega8 )) И кварц 20 МГц.
https://aliexpress.ru/item/32674069830. ... 81ca95a-12Паяем по схеме.
Далее открываем AVR студию и пишем на... ассемблере)) Пипец... Не люблю ассемблер но по другому не получится))
Подробное описание Ethernet пакета лучше посмотреть тут -
https://www.fpga4fun.com/10BASE-T2.htmlДалее... чувак подробно рассказывает про стандарт 10BASE-T и "Манчестер-II"... Правда у чувака явные проблемы с математикой...
Но не важно.
Прошиваем Atmega8... подключаем к роутеру... и... нифига не работает))
Причина не понятна... нормального осциллографа нет.
Тогда делаем всё по стандарту 10BASE-T. Добавляем трансформатор ))
https://aliexpress.ru/item/32742082279. ... d3ddcb5d-1Заработало ! )) Сразу поднялся Link на роутере. Нажимаем на кнопку... побежали UDP пакетики))
*Резистор в схеме на всякий случай))
Пару слов про стандарт 10BASE-T. Проверим на практике стандарт 10BASE-T ))
"Манчестер-II" может иметь разную кодировку: так "1" > 10, "0" > 01 или так "1" > 01, "0" > 10.
Хотя роутер и работает с любой кодировкой, но второй вариант работает лучше (стабильней).
Байты передаются младшим битом вперёд (как в UART).
Контрольную сумму Ethernet пакета (CRC-32) может посчитать Atmega8.
А можно посчитать вручную, в онлайн-калькуляторе и забить в программу))
http://www.sunshine2k.de/coding/javascr ... rc_js.htmlТолько я не понял... зачем надо передавать CRC-32 начиная с младшего байта... B3 31 88 1B... но видимо так надо было)) Разработчикам Ethernet виднее))
Еще в стандарте 10BASE-T написано про Автосогласование -
https://en.wikipedia.org/wiki/Autonegot ... al_signalsЕсли Atmega8 не передаёт пакеты, то она должна передавать импульсы соединения (NLP). И даже прописано требования к импульсам.
Сделаем по стандарту.))
Но как показала практика... роутеру пофигу эти стандарты)) Менял длительно (50...500 ns) и скважность (10...30 ms) и фазу импульсов... роутеру без разницы)) На самом деле роутер реагирует только на наличие или отсутствие импульсов, а не на их параметры)) Точнее роутер реагирует на любой сигнал (активность) на своём порту...
Можно вообще не передавать никаких импульсов (NLP), а сразу передавать пакеты.
-Если нет никаких импульсов, роутер отключает свой порт... и экономит электричество)).
-Как только появляются импульсы (или пакеты), роутер опять включает порт.
Одна проблема - время включения порта у роутера до 0,5 секунды. Поэтому если сразу передавать пакеты (пачками), то первые пакеты теряются. А в остальном всё нормально))
Короче... разобрали подробно Ethernet стандарт 10BASE-T. Сделали прикольный датчик)) Можно поставить куда-нибудь... Atmega8 может передавать UDP пакет прямо на мобильник... по интернету)) И никаких esp32 не надо))
Ещё порадовало низкое энергопотребление. Для сравнения (ток в режиме передачи):
-роутер 240...320 mA (зависит от количества активных портов).
-esp32 до примерно ~300 mA (точно не знаю).
-W5100 180mA
-W5500 80mA
-Atmega8 12mA (!).
Можно ещё добавить кнопок...
Теоретически можно добавить датчик температуры... напряжения и т.д.
Например тут собрали аналогичную схемку на
ПЛИС -
https://marsohod.org/projects/plata1/94-ether-sendМожно тоже самое сделать на Atmega8. Правда с Atmega8 придётся извратиться)) Atmega8 и так работает на пределе своих возможностей - тактовая частота 20 МГц, а максимальная ~25 МГц. ))
Ещё бы научить Atmega8 принимать пакеты...
Например тут собрали приёмник пакетов...
https://marsohod.org/projects/marsohod2/263-rtl-recvНо это для Atmega8 уже будет слишком сложно)) Тут нужен МК пошустрей... например како-нибудь STM32... с тактовой частой 72 МГц и т.д. и т.п.))
Последний раз редактировалось
roman.com Вт мар 10, 2020 14:46:04, всего редактировалось 1 раз.