El identificador de llamadas nunca fue autenticado. El número que aparece en un teléfono que suena es un valor que el lado de origen colocó en un campo. Durante la mayor parte de la historia de la red telefónica, nada aguas abajo podía comprobar si tenía algún derecho sobre él. STIR/SHAKEN es el marco que añade una firma a ese campo para que el extremo receptor pueda hacerlo.
Lo que llega al llamante no es la criptografía. Es una sola letra: A, B o C.
¿Qué pone realmente STIR/SHAKEN en una llamada?
Coloca un token firmado en el encabezado Identity del mensaje SIP que establece la llamada. El token indica quién respalda la llamada y en qué medida.
El token es un Personal Assertion Token (PASSporT), y la extensión SHAKEN está especificada en RFC 8588, un documento IETF Standards Track de mayo de 2019. Añade dos claims al token base. Secure Telephone Identity (STI) es el trabajo que incorpora la identidad autenticada del llamante a SIP, y el primer claim es el que verás:
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.
El claim en sí es un solo carácter. RFC 8588 sección 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 las definiciones: "See [ATIS-1000074] for the definitions of these three levels of attestation". Ese documento lo publica la Alliance for Telecommunications Industry Solutions (ATIS) y no el IETF, y no es de acceso libre. La línea normativa entre una A y una B, por tanto, está detrás de un muro de pago, lo cual explica en parte por qué los niveles se describen tan sistemáticamente de segunda mano.
¿Qué significan A, B y C?
A dice que el proveedor sabe quién eres y que el número es tuyo. B dice que sabe quién eres pero no que el número sea tuyo. C dice que no sabe ninguna de las dos cosas, porque la llamada le llegó desde otro lugar.
La FCC, el regulador de comunicaciones de EE. UU., ofrece una explicación pública en su Second Report and Order on caller ID authentication, publicado en 85 FR 73360 el 17 de noviembre de 2020. Cada nivel registra lo que el proveedor pudo confirmar sobre el llamante y el número. En palabras del 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."
En el nivel C, el proveedor es una puerta de entrada y no un origen, por eso no puede confirmar ninguna de las dos cosas.
Por eso el nivel no es una calificación. Una llamada perfectamente legítima puede llevar una B, porque el llamante presenta un número que el proveedor no emitió y no tiene forma de confirmar. Una llamada molesta puede llevar una A, porque la entidad que la realiza es un cliente conocido que usa su propio número. La letra describe la evidencia del proveedor, no la intención de la llamada.
¿Quién decide si obtengo una A?
El proveedor que firma la llamada decide, usando una prueba que él mismo define.
La misma orden de la FCC dice que cada proveedor define su propia prueba:
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.
No existe un estándar externo que puedas cumplir para tener derecho a una A, ni una configuración que la otorgue. Lo que hay es un proveedor que decide si ha establecido dos cosas sobre ti y que asume el coste reputacional de equivocarse. La versión práctica de la pregunta no es "how do I get an A" sino "what has my provider established about me and about this number", y la respuesta a la segunda mitad suele ser la verificación de identificador de llamadas. Caller IDs cubre cómo registrar un número y demostrar control sobre él, que es el paso que cambia lo que se puede afirmar sobre ti.
Los números que te asignó el proveedor que cursa la llamada están en una posición diferente a los números que posees en otro lugar y presentas a través de él. La propia guía de identificador de llamadas de Bird expone lo mismo desde el otro lado. Lista los marcos anti-spoofing entre las razones por las que un número que obtuviste en otro lugar puede no llegar al destino.
¿Una A significa que mi llamada pasa?
No. Los estándares tratan la atestación como un dato de entrada para la decisión de otro.
La orden de la FCC dice para qué sirven los niveles:
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.
Se derivan dos consecuencias. Traceback es el uso retrospectivo: el segundo claim de SHAKEN es un identificador de origen, que existe para que un investigador pueda rastrear una llamada ilegal hasta el punto donde entró en la red. Identificación de spam es el uso en tiempo real. Es un sistema que opera el operador receptor junto con su socio de analítica. Toma la atestación como una señal entre varias. Una llamada firmada con nivel A aún puede ser etiquetada, y why is my call labeled spam likely cubre quién aplica la etiqueta y qué recurso existe.
¿Por qué no llegó la atestación?
Porque el encabezado no sobrevive a todas las rutas.
La orden de la FCC describe el mecanismo con claridad: "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 llamada puede firmarse correctamente en el origen y llegar al destino sin nada que verificar, porque un tramo intermedio no era SIP.
La misma orden señala que el alcance del proveedor receptor importa tanto como el tuyo. Solo puede actuar sobre la información de autenticación donde puede verificarla. Donde el encabezado desapareció, no hay nada sobre lo que actuar. Así que una llamada sin firma en el destino no es prueba de que el proveedor de origen no la firmó, y la ruta entre ambos no es algo que ninguno de los dos extremos controle por completo.
La atestación es una señal fuerte cuando sobrevive y silenciosa cuando no, así que trátala como una parte de lograr que te contesten, no como el mecanismo que lo garantiza.
En resumen
El nivel describe el conocimiento del proveedor, no la calidad de la llamada.
A, B y C registran cuánto pudo confirmar el proveedor firmante: el llamante y el número, solo el llamante, o ninguno de los dos porque la llamada llegó desde otro lugar.
El criterio para una A lo define el propio proveedor.
La FCC dice que el método para decidir si un llamante puede usar un número es específico de cada proveedor, y vincula la reputación de ese proveedor a lo riguroso que sea.
Una atestación es un dato de entrada para una etiqueta, no un veredicto.
Los estándares tratan los niveles como material para el rastreo y para la identificación de spam que ejecuta el operador receptor. Nada en ellos decide lo que muestra el teléfono.
La firma puede perderse antes de llegar.
Una llamada enrutada por una red que no transporta SIP pierde el encabezado Identity, así que una llamada firmada puede llegar al destino sin nada que verificar.