Les quatre concepts de la sécurité informatique

Si je trahis ce secret, de nombreux experts en sécurité, qui tirent leur légitimité de la complexité apparente du domaine, vont grincer des dents… Tant pis, allons-y : pour concevoir une architecture de sécurité, on met en œuvre en tout et pour tout quatre concepts techniques relativement simples, qui sont compréhensibles par tout un chacun !

 

 Ces mécanismes de sécurité sont les suivants :

  • le hachage ;
  • la cryptographie asymétrique ;
  • la cryptographie symétrique ;
  • la gestion de droits.

Nous allons les expliquer ci-dessous. Bien entendu, toute la difficulté consiste à utiliser les bons mécanismes aux bons endroits !

 

Le hachage

Le premier outil cryptographique que nous allons aborder porte plusieurs noms : calcul d’empreinte, condensation, ou hash, qui est le terme que nous emploierons le plus généralement.

L’algorithme de hash actuellement recommandé est SHA256 (pour « Standard Hash Algorithm », 256 bits étant la taille des données obtenues en sortie).

Les fonctions de hash sont des algorithmes mathématiques qui prennent en entrée une donnée qui peut avoir n’importe quelle taille, et qui rendent en sortie une chaîne d’octets de longueur fixe qui dépend de chacun des bits de l’entrée mais ne permet pas de retrouver l’entrée.

 

Voyons quelles sont les principales propriétés des fonctions de hash :

 

1. La sortie a une taille constante, indépendante de l’entrée

La condensation peut porter sur tout fichier, quelle que soit sa taille : que le document en entrée soit une donnée technique de 20 octets, un document word de 200 kO, ou une photo de 2 MO, le résultat de sa condensation par la fonction SHA256 donnera pour résultat une chaîne de 256 bits.

2. La sortie est pseudo-aléatoire, très dépendante de l’entrée

La fonction de condensation donne un résultat dont chaque bit dépend de l’ensemble des données fournies en entrée. Ainsi, si l’on calcule le hash de deux fichiers très proches, par exemple en modifiant un seul bit du fichier initial pour constituer le second, on obtiendra des résultats très différents, qui ne permettront en rien de déduire une ressemblance des fichiers fournis en entrée.

3. Le hash est une fonction « à sens unique »

Attention à ne pas confondre les fonctions de condensation avec des fonctions de compression de données (comme le zip par exemple) : si SHA256 ramène tout fichier, quelle que soit sa taille, à une chaîne de 256 bits, l’opération inverse est impossible … Et c’est là l’une des propriétés essentielles de la condensation : il s’agit de fonctions « à sens unique ». Connaître le condensé d’un fichier ne permet pas d’en déduire le contenu du fichier lui-même, ni de constituer un autre document qui aurait ce même condensé.

 

À quoi sert le hachage ?

On peut faire ressortir trois fonctions essentielles rendues par le hachage :

  • L’anonymisation : par exemple, en remplaçant l’identité des patients par son hash, des données médicales pourront être exploitées à des fins statistiques.
  • Le scellement : conserver le hash d’une donnée permet de vérifier a posteriori si elle a été modifiée ou si elle est restée intègre.
  • La condensation : certaines opérations cryptographiques asymétriques ne permettent pas de prendre en entrée de grandes quantités de données. Ainsi, pour la signature électronique, on remplacera la donnée à signer par son hash avant de la soumettre à un calcul impliquant la clef privée.

 

La cryptographie asymétrique

L’utilité fonctionnelle de la symétrie asymétrique est la suivante :

  • un individu (le « porteur ») doit être capable de faire un calcul que lui seul est capable de réaliser : pour cela, il doit disposer d’un secret ;
  • un autre individu (le correspondant) doit être capable de vérifier le calcul pour s’assurer que le porteur dispose de ce secret, mais sans en disposer lui-même.

Les algorithmes utilisables pour effectuer ces opérations sont regroupés sous le nom générique de « cryptographie à clef publique », ou « cryptographie asymétrique », parce qu’ils reposent sur deux données complémentaires, liées mathématiquement et générées conjointement, mais gérées de manière très différente :

  • la « clef privée » constitue le secret que le porteur doit conserver confidentiel, et qu’il utilisera pour effectuer le calcul mentionné ci-dessus ;
  • la « clef publique » est son pendant mathématique, qui permet d’effectuer le calcul inverse, et donc de vérifier que la personne qui a fait le calcul initial possédait bien la clef privée.

