article cryptographie

19
Sécurité des systèmes d’informations en se basant sur les algorithmes cryptographiques Mohammed ERRITALI, Mohamed Fakir ,Belaid Bouikhalen [email protected] Faculté des sciences et techniques de Benimellal Résumé: Dans cet article, nous allons dresser un panorama sur l’utilisation de la cryptographie et la signature numérique pour sécuriser un système d’information, nous commençons par un état de l’art sur les algorithmes cryptographies et les algorithmes de signature numérique et on termine par quelques applications. Mots clés : chiffrement symétrique, chiffrement asymétriques ,signature numérique ,ICP,SSL. 1. Introduction Les systèmes d’informations font désormais partie intégrante du fonctionnement des administrations publiques, de l’activité des entreprises, et du mode de vie des citoyens. Les services qu’ils assurent nous sont tout aussi indispensables que l’approvisionnement en eau ou en électricité. Dans la vie de tous les jours, la dématérialisation, les échanges numériques, font que chacun est de plus en plus dépendant des outils mis à sa disposition : suivis et transactions bancaires, déclarations d’impôts, achats en ligne,...etc S’il en était besoin, des événements récents sont là pour nous le prouver. Que le SI (système d’information) défaille et c’est toute une machine, une chaine de production, une entreprise, un secteur d’activité qui s’arrête ! Dans ce contexte, il est naturel de prendre des mesures pour sécuriser le SI au juste niveau . D’où la nécessité d'identifier les menaces potentielles, et donc de connaître et de prévoir la façon de procéder de l'ennemi. La sécurité des systèmes informatiques se cantonne généralement à garantir les droits d'accès aux données et ressources d'un système en mettant en place des mécanismes d'authentification et de contrôle permettant d'assurer que les utilisateurs des dites ressources possèdent uniquement les droits qui leur ont été octroyés. Ces mécanismes de sécurité mis en place peuvent néanmoins provoquer une gêne au niveau des utilisateurs et les consignes et règles deviennent de plus en plus compliquées au fur et à mesure que le réseau s'étend. Ainsi, la sécurité informatique doit être étudiée de telle manière à ne pas empêcher les utilisateurs 1

Transcript of article cryptographie

Page 1: article cryptographie

Sécurité des systèmes d’informations en se basant sur les algorithmes cryptographiques

Mohammed ERRITALI, Mohamed Fakir ,Belaid [email protected]

Faculté des sciences et techniques de Benimellal

Résumé:

Dans cet article, nous allons dresser un panorama sur l’utilisation de la cryptographie et la signature numérique pour sécuriser un système d’information, nous commençons par un état de l’art sur les algorithmes cryptographies et les algorithmes de signature numérique et on termine par quelques applications.

Mots clés : chiffrement symétrique, chiffrement asymétriques ,signature numérique ,ICP,SSL.

1. IntroductionLes systèmes d’informations font désormais

partie intégrante du fonctionnement des administrations publiques, de l’activité des entreprises, et du mode de vie des citoyens. Les services qu’ils assurent nous sont tout aussi indispensables que l’approvisionnement en eau ou en électricité.Dans la vie de tous les jours, la dématérialisation, les échanges numériques, font que chacun est de plus en plus dépendant des outils mis à sa disposition : suivis et transactions bancaires, déclarations d’impôts, achats en ligne,...etc S’il en était besoin, des événements récents sont là pour nous le prouver. Que le SI (système d’information) défaille et c’est toute une machine, une chaine de production, une entreprise, un secteur d’activité qui s’arrête !Dans ce contexte, il est naturel de prendre des mesures pour sécuriser le SI au juste niveau .D’où la nécessité d'identifier les menaces potentielles, et donc de connaître et de prévoir la façon de procéder de l'ennemi. La sécurité des systèmes informatiques se cantonne généralement à garantir les droits d'accès aux données et ressources d'un système en mettant en place des mécanismes d'authentification et de contrôle permettant d'assurer que les utilisateurs des dites ressources possèdent uniquement les droits qui leur ont été octroyés. Ces mécanismes de sécurité mis en place peuvent néanmoins provoquer une gêne au niveau des utilisateurs et les consignes et règles deviennent de plus en plus compliquées au fur et à mesure que le réseau s'étend. Ainsi, la sécurité informatique doit être étudiée de telle manière à ne pas empêcher les utilisateurs de développer les usages qui leur sont nécessaires, et de faire en sorte qu'ils puissent utiliser le système d'information en toute confiance.

En effet la notion de cryptographie est née à partir du moment où l’on a voulu communiquer à l’abri d’oreilles indiscrètes. De Jules César et son armée, à Roméo et Juliette, en passant par toutes les cartes au trésor, il a fallu chiffrer certains renseignements. La période contemporaine n’a rien amélioré dans ce domaine. Au contraire, la société de consommation a fait apparaître de nouveaux besoins cryptographiques. Bien entendu sont restées présentes les applications militaires des communications secrètes, ainsi que les transactions bancaires. Mais en outre il faut assurer le secret des communications sur des réseaux télé-informatiques, ainsi qu’empêcher les pirates des temps modernes de s’infiltrer dans ces réseaux d’ordinateurs. La cryptographie sert de plus en plus dans des domaines variés.Jusqu’à récemment, la sécurité de ces systèmes reposait sur une information secrète que se partageaient les utilisateurs, et qui permettait de communiquer de manière confidentielle. Pour cette raison, l’ensemble de ces systèmes est appelé cryptographie à clé secrète. Comme systèmes à clé secrète, on se sert d’algorithmes utilisant la même clé en chiffrement et en déchiffrement et qui, pour cela, sont appelés algorithmes de chiffrement symétriques. Le DES, l’AES, IDEA en sont les exemples les plus célèbres. Bien que ces algorithmes soient encore très utilisés pour le chiffrement de messages en raison du très haut débit, ceux-ci ne satisfont plus les besoins nouveaux.La cryptographie à clé publique a été formalisée et a permis de répondre à ces besoins. Il s’agit de l’ensemble des moyens qui permettent de fournir une solution aux nouveaux problèmes qui sont l’identification, l’authentification et la confidentialité de messages.

