André Huang, um renomado defensor do hardware aberto e vencedor do Prêmio Pioneiro EFF 2012, introduziu a plataforma de código aberto «Precursor» para a conceituação de novos dispositivos móveis.
Semelhante a como Raspberry Pi e Arduino habilitam dispositivos para Internet das Coisas, Forerunner visa fornecer a capacidade de projetar e montar uma variedade de dispositivos móveis com suas próprias mãos para resolver seus problemas.
Precursor está posicionada como uma plataforma para prototipagem e verificação, enquanto Betrusted é um dos dispositivos móveis prontos para uso, construído com base no Precursor.
Como os enclaves tradicionais usados para armazenamento de chaves criptográficas isoladas não protegem contra ataques de alto nível, como coleta de senha usando registradores de pressionamento de tecla ou acesso a mensagens por meio de captura de tela, o Betrusted adiciona elementos de interação do usuário (HCI, interação humano-computador), garantindo que dados confidenciais que pode ser lido por um ser humano nunca é armazenado, exibido ou transmitido para fora do dispositivo protegido.
Ao contrário de outros projetos, O Precursor oferece aos entusiastas não apenas uma placa, mas um protótipo pronto para usar em um dispositivo portátil com:
- uma caixa de alumínio de 69 x 138 x 7,2 mm
- Tela LCD (336 × 536)
- bateria (1100 mAh Li-Ion)
- teclado em miniatura
- alto-falante
- motor de vibração
- acelerômetro e giroscópio.
O módulo computacional é fornecido não com um processador pronto para uso, mas com um SoC definido por software baseado em Xilinx XC7S50 FPGA, com base no qual a emulação de uma CPU RISC-V de 32 bits operando a 100 MHz é organizada.
Ao mesmo tempo, não há restrições na emulação de outros componentes de hardware, por exemplo, a operação de vários processadores, de 6502 e Z-80 a AVR e ARM, bem como chips de som e vários controladores, podem ser emulados.
A placa inclui 16 MB SRAM, 128 MB Flash, Silicon Labs WF200C Wi-Fi, USB Tipo C, SPI, I²C, GPIO.
Dos recursos relacionados à segurança, existem dois geradores de números pseudo-aleatórios de hardware.
Curiosamente, o dispositivo basicamente vem sem um microfone embutido; Entende-se que a recepção do som só é possível quando os fones de ouvido estão explicitamente conectados e, se os fones de ouvido forem desconectados, é fisicamente impossível organizar a audição, mesmo que o software do dispositivo tenha sido comprometido.
O chip para comunicação sem fio (Wi-Fi) é o hardware isolado do resto da plataforma e opera em um ambiente separado.
Para proteger contra acesso não autorizado, um invólucro com chave, um RTC separado para rastreamento de integridade, monitoramento de movimento em modo de espera (acelerômetro e giroscópio sempre ligados) também são usados. Há também uma cadeia de autodestruição e apagamento instantâneo de todos os dados, que é ativado com uma chave AES.
A linguagem FHDL migen (linguagem de descrição de hardware fragmentada) baseado em Python usado para descrever componentes de hardware.
Migen faz parte da estrutura LiteX, que fornece a infraestrutura para a criação de circuitos eletrônicos.
Com base no Precursor usando FPGA e Litex, uma referência Betrusted é preparada com SoC, incluindo uma CPU VexRISC-V RV32IMAC 100 MHz, bem como um driver Betrusted-CE embutido com um núcleo Litex VexRISC-V RV18I de 32 MHz.
SoC Betrusted fornece um conjunto integrado de primitivas criptográficas, como um gerador de número pseudo-aleatório, AES-128, -192, -256 com os modos ECB, CBC e CTR, SHA-2 e SHA-512, Curve25519 curva criptográfica elíptica motor. O mecanismo de criptografia é escrito em SystemVerilog e é baseado em núcleos de criptografia do projeto Google OpenTitan.
Todos os componentes Precursor e Betrusted são de código aberto e estão disponíveis para modificação e experimentação sob a Open Hardware License 1.2, que requer que todos os trabalhos derivados sejam abertos sob a mesma licença.
Incluindo circuitos abertos e documentação de projeto completa de placas principais e auxiliares, uma implementação pronta para SoC Betrusted e um controlador de controle (EC).
Caso tenha interesse em saber mais sobre o assunto, cadastre-se no link a seguir para que seja informado quando a plataforma está totalmente disponível.