Предисловие: Это простое понимание HTTPS как разработчика интерфейса, просто чтобы вы поняли принцип HTTPS после прочтения статьи, конкретный метод реализации не дается. Любые ошибки приветствуются, чтобы указать.
Эта статья была впервые опубликована на моем личном сайте:cherryblog.site/
Что такое HTTPS
HTTPS (полное название: протокол передачи гипертекста по протоколу защищенных сокетов) — это безопасный канал HTTP, просто безопасная версия HTTP. Другими словами, уровень SSL добавляется в HTTP, а основой безопасности HTTPS является SSL, поэтому подробное содержание шифрования требует SSL. В настоящее время он широко используется для чувствительных к безопасности сообщений во всемирной паутине, таких как платежи по транзакциям.
Разница между HTTP и HTTPS
- HTTP — это передача открытого текста, HTTPS шифруется через SSL\TLS
- Номер порта 80 для HTTP и 443 для HTTPS.
- HTTPS требует сертификата от ЦС. Как правило, бесплатных сертификатов очень мало, и вам нужно платить комиссию.
- Соединение HTTPS очень простое и не имеет состояния; протокол HTTPS — это сетевой протокол, созданный на основе протокола SSL+HTTP, который может выполнять зашифрованную передачу и аутентификацию и является более безопасным, чем протокол HTTP.
Зачем использовать HTTPS
Некоторое время назад компания требовала использования HTTPS для всего стека, тогда я еще думал, а не используется ли HTTPS только для оплаты и зачем использовать HTTPS для всего стека?
На самом деле, самое важное использование HTTPS — это два момента:
- Установить канал информационной безопасности для обеспечения безопасности передачи данных
- Подтвердите подлинность веб-сайта и предотвратите фишинговые веб-сайты.
принцип HTTPS
Что касается HTTPS, то большинство условий поиска в GOOGLE являются более профессиональными терминами. Что касается внешнего интерфейса, я мало знаю о прикладном уровне, протоколе транспортного уровня и различной информации о сервере, поэтому я прочитал его. Я очень хорошо это понимаю и не могу прочитать, поэтому я увидел статью:История закончена httpsЭто означает, что это едва понятно, /(ㄒoㄒ)/~~, поэтому я подробно изучил его, и вы все еще можете взглянуть на понимание HTTPS во внешнем интерфейсе.
Эта статья на самом деле понимание этой статьи.Я не знаю, какой уровень других мелких партнеров.Я изо всех сил пытаюсь понять принцип HTTPS.
Преамбула
Чжан Дапан из Китая общается с Биллом в США
Всегда есть ощущение, что тебя подсматривают
Поскольку Big Fat Zhang и Bill используют HTTP для связи, HTTP является открытым текстом, поэтому за их чатами можно следить. Таким образом, эти двое готовы изменить статус-кво, поэтому первая проблема, которую должен решить HTTPS, заключается в обеспечении того, чтобы только два человека могли понимать передаваемый контент.
план1: использовать симметричный ключ
Они обсудили, что могут использовать симметричный ключ для шифрования. (Симметричный ключ означает, что для шифрования и дешифрования используется один и тот же ключ)
Но снова возникает вопрос~ Поскольку сеть небезопасна, как вообще отправить этот симметричный ключ? Если симметричный ключ будет перехвачен при отправке, отправленная информация все равно будет подделана и просмотрена в~~
Следовательно, недостатком этого симметричного ключа является то, что он может быть перехвачен посредником, так что посредник может получить ключ, а также подсмотреть и подделать передаваемую информацию.
план 2: использовать асимметричные ключи
RSA (алгоритм асимметричного шифрования): обе стороны должны согласовать пару ключей, закрытый ключ и открытый ключ. Данные, зашифрованные закрытым ключом, могут быть расшифрованы только соответствующим открытым ключом, а данные, зашифрованные открытым ключом, могут быть расшифрованы только соответствующим закрытым ключом.
В этом случае Билл передаст свой открытый ключ Дафа Чжану, и информация, отправленная Дафа Чжаном, будет зашифрована с помощью открытого ключа Билла, таким образом, только Билл может получить информацию, используя свой собственный закрытый ключ.
Но у этого есть недостаток:
- Алгоритм RSA медленный = =, намного медленнее
Итак, чтобы решить эту проблему, мы используемасимметричный ключ + симметричный ключспособ комбинирования
plan3: асимметричный ключ + симметричный ключ
Преимущество использования симметричного ключа в том, что он быстрее.Преимущество использования асимметричного ключа в том, что передаваемый контент невозможно взломать, потому что даже если вы перехватите данные, вы не сможете взломать контент без закрытого ключа Билла. Например, если вы грабите сейф, но не можете открыть сейф без ключа от сейфа.
Поэтому мы хотим объединить лучшее из обоих миров. Симметричный ключ алгоритма шифрования отправляется с использованием метода RSA, а затем этот ключ можно использовать для связи с использованием симметричного ключа. Например, я кладу ключ в сейф, а затем отправляю сейф другой стороне.
атака «человек посередине»
Другая проблема заключается в том, что при использовании асимметричного ключа открытый ключ Билла должен быть сначала передан Чжан Дафа. В этом процессе безопасность не гарантируется. Посредник может перехватить открытый ключ Билла, а затем он может перехватить открытый ключ Билла. полученный открытый ключ подделан.
Это означает, что у меня есть номер мобильного телефона. Хотя он общедоступен, любой может позвонить мне, но сначала вы не знаете номер моего мобильного телефона. Мне нужно отправить вам номер моего мобильного телефона. Когда вы получите мой мобильный телефон номер, он был перехвачен посредником, а затем заменил мой правильный номер мобильного телефона на неправильный номер мобильного телефона, например: 110, а затем вы получили неправильный номер мобильного телефона: 110, но вы все еще не знаете, что Вы получили неправильный номер мобильного телефона. В настоящее время, если вы позвоните мне, вам будет неловко~~
Подтверждение личности — цифровой сертификат
Следовательно, вышеуказанные шаги выполнимы, и требуется только последний пункт: необходимо убедиться, что открытый ключ, который Билл дал Большому Толстяку Чжану, действительно принадлежит Биллу. открытый ключ, а не чей-то еще. (Пример номера телефона только что, то есть вам нужно убедиться, что номер телефона, который я вам отправил, мой и не был изменен)
Итак, как вы подтверждаете, что открытый ключ, который Билл дал Большому Толстяку Чжану, действительно принадлежит Биллу?
В настоящее время наличие нотариальной конторы обязательно. То есть мне нужно сначала отнести свой номер телефона в нотариальную контору для нотариального заверения, а затем, после того, как я передам номер телефона вам, вы узнаете, я ли это, сравнив номер телефона, который вы получили с нотариальной конторой. .
Соответствует компьютерному миру, то есть цифровой подписи
Цифровая подпись эквивалентна заверению нотариусом заверения нотариусом.
Комбинация цифровой подписи и исходной информации называется цифровым сертификатом, и Биллу нужно только отправить цифровой сертификат Чжан Дафа.
После получения цифрового сертификата используйте тот же алгоритм хеширования, чтобы снова сгенерировать дайджест сообщения, а затем используйте открытый ключ ЦС для расшифровки цифровой подписи и получения дайджеста сообщения, созданного ЦС. с этим!
Если вы прочитали и поняли все вышеперечисленное, то вы, вероятно, имеете представление о HTTPS.
Я слышал, что за написание статьи можно получить книгу «Асинхронное сообщество». «Асинхронное сообщество» — это ведущее книжное сообщество ИТ-специалистов в Китае. Мне очень нужна эта книга, поэтому я приложил все усилия, чтобы написать эту статью. Я хочу эту книгу ("Программирование компьютерных проектов на Python",