Czym jest STIR/SHAKEN i co oznaczają poziomy atestacji A, B i C?

Secure Telephone Identity Revisited (STIR) i Signature-based Handling of Asserted information using toKENs (SHAKEN) tworzą ramy uwierzytelniania tożsamości dzwoniącego, których poziomy A, B i C opisują, co zweryfikował dostawca podpisujący.

Identyfikator dzwoniącego nigdy nie był uwierzytelniany. Numer wyświetlany na dzwoniącym telefonie to wartość, którą strona inicjująca wpisała w pole. Przez większość historii sieci telefonicznej nic dalej w łańcuchu nie mogło sprawdzić, czy miała do tego prawo. STIR/SHAKEN to ramy, które dodają podpis do tego pola, żeby druga strona mogła to zrobić.

To, co dociera do dzwoniącego, nie jest kryptografią. To pojedyncza litera: A, B lub C.

Co właściwie STIR/SHAKEN umieszcza w połączeniu?

Umieszcza podpisany token w nagłówku Identity wiadomości SIP, która zestawia połączenie. Token mówi, kto poręcza za połączenie i w jakim zakresie.

Token to Personal Assertion Token (PASSporT), a rozszerzenie SHAKEN jest zdefiniowane w RFC 8588, dokumencie IETF Standards Track z maja 2019 roku. Dodaje dwa oświadczenia do bazowego tokena. Secure Telephone Identity (STI) to prace dodające uwierzytelnioną tożsamość dzwoniącego do SIP, a pierwsze oświadczenie to to, które zobaczysz:

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.

Samo oświadczenie to pojedynczy znak. RFC 8588, sekcja 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 deleguje definicje: "See [ATIS-1000074] for the definitions of these three levels of attestation". Ten dokument jest publikowany przez Alliance for Telecommunications Industry Solutions (ATIS), a nie przez IETF, i nie jest dostępny bezpłatnie. Normatywna granica między A a B znajduje się więc za paywallem, co częściowo tłumaczy, dlaczego te poziomy są tak powszechnie opisywane z drugiej ręki.

Co oznaczają A, B i C?

A mówi, że dostawca wie, kim jesteś, i że numer jest Twój. B mówi, że wie, kim jesteś, ale nie wie, czy numer jest Twój. C mówi, że nie wie ani jednego, ani drugiego, bo połączenie dotarło do niego skądinąd.

FCC, amerykański regulator telekomunikacyjny, przedstawia publiczny opis w swoim Second Report and Order on caller ID authentication, opublikowanym w 85 FR 73360 z 17 listopada 2020 roku. Każdy poziom rejestruje, co dostawca mógł potwierdzić na temat dzwoniącego i numeru. Słowa samego regulatora:

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

Przy C dostawca jest bramą, a nie źródłem połączenia, dlatego nie może poświadczyć żadnej z tych rzeczy.

Dlatego poziom nie jest oceną. Całkowicie uprawnione połączenie może mieć B, bo dzwoniący podaje numer, którego dostawca nie wydał i nie ma jak potwierdzić. Niechciane połączenie może mieć A, bo podmiot je wykonujący jest znanym klientem używającym własnego numeru. Litera opisuje dowody, jakimi dysponuje dostawca, a nie intencję połączenia.

Kto decyduje, czy otrzymam A?

Dostawca podpisujący połączenie decyduje, stosując test, który sam definiuje.

To samo postanowienie FCC stwierdza, że każdy dostawca definiuje własny 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.

Nie istnieje więc żaden zewnętrzny standard, który możesz spełnić, żeby mieć prawo do A, ani żadne ustawienie, które je przyznaje. Jest dostawca, który decyduje, czy ustalił dwie rzeczy na Twój temat, i ponosi koszty reputacyjne, jeśli się pomyli. Praktyczna wersja pytania to nie "how do I get an A", ale "what has my provider established about me and about this number", a odpowiedź na drugą część to zwykle weryfikacja identyfikatora dzwoniącego. Caller IDs opisuje rejestrowanie numeru i potwierdzanie kontroli nad nim, czyli krok, który zmienia to, co może być o Tobie poświadczone.

