Acabou o tempo! Por que os ROA do RPKI estão sempre prestes a expirar

17/06/2024

Acabou o tempo! Por que os ROA do RPKI estão sempre prestes a expirar

Doug Madory  &  Job Snijders,

Este artigo foi publicado originalmente no Kentik Blog

Resumo

No RPKI, determinar quando exatamente uma ROA vence não é uma questão simples. Nesta postagem, os especialistas em BGP Doug Madory e Job Snijders da Fastly analisam a diferença entre as datas de vencimento indicadas nos ROA e as datas de vencimento efetivas usadas pelos validadores, que são significativamente mais curtas. Além disso, analisamos como o comportamento das datas de vencimento efetivas mudam ao longo do tempo devido a diferenças de implementação na cadeia de autoridades de certificação.


Na nossa colaboração anterior sobre RPKI, comemoramos o mais recente marco na adoção de ROV (validação de origem de rotas, por sua sigla em inglês) com RPKI: mais de 50% das rotas IPv4 já têm ROA (autorizações de origem de rota, por sua sigla em inglês). Neste artigo, iremos nos aprofundar na mecânica do RPKI para compreender como a cadeia criptográfica contribui para a data de vencimento efetiva de um ROA.

No RPKI, um ROA é um registro assinado criptograficamente que armazena o número do sistema autônomo (ASN) autorizado para originar um intervalo de endereços IP no BGP. Junto com o ASN e um ou mais prefixos de endereços IP, o ROA também contém um certificado de entidade final X.509 que, entre outras coisas, indica a janela de validade: as marcas de tempo antes e depois das quais o ROA é válido.

Embora as datas de vencimento de alguns ROA individuais possam ser dentro de um ano, as datas de vencimento efetivas usadas pelos validadores do RPKI normalmente ocorrem apenas algumas horas ou dias depois. Isso acontece porque essas datas de vencimento efetivas são transitivas, quer dizer, são determinadas pela data de vencimento mais curta dos elos da cadeia criptográfica.

Leia também:

Como é que isso funciona?

Para entender como isso funciona, precisamos aprofundar no significado de “assinada criptograficamente” na definição de ROA mencionada no início deste post.

Usando a rpki-client, a ferramenta de console de Job, podemos pesquisar o ROA para 151.101.8.0/22 ​​que afirma que AS54113 está autorizado para originar este prefixo IPv4.

asID: 54113
IP address blocks: 151.101.8.0/22 maxlen: 22

Além disso, nesse primeiro bloco estão nossas primeiras datas relativas à validade deste 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

Portanto, este ROA é válido até agosto de 2024, desde que todos os outros elementos da cadeia também sejam válidos até agosto de 2024.  É aí que entra em jogo a seguinte seção Signature path.

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

O caminho de assinaturas acima (Signature path, também conhecido como Certification path) descreve o processo de validação de assinatura criptográfica de vários passos que foi necessário para passar deste ROA para a “ancora de confiança” (neste caso, ARIN). Cada elo desta cadeia tem a sua própria data de validade, a mais longa definida para um futuro distante (o ano de 2025!). Mas é a mais próxima que rege o vencimento geral do caminho da assinatura e, portanto, a data de vencimento efetiva do ROA.

Existem três tipos diferentes de arquivos vinculados pela ferramenta do console: listas de revogação de certificados (.crl), manifestos (.mft) e certificados (.cer).

Glossário

Os manifestos declaram com segurança o conteúdo de um repositório RPKI e fazem referência às CRL e os ROA atuais. Um manifesto determinado é válido até a próxima atualização (next Update). Quando confrontados com múltiplas versões válidas de um manifesto, os validadores do RPKI decidem qual versão do manifesto usar com base em um número de série que aumenta monotonicamente dentro da carga útil do manifesto.

As CRL (Certificate Revocation Lists ou listas de revogação de certificados) contêm a lista de números de série dos certificados que foram revogados pela Autoridade de Certificação (CA) emissora antes da data de vencimento programada. Para retirar um ROA da rotação, uma CA remove o nome do arquivo do ROA do manifesto e adiciona o número de série do certificado da entidade final do ROA à CRL. Uma CRL é válida até o momento especificado para a próxima atualização (next Update).

