guill.net - La page des réseaux
 

SSL : Secure Sockets Layer
Merci à l'auteur : David Bizeul


Etat de l'art

SSL est actuellement le standard pour les transactions sécurisées sur Internet. Ce protocole est utilisé pour chiffrer et authentifier les serveurs.

SSL est l'abréviation de Secure Sockets Layer. Il faut prendre gare au sens dans lequel on emploie ce terme. L'IETF a spécifié un standard de sécurité appelé TLS (Transport Layer Secure) et c'est ce mode de sécurité qui est utilisé sur Internet, lui-même étant conçu à partir des spécificités SSL 3.0 définies par la société Netscape. TLS en est actuellement à sa version 1.0.

Le protocole SSL
 
SSL utilise les fonctionnalités offertes par TCP/IP pour permettre aux couches supérieures d'accéder à un mode d'accès sécurisé. Dans les plus courants utilisant ce mode, on va trouver bien sûr HTTP mais aussi LDAP, SMTP, NNTP ou encore IMAP.

Les trois fonctionnalités de SSL sont :

- Authentification du serveur : cela permet à un utilisateur d'avoir une confirmation de l'identité d'un serveur. En effet un programme client SSL utilise des méthodes de chiffrement à clé publique pour vérifier si le certificat et l'identité publique fournis par le serveur sont valides et ont été fournis par un fournisseur de certificat présent dans la liste de ceux connus du client. Cette fonctionnalité est importante dans la mesure où le client doit envoyer des données confidentielles comme son numéro de carte bleue.

-Authentification du client : la technique est ici exactement la même que pour l'authentification du serveur. Cela peut servir si le serveur envoie des informations importantes à un client, qui doit, dans ce cas être authentifier.

-Chiffrement des données : toutes les données issues de l'entité émettrice sont chiffrées et déchiffrées par l'entité réceptrice, ce qui permet de garantir la confidentialité des données. Un mécanisme permet également de garantir l'intégrité des données.

Le protocole SSL peut être divisé en 2 sous protocoles : l’encodage (record) et la négociation (handshake). Le premier définit tout ce qui touche à l'envoi des données. Le second est utilisé pendant toute la phase de négociation entre le client et le serveur jusqu'à ce que tous les paramètres soient validés par l'un et l'autre.

L'encodage dans SSL

SSL est capable d'utiliser différents mécanismes de chiffrement créés pour l'authentification, l'envoi de certificats ou l'établissement des clés. Le choix des mécanismes de sécurité mis en œuvre dépend de plusieurs paramètres : la politique de sécurité de l'entreprise possédant le serveur, la version du protocole SSL ou encore les lois gouvernementales. Le but du sous-protocole de négociation est en outre d’obtenir un accord entre le client et le serveur pour le chiffrement utilisé.

Lors de la phase de négociation, le client et le serveur vont se mettre d'accord sur le meilleur algorithme de chiffrement utilisable entre les parties. La table ci-dessous rend compte des différents algorithmes pouvant être utilisés :

MEILLEURES GARANTIES :
-3DES qui supporte un chiffrement à 168 bits  couplé avec SHA-1 pour l'intégrité. Ce mécanisme n'est autorisé qu'à l'intérieur des USA et est approprié aux banques car 3DES est nettement moins rapide que RC4. Supporté par SSL 2.0 et 3.0

BONNES GARANTIES : ce chiffrement est suffisamment fort pour garantir la plupart des transactions électroniques
-RC4 avec un chiffrement 128 bits couplé à MD5 pour l'intégrité. RC4 est le plus rapide des modes de chiffrement offert. Supporté par SSL 2.0 et 3.0.
-RC2 avec un chiffrement 128 bits couplé à MD5 pour l'intégrité. RC2 est plus lent que RC4 et n'est plus supporté que par SSL 2.0.
-DES qui permet un chiffrement sur 56 bits couplé avec SHA-1. Ce chiffrement reste moins performant que RC4 ou RC2. Il est supporté par SSl 2.0 et 3.0 à la différence que SSL 2.0 utilise MD5 pour authentifier les messages.

CHIFFREMENT DEDIE A L'EXPORTATION : C'est le chiffrement qui procure la plus haute sécurité pour une exportation internationale

