Por qué las ROA de RPKI siempre tienen las horas contadas
Hace poco hablamos en el blog de Fastly sobre la infraestructura de clave pública de recursos (RPKI). Este mecanismo garantiza la precisión del protocolo de puerta de enlace de frontera (BGP), que regula el flujo del tráfico de internet. En esta publicación, Job Snijders de Fastly y Doug Madory de Kentik se juntan para profundizar un poco más en la RPKI.
En nuestra última colaboración relacionada con la RPKI, celebramos un nuevo hito en la adopción de la validación del origen de rutas (ROV) de RPKI, que ha superado el 50 % en las rutas IPv4 con autorizaciones de origen de ruta (ROA). En esta publicación analizaremos el funcionamiento de la RPKI para explicar cómo contribuye la cadena criptográfica a la fecha de vencimiento efectiva de una ROA.
En la RPKI, una ROA es un registro firmado de manera criptográfica que almacena el número de sistema autónomo (ASN) autorizado para crear un rango de direcciones IP en el BGP. Además del ASN y uno o varios prefijos de direcciones IP, una ROA contiene un certificado de finalización X.509 que indica, entre otras cosas, el periodo de validez; es decir, las marcas de tiempo durante las que esa ROA es válida.
Aunque la fecha de vencimiento de una ROA puede ser dentro de un año, las fechas de vencimiento efectivas que emplean los validadores de RPKI suelen situarse al cabo de unas horas o unos días. Esto se debe a que las fechas de vencimiento efectivas son transitivas. En otras palabras, se establecen en función de la fecha de vencimiento más cercana de los eslabones en la cadena criptográfica.
Así funciona
Para entender todo esto, tenemos que profundizar en el concepto de «registro firmado de manera criptográfica» que hemos mencionado al principio del artículo.
La utilidad de consola rpki-client de Job nos permite investigar la ROA de 151.101.8.0/22, según la cual AS54113 tiene autorización para crear este prefijo IPv4.
asID: 54113
IP address blocks: 151.101.8.0/22 maxlen: 22
En el primer bloque aparecen las primeras fechas que definen la validez de la ROA.
Signing time: Sat 11 May 2024 01:00:27 +0000
ROA not before: Sat 11 May 2024 01:00:27 +0000
ROA not after: Fri 09 Aug 2024 01:00:27 +0000
Esta ROA tiene validez hasta mayo de 2024, siempre que todos los demás elementos de la cadena también sean válidos hasta agosto de 2024. Aquí es donde entra en juego Signature path, la siguiente sección.
Validation: OK
Signature path: rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/871da40f-793a-4a45-a0a9-978148321a07/e605f279-55f4-48ec-ba13-4845c0973a63/e605f279-55f4-48ec-ba13-4845c0973a63.crl
rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/871da40f-793a-4a45-a0a9-978148321a07/e605f279-55f4-48ec-ba13-4845c0973a63/e605f279-55f4-48ec-ba13-4845c0973a63.mft
rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/871da40f-793a-4a45-a0a9-978148321a07/e605f279-55f4-48ec-ba13-4845c0973a63.cer
rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/871da40f-793a-4a45-a0a9-978148321a07/871da40f-793a-4a45-a0a9-978148321a07.crl
rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/871da40f-793a-4a45-a0a9-978148321a07/871da40f-793a-4a45-a0a9-978148321a07.mft
rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/871da40f-793a-4a45-a0a9-978148321a07.cer
rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/5e4a23ea-e80a-403e-b08c-2171da2157d3.crl
rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/5e4a23ea-e80a-403e-b08c-2171da2157d3.mft
rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3.cer
rsync://rpki.arin.net/repository/arin-rpki-ta/arin-rpki-ta.crl
rsync://rpki.arin.net/repository/arin-rpki-ta/arin-rpki-ta.mft
rsync://rpki.arin.net/repository/arin-rpki-ta.cer
Signature path expires: Fri 31 May 2024 14:00:00 +0000
La ruta de firmado, también conocida como ruta de certificación, detalla el proceso de validación del firmado criptográfico de varias etapas que permite pasar de esta ROA al ancla de confianza (en este caso, el ARIN). Cada eslabón de la cadena tiene su propia fecha de vencimiento, y la más distante se sitúa nada menos que en 2025. Sin embargo, la más cercana es la que determina la fecha de vencimiento de la ruta de firmado en general y, por tanto, la de la ROA.
La consola muestra enlaces a tres tipos de archivos: listas de revocación de certificados (.crl), manifiestos (.mft) y certificados (.cer).
Glosario |
---|
Los manifiestos declaran de forma segura los contenidos de un repositorio de RPKI y hacen referencia tanto a la CRL como a la ROA actuales. La validez de un manifiesto termina cuando empieza la siguiente actualización. Si hay varias versiones válidas de un manifiesto, los validadores de RPKI deciden cuál utilizar en función de un número de serie que aumenta monótonamente y está incluido en su carga útil. |
Las CRL (listas de revocación de certificados) albergan un listado con los números de serie de los certificados que la autoridad de certificación (CA) emisora ha revocado antes de su fecha de vencimiento programada. Para sacar una ROA de la rotación, una CA tendría que eliminar su nombre de archivo del manifiesto y añadir el número de serie de su certificado de entidad final a la CRL. La validez de una CRL termina cuando empieza la siguiente actualización. |
Los certificados se utilizan para demostrar la validez de las claves públicas, y los de la RPKI se definen mediante el estándar X.509. Cada certificado contiene su periodo de validez, una clave pública, indicadores que señalan la ubicación de la red del repositorio y algunos metadatos. Los validadores de RPKI utilizan la clave pública para validar el manifiesto, la CRL y las ROA allá donde se encuentra el repositorio. Por su parte, los contenidos del certificado se protegen mediante una firma criptográfica procedente de un emisor ubicado en un eslabón superior de la cadena. En la RPKI, el certificado raíz se conoce como ancla de confianza. Este certificado se firma por su cuenta y se puede validar con un localizador de anclas de confianza. |
Si seguimos los enlaces, podemos crear la siguiente lista de vencimientos en la ruta de firmado:
Signature path: Fri 31 May 2024 23:00:00 rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/871da40f-793a-4a45-a0a9-978148321a07/e605f279-55f4-48ec-ba13-4845c0973a63/e605f279-55f4-48ec-ba13-4845c0973a63.crl Fri 31 May 2024 23:00:00 rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/871da40f-793a-4a45-a0a9-978148321a07/e605f279-55f4-48ec-ba13-4845c0973a63/e605f279-55f4-48ec-ba13-4845c0973a63.mft Mon 13 Apr 2026 22:13:58 rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/871da40f-793a-4a45-a0a9-978148321a07/e605f279-55f4-48ec-ba13-4845c0973a63.cer Sat 01 Jun 2024 13:00:00 rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/871da40f-793a-4a45-a0a9-978148321a07/871da40f-793a-4a45-a0a9-978148321a07.crl Sat 01 Jun 2024 13:00:00 rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/871da40f-793a-4a45-a0a9-978148321a07/871da40f-793a-4a45-a0a9-978148321a07.mft Thu 25 Dec 2025 14:09:41 rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/871da40f-793a-4a45-a0a9-978148321a07.cer Wed 31 May 2024 14:00:00 rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/5e4a23ea-e80a-403e-b08c-2171da2157d3.crl Wed 31 May 2024 14:00:00 rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3/5e4a23ea-e80a-403e-b08c-2171da2157d3.mft Mon 04 May 2026 15:17:49 rsync://rpki.arin.net/repository/arin-rpki-ta/5e4a23ea-e80a-403e-b08c-2171da2157d3.cer Mon 30 Sep 2024 15:17:49 rsync://rpki.arin.net/repository/arin-rpki-ta/arin-rpki-ta.crl Mon 30 Sep 2024 15:17:49 rsync://rpki.arin.net/repository/arin-rpki-ta/arin-rpki-ta.mft Mon 03 Nov 2025 rsync://rpki.arin.net/repository/arin-rpki-ta.cer Signature path expires: Fri 31 May 2024 14:00:00 +0000
¿Por qué es buena idea tener siempre las ROA a punto de vencer?
Muchos de los elementos que se muestran en la ruta de certificación anterior parecen tener periodos de validez relativamente cortos de unas horas o unos días. Esto es así por un buen motivo.
Básicamente, evitan que uno de los eslabones de la cadena criptográfica se vea afectado por interrupciones en la distribución. Por ejemplo, en caso de que el servidor de rsync o rrdp dejara de responder, no se podría recuperar información actualizada y las ROA se quedarían en su último estado.
Si una ROA mal configurada hubiera contribuido a la interrupción, habría que solucionarlo mediante una intervención manual, y el corte en la distribución impediría utilizar la CRL para revocar una ROA problemática.
Al acortar los periodos, la ROA mal configurada vencería automáticamente más pronto que tarde y despejaría la ruta de redireccionamiento de internet al punto de publicación de la ROA.
La reemisión ocurre mucho antes que el vencimiento
Los emisores de ROA, manifiestos, CRL y certificados no esperan de brazos cruzados al vencimiento de un producto firmado criptográficamente para enviar una nueva versión.
Por ejemplo, algunos vuelven a firmar su manifiesto y su CRL cada hora con un vencimiento al cabo de 8 horas para garantizar la validez de los datos durante ese periodo. Las reemisiones frecuentes ayudan a superar los problemas de red temporales que se producen entre el punto de publicación de las ROA y los validadores de RPKI desplegados en las redes de proveedores de servicios de internet.
Los validadores de RPKI tienen dos opciones: utilizar versiones almacenadas en caché local de los objetos hasta que pierdan su validez o sustituirlos por otros procedentes de una sincronización con el punto de publicación.
Este comportamiento es idéntico al de los ajustes de tiempo de vida (TTL) de DNS. Cuando los TTL son cortos, los operadores de DNS pueden redistribuir rápidamente el tráfico si surge la necesidad o asegurarse de que se elimine un registro de DNS de la caché para evitar que un registro obsoleto dirija el tráfico.
Los vencimientos efectivos de ROA en internet, a fondo
El sitio web rpkiviews.org nos permite obtener una instantánea reciente de las aproximadamente 528 000 ROA que se están utilizando en este momento. Los contenidos se muestran así en formato CSV:
ASN,IP Prefix,Max Length,Trust Anchor,Expires
AS13335,1.0.0.0/24,24,apnic,1712499475
AS38803,1.0.4.0/24,24,apnic,1712532668
AS38803,1.0.4.0/22,22,apnic,1712532668
AS38803,1.0.5.0/24,24,apnic,1712532668
AS38803,1.0.6.0/24,24,apnic,1712532668
AS38803,1.0.7.0/24,24,apnic,1712532668
AS18144,1.0.64.0/18,18,apnic,1712358404
AS13335,1.1.1.0/24,24,apnic,1712499475
AS4134,1.1.4.0/22,22,apnic,1712508843
…
La quinta y última columna representa las fechas de vencimiento efectivas en formato epoch. Si agrupamos las marcas de tiempo en intervalos de una hora y llevamos un recuento, el resultado es la siguiente gráfica para una única instantánea.
Como indican las anotaciones, cada pico en el vencimiento de la ROA se corresponde con un registro regional de internet (RIR) diferente. Esta imagen ilustra los efectos de las distintas cadenas criptográficas que emplean los RIR.
Obviamente, esto solo muestra un momento puntual. Para comprender cómo cambian los vencimientos efectivos con el tiempo, echemos un vistazo a esta animación:
Como ya hemos dicho, cada pico se corresponde con un RIR diferente, y la manera en que evoluciona depende del software con el que se gestionan las ROA.
Analizar un blanco en movimiento no es tarea fácil, así que veamos una representación estática de los cambios que se producen en los vencimientos efectivos. En las gráficas de abajo, el eje X muestra las fechas de las instantáneas, y el eje Y, los picos de los vencimientos efectivos. Cada RIR aparece en un color distinto.
La siguiente gráfica ilustra cómo los vencimientos efectivos (eje Y) cambian con el tiempo (eje X). Los vencimientos están redondeados al intervalo de 15 minutos anterior. Para facilitar la interpretación de la gráfica, hemos marcado dos puntos (A y B). Ambos representan ROA publicadas por RIPE (azul) cuyo vencimiento se produce el 13 de abril de 2024 a las 23:00 UTC (eje Y). El punto A representa 2165 ROA con ese vencimiento, mientras que el punto B representa 15 852 ROA. Este último se ve más oscuro para reflejar el mayor número de ROA.
Punto A | Punto B | |
---|---|---|
RIR | RIPE (azul) | RIPE (azul) |
Marca de tiempo | 10 de abril de 2024 a las 22:56:22 | 11 de abril de 2024 a las 07:12:18 |
Vencimiento | 13 de abril de 2024 a las 23:00:00 | 13 de abril de 2024 a las 23:00:00 |
Recuento | 2165 | 15 852 |
Si creamos una gráfica para varios días, podemos ver cómo van cambiando los vencimientos efectivos de las ROA. Cada RIR lleva a cabo la renovación en función del software que emplea.
Analicemos unos cuantos de ellos de forma independiente.
ARIN
Si aislamos los vencimientos efectivos de las ROA publicadas por el ARIN (American Registry for Internet Numbers), advertimos dos grupos diferentes. El primero está formado por una pequeña cantidad de vencimientos que se reparten en el plazo comprendido entre 8 y 24 horas en el futuro. Cuando uno se acerca a las 8 horas, se traslada a 24 horas en el futuro.
El segundo está formado por una mayor cantidad de vencimientos que forman una escalera. Cuando un vencimiento se acerca a las 24 horas, todos se renuevan con periodos que oscilan entre 24 y 48 horas en el futuro. Las renovaciones continúan hasta que las fechas de vencimiento se acercan a las 48 horas en el futuro, pero nunca superan el límite máximo de tiempo anterior, de ahí la forma escalonada. El límite máximo de tiempo para las fechas de vencimiento se reinicia cada 48 horas.
RIPE
A diferencia de lo que ocurre con el ARIN, los vencimientos efectivos del RIPE (Réseaux IP Européens) se actualizan a una hora comprendida entre 8 y 18 horas en el futuro cuando están a 8 horas o menos de la actual. Los vencimientos del RIPE nunca están a más de 24 horas en el futuro. Esto hace que la distribución sea más gradual, como se puede ver en la gráfica siguiente.
APNIC
Los vencimientos efectivos de las ROA del APNIC (Asia Pacific Network Information Centre) pueden ser de dos tipos. Una pequeña cantidad de ellos (banda inferior en color claro) se reparten entre 8 y 24 horas en el futuro. Al igual que la banda inferior del ARIN, estos vencimientos se desplazan hasta 24 horas en el futuro cuando se acercan a 8 horas.
Por lo demás, la mayoría de las ROA publicadas por el APNIC tienen los vencimientos efectivos más lejanos de cualquier RIR, ya que están a un mínimo de 5 días en el futuro. A medida que los vencimientos llegan a los 5 días, se actualizan para que sean a 6 días.
LACNIC
En la primera quincena de abril, los vencimientos efectivos de las ROA del LACNIC (Latin America and Caribbean Network Information Centre) tenían un comportamiento similar a los del RIPE. No obstante, el LACNIC pasó a utilizar Krill como software de gestión de RPKI el 15 de abril. A partir de esa fecha, los vencimientos comenzaron a formar una escalera parecida a la de 48 horas del ARIN.
AFRINIC
Cuando los vencimientos efectivos del AFRINIC (African Network Information Centre) están a 24 horas o menos de la hora actual, se renuevan para añadirles otras 24 horas. Esta actualización se realiza todos los días a las 00:00 UTC para la mayoría de las ROA.
Conclusiones
Como ya sabrás, la ROV de RPKI sigue siendo el mejor mecanismo de defensa contra los secuestros de BGP y las fugas en el origen accidentales que han provocado numerosas interrupciones del servicio. Esta tecnología dio un gran paso adelante hace poco, el 1 de mayo de 2024, momento en el que el porcentaje de rutas IPv4 en la tabla de enrutamiento global con ROA superó el 50 % (las rutas IPv6 alcanzaron esta cifra el año pasado).
La ROV depende de una cadena criptográfica para transmitir con exactitud la información de las ROA a los validadores, que evalúan los anuncios de BGP según llegan. Como resultado, hay dos tipos de vencimientos de las ROA que se deben tener en cuenta. Por un lado, el vencimiento especificado en la propia ROA. Y, por otro, el vencimiento visto desde la perspectiva del validador o vencimiento efectivo, que es el más corto de toda la cadena. Ambos tipos se pueden supervisar con herramientas de código abierto como BGPAlerter.
Estos vencimientos efectivos, que a menudo tienen lugar en unas pocas horas, evitan que los validadores se queden únicamente con información obsoleta si se produce una interrupción. Lo fascinante es la metodología que sigue cada RIR para gestionar los vencimientos, que van desde algunas horas (RIPE) hasta varios días (APNIC).