передача кода устойчивого к взлому.

Обсуждаем рождающиеся мысли и результаты экспериментов.

Re: передача кода устойчивого к взлому.

Сообщение Myp » 21 фев 2011, 22:11

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

вероятно всётаки что хорошие сигналки с небольшими тиражами имеют право на жизнь, ибо никто не станет париться с какойто странной сигналкой, проще найти вторую такую машину на соседней стоянке.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: передача кода устойчивого к взлому.

Сообщение Michael_K » 21 фев 2011, 22:14

Дистанционно невзламываемую, конечно.

Добавлено спустя 1 минуту 45 секунд:
Myp писал(а):вероятно всётаки что хорошие сигналки с небольшими тиражами имеют право на жизнь

Тут в цену сразу упирается и в поддержку
Последний раз редактировалось Michael_K 21 фев 2011, 22:14, всего редактировалось 1 раз.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: передача кода устойчивого к взлому.

Сообщение Myp » 21 фев 2011, 22:14

ну это да конечно
против отжимания двери и запасного аккумулятора с пачкой проводов в сумке никто не застрахован
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: передача кода устойчивого к взлому.

Сообщение Ito » 21 фев 2011, 22:38

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

Ну и пусть прехватывает и оперирует, все равно он сразу воспользоваться этим не сумеет, т.е. есть какое-то время когда хозяин находится возле машины вот это и есть требуемая точность. А если учесть, что после открывания человек сядет и уедет, а на закрывание сигнал не даст никакой информации для открывания то требуемая точность вобще растягивается до минут. Другое дело жмяканье сразу на открывание и закрывание, но тут уж извини - "сам дурак".
Ito
 
Сообщения: 157
Зарегистрирован: 26 июн 2009, 14:15
Откуда: Минск
прог. языки: C++, Assembler

Re: передача кода устойчивого к взлому.

Сообщение Myp » 21 фев 2011, 23:13

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

у нас в городе есть 2 крупные стоянки у гипермаркета где чуть не круглосуточно люди "работают"
открывают машину и чистят салон.
им угонять нафиг не надо, просто выносят всё что есть в салоне.
вобще до абсурда, купил продукты, положил пакеты в багажник, остановился через дорогу у закусочной, а пакеты унесли из багажника пока сидел ел.
вернулся, с сигналки снял всё нормально, домой приехал, а багажник пустой :)
тоесть пропасли что нёс сумки в багажник и остановился напротив перекусить.
октрыли машины и забрали сумки.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: передача кода устойчивого к взлому.

Сообщение papami » 21 фев 2011, 23:52

Приветствую всех! Уже с год на форуме в качестве читателя. Сейчас не удержался...)

К вопросу о синхронизации по времени. Предположим, что брелок с сигнализацией синхронизирован до секунд и, в том числе, на базе текущего времени рассчитывается команда, какая польза "перехватчику" от полученных данных? Если через секунду-другую они уже не актуальны.
papami
 
Сообщения: 6
Зарегистрирован: 21 фев 2011, 23:26

Re: передача кода устойчивого к взлому.

Сообщение Int_13h » 22 фев 2011, 06:27

Есть два типа кодграбберов под keeloq. Самые простые работают путем подмены "глушение-запоминание". Этот момент пользователь может отловить по несрабатыванию сигналки на кнопку. Но в то же время в сложной помеховой обстановке (стоянка с сотней машин) брелки редко с первого раза срабатывают. Кодоподмена мало эффективна, если на постановку и на снятие используются разные кнопки на брелке (а для keeloq, напомню, результирующий код есть функция от кода производителя (мануфактурник) и номера нажатой кнопки). Для варианта двухкнопочной системы уязвимость в том, что пользователь может во время глушения тыкать разные кнопки, и только тогда кодграббер перехватит рабочую посылку.
Ну в общем кодоподмена это каменный век.
Второй тип - алгоритмические кодграбберы, получили в настоящее время шырокое распространение. Принцип действия основан на том, что при известном злоумышленнику коде производителя (мануфактурнике) можно путем перехвата любой кодовой посылки из эфира, без глушения (!), получить копию брелка (внутри кодграббера), и воспользоваться им в любой момент времени. Как на зло, произошла утечка мануфактурников от кучи сигналок, наверняка китайцы-производители постарались.
Способы противодействия:
Самое простое, это сдвиг частоты радиоканала, ибо кодграбберы работают на одной-двух популярных частотах, и анализировать эфир не умеют.
Можно посылать "левые" коды, не воспринимаемые сигнализацией, перед тем как отправить рабочий код (например с другого брелка), но это уже на любителя.
Можно реализовать keeloq со своим индивидуальным мануфактурным кодом, не знакомым злоумышленникам, с недействительными посылками и с разными кнопками на открытие и закрытие, и еще разными плюшками.
Можно отказаться от радиоканала вообще (ИК, синезуб, и пр., и пр.)
Можно разориться на диалоговую сигнализацыю, которые пока еще не скомпрометированы, но мы не ищем легких путей :)
Int_13h
 
