O que é STIR/SHAKEN, e o que são os níveis de atestação A, B e C?

Secure Telephone Identity Revisited (STIR) e Signature-based Handling of Asserted information using toKENs (SHAKEN) formam um framework de identidade de chamador cujos níveis A, B e C descrevem o que o provedor assinante verificou.

O identificador de chamadas nunca foi autenticado. O número exibido em um telefone que está tocando é um valor que o lado originador inseriu em um campo. Durante a maior parte da história da rede telefônica, nada adiante podia verificar se ele tinha algum direito sobre aquele número. STIR/SHAKEN é o framework que adiciona uma assinatura a esse campo para que o destino possa verificar.

A parte que chega ao chamador não é a criptografia. É uma única letra: A, B ou C.

O que o STIR/SHAKEN realmente coloca em uma chamada?

Ele coloca um token assinado no cabeçalho Identity da mensagem SIP que estabelece a chamada. O token diz quem está atestando a chamada e quanto está atestando.

O token é um Personal Assertion Token (PASSporT), e a extensão SHAKEN é especificada na RFC 8588, um documento IETF Standards Track de maio de 2019. Ela adiciona duas declarações ao token base. Secure Telephone Identity (STI) é o trabalho que adiciona identidade autenticada de chamador ao SIP, e a primeira declaração é a que você verá:

This provides three levels of attestation: a full attestation when the service provider can fully attest to the calling identity, a partial attestation when the service provider originated a telephone call but cannot fully attest to the calling identity, and a gateway attestation, which is the lowest level of attestation and represents the service provider receiving a call from a telephone gateway that does not support PASSporT or STI.

A declaração em si é um único caractere. RFC 8588 seção 4:

The "attest" claim can be one of the following three values: 'A', 'B', or 'C'. These values correspond to 'Full Attestation', 'Partial Attestation', and 'Gateway Attestation', respectively.

A RFC 8588 delega as definições: "See [ATIS-1000074] for the definitions of these three levels of attestation". Esse documento é publicado pela Alliance for Telecommunications Industry Solutions (ATIS) e não pela IETF, e não é gratuito. A linha normativa entre um A e um B, portanto, está atrás de um paywall, o que é parte do motivo pelo qual os níveis são tão consistentemente descritos de segunda mão.

O que A, B e C significam?

A diz que o provedor sabe quem você é e que o número é seu. B diz que ele sabe quem você é, mas não que o número é seu. C diz que ele não sabe nenhum dos dois, porque a chamada chegou de outro lugar.

A FCC, o regulador de comunicações dos EUA, oferece uma descrição pública em seu Second Report and Order on caller ID authentication, publicado em 85 FR 73360 em 17 de novembro de 2020. Cada nível registra o que o provedor conseguiu confirmar sobre o chamador e o número. Nas palavras do regulador:

  • A: "A provider assigns an A-level attestation when it is the entry point of the call onto the IP network, it can confirm the identity of the subscriber making the call, and the subscriber is using its associated telephone number."
  • B: "A provider uses a B-level attestation to indicate that it is the entry point of the call onto the IP network and can confirm the identity of the subscriber but not the telephone number."
  • C: "A provider uses a C-level attestation when it is the point of entry to the IP network for a call that originated elsewhere but has no relationship with the initiator of a call, such as when a provider is acting as an international gateway."

No nível C o provedor é uma porta de entrada em vez de uma origem, e por isso não pode atestar nenhum dos dois.

É por isso que o nível não é uma classificação. Uma chamada perfeitamente legítima pode carregar um B, porque o chamador apresenta um número que o provedor não emitiu e não tem como confirmar. Uma chamada indesejada pode carregar um A, porque a entidade que a faz é um cliente conhecido usando seu próprio número. A letra descreve a evidência do provedor, não a intenção da chamada.

Quem decide se eu recebo um A?

O provedor que assina a chamada decide, usando um teste que ele mesmo define.

A mesma ordem da FCC diz que cada provedor define seu próprio teste:

