Andrew Huang, a renowned advocate of open hardware and winner of the 2012 EFF Pioneer Award, introduced the open source platform «Precursor» for the conceptualization of new mobile devices.
Similar to how Raspberry Pi and Arduino enable devices for Internet of Things, Precursor aims to provide the ability to design and assemble a variety of mobile devices with your own hands to solve your problems.
Precursor is positioned as a platform for prototyping and verification, while Betrusted is one of the ready-to-use mobile devices built on the foundation of Precursor.
Since traditional enclaves used for isolated cryptographic key storage do not protect against high-level attacks, such as password collection using keystroke loggers or accessing messages via screenshot, Betrusted adds user interaction elements ( HCI, human-computer interaction), ensuring that sensitive data that can be read by a human being is never stored, displayed, or transmitted outside of the protected device.
Unlike other projects, Forerunner offers enthusiasts not just a board, but a ready prototype to use from a portable device with:
- a 69 x 138 x 7,2 mm aluminum housing
- LCD screen (336 × 536)
- battery (1100 mAh Li-Ion)
- miniature keyboard
- vibration motor
- accelerometer and gyroscope.
The computational module is supplied not with a ready-to-use processor, but with a software-defined SoC based on Xilinx XC7S50 FPGA, on the basis of which the emulation of a 32-bit RISC-V CPU operating at 100MHz is organized.
At the same time, there are no restrictions on emulating other hardware components, for example, the operation of various processors, from 6502 and Z-80 to AVR and ARM, as well as sound chips and various controllers, can be emulated.
The board includes 16MB SRAM, 128MB Flash, Silicon Labs WF200C Wi-Fi, USB Type-C, SPI, I²C, GPIO.
Of the security-related capabilities, there are two hardware pseudo-random number generators.
Interestingly, the device basically comes without a built-in mic; sound reception is understood to be possible only when headphones are explicitly connected, and if headphones are unplugged, it is physically impossible to organize listening, even if the device software has been compromised.
The chip for wireless communication (Wi-Fi) is hardware isolated from the rest of the platform and operates in a separate environment.
To protect against unauthorized access, a lockable housing, a separate RTC for integrity tracking, motion monitoring in standby mode (accelerometer and gyroscope always on) is also used. There is also a self-destruct chain and instant erase of all data, which is activated with an AES key.
The language FHDL Migen (fragmented hardware description language) based on Python used to describe hardware components.
Migen is part of the LiteX framework, which provides the infrastructure to create electronic circuits.
Based on Precursor using FPGA and Litex, a Betrusted reference is SoC prepared, including a VexRISC-V RV32IMAC 100 MHz CPU, as well as a Betrusted-CE driver embedded with an 18 MHz Litex VexRISC-V RV32I core.
SoC Betrusted provides a built-in set of cryptographic primitives, such as a pseudo-random number generator, AES-128, -192, -256 with ECB, CBC and CTR modes, SHA-2 and SHA-512, Curve25519 elliptic curve crypto engine. The encryption engine is written in SystemVerilog and is based on encryption cores from the Google OpenTitan project.
All Precursor and Betrusted components are open source and are available for modification and experimentation under the Open Hardware License 1.2, which requires that all derivative works be opened under the same license.
Including open circuits and full design documentation of main and auxiliary boards, a Betrusted SoC ready implementation, and a control controller (EC).
If you are interested in knowing more about it, you can register in the following link so that you will be informed when the platform is fully available.