-RC4 avec un chiffrement 40 bits et MD5. Supporté par SSL 2.0 et 3.0
-RC2 avec un chiffrement 40 bits et MD5. Supporté par SSL 2.0 et 3.0

FAIBLES GARANTIES : ce mécanisme garantit l'intégrité des données, mais les données qui circulent ne sont pas chiffrées.
-Authentification des messages avec MD5 sans chiffrement. Cette méthode permet seulement de garantir l'intégrité des données échangées. Elle est typiquement utilisée dans le cas où le serveur et le client n'ont aucun chiffrement en commun.

La négociation dans SSL

Le SSL combine simultanément l'utilisation de clés publiques et de clés symétriques. Les clés publiques privées ou clés asymétriques procurent en effet une très bonne méthode pour l'authentification mais son utilisation est coûteuse en terme de bande passante. A l'opposé, le mécanisme de clé symétrique (identique pour chiffrer et déchiffrer) est extrêmement rapide mais pas réellement adapté à l'authentification d'un tiers.
Ainsi SSL va utiliser son protocole de négociation qui va être apte à partir des clés publiques et privées du client et du serveur d'établir une communication entre les deux entités avec une clé secrète (symétrique) de taille nettement inférieure à celle rencontrée pour des clés publiques (128 bits contre 1024 ou plus).

Mécanisme

1- Le client envoie au serveur sa version du protocole SSL, ses paramètres de chiffrement, des données générées aléatoirement et d'autres informations dont le serveur a besoin.
2- Le serveur renvoie sa version de SSL, ses paramètres de chiffrement, des données générées aléatoirement et d'autres informations dont le client a besoin. Le serveur envoie également son propre certificat, et si le client demande une information nécessitant un certificat, il demande également un certificat client.
3- Le client utilise les informations envoyées par le serveur pour l'authentifier. Si le serveur ne peut pas être authentifié, la connexion n'a pas lieu.
4- Avec les données préalablement échangées, le client est en mesure d'envoyer au serveur une pré clé secrète, qu'il chiffre avec la clé publique du serveur. Si le serveur a requis une authentification du client, celui ci (le client) renvoie également au serveur un bloc de données signé ainsi que son certificat.
5- Si le serveur a requis une authentification, il authentifie le client. Le serveur utilise alors sa clé privée de façon à pouvoir déchiffrer la pré clé secrète. Le serveur effectue alors une suite d'actions (également effectuées par le client) pour obtenir une clé secrète à partir de la pré clé secrète.
6- Le client et le serveur utilisent la clé secrète pour générer des clés de session qui seront les clés symétriques utilisées pour le chiffrement, déchiffrement des données et l'intégrité.
7- Le client envoie alors un avertissement au serveur le prévenant que les prochains messages seront chiffrés avec la clé de session. Puis il envoie un message chiffré indiquant que la phase de négociation est terminée.
8- Le serveur envoie alors un avertissement au client comme quoi les prochains messages seront chiffrés avec la clé de session. Puis il envoie un message (chiffré cette fois) indiquant que la phase de négociation est terminée.
9-La phase de négociation est alors terminée.

Authentification

Dans le cas du SSL il est pour le moment assez rare de rencontrer une authentification du client. En effet, la plupart des applications utilisées sur Internet ne requièrent pas un tel niveau de sécurité. De plus, l'authentification du client ressemble très fortement à une authentification du serveur. L'authentification serveur a lieu comme suit :

1- Vérification de la date de validité du certificat du serveur.
2- Est-ce que l'autorité de certification est une autorité de confiance ? Pour vérifier cela, chaque client maintien une liste de noms de domaines. Si le nom spéficié (nom émetteur) correspond à un nom rentré dans la liste, le client passe à l'étape suivante.
3- Vérification de la clé publique à partir de la signature. Le client vérifie la validité de la signature (chiffrée avec la clé privée) fournie dans le certificat grâce à la clé publique qui a été fournie elle aussi dans le certificat. A partir de ce point, le certificat du serveur est considéré comme valable.
4-Vérification du nom de domaine du serveur. Cette étape permet de vérifier que le nom de domaine du serveur défini dans le certificat correspond bien à la même adresse Internet. Cette étape n'est pas obligatoire et dépend de l'implémentation du client SSL. Elle permet cependant d'éviter qu'un usurpateur vienne jouer les intermédiaires entre le client et le serveur et se fasse passer pour l'un et l'autre auprès des deux entités. Vérifier la validité du nom de domaine est le seul moyen d'éviter ce genre de faille qui permet, dans ce cas, à la personne malveillante d'intercepter les informations transitant pendant la négociation et donc ultérieurement de prendre la place du client une fois cette phase passée. Pour usurper l’identité du serveur, le pirate devra également se procurer la clé privée du serveur.
5- Le serveur est maintenant authentifié, la phase de négociation se poursuit.

