Classes Secure Sockets Layer (SSL)
Les classes ci-dessous fournissent un support pour la communication réseau sécurisée en utilisant le protocole Secure Sockets Layer (SSL), en utilisant un backend TLS natif, le Toolkit OpenSSL, ou n'importe quel plugin TLS approprié pour effectuer le cryptage et le traitement du protocole.
Cette classe fournit le cryptage pour les 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 la réponse du protocole d'état des certificats en ligne | |
Déclare les enums communs à toutes les classes SSL dans l'API. Qt Network | |
API pratique pour un certificat X509 | |
API permettant d'accéder aux extensions d'un certificat X509 | |
Représente un algorithme de chiffrement SSL | |
Contient la configuration et l'état d'une connexion SSL | |
Interface pour les paramètres Diffie-Hellman pour les serveurs | |
Représente une courbe elliptique à utiliser par les algorithmes de chiffrement à courbe elliptique | |
Erreur SSL | |
Interface pour les clés privées et publiques | |
Données d'authentification pour les suites de chiffrement à clés pré-partagées (PSK) | |
Implémentation d'un serveur TCP crypté 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 d'un message d'alerte | |
Décrit l'état actuel du handshake DTLS | |
Énumère les classes qu'un backend TLS met en œuvre | |
Décrit les erreurs qui peuvent être détectées par QDtls et QDtlsClientVerifier | |
Décrit l'état du certificat en ligne | |
Décrit la raison de la révocation | |
Énumère les caractéristiques possibles prises en charge par un backend TLS |
Pour les applications Android, voir Adding OpenSSL Support for Android.
Utilisation du chiffrement dans les applications en réseau
Dans la mesure du possible, utilisez le chiffrement lors du transport de données sur un réseau. Le texte brut, c'est-à-dire les données non chiffrées facilement lisibles, expose des données sensibles telles que des informations sur les utilisateurs et sur les systèmes du réseau.
Utilisez QSslSocket::connectToHostEncrypted() pour vous connecter en utilisant le cryptage et vérifiez les problèmes liés à SSL en utilisant QSslSocket::sslHandshakeErrors(). Utilisez QSslSocket::ignoreSslErrors() avec précaution, car il crée des risques de sécurité dans votre application.
Utilisez QSslConfiguration pour renforcer les paramètres de sécurité. Les protocoles pris en charge dépendent du backend SSL et le niveau de risque d'un protocole pourrait changer à l'avenir. Vous pouvez utiliser un protocole plus récent et plus sûr en utilisant QSslConfiguration::setProtocol(). Pour plus d'informations, consultez le site QSsl::SslProtocol pour connaître les protocoles disponibles.
Activation et désactivation de la prise en charge de SSL lors de la construction de Qt à partir des sources
Lors de la construction de Qt à partir des sources, Qt construit des plugins pour les bibliothèques TLS natives qui sont prises en charge par le système d'exploitation pour lequel vous construisez. 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 paquets source ou développeur d'OpenSSL. S'il le trouve, il activera et construira le backend OpenSSL pour Qt.
Note : Bien que Qt puisse toujours supporter l'ancienne version OpenSSL 1.1.1 lorsqu'il est construit à partir des sources, les constructions de Qt dans la section Qt Online Installer requièrent OpenSSL 3 à l'exécution.
Par défaut, une bibliothèque Qt compatible avec OpenSSL charge dynamiquement toute bibliothèque OpenSSL installée au moment de l'exécution. Toutefois, il est possible d'établir un lien avec la bibliothèque au moment de la compilation en configurant Qt avec l'option -openssl-linked.
Lors de la construction d'une version de Qt liée à OpenSSL, le système de construction de Qt utilisera la commande FindOpenSSL de CMake pour trouver 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 version de Qt, configurez Qt avec l'option -no-openssl.
Considérations à prendre en compte lors de l'empaquetage de votre application
Lorsque vous emballez votre application, vous pouvez utiliser un outil comme windeployqt, qui copie tous les plugins des bibliothèques que vous utilisez dans le dossier plugins/. Cependant, pour TLS, vous n'avez besoin que d'un seul backend, et vous pouvez supprimer les autres plugins avant d'empaqueter votre application. Par exemple, si vous êtes sous Windows et que vous n'avez besoin d'aucune des fonctionnalités supplémentaires offertes par le backend OpenSSL, vous pouvez choisir de ne pas expédier le plugin qopensslbackend ainsi que la bibliothèque OpenSSL, et d'expédier simplement le plugin qschannelbackend.
Cependant, l'envoi de plusieurs backends n'est pas un problème. Qt tentera de charger les backends dans l'ordre (avec OpenSSL en premier) jusqu'à ce que l'un d'entre eux soit chargé avec succès. Les autres backends sont alors inutilisés.
Sécurité de la couche de transport du datagramme
Datagram Transport Layer Security (DTLS) est un protocole qui permet de sécuriser les applications basées sur les datagrammes, en les protégeant contre l'écoute, la falsification ou la contrefaçon de messages. Le protocole DTLS est basé sur le protocole TLS (Transport Layer Security) orienté flux. QtNetwork permet l'utilisation de 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 et à certaines régions du monde. Les développeurs qui souhaitent utiliser la communication SSL dans les applications qu'ils déploient doivent s'assurer que leurs utilisateurs disposent des bibliothèques appropriées ou consulter un juriste qualifié pour s'assurer que les applications utilisant le code du projet OpenSSL sont correctement certifiées pour l'importation et l'exportation dans les régions du monde concernées.
Pour plus d'informations, reportez-vous à la section Contrôle de l'exportation du cadre 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.