Classes Secure Sockets Layer (SSL)
Les classes ci-dessous prennent en charge les communications réseau sécurisées via le protocole SSL (Secure Sockets Layer), en utilisant un backend TLS natif, la bibliothèque OpenSSL ou tout autre plugin TLS approprié pour assurer le chiffrement et la gestion du protocole.
Cette classe assure le chiffrement des sockets UDP | |
Cette classe implémente la génération et la vérification des cookies DTLS côté serveur | |
Cette classe définit les paramètres du générateur de cookies DTLS | |
Cette classe représente une réponse au protocole OSCSP (Online Certificate Status Protocol) | |
Déclare les énumérations communes à toutes les classes SSL dans Qt Network | |
API pratique pour un certificat X.509 | |
API permettant d'accéder aux extensions d'un certificat X.509 | |
Représente un algorithme de chiffrement SSL | |
Contient la configuration et l'état d'une connexion SSL | |
Interface pour les paramètres Diffie-Hellman destinés aux serveurs | |
Représente une courbe elliptique destinée à être utilisée par les algorithmes de chiffrement à courbe elliptique | |
Erreur SSL | |
Interface pour les clés privées et publiques | |
Décrit le matériel de chiffrement exporté dérivé d'une session TLS | |
Données d’authentification pour les suites de chiffrement à clés pré-partagées (PSK) | |
Implémente un serveur TCP chiffré et sécurisé via TLS | |
Socket chiffré SSL pour les clients et les serveurs | |
Décrit le niveau d'un message d'alerte | |
Énumère les codes possibles qu'un message d'alerte peut prendre | |
Décrit l'état actuel de la poignée de main DTLS | |
Énumère les classes implémentées par un backend TLS | |
Décrit les erreurs pouvant être détectées par QDtls et QDtlsClientVerifier | |
Décrit l'état du certificat en ligne | |
Décrit le motif de la révocation | |
Énumère les fonctionnalités possibles prises en charge par un backend TLS |
Pour les applications Android, voir Ajout de la prise en charge d'OpenSSL pour Android.
Utilisation du chiffrement dans les applications en réseau
Utilisez le chiffrement lors du transfert de données sur tout réseau, dans la mesure du possible. Le texte en clair, c'est-à-dire les données non chiffrées et facilement lisibles, expose des données sensibles telles que les informations utilisateur et les informations relatives aux systèmes réseau.
Utilisez ` QSslSocket::connectToHostEncrypted()` pour vous connecter de manière chiffrée et vérifiez l’absence de problèmes SSL à l’aide de ` QSslSocket::sslHandshakeErrors()`. Utilisez ` QSslSocket::ignoreSslErrors()` avec prudence, car cela peut créer des risques de sécurité dans votre application.
Utilisez QSslConfiguration pour appliquer des paramètres de sécurité rigoureux. Les protocoles pris en charge dépendent du backend SSL et le niveau de risque d’un protocole pourrait évoluer à l’avenir. Vous pouvez utiliser un protocole plus récent et plus sécurisé à l’aide de QSslConfiguration::setProtocol(). Pour plus d’informations, consultez QSsl::SslProtocol pour connaître les protocoles disponibles.
Activation et désactivation de la prise en charge SSL lors de la compilation de Qt à partir du code source
Lors de la compilation de Qt à partir du code source, Qt compile des plugins pour les bibliothèques TLS natives prises en charge par le système d’exploitation pour lequel vous effectuez la compilation. Pour Windows, il s’agit de Schannel, tandis que pour macOS, il s’agit de Secure Transport.
Sur toutes les plateformes, le système de configuration vérifie la présence de l’en-tête ` openssl/opensslv.h ` fourni par les sources ou les paquets de développement d’OpenSSL. S’il est détecté, il active et compile le backend OpenSSL pour Qt.
Remarque : bien que Qt puisse encore prendre en charge l'ancienne version OpenSSL 1.1.1 lorsqu'il est compilé à partir des sources, les versions de Qt dans le Qt Online Installer nécessitent OpenSSL 3 lors de l’exécution.
Par défaut, une bibliothèque Qt avec OpenSSL activé charge dynamiquement toute bibliothèque OpenSSL installée lors de l’exécution. Il est toutefois possible de lier la bibliothèque lors de la compilation en configurant Qt avec l’option ` -openssl-linked `.
Lors de la compilation d’une version de Qt liée à OpenSSL, le système de compilation de Qt utilise la commande ` FindOpenSSL ` de CMake pour rechercher OpenSSL dans plusieurs emplacements standard. Vous pouvez définir la variable CMake `OPENSSL_ROOT_DIR` pour forcer un emplacement spécifique.
Par exemple :
configure -openssl-linked -- -D OPENSSL_ROOT_DIR=<openssl_dir>Pour désactiver la prise en charge de SSL dans une compilation Qt, configurez Qt avec l’option « -no-openssl ».
Points à prendre en compte lors de la création d’un paquet pour votre application
Lorsque vous créez le paquet de votre application, vous pouvez utiliser un outil tel que windeployqt. Celui-ci copie tous les plugins des bibliothèques que vous utilisez dans le dossier ` plugins/ `. Cependant, pour TLS, un seul backend suffit ; vous pouvez donc supprimer les autres plugins avant de créer le paquet de votre application. Par exemple, si vous utilisez Windows et que vous n'avez pas besoin des fonctionnalités supplémentaires fournies par le backend OpenSSL, vous pouvez choisir de ne pas inclure le plugin qopensslbackend ni la bibliothèque OpenSSL, et de ne livrer que le plugin qschannelbackend.
Cependant, l’intégration de plusieurs backends ne pose aucun problème. Qt tentera de charger les backends dans l’ordre (en commençant par OpenSSL) jusqu’à ce que l’un d’entre eux soit chargé avec succès. Les autres backends ne seront alors pas utilisés.
Datagram Transport Layer Security
Le protocole DTLS (Datagram Transport Layer Security) assure la sécurité des applications basées sur des datagrammes, en les protégeant contre l’écoute clandestine, l’altération ou la falsification des messages. Le protocole DTLS est basé sur le protocole TLS (Transport Layer Security) orienté flux. L’ QtNetwork permet d’utiliser DTLS avec le protocole UDP (User Datagram Protocol), tel que défini par la RFC 6347.
Restrictions à l’importation et à l’exportation
Des restrictions à l’importation et à l’exportation s’appliquent à certains types de logiciels, ainsi qu’à certaines régions du monde. Les développeurs souhaitant utiliser la communication SSL dans leurs applications déployées doivent soit s’assurer que leurs utilisateurs disposent des bibliothèques appropriées, soit consulter un professionnel du droit dûment qualifié afin de s’assurer que les applications utilisant du code issu du projet OpenSSL sont correctement certifiées pour l’importation et l’exportation dans les régions concernées du monde.
Pour plus d’informations, consultez la section « Contrôle des exportations du framework et des outils Qt ».
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.