En pratique

Si l’on observe les informations fournies par un navigateur quelconque sur une page SSL (https), on peut obtenir par exemple :

Les trames échangées

Demande de connexion au serveur sur le port 443 (SSL)

    14 bytes Ethernet Header
         6 bytes Destination Ethernet Address           00:50:80:32:fa:1c
         6 bytes Source Ethernet Address                00:00:b4:59:0b:79
         2 bytes type                                               0x800 ( IP )

    20 bytes IP header
         4 bits  version                                                4
         4 bits  header length (longwords)                              5
         1 byte  type of service                                      0x0
         2 bytes total length                                          48
         2 bytes identification                                    0xe601
         3 bits  Fragmentation Flags
             1 bit   0 . . - Reserved
             1 bit   . 0 . - Don't Fragment (DF)
             1 bit   . . 0 - More Fragments (MF)
        13 bits  fragment offset                                      0x0
         1 byte  time to live                                         128
         1 byte  protocol                                             0x6 ( TCP )
         2 bytes header checksum                                   0xa0a2
         4 bytes source IP address                          213.56.33.188
         4 bytes destination IP address                      195.42.250.4

    28 bytes TCP Header
         2 bytes source port                                         1072 (  connection SYN (data) )
         2 bytes destination port                                     443
         4 bytes sequence number                                   444257
         4 bytes acknowledgement number                                 0
         4 bits  header length (longwords)                              7
         6 bits  reserved                                               0
         6 bits  Flags                                                0x2
              0..... Urgent Offset is valid                             FALSE
              .0.... Acknowledgment number is valid                     FALSE
              ..0... Pass without delay                                 FALSE
              ...0.. Reset connection                                   FALSE
              ....1. Synchronize sequence numbers                        TRUE
              .....0 Sender finshed sending data                        FALSE
         2 bytes window                                             65535
         2 bytes checksum                                           0x1a9
         2 bytes urgent pointer                                       0x0
         1 byte  Option Type                                            2 ( Maximum segment size )
         1 byte  Option Length                                          4
         2 bytes Maximum segment size (MSS)                          1460
         1 byte  Option Type                                            1 ( No operation )
         1 byte  Option Type                                            1 ( No operation )
         2 bytes Unknown Option(s)               

----------
Autorisation de connexion accordée au client

    14 bytes Ethernet Header
         6 bytes Destination Ethernet Address           00:00:b4:59:0b:79
         6 bytes Source Ethernet Address                00:50:80:32:fa:1c
         2 bytes type                                               0x800 ( IP )

    20 bytes IP header
         4 bits  version                                                4
         4 bits  header length (longwords)                              5
         1 byte  type of service                                      0x0
         2 bytes total length                                          48
         2 bytes identification                                     0xf3b
         3 bits  Fragmentation Flags
             1 bit   0 . . - Reserved
             1 bit   . 1 . - Don't Fragment (DF)
             1 bit   . . 0 - More Fragments (MF)
        13 bits  fragment offset                                      0x0
         1 byte  time to live                                          53
         1 byte  protocol                                             0x6 ( TCP )
         2 bytes header checksum                                   0x8269
         4 bytes source IP address                           195.42.250.4
         4 bytes destination IP address                     213.56.33.188

    28 bytes TCP Header
         2 bytes source port                                          443
         2 bytes destination port                                    1072 (  connection SYN/ACK (data) )
         4 bytes sequence number                               3251071984
         4 bytes acknowledgement number                            444258
         4 bits  header length (longwords)                              7
         6 bits  reserved                                               0
         6 bits  Flags                                               0x12
              0..... Urgent Offset is valid                             FALSE
              .1.... Acknowledgment number is valid                      TRUE
              ..0... Pass without delay                                 FALSE
              ...0.. Reset connection                                   FALSE
              ....1. Synchronize sequence numbers                        TRUE
              .....0 Sender finshed sending data                        FALSE
         2 bytes window                                             32120
         2 bytes checksum                                          0x5667
         2 bytes urgent pointer                                       0x0
         1 byte  Option Type                                            2 ( Maximum segment size )
         1 byte  Option Length                                          4
         2 bytes Maximum segment size (MSS)                          1460
         1 byte  Option Type                                            1 ( No operation )
         1 byte  Option Type                                            1 ( No operation )
         2 bytes Unknown Option(s)
 

