HTML Diff
6 added 3 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>1 сен 2023</li>
2 <ul><li>1 сен 2023</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Если вы что-то оплачиваете в интернете, то мошенники до сих пор не опустошили ваши карточки именно благодаря TLS.</p>
4 </ul><p>Если вы что-то оплачиваете в интернете, то мошенники до сих пор не опустошили ваши карточки именно благодаря TLS.</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6 <p>Пишет о сетях, инструментах для разработчиков и языках программирования. Любит готовить, играть в инди‑игры и программировать на Python.</p>
6 <p>Пишет о сетях, инструментах для разработчиков и языках программирования. Любит готовить, играть в инди‑игры и программировать на Python.</p>
7 - <p>Давным-давно, когда интернет был ещё совсем юным, данные летали по Сети как есть - в открытом виде. Но время шло, и всё больше наших повседневных действий стало уходить на сайты: от покупок до записи к врачу, от общения до сделок с недвижимостью. Стало ясно, что весь этот трафик надо как-то шифровать.</p>
7 + <p>Давным-давно, когда интернет был ещё совсем юным, данные летали по Сети как есть - в открытом виде. Но время шло, и всё больше наших повседневных действий стало уходить на сайты: от покупок до записи к врачу, от общения до сделок с недвижимостью. Стало ясно, что весь этот трафик надо ак-то шифровать.</p>
8 <p>Первой попыткой защитить ценные данные при передаче стал протокол SSL - о нём у нас уже есть<a>отдельная статья</a>. Сейчас из-за некоторых уязвимостей чистый SSL используют редко - зато его версия на максималках, протокол шифрования данных TLS, надёжно охраняет транзакции по всему миру. О нём и поговорим сегодня.</p>
8 <p>Первой попыткой защитить ценные данные при передаче стал протокол SSL - о нём у нас уже есть<a>отдельная статья</a>. Сейчас из-за некоторых уязвимостей чистый SSL используют редко - зато его версия на максималках, протокол шифрования данных TLS, надёжно охраняет транзакции по всему миру. О нём и поговорим сегодня.</p>
9 <p>Из этой статьи вы узнаете:</p>
9 <p>Из этой статьи вы узнаете:</p>
10 <ul><li><a>Что такое TLS</a></li>
10 <ul><li><a>Что такое TLS</a></li>
11 <li><a>Чем TLS отличается от SSL</a></li>
11 <li><a>Чем TLS отличается от SSL</a></li>
12 <li><a>Как TLS шифрует данные</a></li>
12 <li><a>Как TLS шифрует данные</a></li>
13 <li><a>Какие в TLS есть алгоритмы шифрования</a></li>
13 <li><a>Какие в TLS есть алгоритмы шифрования</a></li>
14 <li><a>Как работает TLS</a></li>
14 <li><a>Как работает TLS</a></li>
15 <li><a>Что такое механизм возобновления сессий</a></li>
15 <li><a>Что такое механизм возобновления сессий</a></li>
16 <li><a>Как происходит защита от атак типа man-in-the-middle</a></li>
16 <li><a>Как происходит защита от атак типа man-in-the-middle</a></li>
17 <li><a>Чем различаются версии TLS</a></li>
17 <li><a>Чем различаются версии TLS</a></li>
18 <li><a>Какие у TLS есть уязвимости</a></li>
18 <li><a>Какие у TLS есть уязвимости</a></li>
19 <li><a>Как использовать TLS безопасно</a></li>
19 <li><a>Как использовать TLS безопасно</a></li>
20 </ul><p><strong>TLS</strong>, или<strong>transport layer security</strong>, - это протокол, который защищает данные во время их передачи по Сети. Он работает на четвёртом, транспортном, уровне<a>сетевой модели OSI</a>, где отвечает за создание безопасных сессий обмена данными между браузером и сервером.</p>
20 </ul><p><strong>TLS</strong>, или<strong>transport layer security</strong>, - это протокол, который защищает данные во время их передачи по Сети. Он работает на четвёртом, транспортном, уровне<a>сетевой модели OSI</a>, где отвечает за создание безопасных сессий обмена данными между браузером и сервером.</p>
21 <p>Изначально TLS использовали в основном для соединения со страницами оплаты - однако сейчас он работает почти на каждом уважающем себя сайте. Понять, что сайт использует TLS, легко: если его адрес начинается с http<strong>s</strong>, а рядом красуется символ замочка - значит, ваши данные защищены.</p>
21 <p>Изначально TLS использовали в основном для соединения со страницами оплаты - однако сейчас он работает почти на каждом уважающем себя сайте. Понять, что сайт использует TLS, легко: если его адрес начинается с http<strong>s</strong>, а рядом красуется символ замочка - значит, ваши данные защищены.</p>
22 <p>Аббревиатура HTTP<strong>S</strong>означает, что сайт использует защищённую версию протокола HTTP - Hypertext Transfer Protocol<strong>Secure</strong>. По сути, это и есть обычный HTTP, только нашпигованный средствами защиты, за которые как раз и отвечает TLS.</p>
22 <p>Аббревиатура HTTP<strong>S</strong>означает, что сайт использует защищённую версию протокола HTTP - Hypertext Transfer Protocol<strong>Secure</strong>. По сути, это и есть обычный HTTP, только нашпигованный средствами защиты, за которые как раз и отвечает TLS.</p>
23 <em>Скриншот: Skillbox Media</em><p>Чтобы понять, как работает TLS, проведём аналогию с фильмом "Чёрная пантера". Если помните, у вакандийцев есть два характерных атрибута коммуникации. Во-первых, это фирменные приветствия со скрещёнными на груди руками, которые позволяют им узнавать друг друга. А во-вторых, конечно, вакандийский язык, понятный в основном жителям этой страны.</p>
23 <em>Скриншот: Skillbox Media</em><p>Чтобы понять, как работает TLS, проведём аналогию с фильмом "Чёрная пантера". Если помните, у вакандийцев есть два характерных атрибута коммуникации. Во-первых, это фирменные приветствия со скрещёнными на груди руками, которые позволяют им узнавать друг друга. А во-вторых, конечно, вакандийский язык, понятный в основном жителям этой страны.</p>
24 <p>То же самое и с компьютерами. Когда вы заходите на сайт, защищённый TLS, ваш браузер и сервер сначала жмут друг другу руки: устанавливают соединение, обмениваются секретными ключами и выбирают алгоритмы шифрования. А потом начинают общение на загадочном языке, понятном только им.</p>
24 <p>То же самое и с компьютерами. Когда вы заходите на сайт, защищённый TLS, ваш браузер и сервер сначала жмут друг другу руки: устанавливают соединение, обмениваются секретными ключами и выбирают алгоритмы шифрования. А потом начинают общение на загадочном языке, понятном только им.</p>
25 <p>Дальше в статье мы подробнее разберём процесс рукопожатия и обмена сообщениями в TLS - но перед этим обсудим ещё одну важную тему.</p>
25 <p>Дальше в статье мы подробнее разберём процесс рукопожатия и обмена сообщениями в TLS - но перед этим обсудим ещё одну важную тему.</p>
26 <p>Если вы уже читали<a>нашу статью про SSL</a>, то наверняка заметили, что между двумя протоколами много общего: оба шифруют данные, оба используют секретные ключи, оба создают защищённые сессии. Так в чём же разница? Чтобы в этом разобраться, погрузимся ненадолго в историю.</p>
26 <p>Если вы уже читали<a>нашу статью про SSL</a>, то наверняка заметили, что между двумя протоколами много общего: оба шифруют данные, оба используют секретные ключи, оба создают защищённые сессии. Так в чём же разница? Чтобы в этом разобраться, погрузимся ненадолго в историю.</p>
27 <p>Протокол SSL разработала компания Netscape в середине 1990-х, чтобы улучшить свой браузер Navigator (олды помнят). Для своей эпохи SSL был вполне хорош, но со временем в его безопасности нашлись серьёзные бреши. Одной из самых критичных стала небезопасная проверка паддинга.</p>
27 <p>Протокол SSL разработала компания Netscape в середине 1990-х, чтобы улучшить свой браузер Navigator (олды помнят). Для своей эпохи SSL был вполне хорош, но со временем в его безопасности нашлись серьёзные бреши. Одной из самых критичных стала небезопасная проверка паддинга.</p>
28 <p>Паддинг - это блок данных, который компьютер добавляет к исходным данным при отправке, чтобы сообщение соответствовало определённой обязательной длине, зависящей от пропускной способности сетевого оборудования.</p>
28 <p>Паддинг - это блок данных, который компьютер добавляет к исходным данным при отправке, чтобы сообщение соответствовало определённой обязательной длине, зависящей от пропускной способности сетевого оборудования.</p>
29 <p>Хакеры придумали хитрость: они вклинивались в сессию и отправляли сообщения с неправильным паддингом, при расшифровке которого сервер выдавал ошибку, где с потрохами сдавал внутренние процессы дешифрации. Эти данные мошенники использовали, чтобы вычислить исходное сообщение.</p>
29 <p>Хакеры придумали хитрость: они вклинивались в сессию и отправляли сообщения с неправильным паддингом, при расшифровке которого сервер выдавал ошибку, где с потрохами сдавал внутренние процессы дешифрации. Эти данные мошенники использовали, чтобы вычислить исходное сообщение.</p>
30 <p>Чтобы лучше понять, как это работает, представьте, что вы пытаетесь угадать чей-то пароль. Но вместо обычного "пароль неверный" система говорит вам ещё и о том, что он слишком длинный или в нём нет каких-то символов. Тем самым система помогает хакеру сузить количество вариантов "паролей".</p>
30 <p>Чтобы лучше понять, как это работает, представьте, что вы пытаетесь угадать чей-то пароль. Но вместо обычного "пароль неверный" система говорит вам ещё и о том, что он слишком длинный или в нём нет каких-то символов. Тем самым система помогает хакеру сузить количество вариантов "паролей".</p>
31 <em>Изображение: Skillbox Media</em><p>Исправить эту уязвимость одними обновлениями было невозможно - она была связана с самим дизайном SSL, а не конкретными реализациями. Именно из-за подобных проблем, а также из-за банкротства Netscape, разработка перешла в так называемый Инженерный совет интернета - IETF. Там протокол улучшили, исправили косяки безопасности и выпустили под новым названием - TLS.</p>
31 <em>Изображение: Skillbox Media</em><p>Исправить эту уязвимость одними обновлениями было невозможно - она была связана с самим дизайном SSL, а не конкретными реализациями. Именно из-за подобных проблем, а также из-за банкротства Netscape, разработка перешла в так называемый Инженерный совет интернета - IETF. Там протокол улучшили, исправили косяки безопасности и выпустили под новым названием - TLS.</p>
32 <p>Новый протокол обзавёлся более совершенными механизмами шифрования и аутентификации, а также проверкой добавленных блоков. Да, атаку с неправильным паддингом стало провернуть не так-то просто:</p>
32 <p>Новый протокол обзавёлся более совершенными механизмами шифрования и аутентификации, а также проверкой добавленных блоков. Да, атаку с неправильным паддингом стало провернуть не так-то просто:</p>
33 <em>Изображение: Skillbox Media</em><p>Сегодня протокол SSL считается устаревшим - использовать его не рекомендуется из-за вышеуказанных проблем. Однако термины SSL и TLS до сих пор часто путают и используют как синонимы. Но теперь вы знаете, как всё обстоит на самом деле, и можете помочь "распутаться" окружающим.</p>
33 <em>Изображение: Skillbox Media</em><p>Сегодня протокол SSL считается устаревшим - использовать его не рекомендуется из-за вышеуказанных проблем. Однако термины SSL и TLS до сих пор часто путают и используют как синонимы. Но теперь вы знаете, как всё обстоит на самом деле, и можете помочь "распутаться" окружающим.</p>
34 <p>Чтобы защитить данные, TLS создаёт во время передачи специальный канал, где их нельзя прочитать или изменить без секретного ключа. Ключ - это подсказка, как именно читать сообщение. Самый простой пример ключа - это чтение первых букв в строке:</p>
34 <p>Чтобы защитить данные, TLS создаёт во время передачи специальный канал, где их нельзя прочитать или изменить без секретного ключа. Ключ - это подсказка, как именно читать сообщение. Самый простой пример ключа - это чтение первых букв в строке:</p>
35 <p><strong>В</strong>ашими молитвами только и живём, дорогой Игорь Николаевич!</p>
35 <p><strong>В</strong>ашими молитвами только и живём, дорогой Игорь Николаевич!</p>
36 <p><strong>С</strong>овсем не ограничиваем себя.</p>
36 <p><strong>С</strong>овсем не ограничиваем себя.</p>
37 <p><strong>Е</strong>сли урожай хороший народится - доведём мельницу до порядку.</p>
37 <p><strong>Е</strong>сли урожай хороший народится - доведём мельницу до порядку.</p>
38 <p><strong>П</strong>окуда в Петербурге гуляния, уж дайте себе волю.</p>
38 <p><strong>П</strong>окуда в Петербурге гуляния, уж дайте себе волю.</p>
39 <p><strong>Л</strong>юбуйтесь красотами и с людьми знакомьтесь.</p>
39 <p><strong>Л</strong>юбуйтесь красотами и с людьми знакомьтесь.</p>
40 <p><strong>О</strong>нас не беспокойтесь, Бог даст - Тверь не пропадёт.</p>
40 <p><strong>О</strong>нас не беспокойтесь, Бог даст - Тверь не пропадёт.</p>
41 <p><strong>Х</strong>орошо живём, ни на что не жалуемся.</p>
41 <p><strong>Х</strong>орошо живём, ни на что не жалуемся.</p>
42 <p><strong>О</strong>твета скорого не ждём, но пишите уж по возможности.</p>
42 <p><strong>О</strong>твета скорого не ждём, но пишите уж по возможности.</p>
43 <p>В реальности ключи, конечно, намного сложнее, но смысл тот же - подсказка для правильного чтения.</p>
43 <p>В реальности ключи, конечно, намного сложнее, но смысл тот же - подсказка для правильного чтения.</p>
44 <p>В зависимости от количества ключей в TLS используется один из двух классов шифрования: симметричное и асимметричное.</p>
44 <p>В зависимости от количества ключей в TLS используется один из двух классов шифрования: симметричное и асимметричное.</p>
45 <p><strong>Симметричное шифрование</strong> - это когда используется один и тот же ключ для шифрования и дешифрования данных. Оно работает эффективно и быстро, но требует предварительного обмена ключом между компьютером и сервером, в ходе которого ключ могут перехватить.</p>
45 <p><strong>Симметричное шифрование</strong> - это когда используется один и тот же ключ для шифрования и дешифрования данных. Оно работает эффективно и быстро, но требует предварительного обмена ключом между компьютером и сервером, в ходе которого ключ могут перехватить.</p>
46 <p><strong>Асимметричное шифрование</strong>использует два ключа: публичный для шифрования и приватный для дешифровки. Публичный ключ можно свободно распространять, а приватный должен быть хорошо защищён. Асимметричное шифрование безопаснее, но требует больше вычислительных ресурсов и работает медленнее, чем симметричное.</p>
46 <p><strong>Асимметричное шифрование</strong>использует два ключа: публичный для шифрования и приватный для дешифровки. Публичный ключ можно свободно распространять, а приватный должен быть хорошо защищён. Асимметричное шифрование безопаснее, но требует больше вычислительных ресурсов и работает медленнее, чем симметричное.</p>
47 <p>В протоколе TLS симметричное шифрование используют для шифрования непосредственно сообщений, а асимметричное шифрование - во время рукопожатия, то есть в начале сессии для обмена ключами и аутентификации.</p>
47 <p>В протоколе TLS симметричное шифрование используют для шифрования непосредственно сообщений, а асимметричное шифрование - во время рукопожатия, то есть в начале сессии для обмена ключами и аутентификации.</p>
48 <p>Ещё TLS обеспечивает проверку подлинности сервера при помощи<a>специальных сертификатов</a>, которые заверяет специальный центр сертификации. С таким сертификатом ваш браузер будет уверен, что не обменивается данными с хакером.</p>
48 <p>Ещё TLS обеспечивает проверку подлинности сервера при помощи<a>специальных сертификатов</a>, которые заверяет специальный центр сертификации. С таким сертификатом ваш браузер будет уверен, что не обменивается данными с хакером.</p>
49 <p>Помимо шифрования в TLS используется несколько алгоритмов хеширования.</p>
49 <p>Помимо шифрования в TLS используется несколько алгоритмов хеширования.</p>
50 <p>Хеширование - это преобразование массива данных в строку фиксированной длины. Для хеш-функции неважно, что именно вы через неё пропустите: полный текст "Войны и мира", трёхзначное число или email-адрес - на выходе будет всегда строка из заранее известного количества символов. Если поменять в исходном массиве хоть один знак, то хеш тоже изменится.</p>
50 <p>Хеширование - это преобразование массива данных в строку фиксированной длины. Для хеш-функции неважно, что именно вы через неё пропустите: полный текст "Войны и мира", трёхзначное число или email-адрес - на выходе будет всегда строка из заранее известного количества символов. Если поменять в исходном массиве хоть один знак, то хеш тоже изменится.</p>
51 <p>Когда ваш браузер отправляет данные с помощью протокола TLS, вместе с ними автоматически отправляется их хеш. Сервер получает данные и пропускает их через ту же хеш-функцию, что и браузер. Если данные не поменяли - хеши совпадут и обмен сообщениями пройдёт успешно.</p>
51 <p>Когда ваш браузер отправляет данные с помощью протокола TLS, вместе с ними автоматически отправляется их хеш. Сервер получает данные и пропускает их через ту же хеш-функцию, что и браузер. Если данные не поменяли - хеши совпадут и обмен сообщениями пройдёт успешно.</p>
52 <p>На сайте<a>wtools.io</a>можно сделать хеш из любого текста - мы, например, захешировали текст этой статьи:</p>
52 <p>На сайте<a>wtools.io</a>можно сделать хеш из любого текста - мы, например, захешировали текст этой статьи:</p>
53 <p>e2f1811ccf1a88a5cb22750a6ae72e21abf8bfb65b34dfe30877fd08a22e899f69d45ca9fb507e4271b84a206bfc110898361f08bf4f6dbfa433e3ab65ad9875</p>
53 <p>e2f1811ccf1a88a5cb22750a6ae72e21abf8bfb65b34dfe30877fd08a22e899f69d45ca9fb507e4271b84a206bfc110898361f08bf4f6dbfa433e3ab65ad9875</p>
54 <p>Основной алгоритм хеширования в TLS - это SHA на 256, 512 или 384 бит. Использование MD5 и SHA-1 не рекомендуется - с современными мощностями их слишком легко взломать обычным перебором.</p>
54 <p>Основной алгоритм хеширования в TLS - это SHA на 256, 512 или 384 бит. Использование MD5 и SHA-1 не рекомендуется - с современными мощностями их слишком легко взломать обычным перебором.</p>
55 <p>С механикой работы шифрования разобрались - теперь давайте коротко расскажем, с помощью каких алгоритмов весь этот процесс происходит.</p>
55 <p>С механикой работы шифрования разобрались - теперь давайте коротко расскажем, с помощью каких алгоритмов весь этот процесс происходит.</p>
56 <p><strong>AES (Advanced Encryption Standard).</strong>Симметричный алгоритм шифрования, использующий для защиты данных ключи длиной от 128 до 256 бит. Чем длиннее ключ, тем выше защита, но ниже производительность.</p>
56 <p><strong>AES (Advanced Encryption Standard).</strong>Симметричный алгоритм шифрования, использующий для защиты данных ключи длиной от 128 до 256 бит. Чем длиннее ключ, тем выше защита, но ниже производительность.</p>
57 <p><strong>3DES (Triple Data Encryption Standard).</strong>Чуть менее безопасный алгоритм. Он делает то же самое, что и AES, но тремя разными ключами. Это как если бы вы спрятали свои данные в коробку, эту коробку в другую коробку, а её в свою очередь убрали в третью коробку. Получается сложная конструкция из коробок, которая не даёт посторонним людям узнать, что внутри.</p>
57 <p><strong>3DES (Triple Data Encryption Standard).</strong>Чуть менее безопасный алгоритм. Он делает то же самое, что и AES, но тремя разными ключами. Это как если бы вы спрятали свои данные в коробку, эту коробку в другую коробку, а её в свою очередь убрали в третью коробку. Получается сложная конструкция из коробок, которая не даёт посторонним людям узнать, что внутри.</p>
58 <p><strong>ChaCha20-Poly1305.</strong>Симметричный алгоритм, который использует ChaCha20 для генерации ключей и Poly1305 для создания MAC - кода аутентификации сообщений. Сервер вычисляет MAC и сравнивает его с полученным значением от клиента. Если совпало - значит, данные никто не менял.</p>
58 <p><strong>ChaCha20-Poly1305.</strong>Симметричный алгоритм, который использует ChaCha20 для генерации ключей и Poly1305 для создания MAC - кода аутентификации сообщений. Сервер вычисляет MAC и сравнивает его с полученным значением от клиента. Если совпало - значит, данные никто не менял.</p>
59 <p>Настало время выложить карты на стол. На самом деле, TLS - это не один протокол, а целых два: протокол рукопожатия и протокол записи. Каждый из них отвечает за свой набор функций. Коротко расскажем, в чём их смысл.</p>
59 <p>Настало время выложить карты на стол. На самом деле, TLS - это не один протокол, а целых два: протокол рукопожатия и протокол записи. Каждый из них отвечает за свой набор функций. Коротко расскажем, в чём их смысл.</p>
60 <p>Допустим, вы заходите на сайт Skillbox Media, чтобы почитать<a>статью про ИИ общего назначения</a>. На этом этапе ни ваш браузер, ни сервер ещё ничего друг о друге не знают. Чтобы исправить эту ситуацию, начинает свою работу протокол рукопожатия<strong>(handshake protocol)</strong>. Вот из каких этапов состоит процесс его исполнения:</p>
60 <p>Допустим, вы заходите на сайт Skillbox Media, чтобы почитать<a>статью про ИИ общего назначения</a>. На этом этапе ни ваш браузер, ни сервер ещё ничего друг о друге не знают. Чтобы исправить эту ситуацию, начинает свою работу протокол рукопожатия<strong>(handshake protocol)</strong>. Вот из каких этапов состоит процесс его исполнения:</p>
61 <p><strong>Приветствие</strong></p>
61 <p><strong>Приветствие</strong></p>
62 <p>Клиент и сервер обмениваются сообщениями, в которых они представляются друг другу и договариваются, какие алгоритмы шифрования будут использовать при передаче данных.</p>
62 <p>Клиент и сервер обмениваются сообщениями, в которых они представляются друг другу и договариваются, какие алгоритмы шифрования будут использовать при передаче данных.</p>
63 <p><strong>Обмен ключами</strong></p>
63 <p><strong>Обмен ключами</strong></p>
64 <p>Клиент и сервер убеждаются в подлинности друг друга и выполняют обмен ключами для дальнейшего использования при шифровании данных.</p>
64 <p>Клиент и сервер убеждаются в подлинности друг друга и выполняют обмен ключами для дальнейшего использования при шифровании данных.</p>
65 <p><strong>Завершение рукопожатия</strong></p>
65 <p><strong>Завершение рукопожатия</strong></p>
66 <p>Клиент и сервер подтверждают, что установка соединения прошла успешно и что они готовы к защищённой передаче данных.</p>
66 <p>Клиент и сервер подтверждают, что установка соединения прошла успешно и что они готовы к защищённой передаче данных.</p>
67 <p>Когда соединение установлено, самое время наконец отправить вам нужную статью. И тут в игру вступает протокол записи<strong>(record protocol)</strong>: он отвечает за шифрование и передачу данных между сайтом и браузером. Он работает поверх установленного соединения по параметрам, о которых клиент и сервер договорились во время рукопожатия. И совершается эта магия за пять шагов:</p>
67 <p>Когда соединение установлено, самое время наконец отправить вам нужную статью. И тут в игру вступает протокол записи<strong>(record protocol)</strong>: он отвечает за шифрование и передачу данных между сайтом и браузером. Он работает поверх установленного соединения по параметрам, о которых клиент и сервер договорились во время рукопожатия. И совершается эта магия за пять шагов:</p>
68 <p><strong>Фрагментация</strong></p>
68 <p><strong>Фрагментация</strong></p>
69 <p>Данные разбиваются на фрагменты меньшего размера для последующего шифрования.</p>
69 <p>Данные разбиваются на фрагменты меньшего размера для последующего шифрования.</p>
70 <p><strong>Компрессия</strong></p>
70 <p><strong>Компрессия</strong></p>
71 <p>Данные сжимаются, их объём уменьшается (если применяется сжатие).</p>
71 <p>Данные сжимаются, их объём уменьшается (если применяется сжатие).</p>
72 <p><strong>Шифрование</strong></p>
72 <p><strong>Шифрование</strong></p>
73 <p>Фрагменты данных шифруются по выбранному алгоритму симметричного шифрования, использующему общий секретный ключ, установленный на этапе рукопожатия.</p>
73 <p>Фрагменты данных шифруются по выбранному алгоритму симметричного шифрования, использующему общий секретный ключ, установленный на этапе рукопожатия.</p>
74 <p><strong>Аутентификация</strong></p>
74 <p><strong>Аутентификация</strong></p>
75 <p>Каждый фрагмент данных подписывается цифровой подписью или кодом аутентификации, чтобы соблюсти целостность и подлинность данных.</p>
75 <p>Каждый фрагмент данных подписывается цифровой подписью или кодом аутентификации, чтобы соблюсти целостность и подлинность данных.</p>
76 <p><strong>Передача данных</strong></p>
76 <p><strong>Передача данных</strong></p>
77 <p>Зашифрованные и аутентифицированные фрагменты данных передаются по Сети между клиентом и сервером.</p>
77 <p>Зашифрованные и аутентифицированные фрагменты данных передаются по Сети между клиентом и сервером.</p>
78 <p>Как несложно догадаться, процесс обмена данными с помощью TLS - штука непростая и довольно требовательная к ресурсам компьютера. Но у инженеров и на этот счёт нашёлся выход - механизм возобновления сессий, который помогает срезать углы и пропустить этап рукопожатия.</p>
78 <p>Как несложно догадаться, процесс обмена данными с помощью TLS - штука непростая и довольно требовательная к ресурсам компьютера. Но у инженеров и на этот счёт нашёлся выход - механизм возобновления сессий, который помогает срезать углы и пропустить этап рукопожатия.</p>
79 <p>Чтобы ускорить обмен сообщениями, разработчики добавили в TLS механизм возобновления сессий - 0-RTT (zero round trip time resumption, нулевое время приёма-передачи). Он позволяет клиенту и серверу возобновить сессию, если она почему-то была прервана - например, из-за ошибки сети или бага на стороне сервера.</p>
79 <p>Чтобы ускорить обмен сообщениями, разработчики добавили в TLS механизм возобновления сессий - 0-RTT (zero round trip time resumption, нулевое время приёма-передачи). Он позволяет клиенту и серверу возобновить сессию, если она почему-то была прервана - например, из-за ошибки сети или бага на стороне сервера.</p>
80 <p>Работает этот механизм просто: во время обмена данными и клиент, и сервер кэшируют данные о сессии в специальные токены. Если эти токены совпадут, стороны могут пропустить этап рукопожатия и сразу перейти к обмену данными - мол, не нужны мне твои ключи, дорогой, заходи, здесь все свои :)</p>
80 <p>Работает этот механизм просто: во время обмена данными и клиент, и сервер кэшируют данные о сессии в специальные токены. Если эти токены совпадут, стороны могут пропустить этап рукопожатия и сразу перейти к обмену данными - мол, не нужны мне твои ключи, дорогой, заходи, здесь все свои :)</p>
81 <p>На первый взгляд, выглядит круто - но есть у этого механизма и недостатки:</p>
81 <p>На первый взгляд, выглядит круто - но есть у этого механизма и недостатки:</p>
82 <p><strong>❌ Недостаточная безопасность.</strong>Клиент отправляет зашифрованные данные на сервер, используя предварительно согласованные симметричные ключи. Однако если эти ключи перехватил хакер, то он может вклиниться в сессию.</p>
82 <p><strong>❌ Недостаточная безопасность.</strong>Клиент отправляет зашифрованные данные на сервер, используя предварительно согласованные симметричные ключи. Однако если эти ключи перехватил хакер, то он может вклиниться в сессию.</p>
83 <p><strong>❌ "Перегрузка" токенами.</strong>Если сервер обслуживает сайт с миллионами пользователей, хранить в памяти токены каждой сессии может быть проблематично. К счастью, на этот случай придумали механизм session ticket, который позволяет серверу "не держать всё в себе".</p>
83 <p><strong>❌ "Перегрузка" токенами.</strong>Если сервер обслуживает сайт с миллионами пользователей, хранить в памяти токены каждой сессии может быть проблематично. К счастью, на этот случай придумали механизм session ticket, который позволяет серверу "не держать всё в себе".</p>
84 <p><strong>❌ Ограниченные динамические параметры.</strong>Динамические параметры - это своего рода условные знаки, которые стороны используют во время сессии, чтобы подтвердить, что они - это всё ещё они. В механизме 0-RTT эти параметры используются реже, чем в обычном режиме.</p>
84 <p><strong>❌ Ограниченные динамические параметры.</strong>Динамические параметры - это своего рода условные знаки, которые стороны используют во время сессии, чтобы подтвердить, что они - это всё ещё они. В механизме 0-RTT эти параметры используются реже, чем в обычном режиме.</p>
85 <p><strong>❌ Задержки в ответах.</strong>В рамках сессии 0-RTT клиент отправляет порцию данных на сервер до того, как получит ответ о "доставке" предыдущей. Это может привести к рассинхрону между сервером и клиентом - клиент может отправить несколько запросов до того, как получит ответ на первый.</p>
85 <p><strong>❌ Задержки в ответах.</strong>В рамках сессии 0-RTT клиент отправляет порцию данных на сервер до того, как получит ответ о "доставке" предыдущей. Это может привести к рассинхрону между сервером и клиентом - клиент может отправить несколько запросов до того, как получит ответ на первый.</p>
86 <p>Атака типа man-in-the-middle ("человек посередине") - одна из частых угроз безопасности в сетевых коммуникациях. Так называют ситуацию, когда злоумышленник внедряется в коммуникационный канал между клиентом и сервером, перехватывает и модифицирует передаваемые данные.</p>
86 <p>Атака типа man-in-the-middle ("человек посередине") - одна из частых угроз безопасности в сетевых коммуникациях. Так называют ситуацию, когда злоумышленник внедряется в коммуникационный канал между клиентом и сервером, перехватывает и модифицирует передаваемые данные.</p>
87 <p>В TLS есть механизмы для защиты от таких атак:</p>
87 <p>В TLS есть механизмы для защиты от таких атак:</p>
88 <ul><li><strong>Шифрование данных.</strong>Самый очевидный пункт: протокол TLS обеспечивает шифрование данных, что делает их непригодными для прослушивания или изменения злоумышленником.</li>
88 <ul><li><strong>Шифрование данных.</strong>Самый очевидный пункт: протокол TLS обеспечивает шифрование данных, что делает их непригодными для прослушивания или изменения злоумышленником.</li>
89 <li><strong>Аутентификация сервера.</strong>Клиент проверяет подлинность сайта при помощи публичного ключа и убеждается, что связывается с нужным сервером, а не с посредником. Если сертификат не проходит проверку или отсутствует, клиент может предупредить о потенциальной атаке.</li>
89 <li><strong>Аутентификация сервера.</strong>Клиент проверяет подлинность сайта при помощи публичного ключа и убеждается, что связывается с нужным сервером, а не с посредником. Если сертификат не проходит проверку или отсутствует, клиент может предупредить о потенциальной атаке.</li>
90 <li><strong>Аутентификация клиента.</strong>В некоторых случаях, когда требуется двусторонняя аутентификация, клиент предоставляет свой собственный сертификат серверу. Сервер может проверить этот сертификат и убедиться в подлинности клиента.</li>
90 <li><strong>Аутентификация клиента.</strong>В некоторых случаях, когда требуется двусторонняя аутентификация, клиент предоставляет свой собственный сертификат серверу. Сервер может проверить этот сертификат и убедиться в подлинности клиента.</li>
91 <li><strong>Обмен ключами по протоколу Диффи - Хеллмана.</strong>Протокол TLS позволяет клиенту и серверу согласовать общий секретный ключ с помощью<a>протокола Диффи - Хеллмана</a>.</li>
91 <li><strong>Обмен ключами по протоколу Диффи - Хеллмана.</strong>Протокол TLS позволяет клиенту и серверу согласовать общий секретный ключ с помощью<a>протокола Диффи - Хеллмана</a>.</li>
92 <li><strong>Цифровая подпись.</strong>В протоколе TLS используют цифровые подписи для проверки подлинности и целостности передаваемых данных. Цифровая подпись гарантирует, что данные не были изменены в процессе передачи.</li>
92 <li><strong>Цифровая подпись.</strong>В протоколе TLS используют цифровые подписи для проверки подлинности и целостности передаваемых данных. Цифровая подпись гарантирует, что данные не были изменены в процессе передачи.</li>
93 </ul><p>Конечно, совершенных средств защиты нет нигде, кроме… ну, может быть, Форт-Нокса или бункера Бэтмена. Атаки типа "человек посередине" периодически<a>случаются</a>даже с таким навороченным протоколом, как TLS, особенно если уделить не слишком много времени его настройке.</p>
93 </ul><p>Конечно, совершенных средств защиты нет нигде, кроме… ну, может быть, Форт-Нокса или бункера Бэтмена. Атаки типа "человек посередине" периодически<a>случаются</a>даже с таким навороченным протоколом, как TLS, особенно если уделить не слишком много времени его настройке.</p>
94 <p>Сейчас самая быстрая и защищённая версия TLS - 1.3. Всё благодаря современным алгоритмам шифрования, отказу от устаревших функций, а также механизму возобновления сессий. В некоторых случаях допускается использование версии 1.2. Всё, что ниже, - рекомендуется применять с большой осторожностью и только для работы с совсем уж архаичными браузерами и приложениями.</p>
94 <p>Сейчас самая быстрая и защищённая версия TLS - 1.3. Всё благодаря современным алгоритмам шифрования, отказу от устаревших функций, а также механизму возобновления сессий. В некоторых случаях допускается использование версии 1.2. Всё, что ниже, - рекомендуется применять с большой осторожностью и только для работы с совсем уж архаичными браузерами и приложениями.</p>
95 <p>Давайте посмотрим, как менялся протокол TLS и какие фишки в нём появлялись от версии к версии.</p>
95 <p>Давайте посмотрим, как менялся протокол TLS и какие фишки в нём появлялись от версии к версии.</p>
96 <p><strong>Что изменилось (по сравнению с SSL 3.0):</strong></p>
96 <p><strong>Что изменилось (по сравнению с SSL 3.0):</strong></p>
97 <ul><li>Добавлены новые функции, используемые для генерации ключей и вычисления MAC (message authentication code).</li>
97 <ul><li>Добавлены новые функции, используемые для генерации ключей и вычисления MAC (message authentication code).</li>
98 <li>Изменены форматы сообщений, завершающих рукопожатие (finished messages).</li>
98 <li>Изменены форматы сообщений, завершающих рукопожатие (finished messages).</li>
99 <li>Появились новые коды ошибок (alerts).</li>
99 <li>Появились новые коды ошибок (alerts).</li>
100 <li>Добавлена обязательная поддержка протокола Диффи - Хеллмана.</li>
100 <li>Добавлена обязательная поддержка протокола Диффи - Хеллмана.</li>
101 </ul><p><strong>Что изменилось:</strong></p>
101 </ul><p><strong>Что изменилось:</strong></p>
102 <ul><li>Произведена замена уязвимых алгоритмов хеширования MD5 и SHA-1 на более безопасные, такие как SHA-256.</li>
102 <ul><li>Произведена замена уязвимых алгоритмов хеширования MD5 и SHA-1 на более безопасные, такие как SHA-256.</li>
103 <li>Внедрены продвинутые алгоритмы шифрования, такие как AES и Camellia.</li>
103 <li>Внедрены продвинутые алгоритмы шифрования, такие как AES и Camellia.</li>
104 <li>Добавлена защита от атак на паддинг с помощью генерации случайных чисел.</li>
104 <li>Добавлена защита от атак на паддинг с помощью генерации случайных чисел.</li>
105 <li>Улучшена защита от атак с использованием цепочки блоков шифрования (CBC).</li>
105 <li>Улучшена защита от атак с использованием цепочки блоков шифрования (CBC).</li>
106 </ul><p><strong>Что изменилось:</strong></p>
106 </ul><p><strong>Что изменилось:</strong></p>
107 <ul><li>Добавлены новые алгоритмы шифрования, такие как AES-GCM (Advanced Encryption Standard - Galois/Counter Mode).</li>
107 <ul><li>Добавлены новые алгоритмы шифрования, такие как AES-GCM (Advanced Encryption Standard - Galois/Counter Mode).</li>
108 <li>Улучшена проверка целостности данных и аутентификации.</li>
108 <li>Улучшена проверка целостности данных и аутентификации.</li>
109 <li>Добавлены расширения, позволяющие клиенту и серверу согласовывать поддерживаемые функции и параметры.</li>
109 <li>Добавлены расширения, позволяющие клиенту и серверу согласовывать поддерживаемые функции и параметры.</li>
110 </ul><p><strong>Что изменилось:</strong></p>
110 </ul><p><strong>Что изменилось:</strong></p>
111 <ul><li>Добавлен механизм возобновления сессий RTT (0-RTT), о котором мы подробно рассказывали чуть выше.</li>
111 <ul><li>Добавлен механизм возобновления сессий RTT (0-RTT), о котором мы подробно рассказывали чуть выше.</li>
112 <li>Сократилось время установки соединения благодаря оптимизации протокола рукопожатия.</li>
112 <li>Сократилось время установки соединения благодаря оптимизации протокола рукопожатия.</li>
113 <li>Удалены устаревшие и уязвимые функции: алгоритмы шифрования на основе CBC, проверка подписи на основе RSA/DSA и другие.</li>
113 <li>Удалены устаревшие и уязвимые функции: алгоритмы шифрования на основе CBC, проверка подписи на основе RSA/DSA и другие.</li>
114 <li>У клиента появилась возможность отправлять данные без ожидания подтверждения от сервера.</li>
114 <li>У клиента появилась возможность отправлять данные без ожидания подтверждения от сервера.</li>
115 </ul><p>Абсолютной защиты данных не существует. Как и у любой технологии, у TLS есть свои уязвимости:</p>
115 </ul><p>Абсолютной защиты данных не существует. Как и у любой технологии, у TLS есть свои уязвимости:</p>
116 <ul><li><strong>Атаки на слабые алгоритмы шифрования в старых версиях TLS.</strong>Вычислительные мощности сегодняшних компьютеров позволяют относительно легко взломать алгоритмы шифрования, которые какое-то время назад считались неприступными. Используйте современные алгоритмы шифрования.</li>
116 <ul><li><strong>Атаки на слабые алгоритмы шифрования в старых версиях TLS.</strong>Вычислительные мощности сегодняшних компьютеров позволяют относительно легко взломать алгоритмы шифрования, которые какое-то время назад считались неприступными. Используйте современные алгоритмы шифрования.</li>
117 <li><strong>Уязвимости в реализации и настройке.</strong>Использование сторонних библиотек, попустительское отношение к проверкам сертификатов и обновлениям снижает защиту ваших данных.</li>
117 <li><strong>Уязвимости в реализации и настройке.</strong>Использование сторонних библиотек, попустительское отношение к проверкам сертификатов и обновлениям снижает защиту ваших данных.</li>
118 <li><strong>Социальная инженерия и фишинг.</strong>Даже с последней корректно настроенной версией TLS не нарушайте правила безопасности в Сети - не переходите по подозрительным ссылкам и не оставляйте конфиденциальные данные там, откуда их могут извлечь злоумышленники.</li>
118 <li><strong>Социальная инженерия и фишинг.</strong>Даже с последней корректно настроенной версией TLS не нарушайте правила безопасности в Сети - не переходите по подозрительным ссылкам и не оставляйте конфиденциальные данные там, откуда их могут извлечь злоумышленники.</li>
119 <li><strong>Утечка информации и анализ трафика.</strong>Использование одних и тех же логина и пароля может скомпрометировать безопасность ваших данных.</li>
119 <li><strong>Утечка информации и анализ трафика.</strong>Использование одних и тех же логина и пароля может скомпрометировать безопасность ваших данных.</li>
120 <li><strong>Уязвимости в ОС.</strong>Отключённый файрвол и пренебрежение обновлениями операционной системы сделают ваши данные уязвимыми.</li>
120 <li><strong>Уязвимости в ОС.</strong>Отключённый файрвол и пренебрежение обновлениями операционной системы сделают ваши данные уязвимыми.</li>
121 </ul><p>Большинство угроз безопасности и сценариев атак, перечисленных выше, остаются актуальными и для TLS 1.3. Однако TLS 1.3 привнёс улучшения и изменения, чтобы справиться с некоторыми из этих угроз и сценариев атак.</p>
121 </ul><p>Большинство угроз безопасности и сценариев атак, перечисленных выше, остаются актуальными и для TLS 1.3. Однако TLS 1.3 привнёс улучшения и изменения, чтобы справиться с некоторыми из этих угроз и сценариев атак.</p>
122 <ul><li><strong>Улучшенная криптография.</strong>Современные алгоритмы шифрования и хеширования, которые обеспечивают более надёжную защиту данных и устойчивость к известным атакам.</li>
122 <ul><li><strong>Улучшенная криптография.</strong>Современные алгоритмы шифрования и хеширования, которые обеспечивают более надёжную защиту данных и устойчивость к известным атакам.</li>
123 <li><strong>Изъятие слабых алгоритмов шифрования</strong>, таких как MD5 и SHA-1, для уменьшения рисков, связанных с их использованием.</li>
123 <li><strong>Изъятие слабых алгоритмов шифрования</strong>, таких как MD5 и SHA-1, для уменьшения рисков, связанных с их использованием.</li>
124 <li><strong>Обновлённый процесс установки соединения.</strong>В последней версии оптимизировали установку соединения, чтобы сократить обмен сообщениями и улучшить производительность.</li>
124 <li><strong>Обновлённый процесс установки соединения.</strong>В последней версии оптимизировали установку соединения, чтобы сократить обмен сообщениями и улучшить производительность.</li>
125 <li><strong>Прямая секретность (forward secrecy).</strong>Даже если долгосрочные ключи сервера или клиента скомпрометированы, предыдущие сессии останутся защищёнными.</li>
125 <li><strong>Прямая секретность (forward secrecy).</strong>Даже если долгосрочные ключи сервера или клиента скомпрометированы, предыдущие сессии останутся защищёнными.</li>
126 <li><strong>Улучшенная защита от атак типа MITM.</strong>Четвёртая версия протокола TLS включает ряд изменений для повышения защиты от атак MITM, таких как более строгая проверка сертификатов и использование надёжных алгоритмов аутентификации.</li>
126 <li><strong>Улучшенная защита от атак типа MITM.</strong>Четвёртая версия протокола TLS включает ряд изменений для повышения защиты от атак MITM, таких как более строгая проверка сертификатов и использование надёжных алгоритмов аутентификации.</li>
127 </ul><p>Хотя TLS 1.3 предлагает значительные улучшения в области безопасности, всё равно важно оставаться внимательным к новым угрозам и сценариям атак, которые могут возникнуть в будущем.</p>
127 </ul><p>Хотя TLS 1.3 предлагает значительные улучшения в области безопасности, всё равно важно оставаться внимательным к новым угрозам и сценариям атак, которые могут возникнуть в будущем.</p>
128 - <p>Напоследок - несколько советов для сетевиков и администраторов сайтов о том, как правильно использовать протокол TLS, чтобы добиться максимальной безопасности своих ресурсов:</p>
128 + <p>Напоследок - несколько советов для сетевиков и администраторов сайтов о том, как правильно использовать протокол TLS, чтобы добиться максимальной безопасности воих ресурсов:</p>
129 <ul><li>Используйте TLS 1.3, который является наиболее современной и безопасной версией протокола. Он включает множество улучшений и исправлений, связанных с безопасностью.</li>
129 <ul><li>Используйте TLS 1.3, который является наиболее современной и безопасной версией протокола. Он включает множество улучшений и исправлений, связанных с безопасностью.</li>
130 <li>Отдавайте предпочтение безопасным алгоритмам шифрования, таким как AES-GCM или ChaCha20-Poly1305, а также безопасным алгоритмам хеширования, таким как SHA-256.</li>
130 <li>Отдавайте предпочтение безопасным алгоритмам шифрования, таким как AES-GCM или ChaCha20-Poly1305, а также безопасным алгоритмам хеширования, таким как SHA-256.</li>
131 <li>Убедитесь, что ваш сервер поддерживает прямую секретность, что означает, что даже при компрометации долгосрочных ключей сессионные ключи не будут скомпрометированы.</li>
131 <li>Убедитесь, что ваш сервер поддерживает прямую секретность, что означает, что даже при компрометации долгосрочных ключей сессионные ключи не будут скомпрометированы.</li>
132 <li>Убедитесь, что сертификаты настроены правильно и соответствуют реальным доменным именам сервера. Тщательно проверяйте сертификаты клиентов, чтобы предотвратить подделку.</li>
132 <li>Убедитесь, что сертификаты настроены правильно и соответствуют реальным доменным именам сервера. Тщательно проверяйте сертификаты клиентов, чтобы предотвратить подделку.</li>
133 <li>Используйте современные и безопасные криптографические примитивы, такие как эллиптические кривые и протокол Диффи - Хеллмана с большой длиной ключа.</li>
133 <li>Используйте современные и безопасные криптографические примитивы, такие как эллиптические кривые и протокол Диффи - Хеллмана с большой длиной ключа.</li>
134 <li>Используйте проверку сертификатов, чтобы убедиться, что клиент подключается к доверенному серверу, и обеспечьте целостность сертификатов через механизмы проверки отзыва сертификатов.</li>
134 <li>Используйте проверку сертификатов, чтобы убедиться, что клиент подключается к доверенному серверу, и обеспечьте целостность сертификатов через механизмы проверки отзыва сертификатов.</li>
135 <li>Рассмотрите использование дополнительных механизмов защиты, таких как<a>файрволы</a>, системы обнаружения вторжений (intrusion detection systems) и системы защиты от <a>DDoS-атак</a>.</li>
135 <li>Рассмотрите использование дополнительных механизмов защиты, таких как<a>файрволы</a>, системы обнаружения вторжений (intrusion detection systems) и системы защиты от <a>DDoS-атак</a>.</li>
136 - </ul><aурс: "Профессия Специалист по кибербезопас­но­сти + ИИ" Узнать больше</a>
136 + </ul><p>Кибербезопасность с нуля: взламываем и защищаем серверы за 5 дней</p>
 
137 + <p>Погрузитесь в востребованную профессию специалиста по кибербезопасности. Научитесь защищать веб-серверы, перехватывать пароли, подделывать письма и обезвреживать вредоносное ПО.</p>
 
138 + <p><a>Пройти бесплатно</a></p>
 
139 + <a><b>Бесплатный курс по кибербезопасности</b>Пройдите курс и узнайте реальные техники взлома и защиты веб-серверов. Решите 3 практические задачи и получите ценные подарки. Пройти курс →</a>