Имена дайджестов SHA1 в OpenSSL: что означает старый список
Старые имена SHA1 описывают регистрации библиотеки, а не то, что OpenVPN сделал с пакетом. Разделяйте зарегистрированное имя, дайджест и вызывающую операцию.
Старые списки дайджестов читаются как стенограмма криптографических решений, но ею не являются. Имена вроде SHA1, DSA-SHA1-old или RSA-SHA1-2 стоят рядом в старых сборках OpenSSL, потому что библиотека зарегистрировала несколько точек входа вокруг связанной хеш-машинерии. Метка RSA или DSA в этом списке OpenVPN ничего не говорит о том, что OpenVPN сделал с пакетом. То, что вы читаете, — инвентарь библиотеки, а не запись сеанса.
Три вещи нужно развести, прежде чем любой вывод обретёт смысл: зарегистрированное имя, вычисление дайджеста под ним и операция, которая его потребляет.
Регистрация — это интерфейс, а не оценка стойкости
В OpenSSL 1.0.2 таблица регистрации дайджестов связывает имена, псевдонимы и реализации в одном файле. Старый дескриптор DSS1 — самый ясный случай: он сообщает длину вывода SHA-1 и вызывает процедуру завершения SHA-1, нося при этом имя, которое намекает на совершенно другой алгоритм. Поэтому лишние буквы в регистрации не означают другого хеша, более длинного вывода или нового уровня безопасности.
Тот же исходный код сохраняет связи псевдонимов для старых вызывающих, что объясняет переполненность списка. Это документация совместимости, а не обещание, что нынешний поставщик OpenSSL показывает те же имена.
Имена для подписи не создают подписей
Рамка подписи может привязать дайджест к интерфейсу другого алгоритма, чтобы существующие вызывающие продолжали компилироваться. Настоящая подпись открытым ключом требует и ключа, и шага подписи, который его использует, и ни того, ни другого не даёт имя в меню. Запись дайджеста с оттенком RSA — это имя, которое вызывающий может использовать, а не доказательство того, что каждый пакет VPN нёс подпись RSA.
Именно на этом шаге старые тексты сползают в фольклор. Если нужно понять, как пакеты аутентифицировались, найдите параметр, выбравший механизм, и прочитайте, что он делает в версии, которую вы действительно запускаете. Страница руководства, поставлявшаяся с тем выпуском, — единственное описание, соответствующее программе перед вами. Архивные руководства описывают выпуск, для которого писались, а он может отставать на несколько соглашений об именовании.
Найдите параметр, который потребил имя
В случае аутентификации пакетов, документированном OpenVPN 2.6, auth выбирает дайджест, используемый HMAC, — конструкцию аутентификации сообщений с ключом, а не подпись сертификата. Алгоритм подписи сертификата TLS — отдельное свойство рукопожатия.
При AEAD-шифре данных отдельная настройка auth перестаёт применяться к каналу данных, а её роль для tls-auth остаётся отдельным вопросом. Поэтому список дайджестов не может сказать, какой хеш защищал текущие пакеты, какой набор TLS был согласован или как был подписан сертификат партнёра. Ответить может только действующая конфигурация вместе с версией, и только для соединения перед вами.
Запишите, что у вас на самом деле есть
Запишите версию OpenVPN, связанную криптографическую библиотеку, точные параметры в профиле и результат реального соединения. Этот набор отвечает на вопросы, на которые не ответит снимок экрана меню дайджестов, и переживает следующее обновление, потому что называет версии, а не впечатления.
Прежде всего не выбирайте старый псевдоним из-за того, что его имя звучит сильнее или конкретнее. Выберите поддерживаемую политику для всего соединения, а старые имена воспринимайте как запись о том, как библиотека раньше себя подавала.