Le problème
Vous avez peut-être entendu parler de la découverte récente d'une grave faille dans l'implémentation de SSL par Apple. Apple n'a pas donné beaucoup de détails, mais des chercheurs en sécurité connaissant bien le problème ont déclaré que la faille peut ouvrir la possibilité d'une attaque de type "man-in-the-middle" (MITM). Cela signifie que les systèmes non corrigés sont susceptibles de divulguer des mots de passe, des numéros de carte de crédit ou d'autres informations sensibles sans que l'utilisateur ne se rende compte que sa connexion n'est pas sécurisée. À l'heure où nous écrivons ces lignes, un correctif est disponible pour iOS 7, mais pas pour les machines Mac OS X.
Les attaques de type "man-in-the-middle" sur SSL ne sont pas du tout nouvelles ; en fait, j'ai fait une présentation il y a neuf ans, lors de la conférence RSA 2005, sur une attaque de type "man-in-the-middle" basée sur des logiciels malveillants que l'un de nos clients avait découverte, sur notre analyse du fonctionnement de cette attaque et sur ce qui pouvait être fait pour l'empêcher.
A Fix
D'après le peu d'informations fournies jusqu'à présent, il semble que les utilisateurs d'iOS et de Mac ne puissent pas faire grand-chose tant qu'un correctif n'a pas été publié et installé. Mais les organisations peuvent-elles s'assurer que les utilisateurs qui communiquent avec elles ne sont pas victimes d'un MITM ? Dans de nombreux cas, la réponse peut être "oui", avec l'aide de certificats SSL côté client.
Pour comprendre comment cela fonctionne, voyons d'abord comment fonctionne une attaque de type "man-in-the-middle". La plupart du temps, SSL est utilisé et ne nécessite qu'un certificat sur le serveur, comme indiqué ci-dessous :
Pour réussir, l'homme du milieu doit être en mesure de convaincre le client qu'il parle directement au point de terminaison prévu. Cela est censé être impossible si SSL est mis en œuvre correctement (ce qui semble avoir été le problème d'Apple) et si les ancres de confiance appropriées sont maintenues (ce qui est parfois plus facile à dire qu'à faire). Si l'un ou l'autre de ces éléments n'est pas respecté, les attaques de type "man-in-the-middle" deviennent possibles.
Mais dans le cas d'une SSL mutuelle ou côté client, le serveur exige que le client fournisse également un certificat d'authentification. Dans ce cas, le serveur obtient un niveau d'assurance qu'il parle directement au client :
La tâche des attaquants devient alors au moins deux fois plus difficile, puisqu'ils doivent convaincre les deux de la connexion qu'ils communiquent directement l'un avec l'autre, plutôt qu'avec un seul.
Il est évident que ce problème spécifique à Apple iOS et Mac OS X finira par être corrigé et disparaître. Mais il est presque certain qu'il pas pas le dernière Mais ce ne sera certainement pas la dernière fois que nous entendrons parler d'une éventuelle attaque de type "man-in-the-middle", et les certificats côté client peuvent aider à se défendre contre les attaques MITM la prochaine fois qu'elles se produiront. Il est intéressant de noter, par exemple, que la demande d'un certificat client par le serveur empêche l'attaque, même si la machine du client n'est pas encore corrigée et qu'elle est susceptible de l'être.
Protection des clés privées
Avec n'importe quelle mise en œuvre de certificat numérique, tout tourne autour des clés privées ; si notre homme au milieu du diagramme ci-dessus accède à la clé privée du client, il est de retour dans les affaires. Une protection diligente des clés privées devient donc primordiale ; des technologies telles que la génération de clés sur l'appareil (ODKG) peuvent aider, car elles limitent les endroits où les clés privées peuvent être capturées ou exposées. Chaque fois que les clés sont générées en dehors de l'appareil, ce qui arrive fréquemment dans les scénarios mobiles ou BYOD, elles sont susceptibles d'être compromises partout où elles sont créées, transmises, stockées ou archivées. C'est pourquoi CSS insiste tant sur l'activation de l'ODKG dans des scénarios où il est difficile de le faire, y compris pour les appareils iOS et Mac.