Shanraq.org Shanraq.org
TLS: шифрование и проверка собеседника
Общество

Информатика: создаём своего цифрового помощника Урок 43 из 46

TLS: шифрование и проверка собеседника

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

Где мы на карте

Это урок 43 из 72, блок «Интернет, веб и облако» (39–46). Мы продолжаем один проект: три вымышленные записи и пять результатов напоминания из версии 1.0 должны сохраниться. На опорной схеме показан ровно тот переход, который можно объяснить и проверить; стрелка не означает, что все промежуточные устройства нарисованы.

TLS: шифрование и проверка собеседника

Ситуация и вопрос

Вам передают запечатанный конверт. Печать мешает постороннему читать и менять письмо, но не отвечает на вопрос, кому вы его изначально адресовали. В браузере похожие задачи решает TLS. Назовите две опасности отдельно: подслушивание по дороге и ответ не того сервера.

Новые слова без пропусков

TLS — протокол защиты соединения, часто используемый для HTTPS. Шифрование делает передаваемые данные нечитаемыми для случайного наблюдателя сети. Сертификат связывает публичный ключ с именем сервера, а браузер проверяет цепочку доверия и совпадение имени. Публичный ключ можно передать другим; соответствующий закрытый ключ должен оставаться у владельца. HTTPS — HTTP внутри защищённого соединения. Замок не доказывает правдивость содержания сайта и не защищает данные после того, как их получил сам сайт.

Опорный сигнал

Прочитайте схему слева направо. Для каждой стрелки назовите вход, действие и проверяемый результат. Затем закройте подпись следующей карточки и предскажите её своими словами. Вернитесь к реальному примеру: различайте учебную аналогию, работу localhost и возможный удалённый сайт. Если картинка обещает больше, чем объяснение, исправьте объяснение или рисунок.

Разбираем шаг за шагом

Предположим, вы набрали https://assistant.test/. DNS дал адрес, после чего клиент обращается к серверу и проверяет, что предъявленный сертификат подходит именно имени assistant.test и доверенной цепочке. Стороны согласуют секреты для защищённой передачи; только после этого по соединению идёт HTTP-запрос. Если сертификат выписан на другое имя, продолжать как будто всё нормально нельзя. Наш assistant.test — учебный вымысел: у проекта нет такого сертификата. Реальный выпуск step-04 открывается по http://127.0.0.1:8765/ без TLS и слушает только собственный компьютер.

Предскажите и проверьте

Не запускайте код сразу. Выпишите точный ожидаемый результат, включая порядок строк и символы. Объясните, что код доказывает, а чего не доказывает: этот маленький пример моделирует одно правило и не создаёт настоящий интернет, TLS-сертификат или открытый сервер. Затем выполните фрагмент в каталоге step-04 и сравните результат посимвольно. Измените один вход, сначала предскажите новый результат, потом проверьте.

from urllib.parse import urlsplit
address = urlsplit("https://assistant.test/tasks")
print(address.scheme, address.hostname)

Ожидаемый вывод

https assistant.test

Поймайте ошибку

Не пишите, что DNS сам подтверждает владельца сайта, а https гарантирует добросовестность магазина или отсутствие мошенничества. TLS защищает канал и помогает проверить имя предъявившего сертификат сервера в рамках модели доверия. Если пользователь сам отправил пароль фальшивому, но правильно названному домену, замок не исправит ошибку выбора.

Изменение проекта

На схеме выделите три проверки разными цветами: DNS находит адрес, TCP или другой транспорт передаёт данные, TLS проверяет удалённую сторону и защищает содержимое. Возле локального учебного веб-сервера напишите «только loopback, HTTP, без TLS». Для публичного размещения понадобится отдельная архитектура, которой ещё нет.

Задание и доказательство

Сравните два случая: сертификат действителен для library.test, но открыт assistant.test; и сертификат подходит имени, но текст сайта просит подозрительный перевод денег. В каком случае соединение следует остановить из-за несовпадения имени, а в каком нужно оценивать смысл страницы и адрес сайта?

Перенос в новую ситуацию

Школьный Wi-Fi показывает предупреждение браузера о сертификате. Почему повторять совет «нажми продолжить» всем ученикам нельзя? Какая информация поможет учителю разобраться, прежде чем вводить учётные данные?

Возврат через 1, 7 и 30 дней

Через 1 день нарисуйте главный переход по памяти и приведите контрпример к слишком простой аналогии. Через 7 дней объясните новый случай однокласснику, не читая готовый текст; проверьте не менее 7 из 10 вопросов. Через 30 дней повторите опыт с локальной веб-версией и убедитесь, что три исходных задачи и пять правил сохранились. Запишите, какой термин всё ещё непонятен, и вернитесь к его первому объяснению.

Первоисточник для проверки

Официальная документация

Следующий урок

HTTP: разговор браузера с сервером

Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом

Проверить доказательство проекта

Запишите наблюдение, объяснение, исправление ошибки и изменение своего проекта. Модель укажет первую перепутанную или недоказанную связь, но не даст готовый ответ.

Чтобы проверить, нужно войти. Войти

Комментарии (0)

Пока нет комментариев. Будьте первым.