На днях представлен проект открытой программной платформы для создания мобильных устройств. Он получил название Precursor. По словам автора, это Arduino или Raspberry Pi для мобильной отрасли. На базе платформы можно собрать любой мобильный девайс.
В отличие от тех же одноплатников, Precursor поставляется в корпусе, с готовой клавиатурой и дисплеем. Подробнее о проекте — под катом.
Характеристики устройства
Корпус изготовлен из алюминия, его размеры — 69 x 138 x 7.2 мм. Есть LCD-экран (336*536), аккумулятор на 110 мА*ч, клавиатура, динамик, вибромотор и акселерометр.
Основа девайса — программно-определяемый SoC, FPGA Xilinx XC7S50, на его базе организована эмуляция 32-разрядного CPU RISC-V, работающего на частоте 100MHz. Разработчик утверждает, что эмулировать можно работу широкого спектра процессоров — от 6502 и Z-80 до AVR и ARM, а также звуковых чипов и различных контроллеров.
Кроме того, плата включает 16 MB SRAM, 128 MB Flash, Wi-Fi Silicon Labs WF200C, USB type C, SPI, I²C, GPIO.
Платформа оснащена двумя аппаратными генераторами псевдослучайных чисел. Это сделано для повышения уровня безопасности. Интересный момент — устройство не имеет микрофона. Для считывания звука нужно подключить гарнитуру. Это сделано в целях защиты от подслушивания. Если гарнитура отключена, звук не будет регистрироваться, соответственно, удаленно что-то подслушать невозможно.
Wi-Fi-модуль аппаратно изолирован от всех остальных компонентов и работает в собственном окружении. Для повышения уровня безопасности разработчики предусмотрели еще и запираемый корпус, RTC для отслеживания целостности, мониторинг движения в режиме ожидания (всегда включенные акселерометр и гироскоп).
При необходимости можно добавить цепь саморазрушения и очистки всех данных. Активируется эта опция при помощи AES-ключа.
Для работы с аппаратными модулями используется FHDL-язык Migen (Fragmented Hardware Description Language), основанный на Python. Он входит в состав фреймворка LiteX, предоставляющий инфраструктуру для создания электронных схем. Кроме того, разработчик подготовил эталонный SoC Betrusted, включающий 100 MHz CPU VexRISC-V RV32IMAC, а также встраиваемый контроллер Betrusted-EC с ядром 18 MHz LiteX VexRISC-V RV32I.
Предусмотрен и набор криптографических примитивов, включая AES-128, -192, -256 с режимами ECB, CBC и CTR, SHA-2 и SHA-512, криптодвижок на базе эллиптических кривых Curve25519. Основа движка — криптоядра Google OpenTitan.
Автор проекта называет Precursor платформой для создания и верификации прототипов. А вот Betrusted — готовое устройство на базе платформы. Автор использовал элементы взаимодействия с пользователем для того, чтобы исключить возможность сохранения, демонстрации или передачи защищенных данных вне устройства.
Betrusted — не мобильный телефон, а скорее цифровой ассистент, позволяющий повысить безопасность приема и передачи данных.
Автор проекта — Эндрю Хуан (Andrew Huang), ранее получивший премию EFF Pioneer Award 2012. Как поклонник open source, он открыл ПО и аппаратное обеспечение как Precursor, так и Betrusted. Используемая лицензия — Open Hardware Licence 1.2. Эндрю Хуан открыл схемы, проектную документацию плат, SoC Betrusted и управляющего контроллера. Подготовлены и 3D-модели для желающих распечатать корпус. Готовы прошивки и ОС Xous.
С полным описанием проекта можно ознакомиться здесь.