
Информатика: создаём своего цифрового помощника Урок 43 из 46
TLS: шифрование и проверка собеседника
Разделим шифрование и проверку сервера, чтобы не принять красивый замок за гарантию честности сайта.
Где мы на карте
Это урок 43 из 72, блок «Интернет, веб и облако» (39–46). Мы продолжаем один проект: три вымышленные записи и пять результатов напоминания из версии 1.0 должны сохраниться. На опорной схеме показан ровно тот переход, который можно объяснить и проверить; стрелка не означает, что все промежуточные устройства нарисованы.
Ситуация и вопрос
Вам передают запечатанный конверт. Печать мешает постороннему читать и менять письмо, но не отвечает на вопрос, кому вы его изначально адресовали. В браузере похожие задачи решает 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 дней повторите опыт с локальной веб-версией и убедитесь, что три исходных задачи и пять правил сохранились. Запишите, какой термин всё ещё непонятен, и вернитесь к его первому объяснению.
Первоисточник для проверки
Следующий урок
Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом
Комментарии (0)
Войдите, чтобы оставить комментарий →
Пока нет комментариев. Будьте первым.