Spec-Zone.ru › Qt

Классы Secure Sockets Layer (SSL)

Нижеприведенные классы обеспечивают поддержку защищенного сетевого взаимодействия с использованием протокола Secure Sockets Layer (SSL), используя родной бэкенд TLS, OpenSSL Toolkit, или любой соответствующий плагин TLS для выполнения шифрования и обработки протоколов.

Начиная с версии Qt 5.15, официально поддерживаемая версия OpenSSL — 1.1.1 или более поздняя.

QDtls

Этот класс обеспечивает шифрование для сокетов UDP

QDtlsClientVerifier

Этот класс реализует генерацию и проверку куки DTLS на стороне сервера

QDtlsClientVerifier::GeneratorParameters

Этот класс определяет параметры генератора куки DTLS

QOcspResponse

Этот класс представляет ответ протокола Online Certificate Status Protocol

QSsl

Объявляет перечисления, общие для всех классов SSL в Qt Network

QSslCertificate

Удобный API для сертификата X509

QSslCertificateExtension

API для доступа к расширениям сертификата X509

QSslCipher

Представляет криптографический шифр SSL

QSslConfiguration

Содержит конфигурацию и состояние соединения SSL

QSslDiffieHellmanParameters

Интерфейс для параметров Diffie-Hellman для серверов

QSslEllipticCurve

Представляет эллиптическую кривую для использования алгоритмами шифрования с эллиптической кривой

QSslError

Ошибка SSL

QSslKey

Интерфейс для закрытых и открытых ключей

QSslPreSharedKeyAuthenticator

Данные аутентификации для шифров с предварительно общими ключами (PSK)

QSslSocket

SSL-зашифрованный сокет для клиентов и серверов

QSslSocket::AlertLevel

Описание уровня сообщения об ошибке

QSslSocket::AlertType

Перечисляет возможные коды, которые может иметь сообщение об ошибке

QDtls::HandshakeState

Описание текущего состояния рукопожатия DTLS

QSslSocket::ImplementedClass

Перечисляет классы, которые реализует бэкенд TLS

QDtls::QDtlsError

Описание ошибок, которые могут быть найдены QDtls и QDtlsClientVerifier

QOcspResponse::QOcspCertificateStatus

Описание состояния онлайн-сертификата

QOcspResponse::QOcspRevocationReason

Описание причины отзыва

QSslSocket::SupportedFeature

Перечисляет возможные функции, которые поддерживает бэкенд TLS

Включение и отключение поддержки SSL

При построении Qt из исходного кода Qt создает плагины для родных библиотек TLS, которые поддерживаются для операционной системы, для которой вы строите. Для Windows это означает https://docs.microsoft.com/en-us/windows/win32/com/schannel, а для macOS это https://developer.apple.com/documentation/security/secure_transport.

На всех платформах система конфигурации проверяет наличие заголовка openssl/opensslv.h, предоставленного исходными или пакетами разработчиков OpenSSL. Если он найден, будет включен и построен бэкенд OpenSSL для Qt.

По умолчанию OpenSSL-совместимая библиотека Qt динамически загружает любую установленную библиотеку OpenSSL во время выполнения. Однако можно связать библиотеку на этапе компиляции, настроив Qt с помощью опции -openssl-linked.

При построении версии Qt, связанной с OpenSSL, система сборки Qt будет использовать команду FindOpenSSL CMake для поиска OpenSSL в нескольких стандартных расположениях. Вы можете установить переменную CMake OPENSSL_ROOT_DIR, чтобы принудительно указать конкретное расположение.

Например:

configure -openssl-linked -- -D OPENSSL_ROOT_DIR=<openssl_dir>

Чтобы отключить поддержку SSL в сборке Qt, настройте Qt с помощью опции -no-openssl.

Соображения при пакетировании вашего приложения

При пакетировании приложения вы можете запустить инструмент, такой как windeployqt. Он копирует все плагины для используемых библиотек в папку plugins/. Однако для TLS вам нужен только один бэкенд, и вы можете удалить другие плагины перед пакетированием вашего приложения. Например, если вы работаете в Windows и вам не нужны дополнительные возможности бэкенда OpenSSL, вы можете отказаться от отправки плагина qopensslbackend а также библиотеки OpenSSL и просто отправить плагин qschannelbackend.

Однако отправка нескольких бэкендов не является проблемой. Qt будет пытаться загрузить бэкенды в порядке (сначала OpenSSL), пока один не загрузится успешно. Другие бэкенды затем не используются.

Защита транспортного уровня для датаграмм

Защита транспортного уровня для датаграмм (DTLS) — это протокол, который обеспечивает безопасность для приложений, основанных на датаграммах, обеспечивая защиту от перехвата, подмены или подделки сообщений. Протокол DTLS основан на протоколе защиты транспортного уровня (TLS) для потоков. QtNetwork позволяет использовать DTLS с протоколом пользовательских датаграмм (UDP), как определено в RFC 6347.

Ограничения импорта и экспорта

Бинарные установщики Qt включают библиотеки OpenSSL, используемые модулем QtNetwork. Однако они не автоматически развертываются с приложениями, созданными с помощью Qt. Ограничения импорта и экспорта применяются к некоторым типам программного обеспечения и в некоторых регионах мира. Разработчики, желающие использовать SSL-связь в своих развернутых приложениях, должны либо убедиться, что у их пользователей установлены соответствующие библиотеки, либо обратиться к квалифицированному юристу, чтобы убедиться, что приложения, использующие код из проекта OpenSSL, должным образом сертифицированы для импорта и экспорта в соответствующих регионах мира.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/ssl.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API