Exclusif : Opera, les secrets du stockage des identifiants enregistrés

0
192

Il y a un moment, nous avons publié un article sur les données enregistrées par le navigateur Mozilla Firefox. Aujourd’hui, découvrez l’article dédié au dispositif Wand du navigateur Opera.

Le navigateur web Opera enregistre les données sous de connexion (logins et mots de passe) durant la navigation et auto-complète les champs lors de la prochaine connexion. Ainsi, par exemple, quand vous allez vérifier votre e-mail, au lieu de toujours avoir à entrer les mêmes informations de connexion vous pouvez laisser Opera s’en souvenir et soumettre le formulaire pour vous. Pratique non ?

Comment ces données sont-elles stockées sur la machine ? Les autres navigateurs du marché possèdent eux aussi des fonctions similaires (Internet Explorer a une fonction appelée saisie semi-automatique, Firefox et Chrome sont aussi capables de retenir les données de connexion). Il n’y a pas beaucoup d’informations disponible sur le Net concernant le système Wand utilisé par Opera mise à part quelques évocations dans la mail-liste officielle.

La description technique de la sécurité Wand est assez confuse, cela semble d’ailleurs intentionnel de la part des développeurs du navigateur Opera. Il est mentionner qu’ils utilisent 3DES. Il est précisé dans l’un des mails “… il est possible de décrypter le wand.dat cependant, cela nécessite une certaine expertise dans la cryptographie”.

Rien non plus concernant la structure du fameux fichier wand.dat. C’est l’horreur pure du début à la fin. Variables, structures de taille flottante, données non alignées et une myriade de flags différents. Mais, comme par hasard, il y a une structure propre et simple pour les blocs de données cryptées stockés à l’intérieur wand.dat. Un bloc en surbrillance peut être visualiser dans l’image ci-contre. Il y a deux points très importants à noter : la longueur de la clé est toujours égale à 8 et, pour essayer de dire les choses simplement, la taille de l’ensemble du bloc est toujours égale à la taille des données chiffrées plus 0x14.

Sachant cela, nous pouvons analyser les blocs que nous rencontrons. La prochaine étape logique serait de comprendre comment les blocs sont censés être déchiffrés. Avec un peu de débogage, il est facile de trouver où Opera lit la clé d’un bloc ainsi que les hachages. Opera crée deux hachages en utilisant l’algorithme MD5. Le premier est d’une clé codée en dur ainsi que la clé du bloc chiffré, et le second est un ensemble composé de la clé codée en dur et la clé du bloc chiffré.

Les hachs résultants sont composés de 32 octets de données. C’est par ici que nous sommes en mesure de confirmer ce qu’ils ont dit au sujet 3DES. Le premier hachage est divisé en deux moitiés et employé pour programmer le même montant de clefs. Le deuxième hachage est aussi divisé en deux moitiés. La première moitié est prévue comme une troisième clé et la deuxième moitié est mise de côté pendant un bref moment.

Récapitulons. Nous avons trois clés DES et un tampon de huit octets dedans, sans parler de la mémoire tampon avec des données chiffrées. La seconde moitié du second hachage est ressuscitée d’où elle était cachée, et ajoutée à la pile. Cela devient maintenant évident, Opera utilise 3DES-CBC et les “extra” huit octets sont le vecteur d’initialisation (IV). Et c’est à peu près tout ce qu’il y a à faire. Les données non chiffrées pourront avoir n’importe quelle valeur.

Un code source compilable sous un environnement Windows existe (la librairie OpenSSL est requise). Voici un aperçu de la sortie de ce programme (notez que les mots de passes sont faux…).





Si vous définissez un mot de passe maître dans la configuration d’Opera, le fichier Wand sera crypté de sorte que le mot de passe maître doit être saisi pour réussir à déchiffrer les données stockées. Cela empêche toute intervention extérieure et notamment le déchiffrement par le biais du précédent programme.

C’est donc un article informatif. Il est difficile d’informer à ce sujet sans que cela dérive vers des domaines techniques avancés. Aussi, ce n’est pas une «attaque» envers le navigateur Opera. Les autres navigateurs étant tout aussi vulnérable à ce genre de choses…

Pour rendre le système de stockage plus sûr, on pourrait suggérer aux ingénieurs Opera qu’ils hachent l’URL avant de l’enregistrer dans le fichier Wand. Cela limiterai les possibilités de déchiffrement du fichier Wand.