Передовые высокооплачиваемые статьи, обязательные для просмотра по HTTPS

интервью

предисловие

Эта серия является предыдущим постом автораОкончание фронтенда высокочастотного интервьюДополнение будет больше ориентировано на промежуточные и продвинутые вопросы фронтенд-интервью.Конечно, все прошли путь от новичка, и заинтересованные друзья могут его посмотреть.

Я считаю, что когда вы берете интервью,HTTPSЭта проблема не должна быть незнакомой. Может быть, в качестве интерфейса мы можем только кратко рассказать о разнице с HTTP, но понятен ли реальный принцип? Насколько это безопасно? Давайте используем просторечие, чтобы раскрыть тайну HTTPS.

1 Что такое HTTPS

Ответ: Разве HTTPS не является просто дополнительной буквой S после HTTP?

Да, S здесь относится к SSL/TLS (Это безопасный протокол шифрования — студенты, которые хотят узнать больше, могут самостоятельно использовать Baidu.)

HTTPS основан на HTTP и использует SSL/TLS для шифрования пакетов данных.

Нам просто нужно помнить две основные цели: 1. Зашифровать данные 2. Проверить подлинность сервера веб-сайта.

2 Как HTTPS шифрует данные

Мы уже знаем, что первая цель HTTPS — шифрование данных.

Что касается шифрования данных, здесь мы поговорим о двух методах шифрования.Симметричное шифрованиеиАсимметричное шифрование

  • Симметричное шифрование: так называемое симметричное означает, что обе стороны одинаковы, отправитель и получатель используют один и тот же ключ, шифрование и дешифрование являются одним и тем же ключом, и их нужно только сохранить от начала до конца.ключпросто хорошо

  • Асимметричное шифрование: отправитель и получатель используютпара ключей,Сейчасоткрытые и закрытые ключи. Как правило, закрытый ключ держится в секрете, и его утечка невозможна, а открытый ключ может распространяться извне. Мы можем зашифровать с помощью открытого ключа и расшифровать с помощью закрытого ключа (шифрование данных) или зашифровать с помощью закрытого ключа и расшифровать с помощью открытого ключа (подпись — поясняется ниже).

Шифрование преимущество недостаток
Симметричное шифрование высокоскоростной Ключ не может быть сгенерирован ни отправителем, ни получателем в начале, он должен быть передан другой стороне после того, как он сгенерирован.Если ключ будет украден в процессе передачи, все шифрование будет ненадежным.
Асимметричное шифрование Безопаснее 1. Низкая скорость шифрования и дешифрования - снижается эффективность передачи данных 2. Открытый ключ открыт для всех Если зашифрованный текст зашифрован закрытым ключом, то любой может расшифровать его открытым ключом

Гибридное шифрование

Зная преимущества и недостатки двух методов шифрования, наш HTTPS очень мощный.Он использует комбинацию двух методов шифрования.Разве это не означает, что ключ симметричного шифрования небезопасен?Тогда мы меняем наш образ мыслей Мы шифруем наше симметричное шифрование в процессе передачи Хорошо использовать асимметричное шифрование для ключа в

  1. Сеансовый ключ, сгенерированный клиентом, — это ключ, сгенерированный нашим симметричным шифрованием.
  2. Он шифруется с помощью открытого ключа, а затем передается (в настоящее время зашифрованные данные не являются сеансовым ключом, что эквивалентно шифрованию ключа) Открытый ключ здесь является открытым ключом в асимметричном шифровании, он передается сервером (открыто для публики)
  3. Сервер использует закрытый ключ с асимметричным шифрованием для расшифровки и получения нашего сессионного ключа.
  4. И клиент, и сервер могут использовать один и тот же сеансовый ключ для шифрования и дешифрования.

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

Самое умное во всем этом процессе то, что раньше мы передавали ключ, теперь мы передаем сейф, а ключ в сейфе.

3 HTTPS как проверить подлинность сервера сайта

Вторая цель HTTPS — подтвердить подлинность сервера веб-сайта.

Итак, как это делается?

Давайте сначала рассмотрим проблему. На предыдущем шаге мы решили проблему шифрования данных. Хотя злоумышленник не может расшифровать данные, он можетфальсифицированные данныеОткуда мы знаем, что данные не были переданы пассивно?

3.1 Что делать, если данные подделаны

использовать это времяцифровой подписиохватывать

  • Цифровая подпись: исходный текст (часть ключевой информации данных) сначала генерируется хэш-функцией для создания дайджеста сообщения, а затем шифруется с помощью закрытого ключа отправителя для создания цифровой подписи, которая вместе отправляется получателю. с оригинальным текстом

Два ключевых момента: 1. Расчет хэш-алгоритма для создания сводки информации 2. Шифрование с закрытым ключом для создания цифровой подписи.

Как клиент проверяет цифровую подпись? (Зашифровать с помощью закрытого ключа сервера и расшифровать с помощью открытого ключа)

После того, как клиент получит цифровую подпись, отправленную сервером

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

Если два информационных дайджеста согласованы, данные не были подделаны.

хорошо здесь, может быть, вы думаете, что это нормально

На самом деле, есть еще один ключевой момент в конце. Все предположения, которые мы только что сделали, основаны на открытом ключе клиента, переданном сервером. Что, если злоумышленник подделает открытый ключ сервера?

3.2 Что делать, если открытый ключ сервера подделан?

использовать это времяЦифровой сертификатохватывать

  • Центр цифровой сертификации (ЦС) находится в положении стороннего центра, которому доверяют как клиент, так и сервер.

Сервер подает заявку на получение цифрового сертификата от ЦС. После прохождения проверки ЦС выдает заявителю сертификационный документ - сертификат содержит следующее содержимое

После получения цифрового сертификата сервер передает цифровой сертификат клиенту.

3.3 Как клиент проверяет цифровой сертификат

  1. Сначала браузер считывает владельца сертификата, срок действия и другую информацию в сертификате для проверки один за другим.
  2. Браузер начинает искать доверенный ЦС, выдающий сертификаты, встроенный в операционную систему, и сравнивает его с ЦС эмитента в сертификате, отправленном сервером, чтобы проверить, выдан ли сертификат законным органом.
  3. Если его не удастся найти, браузер сообщит об ошибке, указав, что сертификату, отправленному сервером, нельзя доверять. В случае обнаружения браузер достанет из операционной системы публичный ключ ЦС эмитента, а затем расшифрует подпись в сертификате, отправленном сервером
  4. Браузер использует тот же хеш-алгоритм для вычисления дайджеста сообщения на основе содержимого сертификата и сравнивает вычисленное значение с расшифрованным значением сертификата.
  5. Если результаты сравнения одинаковы, это доказывает, что сертификат, отправленный сервером, является законным и не был олицетворен. На этом этапе браузер может прочитать открытый ключ в сертификате для последующего шифрования.

Краткий обзор принципа HTTPS

Группа передовых рыболовных технологий Brother Shark

Приветствую всех на технических биржахСсылка на сайт