digital-garden/dev/network/HTTP over SSL or TLS.md

38 lines
3.7 KiB
Markdown
Raw Normal View History

2024-11-27 22:08:08 +03:00
---
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) -->