GNU/Linux >> Tutoriels Linux >  >> Linux

HTTP vs HTTPS :quelle est la différence ?

Audience cible

Cet article est destiné à un lecteur généraliste ayant une compréhension de base du fonctionnement d'Internet.

Présentation

Lorsque vous naviguez sur Internet, la plupart des pages Web sont transmises à votre ordinateur à l'aide d'un protocole de communication appelé HTTP, qui dessert la grande majorité des pages Web sur le World Wide Web. Cependant, il peut s'agir d'un système de communication vulnérable, c'est là que HTTPS entre en jeu.

HTTP

Lorsqu'un utilisateur saisit une adresse Web dans la barre d'adresse du navigateur et appuie sur "Entrée", il se passe beaucoup de choses dans les coulisses avant que la page Web ne s'affiche dans la fenêtre du navigateur. L'ordinateur client interroge d'abord un serveur DNS (Domain Name System) pour l'adresse IP numérique réelle du serveur Web associé à l'adresse Web. Une fois qu'il connaît l'adresse IP, l'ordinateur client effectue une demande pour la ressource demandée auprès du serveur Web. Le serveur répond alors et la page Web est livrée à l'ordinateur de l'utilisateur. Tout cela se produit généralement en quelques millisecondes et utilise un protocole appelé HTTP.

HTTP (HyperText Transfer Protocol) est le mécanisme par lequel la grande majorité des pages Web sont livrées sur le World Wide Web. Il s'agit d'un protocole de demande serveur/client, dans lequel le client (généralement l'ordinateur de l'utilisateur) demande un paquet de données (généralement une page Web) au serveur. Par exemple, lorsqu'un serveur privé virtuel entend une demande, il répond par une réponse d'état, normalement "HTTP/1.1 200 OK". Il suit ensuite avec les données demandées. Ainsi, une requête/réponse d'un client à un serveur pourrait ressembler à ceci :

CLIENT:
GET /index.html HTTP/1.1
Host: www.example.com
User-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:42.0) Gecko/20100101 Firefox/42.0

SERVER:
HTTP/1.1 200 OK
Date: Wed, 16 Sept 2015 23:59:59 GMT
Server: Apache 1.3.3.3 (Unix)
Content-Type: text/html
Content-Length: 1922
<html>
<head>
<title>Welcome to my site!</title>
</head>
<body>
This is a very simple web page, written in HTML.
</body>
</html>

.
Le protocole est utilisé depuis 1991 et est un protocole de communication reconnu, valide et utile. Cependant, il n'a jamais été conçu dans un souci de sécurité. L'échange n'est pas chiffré, ce qui signifie que s'il est intercepté, n'importe qui peut lire le contenu de la demande et de la réponse. Il est particulièrement vulnérable à l'attaque "man-in-the-middle", dans laquelle un ordinateur non autorisé agit comme intermédiaire entre l'ordinateur de l'utilisateur et Internet, lisant et enregistrant tous les messages envoyés et reçus.

Sécuriser le Web avec HTTPS

Il existe cependant un autre protocole qui fonctionne de manière similaire à HTTP mais qui est nettement plus sécurisé :HTTPS, qui signifie HyperText Transfer Protocol Secure. HTTPS utilise TLS (Transport Layer Security) pour crypter les communications entre l'ordinateur client et le serveur, rendant les données inutiles et illisibles si elles sont interceptées. Vous pouvez également entendre TLS appelé SSL (Secure Socket Layer). SSL était le prédécesseur de TLS et beaucoup utilisent encore ce terme pour parler de la technologie qui permet de sécuriser HTTPS.

TLS fonctionne via des certificats numériques. Sur demande, une autorité de certification (CA) délivre un certificat à un serveur, qui sert à authentifier ce serveur auprès de tous les clients connectés. Dans une transaction HTTPS, un client contacte un serveur compatible TLS et demande une session chiffrée. Le serveur répond alors avec une copie de son certificat numérique. Ce certificat inclut l'autorité de certification de confiance qui l'a émis et la clé publique du serveur pour le chiffrement.

