Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
Индивидуальные сертификаты для каждой TLS-сессии
Скопирую сюда своё сообщение с “Хабра”:
В связи с интенсивным сокращением максимального срока действия TLS-сертификатов (пока что обещают 47 дней, но для всех и к 2030 году), коллеги саркастически поинтересовались, можно ли сделать так, чтобы сертификат выписывался на каждый TLS-запрос. Шутки – шутками, но сделать-то можно. И даже не требуется переделывать протокол TLS – есть готовое решение.
Если внимательно посмотреть на алгоритм TLS-хендшейка, то окажется, что секретный ключ, соответствующий открытому ключу из серверного сертификата, требуется там только один раз – для формирования подписи в сообщении CertificateVerify. Соответственно, секретного ключа от сертификата вообще может не быть на сервере, а сервер будет обращаться к некоторому подписывающему узлу, у которого этот ключ есть и который подтвердит TLS-сессию, подписав значение для CertificateVerify. Это вовсе не теоретическое рассуждение, именно так делается на практике, когда входящие соединения принимает прокси-провайдер (CDN, обычно), но передавать этому провайдеру секретные ключи от сертификатов для своих доменов клиент не желает. Первыми в промышленных масштабах такую услугу сделали в Cloudflare, более десяти лет назад. Называется Keyless SSL.
Так что, вместо возни с автоматическим перевыпуском суперкоротких сертификатов, центральный сервис может выдавать квитанции доступа на каждую TLS-сессию. Естественно, TLS-сертифкат сервера должен быть предъявлен раньше, чем отправлено сообщение с подписью CertificateVerify. Однако эти сообщения в TLS передаются сервером одной серией, поэтому, в процессе создания TLS-сессии, сервер сможет сразу же получить от центрального узла и сгенерированный только что сертификат, и соответствующую подпись, собрать это всё вместе и отправить клиенту.
Сертификат, таким образом, окончательно превратится в безотзывный тикет доступа, мгновенного действия, а сервер будет привязан к центральному провайдеру (можно совместить с крупными CDN, у которых и так есть собственные хорошо известные УЦ). Проверку совпадения подписей, серверной и на сертификате, будет всё так же проводить браузер (речь, напомню, про веб). В браузере ничего не нужно переделывать совсем: если сервер не смог предъявить корректную подпись в CertificateVerify – TLS-сессия браузером установлена не будет.
Это, если что, была минутка технологического юмора. Но вот то, что развитие инфраструктуры TLS-сертификатов в вебе движется в сторону тикетов доступа (или, скорее, квитанций) – отрицать всё сложнее.
Адрес записки: https://dxdt.blog/2025/04/17/15410/
Похожие записки:
- Офтопик: рисованные рыбы в манускриптах
- Нейросети "Яндекса" и "задачи из старшей школы"
- Архитектурные различия DNSSEC, DNS-over-TLS, HTTP-over-TLS
- Реплика: слух человека и преобразование Фурье
- Бывшая "Яндекс.Почта"
- ML-KEM на тестовом TLS-сервере
- Квантовые атаки на решётки
- Ретроспектива заметок: сентябрь 2013 года
- Реплика: задача с делением и 25519
- Let's Encrypt и шестидневный TLS-сертификат
- Морфологический переворот как инструмент в "тесте Тьюринга"
Новый
Комментарии читателей блога: 2
1 <t> // 18th April 2025, 13:37 // Читатель beldmit написал:
https://datatracker.ietf.org/doc/rfc9345/ – всё украдено до нас
2 <t> // 18th April 2025, 14:13 // Александр Венедюхин:
О! Ну, вот к этому всё и идёт, да.
Написать комментарий