Проверка сертификатов
Проверяйте подлинность сервера
«Проверка сертификатов» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.
Зачем проверять сертификаты
Одного шифрования недостаточно. Если Вы зашифруете соединение с злоумышленником, Вы защитите не тот разговор.
Проверка сертификата гарантирует, что Вы действительно общаетесь с предполагаемым сервером.
Что проверяет клиент
Во время рукопожатия клиент проверяет несколько параметров:
- Цепочка сертификатов ведёт к доверенному корневому сертификату.
- Сертификат находится в пределах срока действия.
- Сертификат не был отозван.
- Имя хоста совпадает.
Сопоставление имени хоста
Имя хоста, к которому Вы подключились, должно совпадать с записями альтернативного имени субъекта (SAN) сертификата.
Старое поле общего имени (CN) для этого устарело; современные клиенты требуют SAN.
openssl x509 -in cert.pem -noout -ext subjectAltNameСрок действия
У каждого сертификата есть временные отметки «Действителен с» и «Действителен до». За пределами этого периода сертификат отклоняется.
openssl x509 -in cert.pem -noout -datesПроверка цепочки доверия
Клиент проходит по цепочке от конечного сертификата к корневому сертификату в своём хранилище доверия, проверяя каждую подпись.
Если путь к доверенному корневому сертификату отсутствует, проверка завершается неудачей, даже если сертификат выглядит корректным.
Проверка отзыва
Клиент проверяет, не был ли сертификат досрочно отозван, используя OCSP или CRL.
Многие браузеры используют закрепление ответа OCSP или тщательно отобранные списки отзыва, чтобы ускорить проверки.
Ограничения использования ключа
Сертификаты объявляют разрешённые способы использования в расширениях «Использование ключа» и «Расширенное использование ключа».
Сертификат сервера должен содержать serverAuth; в сертификате центра сертификации должен быть установлен флаг CA. Сертификаты, используемые неправильно, отклоняются.
Закрепление сертификата
Закрепление жёстко задаёт ожидаемый сертификат или открытый ключ в клиенте (это часто используется в мобильных приложениях).
Даже действительный сертификат, подписанный центром сертификации, но не ожидаемый клиентом, отклоняется, что защищает от незаконных или скомпрометированных центров сертификации.
Когда проверка завершается неудачей
К распространённым ошибкам проверки относятся:
- NET::ERR_CERT_DATE_INVALID (истёк срок действия)
- NET::ERR_CERT_COMMON_NAME_INVALID (имя хоста не совпадает)
- NET::ERR_CERT_AUTHORITY_INVALID (издатель не вызывает доверия)
Опасность пропуска проверки
Отключение проверки сертификатов (например, curl -k или verify=False) полностью устраняет защиту от подмены.
Такой подход никогда не следует использовать в рабочем коде, поскольку он открывает путь для атак посредника.
# DO NOT do this in production
curl -k https://example.comПроверка из командной строки
Вы можете выполнить полную проверку работающего сервера.
openssl s_client -connect example.com:443 \
-verify_hostname example.com -verify_return_errorБыстрая проверка
Разработчик устанавливает verify=False, чтобы подавить ошибку сертификата в рабочей среде. Какой риск это создаёт?
Итоги
Вы узнали, как клиенты выполняют проверку сертификатов.
- Проверки включают доверие к цепочке, даты действия, отзыв и имя хоста (SAN).
- Закрепление обеспечивает дополнительную защиту от незаконных центров сертификации.
- Никогда не отключайте проверку в рабочей среде.
Далее мы рассмотрим распространённые атаки на TLS.
Часто задаваемые вопросы
Урок «Проверка сертификатов» бесплатный?
Да — полный текст урока «Проверка сертификатов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «Проверка сертификатов»?
Проверяйте подлинность сервера Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cyber Security Academy?
Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Проверка сертификатов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cyber Security Academy?
Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Рукопожатие TLS
- Наборы шифров
- Проверка сертификатов
- Распространённые атаки на TLS