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

Как сделать шифратор/дешифратор для передачи команд

Пт апр 27, 2018 22:21:14

Приветствую форумчан!

Передача данных по радиоканалу осуществляется с помощью приемопередатчика Si1000 на 868MHZ.

С одной стороны управление происходит с компьютера , переходник USB-TTL.

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

Hex пакет передачи открытый (пример: FF 55 01 01 85 00 ) , поэтому запросто можно перехватить команды устройства и управлять с другого пульта управления.

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

Re: Как сделать шифратор/дешифратор для передачи команд

Сб апр 28, 2018 12:36:46

Вопрос конечно интерсный)) Сам приемопередатчик Si1000 на 868MHZ стандартный и перехватить вполне реально... даже простейшим радиосканером...
Обычно для шифрования используют стандартный алгоритмы шифрования... типа таких - https://ru.wikipedia.org/wiki/Advanced_ ... n_Standard
Такое ещё не делал)) Хотя это для передачи данных, а для двух отдельных друг от друга устройств с обратной связью на включение/выключение думаю можно придумать самому, попроще)) С одной стороны и с другой стороны МК, шифратор/дешифратор.
Может типа таблицы замещения, чтобы коды не повторялись... и добавить в пакет избыточную информацию - случайный набор цифр... и добавить в пакет контрольную сумму, с неизвесным никому полиномом и начальным значением... )) Например контрольная сумма может высчитаваеться хитро... например от всех пакетов, начиная с первого пакета... При этом контрольную сумму расчитать невозможно, не имея всех пакетов сообщения... )) И т.д. Вариантов много))

Re: Как сделать шифратор/дешифратор для передачи команд

Сб апр 28, 2018 15:03:32

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

Re: Как сделать шифратор/дешифратор для передачи команд

Сб апр 28, 2018 17:41:17

Вопрос конечно интерсный)) Сам приемопередатчик Si1000 на 868MHZ стандартный и перехватить вполне реально... даже простейшим радиосканером...
Обычно для шифрования используют стандартный алгоритмы шифрования... типа таких - https://ru.wikipedia.org/wiki/Advanced_ ... n_Standard
Такое ещё не делал)) Хотя это для передачи данных, а для двух отдельных друг от друга устройств с обратной связью на включение/выключение думаю можно придумать самому, попроще)) С одной стороны и с другой стороны МК, шифратор/дешифратор.
Может типа таблицы замещения, чтобы коды не повторялись... и добавить в пакет избыточную информацию - случайный набор цифр... и добавить в пакет контрольную сумму, с неизвесным никому полиномом и начальным значением... )) Например контрольная сумма может высчитаваеться хитро... например от всех пакетов, начиная с первого пакета... При этом контрольную сумму расчитать невозможно, не имея всех пакетов сообщения... )) И т.д. Вариантов много))


Спасибо , что откликнулись !

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

Добавлено after 10 minutes 24 seconds:
шифрование методом магического квадрата, да еще с плавающим ключем.
запарятся расшифровывать.


Спасибо что откликнулись !

Погуглил после вашего ответа, идея отличная , но к сожалению мне эту идею не осилить , тут нужен программист , а Я просто электронщик.
Я был бы рад , если бы кто нибудь мог бы воплотить эту идею (разумеется не безвозмездно)

Re: Как сделать шифратор/дешифратор для передачи команд

Сб апр 28, 2018 18:50:05

я не программист... я только учусь)) Помочь только советом. )) Сам тоже думал...
сам по себе магический квадрат ничего не даст. Данные будут повторяться... Понятно, что расшифровать это не составит труда)) С плавающим ключем? Это другое дело)) Только как передавать ключ? И т.д. ...

Вообще задача не стоит в шифровании данных, задача стоит в защите от несанкционированного доступа. Для управления двумя нагрузками можно просто забить в массив таблицу кодов вкл/выкл нагрузкой, при этом коды вкл/выкл никогда не будут повторяться. Простой перебор кодов не поможет, т.к. если код не верный - сработает защита. При повторной передачи кода тоже сработает система защиты и на экране появится сообщение "попытка несанкционированного доступа". )) Проблема только в ограниченной памяти МК... Массив должен переодически обновляться... например по специальной команде или автоматически, когда закончатся коды... ))

