End-to-end encrypted
The phone and the machine speak Noise (XK to pair, then KK) through the relay. The machine key reaches the phone through the QR code, out of band: a malicious relay can neither read nor impersonate.
SliTaz GNU/Linux · version 0.1
Type pelote on the machine, scan the QR
code with your phone and you are done: update it, reboot it, watch
its CPU and memory from home or from the other side of the world.
No SSH. No port to open. Nothing to configure on your router. The relay in the middle only sees encrypted bytes.
pelote pair shows a QR code in the terminal.
The phone scans it, you say yes on the machine. That is the
whole setup, under a minute.
The app shows the machine's actions as a menu: update,
reboot, power off, disk usage… Each one is a small script in
/etc/pelote/actions.d, packages can add their own.
Output streams live while an action runs. The monitor draws five minutes of CPU, memory, disks and network, and stops as soon as the app is in the background.
The phone and the machine speak Noise (XK to pair, then KK) through the relay. The machine key reaches the phone through the QR code, out of band: a malicious relay can neither read nor impersonate.
No free shell. The phone can only run the scripts of
actions.d, owned by root and writable by no one
else. Each declares its danger: a confirmation and your
fingerprint for the dangerous ones.
The daemon reads its key as root, then runs as the
pelote user. Root actions go through a tiny setuid
helper that checks everything again. Every run is logged.
A lost phone is one command away: pelote revoke
closes its sessions at once. Pairing codes work once and expire
after five minutes.
Written in C for SliTaz, tested with a fuzzer and runtime checks, BSD licensed. Details in SECURITY.md and PROTOCOL.md.
On SliTaz, as root:
# spk-add pelote # /etc/init.d/pelote start # pelote pair
Add pelote to RUN_DAEMONS in
/etc/rcS.conf to start it at boot. Then, every day:
pelote list | paired phones |
pelote revoke <id> | unpair one |
pelote actions | the menu, and the scripts it refused |
pelote status | daemon and relay |
pelote log | who ran what, when |
Rather keep everything at home? pelote-relay
is a package too: run your own behind any TLS web server, then
pelote relay wss://your.host/relay.
Version 0.1.2 · Android 8 and later · 3 MB · no Google services. F-Droid will come later.
Download the APKAllow installing from your browser when Android asks. It is signed with the Pelote key below: an update signed otherwise would be refused.
43d1cec0b2cd64d997c295a896385ee3d2b23c4cca958c2aef63d8bda58b9399db:9f:43:cc:82:c7:d7:30:c9:5c:46:1a:e7:14:98:e8:37:32:7f:af:e0:44:a6:b1:64:bb:79:cb:5c:e4:6b:33This is a first test release: it may still break. Bugs and ideas are welcome on the forum.