Qu'est-ce que STIR/SHAKEN, et que signifient les niveaux d'attestation A, B et C ?

Secure Telephone Identity Revisited (STIR) et Signature-based Handling of Asserted information using toKENs (SHAKEN) forment un cadre d'identité de l'appelant dont les niveaux A, B et C décrivent ce que le fournisseur signataire a vérifié.

L'identifiant de l'appelant n'a jamais été authentifié. Le numéro affiché sur un téléphone qui sonne est une valeur que le côté émetteur a placée dans un champ. Pendant la majeure partie de l'histoire du réseau téléphonique, rien en aval ne pouvait vérifier s'il en avait le droit. STIR/SHAKEN est le cadre qui ajoute une signature à ce champ pour que l'autre bout puisse le faire.

Ce qui parvient à l'appelé n'est pas la cryptographie. C'est une seule lettre : A, B ou C.

Que place concrètement STIR/SHAKEN sur un appel ?

Il place un jeton signé dans l'en-tête Identity du message SIP qui établit l'appel. Le jeton indique qui se porte garant de l'appel et dans quelle mesure.

Le jeton est un Personal Assertion Token (PASSporT), et l'extension SHAKEN est spécifiée dans la RFC 8588, un document IETF Standards Track de mai 2019. Elle ajoute deux déclarations au jeton de base. Secure Telephone Identity (STI) est le travail qui ajoute une identité d'appelant authentifiée à SIP, et la première déclaration est celle que vous verrez :

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.

La déclaration elle-même est un seul caractère. RFC 8588, section 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.

La RFC 8588 délègue les définitions : "See [ATIS-1000074] for the definitions of these three levels of attestation". Ce document est publié par l'Alliance for Telecommunications Industry Solutions (ATIS) et non par l'IETF, et n'est pas en accès libre. La frontière normative entre un A et un B se trouve donc derrière un paywall, ce qui explique en partie pourquoi ces niveaux sont si souvent décrits de seconde main.

Que signifient A, B et C ?

A signifie que le fournisseur sait qui vous êtes et que le numéro est le vôtre. B signifie qu'il sait qui vous êtes, mais pas que le numéro est le vôtre. C signifie qu'il ne sait ni l'un ni l'autre, parce que l'appel lui est parvenu d'ailleurs.

La FCC, le régulateur des communications aux États-Unis, en donne un compte rendu public dans son Second Report and Order on caller ID authentication, publié au 85 FR 73360 le 17 novembre 2020. Chaque niveau enregistre ce que le fournisseur a pu confirmer au sujet de l'appelant et du numéro. Les propres termes du régulateur :

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

Au niveau C, le fournisseur est un point de passage plutôt qu'un point d'origine, ce qui explique pourquoi il ne peut se porter garant de rien.

C'est pourquoi le niveau n'est pas une note. Un appel parfaitement légitime peut porter un B, parce que l'appelant présente un numéro que le fournisseur n'a pas attribué et qu'il n'a aucun moyen de confirmer. Un appel indésirable peut porter un A, parce que l'entité qui le passe est un client connu utilisant son propre numéro. La lettre décrit les preuves dont dispose le fournisseur, pas l'intention de l'appel.

Qui décide si j'obtiens un A ?

Le fournisseur qui signe l'appel décide, en appliquant un test qu'il définit lui-même.

Le même arrêté de la FCC indique que chaque fournisseur définit son propre test :

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.

Il n'existe donc aucune norme externe à satisfaire pour avoir droit à un A, ni aucun réglage qui en accorde un. Il y a un fournisseur qui décide s'il a établi deux choses à votre sujet, et qui assume le coût réputationnel d'une erreur. La version pratique de la question n'est pas "how do I get an A" mais "what has my provider established about me and about this number", et la réponse à la seconde moitié est généralement la vérification de l'identifiant de l'appelant. Caller IDs couvre l'enregistrement d'un numéro et la preuve de contrôle sur celui-ci, c'est-à-dire l'étape qui change ce qui peut être déclaré à votre sujet.

Les numéros qui vous ont été attribués par le fournisseur acheminant l'appel occupent une position différente de celle des numéros que vous possédez ailleurs et que vous présentez à travers lui. Le propre guide d'identifiant de l'appelant de Bird fait la même remarque du côté opposé. Il cite les cadres anti-usurpation parmi les raisons pour lesquelles un numéro obtenu ailleurs peut ne pas parvenir jusqu'à l'autre bout.

Un A signifie-t-il que mon appel aboutit ?

Non. Les normes traitent l'attestation comme un signal d'entrée pour la décision de quelqu'un d'autre.

L'arrêté de la FCC précise à quoi servent les niveaux :

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.

Deux conséquences en découlent. Le traçage est l'usage rétrospectif : la seconde déclaration SHAKEN est un identifiant d'origine, qui existe pour qu'un enquêteur puisse remonter un appel illégal jusqu'à son point d'entrée dans le réseau. L'identification de spam est l'usage en temps réel. C'est un système exploité par l'opérateur destinataire et son partenaire analytique. Il prend l'attestation comme un signal parmi d'autres. Un appel signé au niveau A peut tout de même être étiqueté, et why is my call labeled spam likely explique qui applique le libellé et quels recours existent.

Pourquoi l'attestation n'est-elle pas arrivée ?

Parce que l'en-tête ne survit pas à tous les acheminements.

L'arrêté de la FCC décrit le mécanisme clairement : "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." Un appel peut être correctement signé à l'origine et arriver à l'autre bout sans rien à vérifier, parce qu'un tronçon intermédiaire n'était pas SIP.

Le même arrêté note que la portée du fournisseur destinataire compte autant que la vôtre. Il ne peut agir sur les informations d'authentification que là où il peut les vérifier. Là où l'en-tête a disparu, il n'y a rien sur quoi agir. Un appel non signé à l'autre bout ne prouve donc pas que le fournisseur d'origine n'a pas signé, et le chemin entre les deux n'est pas quelque chose que l'une ou l'autre extrémité contrôle entièrement.

L'attestation est un signal fort quand elle survit et muet quand elle ne survit pas : considérez-la comme un élément parmi d'autres pour que votre appel aboutisse, et non comme le mécanisme qui le garantit.

En bref

  1. Le niveau décrit ce que le fournisseur sait, pas la qualité de l'appel.

    A, B et C indiquent dans quelle mesure le fournisseur signataire a pu se porter garant : l'appelant et le numéro, l'appelant seul, ou ni l'un ni l'autre parce que l'appel provenait d'ailleurs.

  2. Le seuil pour obtenir un A appartient au fournisseur.

    La FCC indique que la méthode pour décider si un appelant peut utiliser un numéro est propre à chaque fournisseur, et que la réputation de ce fournisseur dépend de la rigueur de cette méthode.

  3. Une attestation est un signal d'entrée pour un libellé, pas un verdict.

    Les normes traitent les niveaux comme des données pour le traçage et pour l'identification de spam que l'opérateur destinataire exécute. Rien dans l'attestation ne détermine ce qu'un téléphone affiche.

  4. La signature peut être perdue avant d'arriver à destination.

    Un appel acheminé par un réseau qui ne transporte pas SIP perd l'en-tête Identity, de sorte qu'un appel signé peut arriver à l'autre bout sans rien à vérifier.

Mettez-le en pratique.

Poursuivez avec la documentation, les guides et les exemples sur ce sujet.

Obtenir un guide d'implémentation

Développez sur le même réseau.

Une clé API de test est disponible immédiatement. La production est activée dès que vous ajoutez un moyen de paiement et vérifiez un expéditeur.

Votre prochaine idée. Prête à se connecter.