Сообщения: 18
Зарегистрирован: 18 фев 2010, 12:51
Откуда: Irkutsk
прог. языки: двоичный код

Re: передача кода устойчивого к взлому.

Сообщение avr123.nm.ru » 22 фев 2011, 09:44

Передавать пачку шифрованых псылок из которых рабочими являются только пара. В атмега128RF воткнули блок шифрования.

Ну и на 2.4 Ггц пора переходить с шумоподобным спектром.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Re: передача кода устойчивого к взлому.

Сообщение Myp » 22 фев 2011, 10:24

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

с килок и временным окном вроде идея хороша, даже если ты с трудом включил сигналку, и они украли рабочий код который откроет машину...
то пока ты медленно топаешь вдаль от машины временное окно закроется и злодеи не смогут воспользоваться просроченным кодом.
но с другой стороны угоняют же, тоесть все хорошие идеи кагбы получается защита от пионеров )
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: передача кода устойчивого к взлому.

Сообщение =DeaD= » 22 фев 2011, 10:39

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

Запутанные фотоны это всё-таки ближе к области фантастики на данном этапе развития техники, а других гарантированных способов вообще неизвестно.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: передача кода устойчивого к взлому.

Сообщение Angel71 » 22 фев 2011, 11:13

не надо бороться с невозможностью перехвата. Myp, яж не зря недавно спрашивал, для себя или на продажу. в первом варианте нужно сделать систему, чтоб срабатывало "зачем мучаться тут, если можно с другой машиной не мучаться". во втором прийдётся очень сильно постараться и при разработке априори считать, что известна вся схемотехника, код ваш изучен вдоль и поперёк и что тренироваться ломать будут не на стоянке, а сидя дома/мастерской со всеми вытекающими. и долбить её будут по всем направлениям. начиная от банальной попытки найти где чего коротнуть или где быстро можно будет подключить вместо вашей свою платку, чтоб сирена не выла и мотор заводился. и если не получится, продолжать искать более изощрённые пути.
Последний раз редактировалось Angel71 22 фев 2011, 11:28, всего редактировалось 1 раз.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: передача кода устойчивого к взлому.

Сообщение Myp » 22 фев 2011, 11:21

ахаха
про запутанные фотоны это круто :D

ладно
пожалуй вопрос передачи взломоустойчивого кода исчерпан.
в единичном экземпляре достаточно заморочиться с сложностью отправки чтобы никто не стал это взламывать.
в серийном варианте диалог необходим.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: передача кода устойчивого к взлому.

Сообщение boez » 22 фев 2011, 12:18

Да, за диалоговыми будущее, тем более что двунаправленность нужна еще и для пейджера (чтобы брелок пищал, что машину угнали :)). Ну и всякие другие плюшки, у моего приятеля например брелок температуру в машине показывает, он пл утрам на него вместо градусника смотрит :) Сигналка пантера какая-то.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: передача кода устойчивого к взлому.

Сообщение vadinator » 22 фев 2011, 12:40

Однажды придёт гений....и скажет, что всё просто :)
В основном всем видятся слабости готовых решений, но здесь скорее спор предстоит математикам... Коим я не являюсь :(
Роботы, уже среди нас...
Прошу прощения за аватар, никак схему динамической индикации не могу настроить :)
Аватара пользователя
vadinator
 
Сообщения: 979
Зарегистрирован: 19 янв 2010, 14:51
Откуда: Петрозаводск
прог. языки: C, FBD, Wiring-Processimg,,,LD, SFC, ST...
ФИО: Вадим

Re: передача кода устойчивого к взлому.

Сообщение WickedGoblin » 22 фев 2011, 15:27

Это одновременно и сложно и легко

A-авто
C-владелец

Ak0….AkN-массив ключей в авто,
Ck0….CkN-массив ключей в брелках, где
Каждый ключ стоит из открытой части и секретной Ak0o и Ak0s соответственно

Ключи Ak0o и Ak0s

Ключи в авто и брелке хранятся надежно- т.е. при попытке вскрытия устройства они уничтожаются (на авто это реализуется надежно в брелке только засчет «надежности» битов конфигурирования доступа контроллера ).

На каждой стороне реализованы следующие функции:
F(m, k) - функция шифрации сообщения, где m-сообщение k- ключ
D(m, k) - функция подписи сообщения, где m-сообщение k- ключ
В частном случаи получается что в функции F(m, k) k- есть открытый ключ стороны принимающей сообщение и для функции D(m, k) k- есть закрытый ключ осуществляющий передачу.
Так же есть функция H(k) – функция получения хеша или контрольной суммы ключа

В авто и брелке есть два интерфейса: Line-проводной и Wireless-беспроводной.

Механизм инициализации системы:
1 Данный механизм может работать только если: Ak0=null, т.е. данный ключ не проинициализирован. В этом случаи через Line становится доступна команда SetKey0 через непосредственный ввод. SetKey0 Ak0o:Ak0s:H(Ak0o):H(Ak0s)
Ключ принимается если расчет значений H(Ak0o):H(Ak0s) в A совпал с введенными значениям. Ключи и значения генерируются во внешней системе (для примера на ПК) и распечатываются на бумажном носителе. Если бумажный носитель будет уничтожен то систему будет нельзя переинициализировать без физического воздействия на хранилище ключей.

