Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
Patrick Rathje b99f373de1 Add default environment and restrict desktop to test target #4 4 тижднів тому
.github/workflows Adapt workflow names to correct urls 1 місяць тому
include/tls_config Init entropy for desktop tests 1 місяць тому
lib Add platformIO files and adapt file structure 1 місяць тому
src Add platformIO files and adapt file structure 1 місяць тому
test Add platformIO files and adapt file structure 1 місяць тому
zephyr Add platformIO files and adapt file structure 1 місяць тому
.gitignore Add platformIO files and adapt file structure 1 місяць тому
LICENSE Initial commit 3 місяці тому
README.md Move workflows status to the top 1 місяць тому
basestation.py initial code release 3 місяці тому
platformio.ini Add default environment and restrict desktop to test target #4 4 тижднів тому

README.md

Covid Bracelet, compatibile with Covid Apps on iOS and Android Actions Status: test Actions Status: build

Contributions Welcome!

Features

  • Sends and receives exposure beacons as specified by Google and Apple for Covid Contact Tracing
  • Rolling, encrypted, anonymous beacons
  • Compatible with Apple iOS and Android phones
  • With rolling proximity identifiers and encrypted metadata
  • Proximity identifiers and BLE addresses change every 10 minutes
  • Stores own keys for 14 days
  • Stores contacts of more than 5 minute duration
  • Upon infection upload keys to a public database
  • Retrieve keys of infections from database
    • computes rolling proximity identifiers
    • compares to stored contacts to check for exposure

Builds on on Zephyr OS and NRF52 BLE SOCs. Note: as we for now do not use the flash for key storage, this currently only works on nrf52480 or you can just store a very small number of keys. Moving the keys to flash is on the TODO list and will fix this.

Get Started:

This project is based on platformIO, see: https://platformio.org/platformio-ide

Testing

To run the tests for the desktop environment select the test task for desktop or run:

platformio test -e desktop

Note: this is a proof of concept and not ready for production

Demo Video

Video Demo

Open / Possible next steps

  • firmware of the air updates (signed): done in testing
  • fix entropy: keys are always the same on boot up
  • time sync
  • set device name, user id or so in Flash
  • set scanning interval to the correct value, for now we just use the default
  • set advertisement interval, correct value, for now we just use the default: should be 200-270 milliseconds
  • store long-term contacts in flash
  • set transmit power and store this in the corona beacons
  • get infections from DB, check their signatures
  • extensive logging: crash, reboot, battery level, charging state, contacts, memory useage, flash usage,
  • extensive compatibility testing with Apple iOS and Android devices
  • contininous integration testing
  • Energy efficiency
  • BLE advertisements sets
  • Secure GATT services and authentication of base statation in general
  • More platforms: with display etc.

TODOs Wristband

Possible platforms for real-world deployment many, as many of the cheap fitness trackers base on NRF52 or chips with similar capabilities. However, many would need the firmware to be shipped to manufactures.

  • Watch UI
  • Pine Time could be good for testing

TODOs App and Basestation

  • extend this beyond the simple basestation
  • read keys form national databases