Cyber Security Academy · Урок

Цифровые подписи и сертификаты

Разберитесь, как цифровые подписи подтверждают подлинность и как сертификаты X.509 связывают идентичность с ключами.

Урок 4 из 413 шагов

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

Что такое цифровые подписи

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

Как создаётся подпись

Процесс создания подписи:

  1. Вычислить хеш документа: H = SHA256(document)
  2. Зашифровать хеш закрытым ключом: sig = RSA_encrypt(H, private_key)
  3. Прикрепить подпись к документу

Проверка: расшифровать подпись открытым ключом, повторно вычислить хеш и сравнить.

ECDSA и EdDSA

Современные алгоритмы подписей:

  • ECDSA (с P-256) — используется в сертификатах TLS и Bitcoin
  • Ed25519 (EdDSA) — быстрее, проще, не требует случайности для каждой подписи и не имеет связанной с этим уязвимости; используется в SSH и Signal

Для новых приложений предпочтительно использовать Ed25519.

Что такое сертификат

Цифровой сертификат (X.509) связывает открытый ключ с идентичностью. Он содержит имя субъекта, открытый ключ, период действия, издателя и цифровую подпись CA. Когда вы посещаете сайты HTTPS, сервер предъявляет свой сертификат, чтобы подтвердить свою идентичность.

Центры сертификации (CA)

Центр сертификации (CA) — это доверенная организация, которая подписывает сертификаты после проверки личности заявителя. Доверенные хранилища браузеров и OS содержат сертификаты корневых CA. Цепочки доверия: корневой CA → промежуточный CA → сертификат конечного субъекта.

Let's Encrypt и бесплатные сертификаты

Let's Encrypt — бесплатный автоматизированный CA. Он выпускает сертификаты с подтверждением домена (DV), действительные в течение 90 дней и автоматически продлеваемые через протокол ACME. С 2015 года этот сервис значительно повысил распространённость HTTPS.

certbot --nginx -d example.com -d www.example.com
# Auto-renewal via cron or systemd timer

Типы сертификатов

Уровни проверки сертификатов:

  • DV (подтверждение домена) — подтверждает только контроль над доменом
  • OV (проверка организации) — подтверждает существование организации
  • EV (расширенная проверка) — тщательная проверка личности (зелёная строка, теперь устарела в браузерах)

Отзыв сертификатов

Скомпрометированные сертификаты необходимо отзывать:

  • CRL (список отозванных сертификатов) — загружаемый список отозванных серийных номеров
  • OCSP (протокол проверки статуса сертификата в интернете) — проверка одного сертификата в реальном времени
  • OCSP-степлинг — сервер прикрепляет к рукопожатию TLS подписанный CA ответ OCSP

Прозрачность сертификатов (CT)

Журналы прозрачности сертификатов — это общедоступные записи, в которые можно только добавлять сведения о каждом выпущенном сертификате. Браузеры требуют доказательство CT в сертификатах. Это позволяет обнаруживать ошибочно выпущенные сертификаты в течение нескольких часов. Поиск: crt.sh

curl "https://crt.sh/?q=example.com&output=json" | python3 -m json.tool

Подписание кода

Издатели программного обеспечения подписывают исполняемые файлы сертификатами для подписания кода. OS проверяет подписи перед выполнением. Это предотвращает незаметный запуск изменённых двоичных файлов. Механизмы Gatekeeper в macOS и SmartScreen в Windows обеспечивают соблюдение политик подписания кода.

Закрепление сертификатов

Закрепление сертификатов предполагает жёстко заданный список ожидаемых сертификатов или открытых ключей в приложениях. Даже если злоумышленник заставит CA выдать мошеннический сертификат, приложения с закреплёнными сертификатами отклонят его. Этот подход используется в мобильных приложениях и сервисах с повышенными требованиями к безопасности. Обновлять такие данные сложно — применяйте этот метод осторожно.

Быстрая проверка: сертификаты

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

Итоги урока

Цифровые подписи подтверждают подлинность и целостность с помощью закрытых ключей. Сертификаты связывают открытые ключи с удостоверенными личностями и подписываются центрами сертификации. Let's Encrypt предоставляет бесплатные DV-сертификаты. Отзыв сертификатов выполняется с помощью CRL или OCSP. Журналы Certificate Transparency обнаруживают ошибочную выдачу сертификатов. Ed25519 — современный предпочтительный алгоритм подписи.

Можно начать бесплатно

Изучай Cyber Security Academy с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
76
Уроки
303

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

Урок «Цифровые подписи и сертификаты» бесплатный?

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

Чему я научусь в уроке «Цифровые подписи и сертификаты»?

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

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

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

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

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

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

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

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

  1. Симметричное шифрование: AES и потоковые шифры
  2. Асимметричное шифрование: RSA и эллиптические кривые
  3. Хеш-функции: SHA-256 и далее
  4. Цифровые подписи и сертификаты
← Назад к Cyber Security Academy