Os certificados são usados ​​para provar a validade das chaves públicas. Os certificados RPKI são definidos usando o padrão X.509. Cada certificado contém sua própria janela de validade, uma chave pública, ponteiros para a localização dos repositórios na rede e alguns metadados adicionais. Os validadores do RPKI usam a chave pública para validar o manifesto, a CRL e os ROA na localização do repositório. Por sua vez, o conteúdo do certificado é protegido por uma assinatura criptográfica de um emissor superior na cadeia. No RPKI, o “certificado raiz” é conhecido como a âncora de confiança. Trata-se de um certificado autoassinado que pode ser validado com um localizador de âncoras de confiança.  

Seguindo os links, podemos construir a seguinte lista de vencimentos nesse caminho de assinaturas:

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 que é bom ter ROA que estão sempre prestes a expirar?

Muitos dos elementos do caminho de certificação acima parecem ter períodos de validade relativamente curtos, restando apenas algumas horas ou alguns dias de validade. Esses períodos de validade curtos e eficazes têm um propósito.

Eles ajudam a evitar o cenário em que um dos elos da cadeia criptográfica sofre uma interrupção na distribuição, quer dizer, o servidor rsync ou rrdp fica off-line, impedindo a recuperação de novas informações. O resultado seria que os ROA ficariam presos no seu último estado.

Se um ROA mal configurado tivesse contribuído para a interrupção, seria necessária uma intervenção manual para corrigi-lo. Neste cenário, interromper a distribuição impediria o uso da CRL para revogar um ROA problemático.

Se os períodos de validade forem curtos, o ROA mal configurado expirará de forma automática, o que potencialmente vai limpar a rota de conexão para o ponto de publicação do ROA.

A remissão acontece bem antes do vencimento.

Os emissores de ROA, manifestos, CRL e certificados não ficam esperando de braços cruzados


para que o produto assinado criptograficamente expire antes de emitir uma nova versão.

Como exemplo de cronograma, alguns emissores podem renunciar ao seu manifesto e CRL a cada hora com um prazo de validade de oito horas no futuro e, ao fazê-lo, afirmar que os dados são válidos por mais oito horas. A remissão frequente ajuda a superar problemas transitórios de rede entre o ponto de publicação dos ROA e os validadores RPKI implantados nas redes dos ISP.

Os validadores do RPKI usarão versões de objetos armazenados localmente em cachê até o momento em se tornam inválidas, ou poderão ser substituídos por objetos sucessores a partir de uma sincronização bem-sucedida com o ponto de publicação.

Esse comportamento é análogo às configurações do tempo de vida (TTL) do DNS. Os TTL curtos permitem que os operadores de DNS redistribuam rapidamente o tráfego quando necessário, ou garantam que um registro DNS seja liberado do cachê para evitar que um registro desatualizado direcione o tráfego.

Análise dos vencimentos efetivos dos ROA

Usando rpkiviews.org, podemos obter um instantâneo dos cerca de 528.000 ROA em uso na atualidade. No formato CSV, o conteúdo de um instantâneo é assim:

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

A quinta e última coluna contém as datas de vencimento efetivas em formato epoch. Se agruparmos essas marcas de tempo em intervalos de uma hora e traçarmos as contagens ao longo do tempo, obtemos o seguinte gráfico que revela vários picos.

Conforme indicado no gráfico, cada pico de vencimentos do ROA corresponde a um RIR diferente. Esta visualização captura os efeitos das diferenças nas cadeias criptográficas usadas por cada RIR.

Mas este foi apenas um instantâneo de um determinado momento. Para entender como esses vencimentos efetivos mudam ao longo do tempo, assistamos a seguinte animação:

Como já dissemos, cada pico corresponde a um RIR diferente, e a forma como ele evolui ao longo do tempo depende do software usado para gerenciar os ROA.

Como resulta difícil analisar um alvo móvel, vejamos uma representação estática desses vencimentos efetivos ao longo do tempo. Nos gráficos abaixo, o eixo “x” é o momento em que o instantâneo é tirado e o eixo “y” são os picos de vencimentos efetivos, coloridos por RIR.

O gráfico a seguir mostra como as datas de vencimento efetivas dos ROA (eixo “y”) mudam ao longo do tempo (eixo “x”). A hora de vencimento foi arredondado para a marca dos 15 minutos anteriores. Para auxiliar na interpretação, marcamos dois pontos no gráfico (A e B). Ambos representam ROA publicados pelo RIPE (azul) que expiram às 23h UTC de 13 de abril de 2024 (eixo “y”). O ponto A representa 2165 ROA com esse vencimento, enquanto o ponto B representa 15852 ROA e é desenhado mais escuro para refletir a maior quantidade de ROA.

 Ponto APonto B
