Garantindo Confiabilidade no Design de Processadores: Boas Práticas para ICs Seguros e Confiáveis
Circuitos integrados (CIs) modernos fornecem capacidades computacionais e de controle de sistema para processar enormes quantidades de dados, tomar decisões críticas de segurança em tempo real e proteger dados sensíveis. Projetar um CI específico para aplicação (ASIC) ou sistema-em-chip (SoC) FPGA do zero seria proibitivamente caro e demorado. Muitas funções críticas são implementadas usando propriedades intelectuais (IPs) de terceiros. Núcleos de processador, por exemplo, são obtidos de organizações especializadas e fornecem uma função flexível e programável por software através de sua arquitetura de conjunto de instruções (ISA), que define a interface entre hardware e software. Arquiteturas de processador open-source oferecem oportunidade para escrutínio mais profundo e garantia rigorosa de segurança em sistemas que já enfrentam um ambiente de ameaças fluido. Este artigo descreve uma abordagem para fornecer garantia de segurança de IPs e SoCs baseada na ISA open-source RISC-V.
O Crescimento do RISC-V
Inventado na Universidade da Califórnia e gerenciado pela Fundação RISC-V sem fins lucrativos, o RISC-V é a primeira ISA open-source a se tornar uma escolha industrial genuinamente viável para uma ampla gama de aplicações.
O RISC-V é uma ISA open-source inventada na Universidade da Califórnia e gerenciada pela Fundação RISC-V, uma organização sem fins lucrativos com mais de 300 membros fundada em 2015. O RISC-V é a primeira ISA open-source a se tornar uma escolha industrial genuinamente viável para uma ampla gama de aplicações. O ecossistema de ferramentas, software e expertise é robusto e cresce constantemente. Muitos indivíduos e organizações já doaram IPs de hardware open-source implementando a ISA RISC-V. O OpenHW Group, por exemplo, visa tornar a esperada perspectiva de hardware open-source — particularmente núcleos de processador — para chips de alto volume uma realidade.
A ascensão do RISC-V tem muitas razões. Construído do zero com extensibilidade personalizada em mente, o RISC-V permite um novo nível de otimização de hardware para cargas de trabalho específicas. A lei de Moore está desacelerando, e a personalização é crucial para sustentar o nível de melhorias de desempenho que avanços tecnológicos no processo de fabricação de semicondutores não podem mais fornecer. Além disso, a arquitetura RISC-V é livre de custos de licenciamento e royalties, permitindo que mais empresas desenvolvam produtos inovadores e acessíveis. Muito está acontecendo no campo de IoT e dispositivos vestíveis com capacidades de inteligência artificial, por exemplo.
Integradores de SoC frequentemente usam IPs de processador RISC-V open-source ou de terceiros. Esses designs e seus toolchains associados podem ser aumentados com instruções personalizadas. Um ambiente de verificação de alta qualidade entregue com o IP e testes adicionais de nível de sistema podem fornecer alguma confiança de que o IP não tem bugs críticos. Infelizmente, para muitas aplicações, isso não é suficiente, e existem outros riscos sérios a considerar.
Vulnerabilidades e Trojans
Tradicionalmente, vulnerabilidades de segurança em sistemas eletrônicos têm sido associadas a questões de nível de sistema e software. Mais recentemente, IPs de hardware, proeminentemente processadores, também se tornaram uma preocupação central (veja Fig. 1). Implementações de processador usam microarquiteturas baseadas em pipeline e frequentemente incluem recursos de otimização de desempenho e energia. A complexidade aumenta o risco de não apenas bugs funcionais, mas também vulnerabilidades de segurança. Pesquisadores de segurança que descobriram os ataques Meltdown e Spectre no início de 2018 demonstraram que recursos de otimização de desempenho em processadores podem ser usados de maneiras não intencionais para propósitos nefastos. Desde então, muitas mais vulnerabilidades em processadores high-end e low-end foram descobertas. Canais laterais e ataques de execução transitória podem violar enclaves seguros e permitir que aplicações maliciosas vazem dados confidenciais ou até assumam o controle do sistema. E, diferentemente de software, problemas de hardware não podem ser facilmente reparados com atualizações over-the-air. Abordar um problema de hardware através de software frequentemente causa degradação severa de desempenho.
A arquitetura RISC-V tem muitos recursos que suportam a implementação de sistemas embarcados seguros. A especificação de privilégios define quatro modos de privilégio (máquina, supervisor, hypervisor e usuário), por exemplo. Instruções personalizadas e extensões ISA em processo de ratificação, como a extensão Criptográfica, fornecem capacidades de segurança adicionais. Designers podem implementar múltiplos enclaves seguros para isolar aplicações e prevenir vazamento de dados sensíveis. No entanto, recursos microarquiteturais de RTL ainda podem resultar em vulnerabilidades de segurança. Esses riscos não podem ser abordados inteiramente no nível ISA. Uma nova abordagem em exploração é o uso de uma ISA aumentada (aISA) para definir aspectos da execução de instruções no nível microarquitetural e, por exemplo, controlar o estado de buffers ou registradores não visíveis no nível ISA. Bugs funcionais de RTL ainda poderiam comprometer todos esses recursos de segurança.
Um risco menos provável, mas com severidade muito maior, é a presença de lógica maliciosa ou Trojans de hardware no núcleo RISC-V. Um Trojan de hardware é uma função de lógica deliberadamente projetada para ser furtiva, que ativa em circunstâncias muito raras conhecidas apenas pelo atacante. Uma sequência específica de eventos de dados e controle que não aconteceria enquanto o sistema opera em seus casos de uso alvo dispara a lógica do Trojan, que por sua vez entrega uma carga danosa, vazando um segredo ou corrompendo criticamente o comportamento do sistema, por exemplo. Integrações de SoC usando núcleos RISC-V open-source ou de terceiros não podem mais ignorar esse risco.
Garantir que um processador faça o que deve fazer é difícil, mas garantir que ele não faça nada que não deveria fazer é uma tarefa ainda mais desafiadora que permanece largamente não abordada. Sistemas críticos de segurança e sistemas onde a proteção da privacidade de dados é primordial precisam de soluções eficientes e de alta qualidade que abordem o risco de vulnerabilidades de segurança e Trojans.
Garantia Inteligente de Hardware
Assegurar a confiança e segurança de IPs RISC-V requer soluções técnicas inovadoras e eficientes que são complementares a abordagens de correção funcional, visando principalmente o caso de uso pretendido do IP (veja Fig. 2). Provedores de IP são responsáveis por aplicar processos de verificação de confiança e segurança de ponta, enquanto integradores de IP devem ter acesso a soluções de garantia independentes que possam ser implantadas rapidamente e sem conhecimento profundo dos detalhes de implementação do IP.
Métodos formais podem analisar funções de hardware exaustivamente e entregar prova de que o IP ou SoC corresponde precisamente a um comportamento esperado frequentemente capturado em asserções SystemVerilog. Verificação formal de hardware usando model checkers comerciais desfrutou de ampla adoção na última década. Tipicamente, provedores de IP e integradores de SoC têm especialistas em verificação formal em suas fileiras, tentando reduzir o risco de perder bugs funcionais ao mínimo. Embora certas tarefas bem definidas de verificação formal possam ser automatizadas através de Apps, em geral, esforço significativo de engenharia é necessário para capturar o comportamento esperado do IP em asserções. Além disso, não há garantia de que asserções suficientes tenham sido escritas. Funções não documentadas ou lacunas não intencionais no conjunto de asserções poderiam levar a funcionalidade de IP não verificada.
A natureza open-source do RISC-V permite o desenvolvimento de soluções de garantia independentes e empacotadas. A Solução de Verificação de Integridade RISC-V da OneSpin, por exemplo, pode ser aplicada a uma ampla gama de microarquiteturas. Inclui modelos da ISA RISC-V e ISA privilegiada que são extensíveis e podem acomodar instruções personalizadas. Um aspecto crucial desta solução é que ela é baseada no processo GapFreeVerification™ da OneSpin, que entrega uma prova rigorosa de que o conjunto de asserções modelando a ISA RISC-V é completo e livre de lacunas. Este aspecto é da maior importância quando a detecção de Trojans de hardware ou lógica não documentada é um objetivo crucial. A solução permite que integradores de SoC com experiência limitada em RISC-V e na implementação RTL sob escrutínio ganhem confiança na qualidade e confiabilidade do IP. Desenvolvedores de IP podem usá-la para detectar fraquezas de segurança e bugs funcionais antes do lançamento.
Funciona?
O processo de garantia de integridade RISC-V descrito na seção anterior foi aplicado com sucesso a múltiplos designs RTL. A Edaptive Computing, empresa que integra soluções inovadoras para otimizar, assegurar e automatizar sistemas de sistemas e processos para uma variedade de clientes do Departamento de Defesa dos EUA e setor comercial, aplicou o processo ao RocketCore, por exemplo. O RocketCore é um núcleo RISC-V open-source, provado em silício, de 64 bits com sistema de memória virtual de 39 bits. Tem um pipeline de cinco estágios, single-issue, in-order com conclusão out-of-order para instruções de longa latência como divisão. Inclui recursos avançados de predição de branch e replay de instrução.
A Solução de Verificação de Integridade RISC-V foi aplicada ao design com todas as instruções, níveis de privilégio, interrupções e mecanismo de exceção, e 8 issues foram detectados (veja Fig. 3). Informações adicionais sobre 3 deles são relatadas abaixo.
Caso de Canto na Divisão
Um bug de caso de canto profundo associado à conclusão out-of-order da instrução de divisão. Este problema poderia fazer com que um programa de software usando a operação de divisão calculasse resultados incorretos e levasse a mau comportamento do sistema. O problema aparece apenas sob uma combinação de circunstâncias raras, e é por isso que esforços de verificação anteriores o perderam.
Replay de Instrução Ilegal
Este não é um bug de caso de canto. Reproduzir uma instrução ilegal pode desperdiçar ciclos de processamento, mas se isso acontece apenas em situações raras, o impacto de desempenho é negligenciável. No entanto, existem outros aspectos a considerar. Replay de instrução pode causar requisições de memória desnecessárias. Essas requisições podem ter efeitos colaterais que poderiam ser aproveitados em ataques de canal lateral. Como resultado, esse comportamento precisa ser eliminado ou claramente compreendido e documentado.
Instrução Não Documentada
Uma instrução não padrão, não documentada, chamada CEASE, que para o núcleo, foi detectada. Na prática, o RISC-V RocketCore poderia fazer algo que não deveria fazer. Funções ocultas, não documentadas, não são aceitáveis quando confiança e segurança são uma preocupação, mesmo quando se relacionam a casos de uso considerados não relevantes para a aplicação final.
O estudo de caso do RocketCore é apresentado em detalhes no artigo GOMACTech 2019 intitulado Complete Formal Verification of RISC-V Processor IPs for Trojan-Free Trusted ICs. Para obter uma cópia, visite onespin.com/resources/white-papers.
O Que Vem a Seguir?
O processo de garantia RISC-V apresentado neste artigo detecta cenários que poderiam afetar segurança, e sistematicamente revela funções não documentadas e Trojans de hardware que impactam o comportamento do processador, independentemente de quão raros e furtivos possam ser. No entanto, canais laterais não são sistematicamente detectados. Detecção exaustiva de todos os canais laterais potenciais requer uma solução dedicada com tecnologia apropriada. Já existem protótipos que abordam este desafio. Para mais informações, visite onespin.com/resources/technical-articles e leia o artigo da EE Times Side-Channel Attacks on Embedded Processors.
Núcleos de processador são IPs cruciais dentro de sistemas embarcados. No entanto, um SoC típico integra muitos outros IPs que também poderiam conter Trojans de hardware. Diferente de núcleos RISC-V, soluções independentes de garantia de confiança podem não estar prontamente disponíveis. Neste caso, seria valioso ter um processo automatizado de avaliação de confiabilidade de baixo esforço aplicável a qualquer IP. Um processo que não inclui um modelo confiável do IP não pode garantir a ausência de um Trojan. No entanto, é possível identificar padrões de código incomuns e suspeitos e assinaturas conhecidas de Trojans, e fraquezas que poderiam ser exploradas em estágios posteriores de desenvolvimento para propósitos nefastos. Um artigo sobre este tema intitulado An Automated Pre-Silicon IP Trustworthiness Assessment for Hardware Assurance, escrito por engenheiros da AEROSPACE Corporation e OneSpin, será apresentado na conferência GOMACTech 2020.
Integrado
- Desbloqueando Dados IoT: Como Gestão de Regras de Negócio Impulsiona Valor Empresarial
- Acelere Suas Aplicações com Instruções Customizadas RISC-V Sob Medida
- Construindo um Robô com Arduino e Raspberry Pi: Guia Passo a Passo
- O Guia Completo da Produção de Fibra de Vidro
- Garantindo Dados Confiáveis na Cadeia de Suprimentos: Uma Estratégia Comprovada
- Crie uma Animação de Corte Progressivo no SolidWorks – Tutorial Passo a Passo
- Construa um Protótipo Vencedor: Guia Passo a Passo para Desenvolvimento Rápido de Produto
- Guia Passo a Passo para Substituir Mangueira Hidráulica em Equipamentos Pesados
- Estratégias Comprovadas para Fazer Seu Programa de Segurança Abrangente Funcionar
- Guia Profissional para Construir Mandril de Torno de Metal