cryptosec
IPSec
Généralités :
C’est un protocole développé par l’IETF qui a pour but de sécuriser TCP/IP, de façon standardisée et donc intéropérable (c’est du moins un des buts du standard). Par l’authentification et le chiffrement des paquets IP, IPSec permet de sécuriser toute transmission de données reposant sur TCP/IP (contrairement à SSL, il n’est pas nécessaire de lancer des processus particuliers, sur des ports particuliers... https sur 443 et ftps 990 par exemple, correspondant aux couches supérieures).
IPSec est un protocole particulièrement complexe.
Les principales implémentations d’IPSec se retrouvent dans les logiciels et matériels de VPN (Virtual Private Network).
De plus en plus (...)
SSL-TLS
Généralités :
SSL (Secure Socket Layer) est un protocole à négociation (on parle du " handshake " SSL), développé à l’origine par Netscape.
Il a pour but de sécuriser les transactions Internet, par authentification du client (un navigateur la plupart du temps) et du serveur, et par chiffrement de la session.
La sécurisation des connexions à l’aide du protocole SSL doit assurer que :
- La connexion assure la confidentialité des données transmises
- La connexion assure que les données transmises sont intègres
- L’identité des correspondants peut être authentifiée
- La connexion est fiable
La version 2.0 vient de Netscape et la version 3.0, qui est actuellement la plus (...)
L’horodatage
Généralités
Le principe de l’horodatage est d’associer de façon la plus sûre possible une date et une heure à des données.
Avoir une garantie cryptographique de l’heure permet par exemple :
– De prouver l’existence de certaines données à partir d’une certaine date,
– A cette garantie d’existence on peut joindre des garanties de possession,
– De certifier des heures et dates de signature,
– De renforcer les fonctions de non-répudiation associées à la signature, puisque lors d’une signature classique la date de signature n’est pas forcement fiable, et peut donc être contestée,
– De garantir les heures et dates de validité des CRL. Si par exemple on souhaite vérifier une (...)
Authentification
MAC (Message Authentification Code) :
Une méthode consiste à utiliser un algorithme de chiffrement par blocs en mode chaîné.
On peut par exemple chiffrer les données à l’aide d’un DES en mode CBC, puis considérer le dernier bloc comme étant le MAC.
Le destinataire ne pourra vérifier l’intégrité des données que s’il possède la clé symétrique ayant servi à la génération du MAC.
Contrairement à la signature électronique, seul un destinataire particulier sera en mesure de faire cette opération.
L’utilisation de MAC (monde bancaire par exemple) n’assure pas vraiment la non-répudiation : les destinataires possèdent en effet la même clé symétrique que l’expéditeur. Ce dernier peut donc (...)
Cryptographie symétrique
CAST
Généralités
CAST est un algorithme original par certains aspects. Surtout parce que c’est en fait une spécification d’algorithme de chiffrement par blocs. C’est à dire que l’on peut suivre diverses options lors de l’implémentation. Et puis aussi parce que contrairement au DES, tout y est spécifié, notamment la façon de bâtir les S-tables (ou tables S).
Il y a des centaines de pages sur DES, une petite sur CAST changera un peu.
CAST a été développé par Carlisle Adams et Stafford Tavares.
Il en existe plusieurs "versions", CAST-128 (RFC 2144), CAST-256...
Détails :
CAST est un algorithme de chiffrement par bloc à réseau de Feistel.
Il opère sur 16 rondes en prenant (...)
Diffie-Hellman
Généralités :
Inventé en 1976 par Whitfield Diffie et Martin Hellman c’est le plus ancien cryptosytème à clé publique, et il est encore largement en usage.
Il peut être utilisé pour la signature électronique ou pour établir des clés symétriques entre deux ou plusieurs protagonistes sans qu’ils aient à échanger auparavant de secret partagé par un canal sûr, comme dans IPSec ou SSL.
Dans ce cas, il est toujours utilisé en conjonction avec un algorithme symétrique.
Sa sécurité repose sur la difficulté de calculer des logarithmes discrets par rapport à la "facilité" de calculer les exponentielles.
Principe :
Soient Dédé-la-malice et Julie-la-furie deux protagonistes désirant (...)
Test de primalité Miller-Rabin
Généralités :
Les algorithmes comme RSA ou Diffie-Hellman ont besoin de nombres premiers pour fonctionner.
Pour générer ces nombres premiers on fait appel à des tests probabilistes. Les nombres ainsi trouvés sont premiers avec une certaine probabilité (très grande) paramétrable lors des implémentations.
Factoriser un grand nombre, ou essayer de le faire, est très long. Savoir si tel nombre est premier avec telle probabilité peut par contre être très rapide.
Les tests de primalité renvoient deux types de réponses :
Soit le nombre ne passe pas le test, et le nombre est un nombre composé.
Soit le nombre passe le test, et le nombre peut être un nombre premier.
Le test de (...)
Fonctions de condensation
Généralités :
Le but d’une fonction de condensation est de donner une " empreinte " caractéristique et unique d’une quantité fixée de données.
Ces fonctions prennent en entrée des données de longueur variable et renvoient un nombre fixé de bits.
Pour être sûres, les fonctions de condensation doivent avoir certaines propriétés :
– Elle doivent être irréversibles. En ayant le condensât (" hash " ou " checksum ", ou " message digest ") il doit très difficile de retrouver les données initiales, ne serait-ce qu’un seul bit, qui ont produit ce résultat.
– Il doit être très difficile de trouver un texte initial qui ait un condensât donné.
– Il doit être très difficile de trouver (...)