Позвольте вам понять HTTPS за считанные минуты

внешний интерфейс сервер HTTPS HTTP Безопасность
Позвольте вам понять HTTPS за считанные минуты

Я уже писал статьи, связанные с http, и если вы не знаете http до прочтения этой статьи, вы можете сначала прочитать ее.«5 минут, чтобы вы поняли протокол HTTP». Основное справочное содержание этой статьи взято изHTTPS объяснили почтовыми голубями

1. Проблемы с HTTP

1.1 Возможность прослушивания

  1. Сам по себе HTTP не имеет функции шифрования, а HTTP-пакеты отправляются в открытом виде.
  2. Поскольку Интернет состоит из сетевых средств, соединяющих все части мира, все данные, отправляемые и получаемые через определенные устройства, могут быть перехвачены или подсмотрены. (Например, известный инструмент для захвата пакетов: Wireshark)

1.2 Проблемы аутентификации

  1. Невозможно подтвердить, что сервер, на который вы отправляете, является реальным целевым сервером (возможно, сервер поддельный)
  2. Невозможно определить, является ли возвращенный клиент тем, который получил его по назначению (возможно, замаскированный клиент)
  3. Невозможно определить, есть ли у общающейся стороны права доступа, некоторая важная информация на веб-сервере отправляется только конкретному пользователю, и даже бессмысленный запрос будет получен по порядку. Невозможно предотвратить DoS-атаки (отказ в обслуживании, атаки типа «отказ в обслуживании») при массовых запросах.

1.3 Можно взломать

1. Атака, при которой запрос или ответ перехватывается и подделывается содержимое во время передачи, называется атакой «человек посередине» (MITM).

2. Введение в HTTPS

2.1 Что такое HTTPS

Безопасный протокол передачи гипертекста (англ. Hypertext Transfer Protocol Secure, аббревиатура: HTTPS, часто называемый HTTP через TLS, HTTP через SSL или HTTP Secure) — это протокол передачи для безопасной связи по компьютерным сетям. HTTPS взаимодействует через HTTP, но использует SSL/TLS для шифрования пакетов. Основной целью разработки HTTPS является обеспечение аутентификации серверов веб-сайтов и защита конфиденциальности и целостности передаваемых данных.

2.2 Как HTTPS решает вышеуказанные проблемы

HTTPS использует TLS (Transport Layer Security) в части интерфейса связи.Протокол TLS использует модель архитектуры ведущий-ведомый для создания безопасного соединения между двумя приложениями через сеть для предотвращения обмена данными.Подслушивание и несанкционированное вмешательство.

https和https

2.3 Связь между SSL и TLS

  1. Transport Layer Security (англ. Transport Layer Security, сокращенно TLS), и его предшественник Secure Sockets Layer (Уровень защищенных сокетов, сокращенно SSL) — это протокол безопасности, целью которого является обеспечение безопасности и целостности данных для интернет-коммуникаций Assure.
  2. Когда Netscape запустила свой первый веб-браузер Netscape Navigator в 1994 году, она запустила протокол HTTPS и зашифровала его с помощью SSL, который является источником SSL.
  3. IETF стандартизировала SSL и опубликовала первую версию стандартного документа TLS в 1999 году. Впоследствии были опубликованы RFC 5246 (август 2008 г.) и RFC 6176 (март 2011 г.). Этот протокол широко поддерживается в таких приложениях, как браузеры, электронная почта, обмен мгновенными сообщениями, VoIP и интернет-факс.

2.4 Протокол TLS/SSL

Основные функции протокола HTTPS в основном зависят от протокола TLS/SSL, а реализация функций TLS/SSL в основном зависит от трех основных алгоритмов:散列函数,对称加密и非对称加密, который использует асимметричное шифрование для реализации аутентификации личности и согласования ключа.Алгоритм симметричного шифрования использует согласованный ключ для шифрования данных и проверяет целостность информации на основе хеш-функции.

TLS/SSL协议

С механизмом работы протокола SSL/TLS может ознакомиться г-н Руан.Обзор механизма работы протокола SSL/TLS

Принцип алгоритма шифрования RSA можно увидеть в этих двух статьях г-на Руана.Принцип алгоритма RSA (1),Принцип алгоритма RSA (2)

2.5 Объяснение с точки зрения почтовых голубей

Криптография — непонятная и абстрактная тема, и любое действие в Интернете можно рассматривать как отправку и получение информации с сервера. Можно предположить, что эти сообщения доставляются с помощью почтовых голубей.

Прежде чем мы поговорим об этом, давайте поговорим об Алисе, Бобе и Мэллори. Это общие роли, которые широко используются в криптографии и физике. Эти имена даны для удобства объяснения проблемы, и если предложение выглядит примерно так: «А хочет отправить сообщение Б», то чем сложнее становится проблема, тем труднее ее понять и запутаться. В типичной операции протокола эти символы не обязательно являются «человеком», но могут быть доверенным автоматическим агентом (например, компьютерной программой). Использование этих имен помогает проиллюстрировать структуру и иногда используется в качестве юмора.

2.5.1 Первоначальная коммуникация

Если Алиса хотела отправить сообщение Бобу, она привязывала сообщение к ноге голубя и отправляла его Бобу. Боб получил сообщение и прочитал его, отлично.

Но что, если Мэллори перехватила голубя Алисы и подделала сообщение? Боб никак не может узнать, что сообщение Алисы было изменено в процессе.

Вот как работает HTTP. Выглядит страшно правда? Я не отправляю свои банковские реквизиты по HTTP, и вы не должны этого делать.

