Apple suit-il chaque application Mac que vous exécutez? OCSP expliqué



Votre ordinateur Mac communique-t-il réellement avec Apple à chaque lancement d’application ? Cette interrogation a émergé suite à un incident survenu le 12 octobre 2020, où un serveur Apple a connu des ralentissements, provoquant des temps de chargement anormalement longs pour les applications sur les Mac récents. Nous allons examiner les mécanismes impliqués dans ce processus.

Note importante : ce problème concerne aussi bien macOS Big Sur que macOS Catalina. Les ralentissements et les préoccupations relatives à la confidentialité ne sont pas une nouveauté propre à macOS Big Sur.

La signature des applications Mac avec des certificats de développeur : pourquoi ?

Sur un Mac, toutes les applications que vous téléchargez, qu’elles proviennent du Mac App Store ou d’autres sources sur le web, sont munies d’un certificat de développeur. À chaque ouverture d’une application, le système vérifie l’authenticité de cette signature pour s’assurer qu’elle émane d’un développeur légitime et qu’elle n’a pas été modifiée. Cette procédure constitue une protection contre les logiciels malveillants.

Prenons l’exemple de Mozilla : lors de la création de Firefox, l’éditeur compile le fichier d’application et le signe avec son propre certificat de développeur. C’est ainsi que Mozilla authentifie le fichier et prouve qu’il en est l’auteur. Si le fichier de l’application était altéré par la suite, votre Mac détecterait cette modification.

Ces certificats ont une durée de validité limitée, souvent de quelques années, et peuvent être « révoqués » avant leur expiration. Par exemple, si Apple découvre qu’un développeur utilise son certificat pour diffuser des logiciels malveillants, Apple révoque le certificat. Les Mac refuseront alors de charger les applications signées avec ce certificat révoqué.

Explication du protocole OCSP : pourquoi votre Mac « téléphone-t-il » à Apple ?

Comment votre Mac est-il informé de la révocation d’un certificat associé à une application installée ? Pour le vérifier, votre Mac utilise le protocole OCSP (Online Certificate Status Protocol), également employé par les navigateurs web pour vérifier la validité des certificats de sites web.

Lorsque vous lancez une application, votre Mac envoie des informations concernant son certificat à un serveur Apple hébergé sur ocsp.apple.com. Votre Mac interroge ce serveur pour savoir si le certificat a été révoqué. Si ce n’est pas le cas, votre Mac lance l’application. Si le certificat a été révoqué, l’application ne sera pas lancée.

Cette vérification a-t-elle lieu à chaque lancement d’application ?

Votre Mac conserve en mémoire ces réponses pendant un certain temps. Initialement, le 12 novembre 2020, les réponses étaient mises en cache pendant cinq minutes. Cela signifie que si vous lancez une application, la fermez puis la relancez quatre minutes plus tard, votre Mac n’avait pas besoin de réinterroger Apple sur le certificat. Cependant, si vous relanciez l’application six minutes plus tard, une nouvelle vérification auprès des serveurs d’Apple était nécessaire.

Le 12 novembre 2020, pour des raisons encore incertaines – peut-être liées à des modifications dans macOS Big Sur – le serveur d’Apple a été saturé et a connu d’importants ralentissements. Les temps de réponse se sont allongés, et les applications mettaient beaucoup plus de temps à se charger car les Mac devaient patienter pour obtenir une réponse du serveur d’Apple.

Depuis cet incident, le serveur OSCP d’Apple indique aux Mac de conserver en mémoire la validité des certificats pendant 12 heures. Désormais, votre Mac contacte le serveur d’Apple pour obtenir une vérification de certificat à chaque lancement d’application, sauf si une réponse a été reçue au cours des 12 dernières heures. Dans ce cas, aucune nouvelle vérification n’est nécessaire. (Ces informations sur les délais sont issues du développeur indépendant d’applications Jeff Johnson.)

Que se passe-t-il si un Mac est hors ligne ?

La vérification OCSP est conçue pour gérer les erreurs de manière transparente. Si votre Mac est hors ligne, la vérification sera ignorée et les applications seront lancées normalement.

