Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Как защитить свою разработку от копирования

Тема в разделе "Общие вопросы по esp8266", создана пользователем qwertynoon, 1 фев 2016.

  1. qwertynoon

    qwertynoon Новичок

    Сообщения:
    57
    Симпатии:
    3
    Каким образом можно считать с ESP прошивку?
    Заливается-то через уарт. А как считать?
    На avr можно через SPI скачивать.
    А как на ESP?
    И если есть такая возможность, то как можно защитить контроллер от считывания.
     
  2. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.102
    Симпатии:
    1.346
    Никак. В ESP8266 встроена система считывания flash, памяти и ROM. Встроена в ROM-BIOS по старту. Чип создан для открытого ПО.
     
  3. qwertynoon

    qwertynoon Новичок

    Сообщения:
    57
    Симпатии:
    3
    Ну а если хоть какая-то область памяти, которая уникальна.
    К которой можно привязать прошивку.
    Вроде как мак адрес уникален на каждом модуле.
    Да. Его можно менять. Но после сброса он опять возвращается к изначальному.
    И что храниться в ROM?
    Из названия следует, только чтение.
    Какие в нём данные?
     
  4. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.102
    Симпатии:
    1.346
    Есть MAC в OTP и что? :)
    Его может и не сменить, но пропатчить вашу прошивку запросто. Можно и перехватить управление по WiFi - там же китай код с тысячами дырок.
    Процедуры работы используемые в SDK и система загрузки. BIOS в компе вам о чем нибудь напоминает?
    Одни и те-же вопросы от больных.
    Может создать тему: "Сниму любую защиту с ESP8266 за бесплатно."? :)
     
  5. qwertynoon

    qwertynoon Новичок

    Сообщения:
    57
    Симпатии:
    3
    Тише будь.
    Можно в прошивке сделать что-то типа chek sum и если он не совпадает с тем, который высчитывается от какого-либо значения полученного из ROM то циклить модуль.
    Это всё реально. Если не знаешь как - так и напиши. Чё ты умника включаешь, перехватчик управления по wifi?
     
  6. qwertynoon

    qwertynoon Новичок

    Сообщения:
    57
    Симпатии:
    3
    Вопрос можно поставить не в том чтобы не считать прошивку, а чтобы она не работала на другом модуле.
     
  7. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.102
    Симпатии:
    1.346
    Именно знаю, по тому и пишу. Но не всё положено знать всем :p
    Давайте тот модуль. Сделаю к ему ПО для копирования и создания копий (даже закон не рушу, так-как сам применять не буду :p ). Всё за ваш счет... Так, как ваша прошивка изначально никому не нужна и замена функционала на другой лад пишется быстрее чем вы будете сочинять защиты. Все эти защиты это только болезнь, от которой теряют выручку и время.
     
    Последнее редактирование: 1 фев 2016
    serbash, Sss и PostLast нравится это.
  8. Sss

    Sss Новичок

    Сообщения:
    18
    Симпатии:
    2
    Интересно другое, ТС добился такой надежности в работе модуля, что собрался выпускать изделия на esp8266 ?
    А вообще кто-нибудь видел/встречал в жизни устройства, выпускаемые серийно на esp8266?
     
  9. msg31

    msg31 Новичок

    Сообщения:
    24
    Симпатии:
    3
    Хотелось бы уточнения - получается там шифрование WPA реализовано некорректно и поддается взлому?
     
  10. Tomahawk

    Tomahawk Читатель

    Сообщения:
    84
    Симпатии:
    10
    Насчёт дырок не знаю, но если поставить пароль разработчика наподобие Hs&dfGusfsa-1!%qerdsf#, это должно несколько помочь. Пока на веб-интерфейс не зайдёшь, устройство не настроено и работать не будет, а к нему идёт пароль, который знает только тот, кто обладает исходниками. Как взломать такую систему?

    Sss, ну допустим я добился стабильной работы модуля в своём применении, серийно не выпускаем, потому что модули только для внутреннего потребления, но работает прекрасно уже несколько месяцев. Так что путь есть )
     
  11. Vitaly

    Vitaly Читатель

    Сообщения:
    181
    Симпатии:
    17
    что-то похоже вы перемешали сетевой взлом и копирование прошивок с физ доступом к есп
     
  12. Tomahawk

    Tomahawk Читатель

    Сообщения:
    84
    Симпатии:
    10
    Поясню свои мысли. Flash можно легко скопировать и она не защищена, но ведь можно попытаться усложнить взломщикам жизнь :) Вижу 2 пути как скопировать изделие: 1) мы просто копируем программу с flash на другой модуль, и он тут же будет работать, потому что защиты нет даже элементарной. 2) либо мы копируем программу из flash позаимствованного модуля на свой модуль, это у нас получается, потому что esp8266 нам это позволяет, о чём собственно и написано в #2. Далее пытаемся подключиться к точке доступа ESP, но Wi-Fi требует пароль. Теоретически взламываем пароль, используя некие дырки (потому что нормальный сложный пароль простым перебором не взломаешь). Хорошо, например, получилось. Заходим на веб-интерфейс, а там нас спрашивают "введите код для разрешения работы модуля", мы его не знаем. Предполагается, что это одноразовый пароль, который мы должны ввести, чтобы программа в принципе начала заниматься полезными делами, после ввода он записывается в ПЗУ один раз и больше мы с ним не столкнёмся (своеобразное разрешение от разработчика, ведь далее модулем можно будет спокойно пользоваться). Пришли в тупик, программа вроде бы есть, даже скопирована, но не работает - остаётся анализировать машинный код.

    Но это дело долгое и мне кажется быстрее свою программу написать, чем пытаться взломать чью-то, особенно учитывая, что она может оказаться с косяками =) Да и человек, обладающий достаточной квалификацией для взлома модуля, мне кажется, и сам программу напишет вместо того, чтобы тратить время на подобные вещи.
     
  13. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.102
    Симпатии:
    1.346
    Вот эту версию с уже работающим кодом в flash и скопируют обычными путями.
    Для взлома более сложной версии все привязки найдут сразу - ведь у людей, озабоченных защитами, используется стандартный китай-SDK, а он хорошо разбирается в IDA (на автомате) из-за привязок хоть к то-же ROM-BIOS.
     
  14. uanik

    uanik Новичок

    Сообщения:
    10
    Симпатии:
    0
    А если использовать например, в Arduino IDE WiFi.macAddress(mac)?
    И сравнивать его с забитым в скачанной прошивке?
     
  15. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.102
    Симпатии:
    1.346
    У CPU ESP8266 есть механизм защиты и можно переназначить что угодно.
    Грузите с сайта шифрованные данные на модуль, после передачи своего личного пароля. Всё как в обычной почте - её принимает любой комп, но пароль и ник у пользователя один и не знание его не дает работать с почтой.
    В итоге интерфейс к модулю будет транслироваться через ваш сайт и не работать у того, у кого нет пароля и ника.
    А железки хоть укопируйтесь.
    Автономное устройство вскрывается без проблем. Т.е. судьба больных - подвязываться на интернет и платить за хостинг спец. сервера. :p
    Если повесите внешнюю микруху шифрования типа AT88SC0104CA, то это тоже эмулируется аппартно CPU через его защиту. :p
    Чем дороже будет устройство - тем хуже будут покупать. А если функциональность кому понравится, то больше шансов получить на рынке аналог значительно дешевле, без ваших кодов и защит.
    И тут даже патентование ваших решений не спасет, если это понравиться крупной корпорации, а вы не крупный игрок на мировом рынке. Просто нарисуют новый патент, составленный другими словами :p
    Из опыта могу сказать, что устройство должно стоить ниже сборки с закупкой по отдельной детальке и если что-то совсем новое и нужное многим, то срок у вас не более полтора года до выхода замены вашей системы у крупных корпораций, пусть даже хуже реализованных и требующих более дорогое железо, но ваше уже покупать никто не будет. “Куй железо, пока горячо” называется. Не успел, стормозил на время потраченное на разработку и отладку защит = прогорел. Т.е. всякие "защиты" не сравняться с маркетингом и скоростью развития новой темы. Он главнее и плевать там на "защиты".

    Вот пример, что будет с вашими защитами :) : Модуль управления по WIFI RGB лентой на ESP6266
     
    Последнее редактирование: 19 фев 2016
  16. sav-13

    sav-13 Читатель

    Сообщения:
    97
    Симпатии:
    12
    Каждая первая WiFi розетка в Китае на ESP8266
    Sonoff WiFi Wireless Smart Switch for Smart Home

    А вот скажите, знатоки. МАК-адрес во внешней флэш лежит? Если я программатором всю флэш скопирую, мак адрес тоже?
     
  17. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.102
    Симпатии:
    1.346
    Это DIY устройство - использование только на свой страх и риск.
    В DIY входят все неудачные проекты и разработки всяких фирм. Не выкидывать же напроизведенный товар? Вместо утилизации китайцы их вам продадут, а кто другой ещё на этом заработает.
    Нет. Он в другой области - в OTP части, доступ только через регистры процессора. Но всегда можно изменить программу. ESP8266 не имеет защиты от считывания даже через себя, а flash - внешняя. ESP-32S - аналогично, то там есть криптование кода в flash - требует немного больше времени для снятия в коде дешифровки, вписывания нужного и обратной свертки... Можно сделать автоматически это всё делающее программу - заявки принимаются, но итого - платно.
     
    Последнее редактирование: 16 фев 2017
  18. qwertynoon

    qwertynoon Новичок

    Сообщения:
    57
    Симпатии:
    3
    Решил собственный вопрос следующим образом.
    В прошивке ESP я считываю заводской мак-адрес устройства и при помощи своей логики прогоняю его через определенные математические изменения и получаю 16тибитный ключ.
    Потом в Proccesing сделал прогу для генерации такого же ключа.
    Что имеем. Клиенту смело отдаётся устройство с наклеенным на него мак-адресом и ключом.
    В программе конфигурирования ПЛК на основе ESP8266 нужно ввести ключ, иначе работать логика не будет.
    Если три раза ввёл неправильно ключ - то устройство переходит в режим АР и называется GAME OVER.
    Кто бросит вызов?))))
    Вопрос остаётся - можно ли декомпелировать прошивку и узнать логику определения ключа?
     
  19. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.102
    Симпатии:
    1.346
    Считывается Flash и вперед - вписывается точка остановки по обращению к области MAC и отдаются значения, считанные с вашего модуля.
    Т.е. автоматическая вставка, без участия человека и GAME_OVER не будет. :)
    Работайте, работайте, работайте - солнце ещё высоко :)
    Когда надоест - обратитесь за платным решением. Плата будет за сервер в инет, которую вы повесите на пользователя, обеспечивающий контроль и загрузку кода в устройства. При этом что там в устройстве - начихать. Если пользователь оплатил 1000 загрузок, то на них может и рассчитывать в любой свой модуль по введенному в них ID или сертификату.
    Web-свалка поддерживает загрузку оверлеев по сети...
     
    Последнее редактирование: 17 фев 2017
  20. Jury_78

    Jury_78 Читатель

    Сообщения:
    154
    Симпатии:
    7
    Зачем? Достаточно скопировать прошивку и MAC адрес.
     

Поделиться этой страницей