Fermer le menu
 

SSL : une faille majeure dans iOS et OS X

Christophe Laporte | | 22:45 |  113

La faille de sécurité relative à la vérification de la connexion SSL est sans doute l’une des plus graves dans l’histoire d’Apple. Avant d’entrer dans les détails, nous ne pouvons que vous encourager à faire de toute urgence la mise à jour de tous vos terminaux iOS. Au passage, elle n'est pas problématique pour le jailbreak.

La sortie des mises à jour de sécurité pour iOS 6.1.x et 7.0.x fait l’objet d’une belle polémique depuis hier. En proposant ce correctif, Apple a officialisé cette faille en quelque sorte et rendu publique son existence. Comment a-t-elle pu faire cela tout en laissant OS X dans le noir et dans une moindre mesure ses testeurs sous 7.1 ? Précisons d’emblée que celle-ci touche « seulement » les personnes sous Mavericks.

Pourquoi cette faille est dangereuse

Revenons-en à la faille : Transport Layer Security (TLS), et son prédécesseur Secure Sockets Layer (SSL) sont des protocoles permettant de sécuriser les échanges sur Internet. Le problème dans l’implémentation d’Apple, c’est que le système de vérification de l’authentification SSL est en proie à un gros bogue d’une étonnante maladresse (on reviendra sur ce point un peu plus tard).

Qu’est-ce que cela signifie concrètement ? Une personne malintentionnée peut exploiter ce bogue très simplement. Elle peut initier une connexion soi-disant sécurisée en disant « je suis Google.com, regarde mon certificat ». Normalement, grâce à un système de clé, le système qui initie la connexion est en mesure de vérifier l’authenticité de ce certificat. Malheureusement, le système de vérification n’étant pas du tout opérationnel, la personne malintentionnée peut sans la moindre difficulté se faire passer pour quelqu’un d’autre.

Cette faille peut être très facilement exploitée par exemple avec un hot-spot Wi-Fi. En se débrouillant bien, son propriétaire peut par exemple déchiffrer vos échanges de données. Ce n'est qu'un exemple (le plus parlant), mais les angles d'attaque sont très nombreux.

Une erreur de programmation à peine croyable

Ce qui est hallucinant dans cette affaire, c’est que cette faille est particulièrement grossière. Spécialiste de ce genre de questions, Adam Langley a publié le code fautif en question, celui-ci étant open source. Il est relatif à SecureTransport, l’implémentation d’Apple donc pour SSL et TLS.

static OSStatus

SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,

uint8_t *signature, UInt16 signatureLen)

OSStatus err;

...

if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)

goto fail;

if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)

goto fail;

goto fail;

if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)

goto fail;

...

fail:

SSLFreeBuffer(&signedHashes);

SSLFreeBuffer(&hashCtx);

return err;

}

Si vous développez un peu, même sans tout comprendre, vous comprendrez aisément le problème. Ces quelques lignes de code sont donc censées vérifier l’authenticité de la connexion SSL. Le problème se situe dans la vérification de la seconde condition if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)

Il y a, à la suite de cette condition, deux goto fail. Si le premier obéit à une condition, le second s’exécute directement. Résultat, tout programme faisant appel à cette routine, pour vérifier l’authenticité d’une connexion SSL, obtient une réponse « bidon ».

L’erreur est tellement grossière que certains spécialistes en sécurité se demandent s’il ne s’agit pas d’un acte malveillant. À l’heure où nous écrivons ces lignes, personne ne sait si cette faille a été exploitée par un hacker malintentionné ou par des organismes de type NSA. Dans sa note de sécurité parue hier, Apple ne crédite personne.

Que faire pour se prémunir de cette faille ?

Ceux qui aiment bidouiller peuvent toujours installer ce correctif réalisé par l’expert en sécurité Stefan Esser. Installez-le uniquement si vous savez ce que vous faites. Et en sachant que celui-ci provoque des incompatibilités avec certains programmes.

Sur OS X, cette faille touche seulement 10.9 et ses « descendants ». Si cette faille est grave, il ne convient pas de céder à la panique pour autant. On peut imaginer qu’Apple proposera un correctif au plus tard en début de semaine prochaine.

D’ici là, pour minimiser les risques, passez-vous de Safari et de Mail. Chrome et Firefox, par exemple, ne sont apparemment pas concernés par ce problème, ils utilisent leur propre implémentation de SSL. Le souci c’est que ce problème n’est pas limité à Safari et Mail, un grand nombre de programmes font appel à des connexions sécurisées. Une page de test a d’ailleurs été mise au point pour savoir si votre navigateur est concerné ou non par cette faille. Si votre configuration est sécurisée, vous devriez obtenir un message d’erreur. Sinon, vous obtiendrez un court message vous confirmant que votre navigateur est bel et bien vulnérable. Enfin, évitez d’utiliser des connexions Internet qui ne sont pas dignes de confiance comme les hot-spot Wi-Fi.

Catégories: 
Tags : 

Les derniers dossiers

Ailleurs sur le Web


113 Commentaires Signaler un abus dans les commentaires

avatar Philactere 23/02/2014 - 17:38 via iGeneration pour iOS

@Philactere :
Edit : la page a fini après de longues minutes par m'afficher les mises à jour pour iOS6, mais jusqu'à la version... 6.1.5. C'est ballot parce que le correctif est la version 6.1.6.

avatar Philactere 23/02/2014 - 17:52 via iGeneration pour iOS

@Philactere :
Cela dit, quel que soit la version s'affichant sur cette page, aucune n'est telechargeable, ce n'est qu'un listing des versions avec plus d'info. Mais rien pour les télécharger et/ou les installer.

avatar jbmg 23/02/2014 - 18:33

c'est vrai que c'est devenu un vrai foutoir ce centre de téléchargement, il est impossible de charger un logiciel qui passe habituellement par la machine.

Il fut un temps où on pouvait récupérer un grand nombre de logiciels sans problème et c'était plus facile à trouver.

Il ne te reste plus qu'à trouver sur p2p... |O|
ou
mieux, trouver une personne dont le 6 est l'ultime IOS pour sa machine.



avatar Philactere 23/02/2014 - 18:45 via iGeneration pour iOS

@jbmg :
Une mise à jour de sécurité en p2p, hahaha, autant filer directement mon numéro de carte de crédit, le code de sécurité et mes coordonnées on gagnera une étape.
C'est à Apple et à personne d'autre de fournir les mises à jour de sécurité.
Il me reste en effet 3 solutions :
- Attendre qu'Apple veuille bien assurer le suivi de sécurité sur TOUS ses produits sans considérations commerciales (forcer la mise à jour vers iOS 7).
- Ne plus utiliser mon iPad mini pour des transactions SSL.
- Passer à iOS 7.

avatar iRobot 5S 23/02/2014 - 18:36 via iGeneration pour iOS

@Philactere :
Parce que l'iphone 4S n'as aucun problème avec iOS 7, j'en ai un

avatar Philactere 23/02/2014 - 10:11 via iGeneration pour iOS

@shenmue :
Et à propos d'égarement je te prierais d'en rester là sur tes prochains commentaires du tu veux tenir une discussion, pas la peine d'être méprisant si tu as une idée à développer.

avatar iRobot 5S 23/02/2014 - 17:55 via iGeneration pour iOS

@Philactere :
Normal chez le grand méchant d'en fasse les smartphones ne sont plus supportés après 18 mois.

avatar Philactere 23/02/2014 - 18:04 via iGeneration pour iOS

@iRobot 5S :
Je parlais de l'autre grand méchant, l'ancien, celui qui édite des OS pour ordinateurs depuis 30 ans.

avatar iRobot 5S 23/02/2014 - 18:46 via iGeneration pour iOS

@Philactere :
A le méchant qui a des rhumatismes !

avatar BigMonster 24/02/2014 - 14:04

Je plussifie. Je n'ai pas fait la mise à jour vers IOS7, et je n'en voulais pas.
Et maintenant, j'y suis obligé. J'ai acheté un téléphone avec une certaine interface, parce qu'elle me convenait et qu'elle me plaisait, et je suis obligé d'en changer. C'est pas correct.

avatar johnios 23/02/2014 - 09:53

L'erreur est tellement visible que je penserai à de la malveillance plutôt....

avatar Anthanagor 23/02/2014 - 10:04 via iGeneration pour iOS

