Verstat explicado: o parâmetro de status de verificação nas chamadas STIR/SHAKEN

Tubo de vidro exibindo a linha do cabeçalho SIP P-Asserted-Identity com o valor de verstat TN-Validation-Passed brilhando em verde vivo, representando o status de verificação STIR/SHAKEN em uma chamada de voz de entrada

Você abre um trace SIP de uma chamada de entrada e lá está, na linha do P-Asserted-Identity: verstat=TN-Validation-Passed. Ou então um cliente manda um print do celular mostrando “Verified Caller” e pergunta o que exatamente a operadora verificou. As duas situações levam ao mesmo pequeno dado. Verstat é o parâmetro de status de verificação que a rede de terminação anexa a uma chamada depois de executar a verificação STIR/SHAKEN, e é o mais perto que existe de uma resposta direta à pergunta “a identificação do chamador desta chamada passou na verificação STIR/SHAKEN?”

Neste artigo, vamos ver o que é o verstat, de onde vem o seu valor, o que cada valor significa (incluindo a expressão “verificado pela operadora” que aparece para os consumidores) e como ele se diferencia do nível de atestação e do selo verde de verificação, com os quais é confundido o tempo todo. Se você opera um SBC ou um softswitch e quer tomar decisões de roteamento ou de exibição com base no resultado da verificação, é este o parâmetro que você está lendo.

Termos e conceitos-chave
Um glossário de referência rápida para os termos usados ao longo deste artigo.
Verstat é o parâmetro de status de verificação que carrega o resultado da verificação STIR/SHAKEN de uma chamada. Normalmente aparece no cabeçalho P-Asserted-Identity, na perna de terminação, e assume um de três valores.
STIR/SHAKEN designa o framework que autentica a identificação do chamador: o provedor de origem assina cada chamada criptograficamente e o provedor de terminação verifica essa assinatura.
Cabeçalho Identity é o cabeçalho SIP que leva o token PASSporT assinado do lado de origem até o lado de terminação. É esse o artefato que o serviço de verificação confere.
PASSporT (Personal Assertion Token) corresponde ao token JSON assinado, montado na origem a partir do número chamador, do número chamado e de um timestamp, e que contém o nível de atestação.
Atestação é a declaração que o provedor de origem faz sobre o quanto conhece quem está ligando, expressa como A (completa), B (parcial) ou C (gateway) dentro do PASSporT.
STI-VS (Verification Service) cuida da verificação no lado de terminação: valida a assinatura, a cadeia de certificados e se o cabeçalho Identity recebido é recente, e retorna aprovação ou falha.
P-Asserted-Identity (PAI) é o cabeçalho SIP que carrega a identidade do chamador declarada pela rede, e é nele que o parâmetro verstat costuma viajar na perna de terminação.
Verified Caller descreve o selo ou a marca de verificação que a operadora pode exibir ao consumidor quando o verstat de uma chamada volta como TN-Validation-Passed.

O que é verstat?

Verstat é um parâmetro que carrega o resultado da verificação STIR/SHAKEN de uma única chamada. Quando um provedor de serviços de terminação recebe uma chamada com um cabeçalho Identity assinado, ele valida essa assinatura e registra o resultado como um valor de verstat, para que os sistemas downstream e, por fim, o aparelho de quem recebe a chamada possam agir com base nele.

O parâmetro normalmente viaja na identidade do chamador na perna de terminação, quase sempre anexado à parte de usuário do cabeçalho P-Asserted-Identity (PAI), e assume um de três valores canônicos definidos pelo setor: TN-Validation-Passed, TN-Validation-Failed e No-TN-Validation. “TN” é o número de telefone (telephone number), então os três estados se leem como “o número foi validado e passou”, “o número foi validado e falhou” e “nenhuma validação ocorreu”. Esse é todo o vocabulário. Tudo o que o consumidor vê como “verificado”, ou que um rótulo de spam leva em conta, remonta a qual dessas três strings a rede de terminação gravou.

