Outils pour utilisateurs

Outils du site


phone:f-droid-verification

Vérifier la signature de l'application F-Droid

Comme de toute application récupérée sur le site web de F-Droid.

Cette fiche ne traite pas de comment installer et configurer gnupg. C'est supposé être fait.

Cas d'utilisation

Je souhaite ajouter l'application F-Droid afin de pouvoir facilement installer et mettre à jours des application fournies par ce magasin d'applications. Cette application n'étant pas disponible sur Google-Play, il faut la télécharger manuellement, puis l'installer. Avant de l'installer, je veux m'assurer que l'application que j'ai téléchargée est bien celle qui a été développée et packagée par F-Droid.

Le problème

Afin de permettre ce type de contrôle, F-Droid fournit, sur son site web, des fichiers de signature PGP. Il devrait donc être possible de contrôler la validité du fichier contenant l'application. Or, il ne suffit pas de télécharger le fichier de l'application et le fichier de signature pour s'assurer de la validité de l'application. C'est tout à fait normal. Il faut disposer de la clé publique de la personne qui à apposé cette signature. Pas de bol, cette clé étant introuvable sur le site web de F-Droid, comment faire pour la récupérer ?

Installer la clé publique

Sur le site de F-Droid, la documentation est très mal faite. Les traductions en français démontrent une méconnaissance élémentaire de la langue anglaise, ajoutant une couche d'opacité. Je recommande vivement de consulter la version anglaise du site.

À défaut de proposer de télécharger les clés publiques utilisées par F-Droid, la page Release Channels and Signing Keys de leur site web fournit les empreintes de leurs clés. Dans mon cas d'utilisation, la clé qui m'intéresse est celle qu'utilse F-Droid pour signer ses “official binary releases”. Les trois informations utiles sont l'adresse mail ainsi que les empreintes des “Primary key” et “Subkey”. Chacune de ces trois informations est susceptible de permettre de récupérer la clé publique correspondante, sur un serveur de clés.

En utilisant le serveur de clé mis à disposition par Unbuntu et en indiquant l'adresse mail comme critère de recherche j'obtiens un résultat :

Search results for 'admin@f-droid.org'

Type bits/keyID            cr. time   exp time   key expir

pub rsa4096/37d2c98789d8311948394e3e41e7044e1dba2e89 2014-04-25T13:33:11Z
	 Hash=6015784cd3773f3f669a945e849bc70c
sig  sig  d3a6fa2d7ecc6df6 2018-04-20T19:55:32Z ____________________ ____________________ d3a6fa2d7ecc6df6
sig  sig  99392f62bae30723 2020-01-30T13:36:53Z 2022-01-29T13:36:53Z ____________________ 99392f62bae30723
sig  sig  1715eeaa14daec14 2020-12-02T06:23:50Z ____________________ ____________________ 1715eeaa14daec14
…

La ligne suivante indique l'empreinte correspondante à ce résultat :
pub rsa4096/37d2c98789d8311948394e3e41e7044e1dba2e89 2014-04-25T13:33:11Z

À la date de création de cette fiche, elle correspond à l'empreinte figurant sur la page de F-Droid, les espaces de séparation en moins et les majuscules remplacées par des minuscule. C'est normal ! Je décide donc de charger cette clé sur mon ordi, depuis ce serveur de clés :

$ gpg --keyserver keyserver.ubuntu.com --recv-keys 37d2c98789d8311948394e3e41e7044e1dba2e89

Le résultat de la commande indique comment s'est déroulée l'opération. Je vérifie que la clé est installée et fait une dernière vérification de son empreinte :

$ gpg --list-keys  F-Droid

Confiance

La clé est ajoutée mais je n'ai pas indiqué quelle confiance je lui fait, c'est-à-dire quelle confiance je fait à la signature de personne ou à l'organisation qui l'a émise. Comme dans les relations sociales, à quoi sert de savoir que la signature d'une personnes est authentique si on ne lui fait pas confiance ? Je décide d'accorder ma confiance à l’émettrice de cette clé. Pour ce faire, j'utilise la commande “trust” de gpg.

$ gpg --edit-key F-Droid
gpg> trust
     [la commande affiche les options et me permet de choisir]
gpg> quit

Vérifier la signature de l'application F-Droid

Après téléchargement du fichier de l'application F-Droid et du fichier de signature, je peux procéder à la vérification :

$ gpg --verify F-Droid.apk.asc F-Droid.apk

Tant que j'y suis, j'en fait autant pour l'application “F-Droid Privileged Extension OTA”.

$ gpg --verify org.fdroid.fdroid.privileged.ota_2130.zip.asc org.fdroid.fdroid.privileged.ota_2130.zip

En savoir plus

phone/f-droid-verification.txt · Dernière modification : 2023/07/24 10:29 de 127.0.0.1