Easyelectronics.ru

Электроника для всех
Текущее время: 18 янв 2020, 16:12

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



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 14:33 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
Всем привет,

Есть у меня своя поделка устройств, которые обмениваются с центральным ХАБом командами и данными по радиоканалу. Заморочился я зашифровать протокол обмена, чтоб данные не светились в эфире. Прикрутил алгоритм AES (либа от ST), все хорошо, теперь хочу еще усилить, дело в том, что у меня есть исполнительные устройства, например выключатель, которому посылается команда, так вот одинаковые данные зашифрованные AES тоже будут одинаковые что не составляет труда перехватить радио посылку и отправлять ту же самую команду но зашифрованную и устройство её примет и обработает. Какие мне видятся способы защиты:
    - самое простое - посылать дополнительный случайный байт (два, три), который будет являться "шумом", тогда кодированные данные всегда будут разные, но все равно повторив одну такую посылку устройство её примет.
    - посылать счетчик команд и не принимать команды, если этот счетчик не увеличивается или меньше чем ожидается, уже лучше, но нужно помнить последнюю команду и как-то синхронизироваться с хабом.
    - использовать токен и сеансы (сессии) - при включении устройства оно посылает на ХАБ запрос, хаб генерит токен и отсылает его устройству, далее идет обмен данными, "подписаными" этим токеном (например CRC32). Токен протухает на ХАБе раз в N времени и нужно его заново генерить. Все это естественно еще шифруется AES. Вроде не сильно сложно. Но опять же - в пределах одного токена посылка для одной команды будет одинаковая.
    - ваш вариант?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 15:00 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
счетчик нужен, причем, достаточного размера и не с нуля (можно счетчик+nonce).
нужно рассмотреть атаку с рандомными посылками. если у вас там байт команды и байт счетчика, то одна из 64к случайных посылок сработает, и т.п..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 15:36 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
Вот и я к этому больше склоняюсь, но со счетчиком нужен какой-то алгоритм его сброса и обновления. Т.е.е ситуация когда команда не дошла (а без подтверждения команды мы не можем знать дошла она или нет) и когда устройство было отключено, п потом его подключили.
И еще когда команда дошла, но не дошло подтверждение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 15:42 
Старожил

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 3516
Еще один вариант, устойчивый к перехвату, но бессильный против утечки - тогда теряется всё и сразу.
В пакете говорится: "От Иоанна гл.15 ст.27 стр.4 сл.7". Библия содержится на борту и сервера, и клиента, но цедится в эфир тонкой струйкой и никогда не будет накоплена целиком у перехватчика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 15:51 
Старожил

Зарегистрирован: 26 дек 2011, 18:08
Сообщения: 636
Передатчик в открытом виде передаёт текущее время в миллисекундах (открытый ключ) и закодированное этой меткой слово управления из нескольких байт по своему алгоритму (AES + XOR +сдвиг и их комбинации).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 15:53 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2634
Откуда: Санкт-Петербург
alexsam, два варианта защиты от replay attack из самых тупых (оба исходят из того, что ключи шифрования не скомпрометированы и что пакет проверяется на подлинность):
1. Использовать текущее время (требует синхронизации часов)
2. Three-way connection: мастер шлёт запрос, слэйв отвечает (добавляя в пакет случайное число), мастер шлёт запрос на действие уже с этим числом. Запрос на действие, естественно, принимается только в течение короткого промежутка времени после генерации "токена" (по сути, та же схема, что у вас для токена, но токен одноразовый и протухает очень быстро)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 16:14 
Заглядывает иногда

Зарегистрирован: 26 сен 2015, 03:02
Сообщения: 82
Совместить 2 и 3 варианты.

При включении исполнительное устройство шлёт пакет, содержащий идентификатор устройства и случайный ключ доступа, по 32 бита каждый.
Шлёт пока хаб не ответит пустой командой, содержащей этот ключ доступа. Каждая команда от хаба устройству содержит
индивидуальный для устройства 32-битный счётчик, который увеличивается на 1 при каждой отправке.
Если исполнительное устройство получает значение счётчика, которое увеличилось более, чем на 2^31 от последнего - команда игнорируется.
Если от хаба не было корректной команды N секунд, то устройство опять запускает процесс отправки ключа.

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

