Wat is STIR/SHAKEN, en wat zijn attestatieniveaus A, B en C?

Secure Telephone Identity Revisited (STIR) en Signature-based Handling of Asserted information using toKENs (SHAKEN) vormen een raamwerk voor belleridentiteit waarvan de niveaus A, B en C beschrijven wat de ondertekende provider heeft geverifieerd.

Caller ID is nooit geauthenticeerd geweest. Het nummer dat op een rinkelende telefoon verschijnt, is een waarde die de verzendende kant in een veld heeft gezet. Gedurende het grootste deel van de geschiedenis van het telefoonnetwerk kon niets verderop controleren of die kant daar enig recht op had. STIR/SHAKEN is het raamwerk dat een handtekening aan dat veld toevoegt zodat de ontvangende kant dat wél kan.

Wat de beller te zien krijgt is niet de cryptografie. Het is één letter: A, B of C.

Wat voegt STIR/SHAKEN precies toe aan een oproep?

Het plaatst een ondertekend token in de Identity-header van het SIP-bericht dat de oproep opzet. Het token zegt wie instaat voor de oproep en in welke mate.

Het token is een Personal Assertion Token (PASSporT), en de SHAKEN-extensie daarvan is gespecificeerd in RFC 8588, een IETF Standards Track-document uit mei 2019. Het voegt twee claims toe aan het basistoken. Secure Telephone Identity (STI) is het werk dat geauthenticeerde belleridentiteit toevoegt aan SIP, en de eerste claim is degene die je zult zien:

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.

De claim zelf is één teken. RFC 8588 sectie 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 delegeert de definities: "See [ATIS-1000074] for the definitions of these three levels of attestation". Dat document is gepubliceerd door de Alliance for Telecommunications Industry Solutions (ATIS), niet door de IETF, en is niet gratis in te zien. De normatieve grens tussen een A en een B zit daardoor achter een betaalmuur, wat deels verklaart waarom de niveaus zo consequent uit tweede hand worden beschreven.

Wat betekenen A, B en C?

A zegt dat de provider weet wie je bent en dat het nummer van jou is. B zegt dat hij weet wie je bent, maar niet dat het nummer van jou is. C zegt dat hij geen van beide weet, omdat de oproep ergens anders vandaan kwam.

De FCC, de Amerikaanse communicatietoezichthouder, geeft een openbare toelichting in zijn Second Report and Order on caller ID authentication, gepubliceerd in 85 FR 73360 op 17 november 2020. Elk niveau legt vast wat de provider over de beller en het nummer kon bevestigen. De eigen woorden van de toezichthouder:

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

Bij C is de provider een doorgeefluik in plaats van een bron, en daarom kan hij voor geen van beide instaan.

Daarom is het niveau geen beoordeling. Een volkomen legitieme oproep kan een B dragen, omdat de beller een nummer presenteert dat de provider niet heeft uitgegeven en niet kan bevestigen. Een hinderlijke oproep kan een A dragen, omdat de partij die belt een bekende klant is die zijn eigen nummer gebruikt. De letter beschrijft het bewijs van de provider, niet de intentie van de oproep.

Wie bepaalt of ik een A krijg?

De provider die de oproep ondertekent beslist, met een toets die hij zelf definieert.

Dezelfde FCC-order zegt dat elke provider zijn eigen toets bepaalt:

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.

Er is dus geen externe standaard waaraan je kunt voldoen om recht te hebben op een A, en geen instelling die er een toekent. Er is een provider die beslist of hij twee dingen over jou heeft vastgesteld, en die het reputatierisico draagt als dat verkeerd uitpakt. De praktische versie van de vraag is niet "how do I get an A" maar "what has my provider established about me and about this number", en het antwoord op het tweede deel is meestal caller-ID-verificatie. Caller IDs behandelt het registreren van een nummer en het aantonen van controle erover, de stap die verandert wat er over jou kan worden verklaard.

Nummers die je hebt gekregen van de provider die de oproep draagt, bevinden zich in een andere positie dan nummers die je elders bezit en via die provider presenteert. De eigen caller-ID-gids van Bird maakt hetzelfde punt vanuit de andere kant. Hij noemt anti-spoofing-raamwerken als een van de redenen waarom een nummer dat je ergens anders hebt aangeschaft mogelijk niet doorkomt aan de andere kant.

Betekent een A dat mijn oproep doorkomt?

Nee. De standaarden behandelen attestatie als een invoer voor de beslissing van iemand anders.

De FCC-order zegt waarvoor de niveaus bedoeld zijn:

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.

Daaruit volgen twee gevolgen. Traceback is het retrospectieve gebruik: de tweede SHAKEN-claim is een origination identifier, die bestaat zodat een onderzoeker een illegale oproep kan terugvolgen naar het punt waar hij het netwerk binnenkwam. Spamidentificatie is het realtime gebruik. Het is een systeem dat wordt beheerd door de ontvangende provider en zijn analysepartner. Het neemt attestatie als één signaal van meerdere. Een ondertekende oproep met A-niveau kan alsnog een label krijgen, en why is my call labeled spam likely behandelt wie het label toepast en welke mogelijkheden er zijn om het aan te vechten.

Waarom is de attestatie niet aangekomen?

Omdat de header niet elke route overleeft.

De FCC-order beschrijft het mechanisme in duidelijke taal: "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." Een oproep kan correct ondertekend zijn bij de bron en aan de andere kant aankomen zonder iets om te verifiëren, omdat een tussenliggend traject geen SIP was.

Dezelfde order merkt op dat het eigen bereik van de ontvangende provider net zo belangrijk is als het jouwe. Hij kan alleen handelen op authenticatie-informatie waar hij die kan verifiëren. Waar de header verdwenen is, valt er niets te controleren. Een niet-ondertekende oproep aan de andere kant is dus geen bewijs dat de verzendende provider niet heeft ondertekend, en het pad daartussen is niet iets dat een van beide kanten volledig beheerst.

Attestatie is een sterk signaal wanneer het de oproep overleeft en stil wanneer dat niet het geval is. Beschouw het daarom als één onderdeel van beantwoord worden, niet als het mechanisme dat dat levert.

Kort gezegd

  1. Het niveau beschrijft de kennis van de provider, niet de kwaliteit van de oproep.

    A, B en C leggen vast hoeveel de ondertekende provider kon bevestigen: de beller én het nummer, alleen de beller, of geen van beide omdat de oproep ergens anders vandaan kwam.

  2. De lat voor een A is die van de provider zelf.

    De FCC zegt dat de methode om te bepalen of een beller een nummer mag gebruiken per provider verschilt, en koppelt de reputatie van die provider aan hoe streng hij daarin is.

  3. Een attestatie is een invoer voor een label, geen oordeel.

    De standaarden behandelen de niveaus als materiaal voor traceback en voor de spamidentificatie die de ontvangende provider uitvoert. Niets ervan bepaalt wat een toestel toont.

  4. De handtekening kan verloren gaan voordat hij aankomt.

    Een oproep die wordt gerouteerd over een netwerk dat geen SIP doorgeeft, verliest de Identity-header, waardoor een ondertekende oproep de andere kant kan bereiken zonder iets om te verifiëren.

Breng het in de praktijk.

Ga verder met de documentatie, handleidingen en voorbeelden voor dit onderwerp.

Ontvang een implementatieoverzicht

Bouw op hetzelfde netwerk.

Een test-API-key is direct beschikbaar. Productietoegang wordt ontgrendeld zodra u een betaalmethode toevoegt en een afzender verifieert.

Jouw volgende idee. Klaar om te verbinden.