0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Протокол TLS активно работает со множеством процессов сетевого взаимодействия, начиная с передачи файлов и VPN-подключения, заканчивая IP-телефонией и службами обмена мгновенными сообщениями. Ключевой аспект протокола TLS - "рукопожатие". О нём и поговорим.</p>
1
<p>Протокол TLS активно работает со множеством процессов сетевого взаимодействия, начиная с передачи файлов и VPN-подключения, заканчивая IP-телефонией и службами обмена мгновенными сообщениями. Ключевой аспект протокола TLS - "рукопожатие". О нём и поговорим.</p>
2
<h2>Как происходит TLS-рукопожатие?</h2>
2
<h2>Как происходит TLS-рукопожатие?</h2>
3
<p>"Рукопожатием SSL/TLS" называют процесс, а точнее, этап установки HTTPS-соединения. И основная часть работы, связанная с SSL/TLS-протоколом, производится как раз на этом этапе.</p>
3
<p>"Рукопожатием SSL/TLS" называют процесс, а точнее, этап установки HTTPS-соединения. И основная часть работы, связанная с SSL/TLS-протоколом, производится как раз на этом этапе.</p>
4
<p>В HTTPS-соединении участвуют 2 стороны: клиент (это инициатор соединения, как правило, web-браузер) и, разумеется, сервер. Цель SSL/TLS-рукопожатия заключается в выполнении всей криптографической работы для установки безопасного соединения, включая проверку подлинности задействованного SSL-сертификата и генерацию ключа шифрования.</p>
4
<p>В HTTPS-соединении участвуют 2 стороны: клиент (это инициатор соединения, как правило, web-браузер) и, разумеется, сервер. Цель SSL/TLS-рукопожатия заключается в выполнении всей криптографической работы для установки безопасного соединения, включая проверку подлинности задействованного SSL-сертификата и генерацию ключа шифрования.</p>
5
<h2>Согласование шифронабора</h2>
5
<h2>Согласование шифронабора</h2>
6
<p>Как известно, любое ПО уникально и имеет разную функциональность. Именно поэтому первый шаг TLS-рукопожатия заключается в обмене информацией о своих возможностях между сервером и клиентом для последующего выбора поддерживаемых криптографических функций. В тот самый момент, когда клиент и сервер согласуют применяемый шифронабор, сервер отправит клиенту свой SSL-сертификат.</p>
6
<p>Как известно, любое ПО уникально и имеет разную функциональность. Именно поэтому первый шаг TLS-рукопожатия заключается в обмене информацией о своих возможностях между сервером и клиентом для последующего выбора поддерживаемых криптографических функций. В тот самый момент, когда клиент и сервер согласуют применяемый шифронабор, сервер отправит клиенту свой SSL-сертификат.</p>
7
<h2>Аутентификация</h2>
7
<h2>Аутентификация</h2>
8
<p>Когда клиент получает сертификат, он проверяет его на подлинность. Дабы обеспечить безопасность соединения, надо не только зашифровать информацию, но и убедиться, что она отправляется на правильный web-сайт. Эту аутентификацию обеспечивают сертификаты SSL/TLS, а то, каким образом они это делают, уже зависит от применяемого шифронабора.</p>
8
<p>Когда клиент получает сертификат, он проверяет его на подлинность. Дабы обеспечить безопасность соединения, надо не только зашифровать информацию, но и убедиться, что она отправляется на правильный web-сайт. Эту аутентификацию обеспечивают сертификаты SSL/TLS, а то, каким образом они это делают, уже зависит от применяемого шифронабора.</p>
9
<p>Все доверенные SSL-сертификаты выпускает центр сертификации (ЦС). ЦС - это что-то типа нотариуса, и его подпись означает, что данные в сертификате реальны.</p>
9
<p>Все доверенные SSL-сертификаты выпускает центр сертификации (ЦС). ЦС - это что-то типа нотариуса, и его подпись означает, что данные в сертификате реальны.</p>
10
<p>При реализации аутентификационной части TLS-рукопожатия осуществляется выполнение клиентом нескольких криптографически безопасных проверок. Главная цель - удостовериться, что сертификат, который выдан сервером, является подлинным. Это обеспечивается путём проверки цифровой подписи и того факта, выдан ли сертификат доверенным центром сертификации. На данном этапе клиент выполняет косвенную проверку того, принадлежит ли серверу закрытый ключ, который связан с сертификатом.</p>
10
<p>При реализации аутентификационной части TLS-рукопожатия осуществляется выполнение клиентом нескольких криптографически безопасных проверок. Главная цель - удостовериться, что сертификат, который выдан сервером, является подлинным. Это обеспечивается путём проверки цифровой подписи и того факта, выдан ли сертификат доверенным центром сертификации. На данном этапе клиент выполняет косвенную проверку того, принадлежит ли серверу закрытый ключ, который связан с сертификатом.</p>
11
<p>В наиболее распространённой криптографической системе с открытым ключом - RSA, клиент посредством открытого ключа шифрует случайные данные, и эти данные потом используются для генерации сеансового ключа. При этом сервер может расшифровать и начать применять эти данные только в том случае, если имеет закрытый ключ, наличие которого и обеспечивает подлинность стороны.</p>
11
<p>В наиболее распространённой криптографической системе с открытым ключом - RSA, клиент посредством открытого ключа шифрует случайные данные, и эти данные потом используются для генерации сеансового ключа. При этом сервер может расшифровать и начать применять эти данные только в том случае, если имеет закрытый ключ, наличие которого и обеспечивает подлинность стороны.</p>
12
<p>Когда применяется иная криптосистема, алгоритм может поменяться, однако проверка другой стороны на подлинность останется в любом случае.</p>
12
<p>Когда применяется иная криптосистема, алгоритм может поменяться, однако проверка другой стороны на подлинность останется в любом случае.</p>
13
<h2>Обмен ключами</h2>
13
<h2>Обмен ключами</h2>
14
<p>Это финишная часть TLS-рукопожатия. Она предполагает создание "сеансового ключа", который станет использоваться для защищённой связи. Такие ключи являются "симметричными", когда один и тот же ключ применяется и для шифрования, и для дешифрования.</p>
14
<p>Это финишная часть TLS-рукопожатия. Она предполагает создание "сеансового ключа", который станет использоваться для защищённой связи. Такие ключи являются "симметричными", когда один и тот же ключ применяется и для шифрования, и для дешифрования.</p>
15
<p>Говоря о симметричном шифровании, можно сказать, что оно производительнее, если сравнивать с асимметричным. А значит, оно лучше подходит для отправки данных по HTTPS. Что касается точного метода генерации ключа, то он зависит от выбранного шифронабора. Наиболее распространённые - RSA и Диффи-Хеллман.</p>
15
<p>Говоря о симметричном шифровании, можно сказать, что оно производительнее, если сравнивать с асимметричным. А значит, оно лучше подходит для отправки данных по HTTPS. Что касается точного метода генерации ключа, то он зависит от выбранного шифронабора. Наиболее распространённые - RSA и Диффи-Хеллман.</p>
16
<p>Для завершения рукопожатия каждая сторона сообщает другой стороне, что она выполнила нужную работу, после чего происходит проверка контрольных сумм, дабы удостовериться, что рукопожатие проходит без какого-нибудь вмешательства либо повреждения.</p>
16
<p>Для завершения рукопожатия каждая сторона сообщает другой стороне, что она выполнила нужную работу, после чего происходит проверка контрольных сумм, дабы удостовериться, что рукопожатие проходит без какого-нибудь вмешательства либо повреждения.</p>
17
<p>Вообще, само SSL-рукопожатие происходит всего за несколько сотен миллисекунд. И это первое, что произойдёт при HTTPS-соединении, а произойдёт оно ещё даже до загрузки web-страницы. Далее, после рукопожатия начинается аутентифицированное и зашифрованное HTTPS-соединение, соответственно, все данные, которые отправляются и получаются клиентом и сервером, являются защищёнными.</p>
17
<p>Вообще, само SSL-рукопожатие происходит всего за несколько сотен миллисекунд. И это первое, что произойдёт при HTTPS-соединении, а произойдёт оно ещё даже до загрузки web-страницы. Далее, после рукопожатия начинается аутентифицированное и зашифрованное HTTPS-соединение, соответственно, все данные, которые отправляются и получаются клиентом и сервером, являются защищёнными.</p>
18
<p>Напоследок, отметим, что до выхода TLS 1.3 рукопожатие происходило заново каждый раз при посещении сайта. Но уже TLS 1.3 начал поддерживать 0-RTT (нулевое время возобновления приёма-передачи), а это существенно повысило скорость для посетителя, который повторно возвращается на сайт.</p>
18
<p>Напоследок, отметим, что до выхода TLS 1.3 рукопожатие происходило заново каждый раз при посещении сайта. Но уже TLS 1.3 начал поддерживать 0-RTT (нулевое время возобновления приёма-передачи), а это существенно повысило скорость для посетителя, который повторно возвращается на сайт.</p>
19
<p><em>Источник - "<a>Taking a Closer Look at the SSL/TLS Handshake</a>".</em></p>
19
<p><em>Источник - "<a>Taking a Closer Look at the SSL/TLS Handshake</a>".</em></p>
20
20