Considere o exemplo de uma unidade de controlo electrónico (ECU) que utiliza software incorporado estático tradicional. O Bootloader é um componente de software utilizado tanto para iniciar a inicialização do software principal da ECU, incluindo a cópia do software para a RAM, como para realizar quaisquer verificações no software antes da inicialização. O bootloader também é responsável pela atualização de software, recepção, verificação e gravação do software atualizado na memória, geralmente memória Flash. Por isso, o termo Flash Bootloader também é comumente usado.
Os mesmos bootloaders são usados no desenvolvimento e na produção?
Normalmente, o mesmo carregador de arranque pode ser utilizado no desenvolvimento de veículos e das ECUs associadas e na produção normal, com proteções para garantir que as ECUs de produção tenham muitas capacidades de desenvolvimento ou de engenharia de bootloaders desativados. Durante o desenvolvimento do veículo, muitas vezes é desejável remover os mecanismos de segurança dos carregadores de arranque de produção para permitir a implementação rápida de software de desenvolvimento.
Bootloader seguro
Cada vez mais todos os bootloaders são obrigados a estar seguros. No entanto, tradicionalmente isso tem sido uma distinção, normalmente implementada para proteger a funcionalidade preocupada com a segurança, proteção e às vezes desempenho.
Os bootloaders verificam normalmente a memória do software da ECU na inicialização e recebem o software antes de uma atualização de software e na memória depois.
Mecanismos geralmente incluem:
- Autenticação do software recebido e/ou presente na memória no momento da inicialização, muitas vezes usando um hash do software binário para verificar a exatidão gerada a partir de um processo de compilação seguro de versões de software lançadas oficialmente.
- Autenticação do remetente usando uma semente e chave, proteções de dados seguros dentro da ECU usando memória segura e mapas de memória para definir áreas acessíveis/regraváveis.
Carregador de arranque duplo
Algumas implementações de carregadores de arranque estão em duas partes, daí o termo dual bootloader. Neste caso, o carregador de arranque primário não é actualizável, como parte da segurança do carregador de arranque. Isto diz respeito ao arranque do módulo e atualização do carregador de arranque secundário. O carregador de arranque secundário pode ser atualizado, através de um processo seguro, permitindo modificações no processo de atualização de software, por exemplo, mapa de memória, permitindo que estes sejam normalmente bloqueados. Este tipo de carregador de arranque é menos comum agora devido aos novos métodos de segurança do processo de actualização utilizando hardware seguro integrado, por exemplo, HSM (Hardware Secure Module).
Nota, este termo é como inicialização dupla, onde estão disponíveis blocos de dois arranques ou memórias completas, permitindo que uma atualização ocorra na versão não utilizada enquanto uma versão está ativa. Isso requer memória extra em cada ECU que suporte este método de atualização.
Capital Embedded Bootloader
Capital Embedded Bootloader suporta atualizações confiáveis da ECU durante o desenvolvimento, na produção de veículos e durante a vida útil do veículo, através de ferramentas de diagnóstico conectadas ou metodologias over-the-air. O protocolo UDS ISO 14229 normalizado é utilizado numa gama de barramentos de rede de veículos comuns, Ethernet, CAN/CAN-FD, LIN, FlexRay, e também é possível usar outros métodos como os protocolos de calibração ASAM. A Cybersecurity é um aspecto fundamental do fluxo de atualização de software e as funcionalidades que permitem a autenticação de software, e as opções de arranque seguro fazem parte da solução. Para satisfazer os requisitos específicos de OEM (fabricantes de equipamento original) e MCU, está disponível um amplo suporte para uma ampla gama de projetos de ECU.
Qual é a diferença entre OTA e FOTA?
A atualização OTA (over the air), ou FOTA (firmware over the air), é um método para conseguir a recepção de um novo software para um dispositivo incorporado, por exemplo, ECU automóvel, de forma remota, não através de uma ferramenta de serviço diretamente ligada numa oficina. Isto pode exigir alguma capacidade de testador de diagnóstico integrado numa ECU coordenada e/ou capacidades de recuperação e auto-teste no próprio carregador de arranque.