----------
Début de communication

    14 bytes Ethernet Header
         6 bytes Destination Ethernet Address           00:50:80:32:fa:1c
         6 bytes Source Ethernet Address                00:00:b4:59:0b:79
         2 bytes type                                               0x800 ( IP )

    20 bytes IP header
         4 bits  version                                                4
         4 bits  header length (longwords)                              5
         1 byte  type of service                                      0x0
         2 bytes total length                                          40
         2 bytes identification                                    0xe801
         3 bits  Fragmentation Flags
             1 bit   0 . . - Reserved
             1 bit   . 0 . - Don't Fragment (DF)
             1 bit   . . 0 - More Fragments (MF)
        13 bits  fragment offset                                      0x0
         1 byte  time to live                                         128
         1 byte  protocol                                             0x6 ( TCP )
         2 bytes header checksum                                   0x9eaa
         4 bytes source IP address                          213.56.33.188
         4 bytes destination IP address                      195.42.250.4

    20 bytes TCP Header
         2 bytes source port                                         1072 ( data )
         2 bytes destination port                                     443
         4 bytes sequence number                                   444258
         4 bytes acknowledgement number                        3251071985
         4 bits  header length (longwords)                              5
         6 bits  reserved                                               0
         6 bits  Flags                                               0x10
              0..... Urgent Offset is valid                             FALSE
              .1.... Acknowledgment number is valid                      TRUE
              ..0... Pass without delay                                 FALSE
              ...0.. Reset connection                                   FALSE
              ....0. Synchronize sequence numbers                       FALSE
              .....0 Sender finshed sending data                        FALSE
         2 bytes window                                             65535
         2 bytes checksum                                            0xa4
         2 bytes urgent pointer                                       0x0

     0 bytes data

----------
Le client envoie ses paramètres SSL

    14 bytes Ethernet Header
         6 bytes Destination Ethernet Address           00:50:80:32:fa:1c
         6 bytes Source Ethernet Address                00:00:b4:59:0b:79
         2 bytes type                                               0x800 ( IP )

    20 bytes IP header
         4 bits  version                                                4
         4 bits  header length (longwords)                              5
         1 byte  type of service                                      0x0
         2 bytes total length                                          85
         2 bytes identification                                    0xe901
         3 bits  Fragmentation Flags
             1 bit   0 . . - Reserved
             1 bit   . 0 . - Don't Fragment (DF)
             1 bit   . . 0 - More Fragments (MF)
        13 bits  fragment offset                                      0x0
         1 byte  time to live                                         128
         1 byte  protocol                                             0x6 ( TCP )
         2 bytes header checksum                                   0x9d7d
         4 bytes source IP address                          213.56.33.188
         4 bytes destination IP address                      195.42.250.4

    20 bytes TCP Header
         2 bytes source port                                         1072 ( data )
         2 bytes destination port                                     443
         4 bytes sequence number                                   444258
         4 bytes acknowledgement number                        3251071985
         4 bits  header length (longwords)                              5
         6 bits  reserved                                               0
         6 bits  Flags                                               0x18
              0..... Urgent Offset is valid                             FALSE
              .1.... Acknowledgment number is valid                      TRUE
              ..1... Pass without delay                                  TRUE
              ...0.. Reset connection                                   FALSE
              ....0. Synchronize sequence numbers                       FALSE
              .....0 Sender finshed sending data                        FALSE
         2 bytes window                                             65535
         2 bytes checksum                                          0x57d8
         2 bytes urgent pointer                                       0x0

    45 bytes data