1

Page 2: article cryptographie

La cryptographie à clé publique intervient dans de nombreuses applications quotidiennes, de l’utilisation de cartes à puce en passant par la téléphonie mobile, jusqu’à la connexion d’un utilisateur à un ordinateur. Cependant, la sécurité de ces applications repose essentiellement sur deux problèmes réputés difficiles de théorie des nombres : le problème de factorisation et le problème du logarithme discret. Bien que ces deux problèmes résistent encore aux cryptanalystes, ils ne sont pas à l’abri d’une percée théorique ni même de l’ordinateur quantique qui mettrait en danger la difficulté de les résoudre.Alors que la cryptographie tente de protéger les secrets des attaques d’éventuels fraudeurs.

2-Chiffrement symétrique à clé secrète

De l’époque de Jules César à la fin des années 1970, un grand nombre de systèmes de chiffrement ont été inventés ( DES,AES,RSA…) [2], qui consistaient à faire subir à un texte clair une transformation plus ou moins complexe pour en déduire un texte, dit chiffré. La transformation repose sur deux éléments : une fonction mathématique et une clé secrète. Seule une personne connaissant la fonction et possédant la clé peut effectuer la transformation inverse, qui transforme le texte chiffré en texte clair. C’est la même clé qui sert au chiffrement et au déchiffrement, et pour cette raison elle doit rester secrète.La Figure 1 est une illustration du processus de chiffrement symétrique

Figure 1: Chiffrement symétrique

Les techniques cryptographiques s’appliquent aux différents besoins de sécurité pour les échanges de données informatisées :• L’authentification : par challenge cryptographique (défi-réponse), c’est à dire transformation, à l’aide d’une valeur secrète, d’une valeur (le défi) pour donner une valeur attendue par le vérificateur (la réponse).• L’intégrité : par calcul d’une empreinte numérique du texte à protéger avec un algorithme résistant aux

collisions (risque que deux textes différents donnent la même empreinte).• La confidentialité : par transformation cryptographique, avec l’aide d’une clé secrète, du texte à protéger.• La non-répudiation : par calcul d’une valeur propre à l’acteur qui a fait telle ou telle action.

2.1-Data Encryption Standard (DES)

Le premier système de chiffrement informatique normalisé fut créé par le cryptographe américaine d'origine allemande , Horst Feistel en 1934[2]. Sa nationalité et son métier de cryptographe lui valurent quelques difficultés avec la National Security Agency (NSA), désireuse avant tout de garder la maîtrise des moyens de chiffrement et de pouvoir percer les codes utilisés par des personnes privées. Finalement il mit ses compétences au service d’IBM, pour qui il développa au début des années 1970 le cryptosystème Lucifer, base du futur Data Encryption Standard (DES).Le DES repose sur les principes suivants : le texte clair est codé en numération binaire et découpé en blocs de 64 bits. Chaque bloc est découpé en demi-blocs dont les bits subissent des permutations complexes, puis les demi-blocs sont additionnés et soumis à d’autres transformations. L’opération est recommencée seize fois. La fonction de transformation comporte des variations en fonction de la clé, qui est un nombre arbitraire choisi par les utilisateurs du code. Le nombre de valeurs possibles pour la clé détermine le nombre de façons dont un message peut être chiffré. La Figure 2 illustre les étapes de l'algorithme DES . L’émetteur du message secret le chiffre selon l’algorithme DES au moyen de la clé, le destinataire applique la fonction inverse avec la même clé pour le déchiffrer.

La NSA a obtenu que la normalisation du DES en 1976 [2] comporte une limitation de la taille de la clé à 56 bits. Aujourd’hui cette valeur est notoirement trop faible, et l’on utilise le triple DES, avec une longueur de clé de 112 bits.La postérité actuelle du DES procure un chiffrement qui peut être considéré comme robuste, à condition que soit résolu le problème crucial de tous les systèmes qui reposent sur une clé secrète utilisée aussi bien pour le chiffrement que pour le déchiffrement : les participants doivent s’échanger des clés de façon secrète, ce qui n’est pas simple.L'algorithme DES

2

Page 3: article cryptographie

Figure 2: Data Encryption Standard

2.2-Advanced Encryption Standard (AES)

Il est issu d'un appel à candidatures international lancé en janvier 1997 et ayant reçu 15 propositions. Parmi ces 15 algorithmes, 5 furent choisis pour une évaluation plus poussée en avril 1999 : MARS, RC6, Rijndael, Serpent, et Twofish . Au bout de cette évaluation, ce fut finalement le candidat Rijndael, du nom de ses deux concepteurs Joan Daemen et Vincent Rijmen (tous les deux de nationalité belge) qui a été choisi [9,10]. Ces deux experts en cryptographie étaient déjà les auteurs d'un autre algorithme : Square. AES est un sous-ensemble de Rijndael : il ne travaille qu'avec des blocs de 128 bits alors que Rijndael offre des tailles de blocs et de clefs qui sont des multiples de 32 (compris entre 128 et 256 bits).Ce faisant, l'AES remplace le DES (choisi comme standard dans les années 1970) qui de nos jours devenait obsolète, car il utilisait des clefs de 56 bits seulement. L'AES a été adopté par le NIST (National Institute of Standards and Technology) en 2001 [9,10]. De plus, son utilisation est très pratique car il consomme peu de mémoire et n'étant pas basé sur un schéma de Feistel, sa complexité est moindre et il est plus facile à implémenter.L'algorithme prend en entrée un bloc de 128 bits (16 octets), la clé fait 128, 192 ou 256 bits. Les 16 octets en entrée sont permutés selon une table définie au préalable. Ces octets sont ensuite placés dans une matrice de 4x4 éléments et ses lignes subissent une rotation vers la droite. L'incrément pour la rotation varie selon le numéro de la ligne. Une transformation linéaire est ensuite appliquée sur la matrice, elle consiste en la multiplication binaire de chaque élément de la matrice avec des polynômes issus d'une matrice auxiliaire, cette

