Precursor - build your own open-source mobile device with cryptographic protection



Recently , a project of an open software platform for creating mobile devices was presented . It was named Precursor. According to the author, this is an Arduino or Raspberry Pi for the mobile industry. Any mobile device can be assembled on the basis of the platform.



Unlike the same single-board devices, the Precursor comes in a case, with a ready-made keyboard and display. More information about the project is under the cut.



Device characteristics



The case is made of aluminum, its dimensions are 69 x 138 x 7.2 mm. There is an LCD screen (336 * 536), a 110 mAh battery, a keyboard, a speaker, a vibration motor and an accelerometer.



The basis of the device is a software-defined SoC, FPGA Xilinx XC7S50, on its basis the emulation of a 32-bit RISC-V CPU operating at a frequency of 100MHz is organized. The developer claims that it is possible to emulate the operation of a wide range of processors - from 6502 and Z-80 to AVR and ARM, as well as sound chips and various controllers.



In addition, the board includes 16 MB SRAM, the Flash 128 MB Download now, Wi-Fi access the Silicon Labs WF200C, the USB of the type the C, the SPI, I of Β² the C, the GPIO.



The platform is equipped with two hardware pseudo-random number generators. This is to improve security. An interesting point - the device does not have a microphone. To read sound, you need to connect a headset. This is done to protect against eavesdropping. If the headset is turned off, the sound will not be recorded, therefore, it is impossible to eavesdrop on something remotely.



The Wi-Fi module is hardware isolated from all other components and operates in its own environment. To increase the level of safety, the developers have also provided for a lockable case, RTC for integrity tracking, motion monitoring in standby mode (always on accelerometer and gyroscope).



If necessary, you can add a chain of self-destruction and clear all data. This option is activated using an AES key.





To work with hardware modules, the FHDL language Migen (Fragmented Hardware Description Language), based on Python, is used. It is part of the LiteX framework, which provides the infrastructure for creating electronic circuits. In addition, the developer has prepared a Betrusted reference SoC, which includes a 100 MHz VexRISC-V RV32IMAC CPU, as well as an embedded Betrusted-EC controller with an 18 MHz LiteX VexRISC-V RV32I core.



A set of cryptographic primitives is also provided, including AES-128, -192, -256 with ECB, CBC and CTR modes, SHA-2 and SHA-512, elliptic curve crypto engine Curve25519. The engine is based on the Google OpenTitan cryptokernel.





The author of the project calls Precursor a platform for creating and verifying prototypes. Betrusted, on the other hand, is a complete platform-based device. The author used elements of user interaction in order to exclude the possibility of saving, displaying or transmitting protected data outside the device.



Betrusted is not a mobile phone, but rather a digital assistant that allows you to increase the security of receiving and transmitting data.





The author of the project is Andrew Huang, who previously won the 2012 EFF Pioneer Award. As an open source fan, he discovered both Precursor and Betrusted software and hardware. The license used is Open Hardware License 1.2. Andrew Huang opened the schematics, design documentation for the boards , Betrusted SoC and the control controller. 3D models have been prepared for those who want to print the case. Firmware and OS Xous are ready .



A full description of the project can be found here .






All Articles