Quelle est la valeur d’une base de données de clients, d’une innovation technique, des comptes d’utilisateurs d’un réseau social, de votre réponse à un appel d’offres, des données médicales d’un patient ? Vos données sont précieuses… Pour vous, mais aussi pour les autres !
Sur Internet, réseau public ouvert à tous, où le cheminement des informations transmises n’est pas contrôlable, la confidentialité est un enjeu de taille. Deux mécanismes complémentaires sont mis en œuvre pour maintenir le secret et éviter une utilisation frauduleuse des données : la gestion des habilitations, et le chiffrement.
La gestion des habilitations
Le procédé le plus répandu pour protéger des informations confidentielles gérées dans un service dématérialisé est la gestion des habilitations : même si la base de données ou le répertoire de stockage des fichiers contient l’ensemble des informations disponibles au sein du service, chaque utilisateur n’accède qu’à des « vues » restreintes aux informations qu’il est habilité à consulter.
Les droits des utilisateurs sont en général regroupés sous forme de « profils » correspondant chacun à un métier concret. Le profil sera ensuite conjugué, de manière applicative, avec l’entité d’appartenance de l’utilisateur, de manière à apporter un filtrage supplémentaire.
Ce type de solution ne garantit aucunement la confidentialité des données vis-à-vis des administrateurs techniques du Système d’Information : l’exploitant de la base de données, sous réserve qu’il ait la connaissance métier de l’application, pourra consulter l’ensemble des informations présentes dans le système.
Le chiffrement
Le chiffrement, souvent appelé improprement « cryptage », consiste à rendre une donnée inintelligible à tous sauf à son destinataire légitime.
Dans la section consacrée à la cryptographie, nous avons détaillé deux mécanismes permettant de chiffrer des données :
- la cryptographie symétrique, qui utilise la même clef pour le chiffrement et le déchiffrement, et qui permet de traiter avec de bonnes performances des données volumineuses : l’algorithme phare de cette catégorie est AES ;
- la cryptographie asymétrique, qui utilise des clefs différentes pour le chiffrement (clef publique) et le déchiffrement (clef privée), et qui ne permet de chiffrer que des données de taille restreinte, avec des performances limitées : l’algorithme phare de cette catégorie est RSA.
Dans la pratique, ces deux mécanismes sont mis en œuvre simultanément pour le chiffrement et le déchiffrement des données, au sein d’un mécanisme à deux étages.
Le chiffrement se déroule ainsi :
- l’émetteur de la donnée confidentielle génère une clef de chiffrement symétrique, sous la forme d’une suite aléatoire de bits ;
- l’émetteur chiffre les données confidentielles à l’aide de la cryptographie symétrique, en employant l’algorithme AES et la clef qu’il vient de générer ;
- l’émetteur se procure la clef publique du destinataire, en l’extrayant de son certificat : cela nécessite que, lors d’un échange préalable, ce certificat lui ait été transmis, ou qu’il ait pu le trouver dans un annuaire d’entreprise par exemple ;
- l’émetteur chiffre la clef symétrique qu’il a générée lors de la première étape à l’aide de la cryptographie asymétrique, en employant l’algorithme RSA et la clef publique du destinataire ;
- la donnée chiffrée et la clef de déchiffrement elle-même chiffrée sont réunies dans une « enveloppe », que l’émetteur peut transmettre au destinataire.
La transmission de l’enveloppe chiffrée ne comporte aucun risque, même en cas d’interception. En effet, on ne peut déchiffrer la donnée confidentielle sans disposer de la clef symétrique ; et pour accéder à la clef symétrique, qui a été chiffrée avec la clef publique du destinataire, il faut disposer de sa clef privée. Or, c’est le principe de la cryptographie asymétrique, la clef privée est sous le contrôle exclusif de son porteur.
Le format d’enveloppe chiffrée le plus répandu est CMS, aussi appelé PKCS#7, et repris dans la RFC 2630. C’est ce format qui est employé dans la norme de courrier électronique sécurisé S/MIME.
Le déchiffrement comporte les étapes inverses du chiffrement :
- le destinataire reçoit l’enveloppe chiffrée ; il en extrait la clef chiffrée d’une part, et les données chiffrées d’autre part ;
- le destinataire déchiffre la clef symétrique à l’aide de la cryptographie asymétrique, en employant l’algorithme RSA et sa propre clef privée ;
- le destinataire déchiffre les données à l’aide de la cryptographie symétrique, en employant l’algorithme AES et la clef symétrique qu’il vient de déchiffrer. Il a alors accès aux données en clair.