Это протокол который защищает данные пересылаемые между web браузерами и web серверами
Предположим, что он ввёл в адресной строке следующее:
Для этого вы можете воспользоваться любой подходящей утилитой командной строки. Например, telnet:
Например (такая стартовая строка может указывать на то, что запрашивается главная страница сайта):
URI (Uniform Resource Identifier, унифицированный идентификатор ресурса) — путь до конкретного ресурса (например, документа), над которым необходимо осуществить операцию (например, в случае использования метода GET подразумевается получение ресурса). Некоторые запросы могут не относиться к какому-либо ресурсу, в этом случае вместо URI в стартовую строку может быть добавлена звёздочка (астериск, символ «*»). Например, это может быть запрос, который относится к самому веб-серверу, а не какому-либо конкретному ресурсу. В этом случае стартовая строка может выглядеть так:
При этом учитывайте, что для переноса строки следует использовать символ возврата каретки (Carriage Return), за которым следует символ перевода строки (Line Feed). После объявления последнего заголовка последовательность символов для переноса строки добавляется дважды.
Как прочитать ответ?
Стартовая строка ответа имеет следующую структуру:
Версия протокола здесь задаётся так же, как в запросе.
Пояснение к коду состояния (Reason Phrase) — текстовое (но не включающее символы CR и LF) пояснение к коду ответа, предназначено для упрощения чтения ответа человеком. Пояснение может не учитываться клиентским программным обеспечением, а также может отличаться от стандартного в некоторых реализациях серверного ПО.
После стартовой строки следуют заголовки, а также тело ответа. Например:
Тело ответа следует через два переноса строки после последнего заголовка. Для определения окончания тела ответа используется значение заголовка Content-Length (в данном случае ответ содержит 7 восьмеричных байтов: слово «Wisdom» и символ переноса строки).
Но вот по тому запросу, который мы составили ранее, веб-сервер вернёт ответ не с кодом 200, а с кодом 302. Таким образом он сообщает клиенту о том, что обращаться к данному ресурсу на данный момент нужно по другому адресу.
В ответ на этот запрос веб-сервер Хабрахабра уже выдаст ответ с кодом 200 и достаточно большой документ в формате HTML.
Если вы уже успели вжиться в роль, то можете теперь прочитать полученный от сервера HTML-код, взять карандаш и блокнот, и нарисовать профайл Ализара — в принципе, именно этим бы на вашем месте браузер сейчас и занялся.
А что с безопасностью?
А есть дополнительные возможности?
Что-то ещё, кстати, используют?
Увеличение скорости обеспечивается посредством сжатия, приоритизации и мультиплексирования дополнительных ресурсов, необходимых для веб-страницы, чтобы все данные можно было передать в рамках одного соединения.
На данный момент поддержка протокола SPDY есть в браузерах Firefox, Chromium/Chrome, Opera, Internet Exporer и Amazon Silk.
И что, всё?
Ну и, конечно, не забывайте, что любая технология становится намного проще и понятнее тогда, когда вы фактически начинаете ей пользоваться.
Toshiba расширяет семейство мобильных компьютеров Модель Satellite 1555CDS ориентирована на потребителей со средним уровнем дохода Один из ведущих производителей мобильных компьютеров - компания Toshiba представила новые модели своего семейства Satellite, которые
Движимая целью способствовать стандартизации технологий смарт-карт во всем мире, компания Visa International сообщила об организации GlobalPlatform - форума, направленного на создание и популяризацию единой платформы для уже существующих и возникающих технологий смарт-карт.
Определение Сервер приложений представляет собой программное обеспечение, которое предлагает услуги поддержки Web-приложений и связывает конечных пользователей с корпоративными базами данных. Действуя как посредник между браузерами и серверами баз данных
Наш еженедельник года два назад уже обращался к теме наполнения отечественного рынка оборудованием и дисками DVD. Мы посчитали, что читателю интересно будет узнать, какие изменения произошли за это время. Оказалось, они носили скорее количественный, нежели качественный характер. Почувствуйте разницу.
Семинар компании StatSoft, посвященный решениям для отечественной экономики Рядом с такой «Статистикой» и директор по науке Владимир Боровиков кажется маленьким Российское представительство компании StatSoft провело 20 октября семинар, посвященный решениям для промышленности.
Platinum готовит ИТ-общественность к «встрече» с локализованной Platinum ERA Виктор Назаренко: «Система рассчитана на быстрое и экономичное внедрение, недорогое сопровождение и поддержку» Выпуск локализованной версии Platinum ERA (Enterprise Ready Applications)
Быстрый рост рынка портативных компьютеров, интеллектуальных устройств, сетевых компьютеров и т. д. стимулирует интерес к встраиваемым системам В частности, по этой причине я решил посетить прошедшую в октябре в Сан-Хосе выставку Emdedded Systems Conference.
Вы, наверное, кое-что слышали о проблеме 2000 года? А ведь она уходит своими корнями в далекое прошлое. Вся эта каша заварилась еще 40 лет назад. На конференции Conference of Data
В 1959 году завершилась разработка в стенах МГУ уникальной троичной ЭВМ «Сетунь» Всем известно, что в компьютерах для вычислений и представления информации используется двоичная система, в соответствии с которой единица данных, байт, представляет собой последовательность нулей и единиц.
Diamond и 3Com представили новые решения для связи домашних ПК Развертывание высокоскоростных сетей, связывающих несколько домашних компьютеров, значительно упростится с выпуском оборудования, представленного компаниями Diamond Multimedia и 3Com. Эти компании
Определение Secure Sockets Layer (SSL) - это протокол, который защищает данные, пересылаемые между Web-браузерами и Web-серверами. SSL также гарантирует, что данные, получаемые с узла Web, приходят именно с предполагаемого узла и во время передачи они не были искажены.
Определение
Компания Netscape Communications пришла к выводу о необходимости создания безопасного способа передачи данных по Internet. Поэтому компания предложила решение — Secure Sockets Layer (SSL) и встроила его в свой Web-браузер.
SSL — это протокол защиты, который обеспечивает безопасность коммуникаций между любым ориентированным на SSL клиентским и серверным программным обеспечением, работающем в сети, использующей набор протоколов TCP/IP, который широко применяется для связи различных устройств.
Чаще всего он применяется для защищенного обмена данными между Web-браузерами и Web-серверами. Основное назначение протокола защиты состоит в следующем.
- Аутентификация сервера, гарантирующая пользователям, что они попали именно на тот узел Web, который хотели посетить.
- Создание такого защищенного канала, что информация может передаваться между браузером и сервером в закодированном виде, с тем чтобы никто не смог исказить данные во время пересылки.
Пользователям не нужно предпринимать никаких специальных действий, чтобы переключиться на SSL-соединение. Клиентская программа SSL встроена в браузер; большинство узлов просто требуют пароля или регистрационного номера для того, чтобы проверить подлинность пользователя.
Компании, чья деятельность связана с Internet, необходимо обратиться к уполномоченному по сертификатам, например к фирме VeriSign — независимой организации, подтверждающей, что компания действительно является той, за которую себя выдает. После завершения проверки компания может организовать на своих Web-серверах SSL-соединения.
Компаниям следует тщательно выбрать, для каких из Web-страниц организовывать такую защиту. Дело в том, что для поддержки передачи данных, защищенной с помощью протокола SSL, требуется больше ресурсов серверного процессора, чем при организации стандартной, незащищенной страницы Web.
«SSL может парализовать работу сервера», — отметил Тед Джулиан, аналитик Forrester Research.
Возникает и целый ряд других вопросов. «Люди ждут от SSL большего, чем он может сделать», — заметил Тахер Эльджамал, один из пионеров в области защиты информации, работавший над протоколом SSL в бытность свою главным научным специалистом Netscape. Сейчас он является президентом подразделения информационной безопасности компании Kroll-O?Gara, специализирующейся на оказании ИТ-услуг.
«Если у потребителя есть база данных, доступ к которой осуществляется через узел Web, он непременно хочет, чтобы при обращении к этой базе данных поддерживалась SSL-защита, — объяснил Эльджамал. — Но SSL этого просто не может».
SSL защищает данные при их передаче от точки к точке, чаще всего между Web-браузером и Web-сервером. Как только данные появляются в пункте назначения, за их безопасность SSL больше не отвечает.
Информация от разработчика
Где в основном применяется SSL?
Он используется практически при всех современных зашифрованных транзакциях с кредитными карточками в рамках электронной коммерции.
Что входит в состав SSL?
Он состоит из процесса установления связи — обмена информацией, которая убеждает браузер и сервер, что они оба поддерживают согласованные ими методы, и защищенного канала.
Кто отвечает за установление SSL-соединения?
Какой рекомендуется уровень шифрования между браузером и сервером?
Какова рекомендуемая длина открытого ключа для сервера?
Специалисты по защите рекомендуют использовать ключ длиной как минимум 1024 разряда.
Насколько сложно реализовать на сервере защиту с помощью SSL?
Это совсем не сложно. Нужно просто позвонить в VeriSign и получить сертификат. Имеется только один программный переключатель. Он очень простой. И вообще не требует никакой дополнительной работы.
С чем связаны самые серьезные жалобы в отношении SSL?
Со скоростью. Производительностью на стороне сервера, поскольку, по сравнению с сервером, который ничего не делает, сервер, выполняющий шифрование, конечно же требует намного больших вычислительных ресурсов. Поэтому в большинстве случаев, если вы хотите, чтобы ваш сервер выполнял шифрование, вам придется потратить намного больше денег.
Защищенные соединения имеют критически важное значение для электронной коммерции, обеспечения защищенных интерактивных банковских операций, другого электронного бизнеса и всех транзакций, которые требуют определенного уровня безопасности.
Запрос на сеанс SSL
Программная установка соединения
Браузер пользователя и сервер Web-узла начинают процесс обмена информацией, известный как handshake.
A. Сервер предоставляет браузеру свой открытый ключ, который был сертифицирован доверенным уполномоченным, таким как фирма VeriSign. Браузер проверяет сертификат сервера.
B. Сервер сообщает браузеру, сколько разрядов будет использоваться для шифрования или кодирования данных. Рекомендуется применять 128 разрядов.
Защищенное соединение
Обмен данными осуществляется через защищенный канал, который не позволяет злоумышленнику узнать или исказить информацию. Проверка целостности данных гарантирует, что данные не менялись в процессе пересылки от браузера к серверу или обратно. Как только данные появляются в браузере или на сервере, их защита больше не гарантируется.
Это вторая часть серии по веб-безопасности: первая часть была «Как работают браузеры».
Обзор
- «first line» (первая строка)
- headers (заголовки запроса)
- body (тело запроса)
В этом случае клиент пытается получить ресурс ( GET ) по адресу /Players/Lebron-James через версию протокола 1.1 — ничего сложного для понимания.
Например, в этом запросе клиент добавил к запросу 3 дополнительных заголовка: Host , Accept и Coolness .
.
X-Cpu-Usage: 40%
X-Memory-Available: 1%
.
Если вам нужно добавить собственный настраиваемый заголовок, в настоящее время обычно лучше использовать фирменный префикс, такой как Acme-Custom-Header или A-Custom-Header .
После заголовков запрос может содержать тело, которое отделено от заголовков пустой строкой:
Best Player Ever
Ответ сильно не имеет различий:
Первая информация, которая присылается в ответе, — это версия протокола, которую он использует, вместе со статусом этого ответа. Далее следуют заголовки и, если требуется, разрыв строки, за которым следует тело.
Проблема, на которую ориентирован TLS, довольно проста и может быть проиллюстрирована одной простой метафорой: ваша вторая половинка звонит вам в середине дня, когда вы находитесь на собрании, и просит вас сообщить им пароль учетной записи вашего онлайн-банкинга, поскольку она должна выполнить банковский перевод, чтобы обеспечить своевременную оплату за обучение вашего сына. Очень важно, чтобы вы сообщили об этом прямо сейчас, иначе вы столкнетесь с вероятностью того, что вашего ребенка отчислят из школы на следующее утро.
Теперь вы столкнулись с двумя проблемами:
- аутентификация (authentication) того, что вы действительно разговариваете со своей второй половинкой, поскольку это может быть кто-то, притворяющийся ей
- шифрование (encryption): передача пароля так, чтобы ваши коллеги не смогли его понять и записать
Это, однако, не мешает «злоумышленникам» узнать номер социального страхования жертвы, украсть смартфон вашей второй половинки и позвонить вам. Как мы проверим личность звонящего?
Вместо того, чтобы прямо попросить свою вторую половинку написать свой номер социального страхования, вместо этого вы звоните своей маме (которая живет по соседству) и просите ее пойти в вашу квартиру и удостовериться, что именно ваша вторая половина говорит номер социального страхования. Это добавляет дополнительный уровень доверия, так как вы не считаете свою маму угрозой и полагаетесь на нее для проверки личности звонящего.
Задача CA состоит в том, что они проверяют подлинность домена и выдают сертификат соответствующим образом: когда вы «заказываете» сертификат (обычно называемый SSL-сертификатом, хотя в настоящее время вместо него используется TLS — названия действительно прилипают!), CA могут позвонить вам или попросить изменить настройку DNS, чтобы убедиться, что вы контролируете данный домен. После завершения процесса проверки он выдаст сертификат, который затем можно установить на веб-серверы.
Затем клиенты, такие как браузеры, будут подключаться к вашим серверам и получать этот сертификат, чтобы они могли проверить его подлинность: браузеры имеют своего рода «отношения» с CA, в том смысле, что они отслеживают список доверенных доменов в CA чтобы убедиться, что сертификат действительно заслуживает доверия. Если сертификат не подписан доверенным органом, браузер отобразит большое информационное предупреждение для пользователей:
Мы на полпути к обеспечению связи между вами и вашей второй половиной: теперь, когда мы прошли аутентификацию (проверку личности вызывающего абонента), нам нужно убедиться, что мы можем общаться безопасно, без вмешательства других в процесс. Как я уже упоминал, вы находитесь прямо посреди собрания и вам нужно записать свой пароль для онлайн-банкинга. Вам нужно найти способ зашифровать ваше общение, чтобы только вы и ваша родственная душа могли понять ваш разговор.
Это будет хорошо работать, если у обеих сторон есть установленные отношения, как у вас и вашей второй половинки, поскольку они могут создать ключ, основанный на общей памяти, о которой никто не знает. Браузеры и серверы, тем не менее, не могут использовать такой же механизм, поскольку они не знают друг друга заранее.
Вместо этого используются вариации протокола обмена ключами Диффи-Хеллмана, которые гарантируют, что стороны без предварительного знания устанавливают общий секретный ключ, и никто другой не сможет его «украсть». Это включает в себя использование математики.
GET vs POST
Теоретически, ни один метод не безопаснее других; на практике все не так просто.
Чтобы проиллюстрировать важное различие между этими методами, нам нужно взглянуть на журналы веб-серверов, с которыми вы, возможно, уже знакомы:
192.168.99.1 - [192.168.99.1] - - [29/Jul/2018:00:39:47 +0000] "GET /?token=1234 HTTP/1.1" 200 525 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 404 0.002 [example-local] 172.17.0.8:9090 525 0.002 200
192.168.99.1 - [192.168.99.1] - - [29/Jul/2018:00:40:47 +0000] "GET / HTTP/1.1" 200 525 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 393 0.004 [example-local] 172.17.0.8:9090 525 0.004 200
192.168.99.1 - [192.168.99.1] - - [29/Jul/2018:00:41:34 +0000] "PUT /users HTTP/1.1" 201 23 "http://example.local/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" 4878 0.016 [example-local] 172.17.0.8:9090 23 0.016 201
Как вы видите, веб-серверы регистрируют путь запроса: это означает, что, если вы включите конфиденциальные данные в свой URL-адрес, они будут пропущены веб-сервером и сохранены где-то в ваших журналах — ваши конфиденциальные данные будут где-то в открытом тексте, чего нам нужно полностью избежать. Представьте, что злоумышленник сможет получить доступ к одному из ваших старых файлов-журналов, который может содержать информацию о кредитной карте, токены доступа для ваших приватных сервисов и т. д., это будет полной катастрофой.
Перевод выполнен при поддержке компании EDISON Software, которая профессионально занимается безопасностью, а так же разрабатывает системы электронной медицинской проверки.
Как данные защищаются? Как клиент и сервер могут установить безопасное соединение, если кто-то уже прослушивает их канал? Что такое сертификат безопасности и почему я должен кому-то платить, чтобы получить его?
Трубопровод
Когда браузер делает запрос к Вашему любимому веб-сайту, этот запрос должен пройти через множество различных сетей, любая из которых может быть потенциально использована для прослушивания или для вмешательства в установленное соединение.
С вашего собственного компьютера на другие компьютеры вашей локальной сети, через роутеры и свитчи, через вашего провайдера и через множество других промежуточных провайдеров – огромное количество организаций ретранслирует ваши данные. Если злоумышленник окажется хотя бы в одной из них — у него есть возможность посмотреть, какие данные передаются.
• Для этого требуется больше вычислительных мощностей
• Передается больше данных
• Нельзя использовать кеширование
Но в некоторых случаях, когда по каналу связи передается исключительно важная информация (такая как, пароли или данные кредитных карт), необходимо обеспечить дополнительные меры, предотвращающие прослушивание таких соединений.
Transport Layer Security (TLS)
Сейчас мы собираемся погрузиться в мир криптографии, но нам не потребуется для этого какого-то особенного опыта — мы рассмотрим только самые общие вопросы. Итак, криптография позволяет защитить соединение от потенциальных злоумышленников, которые хотят воздействовать на соединение или просто прослушивать его.
TLS – гибридная криптографическая система. Это означает, что она использует несколько криптографических подходов, которые мы и рассмотрим далее:
Криптосистема с открытым ключом
Это означает, что если кто-нибудь находится между клиентом и сервером и наблюдает за соединением – он все равно не сможет узнать ни закрытый ключ клиента, ни закрытый ключ сервера, ни секретный ключ сессии.
Как это возможно? Математика!
Алгоритм Ди́ффи — Хе́ллмана
Одним из наиболее распространенных подходов является алгоритм обмена ключами Ди́ффи — Хе́ллмана (DH). Этот алгоритм позволяет клиенту и серверу договориться по поводу общего секретного ключа, без необходимости передачи секретного ключа по соединению. Таким образом, злоумышленники, прослушивающие канал, не смогу определить секретный ключ, даже если они будут перехватывать все пакеты данных без исключения.
Как только произошел обмен ключами по DH-алгоритму, полученный секретный ключ может использоваться для шифрования дальнейшего соединения в рамках данной сессии, используя намного более простое симметричное шифрование.
Немного математики…
Математические функции, лежащие в основе этого алгоритма, имею важную отличительную особенность — они относительно просто вычисляются в прямом направлении, но практически не вычисляются в обратном. Это именно та область, где в игру вступают очень большие простые числа.
Пусть Алиса и Боб – две стороны, осуществляющие обмен ключами по DH-алгоритму. Сперва они договариваются о некотором основании root (обычно маленьком числе, таком как 2,3 или 5 ) и об очень большом простом числе prime (больше чем 300 цифр). Оба значения пересылаются в открытом виде по каналу связи, без угрозы компрометировать соединение.
Напомним, что и у Алисы, и у Боба есть собственные закрытые ключи (из более чем 100 цифр), которые никогда не передаются по каналам связи.
По каналу связи же передается смесь mixture, полученная из закрытых ключей, а также значений prime и root.
Таким образом:
Alice’s mixture = (root ^ Alice’s Secret) % prime
Bob’s mixture = (root ^ Bob’s Secret) % prime
где % — остаток от деления
Таким образом, Алиса создает свою смесь mixture на основе утвержденных значений констант (root и prime), Боб делает то же самое. Как только они получили значения mixture друг друга, они производят дополнительные математические операции для получения закрытого ключа сессии. А именно:
Вычисления Алисы
(Bob’s mixture ^ Alice’s Secret) % prime
Вычисления Боба
(Alice’s mixture ^ Bob’s Secret) % prime
Результатом этих операций является одно и то же число, как для Алисы, так и для Боба, и это число и становится закрытым ключом на данную сессию. Обратите внимание, что ни одна из сторон не должна была пересылать свой закрытый ключ по каналу связи, и полученный секретный ключ так же не передавался по открытому соединению. Великолепно!
Для тех, кто меньше подкован в математическом плане, Wikipedia дает прекрасную картинку, объясняющую данный процесс на примере смешивания цветов:
Обратите внимание как начальный цвет (желтый) в итоге превращается в один и тот же “смешанный” цвет и у Боба, и у Алисы. Единственное, что передается по открытому каналу связи так это наполовину смешанные цвета, на самом деле бессмысленные для любого прослушивающего канал связи.
Симметричное шифрование
Обмен ключами происходит всего один раз за сессию, во время установления соединения. Когда же стороны уже договорились о секретном ключе, клиент-серверное взаимодействие происходит с помощью симметричного шифрования, которое намного эффективнее для передачи информации, поскольку не требуется дополнительные издержки на подтверждения.
Аутентификация
Алгоритм Диффи-Хеллмана позволяет двум сторонам получить закрытый секретный ключ. Но откуда обе стороны могут уверены, что разговаривают действительно друг с другом? Мы еще не говорили об аутентификации.
Что если я позвоню своему приятелю, мы осуществим DH-обмен ключами, но вдруг окажется, что мой звонок был перехвачен и на самом деле я общался с кем-то другим?! Я по прежнему смогу безопасно общаться с этим человеком – никто больше не сможет нас прослушать – но это будет совсем не тот, с кем я думаю, что общаюсь. Это не слишком безопасно!
Но, на самом деле, что это за сертификат, и как он предоставляет нам безопасность?
Сертификаты
В самом грубом приближении, цифровой сертификат – это файл, использующий электронной-цифровую подпись (подробнее об этом через минуту) и связывающий открытый (публичный) ключ компьютера с его принадлежностью. Цифровая подпись на сертификате означает, что некто удостоверяет тот факт, что данный открытый ключ принадлежит определенному лицу или организации.
По сути, сертификаты связывают доменные имена с определенным публичным ключом. Это предотвращает возможность того, что злоумышленник предоставит свой публичный ключ, выдавая себя за сервер, к которому обращается клиент.
В примере с телефоном, приведенном выше, хакер может попытаться предъявить мне свой публичный ключ, выдавая себя за моего друга – но подпись на его сертификате не будет принадлежать тому, кому я доверяю.
Чтобы сертификату доверял любой веб-браузер, он должен быть подписан аккредитованным удостоверяющим центром (центром сертификации, Certificate Authority, CA). CA – это компании, выполняющие ручную проверку, того что лицо, пытающееся получить сертификат, удовлетворяет следующим двум условиям:
1. является реально существующим;
2. имеет доступ к домену, сертификат для которого оно пытается получить.
Как только CA удостоверяется в том, что заявитель – реальный и он реально контролирует домен, CA подписывает сертификат для этого сайта, по сути, устанавливая штамп подтверждения на том факте, что публичный ключ сайта действительно принадлежит ему и ему можно доверять.
В ваш браузер уже изначально предзагружен список аккредитованных CA. Если сервер возвращает сертификат, не подписанный аккредитованным CA, то появится большое красное предупреждение. В противном случае, каждый мог бы подписывать фиктивные сертификаты.
Прочие вещи которые нужно знать о сертификатах
Расширенная валидация
В дополнение к обычным X.509 сертификатам, существуют Extended validation сертификаты, обеспечивающие более высокий уровень доверия. Выдавая такой сертификат, CA совершает еще больше проверок в отношении лица, получающего сертификат (обычно используя паспортные данные или счета).
При получение такого сертификата, браузер отображает в адресной строке зеленую плашку, в дополнение к обычной иконке с замочком.
Обслуживание множества веб-сайтов на одном сервере
Примечания переводчика:
1)Спасибо хабраюзеру wowkin за отличную ссылку по теме (видео переведено и озвученно хабраюзером freetonik):
2) По результатам развернувшейся в коменатариях дискуссии (спасибо за участие хабраюзерам a5b, Foggy4 и Allen) дополняю основную статью следующей информацией:
Особенно ситуация плоха в случае с IE (даже 10 версии), который поддерживает Диффи-Хеллмана только на эллиптических кривых (RSA и ECDSA сертификаты), либо классический Диффи-Хеллман с более редкими сертификатами DSS (DSA).
По подсчетам netcraft 99,7 % соединений с IE и по 66% — с Chrome, Opera и Firefox не будут использовать Диффи-Хеллмана.
На Hacker News в обсуждении это тоже заметили.
Also (and I made the same mistake in my talk. ), yes, explaining DH is important, but now it kind of sounds like in TLS both sides figure out the master secret using DH (and, in your talk, specifically, regular DH, not EC-based DH), when in reality that depends on the ciphersuite, and the vast majority of TLS connections don't work that way. From what I understand to be most TLS configurations in the wild, the pre-master secret is encrypted using the server's public key. (RFC 5246: 7.4.7.1, 8.1.1)
это важно и интересно, но не все понимают что он в реальности применяется не так часто. В большинстве сеансов SSL и TLS действительно обмен ключей происходит путем их шифрования с помощью RSA.
Читайте также: