HTML Diff
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