Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
Patrick Rathje b99f373de1 Add default environment and restrict desktop to test target #4 4 semanas atrás
.github/workflows Adapt workflow names to correct urls 1 mês atrás
include/tls_config Init entropy for desktop tests 1 mês atrás
lib Add platformIO files and adapt file structure 1 mês atrás
src Add platformIO files and adapt file structure 1 mês atrás
test Add platformIO files and adapt file structure 1 mês atrás
zephyr Add platformIO files and adapt file structure 1 mês atrás
.gitignore Add platformIO files and adapt file structure 1 mês atrás
LICENSE Initial commit 3 meses atrás
README.md Move workflows status to the top 1 mês atrás
basestation.py initial code release 3 meses atrás
platformio.ini Add default environment and restrict desktop to test target #4 4 semanas atrás

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