Рассмотрим пример электронного блока управления (ECU), использующего традиционное статическое встроенное программное обеспечение. Загрузчик — это программный компонент, используемый как для запуска загрузки основного программного обеспечения ECU, включая копирование программного обеспечения в оперативную память, так и для выполнения любых проверок программного обеспечения перед загрузкой. Загрузчик также отвечает за обновление программного обеспечения, получение, проверку и запись обновленного программного обеспечения в память, обычно во флэш-память. Следовательно, термин Flash Bootloader также широко используется.
Используются ли в разработке и производстве одни и те же загрузчики?
Обычно один и тот же загрузчик можно использовать при разработке транспортных средств и связанных с ними блоков управления, а также в обычном производстве с защитой, гарантирующей деактивацию многих возможностей разработки или проектирования загрузчиков. Во время разработки транспортных средств часто желательно удалить механизмы безопасности производственных загрузчиков, чтобы обеспечить быстрое развертывание программного обеспечения для разработки.
Безопасный загрузчик
Все чаще все загрузчики должны быть защищены. Однако традиционно это различие применялось для защиты функций, связанных с безопасностью, безопасностью, а иногда и производительностью.
Загрузчики обычно проверяют память программного обеспечения ECU при загрузке и полученное программное обеспечение до обновления программного обеспечения и память памяти после него.
Механизмы обычно включают в себя:
- Аутентификация программного обеспечения, полученного и/или находящегося в памяти во время загрузки, часто с использованием хэша двоичного файла программного обеспечения для проверки правильности, созданного в процессе безопасной компиляции официально выпущенных версий программного обеспечения.
- Аутентификация отправителя с использованием исходного кода и ключа, защита защищенных данных в ECU с использованием защищенной памяти и карт памяти для определения доступных и перезаписываемых областей.
Двойной загрузчик
Некоторые реализации загрузчиков состоят из двух частей, отсюда и термин «двойной загрузчик». В этом случае основной загрузчик не подлежит обновлению в рамках защиты загрузчика. Это связано с загрузкой модуля и обновлением дополнительного загрузчика. Дополнительный загрузчик можно обновить с помощью защищенного процесса, позволяющего вносить изменения в процесс обновления программного обеспечения, например, карту памяти, что позволяет обычно блокировать их. Этот тип загрузчика сейчас менее распространен из-за новых методов защиты процесса обновления с использованием встроенного защищенного оборудования, например HSM (Hardware Secure Module).
Обратите внимание, что этот термин похож на двойную загрузку, когда доступны два загрузочных блока или полная память, что позволяет обновлять неиспользуемую версию, пока активна одна версия. Для этого требуется дополнительная память в каждом блоке управления, поддерживающем этот метод обновления.
Capital Embedded Bootloader
Capital Embedded Bootloader обеспечивает надежное обновление ЭБУ во время разработки, производства автомобилей и в течение срока службы автомобиля с помощью подключенных диагностических инструментов или беспроводных методов. Стандартизированный протокол ISO 14229 UDS используется на ряде распространенных сетевых шин транспортных средств, Ethernet, CAN/CAN-FD, LIN, FlexRay, а также возможно использование других методов, таких как протоколы калибровки ASAM. Кибербезопасность является ключевым аспектом процесса обновления программного обеспечения, а функции, обеспечивающие аутентификацию программного обеспечения и варианты безопасной загрузки, являются частью решения. Чтобы удовлетворить специфические требования OEM (производителей оригинального оборудования) и MCU, доступна широкая поддержка широкого спектра проектов ECU.
В чем разница между OTA и FOTA?
Обновление OTA (по воздуху), или FOTA (прошивка по воздуху), — это метод дистанционного приема нового программного обеспечения для встроенного устройства, например автомобильного блока управления, а не с помощью сервисного инструмента, подключенного напрямую в мастерской. Для этого могут потребоваться некоторые возможности встроенного диагностического тестера в координирующем ECU и/или возможности восстановления и самотестирования в самом загрузчике.