mercredi 10 septembre 2008

On a frôlé le Big One(tm)

... la question est: "lequel ?" :)


Je ne parle donc pas de la mise en service du LHC, mais bien de la cryptographie dans les versions françaises de Windows, qui par une sorte d'exception culturelle, a toujours été beaucoup plus faible.

On apprend donc dans cette note du CERTA qu'un patch est désormais disponible pour le Protected Storage. Contrairement au High Encryption Pack pour Windows 2000, ce patch s'applique également à Windows XP SP2 et 2003 qui disposaient encore de quelques portions de code "peu entropiques".

Voyons ce que cela donne sur un Windows XP SP2 FR complètement à jour. Nous allons pour cela utiliser l'outil gratuit PatchDiff2.

Après installation, un seul fichier est modifié: pstore.dll

Dans ce fichier, une fonction a été supprimée (IsEncryptionPermitted), une autre a été ajoutée. Soit.


Voyons maintenant les fonctions qui ont été modifiées: elles sont au nombre de 8.


Prenons la première: FMyEncryptKeyBlock. Un seul bloc fonctionnel a été modifié.

Même si vous ne lisez pas bien l'assembleur, je pense que vous avez une petite idée de ce qui se passe ...

Au fait, à quoi sert le Protected Storage ? A stocker un peu tous les mots de passe qui trainent ... Heureusement il est deprecated à partir de Vista.

En conclusion:
  • Difficile de se moquer de Debian après ça.
  • Il ne faut pas croire que "d'autres ont audité le binaire, et s'il y avait quelquechose ça se saurait".
A part ça quoi de neuf ? C'est presque la routine: patch Microsoft pour 5 failles GDI+, failles dans Wordpress, Apple QuickTime, mDNSResponder/Bonjour, Google Chrome ... Mais on attend toujours le Big One.

10 commentaires:

Tyop? a dit…

News0ft: Difficile de se moquer de Debian après ça.

Non non, c'est toujours aussi facile. Du tout Linux comme du tout Windows. :)

Kostya a dit…

Ca fait plaisir de voir que MS & le CERT-A lisent mon blog ... Merci monsieur Cyril!

Nicolas a dit…

Ce qui m'amuse, c'est que c'est le gouvernement français qui à l'époque avait obligé MS à se conformer à la réglementation Française (normal), mais ensuite quand cette même réglementation s'est assouplie, personne (qui a dit DCSSI?) ne s'est inquiété de savoir si la crypto forte avait bien été ré+implantée dans Windows.
Bref c'est un peu de "notre" faute si depuis 9 ans on se traîne avec une crypto faible.

Tyop? a dit…

@kostya: Ya des joueurs de WoW aux endroits les plus improbables...

haypo a dit…

Serait-il possible d'expliquer un peu le patch pour ceux qui n'ont pas Windows pour tester et/ou ne parlent pas couramment le diff binaire ? En particulier, que fait la fonction « IsEncryptioPermitted » (quelles vérifications sont effectuées) ?

newsoft a dit…

@haypo: désolé :)

L'essentiel du code est reproduit ci-dessous. En gros si le "LCID" (le code pays, réglé dans les paramètres du panneau de configuration) est à "33" (France), une variable globale est mise à "vrai".

Si cette variable est à "vrai", l'effet est indiqué dans l'article de KB:

"To make sure that the product was available to the French market in a synchronized manner with all locales, Microsoft chose to disable the encryption of Protected Storage by using a single, fixed encryption key for the French locale."

----------------------------------------------------------------------
IsEncryptionPermitted():
[...]
.text:74321589 call ds:__imp__GetSystemDefaultLCID
.text:7432158F cmp ax, 40Ch
.text:74321593 jz loc_7432524E
.text:74321599 loc_74321599:
.text:74321599 push 0Ah ; cchData
.text:7432159B lea ecx, [ebp+String1]
.text:7432159E push ecx ; lpLCData
.text:7432159F push 5 ; LCType
.text:743215A1 push eax ; Locale
.text:743215A2 call ds:__imp__GetLocaleInfoA
.text:743215A8 test eax, eax
.text:743215AA jz loc_7432525A
.text:743215B0 loc_743215B0:
.text:743215B0 push offset String2 ; "33"
.text:743215B5 lea eax, [ebp+String1]
.text:743215B8 push eax ; lpString1
.text:743215B9 call ds:__imp__lstrcmpA@8 ; lstrcmpA(x,x)
[...]
----------------------------------------------------------------------

Matt a dit…

Bizarre, ..., Il n'y a pas de section "Acknowledgments" :-)

newsoft a dit…

@Matt: tu parles de l'article Microsoft, ou de l'avis du CERTA ?

Kostya a dit…

Les remerciements c'est pour des disclosures "responsables"... Je ne suis pas sur que MS considere ca responsable. Enfin d'un autre cote, les cles codees en dures ca ne l'est pas trop non plus. Ou pas. En fait du depend du point de vue. Ou pas.

Nico a dit…

Concernant le big one, la webcam est ici: http://www.cyriak.co.uk/lhc/lhc-webcams.html
:)