O ponto principal é que o verstat é um resultado, não uma declaração. Ele é produzido no fim do percurso da chamada, pela rede que a entrega, depois que uma verificação criptográfica foi de fato executada. É essa diferença que o separa da atestação, assunto que veremos mais adiante.

De onde vem o verstat

Para ver onde o valor se origina, acompanhe uma chamada pelo lado de terminação de uma implantação STIR/SHAKEN.

Uma chamada assinada chega ao provedor de terminação com um cabeçalho Identity. Esse cabeçalho contém o PASSporT, um token assinado montado na origem a partir do número chamador, do número chamado e de um timestamp, definido no framework baseado na RFC 8224. O SBC de terminação entrega esse cabeçalho Identity a um serviço de verificação (o STI-VS), que confere três coisas: se a assinatura criptográfica é válida, se a cadeia de certificados remonta a uma autoridade confiável e se o token é recente, e não reutilizado. O serviço de verificação retorna aprovação ou falha, e o SBC converte esse resultado no valor de verstat que carimba na chamada antes de entregá-la para dentro da rede.

Se a chamada chega sem nenhum cabeçalho Identity, não há nada para validar, e o resultado é No-TN-Validation. Isso é comum hoje, porque boa parte do tráfego ainda se origina em redes que não implantaram a assinatura.

Observação: em implantações em produção com os dois parceiros de assinatura mais comuns, TransNexus ClearIP e Neustar, o SBC de terminação se comunica com o serviço de verificação via SIP, e não via HTTPS. A chamada é roteada para um ponto de acesso de rede configurado para verificação, e o serviço devolve o parâmetro verstat dentro do P-Asserted-Identity da sua resposta SIP. A verificação via HTTPS também é suportada para os serviços que a exigem, mas é o SIP que a maioria das implantações de operadoras usa hoje.

Os valores de verstat e o que significam

Existem apenas três valores, e cada um corresponde a uma condição clara.

Valor de verstat O que aconteceu O que informa aos sistemas downstream
TN-Validation-Passed Havia um cabeçalho Identity, e a assinatura, a cadeia de certificados e a atualidade do token foram todas validadas A identificação do chamador foi verificada criptograficamente com base na assinatura do provedor de origem.
TN-Validation-Failed Havia um cabeçalho Identity, mas a validação falhou (assinatura inválida, certificado não confiável ou expirado, token vencido ou divergência de número) Não foi possível confirmar a identificação do chamador, que pode ter sido falsificada; trate com desconfiança
No-TN-Validation Não havia cabeçalho Identity, ou a verificação não pôde ser executada A verificação simplesmente não aconteceu; isso não é o mesmo que uma falha

O valor do meio e o último são confundidos o tempo todo, e a diferença importa. TN-Validation-Failed significa que a rede tentou verificar e a chamada não passou, o que é um sinal real de problema. No-TN-Validation significa que a rede nunca teve o que verificar, o que hoje reflete sobretudo lacunas na implantação em todo o setor, e não algo errado com aquela chamada específica. Tratar “sem validação” como “validação com falha” sinalizaria um volume enorme de tráfego legítimo, por isso as políticas downstream tratam os dois casos de forma muito diferente.

É aqui também que entra a expressão que as pessoas pesquisam. “Verificado pela operadora” (“verified by the carrier”) é a tradução, para o consumidor, de TN-Validation-Passed. Quando uma operadora de terminação associa um verstat aprovado a um selo “Verified Caller” ou a uma marca de verificação no aparelho, o significado é restrito e vale a pena enunciá-lo com precisão: a operadora confirmou que a chamada foi assinada por um provedor que se responsabiliza por aquele número chamador e que a assinatura se sustentou. Isso não quer dizer que a operadora conheça pessoalmente quem está ligando, que a chamada seja desejada ou que não se trate de um golpe vindo de uma empresa que é a legítima dona do próprio número. Quer dizer que a identificação do chamador é autêntica, e nada mais.

Verstat vs. atestação vs. selo verde de verificação

Três conceitos ficam muito próximos no STIR/SHAKEN, e separar bem cada um elimina a maior parte da confusão em torno do verstat.

Atestação é a declaração que o provedor de origem faz quando assina a chamada. É uma única letra, A, B ou C, colocada no campo attest do PASSporT, e indica o quanto o provedor de origem conhece quem está ligando. A significa conhecimento completo, B parcial e C em nível de gateway. O nível de atestação é definido no início da vida da chamada, pela rede de onde ela veio.

Verstat corresponde ao resultado que o provedor de terminação registra na outra ponta. Ele não reavalia a letra de atestação; confirma se a assinatura que carrega essa letra é criptograficamente válida. Uma chamada pode ser assinada com nível A e mesmo assim voltar como TN-Validation-Failed se o certificado tiver expirado, e uma chamada assinada com nível C passa tranquilamente na verificação desde que a assinatura esteja correta. A atestação trata de quanto o originador garante; o verstat trata de se essa garantia chegou intacta ao destino.

O selo verde de verificação, ou rótulo “Verified Caller”, fica na camada de exibição. Ele se apoia no resultado do verstat, mas não é a mesma coisa. A operadora de terminação decide como apresentar ao assinante uma verificação aprovada e, muitas vezes, combina o resultado do verstat com análises, dados de reputação e a sua própria política antes de decidir o que mostrar. Um verstat aprovado ainda pode aparecer sob um aviso “Spam Risk” (risco de spam) se o número chamador tiver má reputação, porque o selo é uma decisão de produto que fica acima do resultado bruto da verificação.

O modelo mental mais claro é o de uma corrida de revezamento: a atestação é carimbada na origem, o verstat é registrado na terminação e o selo é o que a operadora escolhe mostrar para a pessoa. Cada um passa o bastão para o seguinte, e cada um responde a uma pergunta diferente.

Como o resultado do verstat orienta o roteamento e a exibição

Depois que o valor de verstat está na chamada, ele se torna uma informação com base na qual a rede de terminação pode agir. Em geral, duas coisas acontecem com ele.

A primeira é a exibição. A operadora decide o que a pessoa chamada vê, usando o resultado do verstat como um dos fatores. Uma verificação aprovada pode gerar um selo “Verificado”; uma reprovada pode gerar um alerta ou um tratamento “Scam Likely” (provável golpe); e, dependendo da operadora, “No-TN-Validation” costuma ser exibido de forma neutra, porque penalizar toda chamada não assinada puniria o tráfego legítimo de redes que ainda estão concluindo a implantação.

A segunda é o roteamento e a política. Como o valor de verstat chega em um cabeçalho SIP, qualquer dispositivo capaz de ler cabeçalhos SIP pode tomar decisões com base nele. Em um SBC programável, é aí que o resultado da verificação deixa de ser apenas informativo e passa a ser operacional. Um motor de roteamento configurável pode ler o parâmetro verstat e aplicar uma política por chamada: deixar passar direto as chamadas verificadas, encaminhar as que falharam para um anúncio ou outro tratamento de política, anotar tudo nos registros de detalhe de chamada (CDRs) para análise posterior ou alimentar uma decisão de pontuação de fraude junto com outros sinais. A vantagem de colocar essa lógica na camada de roteamento é que um único SBC que lida com tráfego misto pode tratar cada chamada de acordo com as suas próprias características, em vez de aplicar uma regra geral a um tronco inteiro.

Nada disso é exótico. É a consequência natural de o STIR/SHAKEN colocar um veredito legível por máquina em cada chamada de entrada. O parâmetro verstat é simplesmente o campo que carrega esse veredito, e cabe à rede decidir o que fazer com ele.

Perguntas frequentes

O que significa verstat em um cabeçalho SIP?

Verstat é um parâmetro que registra o resultado da verificação STIR/SHAKEN de uma chamada. Normalmente aparece no cabeçalho P-Asserted-Identity, na perna de terminação, e assume um de três valores: TN-Validation-Passed, TN-Validation-Failed ou No-TN-Validation. Ele informa aos sistemas downstream se a identificação do chamador passou com sucesso na verificação STIR/SHAKEN.

Qual é a diferença entre TN-Validation-Failed e No-TN-Validation?