multiplication est soumise à des règles spéciales selon GF(28) (groupe de Galois ou corps fini) [9,10]. La transformation linéaire garantit une meilleure diffusion (propagation des bits dans la structure) sur plusieurs tours.Finalement, un XOR entre la matrice et une autre matrice permet d'obtenir une matrice intermédiaire. Ces différentes opérations sont répétées plusieurs fois et définissent un « tour ». Pour une clé de 128, 192 ou 256, AES nécessite respectivement 10, 12 ou 14 tours.La Figure 3 illustre les différents opérations de l'algorithme AES .

Figure 3: Advanced Encryption Standard

2.3-Protocole Diffie et Hellman

Si Ayoub veut entretenir une correspondance secrète avec Mohammed, ils peuvent convenir de chiffrer leurs messages avec une algorithme tel que le triple DES ou AES, que nous venons de présenter. Cette algorithme présente toutes les garanties de robustesse, mais il faudra que Ayoub et Mohammed conviennent d’une clé secrète : pour ce faire, ils devront se rencontrer, ce qui peut être impossible, ou se communiquer la clé par la poste . Dans les deux cas, l’instant de l’échange est celui dont un espion peut profiter pour dérober leur secret et ainsi réduire à néant la sûreté de leurs communications. C’est le problème de l’échange de clés.

2.3.1-Le problème de l’échange de clés3

Page 4: article cryptographie

Depuis des siècles le problème de l’échange des clés était considéré comme un inconvénient naturel du chiffrement.Avec l’utilisation de l’ordinateur et des télétransmissions, et la dématérialisation de l’information qu’ils autorisent, le problème se pose différemment. Dans les années 1970 un chercheur indépendant, Whitfield Diffie [2], réfléchissait au moyen pour deux utilisateurs du réseau ARPANET d’échanger des courriers électroniques chiffrés sans se rencontrer physiquement au préalable pour convenir de la clé de chiffrement qu’ils utiliseraient. En 1974 il donna une conférence sur le sujet au centre de recherche Thomas J. Watson d’IBM à Yorktown Heights (déjà le lieu de travail de Horst Feistel), et là il apprit que Martin Hellman, professeur à l’université Stanford à Palo Alto, avait donné une conférence sur le même sujet. Aussitôt il prit sa voiture et traversa le continent pour rencontrer Hellman[2].Diffie et Hellman cherchaient une méthode pour convenir d’un secret partagé sans le faire circuler entre les participants, en d’autres termes une fonction mathématique telle que les participants puissent échanger des informations dont eux seuls pourraient déduire le secret. Les caractéristiques souhaitées d’une telle fonction sont la relative facilité de calcul dans le sens direct, et la quasi-impossibilité de calculer la fonction réciproque. Ainsi, si s est le secret en clair, F la fonction de chiffrement, c le secret chiffré, D la fonction de déchiffrement, il faut que c = F(s) soit facile à calculer, mais s = D(c) pratiquement impossible à calculer pour tout autre que les participants .

2.3.2-Mise en œuvre de l’algorithme Diffie-Hellman Le protocole d’échange de clés de Diffie-Hellman ,repose sur une fonction de la forme

, avec P premier et W < P.

Une telle fonction est très facile à calculer, mais la connaissance de K ne permet pas d’en déduire facilement X. Cette fonction est publique, ainsi que les valeurs de W et P.1.Ayoub choisit un nombre qui restera son secret, disons A.2.Mohammed choisit un nombre qui restera son secret, disons B.3.Ayoub et Mohammed veulent échanger la clé

secrète, qui est en fait , mais ils

ne la connaissent pas encore, puisque chacun ne connaît que A ou B, mais pas les deux.4.Ayoub applique à A la fonction à sens unique,

soit α le résultat :

5. Mohammed applique à B la fonction à sens

unique, soit β le résultat :

6.Ayoub envoie α à Mohammed, et Mohammed lui envoie β, comme représenté par la, ils peuvent être connus de la terre entière sans que le secret d’ Ayoub et de Mohammed soit divulgué.

7. Ayoub a reçu β et calcule (c'est-à-

dire en passant par , mais il ne

connaît pas B) :

8. Mohammed a reçu α et calcule (c'est-

à-dire en passant par, ,mais il ne

connaît pas A) :

Ayoub et Mohammed obtiennent à la fin de leurs calculs respectifs le même nombre qui n’a jamais été exposé à la vue des indiscrets : c’est la clé S .

3-Le chiffrement asymétrique à clé publique

La méthode de Diffie et Hellman permet l’échange de clés, mais elle impose une concertation préalable entre les acteurs. Parfois ce n’est pas pratique : si Ayoub veut envoyer à Mohammed un courrier électronique chiffré pendant qu’il est en vacances, il sera obligée d’attendre son retour pour établir la clé avec lui.Whitfield Diffie avait eu une autre idée, pour laquelle il n’avait pas trouvé de solution mathématique appropriée : un système où l’on utiliserait une clé pour chiffrer et une autre pour déchiffrer. Ainsi, Mohammed proposerait à Ayoub une clé de chiffrement, avec laquelle il coderait le message, et Mohammed le décoderait avec une clé différente, la clé de déchiffrement (Figure 4). La clé de chiffrement ne permet que de chiffrer, même Ayoub serait incapable de déchiffrer son propre message avec cette clé, seul Mohammed le peut avec sa clé de déchiffrement. Comme la clé de chiffrement ne fonctionne que dans un sens, elle permet de créer des secrets mais pas d’en dévoiler, et elle peut donc être publique, inscrite dans un annuaire ou sur un site Web.Quiconque veut envoyer un message chiffré à Mohammed peut la prendre et l’utiliser.Il faut seulement être sûr que personne ne pourra calculer la clé de déchiffrement à partir de la clé de chiffrement. Et là l’intuition mathématique est décisive.Si l’idée du chiffrement asymétrique à clés publiques revient à Diffie et Hellman, la réalisation de cette idée revient à Rivest, Shamir et Adleman. Ils ont trouvé une solution mathématique RSA permettant sa mise en œuvre .Une personne désireuse de communiquer selon cette méthode doit procéder ainsi :

