Services de sécurité : confidentialité, authentification, intégrité (v1)
Confidentialité et chiffrement des données
- Utilisation de chiffrement symétrique pour protéger les données échangées
- TLS utilise des algorithmes tels que AES et ChaCha20
- Les clés de chiffrement symétrique sont établies lors de l'échange de clés (ex : Diffie-Hellman, ECDHE)
- Commande openssl pour tester le chiffrement :
openssl enc -aes-256-cbc -in input.txt -out encrypted.txt -k yourpassword
Authentification des parties
- Authentification du serveur via des certificats numériques signés par des autorités de certification (CA)
- Authentification du client optionnelle (certificats client)
- Algorithmes de signature numérique : RSA, ECDSA, EdDSA
- Commande OpenSSL
- Pour vérifier un certificat :
openssl x509 -in certificate.crt -text -noout
- Pour générer une paire de clés RSA :
openssl genrsa -out private_key.pem 2048
Intégrité des données et vérification des messages
- Utilisation de fonctions de hachage avec clé (HMAC) pour garantir l'intégrité des messages
- Algorithmes de hachage : SHA-2, SHA-3
- Empêche les attaques de type "man-in-the-middle" (modification des données)
- Commande OpenSSL pour créer un HMAC :
openssl dgst -sha256 -hmac yourkey -out hmac_output.txt input.txt
Composants TLS garantissant ces services de sécurité
- Handshake TLS pour négocier les paramètres cryptographiques et établir les clés
- Record Protocol pour encapsuler et protéger les données échangées
- Alert Protocol pour signaler les erreurs et problèmes de sécurité
- Mécanismes de renégociation sécurisée pour prévenir les attaques de type "downgrade"
- Commande OpenSSL:
- Pour tester une connexion TLS :
openssl s_client -connect example.com:443
- Pour générer une paire de clés et un certificat auto-signé :
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365