А ещё в современных радиомодулях есть функция - Перемежитель. (https://ru.wikipedia.org/wiki/Перемежитель). Это как дополнение...))

Re: Как сделать шифратор/дешифратор для передачи команд

Сб апр 28, 2018 21:43:07

ну да.. забить коды заранее а траффик подсолить языком Эзопа!

Re: Как сделать шифратор/дешифратор для передачи команд

Вт май 01, 2018 15:59:31

Шахту ракетную защищаем ? :) Простейшего шифрование, когда ключ, вшитый в приемник и передатчик, и точный алгоритм известен только программисту в случае единичных девайсов, imho, достаточно. Ну добавить еще систему команд посложнее. Кто будет париться взломом нестандартной защиты ? ЦРУ ? ФСБ ? ИГИЛ ? :)

Re: Как сделать шифратор/дешифратор для передачи команд

Ср май 02, 2018 23:25:13

Шахту ракетную защищаем ? :) Простейшего шифрование, когда ключ, вшитый в приемник и передатчик, и точный алгоритм известен только программисту в случае единичных девайсов, imho, достаточно. Ну добавить еще систему команд посложнее. Кто будет париться взломом нестандартной защиты ? ЦРУ ? ФСБ ? ИГИЛ ? :)



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

Re: Как сделать шифратор/дешифратор для передачи команд

Ср май 02, 2018 23:36:25

ну дело в том, что ЮСБ- Трансививеры(реже), а ЮСБ Ресиверы на 433 и 800 Мгц щас стоят просто копейки, а в инете есть красивый GUI софт(кто ищет тот найдет..),
с так наз Learn Function ну и Replay там тоже есть! Отдельным макаром реализуются готовые брелки "нажал и забыл"

Re: Как сделать шифратор/дешифратор для передачи команд

Чт май 03, 2018 13:43:42

Morroc писал(а):Кто будет париться взломом нестандартной защиты ? ЦРУ ? ФСБ ? ИГИЛ ?

Да любой радиолюбитель)) Например Я :))) Или любой радиолюбитель, в радиусе нескольких километров от вас..)) У Si1000 мощность+20 dBm (0,1 Ватт).

Стандартный приемопередатчик Si1000 на 868MHZ. https://www.silabs.com/documents/public ... Si1000.pdf

У Si1000 обычный стандартный протокол, как и во многих чипах. Обычная GFSK https://ru.wikipedia.org/wiki/GFSK ...Фильтр Гаусса https://ru.wikipedia.org/wiki/Фильтр_Гаусса ...с NRZ кодированием ... )) https://ru.wikipedia.org/wiki/Физическое_кодирование
1.jpg
(130.73 KiB) Скачиваний: 820

Пакет у Si1000 обычный стандартный...
2.jpg
(171.59 KiB) Скачиваний: 743

Взломать такой приемопередатчик - нефиг делать)) Радиолюбители взламывают всё))
https://www.youtube.com/watch?v=3HMThJkW_O0
И даже GSM взламывают, а не то что простейший радиомодуль))
https://www.youtube.com/watch?v=nOYVoR3B2hY
...
и т.д. ))

Простейшего шифрования будет недостаточно)) Всё таки нужна таблица шифрования... иначе никак...

Re: Как сделать шифратор/дешифратор для передачи команд

Вт май 08, 2018 10:11:23

Взломать такой приемопередатчик - нефиг делать)) Радиолюбители взламывают всё))

Это же насколько должно быть скучно жить :))

И даже GSM взламывают, а не то что простейший радиомодуль))

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

Асы программирования где Вы , отзовитесь и воплотите идею в железо !

А в каком месте проблема то ? Придумайте какой нибудь кадр обмена с командами и параметрами и перед передачей самый простейший вариант - это все со всеми байтами xor с ключом, в приемнике обратно. Дальше навороты по вкусу. По мне так даже "эффекта неуловимого джо" достаточно если эта штука в единичном экземпляре и работает всего несколько раз в день. Можно еще два передатчика сделать на разных частотах с разными ключами и наборами команд, ловим 2 одинаковых команды, если поймали - выполняем, для "радиолюбителя" сюрприз будет гарантировано в том бардаке, который сейчас в эфире. Чтобы нельзя было записать и передать команду лучше всего использовать двусторонний обмен и тогда вообще ушифроваться можно.

Re: Как сделать шифратор/дешифратор для передачи команд

Сб май 12, 2018 11:52:51

Так много написали.. и ничего конкретного))
Morroc писал(а):взломает к пенсии шлагбаум или ворота

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