Le même comportement est observé si votre Mac ne parvient pas à joindre le serveur ocsp.apple.com, par exemple, si l’adresse du serveur a été bloquée au niveau du routeur. En l’absence de contact avec le serveur, la vérification est ignorée et l’application est lancée immédiatement.

Le problème du 12 novembre 2020 était que les Mac parvenaient à joindre le serveur d’Apple, mais que ce dernier était lent. Au lieu de contourner silencieusement la vérification et de lancer l’application, les Mac restaient bloqués à attendre une réponse. Si le serveur avait été complètement hors service, la situation serait passée inaperçue.

Quels sont les risques en matière de confidentialité ? Quelles informations Apple collecte-t-elle ?

Plusieurs préoccupations concernant la protection de la vie privée ont été soulevées. Le chercheur en sécurité informatique Jeffrey Paul a notamment exprimé son point de vue sur la question.

Les certificats sont liés aux applications : lorsque votre Mac contacte le serveur OCSP, il demande des informations sur un certificat généralement associé à une application ou un ensemble d’applications. D’un point de vue technique, votre Mac ne communique pas à Apple l’identité précise de l’application que vous avez lancée. Par exemple, si vous lancez Firefox, Apple apprend simplement que vous avez lancé une application développée par Mozilla. Il peut s’agir de Firefox ou de Thunderbird, mais Apple ne connaît pas l’application précise. Cependant, si vous lancez une application signée par le projet Tor, Apple peut déduire que vous avez ouvert le navigateur Tor.
Les requêtes sont liées à des adresses IP et à des heures : ces requêtes sont évidemment associées à une date, une heure et votre adresse IP. C’est le fonctionnement standard d’internet. Votre adresse IP est liée à une région géographique précise (ville et département). Chaque requête OCSP révèle à Apple l’identité du développeur de l’application lancée, votre localisation approximative, ainsi que la date et l’heure du lancement.

L’absence de chiffrement rend la surveillance possible : le protocole OCSP n’est pas chiffré. Cela signifie que non seulement Apple reçoit ces informations, mais également toute personne interceptant la communication. Votre fournisseur d’accès internet, l’administrateur réseau de votre lieu de travail, ou même un service d’espionnage surveillant le trafic internet pourraient espionner le trafic OSCP entre vous et Apple et obtenir tous ces détails. Ces requêtes passent également par un réseau de diffusion de contenu (CDN) tiers Akamai, ce qui accélère le processus mais ajoute un intermédiaire susceptible d’espionner les données.

Note : votre Mac n’indique pas à Apple l’identité de l’application que vous lancez, mais simplement celle du développeur de l’application. Bien entendu, de nombreux développeurs ne créent qu’une seule application, et cette distinction technique a souvent peu de conséquence concrète.

(Il est important de noter qu’avec la modification du comportement de mise en cache, votre Mac n’interroge plus Apple à chaque lancement d’application, mais seulement toutes les 12 heures au lieu de toutes les 5 minutes.)

Pourquoi mon Mac procède-t-il à ces vérifications ?

Comme vous pouvez l’imaginer, il s’agit avant tout de sécurité. Le Mac est une plateforme plus ouverte que l’iPad ou l’iPhone, car vous avez la possibilité de télécharger des applications depuis n’importe quelle source, y compris en dehors du Mac App Store d’Apple.

Pour protéger les Mac contre les logiciels malveillants – car il est vrai que les menaces sur Mac sont de plus en plus fréquentes – Apple a mis en place ce contrôle de sécurité. Si un certificat utilisé pour signer une application est révoqué, votre Mac peut réagir immédiatement et refuser de lancer l’application concernée. Cela permet à Apple d’empêcher le lancement d’applications malveillantes connues.

Peut-on bloquer les vérifications OCSP ?

Ces vérifications OCSP sont conçues pour échouer rapidement et discrètement lorsqu’un Mac est hors ligne ou ne parvient pas à joindre le serveur ocsp.apple.com.

Il est donc relativement simple de les bloquer : il suffit d’empêcher votre Mac de se connecter à ocsp.apple.com. Par exemple, vous pouvez généralement bloquer cette adresse au niveau de votre routeur, interdisant ainsi la connexion à tous les appareils de votre réseau.