Numery wydane Ci przez dostawcę obsługującego połączenie mają inną pozycję niż numery, które posiadasz gdzie indziej i podajesz przez niego. Własny przewodnik Bird po identyfikatorze dzwoniącego mówi to samo z drugiej strony. Wymienia ramy anty-spoofingowe wśród powodów, dla których numer uzyskany gdzie indziej może nie dotrzeć na drugi koniec.

Czy A oznacza, że moje połączenie zostanie odebrane?

Nie. Standardy traktują atestację jako dane wejściowe do decyzji kogoś innego.

Postanowienie FCC mówi, do czego służą poziomy:

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.

Wynikają z tego dwie konsekwencje. Śledzenie zwrotne to zastosowanie retrospektywne: drugie oświadczenie SHAKEN to identyfikator inicjatora, który istnieje po to, by śledczy mógł prześledzić nielegalne połączenie wstecz do miejsca, w którym weszło do sieci. Identyfikacja spamu to zastosowanie bieżące. To system prowadzony przez operatora odbierającego i jego partnera analitycznego. Traktuje atestację jako jeden z wielu sygnałów. Podpisane połączenie z poziomem A wciąż może zostać oznaczone etykietą, a why is my call labeled spam likely opisuje, kto nakłada etykietę i jakie istnieją środki odwoławcze.

Dlaczego atestacja nie dotarła?

Ponieważ nagłówek nie przetrwa każdej trasy.

Postanowienie FCC opisuje mechanizm wprost: "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." Połączenie może zostać poprawnie podpisane u źródła i dotrzeć na drugi koniec bez niczego do zweryfikowania, bo odcinek po drodze nie obsługiwał SIP.

To samo postanowienie zauważa, że zasięg dostawcy odbierającego ma takie samo znaczenie jak Twój. Może on działać na podstawie informacji uwierzytelniających tylko tam, gdzie jest w stanie je zweryfikować. Tam, gdzie nagłówek zaginął, nie ma na czym działać. Niepodpisane połączenie po stronie odbiorcy nie jest więc dowodem, że dostawca inicjujący nie podpisał, a trasa między nimi nie jest czymś, co którakolwiek ze stron w pełni kontroluje.

Atestacja to silny sygnał, gdy przetrwa, i milczący, gdy nie przetrwa. Traktuj ją jako jeden z elementów wpływających na odebranie połączenia, a nie jako mechanizm, który to gwarantuje.

W skrócie

  1. Poziom opisuje wiedzę dostawcy, nie jakość połączenia.

    A, B i C rejestrują, ile dostawca podpisujący mógł poświadczyć: dzwoniącego i numer, samego dzwoniącego albo żadnego z nich, ponieważ połączenie przyszło skądinąd.

  2. Próg dla A ustala sam dostawca.

    FCC stwierdza, że metoda ustalania, czy dzwoniący może używać danego numeru, jest specyficzna dla każdego dostawcy, a reputacja dostawcy zależy od tego, jak rygorystycznie ją stosuje.

  3. Atestacja to dane wejściowe dla etykiety, nie werdykt.

    Standardy traktują poziomy jako materiał do śledzenia zwrotnego i do identyfikacji spamu, którą prowadzi operator odbierający. Nic w atestacji nie decyduje o tym, co wyświetla telefon.

  4. Podpis może zaginąć, zanim dotrze do celu.

    Połączenie trasowane przez sieć, która nie obsługuje SIP, traci nagłówek Identity, więc podpisane połączenie może dotrzeć na drugi koniec bez niczego do zweryfikowania.

Zastosuj w praktyce.

Przejdź do dokumentacji, przewodników i przykładów dotyczących tego tematu.

Uzyskaj brief wdrożeniowy

Buduj na tej samej sieci.

Testowy klucz API otrzymasz od razu. Dostęp produkcyjny odblokujesz po dodaniu metody płatności i zweryfikowaniu nadawcy.

Twój kolejny pomysł. Gotowy do połączenia.