Классы Secure Sockets Layer (SSL)
Ниже приведены классы, обеспечивающие поддержку защищённого сетевого взаимодействия с использованием протокола Secure Sockets Layer (SSL), используя OpenSSL Toolkit для выполнения шифрования и обработки протокола.
С версии Qt 5.6 и выше, официально поддерживаемой версией OpenSSL является 1.0.0 или более поздняя.
Этот класс обеспечивает шифрование для UDP-сокет |
|
Этот класс реализует генерацию и проверку маркеров DTLS на стороне сервера. |
|
Этот класс определяет параметры генератора маркеров DTLS. |
|
Описание текущего состояния рукопожатия DTLS. |
|
Описание ошибок, которые могут быть обнаружены QDtls и QDtlsClientVerifier. |
|
Этот класс представляет ответ протокола Online Certificate Status Protocol. |
|
Описание состояния онлайн-сертификата. |
|
Описание причины аннулирования. |
|
Объявляет перечисления, общие для всех классов SSL в Qt Network. |
|
Удобный API для сертификата X509. |
|
API для доступа к расширениям сертификата X509. |
|
Представляет криптографический шифр SSL. |
|
Содержит конфигурацию и состояние SSL-соединения. |
|
Интерфейс для параметров Diffie-Hellman для серверов. |
|
Представляет эллиптическую кривую для использования алгоритмами шифрования с эллиптическими кривыми. |
|
Ошибка SSL. |
|
Интерфейс для закрытых и открытых ключей. |
|
Данные аутентификации для шифров с предварительно согласованными ключами (PSK). |
|
SSL-шифрованный сокет для клиентов и серверов. |
Включение и отключение поддержки SSL
При сборке Qt из исходного кода система конфигурации проверяет наличие заголовка openssl/opensslv.h, предоставляемого исходными или разработчиками пакетов OpenSSL.
По умолчанию, Qt-библиотека с поддержкой SSL динамически загружает любой установленный OpenSSL-библиотеки во время выполнения. Однако, возможно связать библиотеку на этапе компиляции, настроив Qt с опцией -openssl-linked.
При построении версии Qt, связанной с OpenSSL, система сборки попытается связаться с библиотеками libssl и libcrypt, расположенными по умолчанию на системе разработчика. Это расположение настраиваемо: установите переменную среды OPENSSL_LIBS для хранения параметров компоновщика, необходимых для связи Qt с установленной библиотекой. Например, на Unix/Linux системе:
OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked
Чтобы отключить поддержку SSL в сборке Qt, настройте Qt с опцией -no-openssl.
Безопасность транспортного уровня для датаграмм
Datagram Transport Layer Security (DTLS) — это протокол, обеспечивающий безопасность для приложений, работающих с датаграммами, защищая их от перехвата, изменения или подделки сообщений. Протокол DTLS основан на потоковом протоколе Transport Layer Security (TLS). QtNetwork позволяет использовать DTLS с протоколом User Datagram Protocol (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-5.13/ssl.html