Malheureusement, il semble que Big Sur ne permette plus aux pare-feu logiciels installés sur le Mac d’empêcher le processus trustd intégré du Mac d’accéder à des serveurs distants comme celui-ci.

Mise en garde : si vous bloquez le serveur ocsp.apple.com, votre Mac ne sera pas informé de la révocation d’un certificat de développeur. Vous désactivez volontairement une fonction de sécurité, ce qui peut compromettre la sécurité de votre Mac.

Quelles sont les réactions d’Apple et quelles sont les améliorations promises ?

Apple semble avoir pris en compte les critiques. Le 16 novembre 2020, l’entreprise a ajouté des informations sur les « protections de la confidentialité » pour Gatekeeper sur son site web.

Premièrement, Apple affirme n’avoir jamais combiné les données issues des vérifications de certificats ou de logiciels malveillants avec d’autres données personnelles. L’entreprise promet de ne pas utiliser ces informations pour suivre les applications que les utilisateurs lancent sur leur Mac.

Deuxièmement, Apple assure que ces vérifications de certificats ne sont pas liées à votre identifiant Apple ou à des informations spécifiques à votre appareil, hormis votre adresse IP. Apple affirme avoir cessé d’enregistrer les adresses IP associées à ces requêtes et supprimera celles présentes dans ses journaux.

Dans le courant de l’année prochaine – c’est-à-dire avant fin 2021 – Apple a annoncé qu’elle mettra en œuvre les changements suivants :

Remplacement d’OCSP par un protocole chiffré : Apple a annoncé la création d’un nouveau protocole chiffré pour remplacer le système OCSP actuel non chiffré. Ce nouveau protocole permettra d’empêcher toute interception des données.
Correction des problèmes de ralentissement : Apple promet également de mettre en place des « protections robustes contre les pannes de serveur », ce qui signifie que le chargement des applications ne sera plus affecté par la lenteur des serveurs.
Choix offert aux utilisateurs : Apple a déclaré que les utilisateurs de Mac auront la possibilité de désactiver ces mesures de sécurité et d’empêcher leur Mac de vérifier les certificats de développeur révoqués.

Globalement, ces changements devraient régler divers problèmes : les interceptions de données par des tiers seront impossibles. Les Mac continueront à transmettre à Apple des informations pouvant être utilisées pour suivre les applications lancées, mais Apple promet de ne pas les associer à votre identité. Les ralentissements devraient également être éliminés, car Apple s’engage également à corriger le problème de performances.

Quelle sera la nature de ce nouveau protocole ? Apple n’a pas encore communiqué sur le protocole qui remplacera OCSP. Comme le souligne le chercheur en sécurité Scott Helme, une solution comme CRLite pourrait s’avérer pertinente. Imaginez que votre Mac puisse télécharger un simple fichier mis à jour régulièrement, contenant une liste compressée de toutes les révocations de certificats. À chaque lancement d’application, votre Mac pourrait vérifier ce fichier, éliminant ainsi les requêtes réseau et les problèmes de confidentialité.

Votre Mac envoie parfois des hachages d’applications à Apple

Par ailleurs, il est utile de noter que votre Mac envoie parfois des hachages des applications que vous ouvrez aux serveurs d’Apple. Cette procédure est distincte des contrôles de signature OCSP et est liée à la notarisation Gatekeeper.

Les développeurs peuvent soumettre leurs applications à Apple, qui les vérifie à la recherche de logiciels malveillants et les « certifie » si elles sont jugées sûres. Ces informations de ticket de notarisation peuvent être « agrafées » à l’application. Si un développeur n’agrafe pas les informations du ticket au fichier d’application, votre Mac vérifiera auprès des serveurs d’Apple lors du premier lancement de cette application.

Cette vérification n’a lieu qu’une seule fois lors du premier lancement d’une version donnée d’une application et non à chaque lancement. De plus, la vérification en ligne peut être éliminée par le développeur via l’agrafage.

Les Mac ne sont pas uniques dans cette pratique. Par exemple, les PC Windows 10 envoient souvent des données sur les applications téléchargées au service SmartScreen de Microsoft afin de détecter d’éventuels logiciels malveillants. Les programmes antivirus et autres applications de sécurité peuvent également télécharger des informations sur des applications suspectes à l’entreprise de sécurité concernée.