En bref : chaque téléphone de l'album est un nœud. Les téléphones se trouvent sur le réseau local ou sur Internet, puis s'envoient les photos directement, chiffrées. Un relais public n'est utilisé que si deux téléphones ne peuvent pas se joindre. Le compromis : deux téléphones doivent être en ligne à peu près en même temps pour qu'une photo passe.
Avec ou sans serveur
Un album cloud a le serveur d'une entreprise au milieu. Les photos montent, les photos descendent, et l'entreprise les stocke, paie le stockage et décide combien de temps elle les garde. Un album pair-à-pair n'a pas de milieu : chaque téléphone conserve des copies et les transmet aux autres.
Les bénéfices découlent de l'architecture. Il n'y a pas de stock de photos à pirater, pas de facture d'hébergement qui grimpe avec la popularité — l'application peut donc être gratuite sans contrepartie cachée — et pas d'entreprise à qui l'on pourrait demander de remettre un album, puisqu'elle n'en détient aucun.
Comment les téléphones se trouvent
Deux téléphones ne peuvent échanger des photos qu'en sachant où se trouve l'autre. Halation emploie deux moyens de trouver un pair, dont aucun n'est un serveur exploité par les concepteurs de l'application :
- Sur le même Wi-Fi : la découverte locale (mDNS). Des téléphones dans la même pièce se trouvent sans connexion Internet.
- Sur Internet : la DHT Mainline de BitTorrent, un vaste annuaire distribué qui existe déjà, utilisé pour savoir où un pair est joignable.
La couche pair-à-pair repose sur iroh, qui établit des connexions chiffrées directes entre appareils et adresse les données par leur empreinte.
Le relais, en toute franchise
Les box domestiques et les réseaux mobiles bloquent souvent les connexions entrantes : deux téléphones ne peuvent pas toujours se connecter directement. Dans ce cas, la connexion bascule sur un relais public — une machine exploitée par quelqu'un d'autre, qui transmet des paquets chiffrés. Pour environ 10 à 30 % des connexions, c'est la seule voie.
| Ce que le relais peut faire | Ce qu'il ne peut pas faire |
|---|---|
| Transmettre du trafic chiffré entre deux téléphones. | Lire les photographies, chiffrées avant de quitter le téléphone. |
| Voir que deux appareils communiquent. | Stocker l'album. |
C'est la seule machine tierce du tableau, et la raison pour laquelle Halation n'affirme pas que « rien ne quitte jamais le téléphone ». Les photos quittent bien le téléphone — vers ceux des autres membres, chiffrées.
Le compromis : être en ligne ensemble
Sans serveur où attendre, une photo ne peut circuler que si le téléphone qui la détient et un téléphone qui la veut sont joignables en même temps. Pour un groupe qui ouvre régulièrement l'application, c'est constant. Pour deux personnes qui l'ouvrent cinq minutes par jour au hasard, le recoupement est faible. En pratique : après un événement, ouvrez l'application une ou deux fois en Wi-Fi ; plus il y a de téléphones qui détiennent une photo, plus il est probable que tout le monde la reçoive.
Est-ce chiffré ?
Oui. Chaque photographie est scellée avant d'être partagée, et les connexions entre appareils sont chiffrées. Les photographies sont chiffrées avec une clé dérivée du contenu lui-même : des octets identiques se scellent à l'identique, et chaque clé n'est utilisée qu'une fois.
Sources
Un album qui ne vit sur aucun serveur
Gratuit, sans compte, sans publicité. iPhone et Android.