Precursor: una plataforma para desarrollar y construir dispositivos móviles
Andrew Huang, un reconocido defensor del open hardware y ganador del premio EFF Pioneer Award 2012, presentó la plataforma de código abierto «Precursor» para la conceptualización de nuevos dispositivos móviles.
De manera similar a cómo Raspberry Pi y Arduino habilitan dispositivos para Internet de las cosas, Precursor tiene como objetivo brindar la capacidad de diseñar y ensamblar una variedad de dispositivos móviles con sus propias manos para resolver sus problemas.
Precursor se posiciona como una plataforma para la creación de prototipos y la verificación, mientras que Betrusted es uno de los dispositivos móviles listos para usar construidos sobre la base de Precursor.
Dado que los enclaves tradicionales utilizados para el almacenamiento aislado de claves criptográficas no protegen contra ataques de alto nivel, como la recopilación de contraseñas mediante registradores de pulsaciones de teclas o el acceso a mensajes mediante captura de pantalla, Betrusted agrega elementos de interacción del usuario ( HCI , interacción persona-computadora), asegurando que los datos sensibles que puedan ser leídos por un ser humano nunca se almacenen, muestren o transmitan fuera del dispositivo protegido.
A diferencia de otros proyectos, Precursor ofrece a los entusiastas no solo una placa, sino un prototipo listo para usar de un dispositivo portátil con:
- una carcasa de aluminio de 69 x 138 x 7,2 mm
- pantalla LCD (336×536)
- batería (1100 mAh Li-Ion)
- teclado en miniatura
- altavoz
- motor de vibración
- acelerómetro y giroscopio.
El módulo computacional se suministra no con un procesador listo para usar, sino con un SoC definido por software basado en FPGA Xilinx XC7S50, sobre cuya base se organiza la emulación de una CPU RISC-V de 32 bits que opera a 100MHz.
Al mismo tiempo, no hay restricciones para emular otros componentes de hardware, por ejemplo, se puede emular el funcionamiento de varios procesadores, desde 6502 y Z-80 hasta AVR y ARM, así como chips de sonido y varios controladores.
La placa incluye 16 MB de SRAM, 128 MB de Flash, Silicon Labs WF200C Wi-Fi, USB tipo C, SPI, I²C, GPIO.
De las capacidades relacionadas con la seguridad, hay dos generadores de números pseudoaleatorios de hardware.
Curiosamente, el dispositivo básicamente viene sin un micrófono incorporado; se entiende que la recepción de sonido es posible solo cuando los auriculares están conectados explícitamente, y si los auriculares están desconectados, es físicamente imposible organizar las escuchas, incluso si el software del dispositivo se ha visto comprometido.
El chip para la comunicación inalámbrica (Wi-Fi) es un hardware aislado del resto de la plataforma y opera en un entorno separado.
Para protegerse contra el acceso no autorizado, también se usa una carcasa con cerradura, un RTC separado para seguimiento de integridad, monitoreo de movimiento en modo de espera (acelerómetro y giroscopio siempre encendidos). También hay una cadena de autodestrucción y borrado instantáneo de todos los datos, que se activa con una clave AES.
El lenguaje FHDL Migen (lenguaje de descripción de hardware fragmentado) basado en Python se utiliza para describir componentes de hardware.
Migen es parte del marco LiteX, que proporciona la infraestructura para crear circuitos electrónicos.
Basado en Precursor usando FPGA y Litex, una referencia Betrusted se SoC preparado, incluyendo una CPU MHz VexRISC-V RV32IMAC 100, así como un controlador de Betrusted-CE incrustado con un núcleo de 18 MHz Litex VexRISC-V RV32I.
SoC Betrusted proporciona un conjunto integrado de primitivas criptográficas, como un generador de números pseudoaleatorios, AES-128, -192, -256 con modos ECB, CBC y CTR, SHA-2 y SHA-512, motor criptográfico de curva elíptica Curve25519. El motor de cifrado está escrito en SystemVerilog y se basa en núcleos de cifrado del proyecto Google OpenTitan.
Todos los componentes de Precursor y Betrusted son de código abierto y están disponibles para modificación y experimentación bajo la Open Hardware License 1.2, que requiere que todos los trabajos derivados se abran bajo la misma licencia.
Incluyendo circuitos abiertos y documentación de diseño completa de las placas principal y auxiliar, una implementación preparada de SoC Betrusted y un controlador de control (EC).
Si estás interesado en conocer mas al respecto, puedes registrar en el siguiente enlace para que te sea informado cuando la plataforma este totalmente disponible.