TN-Validation-Failed significa que havia um cabeçalho Identity, mas a verificação não passou, o que é um sinal real de que a identificação do chamador pode ter sido falsificada. No-TN-Validation significa que não havia nenhum cabeçalho Identity para verificar, geralmente porque a chamada veio de uma rede que não implantou a assinatura STIR/SHAKEN. As políticas downstream tratam os dois casos de forma muito diferente.

Verstat significa o mesmo que “verificado pela operadora”?

Na prática, sim. “Verificado pela operadora” (“verified by the carrier”) é a forma como o consumidor vê um resultado TN-Validation-Passed. Significa que a operadora confirmou que a chamada foi assinada por um provedor que se responsabiliza pelo número chamador e que a assinatura era válida. Não significa que a chamada seja desejada ou segura, apenas que a identificação do chamador é autêntica.

Verstat é a mesma coisa que o nível de atestação?

Não. O nível de atestação (A, B ou C) é uma declaração que o provedor de origem faz sobre o quanto conhece quem está ligando, carimbada no início da chamada. O verstat é o resultado da verificação registrado na ponta de terminação, que confirma se a assinatura que carrega essa atestação era criptograficamente válida. Uma chamada pode ter qualquer nível de atestação e, independentemente dele, passar ou falhar na verificação.

Onde o valor de verstat é definido?

Ele é definido pelo provedor de serviços de terminação depois que o seu serviço de verificação confere o cabeçalho Identity recebido. Em implantações comuns de SBC, o SBC roteia a chamada para um serviço de verificação via SIP, recebe a aprovação ou a falha e grava o valor de verstat correspondente no P-Asserted-Identity antes de entregar a chamada.

Conclusão

Verstat é um campo pequeno que responde a uma grande pergunta: a identificação do chamador desta chamada passou na verificação STIR/SHAKEN? Ele carrega um de três valores, é gravado pela rede de terminação depois de uma verificação criptográfica real e é diferente tanto da letra de atestação definida na origem quanto do selo “Verified Caller” que a operadora escolhe exibir. Lido em um trace, é a forma mais rápida de ver se uma chamada de entrada foi autenticada, falhou na autenticação ou nunca chegou a ser assinada. Usado em um motor de roteamento, torna-se um controle ativo sobre como você trata o tráfego de entrada. Entender de ponta a ponta como funcionam a autenticação e a verificação STIR/SHAKEN é o que transforma esse parâmetro de uma curiosidade no log em algo que a sua rede pode usar.

Leia o resultado do verstat e aja com base nele no ProSBC

O verstat só se torna útil quando algo na sua rede consegue lê-lo e decidir o que fazer. O ProSBC oferece suporte aos dois lados do STIR/SHAKEN: o serviço de autenticação, que assina as chamadas na origem, e o serviço de verificação, que as valida na terminação e produz o resultado do verstat. Como o ProSBC segue um modelo aberto de parceiros, ele se integra a serviços de verificação de terceiros, como TransNexus ClearIP e Neustar, pelo protocolo que o parceiro prefere: SIP no caso desses dois em produção, com suporte a serviços baseados em HTTPS quando necessário.

O que mais importa para o verstat é o que acontece em seguida. O motor de roteamento configurável do ProSBC, em Ruby, consegue ler o resultado da verificação em cada chamada de entrada e aplicar uma política por chamada: deixar passar o tráfego verificado, desviar as validações com falha, anotar os resultados nos registros de detalhe de chamada ou combinar o resultado do verstat com a pontuação de fraude em um único fluxo. Essa flexibilidade por chamada é a diferença entre saber o status de verificação de uma chamada e fazer algo a respeito.

Baixe grátis o Runbook de troubleshooting de voz

Um PDF de 22 páginas revisado pelo suporte técnico da TelcoBridges, com as primeiras verificações para os 9 sintomas de voz mais comuns, 14 códigos de resposta SIP explicados e 3 formas de capturar um trace de chamada.

Ao enviar este formulário, suas informações serão processadas de acordo com nossa Política de Privacidade.

Prefere avaliar por conta própria primeiro? Crie seu laboratório gratuito.