Computador RISC-V de 64 bits com suporte livre ao Linux e auto-hospedável em que se pode confiar
(contrib.andrew.cmu.edu)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
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.