GENEVE - L'entreprise Victorinox, réputée en particulier pour ses montres et couteaux suisses, organise un concours de sécurité informatique les 2 et 3 novembre prochains à Genève.

Le défi? Le challenge pour les participants sera de réussir à extraire un document archivé de manière sécurisée au sein du tout dernière modèle de clé USB. Pour les infos et inscriptions, c'est ici (ATTENTION: inscription préalable obligatoire!!)

Comme vous l'aurez très certainement deviné, si l'on en parle sur CDDB, ce n'est pas que pour faire de la pub. Décryptage!


Le concours


Les participants se verront remettre une clé USB protégée par un dispositif authentification biométrique (lecteur d'empreintes digitales) implémenté sur la clé.

Un document électronique aura été préalablement enregistré dans la clé sous forme sécurisée.

L'objectif pour les participants sera d'extraire le document de la clé, sous une forme lisible, selon les conditions de participation. Le prix en vaut la chandelle : 100'000 francs suisses seront offerts à celui ou celle qui parviendra à déchiffrer le contenu de la clé.

Jusque ici, tout va bien. Toutefois, c'est en lisant les conditions générales de participation au concours que cela se gâte un peu : chaque participant dispose de deux heures pour casser le système.

Oui, vous avez bien lu. Deux heures. Et ce délai inclut la rédaction d'un rapport (quoique, je suis sûr qu'ils ne vont pas chipoter pour négocier un délai supplémentaire si un type leur dit qu'il a cassé leur système à la 119ème minute).


Deux heures? Mais que fait-on en deux heures?


Chaque participant ne disposera que de deux heures (temps de rédaction et restitution du rapport inclus) pour effectuer l'intrusion.

Au cas où un doute subsisterait dans l'esprit du lecteur, je le confirme : casser un système cryptographique de classe militaire prend rarement moins de deux heures!

L'algorithme de chiffrement utilisé dans les clés USB de Victorinox, selon l'argumentaire publicitaire, est de type AES 256. Si un pirate voulait tenter "chaque clé possible l'une après l'autre", il lui faudrait environ 3x10^51 années (traduction: le chiffre 3 suivi de 51 zéros) pour les avoir toutes essayées. On comprend rapidement que s'il y a un hic, il se trouve ailleurs. Où donc?


Bienvenue dans la recherche de failles logicielles


Comme indiqué plus haut, les participants ne trouveront donc pas le mot de passe "par hasard." L'erreur, s'il y en a une dans les clés USB, sera issue soit d'une implémentation défectueuse (les développeurs ont mal transcrit le cahier des charges fonctionnel) ou d'une conception défectueuse (les architectes n'ont pas conçu le produit de façon sécurisée) du logiciel gérant l'accès sécurisé à la clé.

Même lorsque l'algorithme de la clé est estampillé FIPS (comprendre, approuvé par l'autorité gouvernementale américaine de certification des systèmes cryptographiques), et c'est souvent ainsi que fonctionne l'argumentaire de vente, il n'ya aucune garantie de sécurité. La certification assure en effet que l'algorithme de chiffrement a été implémenté correctement mais n'évalue pas du tout la qualité des protections annexes, telles que la gestion des secrets.

Dans le cas qui nous concerne, c'est-à-dire, les clés USB sécurisées, cette question est cruciale.


Rappelons-nous le cas survenu en décembre dernier, lorsque des chercheurs ont réussi à casser le chiffrement de clés USB sécurisées vendues par les sociétés Kingston, Sandisk et Verbatim, trois sociétés de renom sur ce marché, revendiquant des clés sécurisées certifiées FIPS.

Les concepteurs du logiciel de chiffrement avaient malheureusement oublié d'appliquer le principe de filiation des clés de chiffrement dans le système cryptographique. Dès lors, la clé de chiffrement utilisée pour sécuriser les données était indépendante du secret fourni par l'utilisateur et restait donc toujours la même, quelque soit la clé.

Les chercheurs n'ont donc eu qu'à récupérer la clé de chiffrement se trouvant dans leur propre clé USB (ils pouvaient l'obtenir, ils connaissaient le mot de passe...) pour disposer ensuite d'un accès illimité aux données de toutes les autres clés USB conçues sur le même principe.


Pour ceux qui n'ont rien compris à ce que je viens d'écrire, le problème soulevé est similaire à la clé de porte que l'on vous donne lorsque vous emménagez dans un nouvel appartement : vous partez généralement du principe que vous n'aurez jamais accès aux portes-clés de vos voisins et que votre clé n'ouvre que votre porte. Dans le premier cas, c'est souvent vrai, mais très peu de gens vérifient que la seconde affirmation est vraie. L'erreur ici est similaire à une situation où chaque habitant d'un immeuble aurait reçu la même clé mais n'a jamais pensé à l'utiliser sur une autre porte que la sienne.



Heureusement pour ces ingénieurs, les références majeures en matière de sécurité logicielle (OWASP Top 10, OWASP ASVS, SANS CWE Top 25 et consorts) ne mentionnaient (et ne mentionnent toujours pas) ce risque nulle part dans leurs contrôles. Dès lors, personne n'a pu vraiment les accuser de négligence. Mais ceci est un autre sujet, ne nous égarons pas...

Revenons-donc à ces failles potentiellement présentes. Quelles sont-elles?

Comme indiqué plus haut, l'erreur la plus fréquente commise dans les systèmes cryptographiques n'est pas le chiffrement des données en soit mais la gestion des clés nécessaires au chiffrement. Le concepteur soucieux de fournir un chiffrement de données correct dans un logiciel doit en effet généralement répondre correctement à l'interrogatoire suivant:
  • Comment est créée cette clé? Quelles sont les éléments garantissant une complexité conforme aux attentes (et à l'argumentaire publicitaire)?
  • La complexité de la clé est-elle relative au niveau de sécurité de l'algorithme de chiffrement choisi?
  • Y-a-t-il un secret fourni par l'utilisateur (mot de passe, empreinte, etc.)?
  • Le secret (empreinte) sert-il de clé? donne-t-il accès à la clé? sert-il à obtenir l'accès à la clé? est-il converti en clé?
  • Si le secret sert est converti en clé, quel mécanisme est utilisé (dérivation)? Le processus de dérivation garantit-il que la clé est toujours au moins aussi complexe que le secret?
  • Deux secrets identiques mènent-ils à la même clé? (si deux utilisateurs choisissent le même mot de passe, est-ce la même clé de chiffrement est générée?)
  • Où les clés seront-elles stockées?
  • Comment les clés seront-elles stockées?
  • Les clés sont-elles stockées en divers endroits?
  • Des copies temporaires des clés sont-elles effectuées?
  • Comment les clés seront-elles modifiées ou mises à jour?
  • Comment sera géré le cas où une clé a expiré?
  • Comment les données sont-elles récupérées en cas de perte des clés?
  • Le capteur d'empreinte est-il fiable? Quel est son taux de faux-positifs?
  • Même question pour l'algorithme d'évaluation utilisé, quel est le taux de faux-positifs?
  • Quels systèmes intermédiaires ont accès à la clé durant les quelques microsecondes où elle est décryptée et pendant combien de temps exactement?
  • La clé doit-elle voyager? (p.ex. : doit-elle être transférée du lecteur à l'ordinateur?)
  • Si la clé voyage, est-elle transmise de manière sécurisée?
  • Le système fournit -il une protection contre une personne tentant toutes les clés possibles les unes après les autres? Le mécanisme de sécurité est-il au plus près des données à protéger? (le concours s'appelle "Trouve la bonne combinaison!", est-ce un signe?)
  • Le système fournit-t-il une protection contre une personne observant les valeurs statistiques résultant du temps de traitement des différentes clés ou secrets proposés?
  • Le système observe-t-il un comportement prévisible selon le degré de proximité entre la clé fournie et la clé correcte? (oracle cryptographique)
  • Les éléments physiques du système génèrent-t-ils des émanations électromagnétiques variant selon la proximité de la clé proposée avec la clé correcte?
  • Les éléments physiques du système peuvent-ils être dissociés et étudiés séparément?
  • Le système fournit-il une protection contre un utilisateur contre lequel on a pointé une arme létale chargée?
  • Etc. etc. etc. (jendsaispasquoiajouter.com)

En excluant les aspects strictement relatifs à une investigation physique (il reste 19 questions) et en tenant compte que les participants disposent d'environ 105 minutes (laissons-leur 15 minutes pour rédiger le rapport à restituer au jury), cela leur donne 5 minutes environ pour évaluer chaque vulnérabilité potentielle indiquée ci-dessus.

Une chose est sûre, le participant qui saura trouver la faille sera soit un expert terriblement efficace dans sa méthodologie d'analyse, soit aura beaucoup de chance.


Quelques réflexions injustifiées au coin du bureau


Dans tous les cas, je suis surtout un petit peu surpris par les différents messages que cette compétition pourrait laisser sous-entendre.

Premièrement, je me demande si l'on espère vraiment voir débarquer des personnes conscientes qu'elles peuvent percer les défenses d'un système supposé offrir une sécurité d'un niveau appliqué à la défense nationale en moins de deux heures et qu'elles vont simplement venir s'asseoir au beau milieu du centre-ville tout en cédant (sic) "leur droit à l'image, etc." (lisez bien attentivement la clause 7 des conditions générales si vous comptez participer au concours, elle est particulièrement engageante en termes de responsabilités) et remettre la propriété intellectuelle résultant de leur travail (clauses 5 et 7).

Bien entendu, il est toujours possible qu'un "inconnu" encore peu conscient de ses capacités (ou sacrément chanceux) réussisse à remporter le concours haut la main. Ce serait particulièrement amusant et décevant à la fois (pour nous en tant que consommateurs potentiels, pas pour le participant empochant le gain), mais aussi très inattendu: on sait plus ou moins quelles erreurs ne doivent pas être reproduites pour atteindre un niveau de sécurité acceptable et des maisons spécialisées en évaluation de sécurité se sont déjà cassé les dents sur les clés USB de Victorinox.


Deuxièmement, quel message donne-t-on quant à la valeur de la prestation fournie? Un auditeur sécurité doit-il être rémunéré 50'000 francs de l'heure en cas de "succès" dans sa mission? Deux heures sont-elles suffisantes pour évaluer la sécurité d'un système garant de la confidentialité? L'on constate actuellement une disparité croissante dans le coût des prestations en sécurité de l'information sur le marché romand: les prix varient du simple au triple selon l'enseigne et le consommateur reste souvent dans le flou pour évaluer la compétence de ses prestataires.


Finalement, quelles garanties fournit-on au consommateur si aucun des 24 participants (en admettant qu'il y ait salle comble) ne réussit à casser les défenses de la clé? Je reviens ici sur le cas d'école décrit plus haut dans ce billet au sujet des trois constructeurs de clés USB sécurisées : chacun des modèles avait été évalué et certifié comme sûr par la plus haute autorité en matière de réglementation avant la mise en vente. Pourtant, la faille du logiciel était littéralement béante et a été trouvée quasiment par hasard par des chercheurs investiguant alors sur des aspects beaucoup plus complexes.

Quelle garantie offre-t-on fasse à un jeune docteur en cryptographie appliquée et spécialiste de la sécurité logicielle, résidant dans un pays au PIB vingt inférieur à celui de la Suisse, et à qui l'on donne l'équivalent de douze mois de salaire pour casser les défenses du dispositif?


Pour le moment, ces questions existentielles ne m'empêchent pas de dormir, c'est le plus important! Vos réponses et opinions sur ce concours sont bien entendu les bienvenues. D'ici-là, je note les dates du 2 et 3 novembre prochain dans mon agenda, c'est à côté de chez moi, ce serait stupide de s'en priver et même si on dit un peu du mal, c'est bien sympa que cela soit organisé à Genève alors soutenons!


dernières réflexions immatures
1°: un concours similaire a déjà été organisé par Victorinox en mars dernier à Londres. Aucun gagnant n'a été désigné mais il aurait remporté un montant de 100'000 livres sterling. L'équivalent d'un peu plus de 160'000 francs suisses, selon le taux de conversion en vigueur à l'époque. Comme quoi il vaudrait peut-être mieux être un hacker de talent au Royaume-Uni qu'à Genève ; )

2°: le concours dans sa version française est intitulé "Trouve la bonne combinaison" La version anglaise s'intitule "Breaking the code" (ndlr : casser le code) et la version allemande s'intitule "Hilf uns, den code zu knacken" (ndlr : aide-nous à casser le code!). J'espère que l'on ne cherche pas par là à laisser croire que les chercheurs francophones ne savent rien faire de plus qu'une attaque en force brute ;)

3°: le règlement ne précise pas si la clé doit être rendue à la fin du concours. Peut-être est-ce le moyen d'obtenir cette clé gratuitement?



Si vous n'en n'avez pas encore marre:
- Concours Victorinox : trouve la bonne combinaison, inscription et règlement
- USB stick doesnt get cracked (the inquirer.net)
- Victorinox launches supersecure USB stick
- NIST-certified USB flash drives with hardware encryption cracked (Heise Online)
- Encryption busted on NIST certified Kingston, Sandisk and Verbatim USB flash drives (ZDnet.com)
- AES – FIPS validation (Wikipedia)
- List of FIPS validated cryptographic modules (nist.gov)
- Pour en savoir (un peu) plus sur le produit concerné (Victorinox.com)
- Pour ceux qui envisagent une alternative (IronKey.com)