Такая система позволяет исключить возможность управления исполнительным устройством, но не защищена от DoS-атаки на хаб.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 16:40 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
Использование времени отпадает в любом случае - не хочу ставить внешние часовые кварцы - много места занимают и часть устройств уже работает "в полях".
С таблицей тоже не вариант, 16КБ флеша из них занять 1КБ данными тоже не хочу.
Пока рассматриваю варианты со счетчиком и одноразовым токеном.
IvanSh - ваш вариант - это вообщем-то счетчик.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 16:55 
Заглядывает иногда

Зарегистрирован: 26 сен 2015, 03:02
Сообщения: 82
alexsam писал(а):
IvanSh - ваш вариант - это вообщем-то счетчик.

Ну так я и пишу, что это ваши же варианты 2 и 3 - счётчик+токен.
Если использовать только лишь счётчик - потребуется синхронизации этого счётчика, и устройство не защищёно от атаки сразу после сброса питания.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 17:09 
Старожил

Зарегистрирован: 26 дек 2011, 18:08
Сообщения: 636
Цитата:
16КБ флеша из них занять 1КБ данными тоже не хочу.
ты напиши на какой тиньке AES делаешь... а мы посмеёмся :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 18:00 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
freeon писал(а):
ты напиши на какой тиньке AES делаешь... а мы посмеёмся :)
я уже посмеялся:
freeon писал(а):
по своему алгоритму (AES + XOR +сдвиг и их комбинации)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 18:01 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
freeon писал(а):
Цитата:
16КБ флеша из них занять 1КБ данными тоже не хочу.
ты напиши на какой тиньке AES делаешь... а мы посмеёмся :)

Пока-что я посмеялся с твоей невнимательности.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 23:24 
Старожил

Зарегистрирован: 26 апр 2013, 23:55
Сообщения: 1022
Цитата:
Использование времени отпадает в любом случае - не хочу ставить внешние часовые кварцы - много места занимают и часть устройств уже работает "в полях".
такие тоже много места занимают?
Изображение

А если много, то сколько будет немного? В реальных цифрах.

Еще момент: устройства "в поле" на внутреннем RC-генераторе? Даже с их точностью уход по времени за сутки будет не смертельный, можно загрубить время для смены ключей по времени (набор ключей забить и менять). Тем более раз обмен уже реализован, подстроить время проблем не составит.

_________________
Белорусский журнал «Радиолюбитель»
Мои разработки http://raxp.radioliga.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 23 дек 2016, 23:57 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
Да тут даже дело не в свободном месте, а в доп. компонентах.
А само время убегает очень сильно. Устройство находится большую часть времени в STOP Mode (STM32F030F4) и при этом RTC внутренние убегают так, что WakeUp настроенный на каждую минуту по факту плавает +/-8 сек. Мне это сейчас не критично вообще, но на него надеяться точно нельзя.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 24 дек 2016, 10:25 
Старожил

Зарегистрирован: 26 апр 2013, 23:55
Сообщения: 1022
...жаль, что дополнительных компонентов низзя: RTC в SMD выше отпали, GPS по понятным причинам вообще несерьезно из-за размеров, возможного отсутствия видимости на спутники и существенном удорожании устройства в поле. Но, когда не было GPS уже были сигналы точного времени и сейчас по радиоэфиру (60, 66 кГц и т.д.), например от длинноволнового DCF77. Технология стара как само радио, а впихнуть функцию синхронизации от тиков в радиоэфире смогли даже в наручные часы, в те же часы Casio с функцией радиоконтроля (GW-7900-RD-4ER). Вкратце. Места хватило людям.

--- вариации на тему

Кстати, есть аналоговый радиоприемничек все в одном в TO-92 корпусе:
Изображение

контур ему и готовая часть для синхронизации с радиоэфира. MK484 около одного абамы.

_________________
Белорусский журнал «Радиолюбитель»
Мои разработки http://raxp.radioliga.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 24 дек 2016, 17:14 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 2033
Ink писал(а):
freeon писал(а):
ты напиши на какой тиньке AES делаешь... а мы посмеёмся :)
я уже посмеялся:
freeon писал(а):
по своему алгоритму (AES + XOR +сдвиг и их комбинации)
Хорошо что смеющихся много :)
Вот реальный пример подобной комбинации методов одной программы 10-ти летней давности - тут и микрософт крипт и ксоры и роры и ролы...
в качестве источника генерации ключа используется имя файла...
Изображение
аналогично для передачи данных можно использовать любое меняющееся число, в том числе и текущий отсчёт времени, в том числе несинхронизированного с мировым и жыпээсным абстрактного локального в процессоре времени... каждую микросекунду у вас будет новая база для создания ключа открытого пароля.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 24 дек 2016, 17:24 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1047
alexsam писал(а):
С таблицей тоже не вариант, 16КБ флеша из них занять 1КБ данными тоже не хочу.