Ну так вот и придумайте... вопрос именно про это.
Все алгоритмы используют Операцию ХОР с ключом, в приемнике обратно. - https://ru.wikipedia.org/wiki/Advanced_ ... n_Standard
Вопрос только в самом ключе или алгоритме шифрования... простая операция ХОР с ключом, в приемнике обратно. - вас никак не защитит.
Или нужно постоянно менять ключ (после кажной передачи) или использовать другой алгоритм.

В простейшем случае забить коды (массив) заранее в приёмник и передатчик... случайными числами... белый ШУМ... и использовать Операцию ХОР с этими числами. На выходе получим шумоподный сигнал)) Взломать такой алгоритм невозможно, белый ШУМ ещё никто не взломал))
Одна проблема - память для массива в МК ограничена. Тогда подключить к МК внешнюю флешку... на несколько гигабайт)) Для шлагбаума кодов хватит на несколько лет..)) Потом придётся обновлять массив в флешке...

Re: Как сделать шифратор/дешифратор для передачи команд

Сб май 12, 2018 14:18:03

Ну так вот и придумайте... вопрос именно про это.

Я не вижу тут над чем думать. Готовых алгоритмов полно, надо лишь выбрать степень параноидальности, определиться однонаправленная передача будет ли двунаправленная и подобрать соответствующий.

Вопрос только в самом ключе или алгоритме шифрования... простая операция ХОР с ключом, в приемнике обратно. - вас никак не защитит.
Или нужно постоянно менять ключ (после кажной передачи) или использовать другой алгоритм.

Если команда одна и никак не меняется - не защитит. Ключ конечно можно менять и даже перебирать в приемнике, ориентируясь на контрольную сумму блока команды (если влом синхронизацию какую то делать). Или использовать там и там часы с батарейкой. Запутать надо ведь не ЦРУ с ФСБ, а малость двинутого случайного человека, думаю ему надоест довольно быстро и защите нужно продержаться только это время.

В простейшем случае забить коды (массив) заранее в приёмник и передатчик... случайными числами... белый ШУМ... и использовать Операцию ХОР с этими числами. На выходе получим шумоподный сигнал)) Взломать такой алгоритм невозможно, белый ШУМ ещё никто не взломал))
Одна проблема - память для массива в МК ограничена.

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

Тогда подключить к МК внешнюю флешку... на несколько гигабайт)) Для шлагбаума кодов хватит на несколько лет..)) Потом придётся обновлять массив в флешке...

Навсегда хватит :) И памяти МК скорее всего тоже.

Re: Как сделать шифратор/дешифратор для передачи команд

Сб май 12, 2018 14:48:43

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

Re: Как сделать шифратор/дешифратор для передачи команд

Вс май 13, 2018 15:27:57

vlasovzloy писал(а):частоту менять после каждого байтика

Не поможет... )) И даже это вас не спасёт )) - https://ru.wikipedia.org/wiki/Псевдослу ... ей_частоты

Современные приёмники могут АВТОМАТИЧЕСКИ принимать и записывать всё сигналы, на разных частотах, на разных диапазонах... с записью на жёсткий диск... и последующим их декодированием... )) Даже если сигнал на разных частотах, программа АВТОМАТИЧЕСКИ определит что это один и тот же сигнал, только на разных частотах... )) Вопрос только в софте...
https://www.youtube.com/watch?v=EK7oNxERNus
Сейчас таких приёмников навалом. И даже для телефона...))
https://www.youtube.com/watch?v=LUNCMEs2qX8
...
и т.д.))
Morroc писал(а):однонаправленная передача будет ли двунаправленная

Однозначно двунаправленная. Мы должны получать на пульт подтверждение открытия шлагбаума... или что у нас там... ))
Morroc писал(а):Если ключ один - это почти тоже самое, только ключ длинный и его подбирать долго. В плане ограничения памяти можно просто написать свой собственный генератор псевдослучайной последовательности и тогда ключом будет значение "random.seed".

Если ключ один - это не тоже самое. Любой алгоритм имеет свою криптостойкость. Любой алгоритм, имеющий фиксированный алгоритм шифрования, с конечным количеством ключей, может быть взломан... Вопрос только в вычислительной мощности... )) Кратко вот.))

Re: Как сделать шифратор/дешифратор для передачи команд

Чт май 17, 2018 14:45:52

ну значит два телеграмма с обоих сторон поставить. ркн пока взломать не могут
Ответить