The method or process a provider uses to determine the legitimacy of the caller's use of a telephone number is specific to each provider. As a result, a provider's reputation is tied to the rigor of its evaluation process.

Portanto, não existe um padrão externo que você possa cumprir para ter direito a um A, nem uma configuração que conceda um. O que existe é um provedor decidindo se estabeleceu duas coisas sobre você, e arcando com o custo reputacional de errar. A versão prática da pergunta não é "how do I get an A", mas "what has my provider established about me and about this number", e a resposta para a segunda metade geralmente é a verificação do identificador de chamadas. Caller IDs cobre como registrar um número e comprovar controle sobre ele, que é a etapa que muda o que pode ser declarado sobre você.

Números emitidos para você pelo provedor que transporta a chamada estão em uma posição diferente de números que você possui em outro lugar e apresenta por meio dele. O guia de identificador de chamadas da Bird faz o mesmo ponto pelo outro lado. Ele lista frameworks anti-spoofing entre os motivos pelos quais um número que você adquiriu em outro lugar pode não chegar ao destino.

Um A significa que minha chamada será completada?

Não. Os padrões tratam a atestação como uma entrada para a decisão de outra parte.

A ordem da FCC diz para que servem os níveis:

The STIR/SHAKEN standards envision these various attestation levels as information that can facilitate traceback and to enhance the spam identification solutions that terminating voice service providers enable for their customers.

Duas consequências seguem. Traceback é o uso retrospectivo: a segunda declaração SHAKEN é um identificador de origem, que existe para que um investigador possa rastrear uma chamada ilegal até o ponto em que entrou na rede. Identificação de spam é o uso em tempo real. É um sistema operado pela operadora receptora e seu parceiro de análise. Ele usa a atestação como um sinal entre vários. Uma chamada assinada com nível A ainda pode ser rotulada, e por que minha chamada provavelmente é rotulada como spam cobre quem aplica o rótulo e que recursos existem.

Por que a atestação não chegou?

Porque o cabeçalho não sobrevive a todas as rotas.

A ordem da FCC descreve o mecanismo de forma direta: "if a call is routed at any point over an interconnection point or intermediate provider network that does not support the transmission of SIP calls, the Identity header will be lost." Uma chamada pode ser assinada corretamente na origem e chegar ao destino sem nada para verificar, porque um trecho intermediário não era SIP.

A mesma ordem observa que o alcance do provedor de destino importa tanto quanto o seu. Ele só pode agir sobre informações de autenticação onde consegue verificá-las. Onde o cabeçalho se perdeu, não há nada sobre o que agir. Portanto, uma chamada sem assinatura no destino não é evidência de que o provedor de origem falhou em assinar, e o caminho entre os dois não é algo que nenhum dos lados controla totalmente.

A atestação é um sinal forte quando sobrevive e silenciosa quando não sobrevive. Trate-a como uma parte do processo de ser atendido, não como o mecanismo que garante isso.

Em resumo

  1. O nível descreve o conhecimento do provedor, não a qualidade da chamada.

    A, B e C registram quanto o provedor assinante pôde atestar: o chamador e o número, apenas o chamador, ou nenhum dos dois porque a chamada chegou de outro lugar.

  2. O critério para um A é do próprio provedor.

    A FCC diz que o método para decidir se um chamador pode usar um número é específico de cada provedor, e vincula a reputação desse provedor ao rigor do método.

  3. Uma atestação é uma entrada para um rótulo, não um veredito.

    Os padrões tratam os níveis como material para rastreamento e para a identificação de spam que a operadora receptora executa. Nada nisso decide o que o aparelho exibe.

  4. A assinatura pode se perder antes de chegar.

    Uma chamada roteada por uma rede que não transporta SIP perde o cabeçalho Identity, então uma chamada assinada pode chegar ao destino sem nada para verificar.

Construa na mesma rede.

Uma chave de API de teste é sua imediatamente. A produção é desbloqueada quando adicionar um método de pagamento e verificar um remetente.

Sua próxima ideia. Pronta para conectar.