Уже писали много раз, 32Кб там флеша, плюс 32 бит таймер. Аналогично у многих других ходовых STM32(103С8, 407VE...) флеша больше в 2 раза, а у некоторых больше еще и RAM.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 24 дек 2016, 17:57 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
Reflector писал(а):
alexsam писал(а):
С таблицей тоже не вариант, 16КБ флеша из них занять 1КБ данными тоже не хочу.

Уже писали много раз, 32Кб там флеша, плюс 32 бит таймер. Аналогично у многих других ходовых STM32(103С8, 407VE...) флеша больше в 2 раза, а у некоторых больше еще и RAM.

Если уж на то пошло, то там почти Гиг свободной памяти!... Но использовать её в продакшене нельзя ибо не гарантируют. Хотя я на всех чипах, которые у меня были тестировал её и ни разу не натыкался на сбойные страницы...


Вложения:
2016-12-24_1454.png
2016-12-24_1454.png [ 76.71 Кб | Просмотров: 2782 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 24 дек 2016, 18:01 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
petrplc писал(а):
Но как в анекдотичных случаях с банкоматами... зачем тратить время на взлом пароля , когда можно просто подать питание на моторчик выбрасывателя денех...
возможность глушения вафли глупого дома из вне никто не отменял и ваша розетка может не принять команду "Выключить утюг" или "Поставить машину на сигнализацию" :)

Так можно просто зажать владельцу яйца плоскогубцами и без всякого там IT и высоких технологий ))

petrplc писал(а):
если иметь полный исходник или исполняемый код, то расшифровать подобные перехваченные передачи не составит труда...
но не зная алгоритма шифрования при переменном по времени ключе передаваемые защищаемые данные "Команда Включить утюг" будут не совпадать и нельзя будет набить статистику....

Исходник будет открыт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 24 дек 2016, 19:36 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 2033
Цитата:
petrplc писал(а):
если иметь полный исходник или исполняемый код, то расшифровать подобные перехваченные передачи не составит труда...
но не зная алгоритма шифрования при переменном по времени ключе передаваемые защищаемые данные "Команда Включить утюг" будут не совпадать и нельзя будет набить статистику....
Исходник будет открыт.
Зато любой сможет помочь соседу со своего смартофона, послав команду "Вырубить перфоратор у долбодебила в кв. 666".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 24 дек 2016, 20:29 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
petrplc писал(а):
Зато любой сможет помочь соседу со своего смартофона, послав команду "Вырубить перфоратор у долбодебила в кв. 666".

А думаешь я зачем стараюсь? У меня именно такой сосед. Подарю ему вумный перфоратор ))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 27 дек 2016, 12:31 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 855
alexsam
Что-то по поводу памяти сомнительно. Не атмапированы ли эти области на нормальный ram?
А по сабжу можно заморочиться с ассиметричным шифрованием токена доступа, а токены доступа сменять каждый раз по установленному алгоритму с опять же случайным зерном.... Чтоб совсем все было чики-пуки :).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 27 дек 2016, 12:32 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 855
Вообще, алгоритм шифрования надо сто=роить таким образом, чтоб пакет нельзя было прочитать за разумное время даже при наличии всех исходных кодов и алгоритмов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 27 дек 2016, 21:36 
Старожил

Зарегистрирован: 02 май 2015, 16:16
Сообщения: 2033
Mirmik писал(а):
Вообще, алгоритм шифрования надо сто=роить таким образом, чтоб пакет нельзя было прочитать за разумное время даже при наличии всех исходных кодов и алгоритмов.
Я придерживаюсь другого постулата: Если пакет можно штатно прочитать за разумное время при наличии всех исходных кодов и алгоритмов, то тоже самое можно сделать нештатно с тем же результатом...
главное надо знать как читать
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Авторизация устройств
СообщениеДобавлено: 27 дек 2016, 21:46 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
Mirmik писал(а):
alexsam
Что-то по поводу памяти сомнительно. Не атмапированы ли эти области на нормальный ram?

Что именно сомнительно?
Использую МК STM32F030F4 почти самый куцый из всех:
http://www.st.com/en/microcontrollers/stm32f030f4.html
У него 16КБ по литературе. Хотя реально там конечно намного больше, но производитель не рекомендует. Как говориться - во избежании.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу 1, 2  След.


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


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB