Cos'è STIR/SHAKEN e cosa sono i livelli di attestazione A, B e C?

Secure Telephone Identity Revisited (STIR) e Signature-based Handling of Asserted information using toKENs (SHAKEN) formano un framework di identità del chiamante i cui livelli A, B e C descrivono cosa ha verificato il provider firmatario.

Il Caller ID non è mai stato autenticato. Il numero mostrato su un telefono che squilla è un valore che il lato originante ha inserito in un campo. Per la maggior parte della storia della rete telefonica, nulla a valle poteva verificare se chi lo aveva inserito ne avesse il diritto. STIR/SHAKEN è il framework che aggiunge una firma a quel campo così che l'altro capo possa farlo.

La parte che arriva al chiamante non è la crittografia. È una singola lettera: A, B o C.

Cosa inserisce effettivamente STIR/SHAKEN in una chiamata?

Inserisce un token firmato nell'header Identity del messaggio SIP che avvia la chiamata. Il token dichiara chi sta garantendo per la chiamata e in che misura.

Il token è un Personal Assertion Token (PASSporT) e l'estensione SHAKEN è specificata in RFC 8588, un documento IETF Standards Track del maggio 2019. Aggiunge due claim al token base. Secure Telephone Identity (STI) è il lavoro che aggiunge l'identità autenticata del chiamante a SIP, e il primo claim è quello che vedrai:

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.

Il claim stesso è un singolo carattere. RFC 8588, sezione 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.

RFC 8588 delega le definizioni: "See [ATIS-1000074] for the definitions of these three levels of attestation". Quel documento è pubblicato dalla Alliance for Telecommunications Industry Solutions (ATIS) e non dall'IETF, e non è consultabile gratuitamente. Il confine normativo tra un livello A e un livello B si trova quindi dietro un paywall, il che in parte spiega perché i livelli vengano descritti così costantemente di seconda mano.

Cosa significano A, B e C?

A indica che il provider sa chi sei e che il numero è tuo. B indica che sa chi sei ma non che il numero è tuo. C indica che non sa nessuna delle due cose, perché la chiamata gli è arrivata da altrove.

La FCC, l'ente regolatore delle comunicazioni statunitense, fornisce una descrizione pubblica nel suo Second Report and Order sull'autenticazione del caller ID, pubblicato al 85 FR 73360 il 17 novembre 2020. Ogni livello registra ciò che il provider ha potuto confermare riguardo al chiamante e al numero. Le parole del regolatore:

  • 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."

Al livello C il provider è un punto di passaggio e non un'origine, ed è per questo che non può garantire per nessuno dei due elementi.

Ecco perché il livello non è una valutazione. Una chiamata perfettamente legittima può portare un livello B, perché il chiamante presenta un numero che il provider non ha emesso e non ha modo di confermare. Una chiamata indesiderata può portare un livello A, perché chi la effettua è un cliente noto che usa il proprio numero. La lettera descrive le prove del provider, non l'intento della chiamata.

Chi decide se ottengo un livello A?

Il provider che firma la chiamata decide, usando un criterio che definisce autonomamente.

Lo stesso ordine della FCC afferma che ciascun provider definisce il proprio criterio:

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.

Non esiste quindi uno standard esterno da soddisfare per avere diritto a un livello A, né un'impostazione che lo conceda. C'è un provider che decide se ha accertato due cose su di te, assumendosi il costo reputazionale di un errore. La versione pratica della domanda non è "how do I get an A" ma "what has my provider established about me and about this number", e la risposta alla seconda metà è di solito la verifica del caller ID. Caller ID spiega come registrare un numero e dimostrarne il controllo, ovvero il passo che cambia ciò che può essere dichiarato su di te.

I numeri che ti sono stati assegnati dal provider che trasporta la chiamata si trovano in una posizione diversa rispetto ai numeri che possiedi altrove e presenti attraverso di esso. La guida al caller ID di Bird fa la stessa osservazione dal lato opposto: elenca i framework anti-spoofing tra le ragioni per cui un numero ottenuto altrove potrebbe non arrivare fino all'altro capo.

Un livello A significa che la mia chiamata passa?

No. Gli standard trattano l'attestazione come un dato in ingresso per la decisione di qualcun altro.

L'ordine della FCC indica a cosa servono i livelli:

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.

Ne derivano due conseguenze. Il traceback è l'uso retrospettivo: il secondo claim SHAKEN è un identificativo di origine, che esiste affinché un investigatore possa risalire da una chiamata illegale al punto in cui è entrata nella rete. L'identificazione dello spam è l'uso in tempo reale. È un sistema gestito dall'operatore ricevente e dal suo partner di analisi. Prende l'attestazione come un segnale tra diversi. Una chiamata firmata con livello A può comunque essere etichettata, e perché la mia chiamata viene probabilmente etichettata come spam spiega chi applica l'etichetta e quali rimedi esistono.

Perché l'attestazione non è arrivata?

Perché l'header non sopravvive a ogni percorso di rete.

L'ordine della FCC descrive il meccanismo in modo chiaro: "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." Una chiamata può essere firmata correttamente all'origine e arrivare all'altro capo senza nulla da verificare, perché un tratto intermedio non era SIP.

Lo stesso ordine osserva che la copertura del provider di terminazione conta quanto la tua. Può agire sulle informazioni di autenticazione solo dove può verificarle. Dove l'header è andato perso, non c'è nulla su cui agire. Quindi una chiamata non firmata all'altro capo non è prova che il provider di origine non abbia firmato, e il percorso tra i due non è qualcosa che nessuno dei due estremi controlla completamente.

L'attestazione è un segnale forte quando sopravvive e silenzioso quando non lo fa: trattala come una parte del farsi rispondere, non come il meccanismo che lo garantisce.

In breve

  1. Il livello descrive la conoscenza del provider, non la qualità della chiamata.

    A, B e C registrano quanto il provider firmatario ha potuto garantire: il chiamante e il numero, solo il chiamante, oppure nessuno dei due perché la chiamata è arrivata da altrove.

  2. La soglia per un livello A è quella del provider stesso.

    La FCC afferma che il metodo per decidere se un chiamante può usare un numero è specifico di ciascun provider, e lega la reputazione di quel provider al rigore del metodo adottato.

  3. Un'attestazione è un dato in ingresso per un'etichetta, non un verdetto.

    Gli standard trattano i livelli come materiale per il traceback e per l'identificazione dello spam eseguita dall'operatore ricevente. Nulla in essi decide cosa mostra il telefono.

  4. La firma può andare persa prima di arrivare a destinazione.

    Una chiamata instradata su una rete che non trasporta SIP perde l'header Identity, quindi una chiamata firmata può raggiungere l'altro capo senza nulla da verificare.

Costruisci sulla stessa rete.

Una chiave API di test è subito tua. L'accesso alla produzione si sblocca quando aggiungi un metodo di pagamento e verifichi un mittente.

La tua prossima idea. Pronta a partire.