----------
Le serveur envoie ses paramètres et son certificat

    14 bytes Ethernet Header
         6 bytes Destination Ethernet Address           00:00:b4:59:0b:79
         6 bytes Source Ethernet Address                00:50:80:32:fa:1c
         2 bytes type                                               0x800 ( IP )

    20 bytes IP header
         4 bits  version                                                4
         4 bits  header length (longwords)                              5
         1 byte  type of service                                      0x0
         2 bytes total length                                        1064
         2 bytes identification                                     0xf3d
         3 bits  Fragmentation Flags
             1 bit   0 . . - Reserved
             1 bit   . 1 . - Don't Fragment (DF)
             1 bit   . . 0 - More Fragments (MF)
        13 bits  fragment offset                                      0x0
         1 byte  time to live                                          53
         1 byte  protocol                                             0x6 ( TCP )
         2 bytes header checksum                                   0x7e6f
         4 bytes source IP address                           195.42.250.4
         4 bytes destination IP address                     213.56.33.188

    20 bytes TCP Header
         2 bytes source port                                          443
         2 bytes destination port                                    1072 ( data )
         4 bytes sequence number                               3251071985
         4 bytes acknowledgement number                            444303
         4 bits  header length (longwords)                              5
         6 bits  reserved                                               0
         6 bits  Flags                                               0x18
              0..... Urgent Offset is valid                             FALSE
              .1.... Acknowledgment number is valid                      TRUE
              ..1... Pass without delay                                  TRUE
              ...0.. Reset connection                                   FALSE
              ....0. Synchronize sequence numbers                       FALSE
              .....0 Sender finshed sending data                        FALSE
         2 bytes window                                             32120
         2 bytes checksum                                          0x76b4
         2 bytes urgent pointer                                       0x0

  1024 bytes data  = certificat

    J   F  9a»a€~q  ÍPm-[?›é}õ8¨PÃÓJ?ÄÇæÖ x tSB+äÁÔ¸[?-ª: èZ &R¤Ê,[8~ø†q÷à      Ó  Ï  Ì É0‚ Å0‚ 2  q)Ô´_âc° - »<„‚ê0*†H†÷  0_10  U    US10-  U   RSA Data Security, Inc.1.0,  U  %Secure Server Certification Authority0 - 990921000000Z 01004235959Z0?ë10  U    FR1 0  U    France10  U   Paris1;09  U  2www.certplus.com/RPA Incorp. By Ref.,LIAB.LTD(c)98 1%0#  U   Authenticated by Certplus SA1'0%  U  -Member, VeriSign Trust Network 1 0   U  Self Trade1 0   U    www.selftrade.fr0?Ÿ0  *†H†÷      ?? 0?‰ ?? ÖW†É>öGQ Å¢Ç )Ž¡,ÀnÂ? ?øü;¢ú-àŒÜ $Ó?Ê RN÷=f™  Kÿ\]À @÷ ×9SO›e‰zIwñ)ñØå Š + 8†ÎSê|íÿÁ9v è;¥ÚÚ »o-³ß Ø cÌ*yœ÷)N“ñ –-fo•ò¦Û¥     0  *†H†÷      ~ ?ÍE:uXÇWÈýÊjuD]Ù¥yµsxH:‰·l<lÞNÁM—AŽH#3»*ÿ‘ë
Ê? Ø#8 ˆ z¥þ ØÏ…Îâ©C· $Nˆ¼9–¯Ï: ØP‰¼g- ºùCœs)íòÈXærO §ÛÁÅNQ öDÇKF%Ù³á Q +÷Û2ÍXÞ  ÍÉ@ÌÒÄ©ÍsÍ  À®@„ ̼? !1H.~nE Ô’ÌšõkÕ5÷=:ßmA?ÿ{  ßÖ· ©?‹@Z÷f”ä®îU      €Cù QwþÖy9n‚d÷ øËqM 9`zt íFšƒVS  ¼ÊÄ !HþxŠNÁ  ÝÓï– \@ º -[_¢ ÿ9 Ú?¦ã¸˜ :OŒ
2£a  õ»< [Í%?æ7?¿ › º¨’ú?€k ›òöös p¾U³?¸× ¤Mô

----------
Demande de confirmation du serveur

    14 bytes Ethernet Header
         6 bytes Destination Ethernet Address           00:00:b4:59:0b:79
         6 bytes Source Ethernet Address                00:50:80:32:fa:1c
         2 bytes type                                               0x800 ( IP )

    20 bytes IP header
         4 bits  version                                                4
         4 bits  header length (longwords)                              5
         1 byte  type of service                                      0x0
         2 bytes total length                                          42
         2 bytes identification                                     0xf3e
         3 bits  Fragmentation Flags
             1 bit   0 . . - Reserved
             1 bit   . 1 . - Don't Fragment (DF)
             1 bit   . . 0 - More Fragments (MF)
        13 bits  fragment offset                                      0x0
         1 byte  time to live                                          53
         1 byte  protocol                                             0x6 ( TCP )
         2 bytes header checksum                                   0x826c
         4 bytes source IP address                           195.42.250.4
         4 bytes destination IP address                     213.56.33.188

    20 bytes TCP Header
         2 bytes source port                                          443
         2 bytes destination port                                    1072 ( data )
         4 bytes sequence number                               3251073009
         4 bytes acknowledgement number                            444303
         4 bits  header length (longwords)                              5
         6 bits  reserved                                               0
         6 bits  Flags                                               0x18
              0..... Urgent Offset is valid                             FALSE
              .1.... Acknowledgment number is valid                      TRUE
              ..1... Pass without delay                                  TRUE
              ...0.. Reset connection                                   FALSE
              ....0. Synchronize sequence numbers                       FALSE
              .....0 Sender finshed sending data                        FALSE
         2 bytes window                                             32120
         2 bytes checksum                                          0x7ef4
         2 bytes urgent pointer                                       0x0

     6 bytes data

----------
Acquittement du client

    14 bytes Ethernet Header
         6 bytes Destination Ethernet Address           00:50:80:32:fa:1c
         6 bytes Source Ethernet Address                00:00:b4:59:0b:79
         2 bytes type                                               0x800 ( IP )

    20 bytes IP header
         4 bits  version                                                4
         4 bits  header length (longwords)                              5
         1 byte  type of service                                      0x0
         2 bytes total length                                          40
         2 bytes identification                                    0xeb01
         3 bits  Fragmentation Flags
             1 bit   0 . . - Reserved
             1 bit   . 0 . - Don't Fragment (DF)
             1 bit   . . 0 - More Fragments (MF)
        13 bits  fragment offset                                      0x0
         1 byte  time to live                                         128
         1 byte  protocol                                             0x6 ( TCP )
         2 bytes header checksum                                   0x9baa
         4 bytes source IP address                          213.56.33.188
         4 bytes destination IP address                      195.42.250.4

    20 bytes TCP Header
         2 bytes source port                                         1072 ( data )
         2 bytes destination port                                     443
         4 bytes sequence number                                   444303
         4 bytes acknowledgement number                        3251073011
         4 bits  header length (longwords)                              5
         6 bits  reserved                                               0
         6 bits  Flags                                               0x10
              0..... Urgent Offset is valid                             FALSE
              .1.... Acknowledgment number is valid                      TRUE
              ..0... Pass without delay                                 FALSE
              ...0.. Reset connection                                   FALSE
              ....0. Synchronize sequence numbers                       FALSE
              .....0 Sender finshed sending data                        FALSE
         2 bytes window                                             65535
         2 bytes checksum                                          0xfc74
         2 bytes urgent pointer                                       0x0

     0 bytes data

----------
Le client envoit sa pré-clé secrète

    14 bytes Ethernet Header
         6 bytes Destination Ethernet Address           00:50:80:32:fa:1c
         6 bytes Source Ethernet Address                00:00:b4:59:0b:79
         2 bytes type                                               0x800 ( IP )

    20 bytes IP header
         4 bits  version                                                4
         4 bits  header length (longwords)                              5
         1 byte  type of service                                      0x0
         2 bytes total length                                         180
         2 bytes identification                                    0xec01
         3 bits  Fragmentation Flags
             1 bit   0 . . - Reserved
             1 bit   . 0 . - Don't Fragment (DF)
             1 bit   . . 0 - More Fragments (MF)
        13 bits  fragment offset                                      0x0
         1 byte  time to live                                         128
         1 byte  protocol                                             0x6 ( TCP )
         2 bytes header checksum                                   0x9a1e
         4 bytes source IP address                          213.56.33.188
         4 bytes destination IP address                      195.42.250.4

    20 bytes TCP Header
         2 bytes source port                                         1072 ( data )
         2 bytes destination port                                     443
         4 bytes sequence number                                   444303
         4 bytes acknowledgement number                        3251073011
         4 bits  header length (longwords)                              5
         6 bits  reserved                                               0
         6 bits  Flags                                               0x18
              0..... Urgent Offset is valid                             FALSE
              .1.... Acknowledgment number is valid                      TRUE
              ..1... Pass without delay                                  TRUE
              ...0.. Reset connection                                   FALSE
              ....0. Synchronize sequence numbers                       FALSE
              .....0 Sender finshed sending data                        FALSE
         2 bytes window                                             65535
         2 bytes checksum                                          0x9b45
         2 bytes urgent pointer                                       0x0

   140 bytes data

----------
Le serveur et le client ont désormais des clés de session à partir de la clé secrète

    14 bytes Ethernet Header
         6 bytes Destination Ethernet Address           00:00:b4:59:0b:79
         6 bytes Source Ethernet Address                00:50:80:32:fa:1c
         2 bytes type                                               0x800 ( IP )

    20 bytes IP header
         4 bits  version                                                4
         4 bits  header length (longwords)                              5
         1 byte  type of service                                      0x0
         2 bytes total length                                         107
         2 bytes identification                                     0xf3f
         3 bits  Fragmentation Flags
             1 bit   0 . . - Reserved
             1 bit   . 1 . - Don't Fragment (DF)
             1 bit   . . 0 - More Fragments (MF)
        13 bits  fragment offset                                      0x0
         1 byte  time to live                                          53
         1 byte  protocol                                             0x6 ( TCP )
         2 bytes header checksum                                   0x822a
         4 bytes source IP address                           195.42.250.4
         4 bytes destination IP address                     213.56.33.188

    20 bytes TCP Header
         2 bytes source port                                          443
         2 bytes destination port                                    1072 ( data )
         4 bytes sequence number                               3251073011
         4 bytes acknowledgement number                            444443
         4 bits  header length (longwords)                              5
         6 bits  reserved                                               0
         6 bits  Flags                                               0x18
              0..... Urgent Offset is valid                             FALSE
              .1.... Acknowledgment number is valid                      TRUE
              ..1... Pass without delay                                  TRUE
              ...0.. Reset connection                                   FALSE
              ....0. Synchronize sequence numbers                       FALSE
              .....0 Sender finshed sending data                        FALSE
         2 bytes window                                             32120
         2 bytes checksum                                          0xdf19
         2 bytes urgent pointer                                       0x0

    67 bytes data

----------
Le client prévient le serveur que les connexions vont désormais utiliser une clé de session et met fin au protocole Handshake

    14 bytes Ethernet Header
         6 bytes Destination Ethernet Address           00:50:80:32:fa:1c
         6 bytes Source Ethernet Address                00:00:b4:59:0b:79
         2 bytes type                                               0x800 ( IP )

    20 bytes IP header
         4 bits  version                                                4
         4 bits  header length (longwords)                              5
         1 byte  type of service                                      0x0
         2 bytes total length                                         331
         2 bytes identification                                    0xee01
         3 bits  Fragmentation Flags
             1 bit   0 . . - Reserved
             1 bit   . 0 . - Don't Fragment (DF)
             1 bit   . . 0 - More Fragments (MF)
        13 bits  fragment offset                                      0x0
         1 byte  time to live                                         128
         1 byte  protocol                                             0x6 ( TCP )
         2 bytes header checksum                                   0x9787
         4 bytes source IP address                          213.56.33.188
         4 bytes destination IP address                      195.42.250.4

    20 bytes TCP Header
         2 bytes source port                                         1072 ( data )
         2 bytes destination port                                     443
         4 bytes sequence number                                   444443
         4 bytes acknowledgement number                        3251073078
         4 bits  header length (longwords)                              5
         6 bits  reserved                                               0
         6 bits  Flags                                               0x18
              0..... Urgent Offset is valid                             FALSE
              .1.... Acknowledgment number is valid                      TRUE
              ..1... Pass without delay                                  TRUE
              ...0.. Reset connection                                   FALSE
              ....0. Synchronize sequence numbers                       FALSE
              .....0 Sender finshed sending data                        FALSE
         2 bytes window                                             65468
         2 bytes checksum                                          0x11e1
         2 bytes urgent pointer                                       0x0

   291 bytes data

----------
Envoi des données HTTP sur SSL (HTTPS)

    14 bytes Ethernet Header
         6 bytes Destination Ethernet Address           00:00:b4:59:0b:79
         6 bytes Source Ethernet Address                00:50:80:32:fa:1c
         2 bytes type                                               0x800 ( IP )

    20 bytes IP header
         4 bits  version                                                4
         4 bits  header length (longwords)                              5
         1 byte  type of service                                      0x0
         2 bytes total length                                        1500
         2 bytes identification                                     0xf40
         3 bits  Fragmentation Flags
             1 bit   0 . . - Reserved
             1 bit   . 1 . - Don't Fragment (DF)
             1 bit   . . 0 - More Fragments (MF)
        13 bits  fragment offset                                      0x0
         1 byte  time to live                                          53
         1 byte  protocol                                             0x6 ( TCP )
         2 bytes header checksum                                   0x7cb8
         4 bytes source IP address                           195.42.250.4
         4 bytes destination IP address                     213.56.33.188

    20 bytes TCP Header
         2 bytes source port                                          443
         2 bytes destination port                                    1072 ( data )
         4 bytes sequence number                               3251073078
         4 bytes acknowledgement number                            444734
         4 bits  header length (longwords)                              5
         6 bits  reserved                                               0
         6 bits  Flags                                               0x18
              0..... Urgent Offset is valid                             FALSE
              .1.... Acknowledgment number is valid                      TRUE
              ..1... Pass without delay                                  TRUE
              ...0.. Reset connection                                   FALSE
              ....0. Synchronize sequence numbers                       FALSE
              .....0 Sender finshed sending data                        FALSE
         2 bytes window                                             32120
         2 bytes checksum                                           0xf2a
         2 bytes urgent pointer                                       0x0

  1460 bytes data

----------
Acquittement du client

    14 bytes Ethernet Header
         6 bytes Destination Ethernet Address           00:50:80:32:fa:1c
         6 bytes Source Ethernet Address                00:00:b4:59:0b:79
         2 bytes type                                               0x800 ( IP )

    20 bytes IP header
         4 bits  version                                                4
         4 bits  header length (longwords)                              5
         1 byte  type of service                                      0x0
         2 bytes total length                                          40
         2 bytes identification                                    0xf101
         3 bits  Fragmentation Flags
             1 bit   0 . . - Reserved
             1 bit   . 0 . - Don't Fragment (DF)
             1 bit   . . 0 - More Fragments (MF)
        13 bits  fragment offset                                      0x0
         1 byte  time to live                                         128
         1 byte  protocol                                             0x6 ( TCP )
         2 bytes header checksum                                   0x95aa
         4 bytes source IP address                          213.56.33.188
         4 bytes destination IP address                      195.42.250.4

    20 bytes TCP Header
         2 bytes source port                                         1072 ( data )
         2 bytes destination port                                     443
         4 bytes sequence number                                   444734
         4 bytes acknowledgement number                        3251074538
         4 bits  header length (longwords)                              5
         6 bits  reserved                                               0
         6 bits  Flags                                               0x10
              0..... Urgent Offset is valid                             FALSE
              .1.... Acknowledgment number is valid                      TRUE
              ..0... Pass without delay                                 FALSE
              ...0.. Reset connection                                   FALSE
              ....0. Synchronize sequence numbers                       FALSE
              .....0 Sender finshed sending data                        FALSE
         2 bytes window                                             65535
         2 bytes checksum                                          0xf4ce
         2 bytes urgent pointer                                       0x0

     0 bytes data

----------


Homepage - Comment ça marche - Protocoles - Hauts débits - Sécurité - FAQ - Glossaire - Téléchargements - Liens - Email