stringtranslate.com

Согласование протокола прикладного уровня

Согласование протокола уровня приложения ( ALPN ) — это расширение Transport Layer Security (TLS), которое позволяет прикладному уровню согласовывать, какой протокол должен выполняться по защищенному соединению, таким образом, чтобы избежать дополнительных круговых обходов и который не зависит от протоколов уровня приложения. Он используется для установления соединений HTTP/2 без дополнительных круговых обходов (клиент и сервер могут взаимодействовать через порты, ранее назначенные для HTTPS с HTTP/1.1 , и обновиться для использования HTTP/2 или продолжить работу с HTTP/1.1, не закрывая первоначальное соединение).

Поддерживать

ALPN поддерживается следующими библиотеками:

История

Следующее согласование протокола

В январе 2010 года Google представил проект стандарта IETF, описывающий расширение Next Protocol Negotiation TLS. [13] Это расширение использовалось для согласования экспериментальных соединений SPDY между Google Chrome и некоторыми серверами Google. По мере развития SPDY NPN был заменен на ALPN.

Согласование протокола прикладного уровня

11 июля 2014 года ALPN был опубликован как RFC  7301. ALPN заменяет расширение Next Protocol Negotiation (NPN). [14]

TLS False Start был отключен в Google Chrome, начиная с версии 20 (2012) и далее, за исключением веб-сайтов с более ранним расширением NPN. [15]

Пример

ALPN — это расширение TLS, которое отправляется при начальном TLS-рукопожатии «Client Hello» и содержит список протоколов, которые поддерживает клиент (например, веб-браузер):

 Тип рукопожатия : Приветствие клиента ( 1 ) Длина : 141 Версия : TLS 1.2 ( 0x0303 ) Случайный : dd67b5943e5efd0740519f38071008b59efbd68ab3114587 .. .Длина идентификатора сеанса : 0 Наборы шифров Длина : 10 Наборы шифров ( 5 наборов ) Методы сжатия Длина : 1 Методы сжатия ( 1 метод ) Расширения Длина : 90 [ другие расширения опущены ] Расширение : application_layer_protocol_negotiation ( len = 14 ) Тип : application_layer_protocol_negotiation ( 16 ) Длина : 14 Расширение ALPN Длина : 12 Протокол ALPN Длина строки ALPN : 2 Следующий протокол ALPN : h2 Длина строки ALPN : 8 Следующий протокол ALPN : http / 1.1                                                                    

Полученное в результате сообщение «Server Hello» от веб-сервера также будет содержать расширение ALPN и подтверждать, какой протокол будет использоваться для HTTP-запроса:

 Тип рукопожатия : Server Hello ( 2 ) Длина : 94 Версия : TLS 1.2 ( 0x0303 ) Случайный : 44 e447964d7e8a7d3b404c4748423f02345241dcc9c7e332 .. . Идентификатор сеанса Длина : 32 Идентификатор сеанса : 7667476 d1d698d0a90caa1d9a449be814b89a0b52f470e2d .. .Набор шифров : TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ( 0xc02f ) Метод сжатия : null ( 0 ) Длина расширений : 22 [ другие расширения опущены ] Расширение : application_layer_protocol_negotiation ( len = 5 ) Тип : application_layer_protocol_negotiation ( 16 ) Длина : 5 Длина расширения ALPN : 3 Протокол ALPN Длина строки ALPN : 2 Следующий протокол ALPN : h2                                                       

Ссылки

  1. ^ "Dell BSAFE Micro Edition Suite 5.0 Release Advisory" . Получено 2022-10-18 .
  2. ^ "gnutls 3.2.0". Архивировано из оригинала 2016-01-31 . Получено 2015-01-26 .
  3. ^ "MatrixSSL - Новости". 2014-12-04. Архивировано из оригинала 2015-02-14 . Получено 2015-01-26 .
  4. ^ "NSS 3.15.5 release notes". Mozilla Developer Network . Mozilla . Получено 2015-01-26 .
  5. ^ "Заметки о выпуске OpenSSL 1.0.2". Проект OpenSSL . 2015-01-22. Архивировано из оригинала 2014-09-04 . Получено 2015-01-26 .
  6. ^ "LibreSSL 2.1.3 выпущен". 2015-01-22 . Получено 2015-01-26 .
  7. ^ "Обзор загрузки - PolarSSL". 2014-04-11. Архивировано из оригинала 2015-02-09 . Получено 2015-01-26 .
  8. ^ "Журнал изменений выпуска wolfSSL". 2015-10-26 . Получено 2015-09-11 .
  9. ^ "Go 1.4 Release Notes". 2014-12-10 . Получено 2017-11-28 .
  10. ^ "JEP 244: Расширение согласования протокола прикладного уровня TLS". 2017-08-07 . Получено 2018-08-29 .
  11. ^ "Замечание к выпуску: Расширение согласования протокола прикладного уровня TLS". 2020-04-30 . Получено 2020-06-11 .
  12. ^ "Что нового в TLS/SSL (Schannel SSP)". 31 августа 2016 г. Получено 2020-03-30 .
  13. ^ Лэнгли, А. (20 января 2010 г.). «Расширение согласования следующего протокола Transport Layer Security (TLS)». IETF Datatracker .
  14. ^ Лэнгли, Адам. "» NPN и ALPN" . Получено 2 апреля 2013 г.
  15. ^ Лэнгли, Адам. "False Start's Failure (11 апреля 2012 г.)" . Получено 25 сентября 2013 г.

Внешние ссылки