1 pontos por GN⁺ 2024-05-20 | 1 comentários | Compartilhar no WhatsApp

Computador RISC-V de 64 bits auto-hospedável, confiável, livre e compatível com Linux

Motivação

  • Objetivo: construir um computador totalmente confiável, Free/OpenSource

    • Todo o comportamento dos sistemas de hardware e software deriva integralmente de HDL (linguagem de descrição de hardware) e de código-fonte de software totalmente abertos
    • O compilador e a cadeia de ferramentas relacionada também devem ser Free/OpenSource, e devem poder ser compilados e executados nesse sistema computacional
    • Em outras palavras, é necessária uma pilha de hardware + software Free/OpenSource auto-hospedável
  • Restrições: não possuir nem controlar uma fundição de silício

    • Como não é possível fabricar um ASIC próprio, os componentes de "hardware" serão construídos em FPGA
    • A programação do FPGA e a geração do bitstream serão feitas com ferramentas Free/OpenSource
  • Benefícios do ponto de vista da confiabilidade:

    • A fundição de chips não pode saber para que o FPGA será usado, nem onde os "bits privilegiados" serão colocados no chip
    • Isso ajuda a impedir backdoors de hardware para escalonamento de privilégio
    • FPGAs são compostos por uma grade regular de componentes idênticos, o que facilita a inspeção visual (remoção química e imageamento por TEM) em comparação com ASICs dedicados
  • Limitação da superfície de ataque na etapa de fabricação:

    • Restringir fontes maliciosas e/ou a toolchain a código-fonte que possa ser compilado, para produzir um produto final confiável (um computador distribuído de hardware + software)

Materiais adicionais e experimentos iniciais

  • Artigo, slides e apresentação da CReSCT 2020: citação da IEEE S&P 2020

  • Revisão de pesquisa da CMU/SEI, slides e apresentação de 2019

  • Slides anteriores sobre trabalho em computação confiável no CERT/SEI

  • Projeto lowRISC:

    • esforço para rebasear componentes sobre seus respectivos projetos upstream
    • este projeto foi um recurso muito útil e ajudou bastante a entender os componentes
    • porém, no momento da redação, depende de uma toolchain HDL fechada e usa módulos de IP proprietários na lista de componentes (como controlador de DRAM)
  • yoloRISC:

    • demo SoC blink baseado em Rocket-Chip com RV64IMAC
    • construído para a placa de desenvolvimento Lattice ECP5 5G Versa usando yosys/trellis/nextpnr

Opinião do GN⁺

  • Hardware e software livres: este projeto é uma tentativa de construir hardware e software totalmente livres e open source, o que tem grande apelo para usuários que valorizam confiabilidade e transparência.
  • Vantagens do FPGA: ao usar FPGA, é possível impedir backdoors de hardware e aumentar a confiabilidade por meio de inspeção visual.
  • Toolchain e módulos de IP: atualmente, muitos projetos ainda dependem de toolchains fechadas e módulos de IP proprietários, o que dificulta a busca por uma solução totalmente open source.
  • Desafio técnico: construir uma pilha de hardware + software Free/OpenSource auto-hospedável é uma tarefa tecnicamente muito desafiadora.
  • Possibilidades futuras: este projeto pode contribuir de forma importante para o desenvolvimento de futuros sistemas computacionais confiáveis e ter grande impacto na comunidade open source.

1 comentários

 
GN⁺ 2024-05-20
Comentários do Hacker News

Resumo dos comentários do Hacker News

  • Segurança de FPGA: É possível evitar a inserção de backdoors de hardware no processo de fabricação do FPGA. O sistema pode até parar completamente, mas não vai fingir que está funcionando normalmente enquanto trai o dono.

  • Riscos potenciais de FPGA: Pode haver uma CPU escondida no FPGA, que teria acesso completo de leitura/escrita ao programa do FPGA. Se o sistema ganhar popularidade, aumenta a chance de se obter mais informações sobre o processo de fabricação e encontrar bits privilegiados.

  • Uso de toolchain open source: É impressionante fazer login em um shell Linux em um FPGA OrangeCrab executando um softcore RISC-V com uma toolchain open source. Isso era algo impossível no passado.

  • VexRiscv e SpinalHDL: Está sendo usado um design baseado em VexRiscv e SpinalHDL e, por causa da SRAM limitada (512KB), ele não roda Linux, mas oferece suporte a Ethernet e HDMI. Foi codificado um adaptador de vídeo semelhante ao CGA para suportar modos gráficos e de texto.

  • DDC e ataques à confiança: Foi recebida com satisfação a menção ao trabalho para prevenir ataques à confiança por meio de Diverse Double-Compiling (DDC). Se houver interesse em DDC, recomenda-se consultar os links relacionados.

  • Reconstrução do sistema: É recomendável reconstruir o sistema por conta própria e verificar se o bitfile é idêntico. Impressiona o fato de ser possível reconstruí-lo em 4,5 horas com 512MB e uma CPU de 65MHz.

  • Comparação com workstations Unix antigas: 50-65MHz e 512MB são comparáveis às workstations Unix do início dos anos 1990. Em termos de RAM, pode até ser melhor.

  • LiteX e FPGA Kintex-7: Em 2022, alguém fez algo parecido usando LiteX, mas o FPGA Kintex-7 exigia o Vivado. Como resultado, foi criado um notebook com gateware aberto rodando Linux e Xorg.

  • Projeto Shakti: Recomenda-se consultar o projeto Shakti, um ecossistema de desenvolvimento de processadores open source baseados em RISC-V criado no IIT-Madras, na Índia.

  • Trabalho com OSXKVM: O mesmo autor deste projeto é a pessoa que trabalhou na execução do OSX em QEMU/KVM.

  • Necessidade de uma máquina RISC-V self-hosting: Há a opinião de que é necessária uma máquina RISC-V totalmente self-hosting. Atualmente, o maior fator limitante é encontrar uma placa FPGA com RAM suficiente.

  • Dificuldade do self-hosting: A ideia de hardware e software self-hosting é boa, mas compilar algo como o GCC em uma CPU de 60MHz é considerado inimaginavelmente difícil. Foi compartilhada a experiência de usar Gentoo em um RockPro64 e desistir por causa do tempo excessivo de compilação.