XCBLOG
On octobre 31, 2021 by adminTutoriels sur la signature de code iOS
C’est la première partie de la série de tutoriels sur la signature de code iOS. Cette série couvre les principes fondamentaux du processus de signature de code iOS. Vous pouvez trouver tous les posts de la série liés ci-dessous
- signature de code iOS : 1. Démarrage
- signature de code iOS : 2. Demandes de signature de certificat
- signature de code iOS : 3. Certificats
- signature de code iOS : 4. Profils de provisionnement
- signature de code iOS : 5. Signature de l’application iOS
*******************************************************
Vraiment, les appareils iOS n’exécutent que les applications signées par des développeurs de confiance, à moins que vous n’ayez jailbreaké des appareils iOS. Si vous êtes un ingénieur iOS, vous devez avoir lutté avec la signature de code à un moment donné. La signature de code est l’une des tâches les plus pénibles et les plus lourdes pour les développeurs iOS, mais ils ne peuvent pas se soustraire aux activités de signature de code. La signature de code et les profils de provisionnement ont été un ennui permanent et continueront à l’être jusqu’à ce que les développeurs comprennent complètement les bases de la signature de code. Ceci est un post d’introduction expliquant le processus de signature de code avec ses avantages et ses limites.
A propos de cette série
La signature de code des applications iOS est l’un des sujets brûlants pour chaque développeur iOS. Bien qu’il y ait de multiples ressources disponibles en ligne ainsi que Apple a une documentation propre sur le processus de signature de code, c’est toujours un mystère. Dans cette série, nous allons essayer de comprendre le processus de signature de code à partir de zéro, y compris ce qui est nécessaire à la signature de code au processus de signature de code lui-même. Nous explorerons également l’interface graphique ainsi que la ligne de commande pour faire les choses, le cas échéant. Nous commencerons par les demandes de signature de certificats pour obtenir un certificat de développement iOS, puis nous couvrirons le certificat et ses parties internes. Après avoir compris les certificats, nous ferons une plongée profonde dans les profils de provisionnement et enfin, nous comprendrons le processus de signature de code.
Cette série est écrite dans mes propres mots ou langage en faisant quelques recherches sur le web et la documentation d’Apple. J’ai couvert tous ces matériaux de référence dans le post final. J’ai également joint quelques captures d’écran du portail Apple Developer et de Xcode afin que les lecteurs puissent comprendre les concepts. J’ai essayé de cacher tout le contenu sensible mais s’il y a quelque chose d’exposé par erreur, s’il vous plaît ne me piratez pas 🙂
Code Signing
Avant de sauter dans la façon dont Apple signe le code des applications iOS, explorons ce qu’est la signature de code en général. Dans la vie réelle, nous signons différents contrats, des accords pour diverses choses. Pourquoi signons-nous ces contrats ? Que signifie la signature pour nous et pourquoi est-elle importante ? C’est simple, car la signature de contrats nous protège juridiquement et nous avons confiance dans le fait que les termes et conditions du contrat ne peuvent être modifiés tant qu’il est en vigueur. La signature garantit également que le contrat provient d’autorités de confiance et non d’escrocs. Cela signifie que la signature des contrats nous donne la sécurité, la sûreté et la confiance.
De même, la signature du code est le processus de signature numérique de toute forme du code pour confirmer qui a écrit le code et garantir que le code n’a pas été modifié ou corrompu au moment où il a été signé. La signature du code utilise un hachage cryptographique pour vérifier l’authenticité et l’intégrité du code logiciel. Dans le monde du logiciel, la signature de code garantit l’identité de l’auteur, l’intégrité du code, le système de construction et la gestion des versions afin que les utilisateurs du logiciel se sentent en sécurité lorsqu’ils l’utilisent. La signature de code utilise divers termes de sécurité comme une clé publique, une clé privée, des certificats, des signatures numériques, etc. Il existe différentes approches de la signature de code utilisées sur les différentes plates-formes, par exemple Linux, Windows, macOS.
Signature de code iOS
Apple a soi-disant un mécanisme de sécurité très puissant en dehors de quelques pépins récents que vous avez pu lire dans les nouvelles. Il est très difficile pour les pirates informatiques de casser ce mécanisme. Apple utilise également un mécanisme de signature de code fort pour assurer la sécurité, l’intégrité et la sûreté des applications iOS téléchargées depuis l’App Store d’Apple. La plupart du temps, la signature de code iOS semble être une magie qui se produit sous le capot. Si cela fonctionne, tout le monde est content et si cela ne fonctionne pas, tout le monde panique. La plupart des ingénieurs iOS n’ont aucune idée de ce qui se passe sous le capot lorsque les applications qu’ils ont écrites sont signées. Ces derniers jours, Apple a essayé de rendre la signature de code moins pénible en introduisant la fonction de signature automatique dans Xcode afin que l’activité de signature de code n’interrompe pas le flux de développement principal. La signature de code sur la plateforme Apple repose sur la cryptographie à clé publique de la norme X.509. Nous discuterons de tous ces outils et techniques plus tard dans cette série.
Pourquoi apprendre sur la signature de code iOS
Comme la plupart des tâches de signature de code sont traitées par Xcode ces jours-ci, alors pourquoi nous devrions nous soucier de la signature de code et pourquoi nous devrions investir notre temps pour l’apprendre ?
Voici quelques-unes des raisons d’apprendre les internes de la signature de code :
- L’époque où les ingénieurs iOS déployaient des applications iOS à partir de Xcode installé sur la machine locale est révolue. Les entreprises adoptent DevOps et CI/CD pour déployer les logiciels dès qu’ils sont construits, donc toutes les constructions doivent être automatisées sans aucune interaction humaine ou GUI.
- Il y a des milliers d’heures de développeur gaspillées parce que la signature de code de Xcode a échoué et le développeur essaie de résoudre les problèmes de signature de code en régénérant et en réparant les certificats et les profils de provisionnement.
- Les outils tiers comme Fastlane a rendu le script de construction beaucoup plus facile pour les développeurs iOS. Cependant, lorsque Fastlane a apporté des changements dans les technologies sous-jacentes, Fastlane continue de se casser et le développeur passe des heures, des jours et des semaines à réparer les scripts de déploiement cassés. Dans certains cas, les ingénieurs doivent attendre que de nouveaux changements soient mis en œuvre dans le Fastlane.
- Si vous êtes développeur/ingénieur iOS et que vous voulez être un ingénieur iOS toute votre vie, alors vous n’avez pas à apprendre ces choses. Cependant, si vous voulez progresser dans votre carrière, vous devez connaître les outils sous-jacents, les technologies et l’ensemble de l’écosystème iOS en détail. Vous ne parviendrez pas à devenir iOS Tech Lead ou iOS Tech Architect ou à des postes similaires si vous ne connaissez pas ces technologies sous-jacentes, quel que soit votre niveau de compétences en développement iOS. En tant qu’architecte technique, vous devriez être en mesure de résoudre les problèmes liés à la signature de code ou à des infrastructures similaires rapidement et sans dépendre de Xcode ou d’autres outils tiers.
J’espère que cela suffit à convaincre de l’importance de la signature de code. C’est à vous de l’apprendre ou de le laisser.
Préalable
Permettons-nous de plonger dans le monde de la signature de code iOS. Nous allons couvrir tout à partir de zéro en termes de ce qui est nécessaire et ce qu’il fait sous le capot. Afin de commencer, nous avons besoin des choses suivantes qui, je crois, tout le monde a déjà si vous lisez ce post.
- macOS
- Apple Developer Membership
- Xcode 9+
Une fois que vous avez tout cela, vous êtes prêt à creuser dans le truc de la signature de code iOS.
Avantages de la signature de code
Apple veut que nous passions par le processus complexe de signature de code parce qu’il présente certains avantages pour les utilisateurs réels. Les utilisateurs d’applications iOS se sentent en sécurité lorsqu’ils téléchargent les applications de l’Apple app store. La signature du code garantit que
- Le développeur légitime a écrit ce code et il a une identité du signataire ou de l’auteur des apps.
- La signature du code garantit que le code n’a pas été modifié par quelqu’un depuis qu’il a été écrit par l’auteur. Elle garantit que le code produit par l’auteur est original et qu’il n’y a rien d’injecté dans le code depuis sa signature par l’auteur.
- Les utilisateurs peuvent télécharger les apps des développeurs en qui ils ont confiance sans trop se soucier de la sécurité.
La signature de code est pour la sécurité des utilisateurs d’iOS afin qu’ils se sentent en sécurité en utilisant les apps qu’ils ont téléchargées à partir de l’app store.
Limitations de la signature de code
Bien que la signature de code soit pour la sécurité des utilisateurs, il y a certains aspects qui ne répondent pas aux problèmes de sécurité tout le temps.
- La signature de code garantit que le code provient d’un développeur légitime qui est le membre du programme Apple Developer mais ne garantit pas que le code lui-même est exempt de vulnérabilités de sécurité.
- La signature de code ne garantit pas que les plugins d’apps qui se chargent dynamiquement pendant l’exécution des apps sont sécurisés.
- Il n’y a pas de gestion des droits numériques ou de technologie de protection contre la copie pour le code signé.
Maintenant que, nous avons couvert l’importance d’apprendre sur la signature de code et les avantages et la limitation. Dans le prochain post, nous allons passer par le concept important où le processus de signature de code commence i.e Certificate Signing Requests.
Continuez à lire la partie 2- : Les demandes de signature de certificat
Laisser un commentaire