2015-08-03 10 views
0

Я работаю над проектированием встроенной системы, которая будет поддерживать сенсорный экран и будет взаимодействовать с контроллером двигателя. Это устройство, однако, должно поддерживать обновления прошивки через модуль Wi-Fi.Проектирование встроенной системы с поддержкой FOTA

Следующие вопросы касаются следующих вопросов: Использование esp8266 было эффективным для отправки данных на мой сервер (apache с базой данных MySql), но может ли этот модуль использоваться для загрузки обновлений прошивки? (Мне было трудно найти что-нибудь на этом) Если не то, что было бы более эффективным модулем/подходом?

Каким будет типичный сервер для распространения обновлений прошивки? Будет ли он использовать TCP/IP или FTP? Я не думаю, что было бы выпущено более 10 000 этих устройств, и сама микропрограмма, вероятно, будет> = 50 МБ.

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

+0

Звучит как другая цель для крекеров. – Olaf

+0

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

+1

Это будет ** не ** достаточно. Контрольная сумма ничего не добавляет к безопасности и практически не защищает. Для чего-то еще: это не место. SO - это сайт Q & A, а не дискуссионный форум. Это будет слишком широким и потребует знания лет. Эти заключительные мысли: есть причина, почему «безопасность по неизвестности» не работает и почему так много реализаций защищенных криптоалгоритмов и протоколов все еще можно взломать. – Olaf

ответ

0

Идеальный способ распространения прошивки для обновлений является наименее болезненным для пользователя.

Сказав это, вы хотите, чтобы безопасность не мешала другим взаимодействовать с вашим оборудованием. Будь то FTP или HTTP или даже зашифрованные версии SSL/TLS зависят от предпочтений.

Требование об аутентифицированных обновлениях прошивки - это набор цифровой подписи. Если ваша система способна запускать стек IP, у него, вероятно, есть ресурсы, чтобы сжать проверку подписи. Коммерческое решение, оптимизированное для встроенных систем, вписывается в 4,5 КБ ПЗУ и полностью запускается из стека (для проверки номеров см. Здесь: https://www.segger.com/emlib-emsecure.html).

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

Если вы хотите защитить свою прошивку от чтения во время передачи, вы можете заменить программное обеспечение подписи на решение TLS/SSL. Это увеличит использование памяти.

Если я ищу решение, предлагаемое той же компанией, использование ресурсов для стека TLS считается 7k в ОЗУ (см. https://www.segger.com/pr-emssl-v2.html).Они еще не опубликовали использование ПЗУ, но если я правильно помню, это было от 20 до 30 кбайт.

Если вы используете TLS, создайте свой собственный сертификат! Не полагайтесь на серверы сертификации, поскольку они могут быть заражены. В любом случае, это будет точка-точка с точкой 2, кроме того, никто не участвует, поэтому вы знаете, какой сертификат использовать и все другие сертификаты могут быть отклонены.

0

В протоколе обновления прошивки:

  • Не использовать небезопасные протоколы, такие как простой FTP.
  • Используйте что-то на основе TLS и убедитесь, что сертификат сервера верен.
  • Возможный протокол HTTPS, то есть простой HTTP GET over TLS.

На масштабируемость:

  • Если устройство загружает обновление прошивки, распределить запросы от различных устройств в течение длительного времени, например, time = 1am + (serialNumber MOD 240) в минутах.

 Смежные вопросы

  • Нет связанных вопросов^_^