предисловие
Обобщить:В этой статье подробно описывается процесс шифрования данных в протоколе SSL, такие понятия, как цифровые сертификаты, симметричное шифрование, асимметричное шифрование и процесс рукопожатия SSL.
-
Оригинальный адрес блога:Подробное объяснение процесса шифрования данных протокола SSL
-
Знайте о теме колонки и короткой книги:Фронтальный атакующий (знающий)&&Front-end атакующий (короткая книга)
-
Адрес блога блогера:Личный блог Дамонаре
Жизнь
SSL
Пока вы слышали о HTTPS, невозможно не слышать о протоколе SSL, который является безопасным протоколом. За детской обувью, не понимающей интернет-протокола, можно обратиться к другому блогу блогера:Введение в интернет-протоколы
HTTP+SSL = HTTPS
Причина, по которой HTTPS является безопасным, заключается в том, что он поддерживает подключаемый модуль SSL для шифрования передаваемых данных, так каков же конкретный метод шифрования?
Пожалуйста, послушай меня. Рассмотрим следующие два понятия:
-
Симметричное шифрование
-
Асимметричное шифрование
Знаете ли вы, что означают два вышеуказанных понятия? 😳
🤣ok, понимаешь ли вы это или нет, я объясню это вам по-своему:
Уважаемый, вы сделали чит?😑 Только не говорите мне, что вы за свою долгую студенческую жизнь ни разу не списывали (насколько скучна ваша студенческая жизнь), какие методы мы часто используем для списывания? (Одноклассник, который сказал, что ответ был написан в записке на его руке и бедре, попросил вас выйти, спасибо 🙂 ) Конечно, это зашифровано! Например, из гуманитарности я хочу помочь Сяо Мину смошенничать.Сначала перед экзаменом договоримся о пароле для прохождения ответа на вопрос с несколькими вариантами ответов, дотронуться до волос-А, дотронуться до уха-Б ,кашель-К,топать-Д,так родился метод шифрования.Этот метод шифрования известен только мне и Сяомину.Хоть учитель и смотрел на меня почесывая затылок,он в лучшем случае расценивал меня как невропатию,и не было никакого прямое доказательство того, что я обманывал. Хорошо,Этот метод шифрования, который мы с Сяомином знаем, но не знаем другие, представляет собой алгоритм симметричного шифрования., Алгоритм симметричного шифрования также является наиболее распространенным алгоритмом шифрования в нашей повседневной жизни. Существует только один алгоритм 🔑, и для шифрования и дешифрования используется один и тот же ключ.
С течением времени люди обнаруживают, что на самом деле можно шифровать и дешифровать без одного и того же 🔑, если существует определенная связь между двумя 🔑 шифрованием и дешифрованием.
В результате был изучен бесконечный поток алгоритмов асимметричного шифрования, так в чем же причина этого? Пожалуйста, строго запомните следующую фразу:
Легко умножить а и b, чтобы получить произведение с, но чрезвычайно трудно вывести а и b из произведения с. То есть чрезвычайно сложно разложить на множители большое число
Детская обувь, которая не понимает факторизации, сначала упирается в стену за 5 минут, они что, столько лет учили математику? Кидаю вам ссылку на Википедию, сами придумывайте урок 🙂:факторизация
Хорошо, продолжим, у алгоритма асимметричного шифрования есть еще два понятия — открытый ключ c и закрытый ключ b.
Использование заключается в следующем:Зашифрованный открытым ключом шифрованный текст может быть расшифрован только закрытым ключом, а зашифрованный закрытым ключом шифрованный текст может быть расшифрован только открытым ключом.
Мы можем раскрывать открытый ключ по желанию, потому что другие знают, что открытый ключ бесполезен, а шифротекст, зашифрованный открытым ключом, может быть расшифрован только закрытым ключом. Чрезвычайно сложно получить a и b из открытого ключа. Но очевидно, что использование асимметричного шифрования не так эффективно, как симметричное шифрование, потому что асимметричное шифрование требует процесса вычисления двух ключей.
Передаем два типичных примера в криптографииАлиса и БобСимволы для объяснения процесса этого алгоритма асимметричного шифрования:
Клиента зовут Алиса, а сервер — Боб.
Алиса: Боб, я хочу отправить тебе сообщение, дай мне свой открытый ключ;
Боб: Хорошо, это мой открытый ключ: 234nkjdfdhjbg324**;
Алиса: После получения открытого ключа сообщение, которое я отправил вам, зашифровано с помощью открытого ключа: #@#@!$%*(@;
Боб: Хорошо, я понял, дорогая, позволь мне расшифровать его своим закрытым ключом и посмотреть, что ты действительно хочешь мне отправить;
Вышеупомянутый процесс представляет собойАсимметричное шифрованиепроцесс, этот процесс безопасен? кажется очень безопасным, даже еслиЧарли(Третий участник связи) перехватил шифротекст и открытый ключ, но не может получить открытый текст без закрытого ключа. 😂
Но если третья сторона Чарли отправит Алисе свой собственный открытый ключ, а затем Алиса использует открытый ключ, предоставленный Чарли, для шифрования зашифрованного текста и отправит его, а Чарли расшифрует его своим собственным закрытым ключом, не произойдет ли это утечки информации? Нам нужно придумать, как Алиса сможет определить, действительно ли этот открытый ключ отправлен Бобом.
Так что естьЦифровой сертификатКонцепция чего-либо:
Цифровой сертификат представляет собой серию чисел, которые отмечают информацию об идентичности сторон связи в Интернет-коммуникациях и обеспечивают способ проверки идентичности объекта связи в Интернете.цифровой идентификатор, а печать или печать (или подпись, добавленная к цифровому удостоверению) агентства по аутентификации личности.
😑Официальное объяснение выше выглядит как большая голова. По сути, это информация.
Содержание цифрового сертификата примерно следующее:
- Орган, выдавший сертификат
- Алгоритм шифрования Боба
- Алгоритм хеширования, используемый Бобом
- открытый ключ Боба
- Срок действия сертификата
- так далее
Цифровые сертификаты выдает авторитетная организация, организация CA.Мы полностью доверяем этой организации.Что касается безопасности организации CA...В любом случае, она надежна на 99,99%. 🕵
Чтобы предотвратить внесение изменений в содержимое сертификата кем-то посередине, существуетцифровой подписиТак называемая цифровая подпись предназначена для выполнения операции хэширования над всем вышеперечисленным содержимым, получения фиксированной длины, а затем передачи ее Бобу. Однако что, если кто-то перехватит сертификат и изменит содержимое, одновременно сгенерировав новое хеш-значение? С этой целью ЦС будет шифровать хэш-значение с помощью собственного закрытого ключа при выдаче сертификата, тем самым предотвращая подделку цифрового сертификата.
Что ж, давайте разберем весь процесс:
- первый шаг:Прежде всего, когда Алиса открывает новый браузер, чтобы посетить Боба в первый раз, Алиса сначала установитЦифровой сертификат, основная информация, содержащаяся в этом цифровом сертификате, представляет собой открытый ключ центра сертификации.
- **Шаг 2: **Боб отправляет себе цифровой сертификат, выданный агентством ЦС, Алиса расшифровывает хэш-а (Хэш-а (Этот процесс называется асимметричным шифрованием.), а затем использовать переданный алгоритм HASH для генерации Hash-b. Если Hash-a === Hash-b, это означает, что аутентификация пройдена, и она действительно отправлена Бобом.
Как и выше, это процесс использования всего цифрового сертификата.
Иными словами, существует множество примеров практического применения асимметричного шифрования помимо SSL, например:SSH,электронная подписьЖдать;
Как упоминалось выше, асимметричное шифрование требует больших вычислений и не так эффективно, как симметричное шифрование.На что самое важное мы обращаем внимание при открытии веб-страницы? Это скорость! Это скорость! Это скорость! 🏃🏃🏃
Этот SSL очень умен 🤣, две взаимодействующие стороны шифруют зашифрованный текст с помощью симметричного шифрования, а затем используют асимметричное шифрование для передачи ключа, используемого для симметричного шифрования. Это обеспечивает эффективность и безопасность.
Процесс рукопожатия протокола SSL
Поясню словами:
- первый шаг: Алиса сообщает номер версии поддерживаемого протокола SSL, клиентслучайное число(случайный клиент, обратите внимание, что это первое случайное число), информация, такая как методы шифрования, поддерживаемые клиентом;
- Шаг 2:Получив информацию, Боб подтверждает метод шифрования, используемый обеими сторонами, и возвращает цифровой сертификат, сгенерированный сервером.случайное число(случайный сервер, обратите внимание, что это второе случайное число) и другая информация;
- третий шаг:Алиса подтверждает действительность цифрового сертификата, а затем создает новый.случайное число(Premaster secret), а затем используйте открытый ключ в цифровом сертификате, чтобы зашифровать случайное число и отправить его Бобу.
- четвертый шаг:Боб использует свой закрытый ключ, чтобы получить сообщение от Алисы.случайное число(т.е. Premaster secret); (Третий и четвертый этапы — это процесс асимметричного шифрования)
- пятый шаг:Алиса и Боб используют согласованный метод шифрования (обычноАлгоритм AES), используя первые три случайных числа для генерациисеансовый ключ, используемый для шифрования следующего содержимого связи;
Как говорится, картинка лучше предисловия, поэтому я нарисовал картинку, иллюстрирующую процесс:
Хорошо, весь процесс шифрования данных завершен. Напомним следующее:
- Центр CA выдает Бобу цифровой сертификат;
- Алиса и Боб выполняют рукопожатие SSL, и Алиса определяет личность Боба с помощью цифрового сертификата;
- Алиса и Боб передают три случайных числа, а третье случайное число передается через алгоритм асимметричного шифрования;
- Алиса и Боб используют алгоритм симметричного шифрования, чтобы сгенерировать ключ диалога для шифрования содержимого следующего сеанса связи.
постскриптум
Я хотел бы поблагодарить Yazheng за неуместные объяснения в статье.
Пожалуйста, укажите источник.
над.