4

Page 5: article cryptographie

1. Prendre deux nombres premiers p et q. En cryptographie réelle on choisira de très grands nombres, de 150 chiffres décimaux chacun. 2. Calculer n = pq.3. Calculer z = (p − 1)(q − 1). (Ce nombre est la valeur de la fonction φ(n), dite fonction d’Euler, et on notera qu’elle donne la taille du groupe

multiplicatif modulo n, ).

4. Prendre un petit entier e, impair et premier avec

z. Dans la pratique, e sera toujours petit devant .

5. Calculer l’inverse de e (mod z), c’est-à-dire d tel que e.d = 1 mod z. Les théorèmes de l’arithmétique modulaire nous assurent que, dans notre cas, d existe et est unique. 6. La paire P = (e, n) est la clé publique.7. Le triplet S = (d, p, q) est la clé privée.Ayoub veut lui envoyer un message M. il se procure la clé publique de Mohammed sur son site Web et il procède au chiffrement de son message M pour obtenir le chiffré C comme ceci:

C = P(M) =

Pour obtenir le texte clair T, Mohammed décode avec sa clé secrète ainsi :

T = S(C) =

En fait c’est très logique :

S(C) =

=

= mod n

= M mod n

Le dernier résultat, = M (mod n) découle du

fait que e et d sont inverses modulo n, il se démontre grâce au petit théorème de Fermat .

Figure 4 : Chiffrement asymétrique

4-Signature numérique

4.1-Introduction La signature électronique est une

application très concrète de la cryptographie asymétrique qui fut inventée dans le milieu des

années 70. En effet la cryptographie moderne ne se limite plus à assurer la confidentialité des informations, mais elle permet aussi l’authentification de celles–ci grâce à la signature numérique.La signature numérique est donc un mécanisme qui permet d'authentifier un message, autrement dit de prouver qu'un message provient bien d'un expéditeur donné.Selon la norme ISO 7498-2 relative à l’architecture de sécurité pour les systèmes ouverts, la définition de la signature numérique : « Données ajoutées à une unité de données, ou transformation cryptographique d’une unité de données, permettant à un destinataire de prouver la source et l’intégrité de l’unité de données et protégeant contre la contrefaçon par le destinataire» [7].La signature est réalisée en utilisant la clé privée du signataire, tous ses partenaires pouvant alors vérifier sa signature en utilisant sa clé publique. Dans tous les protocoles opérationnels, c’est en fait une empreinte numérique, et non pas l’ensemble du document, qui est signée, ce pour des raisons de performance, les algorithmes asymétriques étant très consommateurs de ressources.La technique utilisée pour calculer l'empreinte numérique est le hachage. Cette technique permet de produire un condensé de message qui est une représentation réduite et unique du message complet. La Figure 5 illustre les étapes de la signature numérique. Les algorithmes de hachage sont des algorithmes de chiffrement unidirectionnels; il est donc impossible de retrouver le message d'origine à partir du condensé .Les raisons principales pour lesquelles on produit un condensé de message sont :1. l'intégrité du message envoyé est préservée; toute altération du message sera aussitôt détectée;2. la signature numérique sera appliquée au condensé dont la taille est habituellement beaucoup plus petite que le message lui-même;3. les algorithmes de hachage sont bien plus rapides que n'importe quel algorithme de chiffrement (que ce soit à clé publique ou à clé symétrique).Le condensé de message est fort probablement unique dans le sens où il est presque impossible de trouver deux messages significatifs qui produiront simultanément le même condensé. Par conséquent, la probabilité qu'un message trafiqué produise le même condensé que l'original est quasiment nulle.

5

Page 6: article cryptographie

Figure 5: Signature numérique

La signature numérique nécessite l'utilisation de certificats électroniques. Ceux-ci sont générées par des Autorités de Certification (CA), qui permettent d'identifier de façon unique la personne (ou l'entité) qui détient les clés publiques et privées : ils peuvent être vus comme la carte d'identité numérique de cette personne ou entité. En plus de ce rôle, les certificats peuvent permettre de chiffrer des informations.

4.2-Certificat Les algorithmes de chiffrement

asymétrique sont basés sur le partage entre les différents utilisateurs d'une clé publique. Généralement le partage de cette clé se fait au travers d'un annuaire électronique. Toutefois ce mode de partage a une grande lacune : rien ne garantit que la clé est bien celle de l'utilisateur a qui elle est associée. En effet un pirate peut corrompre la clé publique présente dans l'annuaire en la remplaçant par sa clé publique. Ainsi, le pirate sera en mesure de déchiffrer tous les messages ayant été chiffrés avec la clé présente dans l'annuaire. Ainsi un certificat permet d'associer une clé publique à une entité (une personne, une machine, ...) afin d'en assurer la validité. Le certificat est en quelque sorte la carte d'identité de la clé publique, délivré par un organisme appelé autorité de certification (souvent notée CA pour Certification Authority). L'autorité de certification est chargée de délivrer les certificats, de leur assigner une date de validité (équivalent à la date limite de péremption des produits alimentaires), ainsi que de révoquer éventuellement des certificats avant cette date en cas de compromission de la clé (ou du propriétaire).

a. Structure d'un certificat

Les certificats sont des petits fichiers divisés en deux parties :

La partie contenant les informations

La partie contenant la signature de l'autorité de certification

La structure des certificats est normalisée par le standard X.509 de l'UIT (U n i o n I n t e r n a t i o n a l e d e s T é l é c o m m u n i c a t i o n s ), qui définit les informations contenues dans le certificat :

La version de X.509 à laquelle le certificat correspond ;

Le numéro de série du certificat ; L'algorithme de chiffrement utilisé pour

signer le certificat ; Le nom (DN, pour Distinguished Name)

de l'autorité de certification émettrice ; La date de début de validité du certificat ; La date de fin de validité du certificat ; L'objet de l'utilisation de la clé publique ; La clé publique du propriétaire du

certificat ; La signature de l'émetteur du certificat

(thumbprint). L'ensemble de ces informations (informations + clé publique du demandeur) est signé par l'autorité de certification, cela signifie qu'une fonction de hachage crée une empreinte de ces informations, puis ce condensé est chiffré à l'aide de la clé privée de l'autorité de certification (Figure 6); la clé publique ayant été préalablement largement diffusée afin de permettre aux utilisateurs de vérifier la signature avec la clé publique de l'autorité de certification.

Figure 6: Création d'un certificat par l'autorité de certification

Lorsqu'un utilisateur désire communiquer avec une autre personne, il lui suffit de se procurer le certificat du destinataire. Ce certificat contient le nom du destinataire, ainsi que sa clé publique et est signé par l'autorité de certification. Il est donc possible de vérifier la validité du message en appliquant d'une part la fonction de hachage aux informations contenues dans le certificat, en déchiffrant d'autre part la signature de l'autorité de certification avec la clé publique de cette dernière et en comparant ces deux résultats. La Figure 7 illustre cette vérification .

6

Page 7: article cryptographie

Figure 7: Vérification d'un certificat

b. Signatures de certificats

On distingue différents types de certificats selon le niveau de signature :

Les certificats auto-signés sont des certificats à usage interne. Signés par un serveur local, ce type de certificat permet de garantir la confidentialité des échanges au sein d'une organisation, par exemple pour le besoin d'un intranet. Il est ainsi possible d'effectuer une authentification des utilisateurs grâce à des certificats auto-signés.

Les certificats signés par un organisme de certification sont nécessaires lorsqu'il s'agit d'assurer la sécurité des échanges avec des utilisateurs anonymes, par exemple dans le cas d'un site web sécurisé accessible au grand public. Le certificateur tiers permet d'assurer à l'utilisateur que le certificat appartient bien à l'organisation à laquelle il est déclaré appartenir.

4.3-Infrastructure à clés publiques

l’autorité de Certification (AC ou CA Certification Authority) :C’est le cœur du système. Elle a la responsabilité de la qualité du service de certification, définie par un document qui doit être connu de tous les utilisateurs des certificats : La Politique de Certification (PC) (Certification Policy PC).

• Celle ci peut être précisée par des DPC (Déclaration de Procédures de Certifications) (Certification Practice Statement CPS).

• Une PC est une déclaration d’engagement qui doit permettre à un tiers de juger s’il peut utiliser un certificat pour une application donnée.

L’AC peut déléguer tout ou partie de la réalisation des fonctions dont elle est responsable . La fonction qui est le plus souvent déléguée est celle de l’Autorité d’Enregistrement (AE ou RA Registration Authority).

• L’autorité d’enregistrement collecte les demandes de certificats avec les informations nécessaires aux vérifications d’identité.

• Elle transmet cette demande à l’AC et sert d’intermédiaire pour la distribution de supports physiques de certificats (cartes à puces par exemple) et de mot de passes utilisés dans les échanges avec les utilisateurs.

• Elle peut servir également d’intermédiaire pour les révocations (en cas de perte de cartes par exemple).

Tiers de séquestre : Opérateur qui fournit les moyens de déchiffrer un message quand le détenteur des clefs de déchiffrement ne peut ou ne veut pas le déchiffrer et que les nécessités ou la loi l’y oblige. Un tiers de séquestre, séquestre donc des clefs de déchiffrement.Horodatage de confiance: Il s’agit d’offrir un accès à un serveur de temps permettant de dater de documents faisant l’objet de signatures électroniques. Les propriétés de ce serveur doivent couvrir les attaques d’anti et post datage du document. Toutes entités impliquées dans un schéma à clef publique doit détenir la clef publique de l’autorité de certification.Tout accès à un certificat doit être contrôlé:

Vérifier que la signature est valide Vérifier que la date courante est dans la

période de validitéPour éviter les rejeux de certificats invalidés le serveur d ’annuaire doit :

Soit s’authentifier Soit dater et signer sa réponse Soit transmettre périodiquement des listes

de révocation datée et signées

4.4-Fonctionnement d'une ICP (Infrastructure  à Clé Publique)

Une ICP est une combinaison de logiciels et de méthodes offrant un moyen de gérer les clés et les certificats et de les utiliser efficacement. Il suffit de songer à la complexité des opérations décrites plus tôt dans cet article pour comprendre l'absolue nécessité de fournir aux utilisateurs un soutien logiciel approprié en matière de cryptographie et de signature numérique. Mais rien n'a été dit encore au sujet de la gestion.Gestion des clés et des certificatsLa gestion des clés et des certificats englobe la série d'opérations requises pour créer et maintenir les clés et les certificats. La liste qui suit décrit les principaux aspects pris en charge par une solution de gestion ICP :1. Création des clés et des certificats : Comment générer des paires de clés? Comment délivrer des certificats aux utilisateurs?Une ICP doit offrir un soutien logiciel pour la génération des paires de clés et les demandes de

7

Page 8: article cryptographie

certificat. De plus, des méthodes doivent être mises en place pour vérifier l'identité de l'utilisateur avant de l'autoriser à demander un certificat.2. Protection des clés privées : Comment l'utilisateur protégera-t-il sa clé privée pour empêcher d'autres utilisateurs de s'en servir à mauvais escient?Les certificats sont librement accessibles parce qu'ils sont utilisés pour le chiffrement ou la vérification de signature. Les clés privées requièrent un niveau de protection raisonnable car elles sont utilisées pour le déchiffrement ou la signature numérique. Un solide mécanisme de mot de passe doit faire partie des caractéristiques d'une ICP efficace.3. Révocation de certificat : Comment gérer la situation quand la clé privée d'un utilisateur est compromise? Ou encore, comment gérer la situation quand un employé quitte la compagnie? Comment savoir si un certificat a été révoqué?Une ICP doit offrir un moyen de révoquer un certificat. Une fois révoqué, le certificat doit être inclus dans une liste de révocation accessible à tous les utilisateurs. Un mécanisme doit être fourni pour vérifier cette liste de révocation et interdire l'utilisation d'un certificat révoqué.4. Sauvegarde et récupération des clés : Qu'arrive-t-il aux fichiers chiffrés quand un utilisateur perd sa clé privée?Si la sauvegarde des clés n'est pas assurée, tous les messages et fichiers qui ont été chiffrés à l'aide de sa clé publique ne peuvent plus être déchiffrés et sont donc perdus à jamais. Une ICP doit offrir un mécanisme de sauvegarde et de récupération des clés privées afin que l'utilisateur puisse récupérer sa clé privée et accéder à ses fichiers.5. Mise à jour des clés et des certificats : Qu'arrive-t-il quand un certificat atteint ou est sur le point d'atteindre sa date d'expiration?Les clés et certificats ont une durée limitée. Une ICP doit offrir un mécanisme permettant au moins de mettre à jour la date d'expiration des certificats. Il est de bonne pratique, toutefois, d'assurer la mise à jour des clés et des certificats. Cette mise à jour peut se faire automatiquement, auquel cas l'utilisateur final reçoit un avis l'informant que la mise à jour a été effectuée, ou elle peut nécessiter une intervention de l'utilisateur au moment ou avant le moment où ses clés et certificats arrivent à expiration; dans ce cas, l'ICP doit informer au préalable l'utilisateur qu'une intervention de sa part est nécessaire.6. Gestion de l'historique des clés : Après plusieurs mises à jour des clés, comment l'utilisateur saura-t-il quelle clé privée utiliser pour déchiffrer les fichiers?Chaque fois qu'une clé est mise à jour, une nouvelle paire de clés est générée. Les fichiers qui ont été chiffrés à l'aide d'une ancienne clé publique ne peuvent être déchiffrés qu'avec la clé

privée correspondante. Si la gestion de l'historique des clés n'est pas assurée, l'utilisateur devra lui-même déterminer quelle clé il doit utiliser pour déchiffrer un fichier donné.7. Accès aux certificats : Comment un utilisateur qui veut envoyer un message à plusieurs destinataires pourra-t-il obtenir leurs certificats?Une ICP doit offrir un moyen facile et commode d'accéder à ces certificats. Un répertoire LDAP (Lightweight Directory Access Protocol) est couramment utilisé à cette fin .

4.5-Principe de la signature numérique

• M= ensemble des messages à signer,• S = ensemble de signatures,• K = ensemble de clésPour une clé donnée k ∈ K, on a une fonction de

signature : M → S, et une fonction de

vérification : M×S → {vrai,faux} telles que

pour chaque message m ∈ M et chaque signature

s∈ S on ait (m,s)= vrai⇔ (m)= s

4.5.1-La signature RSA

• M= S = , ou n est le produit de deux nombres

premiers p et q.• K = {(n,e,d) | ed≡ 1 (mod ϕ(n))} n et e sont publics, d est secret.La fonction de signature se calcule par

s= (m)=

La Figure 8 illustre le processus de création de la signature RSA.

Figure 8: Création du signature RSA

La vérification s’effectue en calculant m' =

(mod n) et on a (m,s)= vrai⇔ m= m'

8

Page 9: article cryptographie

La Figure 9 illustre le processus de vérification de la signature RSA.

Figure 9: Vérification du signature RSA

4.5.2-La signature El Gamal

Processus de signature Choix d'un nombre premier p.

Générateur g du groupe multiplicatif

Choix d'un entier x compris entre 0 et p-1

On calcule y= mod p

La clé public est (p,g,y)La clé privée est x Pour signer un message m:Choisir k<p-1 aléatoire et premier avec p-1.

Calculer r= mod p et s= (H(m)-xr) mod p-1

La signature de m et (r,s).La Figure 10 illustre le processus de création de la signature EL GAMAL .

Figure 10: Signature ELGAMAL

Pour vérifier une signature :Tester si 0<r<p

Calculer u= mod p et v= mod p

Accepter si u=v

4.5.3-Signature DSA(Digital Signature Algorithm)

Un standard Américain (FIPS 186) datant de 1995 de signature basé sur le principe de la signature ELGamal , il utilise une fonction de hachage résistante aux collisions.Processus de signature:

On choisie les paramètres suivant:Un nombre premier pUn deuxième nombre premier q diviseur q de p-1

Un générateur g du groupe cyclique d'ordre q de

Un entier x<q , on calcule y= mod p

La clé publique est (p,q,g,y).La clé privée est x Pour signer un message m:Choisir un entier k<q aléatoire Calculer :

( r= ) mod q

s= (H(m)+xr)mod q

La signature de m est (r,s)Pour vérifier la signature :Vérifier que r et s sont dans l'intervalle [1,q-1]Calculer :

w=

u=wH(m) mod qv=rw mod q

z=( mod p) mod q

Accepter si z=r

5-Sécurité des échanges sur Internet5.1-Introduction 

Avec le développement d'Internet, de nombreuses sociétés commerciales commencent à proposer des achats en ligne pour les particuliers. L'offre se met à croître régulièrement, mais le chiffre d'affaires dégagé par le commerce électronique restera encore modeste, tant que les clients n'auront pas une confiance totale dans le paiement par carte bancaire. Une des façons de sécuriser ce paiement est d'utiliser des protocoles d'authentification et de chiffrement tels que TLS (Transport layer Secure).La première version de SSL (Secure Socket layer ) à être parue [3], SSL 2.0, possédait un certain nombre de défauts de sécurité, parmi lesquels la possibilité de forcer l'utilisation d'algorithmes de chiffrement plus faibles, ou bien une absence de protection pour la prise de contact et la possibilité pour un attaquant d'exécuter des attaques par troncature . Le protocole SSL 3.0, fut développé

9

Page 10: article cryptographie

pour résoudre la majeure partie de ces problèmes, devenant rapidement le protocole le plus populaire pour sécuriser les échanges sur Internet.Avec un système SSL/TLS, la sécurité a été sensiblement améliorée, et les risques pour le client sont minimisés. Le degré de confiance à placer dans cette technologie, doit être comparé aux solutions de paiement par chèque ou par mandat. Dans celles-ci, d'après différentes études, le risque est près de 20 fois supérieur au risque lié à la toute première version de SSL. De plus il est à noter que les distributeurs bancaires courants utilisent presque tous cette même technologie pour faire transiter les informations vers la banque, et utilisent parfois même une version plus ancienne de SSL que les sites de e-commerce actuels, ce qui tend à prouver la fiabilité de cette solution.La session chiffrée est utilisée généralement lors de l'envoi du numéro de carte bancaire, mais elle peut l'être dans d'autres cas. Le chiffrement est réalisé par un chiffrement asymétrique (qui va permettre une authentification), comme par exemple l'algorithme RSA, et par un chiffrement symétrique (qui est plus léger à réaliser qu'un chiffrement asymétrique) et qui va assurer la transmission des informations (comme par exemple le AES). On y adjoint une fonction de hachage, comme le SHA-1, pour s'assurer que les données sont transmises sans être corrompues.En 2009, TLS est utilisé par la plupart des navigateurs Web. On reconnaît qu'une transaction est chiffrée lorsqu'une clé ou un cadenas fermé s'affiche dans un coin inférieur de l'écran ainsi qu'à gauche dans la barre d'adresse, l'adresse commence par https://..

Dans la pile de protocole TCP/IP, SSL se situe entre la couche application (comme HTTP, et la couche transport TCP. Son utilisation la plus commune reste cependant en dessous de http(Hypertext Transfer Protocol). La couche SSL est implémentée par la couche session de la pile, ce qui a deux conséquences :

pour toute application existante, il peut exister une application utilisant SSL. Par exemple, l'application HTTPS (Hypertext Transfer Protocol secured) correspond à HTTP au-dessus de SSL ;

une application SSL se voit attribuer un nouveau numéro de port par l'IANA(Internet Assigned Numbers Authority). Par exemple HTTPS est associé au port 443.

2-Authentification du client SSL par certificat numériqueUne session SSL débute toujours par un échange de messages appelé négociation SSL. La négociation permet au serveur de s'authentifier auprès du client en utilisant les techniques par clef publique, puis

autorise le client et le serveur à coopérer pour la création de clefs symétriques utilisées pour le cryptage rapide, le décryptage, et la détection de l'altération des données pendant la session qui suit. Éventuellement, la négociation SSL peut également permettre au client de s'authentifier auprès du serveur. La Figure 11 illustre cette authentification. Les détails exacts des messages échangés pendant la négociation SSL peuvent être résumées comme :

1. Le client envoie au serveur sa version de SSL, ses paramètres de chiffrement, des données générées aléatoirement, et toutes autres informations dont le serveur à besoin pour communiquer avec lui en utilisant SSL.

2. Le serveur envoie au client sa version de SSL ses paramètres de chiffrement, des données générées aléatoirement, et toutes autres informations dont le client à besoin pour communiquer avec lui en utilisant SSL. Le serveur envoie également son propre certificat et, si le client demande une ressource serveur nécessitant une authentification client, il demande le certificat client.

3. Le client utilise certaines informations envoyées par le serveur pour l'authentifier. Si le serveur ne peut pas être authentifié, l'utilisateur est averti du problème et il est informé que la connexion chiffrée et authentifiée ne peut pas être établie. Si le serveur peut être correctement authentifié, le client procède alors à l'étape 4.

4. En utilisant toutes les données générées pendant la négociation SSL, le client (avec la coopération du serveur, suivant les chiffrements utilisés) crée un code secret préliminaire pour la session, le chiffre avec la clef publique du serveur (obtenue dans le certificat du serveur envoyé à l'étape 2), et envoie le code secret préliminaire chiffré au serveur.

5. Si le serveur requiert une authentification client (une étape optionnelle dans la négociation), le client doit alors signer une autre portion de données limitée à cette négociation et connue par le client et le serveur. Dans ce cas, le client envoie les données chiffrées et son propre certificat au serveur ainsi que le code secret préliminaire chiffré.

6. Si le serveur a requis une authentification client, il tente cette authentification . Si le client ne peut être authentifié, alors la session prend fin. Si le client est authentifié avec succès, le serveur utilise sa clef privée pour déchiffrer le code secret préliminaire, puis procéder à une série

10

Page 11: article cryptographie

d'étapes (également exécutée par le client, à partir du même code secret préliminaire) pour générer le code secret principale.

7. Le client et le serveur utilise tout les deux, le code secret principale pour générer des clefs de sessions, qui sont des clefs symétriques utilisées pour chiffrer et déchiffrer les informations échangées pendant la session SSL et pour vérifier leur intégrité, afin de détecter tout changement intervenu dans les données entre leur envoie et leur réception durant la connexion SSL.

8. Le client envoie un message au serveur pour l'informer que les futures données transmises seront chiffrées avec la clef de session. Il envoie alors séparément un message (chiffré) indiquant que la négociation côté client est finie.

9. Le serveur envoie un message au client pour l'informer que les futures données transmises seront chiffrées avec la clef de session. Il envoie alors séparément un message chiffré indiquant que la négociation SSL côté serveur est finie.

10. La négociation SSL est maintenant terminée et la session SSL peut commencer. Le client et le serveur utilisent les clefs de session pour crypter et décrypter les données échangées et pour valider leur intégrité.

Figure 11: Processus d'authentification avec une certificat X.509

Dans la majorité des cas, l'utilisateur authentifie le serveur TLS sur lequel il se connecte. Cette authentification est réalisée par l'utilisation d'un certificat numérique X.509 délivré par une autorité de certification (AC). Mais de plus en plus d'applications web utilisent maintenant l'authentification du poste client en exploitant TLS.

Il est alors possible d'offrir une authentification mutuelle entre le client et le serveur. Le certificat client peut être stocké au format logiciel sur le poste client ou au format matériel (carte à puce, token USB) pour augmenter la sécurité du lien TLS. Cette solution permet d'offrir des mécanismes d'authentification forte.

6-Application

Dans ce travail notre but et de tester le fonctionnement des systèmes cryptographique ainsi que de la signature numérique.Pour que ces algorithmes soit accessible aux utilisateurs ,dans une première étape, nous avons développé une application en java qui fournie aux utilisateurs la possibilité de donner des textes claires à chiffrer ou a déchiffrer en utilisant les quatre algorithmes cryptographique DES,AES, Blowfish et RSA ,de vérifier l'intégrité des fichier avec les fonctions de hachages MD5 (message digest 5) ou les signer avec DSA(Digital Signature Algorithm) La figure 12 illustre un exemple des fenêtres de l'application:

Figure 12: Exécution de l'algorithme DES

Ensuite nous avons abordé la comparaison des temps d'exécutions de ces implémentations logiciels afin de montrer que les algorithmes à clés publiques sont très lentes et consommateurs de ressources. Enfin pour de tester le fonctionnement des certificat X.509 utilisés au niveau du protocole SSL nous avons écrit un programme qui permet simplement d'utiliser les fonctionnalités de SSL en créant une SSLSocket et une SSLServerSocket. L'application dans sa partie serveur va chercher elle même le fichier de certification en utilisant :

String keystore = "serverkeys";

11

Page 12: article cryptographie

ks.load(new FileInputStream(keystore), keystorepass);Le client doit accepter le certificat du serveur ,pour cela il utilise le fichier :truststore.

7- Conclusion et perspectives

La cryptographie est un domaine qui attire de plus en plus l’attention des groupes de recherche. En effet la cryptographie à clé publique est extrêmement attrayante et riche en perspectives, intégrant à la fois le chiffrement et la signature numérique. Elle constitue une véritable percée par rapport aux systèmes cryptographiques à clé symétrique.Au-delà de l'aspect technique, il faut voir la nécessité de mettre en place une architecture, soit une ICP, qui comprend les outils nécessaires pour gérer et utiliser efficacement les clés et certificats. Dans ce travail, nous avons d’abord présenté quelques notions sur la cryptographie et la signature numérique et leurs utilisations pour sécuriser les échanges sur internet . J’aimerais en guise de conclusion évoquer quelques pistes de travail connexes que je n’ai malheureusement pas eu le temps d’approfondir lors de mon projet de fin d'études : le cryptanalyse et la cryptographie avec les courbes elliptiques .Pour les courbes elliptiques je pense qu'ils commencent à être connues d’un plus large public. Gageons que dans un monde dominé par la cryptographie à clef publique RSA, ces dernières deviennent à terme une alternative crédible.Certaines idées et le prototype du système cryptographique présentés dans ce travail restent à compléter. Mais les concepts cryptographique qui sont développés permet de voir plus clair l'importance du chiffrement est signature numériques dans la sécurité des échanges au sein des systèmes d'information. Aujourd’hui, deux types de chiffrement permettent de sécuriser les échanges numériques Cependant, il n’existe pas à notre connaissance des systèmes qui regroupent ces deux techniques .

Nous concluent que ces deux techniques peuvent être complémentaires et combinés dans un seul système si on souhaite obtenir un système de chiffrement non seulement performant, mais surtout répondant aux besoins et attentes des utilisateurs.

8-Bibliographie:

[1] Ewelle Ewelle Richard ,TPE : Connectivité et sécurité des réseaux sans fils, Institut de la francophonie pour l'informatique, rapport final, Hanoï, Juillet – 2009 [2] Laurent Bloch et Christophe Wolfhugel ,Sécurité informatique Principes et méthode, éditions Eyrolles 2007.[3] Cédric Llorens , Laurent Levier et Denis Valois ,Tableaux de bord de la sécurité réseau, éditions Eyrolles ,2éme édition 2006.[4] CGI, Étude technique : Cryptographie à clé publique et signature numérique Principes de fonctionnement, Septembre 2002 .[5] Mohammed C Kocher, Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems, Advances in Cryptology - CRYPTO’96,LectureNotes in Computer Sciences, Springer, 1996.[6] David Brumley et Dan Boneh, Remote Timing Attacks Are Practical, 12th USENIX Security Symposium, 2003.[7] La Lettre d'ADELI n°46 ,Signature cryptographique : du numérique à l’électronique , Janvier 2002.[8]Sammy POPOTTE-Laboratoire SUPINFO des technologies Microsoft ,Présentation d'IPSEC dans un environnement Windows 2000, http://www.laboratoire-microsoft.org/articles/network/ipsec/.[9] National institute of standards and technology (NIST),Advanced Encryption standard (AES) Conference, (Rome, Italy), March 1999.[10] National institute of standards and technology (NIST),Advanced Encryption standard (AES), Federal Information Processing Standards (FIPS) publication197,2001.

12

Page 13: article cryptographie

13