0Pricing
Cryptology Academy · Урок

Что делает протокол безопасным

Определите цели криптографических протоколов: аутентификацию, конфиденциальность, целостность и невозможность отрицания авторства

«Что делает протокол безопасным» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Аутентификация: установление личности собеседника

Аутентификация — это установление личности участников обмена данными. Без аутентификации протокол уязвим для выдачи себя за другого: злоумышленник может выдать себя за доверенный сервер и перехватывать сообщения. В протоколах аутентификация обычно обеспечивается цифровыми сертификатами, предварительно распределенными ключами или механизмами запроса и ответа, которые доказывают знание секрета без его раскрытия.

Конфиденциальность: сообщения читают только предназначенные получатели

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

Целостность: обнаружение изменения сообщений

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

Неотрекаемость: отправитель не может отрицать факт отправки

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

Свежесть: отклонение повторно отправленных сообщений

Свойство свежести гарантирует, что старое, ранее действительное сообщение не может быть повторно отправлено злоумышленником, чтобы снова вызвать тот же эффект. Механизмы обеспечения свежести включают одноразовые числа — случайные значения, включаемые в сообщения и не подлежащие повторению, — временные метки с узким окном действия и порядковые номера, которые должны строго возрастать. Без обеспечения свежести повторная отправка перехваченного сообщения аутентификации может полностью обойти аутентификацию.

Совершенная прямая секретность

Совершенная прямая секретность гарантирует, что компрометация долгосрочных ключей не раскроет прошлые ключи сеансов. Она достигается созданием эфемерных (временных) пар ключей для каждого сеанса с использованием алгоритма Диффи — Хеллмана. Ключи сеансов вычисляются на основе эфемерных ключей и после использования уничтожаются. Даже если закрытый долгосрочный ключ сервера будет украден позднее, злоумышленник не сможет расшифровать ранее записанные сеансы, поскольку эфемерных ключей больше не существует.

Взаимная и односторонняя аутентификация

Односторонняя аутентификация проверяет только одну сторону: в HTTPS сервер предъявляет сертификат, который проверяет клиент, но сервер обычно не проверяет личность клиента. Взаимная аутентификация (или взаимный TLS, mTLS) требует, чтобы обе стороны предъявляли сертификаты и проверяли их. mTLS широко используется в архитектурах микросервисов, шлюзах API и корпоративных VPN, где перед обменом конфиденциальными данными необходимо проверить обе конечные точки.

Формальные цели безопасности и интуиция

Разработчики протоколов не могут полагаться только на интуицию. Протокол, который кажется очевидно безопасным, может оказаться уязвимым из-за незаметных изъянов. Протокол открытого ключа Needham — Schroeder был опубликован в 1978 году и считался безопасным. В 1995 году Gavin Lowe обнаружил изъян, позволявший провести атаку с выдачей себя за другого, используя инструмент формальной проверки. Формальная проверка с помощью средств проверки моделей, таких как Tamarin или ProVerif, стала стандартной практикой при проектировании протоколов, критичных для безопасности.

Модель угроз Dolev-Yao

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

Почему проектирование протоколов — сложная задача

Проектирование криптографических протоколов чрезвычайно сложно, поскольку их изъяны часто бывают тонкими и неочевидными. Взаимодействие множества сообщений, одноразовых значений, временных меток и ключей может создавать неожиданные пути атаки. Участники могут по-разному видеть состояние протокола. Параллельные сеансы могут мешать друг другу. У каждого крупного протокола, используемого на практике, включая SSL, TLS, WPA2 и 802.11, после внедрения обнаруживались серьёзные уязвимости.

Сбои протоколов в реальном мире

SSL 3.0 был взломан атакой POODLE. TLS 1.0 и 1.1 были признаны устаревшими из-за многочисленных слабых мест. Шифрование WEP для WiFi было полностью взломано уже в первый год после внедрения. PPTP VPN считается небезопасным из-за слабых мест MS-CHAPv2. Каждая такая ошибка научила сообщество специалистов по безопасности чему-то важному о разрыве между неформальными представлениями о безопасности и доказуемо корректным проектированием протоколов в рамках модели Dolev-Yao.

Цели безопасности протоколов

Какое свойство безопасности гарантирует, что сообщение, записанное злоумышленником сегодня, нельзя будет успешно повторно отправить серверу позже, чтобы повторить действие?

Цели безопасности защищённых протоколов: главное

Защищённые протоколы должны обеспечивать аутентификацию, конфиденциальность, целостность, неотказуемость и свежесть. Совершенная прямая секретность защищает прошлые сеансы от последующей компрометации ключей. Взаимная аутентификация проверяет обе стороны. Модель Dolev-Yao предполагает сеть, полностью контролируемую злоумышленником. Проектирование протоколов требует формальной проверки, а не одной лишь интуиции. У каждого крупного протокола после внедрения обнаруживались уязвимости, что стимулирует постоянное развитие криптографических стандартов.

Часто задаваемые вопросы

Урок «Что делает протокол безопасным» бесплатный?

Да — полный текст урока «Что делает протокол безопасным» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Что делает протокол безопасным»?

Определите цели криптографических протоколов: аутентификацию, конфиденциальность, целостность и невозможность отрицания авторства Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Что делает протокол безопасным»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Что делает протокол безопасным
  2. SSH: защита удалённого доступа
  3. SFTP и SCP: безопасная передача файлов
  4. DNSSEC: аутентификация ответов DNS
← Назад к Cryptology Academy