Toute faille n’est pas un drame, et un cas intéressant ne repose pas nécessairement sur une découverte spectaculaire. Celui-ci raconte une erreur précise dans une application de messagerie à code source ouvert et, surtout, une réponse qui montre comment la divulgation coordonnée devrait se dérouler.
la même clé sur tous les appareils
SKRED chiffre certains paramètres sensibles stockés sur l’appareil. En temps normal, l’application crée une clé propre à chaque téléphone dans son espace sécurisé (Android Keystore). Si cette opération échouait — un problème connu sur certains anciens appareils —, une clé de secours inscrite dans le code prenait le relais. Cette clé était la même sur toutes les installations.
Pourquoi elle existait. L’objectif était légitime : protéger quand même les données si le Keystore de l’appareil échouait. Mais la clé de secours n’était pas propre à chaque appareil. Elle était calculée de manière déterministe à partir de deux valeurs intégrées au code ; elle était donc identique partout et pouvait être reconstituée à partir des sources publiques.
Sa portée, sans exagération. Il s’agissait d’une voie de secours, non du mécanisme normal de chiffrement. Elle concernait des paramètres stockés localement, pas le contenu des messages de tous les utilisateurs. Son exploitation exigeait l’accès à l’appareil lui-même ; il ne s’agissait pas d’une attaque à distance. La gravité se limite à ce scénario local : une faille réelle, mais clairement circonscrite.
désormais : arrêt en cas d’échec
la clé de secours ne lit que les anciennes données
Dans la version actuelle, la clé de secours ne sert plus à chiffrer. Si la création de la clé dans le Keystore échoue, l’application passe en état d’erreur au lieu de poursuivre avec une clé connue. L’ancienne clé ne sert plus qu’à déchiffrer les données existantes lors de leur migration.
Une personne répond — et corrige.
Après la transmission du rapport par le BSI, le responsable technique de l’éditeur a répondu personnellement. Pas de réponse standardisée : il a repris les points un par un, avec des explications techniques concrètes. Il a partagé de la documentation sur l’architecture, indiqué où trouver le code source et lancé les corrections sans attendre. Outre la clé de secours, il a ajouté l’épinglage de certificats qui manquait ; ces modifications sont vérifiables dans le dépôt public.
Voilà comment cela devrait se passer.
La divulgation coordonnée ne se mesure pas au caractère spectaculaire d’une faille, mais à ce qui suit le signalement. SKRED a montré une voie constructive : code source ouvert, interlocuteur disponible, dialogue technique plutôt que réflexe défensif, puis corrections rapides et vérifiables. Le caractère ouvert des applications s’inscrit dans cette même démarche.