
Сегодня HTTPS считается стандартом для безопасного сёрфинга веб-страниц. Однако, многие пользователи не знают о проблемах, которые могут возникнуть при использовании протоколов TLS и SSL. В данной статье рассмотрим одну из самых важных проблем и предлагаемый способ её решения.
Протоколы TLS и SSL были разработаны компанией Netscape Communications для безопасной передачи данных в интернете. Первая версия, SSL 1.0, не была выпущена из-за серьёзных уязвимостей. SSL 2.0 был слабо защищённым и не рекомендовался к использованию. SSL 3.0 стал основой для стандартизации протокола TLS 1.0, который впоследствии переработали в версиях 1.1 (2006), 1.2 (2008) и 1.3 (2018).
Протоколы TLS обеспечивают безопасную передачу данных с помощью комбинации асимметричного и симметричного шифрования. В процессе установления соединения происходит так называемое TLS-рукопожатие, в ходе которого клиент и сервер обмениваются криптографическими наборами (cipher suites) и сертификатами X.509.
Однако, несмотря на все улучшения протоколов SSL и TLS, остаётся нерешённой одна из ключевых проблем — истечение срока действия корневых удостоверяющих центров (Root CA). Сертификаты имеют ограниченный срок действия, но при этом не существует механизма их автоматической замены.
Существуют различные способы обхода этой проблемы. В Windows и macOS обновление сертификатов происходит автоматически с помощью менеджера обновлений ОС. Android 14 и выше также позволяют обновлять корневые сертификаты через Google Play.
Для решения данной проблемы предлагается создать безопасный механизм обновления корневых сертификатов, независимый от операционной системы. Этот механизм должен основываться на данных сертификата и включать подпись нового сертификата старым и доступ к CA через специальный API.
Пример программы для обновления сертификатов на языке Python доступен на GitHub. Программа анализирует DN сертификата, получает ссылку на сайт CA, запрашивает актуальный сертификат и заменяет старый при успешной проверке.
Создание универсального решения для обновления корневых сертификатов является необходимостью в свете истечения срока действия многих из них. Однако доверие к такой системе может быть ниже, чем к самим удостоверяющим центрам.
