stringtranslate.com

Negociación de protocolos de capa de aplicación

La negociación de protocolos de capa de aplicación ( ALPN ) es una extensión de seguridad de la capa de transporte (TLS) que permite a la capa de aplicación negociar qué protocolo debe ejecutarse a través de una conexión segura de manera que se eviten viajes de ida y vuelta adicionales y que sea independiente de los protocolos de la capa de aplicación. Se utiliza para establecer conexiones HTTP/2 sin viajes de ida y vuelta adicionales (el cliente y el servidor pueden comunicarse a través de puertos previamente asignados a HTTPS con HTTP/1.1 y actualizar para usar HTTP/2 o continuar con HTTP/1.1 sin cerrar la conexión inicial).

Apoyo

ALPN es compatible con estas bibliotecas:

Historia

Próxima negociación del protocolo

En enero de 2010, Google presentó un borrador de estándar IETF que describe la extensión TLS de Next Protocol Negotiation. [13] Esta extensión se utilizó para negociar conexiones SPDY experimentales entre Google Chrome y algunos de los servidores de Google. A medida que SPDY evolucionó, NPN fue reemplazado por ALPN.

Negociación de protocolos de capa de aplicación

El 11 de julio de 2014, ALPN se publicó como RFC  7301. ALPN reemplaza la extensión Next Protocol Negotiation (NPN). [14]

El inicio falso de TLS se deshabilitó en Google Chrome a partir de la versión 20 (2012), excepto para los sitios web con la extensión NPN anterior. [15]

Ejemplo

ALPN es una extensión TLS que se envía en el protocolo de enlace TLS inicial "Client Hello" y enumera los protocolos que admite el cliente (por ejemplo, el navegador web):

 Tipo de protocolo de enlace : Cliente Hola ( 1 ) Longitud : 141 Versión : TLS 1.2 ( 0x0303 ) Aleatorio : dd67b5943e5efd0740519f38071008b59efbd68ab3114587 .. . ID de sesión Longitud : 0 Longitud de conjuntos de cifrados : 10 Conjuntos de cifrados ( 5 conjuntos ) Longitud de métodos de compresión : 1 Métodos de compresión ( 1 método ) Longitud de extensiones : 90 [ se omiten otras extensiones ] Extensión : application_layer_protocol_negotiation ( len = 14 ) Tipo : application_layer_protocol_negotiation ( 16 ) Longitud : 14 Longitud de extensión ALPN : 12 Protocolo ALPN Longitud de cadena ALPN : 2 Protocolo siguiente ALPN : h2 Longitud de cadena ALPN : 8 Protocolo siguiente ALPN : http / 1.1                                                                    

El 'Server Hello' resultante del servidor web también contendrá la extensión ALPN y confirmará qué protocolo se utilizará para la solicitud HTTP:

 Tipo de protocolo de enlace : Servidor Hola ( 2 ) Longitud : 94 Versión : TLS 1. 2 ( 0x0303 ) Aleatorio : 44 e447964d7e8a7d3b404c4748423f02345241dcc9c7e332 .. . ID de sesión Longitud : 32 ID de sesión : 7667476 d1d698d0a90caa1d9a449be814b89a0b52f470e2d .. . Conjunto de cifrados : TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ( 0xc02f ) Método de compresión : null ( 0 ) Longitud de extensiones : 22 [ se omiten otras extensiones ] Extensión : application_layer_protocol_negotiation ( len = 5 ) Tipo : application_layer_protocol_negotiation ( 16 ) Longitud : 5 Longitud de extensión ALPN : 3 Protocolo ALPN Longitud de cadena ALPN : 2 Protocolo siguiente ALPN : h2                                                       

Referencias

  1. ^ "Aviso de lanzamiento de Dell BSAFE Micro Edition Suite 5.0" . Consultado el 18 de octubre de 2022 .
  2. ^ "gnutls 3.2.0". Archivado desde el original el 31 de enero de 2016. Consultado el 26 de enero de 2015 .
  3. ^ "MatrixSSL - Noticias". 4 de diciembre de 2014. Archivado desde el original el 14 de febrero de 2015. Consultado el 26 de enero de 2015 .
  4. ^ "Notas de la versión NSS 3.15.5". Red de desarrolladores de Mozilla . Mozilla . Consultado el 26 de enero de 2015 .
  5. ^ "Notas de la versión de OpenSSL 1.0.2". The OpenSSL Project . 22 de enero de 2015. Archivado desde el original el 4 de septiembre de 2014. Consultado el 26 de enero de 2015 .
  6. ^ "LibreSSL 2.1.3 publicado". 22 de enero de 2015. Consultado el 26 de enero de 2015 .
  7. ^ "Resumen de descargas - PolarSSL". 11 de abril de 2014. Archivado desde el original el 9 de febrero de 2015. Consultado el 26 de enero de 2015 .
  8. ^ "Registro de cambios de la versión de wolfSSL". 26 de octubre de 2015. Consultado el 11 de septiembre de 2015 .
  9. ^ "Notas de la versión de Go 1.4". 2014-12-10 . Consultado el 2017-11-28 .
  10. ^ "JEP 244: Extensión de negociación del protocolo de capa de aplicación TLS". 2017-08-07 . Consultado el 2018-08-29 .
  11. ^ "Nota de la versión: extensión de negociación del protocolo de capa de aplicación TLS". 2020-04-30 . Consultado el 2020-06-11 .
  12. ^ "Novedades en TLS/SSL (Schannel SSP)". 31 de agosto de 2016. Consultado el 30 de marzo de 2020 .
  13. ^ Langley, A. (20 de enero de 2010). "Extensión de negociación del próximo protocolo de seguridad de la capa de transporte (TLS)". IETF Datatracker .
  14. ^ Langley, Adam. «» NPN y ALPN» . Consultado el 2 de abril de 2013 .
  15. ^ Langley, Adam. "El fracaso de False Start (11 de abril de 2012)" . Consultado el 25 de septiembre de 2013 .

Enlaces externos