Présentation

Flipflop est un outil open‑source qui établit un tunnel de confiance entre deux ou plusieurs appareils. Une fois le tunnel créé, les utilisateurs peuvent envoyer des fichiers à tout moment, que les machines soient connectées via Bluetooth, réseau local (LAN) ou même Internet public. Le projet s’appuie sur la bibliothèque Iroh, connue pour fournir des canaux de communication décentralisés et résilients.

Architecture et fonctionnement

Le tunnel persistant repose sur le protocole d’Iroh, qui crée une connexion point‑à‑point chiffrée et maintient un état partagé entre les nœuds participants. Cette persistance évite la nécessité de ré‑établir la session à chaque transfert, réduisant ainsi la latence initiale. Iroh utilise un modèle de transport adaptable : lorsqu’une liaison Bluetooth est disponible, le flux de données passe par cette interface à faible consommation d’énergie ; sinon, le système bascule automatiquement vers le LAN ou le réseau Internet, garantissant la continuité du service.

Le code source, écrit en Rust, s’exécute en mode natif sur Linux, macOS et Windows. La compilation se fait avec la chaîne d’outils Cargo, comme le montre l’exemple suivant :

cargo run --release

Pour Android, Flipflop propose un APK généré via cargo‑apk. L’installation nécessite le SDK et le NDK, ainsi que la commande just android-install qui automatise le processus de construction et de déploiement.

Déploiement et contraintes

Les binaires sont disponibles sur la page des releases GitHub, incluant des exécutables pour les trois systèmes d’exploitation de bureau et un installateur Windows nommé -setup.exe. Lors du premier lancement sous Windows, le système affiche l’avertissement « Windows protected your PC », une réaction standard de Microsoft face aux exécutables non signés. L’avertissement n’affecte pas le fonctionnement, mais il impose une étape supplémentaire d’acceptation de l’utilisateur.

Le projet ne propose pas de version iOS. L’auteur indique que les politiques d’Apple empêchent la publication d’une application similaire, ce qui limite l’usage aux appareils Android et aux ordinateurs de bureau.

Analyse des limites et sécurité

La sécurité du tunnel dépend du chiffrement fourni par Iroh. Sans informations supplémentaires sur les algorithmes employés, il est difficile d’évaluer la robustesse face à des attaques actives. De plus, la persistance du tunnel implique que les clés d’établissement restent valides sur de longues périodes, ce qui peut augmenter la surface d’exposition en cas de compromission d’un appareil.

Sur le plan de la compatibilité, la dépendance à Bluetooth restreint les performances sur des appareils dépourvus de cette interface. Le basculement automatique vers le réseau public peut entraîner des coûts de bande passante imprévus, surtout si de gros fichiers sont transférés régulièrement.

Enfin, la nécessité d’installer des outils de développement (Cargo, Android SDK/NDK) pour compiler le client Android rend le processus moins accessible aux utilisateurs non techniques. Une distribution d’APK pré‑compilé atténue ce problème, mais ne résout pas les exigences de mise à jour et de vérification de l’intégrité du binaire.