Fichiers P12 et Mobileprovision expliqués : certificats de signature iPhone
Les outils de signature sur l’appareil comme Feather et KSign demandent deux fichiers avant de pouvoir installer quoi que ce soit : un certificat .p12 et un profil .mobileprovision. Beaucoup de personnes obtiennent ces fichiers auprès de quelqu’un d’autre sans savoir ce qu’ils contiennent ni ce qui peut mal tourner. Ce guide explique les deux fichiers, comment les vérifier, et les risques, en s’appuyant sur la documentation officielle d’Apple.
Les risques en premier
- Un fichier .p12 contient une clé privée. Quiconque possède le fichier et son mot de passe peut signer des applications en se faisant passer pour ce développeur. Ne le publiez jamais et ne l’envoyez jamais à des personnes en qui vous n’avez pas confiance.
- Apple peut révoquer n’importe quel certificat. La documentation d’Apple indique qu’elle « peut révoquer des certificats numériques à tout moment, à sa seule discrétion ». Lorsque cela arrive, les applications signées avec ce certificat cessent de fonctionner.
- Les certificats partagés et achetés sont révoqués le plus souvent. Un certificat utilisé par de nombreux inconnus pour une distribution publique sort du cadre pour lequel il a été délivré. Vous ne pouvez pas contrôler quand il sera révoqué, et l’argent payé pour l’obtenir n’est généralement pas remboursé. Voir la sécurité des certificats entreprise.
- Le certificat ne vérifie pas l’application. La signature indique qui a signé une application, pas si elle est sûre. Vérifiez vous-même les fichiers IPA : voir comment scanner les fichiers IPA à la recherche de malwares.
Qu’est-ce qu’un fichier .p12
Un certificat de signature pris seul est public. Ce qui permet réellement de signer des applications, c’est le certificat associé à sa clé privée, créée sur le Mac du développeur. Le guide Keychain Access d’Apple décrit le format .p12 (Personal Information Exchange) comme un fichier qui « peut être importé comme sauvegarde de votre certificat numérique et de votre clé privée ». Lors de l’exportation, Keychain Access demande un mot de passe, et ce mot de passe est nécessaire pour le réimporter. C’est pourquoi les outils de signature demandent un fichier .p12 et un mot de passe.
Apple délivre différents types de certificats. Pour installer des applications sur iPhone en dehors de l’App Store, ceux que vous rencontrerez sont les certificats de développement, les certificats de distribution issus d’un abonnement payant à l’Apple Developer Program, et les certificats de distribution interne (in-house) issus de l’Apple Developer Enterprise Program.
Qu’est-ce qu’un fichier .mobileprovision
Un profil de provisioning est un fichier signé par Apple qui indique quelles applications peuvent s’exécuter, signées par qui, sur quels appareils et avec quelles autorisations. La note technique TN3125 d’Apple détaille ce qu’il contient :
- DeveloperCertificates : les certificats autorisés à signer les applications couvertes par le profil. Votre .p12 doit correspondre à l’un d’entre eux.
- App ID : la plupart des profils s’appliquent à un seul App ID. Un App ID générique (wildcard) peut couvrir plusieurs applications.
- Devices : la plupart des profils listent des appareils précis par UDID (ProvisionedDevices). Les profils In-House (Enterprise) utilisent plutôt ProvisionsAllDevices, ce qui leur permet de fonctionner sur n’importe quel appareil. Consultez comment trouver l’UDID de votre iPhone.
- ExpirationDate : chaque profil en possède une. Passé cette date, le profil n’est plus valide.
- Entitlements : une liste d’autorisations telles que les notifications push ou les app groups. Apple précise que chaque entitlement revendiqué par une application doit figurer dans la liste autorisée du profil.
Apple explique également que l’appareil vérifie d’abord la signature du profil, puis contrôle que l’application répond aux critères du profil. Si le certificat de signature de l’application, l’App ID, l’appareil ou les entitlements ne correspondent pas, iOS refusera de l’exécuter.
Comment vérifier les fichiers vous-même
- Depuis un signeur : Feather liste parmi ses fonctionnalités des « informations détaillées sur les applications et vos certificats », vous pouvez donc, après l’import, y consulter le nom, le type et la date d’expiration.
- Sur un Mac : la note TN3125 d’Apple montre comment décoder un profil dans le Terminal avec
security cms -D -i profile.mobileprovision. Le résultat affiche l’ExpirationDate, la liste des appareils ou ProvisionsAllDevices, ainsi que les entitlements. - Vérifiez la correspondance de la paire : le certificat contenu dans le .p12 doit être l’un des DeveloperCertificates du profil. Une incompatibilité est une cause fréquente d’erreur signalée par un signeur avant l’installation.
Problèmes courants avec les fichiers de certificat
- Mauvais mot de passe : le .p12 ne s’importe pas. Seule la personne qui l’a exporté connaît le mot de passe.
- Profil expiré : les applications signées avec lui cessent de s’ouvrir après la date d’expiration. Il vous faut un nouveau profil, puis re-signer les applications. Voir comment re-signer des fichiers IPA.
- Appareil absent du profil : pour les profils de développement et ad hoc, votre UDID doit être répertorié. Sinon l’installation échoue, souvent avec le message « integrity could not be verified » : voir les solutions à l’erreur d’intégrité.
- Certificat révoqué : toutes les applications signées avec lui s’arrêtent immédiatement, et aucun réglage sur l’iPhone n’y change rien. Voir que faire après une révocation.
- Entitlement manquant : une application qui nécessite une capacité non autorisée par le profil peut s’installer mais échouer sur cette fonctionnalité, ou ne pas s’installer du tout.
La place de Scarlet iOS
Scarlet ne vous demande pas de .p12 ni de profil. Il signe avec un certificat partagé plutôt qu’avec votre Apple ID, ce qui explique à la fois la simplicité de l’installation et le fait que toutes les applications installées via cet outil cessent de s’ouvrir dès qu’Apple révoque ce certificat. Scarlet est confirmé fonctionnel de iOS 14 à iOS 26 ; la prise en charge d’iOS 27 est signalée par des tiers mais non confirmée officiellement. Si vous disposez de votre propre certificat issu de l’Apple Developer Program, un signataire comme Feather ou KSign l’utilise directement. Pour les compromis entre ces approches, voir signature sur l’appareil contre signature sur ordinateur.
FAQ
Puis-je créer un .p12 et un profil avec un Apple ID gratuit ?
Un Apple ID gratuit vous donne un certificat d’équipe personnelle que des outils comme Xcode, Sideloadly et SideStore gèrent pour vous. Les profils qui en sont issus durent 7 jours. Les signataires conçus pour les fichiers .p12 sont principalement destinés aux certificats de développeur payants.
Est-il prudent d’utiliser un certificat partagé en ligne par quelqu’un d’autre ?
Cela fonctionne jusqu’à ce qu’il soit révoqué, ce qui peut arriver à tout moment et sans préavis. Vous ne pouvez pas non plus savoir qui d’autre détient la clé privée. Considérez-le comme temporaire et ne signez jamais quelque chose de sensible avec.
Un nouveau profil corrige-t-il un certificat révoqué ?
Non. Un profil désigne les certificats qu’il autorise. Si le certificat est révoqué, il vous faut un certificat différent ainsi qu’un profil qui l’inclut.