Le client reçoit les informations de certificat du serveur et peut vérifier auprès de l'autorité émettrice que le certificat est valide. Une fois que le client s'est assuré que le serveur est authentique, il génère un nombre aléatoire. Il utilise ensuite ce nombre aléatoire pour générer une clé de session. Le client crypte ensuite le nombre aléatoire à l'aide de la clé publique du serveur et l'envoie au serveur. Parce qu'il est chiffré à l'aide de la clé publique du serveur, le serveur est le seul capable de déchiffrer le message avec sa clé privée. Une fois que le serveur déchiffre le message du client, il dispose du même nombre aléatoire pour générer la même clé de session générée par le client. À partir de ce moment, toutes les communications entre le serveur et le client sont chiffrées et déchiffrées à l'aide de cette clé de session. Les informations qui sont transmises sont comme le trafic HTTP, sauf qu'elles sont maintenant cryptées avant d'être envoyées, donc si elles devaient être interceptées, l'entité interceptante serait incapable de déchiffrer les informations. Comparez à quoi ressemble le trafic HTTPS ci-dessous avec l'exemple précédent de trafic HTTP :

...........s.....*...."..*.....r.].di.s0.$. .<...v.b..'.....O..Z|.~$..!N...X...+./.
.......3.9./.5.
.............www.atlantic.net......
.................#..zS...$z.W..0.......c...#.;qu..*...3...... -.E;[email protected]/P.rU..0.....5P......#X...n.b.......C.&...tRgW.a.....{v.......)...-1..J9S.V..G.In......|..u..O0.....mU...|..q..Ja.O.n..G..E.W}8E.Q...0..k3t.........h2.spdy/3.1.http/1.1..........
...........................c...................................................................................................
....Q...M..V.Q$._...9.&ye.L.i..T'.l.y..3`]| .<...v.b..'.....O..Z|.~$..!N...X./..................([email protected]#8....u
..........(...........[[email protected]
.............g.m4..a..V&!B..d....bv.......3......&...c......
.....G...z..x.....SzV...H.P...L`...T.....s.{...ip....PY..)Z.[.<N.f}WOv$.>........../.....^.....hc ..e.\..`.L.!.c.m.=`...[....An...c2.N..?......$.|....M.?WA.x......NCIk.....j+VUZ..p...\ZM....=.<....Ra..S..% .o...{....\ nc..~c=.......'.]...D.t..p0.-b.8*g$Yo....!c...y.#......d..H9.o.+..'..xn\.... q.....H}-....Q>..D!...~.yV..v..
\Vi.P.....K.FV-........W.>]y....M...A\....>....i/o.+..b.P.."..H..xP..:......'...VX.......j.........0D...J..Zw....b.;b.
.....*.(..h.V.F.K..8..L.M.s...rwdc.{F%o.j....=.C...w.<.|..).3.. =32..g..>...h8(..;\}.h<....yP\6r.y..3.......592.W...r..pT.*.-D....e.]..).....
.....<.i..o`[email protected]_d"....m..!L .G.{........U.....[..r..S....a)?.SY...%....>...jl.....
.W.4.....X.Nd.....Z...%...a.;...om..mH..B.._...*......H..}(fi...,0..8..,}.[Z8.N..H...F....yj.N..b.^...].S.'......u..Z.j....spS.p.C.vhk...O..!..Y".|.w)El....t........R..h.....L.0i.M.)...E..V.C.....U........u..i.w......H..;.F.......u..
2Op.%........Z.>2.N2),.o..M..
...f.Z........7r9
.....

.

Obtenir un certificat TLS auprès d'une autorité de certification

Les autorités de certification offrent une grande variété de certificats TLS. Les prix varient en fonction de l'étendue de l'authentification souhaitée. Un certificat très basique (peut-être utilisé pour valider les utilisateurs au sein d'une organisation, par exemple) est gratuit. Les trois niveaux de validation les plus courants sont DV, ou Domain Validation , OV ou Validation de l'organisation , et EV, ou validation étendue . Les certificats DV sont les plus courants et sont généralement vérifiés en envoyant un e-mail au contrôleur d'un nom de domaine. Les certificats OV offrent un peu plus de confiance; l'autorité de certification vérifie non seulement le contrôle du domaine, mais également l'entreprise qui utilise ce domaine. Les certificats EV sont les plus fiables et nécessitent une documentation importante de la part de l'organisation pour prouver qu'ils sont légitimes. Ces certificats sont souvent utilisés par les organisations qui souhaitent offrir une expérience Web sécurisée, en particulier si elles entretiennent une relation financière avec leurs visiteurs.

Alors que le processus de cryptage est fort, ce qui rend les messages HTTPS particulièrement sécurisés par rapport aux transactions HTTP non sécurisées, il existe un maillon faible dans la chaîne :les autorités de certification fonctionnent sur la confiance. Si une autorité de certification devait être piratée, par exemple, elle pourrait émettre un certificat de confiance pour n'importe quel domaine qui serait accepté comme valide et approuvé par tous les navigateurs. Un attaquant avec un tel certificat pourrait alors mettre en place une copie frauduleuse de ce domaine qui semblerait être de confiance avec l'intention d'intercepter le trafic vers ce domaine. Un tel événement s'est produit en 2011, lorsqu'une autorité de certification néerlandaise a été compromise par le gouvernement iranien et utilisée pour intercepter les sessions de navigation des citoyens iraniens. Ce n'est pas un phénomène courant, mais c'est un phénomène dont les utilisateurs soucieux de la sécurité doivent absolument être conscients.
.

Identifier une connexion HTTPS

Le moyen le plus simple de vérifier que votre connexion HTTPS est sécurisée est de regarder la barre d'adresse de votre navigateur. La plupart des navigateurs identifient les connexions HTTPS avec une icône de cadenas quelque part près de l'adresse Web, tandis que les connexions HTTP non chiffrées n'ont pas une telle icône. Vous trouverez ci-dessous un exemple de connexion HTTP standard dans Firefox, suivi d'exemples de connexions HTTPS dans Firefox et Google Chrome.

Connexion HTTP dans Firefox

Indicateur HTTPS dans Firefox

Indicateur HTTPS dans Chrome

Vous pouvez également voir une icône de cadenas vert qui inclut le nom de l'organisation ou du site à côté. Cette icône plus visible indique que l'organisation a acquis un certificat EV, comme ci-dessous.

Indicateur HTTPS (avec certificat EV TLS) dans Firefox

.

Conclusion

HTTPS répond à un besoin que HTTP laisse ouvert :celui de la sécurité. Les échanges et le protocole utilisés sont les mêmes; seul HTTPS ajoute une étape supplémentaire de cryptage qui aide à protéger les informations transmises sur Internet. Bien que rien ne soit absolument sécurisé, il vaut la peine de vérifier qu'un site Web utilise le cryptage HTTPS avant d'envoyer des informations sensibles telles que des mots de passe ou des numéros de carte de crédit/compte bancaire via le réseau.

Atlantique.Net

Depuis 1995, Atlantic.Net fournit des services Internet à ses clients, notamment un hébergement géré, cloud et dédié. En plus de 20 ans de service, nos solutions se sont concentrées sur la fourniture des meilleures solutions Web à nos précieux clients !


Linux
  1. Linux vs Unix :Quelle est la différence ?

  2. Qu'est-ce qu'un serveur Web et comment fonctionne un serveur Web ?

  3. Ubuntu Server vs Desktop :Quelle est la différence ?

  4. Quelle est la différence entre cPanel et WHM ?

  5. Quelle est la différence entre ls et l ?

Useradd vs Adduser :quelle est la différence ?

iptables vs nftables :quelle est la différence ?

SIGTERM vs SIGKILL :Quelle est la différence ?

DevOps vs ingénieur logiciel :quelle est la différence ?

Qu'est-ce qu'un Hyperviseur ? Quelle est la différence entre les types 1 et 2 ?

Quelle est la différence entre curl et Wget ?