2.5.2 Скрытый пароль

Хорошо, если Алиса и Боб очень остроумны. Они согласились использовать секретный шифр для написания своих сообщений. Они перемещают каждую букву в сообщении на три позиции вперед в алфавитном порядке. Например, D→A, E→B, F→C. В результате исходное сообщение «секретное сообщение» становится «pbzobq jbppxdb».

Теперь, если Мэллори снова перехватит почтового голубя, она не сможет ни внести существенные изменения, ни узнать содержание сообщения, потому что она не знает секретного кода. Боб, однако, может легко обратить шифр, полагаясь на такие правила, как A → D, B → E, C → F, чтобы расшифровать содержимое сообщения. Зашифрованная информация "pbzobq jbppxdb" будет восстановлена ​​как "секретное сообщение" путем взлома.

Это对称密匙加密, потому что если вы знаете, как зашифровать часть информации, вы также можете ее расшифровать. Вышеупомянутые шифры часто называют кодами Цезаря. В реальной жизни мы используем более экзотические и сложные пароли, но принцип тот же.

2.5.3 Как определить ключ?

Шифрование с симметричным ключом очень безопасно, если никто, кроме отправителя и получателя, не знает, какой ключ был использован. В шифровании Цезаря ключ представляет собой смещение на то, сколько битов нужно каждой букве, чтобы перейти к зашифрованной букве. В моих предыдущих дистанциях использовалось смещение 3, но также можно было использовать 4 или 12.

Проблема в том, что если бы Алиса и Боб не встретились до того, как начали использовать голубей, у них не было бы безопасного способа установить ключи. Если бы они сами передали ключ в письме, Мэллори перехватила бы сообщение и обнаружила бы ключ. Это позволяет Мэллори читать содержимое сообщений Алисы и Боба и изменять их по своему усмотрению до или после того, как они начнут их шифровать.

Это中间人攻击Типичный пример: единственный способ избежать этой проблемы для отправителя и получателя — совместно модифицировать свои системы кодирования.

2.5.4 Передача ящиков через почтовых голубей

Поэтому Алиса и Боб придумали лучшую систему. Когда Боб захочет отправить сообщение Алисе, он выполнит следующие действия:

鲍勃向爱丽丝送一只没有携带任何信息的鸽子。

爱丽丝给鲍勃送回鸽子,并且这只鸽子带有一个有开着的锁的盒子,爱丽丝保管着锁的钥匙。

鲍勃把信放进盒子中,把锁锁上然后把盒子送给爱丽丝。

爱丽丝收到盒子,用钥匙打开然后阅读信息。

Таким образом, Мэллори не сможет подделать информацию, перехватив голубя, так как у нее нет ключа от ящика. Когда Алиса хочет отправить сообщение Бобу, выполните тот же процесс, что и выше.

Процесс, используемый Алисой и Бобом, часто называют非对称密钥加密. Он называется асимметричным, потому что, даже если вы закодируете информацию (закроете ящик), вы не сможете расшифровать информацию (открыть запертый ящик).

В терминологии ящик называется公匙И ключ, которым открывается ящик, называется私匙.

2.5.5 Как доверять ящику

Но вы обнаружите, что проблемы все еще есть. Как Боб может быть уверен, когда Боб получит коробку, что она пришла от Алисы, а не от Мэллори, которая перехватила голубя и заменила его коробкой, от которой у нее есть ключ?

Алиса решает подписать ящик, чтобы, когда Боб получит ящик, он мог проверить подпись, чтобы убедиться, что ящик отправлен Алисой.

Так как же Боб вообще узнает подпись Алисы? Это хороший вопрос. У Алисы и Боба тоже была эта проблема, поэтому они решили, чтобы Тед поставил отметку на коробке вместо Алисы.

Так кто такой Тед? Тед известный и надежный парень. Он подпишет любого, и все верят, что он подпишет коробку только для законных людей.

Если Тед сможет подтвердить, что автограф просит Алиса, он подпишет коробку Алисы. Таким образом, Мэллори не мог получить коробку с подписью Теда от имени Элис, потому что Боб знал, что Тед будет подписывать только для людей, которых он подтвердил, поэтому он мог разглядеть уловку Мэллори.

персонаж Теда называется в терминологии认证机构. И браузер, в котором вы это читаете, содержит подписи многих центров сертификации.

Поэтому, когда вы впервые заходите на веб-сайт, вы можете доверять ящику с сайта, потому что вы доверяете Теду, а Тед скажет вам, что ящик является законным.

2.5.6 Тяжелый ящик

У Алисы и Боба теперь есть надежная система для связи, но они также понимают, что когда голубь несет коробку, это медленнее, чем если бы в противном случае он нес только письма.

Поэтому метод pass-the-box (асимметричное шифрование) решили использовать только при выборе ключа для кодирования сообщения симметричным шифрованием (помните шифрование Цезаря?).

Таким образом, можно объединить преимущества обоих: надежность асимметричного шифрования и эффективность симметричного шифрования.

В реальном мире мы не используем метод медленной передачи, такой как почтовые голуби, но использование асимметричного шифрования для кодирования информации все же медленнее, чем использование симметричного шифрования, поэтому мы используем асимметричное шифрование только при обмене ключами кодирования.

Думаю, теперь вы поняли, как работает HTTPS~

Ссылаться на:

  1. HTTPS объяснили почтовыми голубями
  2. Протокол безопасности передачи гипертекста
  3. Протокол безопасности транспортного уровня