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 patrick86 23/02/2014 - 15:05 via iGeneration pour iOS

@coolapic :
iOS ne propose toujours que la mise à jour la plus récente disponible.

avatar coolapic 23/02/2014 - 17:13

Oui, je sais bien, mais là il s'agit d'une correction de bug, pas d'une "vraie" MAJ...

Et comme ils ont sorti la correction pour iPod etc j'aurais apprécié qu'ils fassent de même pour les iPhones...

Bref, Apple en profite pour "forcer" la main à ceux qui, comme moi, auraient préféré rester sous IOS 6... Et cette manière de faire me gonfle !

avatar melaure 24/02/2014 - 07:08 (edité)

Bien pratique pour forcer la main des utilisateurs ....



avatar marc_os 25/02/2014 - 17:31

Forcer la main ?
Tu préférerais que la mise à jour soit payante ?
Et puis vous n'aviez qu'à rester sous iOS 5, version de l'iPhone 4 à l'origine.

avatar EBLIS 23/02/2014 - 21:59

Pareil pour mon ipad 2. Je préfère encore me taper la faille qu'ios7. 2 3Gs dont le mien ont été mis à jour aujourd'hui.

avatar Ali Baba 23/02/2014 - 00:10 via iGeneration pour iOS

@fabricepsb :
Avant d'utiliser des mots forts comme "lamentable" ça serait bien de lire l'article.

avatar redchou 23/02/2014 - 02:03 (edité)

iOS 6.1.6 n'est disponible que pour l’iPhone 3GS et l’iPod touch 4G, pas compatible iOS7.
L'iPhone 4, compatible iOS7, na pas le droit à sa version 6.1.6...

avatar duc998 23/02/2014 - 08:49 (edité)

Même chose avec mon iPad 3 : je suis condamné à passer sous iOS 7. Or, je NE VEUX PAS passer au 7. Tant pis, ça restera ainsi. Une fois de plus, merci Apple;

avatar toto160 23/02/2014 - 16:29 (edité)

Chez Android y a pas toute cette merde :-)

Android > iOS

avatar dperetti 23/02/2014 - 17:06

Les apps Chrome et Gmail sur l'iPad 3 sous iOS6 sont pas mal.

avatar Istrydhil (non vérifié) 23/02/2014 - 00:17 via iGeneration pour iPad

@fabricepsb

+1000

avatar Yanik 22/02/2014 - 23:27 via iGeneration pour iOS

Depuis deux ou trois ans, ça déconne bien chez la Pomme. Faudrait vous ressaisir les gars.

avatar PetitGreg 22/02/2014 - 23:39 (edité)

Sous iOS 4.2.1, RAS.
Si certains sont encore sous iOS5 ou des version antérieures d'iOS 6, ce serait sympa de savoir quand cette faille est apparue.

avatar nayals 23/02/2014 - 09:22 via iGeneration pour iPad

@PetitGreg

Sur iOS 5.1.1, RAS aussi.

iOS 5 n'est visiblement pas touché par la faille.

avatar Eaglelouk 22/02/2014 - 23:50 via iGeneration pour iOS

Tiens, Stefan Esser ne fait plus dans la chanson ?

avatar Irae00 23/02/2014 - 01:52

^^

avatar Domsou 22/02/2014 - 23:56 via iGeneration pour iOS

Autre point : bravo pour l'utilisation de "goto".
Un beau bout de code à montrer aux étudiants en informatique : ce qu'il ne faut pas faire !

avatar Aurélien-A 23/02/2014 - 06:33

C'est assez discutable, mais l'usage de goto pour ce type de structure peut se justifier pour éviter la répétition de code ou l'écriture d'une fonction supplémentaire avec son empreinte dans la pile d'exécution. N'oublions pas que nous sommes en assez bas niveau.

Exemple
http://www.cprogramming.com/tutorial/goto.html

avatar Domsou 23/02/2014 - 07:44 via iGeneration pour iOS

@Aurélien-A :
Ok pour l'optimisation. Mais avant d'optimiser il faut s'assurer d'une chose : que le code fonctionne correctement.

Cette histoire est curieuse sur plusieurs points aussi il convient d'attendre un peu avant de réagir vertement.
Car là on empile les erreurs :
- algorithme faux
- non respect de règles de codage
- pas de tests unitaires
- pas de couverture de code
- pas de revue de code
- un code open source que personne n'a relu

Et tout cela pour du code sensible !
Étrange donc...

avatar kyaude 27/03/2014 - 11:09

L'article n'indique pas les options d'optimisation de compilation qui varie en fonction du type de codes applicatif/noyau. J'ai vu des optimiseurs remonter ce type d'erreur en indiquant le n° de ligne dans le fichier de debug.

A la lecture de l'article je conclus que les procédures qualité (vérification automatisée de code/ test détaillé/ test fonctionnel) ne sont pas respectées ou que le bug est intentionnel. Apple doit faire comme nous: ne faire confiance à personne.

avatar belgarion_riva 23/02/2014 - 00:12 via iGeneration pour iOS

Le plus "drôle" étant que les versions précédentes d'OS X ne sont pas touchées selon l'article !!
Une raison ?

avatar iRobot 5S 23/02/2014 - 00:14 via iGeneration pour iOS

Certains vont se faire virer !

Ça aurais été Steve Jobs tout Cupertino l'aurais entendu vociférer !

Franchement ça craint du côté d'Apple !

avatar Istrydhil (non vérifié) 23/02/2014 - 00:16 via iGeneration pour iPad

Ce qui est bien en diffusant ce bout de code c'est que maintenant tout le monde est au courant de la routine à faire appel pour devenir un développeur mal intentionné ?! Comme si cela ne suffisait pas de dire qu'il y a une faille de sécurité, pourquoi montrer clairement où appuyer pour faire mal ? Sérieux, faudrait réfléchir un peu avant de publier un tel article !!!

avatar iRobot 5S 23/02/2014 - 03:00 via iGeneration pour iOS

@Istrydhil :
Vu l'erreur il n'y a pas grand chose a corriger, ce sera vite fait.

avatar Orus 23/02/2014 - 00:29

Y a t-il encore quelqu'un de compétant chez Apple ?
Faire de l'argent avec des montres et des iTrucs semblent être la préoccupation principale.

Pages