TLS 1.3 (RFC 8446), седьмая итерация протокола SSL / TLS заняла десять лет, чтобы определиться после TLS 1.2. Встречались проблемы с middleboxes ящиками и многими другими. Но в конечном итоге TLS 1.3 был выпущен и получил ряд значительных улучшений, обеспечивающих непревзойденную производительность и конфиденциальность по сравнению с предыдущими версиями.
Кроме того, начиная с самой первой версии TLS 1.3, выпущенной 17 апреля 2014 года, вплоть до 28-й и до финальной версии, все проекты были протестированы и проверены техническими гигантами, такими как Google, Mozilla, Cloudflare и многими другими.
TLS 1.3 значительно улучшил свою работу, внеся изменения в протокол рукопожатия. В TLS 1.3 требуется всего одна передача в оба конца, чтобы ускорить подключение к сайту. Поскольку количество переговоров между клиентом и сервером сократилось с четырех до двух, обмен ключами и схема цифровой подписи через расширение больше не требуются. Поскольку все происходит в миллисекундах, это не замечается так быстро, но это имеет значение. Более того, TLS 1.3 пошел дальше и сделал свой шаг вперед, чтобы включить рукопожатие 0-RTT еще до того, как клиент и сервер встретились, из-за чего для установления рукопожатия требуется ноль циклов, что приводит к снижению задержки, это больше похоже на этап, так как благодаря выполнению 0-RTT Resuration клиент может подключиться к серверу, даже до того, как TLS 1.3 разрешит квитирование с нулевым циклом. Обычно это выполняется путем хранения секретной информации, такой как идентификатор сеанса или билеты предыдущих сеансов, и использования их для будущего использования всякий раз, когда обе стороны подключаются.
ClientHello, Supported Cipher Suites, Guessing of Key Agreement Protocol, Key Share
Начинается с сообщения «ClientHello» клиент также отправляет список поддерживаемых комплектов шифров, угадывая, какой протокол соглашения о ключах будет выбран сервером. Наконец, клиент также отправляет свою ключ для этого протокола соглашения.
ServerHello, Key Agreement Protocol, Key Share, Server Finished
Сервер отвечает «ServerHello» сообщает выбранный протокол соглашения, ключ сервера в качестве сертификата дляобщения и, наконец, сообщение «ServerFinished».
Checks Certificate, Generate Keys, Client Finished
Наконец, клиент проверяет сертификат сервера, генерирует свои ключи из общего ключа сервера и отправляет сообщение «Client Finished», что означает, что симметричное шифрование данных может быть начато.
TLS 1.2 обеспечивает обширные улучшения по сравнению с TLS 1.2. Дополнительные части и некоторые устаревшие шрифты, которые привели к вероятности уязвимости, были удалены и обеспечили поддержку более надежных шифров, что требуется для реализации Perfect Forward Secrecy (PFS) и других подобных процессов короткого рукопожатия. Удалены шифры такие как AES-CBC, DES, RC4 и некоторые другие менее часто используемые. Удалена также возможность выполнения «повторного согласования», которое позволило клиенту и серверу генерировать новые ключи, согласовывать новые параметры и т. д., исключая вероятность повторной атаки. PFS включен по умолчанию в TLS 1.3. В связи с этим к зашифрованному сеансу добавляется дополнительный уровень конфиденциальности, который гарантирует, что трафик может быть дешифрован только двумя конечными точками. Кроме того, даже если кто-то попытается записать зашифрованный сеанс, а затем получит доступ к закрытому ключу сервера, PFS не разрешит использовать этот ключ для расшифровки сеанса.
В TLS1.3 удален обмен ключами RSA при обязательном использовании Perfect Forward Secrecy (PFS) RSA и Diffie-Hellman, два популярных механизма использовались для обмена защищенным ключом сеанса во время соединения HTTPS рядом с рукопожатием SSL. RSA вместе со всеми статическими (не Forward Secret) был удален, поскольку у него есть специфические проблемы, такие как Oracle Padding Attacks. Более того, RSA не предлагает режим эфемерного ключа, который является обязательным для PFS. И причина сделать PFS обязательной состоит в том, что без этого закрытый ключ может быть скомпрометирован, а зашифрованный разговор может быть расшифрован, и, если существует совершенная прямая секретность, он может обеспечить защиту от него.
В TLS1.3 так же убраны уязвимые алгоритмы и шифры которые теоретически и практически уязвимы для атак:
RSA Key Exchange, RC4 Stream Cipher, CBC (Block) Mode Ciphers, MD5 Algorithm, SHA-1 Hash Function, Many short-lived Diffie-Hellman groups, DES, 3-DES, Export Strength Ciphers
Поскольку переговоры были исключены из процесса рукопожатия, размер наборов шифров также уменьшился. Было
Стало
Наборы шифров регистрируются и хранятся в Реестре наборов шифров TLS IANA, давая каждому комплекту шифров свой уникальный номер для идентификации. Таким образом, наборы шифров, определенные для TLS 1.3, не могут использоваться с TLS 1.2 и наоборот, даже если они используют одни и те же наборы шифров. Кроме того, определенный алгоритм шифрования набора шифров TLS 1.3 должен быть алгоритмом AEAD (Authenticated Encryption with Additional Data), поскольку он обеспечивает как конфиденциальность, так и аутентификацию сообщений в одном криптографическом алгоритме. Здесь основная концепция функций целостности и шифрования была изменена с помощью алгоритма AEAD. В связи с введением AEAD и сокращением поддерживаемого шифра не будет возможности отправлять незашифрованные данные через TLS 1.3, который был опцией в TLS 1.2 с использованием наборов шифров NULL.
TLS 1.3 Cipher Suite List:
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256
TLS_AES_128_CCM_8_SHA256
TLS_AES_128_CCM_SHA256
Как обновить TLS 1.3 на сервере?
Обновление TLS 1.3 аналогично обновлению любой библиотеки программного обеспечения. Просто обновите библиотеку SSL / TLS до одной из следующих версий: GnuTLS 3.5x, Google's Boring SSL (последняя версия), FaceBook's Fizz (Последняя версия), OpenSSL 1.1.1
Как включить TLS 1.3 в браузере
Включить TLS 1.3 в Chrome
Открыть Chrome
Найдите chrome: // flags / в адресной строке и нажмите ввод
Включить TLS 1.3 (проект 23)
Перезапустить Chrome
Браво! Вы только что включили TLS 1.3.
Включить TLS 1.3 в Firefox
Затем найдите about: config в адресной строке и нажмите enter
Поиск version.max
Установите 4 в качестве значения
Перезапустите Firefox
Браво! Вы только что включили TLS 1.3.
Ошибки TLS 1.3
Ошибка при открытии сайта ERR_SSL_VERSION_INTERFERENCE
- это означает, что версия TLS не доступна взаимно между клиентом и сервером для соединения. Обычно это происходит в случае несоответствия версий TLS 1.3, поддерживаемых веб-браузером и веб-сервером.
Ошибка старой версии TLS 1.3
- как правило, эта проблема возникает при использовании более ранней версии чернового процесса TLS 1.3, которая была доступна до утверждения протокола. Чтобы избежать, будьте уверены, что вы и посетители вашего сайта используете последнюю версию TLS 1.3 с соответствующими браузерами, библиотеками программного обеспечения и операционными системами. Попытка подключения через устаревшую черновую версию TLS 1.3 может привести к ошибкам.