🗝️Clé de signature du noyau

La signature du noyau Android est un mécanisme de sécurité qui assure que le noyau d'un appareil Android n'a pas été modifié ou altéré. Le noyau est une partie essentielle du système d'exploitation Android, responsable de la gestion des ressources matérielles de l'appareil, de la sécurité et de la stabilité globale du système.

La signature du noyau est basée sur un algorithme de hachage cryptographique qui est utilisé pour générer une empreinte numérique unique du noyau. Cette empreinte numérique est ensuite signée avec une clé privée, créant ainsi une signature numérique.

Lorsque le système d'exploitation Android démarre, il vérifie la signature du noyau pour s'assurer que le noyau n'a pas été altéré. Si la signature n'est pas valide, le système ne démarre pas et affiche un avertissement à l'utilisateur.

La signature du noyau est une mesure de sécurité importante qui empêche les logiciels malveillants de modifier le noyau pour accéder aux données ou prendre le contrôle de l'appareil. Cependant, les utilisateurs avancés qui ont rooté leur appareil peuvent momentanément désactiver cette verification pour remplacer le noyau système. En vérifiant l'intégrité du noyau de l'appareil, une application a ainsi la possibilité de différencier un appareil rooté d'un appareil non rooté.

Il exite deux types de clés, les Release-Keys et les Test-Keys ont à voir avec la façon dont le noyau est signé lorsqu'il est compilé. Release-Keys signifie qu'il a été signé avec une clé officielle d'un développeur officiel. Test-Keys signifie qu'il a été signé avec une clé personnalisée générée par un développeur tiers. Ainsi, lorsque vous trouvez des clés de test sur le noyau, cela signifie que l'appareil est rooté. On peut retrouver le type de clé utilisée dans un fichier stocké dans le répertoire /system/build.prop.

Cette vérification fait appel à la fonction Android.os.Build.TAGS.

Contournement

Contourner cette vérification est simple. il s'agit simplement de retrouver la fonction permettant de matcher la vérification de la chaîne de caratère "test-keys" dans le code smali.

Puis de retrouver ce bout de code dans les fichiers smali (afin de se facilité la vie, vous pouvez utiliser la commande grep pour retrouver la chaîne de caractère précise).

Il suffit ensuite d'édité le fichier .smali se chargeant de l'activité permettant de faire la validation de la clé en remplaçant la chaîne de caractères "test-keys" par "release-keys".

La dernière étape est alors ensuite de recompilier et auto-signer l'application comme présenté dans la section reverse engineering.

Dernière mise à jour