RIRRIPE (azul)RIPE (azul)
Instantâneo10/04/2024, às 22:56:2211/04/2024, às 07:12:18
Vencimento13/04/2024, às 23:00:0013/04/2024, às 23:00:00
Contagem216515852

Se redesenharmos o gráfico ao longo de vários dias, poderemos visualizar como as datas efetivas de vencimento dos ROA mudam com o tempo. Cada RIR reflete seu próprio comportamento de renovação com base nos diferentes softwares que usa.

Vamos analisar alguns deles separadamente.

ARIN

Se isolarmos os vencimentos efetivos dos ROA divulgados pela ARIN, encontramos dois comportamentos diferentes. A primeira é uma população menor (fraca) de vencimentos distribuídos de 8 a 24 horas no futuro. Neste grupo, os vencimentos são adiados para 24 horas no futuro, quando se aproximam de 8 horas no futuro.

O segundo consiste em uma população maior de vencimentos visualizados no formato de escada. Neste grupo, quando os vencimentos se aproximam de 24 horas no futuro, todos são renovados com vencimentos que variam de 24 a 48 horas no futuro. As renovações continuam à medida que os vencimentos se aproximam de 24 horas no futuro, mas nunca excedem o limite de tempo superior anterior, para a criação da escada. O limite de tempo superior para a expiração é redefinido a cada 48 horas.

RIPE

Ao contrário do ARIN, os vencimentos efetivos do RIPE são atualizados a um tempo entre 8 e 18 horas no futuro, à medida que se aproximam das 8 horas posteriores ao horário atual. Os vencimentos do RIPE nunca são mais de 24 horas no futuro. Isto cria uma distribuição mais estreita, ilustrada no gráfico abaixo.

APNIC

As datas de vencimento efetivas dos ROA do APNIC se enquadram em duas categorias. Um pequeno número de vencimentos (faixa inferior fraca) é distribuído entre 8 e 24 horas no futuro. Assim como a banda fraca inferior do ARIN, esses vencimentos são adiados 24 horas no futuro quando se aproximam de 8 horas no futuro.

Caso contrário, a maioria dos ROA publicados por APNIC tem os vencimentos efetivos mais longos de qualquer RIR. Eles estão pelo menos cinco dias no futuro. À medida que os vencimentos chegam aos cinco dias, eles são atualizados para que os vencimentos sejam seis dias no futuro.

LACNIC

Na primeira quinzena de abril, os vencimentos efetivos dos ROA do LACNIC apresentaram comportamento semelhante ao do RIPE. No entanto, em 15 de abril, o LACNIC passou a usar o Krill como software de gestão do RPKI. Depois de 15 de abril, os vencimentos começaram a se assemelhar ao formato de escada de 48 horas do ARIN.

AFRINIC

À medida que os vencimentos efetivos de AFRINIC se aproximam de 24 horas a partir do horário atual, são renovados por mais 24 horas no futuro. Para a maioria dos ROA, essa atualização ocorre todos os dias à meia-noite UTC.

Conclusões

Como vocês provavelmente já sabem, o RPKI ROV continua sendo a melhor defesa contra sequestros de BGP e os vazamentos acidentais de rotas que provocaram numerosas interrupções de serviço. Recentemente, esta tecnologia comemorou um marco importante quando, em 1º de maio de 2024, a percentagem de rotas IPv4 na tabela de roteamento global com ROA ultrapassou 50% (o IPv6 alcançou isso no ano passado).

A validação de origem de rotas depende de uma cadeia criptográfica para transmitir com precisão as informações contidas nos ROA aos validadores que fazem o trabalho de avaliar os anúncios do BGP à medida que chegam. Como resultado, há dois vencimentos que os ROA devem observar. O primeiro é o vencimento definido no próprio ROA, mas também existe o vencimento visto desde a perspectiva do validador —o que chamamos vencimento efetivo— que corresponde ao vencimento mais curto ao longo da cadeia. Os dois tipos de vencimento podem ser monitorados com ferramentas de código aberto como BGPAlerter.

Estes vencimentos curtos e efetivos (muitas vezes daqui a apenas algumas horas) são um recurso que evita que os validadores fiquem presos a informações desatualizadas em caso de interrupção. O que é fascinante é a diferença entre como cada RIR lida com esses vencimentos, variando de apenas umas horas (RIPE) a vários dias (APNIC).

As opiniões expressadas pelo autor deste artigo são próprias e não refletem necessariamente as opiniões de LACNIC.

Subscribe
Notify of

0 Comments
Inline Feedbacks
View all comments