Ce que les gens n'arrivent pas a comprendre, c'est que pour corriger cette faille, leur iPhone 4 est obligé de passer à iOS 7 car c'est une version éligible, l'iPhone ne se posera pas de question, il ira vers la version la plus récente... Le correctif d'iOS 6 n'est compatible qu'avec les iPhone 3GS, dernier iPhone compatible avec iOS 6...
En clair, utilisateurs d'iPhone 4, vous n'avez pas le choix... iOS 7 n'est pas si bugé que ça, vous verrez :)
Et je parle en connaissance de cause :)

avatar byte_order 25/02/2014 - 12:38

Mouais, ben moi je n'accepterai pas de *devoir* passer de Windows 7 à Windows 8 afin d'avoir un correctif de sécurité au motif que mon ordinateur *peut* supporter Windows 8 et qu'en conséquence, le correctif pour Windows , bien qu'existant, ne m'est pas accessible.

Je ne vois donc pas au nom de quoi on devrait accepter de la part d'Apple ce que l'on refuse[rait] de Microsoft.
A moins d'avoir abandonner toute notion d'intégrité intellectuelle sur l'autel du fanboyisme 2.0.

avatar BKN1 23/02/2014 - 10:18 (edité)

Puisque certains commencent à vomir sur Apple, peut-etre que ce billet de Gruber les amenera à (un peu) réflechir avant de parler :
http://daringfireball.net/2014/02/apple_prism

avatar Tibimac 23/02/2014 - 10:29 (edité)

C'est effectivement une erreur de code assez énorme. Pour ma part je n'utilise jamais les goto, je sais pas, mais j'ai toujours trouvé ça un peu bizarre comme technique de codage, m'enfin j'y viendrai peut-être un jour.

Pour les possesseurs iPhone 4, iPad 3 etc.Je pense qu'il va falloir attendre quelques jours que les sites qui proposent de télécharger iOS (IPSW) le propose. Peut-être que ca pourra être mis sur un iPhone 4, iPad etc.. mais pas sur :-/

avatar fabricepsb 23/02/2014 - 10:56 via iGeneration pour iOS

@shenmue et les autres de la même veine :

"Le temps ne fait rien à l´affaire
Quand on est con, on est con"

De belles paroles de Brassens à méditer.

avatar jonson 23/02/2014 - 11:22

C'est quoi cette embrouille avec Apple? Depuis quand cette faille existe-t-elle?
Parce qu'en général les sites avec certificats, sont ceux où tu échanges des données sensibles. Comme ta banque en ligne ou un organisme publique tel que les impôts ou la sécu.

Si il y a eu préjudice à travers cette faille, Apple peut-elle en être tenue pour responsable? Il y aurait il moyen de le prouver?

avatar quent1du58 23/02/2014 - 13:55

Ah, sacré NSA... Elle l'a tenté avec Linux, elle l'a fait avec iOS et OS X...

avatar bdc 23/02/2014 - 14:14

Simple question d'un ignare en programmation :
Pourquoi faut-il charger un correctif de plusieurs dizaines de Mo pour une seule ligne de code erronée ????

avatar patrick86 23/02/2014 - 15:04 via iGeneration pour iOS

@bdc :
Parce que ce qui est installé sur ta machine n'est pas le code que tu vois là, mais sa compilation en langage machine (des suites de 0 et de 1). Donc la mise à jour remplace toute la partie de programme compilé qui contient le code corrigé.

avatar byte_order 25/02/2014 - 12:41 (edité)

Pour en profiter pour installer dans le même temps d'autres mises à jour plus importantes... commercialement parlant.

avatar Sydney Bristow 23/02/2014 - 16:43

@fabrice: ios7 marche très bien sur mon iphone 4

avatar jbmg 23/02/2014 - 17:19 (edité)

@Sidney Bristow
mais certain ne trouve pas IOS 7 agréable au niveau dessin, de plus certains logiciels ne marchent pas avec.

avatar Francis Kuntz 23/02/2014 - 18:10

1. Goto c'est juste honteux
2. Pas d'unit testing sur un code aussi important aussi...

avatar BeePotato 23/02/2014 - 23:55

@ Francis Kuntz : « 1. Goto c'est juste honteux »

Non, pas dans ce cas-là. C'est un usage très classique du goto en C (et c'est aussi le seul usage raisonnable qu'on puisse en trouver).

« 2. Pas d'unit testing sur un code aussi important aussi... »

Là, en revanche, faut bien avouer que ça ne fait vraiment pas sérieux.

Pages