SSL и TLS – в чем разница?

1 января 1983 года – день рождения Интернета. Но лишь через 10 лет произошла первая защищенная онлайн-продажа: Дэн Кон продал другу CD-диск Стинга “Ten Summoner’s Tales” и тот отлично послушал музычку!

Для этой сделки друг установил специальный браузер на Linux с хитрым шифрованием. Он безопасно ввел данные карты и купил диск за 12.48$, но изрядно попотел и потратил много часов в настройку.

Сегодня покупки в сети – мгновенные. Но все началось с SSL (Secure Socket Layer) в 1995 году и дальнейшим появлением TLS (Transport Layer Security) – безопасных протоколов. Погнали разбираться?

Расшифровка видео
0:12
Днём рождения Интернета считается 1 января 1983 года, но знаешь ли ты,
0:18
что первая успешная и защищенная продажа в нем случилась только спустя 10 лет,
0:22
когда предприниматель Дэн Кон продал своему другу CD-диск Стинга Ten Summoner’s Tales?
0:27
Только удобство, только хардкор! Другу пришлось установить специальный браузер, который был
0:31
доступен только на Linux и поддерживал хитрый алгоритм шифрования. Зато он мог ввести данные
0:36
банковской карты и не бояться, что кто-нибудь их перехватит. Тогда диск Стинга стоил другу 12.48$,
0:41
нескольких часов установки Linux и настройки этого браузера, чтобы можно было совершить покупку.
0:45
Сегодня же ты просто добавляешь себе костюм человека паука в корзину на маркетплейсе,
0:49
оплачиваешь его и ждёшь пока курьер постучится в дверь. Изи.
0:52
Но задумываля ли ты, благодаря чему всё так просто?
0:55
Благодаря доверию. Вспомни, заходя в онлайн-магазин, ты обязательно бросишь
1:01
взгляд на адресную строку браузера, чтобы увидеть там заветный замочек.
1:04
Или побежишь прочь с этого сайта, если он не безопасный. Ты же побежишь, да?
1:08
На самом деле повышению доверия в Интернетах способствовало то, что в 95 году компания
1:13
нескафе… в смысле Netscape выкатила для своих браузеров протокол для защищенного
1:18
обмена информацией, который и добавляет те самые замочки в адресную строку и назвала
1:22
его – SSL (эс эс эль) – Secure Socket Layer. Его первая версия, SSL 1.0, так и осталась где-то
1:28
на компах Netscape и никогда не видела свет. Потом был SSL 2.0, но не прошло и года как
1:32
хакеры заявили, что взломали этот протокол и от его использования решено было отказаться.
1:36
Пацаны из Netscape не сдавались: заварили нескафе и начали работать над SSL 3.0. Но тут
1:41
в гонку включилась компания Microsoft, которая переосмыслила SSL и выкатила свою версию для
1:46
тогда ещё живого Internet Explorer. К 99 году браузерные войны достигли
1:50
своего апогея и всё это начинало попахивать проприетарным кошмаром, а тут ещё выходит
1:54
сингл Бритни Спирс Oops!… I Did It Again, в общем.. надо было срочно что-то делать.
1:58
Тогда протокол решили сделать открытым и передать управление над ним Инженерному
2:02
совету Интернета – IETF(ай и ти эф) (Internet Engineering Task Force), но с одним условием – его
2:06
нужно было переименовать. Так появился TLS (ти эл эс) (Transport Layer Security), что
2:08
вызывает путаницу между этими терминами и по сей день. Вот такой вот цирк с конями.
2:12
Теперь к технике. Но перед этим скажем, что c TLS тоже всё было не так уж гладко,
2:16
версии 1.0 и 1.1 признаны устаревшими и сейчас в приличном обществе используют только 1.2 и 1.3.
2:22
Так вот, TLS создан для того, чтобы обеспечивать 3 вещи при обмене данными и это: конфиденциальность,
2:28
целостность и аутентификация. Самые распространенные данные – это
2:32
конечно вэб-данные, которыми ты обмениваешься с сайтами: логины, пароли и конечно же данные
2:36
твоей банковской карточки, но TLS также может защитить голос, видео, почту, да что угодно!
2:41
Чтобы было понятнее, сразу лови примеры. “Конфиденциальность” гарантирует,
2:45
что никто не сможет перехватить данные, которые ты отправишь. Ну ладно, перехватить смогут,
2:49
но прочитать – нет, для них это будет просто что-то на Клингонском языке.
2:52
Допустим, если ты отправишь своему другу рецепт крабсбургера,
2:55
то TLS позаботится, чтобы для того, кто его перехватит это выглядело как то так:
2:59
В свою очередь “целостность” гарантирует, что эти данные никто не сможет изменить. Ну то есть,
3:04
если ты отправляешь своему другу сообщение о том,
3:06
что ты сегодня съел 10 хинкалек с грибочками и сыром, то после применения TLS даже самый
3:11
наглый хакер не сможет вмешаться и превратить это число в 100 хинкальчиков. Здесь важно
3:15
придерживаться правды, особенно когда дело касается съеденных хинкальских!
3:19
“Аутентификация” гарантирует, что сайт, с которым ты общаешься действительно тот
3:22
за кого себя выдает, а не просто мимо проходил. Доверие и зеленый замочек,
3:26
помнишь? Тут появляется такая штука как сертификат и центр сертификации.
3:30
Если кратко, то любой уважающий себя сайт, такой как например платформа доступного образования
3:34
Merion Academy, где есть подходящий к теме ролика курс по кибербезопасности,
3:38
должен иметь сертификат, гарантирующий, что все данные, которые ты на него
3:42
отправишь – защищены и с ним общаться безопасно. Так что можешь не бояться и записаться на
3:46
совершенно бесплатный и совершенно безопасный вводный урок к курсу по кибербезопасности.
3:49
Для того, чтобы обеспечить эти 3 условия в TLS применяются механизмы
3:53
шифрования – симметричный и ассиметричный.
3:55
Симметричное шифрование – это когда и для того чтобы зашифровать и для того,
4:00
чтобы расшифровать сообщение используется один и тот же ключ.
4:02
Это как если ты положишь свое сообщение в сундучок и закроешь на ключ и только тот, у кого есть копия
4:07
ключа, сможет его открыть и прочитать. Конечно копиями этих ключей лучше не
4:11
разбрасываться, а то никакой секретности так не получится. В этом главная проблема
4:14
симметричных ключей – ими очень сложно делиться. И это приводит нас к асимметричному шифрованию,
4:19
где, как несложно догадаться – 2 ключика – один публичный,
4:21
а другой приватный, и работают они в паре. Публичный ключ можно рассылать кому угодно,
4:26
кричать о нем в людных местах, делать с ним селфи и даже набить с ним татуху! Ну, а приватный
4:30
конечно же нужно держать в секрете. Обмен данными тогда будет выглядеть так:
4:33
ты отсылаешь своему амиго свой публичный ключ, он шифрует сообщение, которое хочет отправить
4:38
тебе твоим же публичным ключиком, а читаешь ты его уже с помощью своего приватного ключа.
4:43
А теперь давай рассмотрим как это происходит в реальности.
4:45
У нас будет 2 действующих лица – клиент и сервер. В качестве клиента будет твой любимый браузер,
4:50
а в качестве сервера – твой любимый сайт. Всё, как и в жизни, начинается с рукопожатия,
4:54
а точнее даже с двух – сначала TCP , а потом TLS – он то нам и интересен:
4:58
Итак, браузер отправляет на сайт сообщение Client Hello, которое означает примерно:
5:02
“Здаров, я тут безопасное соединение хочу установить, а то мало ли что. Вот версии TLS
5:08
и список алгоритмов шифрования, в которые я могу, чё скажешь?”
5:11
Сайт отправляет тебе Server Hello, в котором говорит: “Окэ, мне нравится вот эта версия TLS
5:17
и этот алгоритм – будем работать по ним. А и ещё – лови мой сертификат и публичный ключ, а еще чекни,
5:23
что я реально тот, за кого себя выдаю.” Твой браузер внимательно проверит
5:26
сертификат и если всё ок, то отправит сообщение Client Key Exchange: “Серт в норме. Но мне нужно
5:32
проверить твой закрытый ключ. Я щас сгенерирую общий секретный ключ (это называется pre-master
5:36
key) и зашифрую твоим открытым ключом. Посмотрим, сможешь ли ты расшифровать его!”
5:40
“Да ваще изи, ща как возьму свой закрытый ключ и готово. Теперь, с помощью pre-master ключа,
5:45
я намучу нам главный секрет (или сеансовый ключ) (shared secret), которым будем
5:49
шифровать всё наше общение – лови!” “Круто!”, ответит твой браузер – “Я
5:53
зашифровал тестовое сообщение сеансовым ключом, расшифруй его и пришли мне обратно”
5:57
полетит это всё в сообщении Change Cipher spec “Изи, но постыдился бы ты такое писать… лан,
6:02
всё работает, погнали шифровать все наши сообщения” – и отправит тебе Finished
6:06
Понимаешь, что произошло? Сеансовый ключ – это симметричное шифрование,
6:10
а обменялись они им при помощи алгоритмов ассиметричного!
6:12
И всё это происходит так за миллисекунды, ты даже этого не замечаешь.
6:16
Всё это конечно круто, скажешь ты, но откуда сайт получил сертификат, которым он так хвастался?
6:20
От центра сертификации или удостоверяющего центра, лягушеночек
6:24
ты любознательный! (certificate authority) Это специальные организации, которые
6:26
занимаются 3 вещами: выпускают сертификаты
6:28
подтверждают личность владельца сертификата подтверждают, что сертификат валиден и не протух
6:33
Тут ещё важна такая штука, как цепочка доверия. На самом деле, сертификаты может выпускать кто
6:38
угодно, но заветный замочек ты увидишь только в том случае, если он связан с центром сертфикации,
6:42
которому можно доверять или корневым центром (Root Certificate Authority). Их довольно много
6:45

GoDaddy, GlobalSign, DigiCert, GeoTrust и тд. На самом деле, когда твой браузер проверял
6:51
сертификат от сайта – он проверял цепочку доверия. Сначала он скачал сертификат с сайта, проверил,
6:55
что он не просрочен, но сайт, скорее всего, не является корневым центром.
6:59
Тогда он посмотрел кто подписал этот сертификат и скорее всего он также был подписан не корневым
7:04
центром, а каким нибудь промежуточным. Подуставший браузер проверил кем был
7:07
подписан промежуточный сертификат и это уже скорее всего будет корневой центр!
7:10
“Ура, цепочке сертификатов, а значит и сертификату сайта можно доверять!”
7:14
А теперь вопрос – какой корневой центр подписал сертификат для нашей базы
7:19
знаний wiki.merionet.ru? Ответы пиши в коменты!
7:21
Нам можно доверять! Так что ставь лайк этому видео, подписывайся на канал,
7:25
стучи в колокольчик и зацени наш уютный телеграм канал! До встречи!

Поделиться: