Composants open source
MyPwdTool n'est pas entièrement open source — mais les parties les plus importantes pour la confiance, le protocole de synchronisation et le chiffrement lui-même, sont publiées sous licence MIT pour un examen indépendant.
Pourquoi pas toute l’application ?
Publier l’intégralité de l’application en open source rendrait trivial le fait de prendre l’application compilée, d’en retirer les parties qui rendent la synchronisation viable à exploiter (voir Abonnement & Tarifs), et de redistribuer des copies qui ne contribuent jamais à maintenir le relais en ligne. Le reste de l’application — l’interface, les extensions navigateur, l’intégration au remplissage automatique — reste propriétaire pour cette raison.
Pourquoi ouvrir spécifiquement le code de synchronisation et de chiffrement ?
Parce que c’est précisément la partie que vous devez pouvoir vérifier sans avoir à la voir autrement. Toute la conception de MyPwdTool repose sur le fait que le serveur relais, et MyPwdTool en tant qu’entreprise, ne puissent jamais lire vos données — voir Sécurité & Chiffrement et Synchronisation pour l’explication complète. C’est une affirmation forte, et les affirmations fortes sur le chiffrement ne devraient pas avoir à être prises sur la foi d’une page marketing. Publier le code réel de dérivation de clé, de chiffrement par champ, de chiffrement de l’enveloppe de synchronisation, et du client du protocole relais — pour les implémentations Swift (macOS/iOS) et Kotlin (Windows) — sous licence MIT permet à quiconque de lire exactement ce que ces applications font de votre mot de passe maître et de vos données, ligne par ligne.
Le relais lui-même est aussi open source
Les fichiers côté client ci-dessous ne sont pas toute l’histoire — le serveur relais avec lequel ils communiquent, e2eerelay, est entièrement open source depuis le début, pas seulement en partie. C’est le petit serveur Go qui stocke et transmet les messages de synchronisation chiffrés entre vos appareils, et l’intégralité de son code — pas un sous-ensemble choisi — est public sur github.com/ThibaultDucray/e2eerelay. Entre le code source complet du relais et le code client de chiffrement/synchronisation publié ici, le chemin complet emprunté par vos données — chiffrées sur votre appareil, déplacées par le relais, déchiffrées sur votre autre appareil — est ouvert à l’examen de bout en bout, même si les applications elles-mêmes ne le sont pas.
Ce qui est couvert
Chaque fichier ci-dessous est sous licence MIT — voir le fichier LICENSE-SYNC-CRYPTO.md à côté
d’eux pour les termes exacts. Tout le reste, dans les deux applications, reste propriétaire et
n’est pas publié. Les liens ci-dessous servent les fichiers source réels et actuels
directement depuis la compilation de ce site — ce ne sont pas des copies susceptibles de
dériver silencieusement.
Swift (macOS / iOS)
- LICENSE-SYNC-CRYPTO.md
- CryptoManager.swift — dérivation de clé (PBKDF2), enveloppement de la DEK, chiffrement AES-256-GCM par champ
- SyncManager.swift — le moteur de synchronisation : appairage, interrogation périodique, application des changements entrants, révocation d’appareil, rotation de clé
- SyncModels.swift — le format des messages
- SyncCrypto.swift — le chiffrement de l’enveloppe des messages de synchronisation (clé de groupe de synchronisation / AES-256-GCM)
- SyncStore.swift — stockage local de la configuration de synchronisation
- SyncOutbox.swift — la file d’attente persistante des messages sortants
- RelayAPIClient.swift — le client HTTP pour l’API du relais
Kotlin (Windows / Linux)
- LICENSE-SYNC-CRYPTO.md
- CryptoManager.kt
- SyncManager.kt
- SyncModels.kt
- SyncCrypto.kt
- SyncStore.kt
- SyncOutbox.kt
- RelayAPIClient.kt
- RelayError.kt
- RelayModels.kt
- Base64Url.kt
- ChallengeResponse.kt
Les deux implémentations sont vérifiées croisées, octet par octet, sur leur format de messages et leur sortie cryptographique, de sorte qu’un appareil macOS et un appareil Windows partageant un groupe de synchronisation parlent, de façon prouvée, exactement le même protocole — pas seulement « compatible en pratique ».