Всё, что стоит знать, и ничего лишнего.
Что было удалено
В TLS 1.3 исключены обмен ключами RSA, статический алгоритм Дирихле-Хеллмана, шифры в режиме CBC, MD5 и SHA-1 в процессе рукопожатия, сжатие (атака класса CRIME) и пересогласование. Остались: ECDHE для прямой секретности, AES-GCM / ChaCha20-Poly1305 для AEAD и SHA-256/384 для хеширования транскрипта. Список шифровальных алгоритмов сократился с десятков до пяти. Это нововведение.
Что изменилось в рукопожатии?
TLS 1.3 выполняет одновременный обмен данными в течение всего процесса рукопожатия (вместо двух) и поддерживает возобновление соединения с нулевым временем отклика (RTT) для повторных подключений. При подключении трансивера SMPP, который переподключается каждые несколько часов, сэкономленное время отклика увеличивается. Что еще важнее, упрощенное рукопожатие устранило уязвимость для атак с понижением уровня безопасности, которая была характерна для TLS 1.2 (POODLE, FREAK, Logjam).
Что следует проверить клиентам SMPP
Три момента. Ваша клиентская библиотека поддерживает TLS 1.3 (большинство поддерживают его по состоянию на 2022 год; проверьте OpenSSL >= 1.1.1, JSSE на JDK 11+, Go 1.12+). SMSC поддерживает протокол TLS 1.3. Список шифров на вашей стороне включает как минимум один из `TLS_AES_128_GCM_SHA256` или `TLS_CHACHA20_POLY1305_SHA256`.
Там, где до сих пор используется TLS 1.2
Некоторые устаревшие стеки SMSC (Acision, работающий на RHEL 5, некоторые узлы Huawei) ограничиваются протоколом TLS 1.2, поскольку поддержка базового OpenSSL прекращена. При необходимости мы согласовываем более низкий уровень протокола, но для любого нового подключения требуется TLS 1.3. В целях аудита PDPL все производственные SMPP-соединения в BroadNet работают на TLS 1.3 с фиксацией шифрования.