38 lines
3.7 KiB
Markdown
38 lines
3.7 KiB
Markdown
|
---
|
|||
|
aliases:
|
|||
|
- HTTP over SSL/TLS
|
|||
|
- HTTPS
|
|||
|
tags:
|
|||
|
- maturity/🌱
|
|||
|
date: 2024-11-27
|
|||
|
---
|
|||
|
Для обеспечения безопасности данных используется HTTPS (HTTP over SSL/TLS). Это расширение HTTP, которое добавляет шифрование данных, чтобы защитить их от перехвата.
|
|||
|
|
|||
|
![[photo_2024-10-29 18.27.09.jpeg]]
|
|||
|
|
|||
|
![[Pasted image 20241103035804.png]]
|
|||
|
**Как происходит шифрование и дешифрование данных**
|
|||
|
- **Шаг 1** — Клиент (браузер) и сервер устанавливают [[../../../../../knowledge/dev/network/TCP|TCP]]-соединение.
|
|||
|
- **Шаг 2** — Клиент отправляет серверу сообщение «client hello». Это сообщение содержит набор поддерживаемых алгоритмов шифрования (наборов шифров) и последнюю версию TLS, которую клиент может поддерживать. Сервер отвечает сообщением «server hello», чтобы сообщить клиенту, какие алгоритмы и версия TLS поддерживаются.
|
|||
|
- Затем сервер отправляет клиенту SSL-сертификат, который содержит публичный ключ, имя хоста, срок действия сертификата и другую информацию. Клиент проверяет подлинность сертификата.
|
|||
|
- **Шаг 3** — После успешной проверки SSL-сертификата клиент генерирует сеансовый ключ и шифрует его с помощью публичного ключа. Сервер получает зашифрованный сеансовый ключ и дешифрует его с использованием своего приватного ключа.
|
|||
|
- **Шаг 4** — Теперь, когда и клиент, и сервер обладают одним и тем же сеансовым ключом (симметричное шифрование), данные передаются в зашифрованном виде по защищённому двустороннему каналу.
|
|||
|
|
|||
|
**Почему HTTPS переключается на симметричное шифрование для передачи данных?**
|
|||
|
1. **Безопасность**: Асимметричное шифрование работает только в одну сторону. Это означает, что если сервер попытается отправить зашифрованные данные обратно клиенту, любой сможет расшифровать их, используя публичный ключ.
|
|||
|
2. **Ресурсы сервера**: Асимметричное шифрование требует значительных вычислительных ресурсов из-за сложных математических операций. Это делает его непригодным для передачи данных в долгих сессиях.
|
|||
|
|
|||
|
***
|
|||
|
## Мета информация
|
|||
|
**Область**:: [[../../meta/zero/00 Сети|00 Сети]]
|
|||
|
**Родитель**:: [[HyperText Transfer Protocol|HyperText Transfer Protocol]]
|
|||
|
**Источник**::
|
|||
|
**Создана**:: [[2024-11-27]]
|
|||
|
**Автор**::
|
|||
|
### Дополнительные материалы
|
|||
|
-
|
|||
|
|
|||
|
### Дочерние заметки
|
|||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
|||
|
|