La clef publique peut être diffusée largement, et transmise librement à toute personne appelée à l’utiliser. Bien entendu, la connaissance de la clef publique ne permet pas de déduire la clef privée. La sécurité de la cryptographie asymétrique repose entièrement sur cette propriété mathématique.

L’algorithme de cryptographie asymétrique le plus employé s’appelle RSA, du nom de ses inventeurs : Rivest, Shamir et Adleman. L’ANSSI recommande l’usage de clef de taille au moins égale à 2048 bits.

 

La cryptographie asymétrique est utilisée pour :

  • l’authentification ;
  • la signature électronique ;
  • le chiffrement.

 

La cryptographie symétrique

La cryptographie symétrique, ou cryptographie à « clef secrète », sert à garantir la confidentialité de données par le mécanisme appelé chiffrement.

Contrairement à ce que nous avons vu pour la cryptographie asymétrique, c’est ici la même clef qui sert à faire les calculs dans un sens et dans l’autre.

Cette clef secrète ou clef symétrique est simplement constituée d’une suite aléatoire d’octets.

L’algorithme actuellement recommandé pour le chiffrement symétrique s’appelle AES pour Advanced Encryption Standard.

Attention cependant : il existe plusieurs modes d’implémentation d’AES, qui n’offrent pas tous la même robustesse.

Ainsi, par exemple, le mode ECB (electronic codebook) donne un chiffré identique pour deux clairs identiques. Son utilisation est déconseillée.

Au contraire, le mode CBC (cipher block chaining), qui inclut un vecteur d’initialisation et un bouclage de l’algorithme sur les blocs successifs, offre une confidentialité optimale.

 

Le fonctionnement général de la cryptographie symétrique est le suivant :

  • l’émetteur d’une donnée secrète génère une clef symétrique ;
  • il l’utilise pour chiffrer la donnée secrète ;
  • il transmet à son correspondant la donnée secrète chiffrée et la clef symétrique ;
  • le correspondant se sert de la clef symétrique pour déchiffrer la donnée secrète et en prendre connaissance.

Ce mécanisme assure la confidentialité de la donnée chiffrée… Sous réserve que la clef secrète employée soit elle-même transmise de manière confidentielle !

 

Pour assurer le transfert de la clef secrète, deux mécanismes sont couramment utilisés :

  • envoyer la clef par un canal différent du canal d’envoi du document chiffré : par exemple, envoyer le document via un serveur et la clef par mail. La sécurité de cette façon de faire dépend de la sécurisation mise en œuvre sur le canal de transmission de la clef et de la capacité d’un éventuel indiscret à se procurer le document chiffré ;
  • utiliser la cryptographie asymétrique pour rendre la clef secrète confidentielle à son tour.

Les attaques que l’on peut mener contre la cryptographie symétrique sont des recherches exhaustives de la valeur de la clef, ce que l’on appelle des attaques « force brute ». Plus la clef est longue, plus la probabilité qu’un pirate parvienne à trouver la clef dans un temps raisonnable est faible.

C’est pourquoi l’ANSSI recommande l’utilisation de clefs de chiffrement de 100 bits pour chiffrer les données devant rester confidentielles jusqu’à 2020 au plus, et de 128 bits au-delà de cette période.

 

La gestion de droits

La gestion des droits n’est pas un mécanisme cryptographique, mais un simple filtre permettant de contrôler l’accès à des ressources, qu’il s’agisse de données ou de fonctionnalités.

Le principe qui doit être généralement appliqué est celui de l’exclusion par défaut : tout ce qui n’est pas explicitement autorisé est interdit. Son application repose évidemment sur l’authentification des personnes ou des machines qui accèdent au service.

La mise en œuvre d’un contrôle des habilitations sur les ressources essentielles du service dématérialisé est le complément indispensable à la sécurité cryptographique.

La référence !

securite_de_la_dematérialisation