Tunneling, VPN et sécurisation SSL du e-commerce

Les VPN ou tunnels sont des réseaux reliant deux LAN entre eux ou un LAN et un client seul, ou deux clients seules entre eux par tunneling . La liaison VPN est établie par-dessus un réseau publique comme Internet en cryptant les communications afin d’assurer la confidentialité des échanges . Le VPN présente l’avantage d’offrir des portées très élevées via Internet dans le monde entier à des coûts très faibles comparativement aux solutions traditionnelles (LL, LS, RNIS, ATM, FR …) . Par contre, la qualité de service, les délais d’acheminement et les débits ne sont pas aussi garantis qu’avec les liaisons traditionnelles et leurs contrats de services garantis .
Le VPN peut se définir à trois niveaux avec 3 technologies différentes qui peuevent d’ailleurs s’ajouter pour augmenter la sécurité =>
Niveau 2 OSI : PPTP ou L2TP (multi flux applicatifs)

Niveau 3 OSI : IPSEC (multi flux applicatifs)
Niveau 7 OSI : HTTPS (=SSL) ou SHTTP (ne sécurise qu’un flux applicatif en général http)

PPTP Point to Point Tunneling Protocol et variante L2TP Layer Two Tunneling Protocol
Ce protocole de niveau liaison, conçu par Microsoft et ouvert, encapsule des trames PPP dans des datagrammes IP en ajoutant des entêtes GRE (Internet Generic Routing Encapsulation) afin de les transférer sur un réseau IP . Il crypte également les données PPP encapsulées et les compresse . Le chiffrement utilise les fonctions de Mppe (Microsoft Point to Point Encryption) en s’appuyant sur l’algorithme de chiffrement RC4 de RSA en 40 ou 128 bits . L’authentification est gérée via PAP, CHAP ou MS-CHAP comme toutes les authentifications gérées par PPP en natif .

sono