2 После п.1 система переходит в значение инициализирована. Команда SetKey0 перестает быть доступной. Становится доступна команда UnsetKey0 через Line:
UnsetKey0 – сброс значения Key0 и перевод А в состояние Ak0=null и уничтожение всех других ключей в А. Данная команда доступна только через Line и имеет формат UnsetKey0 Ak0o:Ak0s:H(Ak0o):H(Ak0s).Данная команда не может вводится чаще чем 1 раз в промежуток времени Tunset(пусть будет 10 сек) - реализуется защита от brute force на Key0. Проверка H(Ak0o):H(Ak0s) аналогична п.1

3 На брелке всегда доступна команда
MasterReset – брелок генерирует пару ключей Ck0o и Ck0s и начинает передавать через интерфейс Wireless Ck0o. Далее мы будем считать что брелков может быть много и они будут фигурировать как C0,C1,…. Т.е. в эфире будет с какой то периодичностью появляться C0k0o допустим через 1 секунду 30 раз.
Авто получив неизвестный C0k0o ждет команду через Line AcceptMaster. Формат команды AcceptMaster Ak0s:H(Ak0s):H(C0k0o)
Если рассчитанное H(C0k0o) и полученное H(C0k0o) совпали то это отрытый ключ помечается как Master (Необходимое отступление в принципе возможно использовать multi master ).
Авто передает свой Ak0o для C0. Брелок вычисляет H(Ak0o) и если пользователь видит что он совпал с H(Ak0o) то принимает данный ключ Ak0o.
Произведено так называемое MasterHandshke – данное действие позволяет выполнять через Wireless команды: AcceptKey и AcceptMaster если далее будет использоваться multimaster.
Также доступны команды ResetKey.
Возможные атаки на ввод ложных MasterKey:
типа DOS затопления эфира ложными Ck0o – решается на канальном уровне
атака brute force на подтверждение AcceptMaster – надежность Ak0s

4 На брелке всегда доступна команда
Reset – брелок генерирует пару ключей Ck0o и Ck0s и начинает передавать через интерфейс Wireless Ck0o. Далее мы будем считать что брелков может быть много и они будут фигурировать как C0,C1,…. Т.е. в эфире будет с какой то периодичностью появляться C1k0o допустим через 1 секунду 30 раз
Механизм ввода ключа C1k0o в авто аналогично п.3 за исключением того что AcceptKey может быть введено с брелка имеющего статус Master

По итогам п.п.1-4 имеем спаренные устройства с авто.

10 Авто обычном режиме работы с периодичностью z передает через интерфейс Wireless сообщения для всех Сn (n !=0) свое состояние и текущий ResponseId как
F(D(status, Ak0s) + status +ResponseId, CnKo) для рандомизации status+ResponseId может быть использована функция R(m,r), где m-сообщение, r-случайная величина,
R(m,r) = r+ (m XOR r) (реализуем защиту а от дифференциального анализа)
Брелок получая F(r+ ((D(status, Ak0s)+ status+ResponseId) XOR r), CnKo),
Расшифровывает и проверяет подпись. Если все верно то сохраняет в кеше ResponseId
Сообщение криптоустойчиво по определению.
Возможна атака только DOS на блокировку эфира –решаем на канальном уровне
Через ResponseId реализуется защита от записи и повтора сообщения.


11 Если авто хочет передать новый аварийный статус вне стандартного расписания то пересдаются сообщение F(r+ ((D(status, Ak0s)+ status+ResponseId) XOR r), CnKo),
Возможна атака только DOS на блокировку эфира –решаем на канальном уровне

12 Еси брелок хочет передать команду на авто то формируется сообщение
F(r+ ((D(cmd, C1k0s)+ cmd+ResponseId) XOR r), A0Ko),
Авто расшифровывает сообщение и если подпись совпал и ожидаемый ResponseId совпал выполняет команду
Если подпись не совпала то игнорируем (опять же возможна DOS атака)
Если подпись совпала, но не совпал ResponseId то формируем а то игнорируем (r+ ((D(status, Ak0s)+ status+New_ResponseId) XOR r), CnKo), и ждем команду с New_ResponseId. На брелке необходима логика если пришли два ResponseId за определенный таймаут то последнюю команду можем повторить.

13 Если требуется более сложный алгоритм работы то повторяем п. 12 с учетом необходимых состояний.


Базовая передачи сообщений построена.
Необходимо отметить что в системе ни где нет указаний на криптостойкость алгоритма.F и D их надо просто выбрать устойчивыми для примера RSA. Сложность в том что для их реализации требуется много памяти обычно в 10-20 раз больше чем длинна ключа.
Аватара пользователя
WickedGoblin
 
Сообщения: 114
Зарегистрирован: 12 сен 2009, 21:42
Откуда: Москва

Пред.След.

Вернуться в Идеи

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

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