Realm, CoreData killer
Realm, CoreData killer
Sommaire
Ce protocole a pour buts :
Voici en détail comment se déroule le record protocole :
HASH(
write mac secret
| pad_2
| HASH(
write mac secret
| pad_1
| numéro de ce message
| protocole pour ce message
| longueur de ce message
| données compressées
)
)
* La fonction HASH() est soit MD5 soit SHA-1.
* pad_1 et pad_2 sont des mots de remplissage (pad_1 = 0x36 et pad_2 = 0x5C (répétés 40 fois pour SHA-1 et 48 fois pour MD5))
4. Chiffrement - le paquet obtenu est chiffré à l'aide de la fonction récupérée lors de la négociation ; 5. Un en-tête de 5 octets est ajouté. Le champ “Type” de cet en-tête définit le type du protocole de niveau supérieur au Record Protocol. Les types sont les suivants:
Content-Type (1 octet) – Indique le type de paquet SSL et TLS contenu dans l’enregistrement :
0x20 – Paquet de type Change Cipher Spec
0x21 – Paquet de type Alert
0x22 – Paquet de type Handshake
0x23 – Paquet de type Application Data : ce type correspond aux données effectives de la transaction SSL.
À la réception des paquets, le destinataire effectue les opérations suivantes :
Si ça se passe mal au cours de ces vérifications, alors une alarme est générée.
OpenSSL :
Implémenté en C, OpenSSL est une boîte à outils de chiffrement comportant deux bibliothèques (une de cryptographie générale et une qui implémente le protocole SSL), ainsi qu'une commande en ligne. OpenSSL est distribué sous une licence de type Apache.
GnuTLS :
Le projet GnuTLS propose une implémentation du protocole TLS conforme aux spécifications de l'IETF. Il permet l'authentification via les certificats X509 et PGP. À la différence d'OpenSSL, GnuTLS est compatible avec les licences GPL.
Si vous souhaitez tester votre certificat, vous pouvez utiliser SSLlab.
Conclusion :
Le protocole SSL / TLS n’est pas facile à prendre en main car il touche énormément de choses différentes et complexes. Cependant, je trouve très intéressant de voir le “côté obscur” de ce protocole afin de comprendre les notions que celui-ci met en place. Dans cette série d’articles, j’ai essayé de vous montrer toutes les phases importantes à savoir : le chiffrement, le certificat et les sous-protocoles, afin que vous ne soyez plus perdu quand on vous parle de SSL / TLS (que vous ayez compris les principes). Toutefois, si vous mettez en place un certificat SSL sur votre site, cela ne vous garantira pas à 100% que celui-ci est sécurisé. Pour exemple récent, le faille connue sous le nom de Heartblee qui a ébranlé tout le web.
Auteur(s)
Ilan Benichou
Développeur Fullstack (PHP/JS/IOS/DEVOPS), j'adore découvrir de nouvelle chose, toujours prêt à relever un challenge.
Vous souhaitez en savoir plus sur le sujet ?
Organisons un échange !
Notre équipe d'experts répond à toutes vos questions.
Nous contacterDécouvrez nos autres contenus dans le même thème
Rendez plus robuste votre application mobile en ajoutant des tests fonctionnels
Nous allons découvrir un outil qui permet d'automatiser des tâches fastidieuses en mobile.