IPSEC IP Secure
IPSec sécurise l’échange et toute la couche IP via une encapsulation de paquets IPSec cryptés dans les paquets IP (On ajoute les entêtes IP standard au paquets cryptés IPSec qui sont issus de la division en paquet du flux TCP ou UDP) . L’algorithme de chiffrement utilisé est variable (par exemple, 3-DES ou BlowFish) . Les clés sont gérées manuellement ou automatiquement échangées suivant le protocole IKE (Internet Key Exchange décrit dans RFC 2409 http://www.frameip.com/rfc/rfc2409.php) .
Cela se fait via le passage par les passerelles initiales et finales IPSEC .

sono

SSL (HTTPS) :
SSL est un protocole qui permet d’établir une communication « sécurisée » entre un client (le navigateur) et un serveur (site Internet) au niveau applicatif et c’est la solution la plus répandue actuellement grâce à sa simplicité d’utilisation et son intégration dans les navigateurs principaux du marché . SSL permet d’authentifier le serveur auquel l’utilisateur est connecté et assurer la confidentialité des informations transmises par chiffrement. Précisément, SSL, devenue dans sa dernière version TLS (Transport Layer Security), assure à la fois l’authentification (signature), le chiffrement c’est à dire la confidentialité, et enfin l’intégrité avec MD5 ou SHA .

Une session SSL commence lorsqu’une URL spéciale commençant par https est demandée, le client se connecte alors sur le port 443 du serveur . Un cadenas apparaît au bas du navigateur .
SSL fonctionne entre les protocoles TCP/IP et les protocoles de plus haut niveau HTTP, FTP, NNTP, LDAP, POP, IMAP, SMTP … SSL utilise des protocoles ayant les fonctionnalités des couches session (niveau 5), présentation (niveau 6) et application (niveau 5) de la pile de protocole et modèle OSI.

Le protocole SSL utilise le protocole SSL handshake pour échanger une série de messages entre le serveur et le client lorsqu’ils établissent leur première connexion . Voici les algorithmes et processus mis en œuvre le plus couramment au cours de l’échange SSL initial :

1/ Authentification du serveur SSL : Le serveur envoie son certificat au client . Cela permet au client de confirmer l’identité du serveur : le logiciel côté client utilise les techniques standard de cryptographie à clé publique pour vérifier que le certificat du serveur et son identifiant public (la clé publique), ont été produits par un organisme certificateur agréé par le client . Cette authentification du serveur intervient dans tous les échanges de paiement avec les sites des banques et e-commerce lors des paiements par CB .
Voici le contenu du certificat et le processus de vérification suivi :

sono

2/ Choisir les algorithmes de chiffrements que le client et le serveur supportent conjointement .
3/ Authentification du client SSL (facultative) : Elle permet au serveur de confirmer l’identité du client : c’est le même procédé que celui utilisé pour l’authentification du serveur . Cela peut être important dans le cas où le serveur est une banque, qui veut transmettre une information financière à son client et donc vérifier l’identité du destinataire .
Cette authentification du client procède souvent par l’envoi en amont d’un certificat du serveur vers le client . Le client renvoit alors son certificat obtenu en amont au serveur pour confirmer son identité . Cette échange et cette obtention de son certificat par le client est réalisée en ligne par exemple, lors de la déclaration d’impôt via internet et ce certificat est inclus dans le navigateur utilisé . L’authentification du client est assez rare et n’est mise en œuvre que lorsque le serveur doit envoyer des informations confidentielles au client .
4/ Chiffrer les premiers échanges en utilisant la clé publique du serveur présent dans le certificat reçu du serveur (pour la communication du client vers serveur) via l’algorithme asymétrique à clé publique (et privé sur le serveur) RC4 de RSA . A cet instant, on peut aussi chiffrer dans l’autre sens si le serveur a le certificat du client (et donc sa clé publique pour crypter) .
5/ Si on souhaite un chiffrement plus sûr et plus rapide par la suite, on utilise le DES (Data Encryption Standard), 3-DES ou AES (Advanced Encryption Standard) via un échange initial des clés uniques (DES …) sous la protection du protocole de chiffrement initial RSA (abandonné par la suite au cours de l’échange). L’échange est alors crypté de façon bidirectionnel . Le nouveau chiffrement est symétrique (pour DES, 3-DES ou AES) .

Pour finir, toutes les données envoyées au moyen d’une connexion cryptée SSL sont protégées par un mécanisme contre les manipulations, qui garantit que les données n’ont pas été modifiées dans leur transit comme l’algorithme de hachage MD5 ou SHA .
Les algorithmes utilisés au cours de SSL sont : DES ; DSA : Digital Signature Algorithm, algorithme utilise pour la signature numérique ; KEA : Key Exchange Algorithme, pour l’échange de clés ; RC2 et RC4 de RSA : Algorithmes de chiffrement ; RSA Key Exchange : Algorithme d’échange de clés pour SSL basé sur RSA ; SKIPJACK : Algorithme classifié de clés symétriques ; Triple-DES :DES appliqué trois fois; AES (Advanced Encryption Standard).
Les algorithmes d’échange de clés tels que KEA ou RSA Key Exchange régissent la façon dont le serveur et le client vont déterminer les clés symétriques (la même clé pour chiffrer et déchiffrer comme avec DES, AES ou SKIPJACK) qu’ils vont utiliser durant la session SSL.

Les serveurs utilisant le SSL sont : IBM, Quaterdeck, Open Market, Entreprise Server (Netscape), Internet Information Server (Microsoft), JAVA Web Server (Sunsoft), Website (O’Reilly) ou Commerce Server 2000 de Microsoft .
Les Web Agency conceptrices des sites d’e-commerce réalisent souvent des accords avec des SSII spécialisées sécurité comme ATOS et qui bénéficient de leurs propres serveurs SLL .


SHTTP :
Il existe une autre solution de sécurisation des échanges concurrentes de SSL en tant que VPN de niveau supérieur . Il s’agit de SHTTP qui est une version modifiée du protocole et des entêtes http standards permettant aussi un chiffrement avec toutes sortes d’algorithmes de chiffrement et toute sorte de protocoles applicatifs (http, SMTP ….) . Cependant, cette dernière solution n’est pas du tout répandue .


Pour en finir avec les VPN, je vous conseille de tester une de ces implémentations que j’ai déjà personnellement expérimenté : OpenVPN (sur la plupart des OS Windows et Linux compris)et Stunnel .

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.