On entend souvent qu’aucun système n’est infaillible et que les pirates trouveront toujours une faille à exploiter. L’idée de cet article est de vous expliquer pourquoi il faut être prudent avec ce genre d’affirmations et pourquoi vous pouvez vraiment faire confiance à certains systèmes.

On distingue 4 objectifs de sécurité : la confidentialité des données, leur authenticité, leur intégrité  (cf définitions plus bas)  et leur disponibilité.

Toute attaque informatique a pour objectif de nuire à l’un ou plusieurs de ces 4 objectifs. Selon le contexte, certains objectifs seront plus secondaires que  d’autres. Par exemple l’objectif de disponibilité n’est pas toujours très critique. Si votre compte Fnac n’est plus accessible pendant quelques heures (indisponibilité), cela n’aura pas beaucoup d’impact sur votre vie. Si votre adresse postale est remplacée par un poème dans la base de données de Fnac (non-intégrité), vous n’en ferez pas un drame non plus. Mais si UpSignOn fait fuiter vos mots de passe (non-confidentialité), vous viendrez vous plaindre.

Alors voici 4 concepts ou modèles de sécurité  à connaître et à distinguer.

 

La sécurité logique

La sécurité logique repose sur des règles algorithmiques. L’accès à telle ou telle ressource n’est autorisé que pour un utilisateur ayant des droits suffisants tels qu’enregistrés dans une base de données. En cas de bug, cette sécurité peut être compromise. Un administrateur peut modifier les droits simplement. En bref, cette sécurité repose sur la confiance dans les développeurs et dans les administrateurs. Toute personne ayant suffisamment de droits peut compromettre cette sécurité.

 

La sécurité cryptographique

Contrairement à la sécurité logique, la cryptographie permet de garantir certaines propriétés qui ne sont pas modifiables après coup, y compris par quelqu’un qui aurait un accès complet au système. Ces propriétés sont le plus souvent mathématiquement prouvables. La cryptographie est utilisée aujourd’hui dans de nombreux domaines, du plus stratégique -défense, industrie, technologies de l’information – au plus personnel, avec la protection de la vie privée. Elle sécurise la transmission des messages, qui sont inintelligibles pour une personne tierce.

La cryptographie est l’ensemble des algorithmes mathématiques qui permettent de garantir la confidentialité, l’authenticité et l’intégrité des données (chiffrement, hachage et signature numérique).

Notez que la sécurité cryptographique repose sur le fait qu’avec les connaissances mathématiques actuelles, il faudrait en pratique des millions d’années de calcul, même en regroupant tous les ordinateurs du monde,  pour casser une protection. Donc personne n’y parviendra jamais dans la vraie vie, sauf à obtenir la clé cryptographique par d’autres moyens.

UpSignOn fait évidemment un usage extensif d’algorithmes cryptographiques.

 

Le zero trust (ou confiance nulle)

Un système à confiance nulle est conçu en partant du principe que le pirate réussira à obtenir tous les droits administrateurs (ou qu’un administrateur deviendra hostile). Même dans ces conditions, cela ne serait pas suffisant pour lui permettre d’extraire des données sensibles.  En clair, la seule personne de confiance est le propriétaire des données. Toute autre personne est considérée comme hostile. Si le système est conçu ainsi, vous pouvez lui faire confiance les yeux fermés. Évidemment, la plupart des fonctionnalités d’UpSignOn sont conçues suivant ce principe.

 

Le zero knowledge (ou la connaissance nulle)

La connaissance nulle désigne une conception ne donnant aucune information personnelle à l’éditeur ou aux administrateurs en clair. Les seules données envoyées au serveur sont totalement chiffrées et inexploitables.  Par exemple, l’application UpSignOn n’envoie aucune adresse email au serveur UpSignOn pour faire fonctionner  les coffres-forts personnels. Même nous, éditeur, ne connaissons pas nos utilisateurs ! Donc il n’y a tout simplement rien à voler sur nos serveurs.

 

Conclusion

La sécurité logique est faible, même si elle est nécessaire dans beaucoup de cas et abondamment utilisée. L’idéal est de concevoir des systèmes à connaissance et confiance nulles (qui vont le plus souvent s’appuyer sur de la cryptographie) pour garantir qu’aucune fuite de données ne soit possible (ce qui ne veut pas dire qu’un pirate ne peut pas nuire d’une autre façon, par exemple en paralysant le système).

Retenez l’idée que ce n’est pas parce que la presse annonce qu’une attaque est en cours que vos données vont nécessairement fuiter. Ce n’est pas non plus parce que certaines données ont fuité que tous vos secrets ont fuité. Il se peut aussi que des données chiffrées fuitent, sans que cela ne soit un problème si le système était conçu en respectant la philosophie de la confiance nulle.