9 points par xguru 2020-11-16 | 4 commentaires | Partager sur WhatsApp
  • Analyse technique de l’OCSP qui a fait polémique cette fois-ci

→ Lors du lancement d’une application, le Mac contacte les serveurs d’Apple pour vérifier que le certificat développeur est valide

→ Si la connexion réseau est impossible, l’application se lance quand même

→ Si la connexion est possible mais que le serveur est lent, un problème peut survenir comme cette fois-ci, où toutes les applications non créées par Apple ne se lançaient plus

→ Certains affirment qu’à chaque lancement d’application, le hash de l’app est envoyé aux serveurs d’Apple [1]

→ Le problème, c’est que le protocole utilisé est HTTP et non HTTPS (car il faudrait sinon ouvrir une autre connexion pour vérifier le certificat HTTPS)

  • Regardons à l’intérieur

→ Avec un proxy HTTP intermédiaire ou simplement Wireshark, on peut tout capturer

→ Une fois la validation OCSP effectuée au premier lancement, elle n’est plus refaite pendant un certain temps

→ Une chaîne de 80 octets encodée en base64 est envoyée en GET

→ Cette valeur ressemble au hash de l’application, mais ce n’en est « pas un »

→ En ouvrant ces données binaires avec OpenSSSL, on voit qu’elles contiennent bien le nom de l’émetteur du certificat, le hash de la clé et le numéro de série

→ Malgré tout, si le certificat est différent pour chaque application, on peut quand même se demander si cela ne revient pas au même qu’un hash de l’app

  • Certificat développeur

→ D’où viennent exactement ces informations de certificat ?

→ Extraction du certificat d’une app Mac avec codesign (ici, Firefox)

→ Le numéro de série correspond à celui capturé plus haut

→ En extrayant ensuite le certificat de Thunderbird, on constate que le numéro de série est à nouveau identique (ce qui est logique)

→ Autrement dit, contrairement à ce qui est dit dans [1], il est faux d’affirmer qu’un hash permettant d’identifier toutes les applications est envoyé

→ En revanche, il est bien vrai qu’Apple peut savoir que, sur telle machine et à tel moment, une application d’« un certain développeur » a été lancée

  • À propos du blocage d’OCSP

→ Il est possible de le bloquer avec Little Snitch ou via /etc/hosts

→ Mais comme cela désactive une fonction de sécurité importante, il est recommandé de ne pas le faire

  • TL;DR

→ macOS n’envoie pas à Apple le hash d’une application à chaque lancement

→ macOS envoie les informations du certificat développeur des applications que vous utilisez, et cela est transmis en HTTP

→ Dans la mesure du possible, ne bloquez pas l’accès à ocsp.apple.com.

4 commentaires

 
kunggom 2020-11-16

À titre de référence, selon la Wikipédia anglophone, Google Chrome a déjà désactivé l’OCSP depuis 2012. La raison invoquée est qu’« il est difficile d’y trouver un bénéfice, tandis que le coût (latence et problèmes de confidentialité) est bien réel ».

https://www.imperialviolet.org/2012/02/05/crlsets.html

 
galadbran 2020-11-16

L’OCSP est à l’origine une méthode également utilisée par les navigateurs web pour vérifier, entre autres, l’expiration des certificats SSL. On peut donc supposer que c’est lié au fait que l’authentification des apps se fait de la même manière que pour les certificats SSL.

 
godrm 2020-11-16

Je suppose que c’est peut-être pour collecter des informations App Analytics sur les applications Mac, comme sur iOS.

 
xguru 2020-11-16

Sujets connexes à lire

[1] Votre ordinateur ne vous appartient pas vraiment https://fr.news.hada.io/topic?id=3200

[2] macOS Catalina (10.15) : ralenti par le design https://fr.news.hada.io/topic?id=2145