В США набирает обороты технология аутентификации абонентов — протокол SHAKEN/STIR. Поговорим о принципах его работы и потенциальных сложностях внедрения.


/ Flickr / Mark Fischer / CC BY-SA

Проблема со звонками


Нежелательные робо-звонки — это самая распространенная причина жалоб потребителей в Федеральную торговую комиссию США. В 2016 году организация зафиксировала пять миллионов обращений, через год эта цифра перевалила за семь миллионов.

Такие спам-звонки отнимают у людей не только время. Сервисы автоматического обзвона используются для вымогательства денег. По данным YouMail, в сентябре прошлого года 40% из четырех миллиардов робо-звонков были совершены мошенниками. За лето 2018 года жители Нью-Йорка потеряли около трех миллионов долларов на переводах преступникам, которые звонили им от лица властей и вымогали деньги.

На проблему обратили внимание в Федеральной комиссии по связи США (FCC). Представители организации выступили с заявлением, в котором потребовали от телекоммуникационных компаний внедрить решение для борьбы с телефонным спамом. Этим решением стал протокол SHAKEN/STIR. В марте совместные его тестирование провели AT&T и Comcast.

Как устроен протокол SHAKEN/STIR


Операторы связи будут работать с цифровыми сертификатами (они строятся на базе криптографии с открытым ключом), которые позволят верифицировать звонящих.

Процедура верификации будет происходить следующим образом. Сперва оператор человека, совершающего звонок, получает запрос SIP INVITE для установки соединения. Сервис аутентификации провайдера проверяет информацию о вызове — местоположение, организацию, данные об устройстве звонящего. По результатам проверки звонку присваивается одна из трех категорий: A — известна вся информация о звонящем, B — известна организация и местоположение, и C — известно лишь географическое положение абонента.

После этого оператор добавляет в заголовок запроса INVITE сообщение с временной отметкой, категорией звонка и ссылкой на электронный сертификат. Вот пример такого сообщения из GitHub-репозитория одного из американских телекомов:

{
	"alg": "ES256",
        "ppt": "shaken",
        "typ": "passport",
        "x5u": "https://cert-auth.poc.sys.net/example.cer"
}

{
        "attest": "A",
        "dest": {
          "tn": [
            "1215345567"
          ]
        },
        "iat": 1504282247,
        "orig": {
          "tn": "12154567894"
        },
        "origid": "1db966a6-8f30-11e7-bc77-fa163e70349d"
}

Далее, запрос попадает к провайдеру вызываемого абонента. Второй оператор расшифровывает сообщение с помощью публичного ключа, сравнивает содержимое с SIP INVITE и проверяет подлинность сертификата. Только после этого устанавливается соединение между абонентами, и «принимающая» сторона получает оповещение о том, кто ему звонит.

Весь процесс проверки можно изобразить схемой:



По словам экспертов, верификация звонящего займёт не больше 100 миллисекунд.

Мнения


Как отметили в ассоциации USTelecom, SHAKEN/STIR даст людям больше контроля за звонками, которые они получают — им станет легче решить, стоит ли поднимать трубку.

Читайте в нашем блоге:


Но в индустрии есть мнение, что протокол не станет «серебряной пулей». Эксперты говорят, что мошенники просто воспользуются обходными путями. Спамеры смогут зарегистрировать в сети оператора «подставную» АТС на имя какой-либо организации и проводить все звонки через неё. В случае блокировки АТС можно будет попросту перерегистрировать.

По словам представителя одного из телекомов, простой верификации абонента с помощью сертификатов недостаточно. Чтобы остановить мошенников и спамеров, необходимо разрешить провайдерам автоматически блокировать такие звонки. Но для этого Комиссии по связи придётся разработать новый свод правил, который позволит регулировать этот процесс. И этим вопросом в FCC могут заняться уже в ближайшее время.

С начала года конгрессмены рассматривают новый законопроект, который обяжет Комиссию разработать механизмы защиты граждан от робо-звонков и проследить за реализацией стандарта SHAKEN/STIR.


/ Flickr / Jack Sem / CC BY

Стоит отметить, что SHAKEN/STIR реализовали в T-Mobile — для некоторых моделей смартфонов и планируют расширить ряд поддерживаемых устройств — и Verizon — его клиенты оператора могут скачать специальное приложение, которое будет предупреждать о звонках с подозрительных номеров. Другие американские операторы еще только тестируют технологию. Ожидается, что они закончат испытания до конца 2019 года.

Что еще почитать в нашем блоге на Хабре:

Комментарии (18)


  1. willyd
    31.03.2019 19:57

    Но если честно, это какой-то бред, хорошо еще, что не на блокчейне. Хотя, кстати, для распределенного хранения жалоб может и хорошо было бы его использовать.


  1. halted
    31.03.2019 21:41

    А что мешает добавить подобие телетекста при установке соединения?
    В идеале еще и функцию «пожаловаться».
    Раздается звонок с незнакомого номера, а там высвечивается минимальная информация о звонящем, Яндекс уже подобное пытался внедрить для борьбы с телефонным спамом.


    1. willyd
      31.03.2019 23:25
      +1

      Что мешает? Время обработки сигнализации, возможно, что формат сообщения сигнализации в радиочасти не подойдет для передачи такой информации.
      Во-первых, нужно откуда-то получить информацию о номере. То есть, сделать запрос к распределенной БД достаточно большого размера. Это дополнительные миллисекунды на установление соединения и занятие машинного времени.
      Во-вторых, вам нужно запихнуть эту информацию в стандартизированное сообщение, размеры и предназначение полей в котором уже расписаны, там конечно может быть какое-то зарезервированное поле, и возможно его размера хватит, чтобы эту информацию передать, но вам еще нужно будет все это внедрить в оборудование: ядро, радио, терминалы. То есть, нужно расширение спецификаций и рекомендаций LTE, UMTS и т.д.
      В-третьих, для функции «пожаловаться» тоже нужно передавать какой-нибудь токен со звонком, который будет храниться у оператора и на абонентском оборудовании и его можно будет использовать для отправки жалобы как идентификатор звонка.
      В SIP вы можете передать такую информацию в нагрузке, или хедером. Но он используется в фиксе и на транках.
      Короче передать пару битов между операторами проще. Ну и статья немного туманно это описывает. Вся проверка и обмен сообщениями происходят на операторском уровне, у абонентов ничто не изменится.


      1. arheops
        01.04.2019 07:28

        Перед передачей header вам надо подписать ключем, после — проверить. Это значительные CPU нагрузки для свичей.
        Да и сам SIP INVITE уже настолько перегружен, что не влазит в один udp пакет(1500байт).


  1. arheops
    01.04.2019 07:22

    В данный момент это вроде бы не поддерживается ни одним из OSS свичей.
    Да и вообще похоже никем не поддерживается.

    Потому реализация в течении года — очень сильно сомнительна.

    К тому же данная процедура увеличивает накладные расходы на соединение где-то раз в 5-10(надо точнее считать, но сейчас там вообще мало CPU), что предполагает увеличения установленной мощности у телекомов в разы. Както маловероятно.


    1. pvsur
      01.04.2019 09:05

      Считаю, что проверку А-номера надо делать на клиентском оборудовании. Для смартфонов теоретически это вообще не проблема должна быть, если встроена в приложение-телефон. А то ещё от интернет-провайдеров тоже можно потребовать слать трафик только с верифицированных сайтов…


  1. Gamliel_Fishkin
    01.04.2019 12:12

    SIP — это, конечно, хорошо, но разве во всех городках «одноэтажной Америки» современные цифровые телефонные станции?


    1. arkamax
      01.04.2019 20:13
      +1

      Из множества моих знакомых в США нет ни одного с домашним наземным номером — только мобильные (а они уже давно цифровые). Наземная связь доступна физлицам, но как минимум в крупных городах осталась в основном у компаний. Основной вред от робозвонков, как мне кажется, как раз приходится на мобильные номера физлиц в городах крупнее затерянной в горах деревни — именно им пытаются впарить медстраховки, кредитование, автоуслуги, да хоть черта лысого в свежей обертке. Когда люди покупают дом (при этом попадая в реестр по недвижимости) или машину (данные по страховкам тоже как-то просачиваются наружу), им иногда поступает до 7 звонков в день, с 8 утра и до 8 вечера. Спасают блокираторы по списку контактов, но в ситуации, когда тебе должен позвонить кто-то, кто не в списке, блокиратор приходится выключать — и иногда это напоминает падение в муравейник.


      1. acmnu
        02.04.2019 10:48

        Но у мобильных абонентов самртфоны, а там уже и Гугл и Эпл внедрили свои технологии отсечки. Я лично давно не ощущаю проблем со звонками, во-первых, потому что не отвечаю на городские намера, а во-вторых, через раз, мне Гугл сообщает, что звонок подозрительный и лучше не брать.


        1. Gamliel_Fishkin
          02.04.2019 11:13

          И приложения других разработчиков (например, Numbuster).


          1. arkamax
            02.04.2019 17:31

            У меня включен подобный блокиратор, но они в основном работают через блокирование номеров, не найденных в адресной книге. Есть какие-то публичные списки «плохих» номеров, но спамеры могут спуфить номера буквально на ходу, их просто не успевают добавлять. Работа по адресной книге чревата пропуском желательных звонков с незаписанных номеров (см. выше).


            1. Gamliel_Fishkin
              03.04.2019 07:03

              Нет, эта программа работает иначе. Можно просмотреть информацию по любому номеру, проголосовать (двумя способами), оставить отзыв и предполагаемое имя/название абонента, а также увидеть цифры голосования об этом номере на данный момент и отзывы других пользователей (если ряд пользователей ввели одинаковое предполагамое имя, то можно увидеть и его).
                
              Я не аффилирован с этой программой, «интерес» у меня только один: база номеров составляется исключительно голосованием пользователей, а потому, чем больше пользователей, тем полнее и точнее база.


              1. arkamax
                03.04.2019 07:35

                Интересно… т.е. предполагается, что спамеры выбирают один и тот же исходящий номер для более чем одного звонка? Я почему-то думал, что там просто выбирается случайный номер для каждого исходящего, таким образом голосование за «карму» номера становится бесполезным.


                1. Gamliel_Fishkin
                  03.04.2019 08:03
                  +1

                  Вероятно, не всегда. Обратите внимание на числа на первом из трёх скриншотов.


                1. willyd
                  03.04.2019 12:57

                  После каждого звонка номер менять — очень дорого выйдет.
                  Просто у них большой пул номеров.


        1. arkamax
          02.04.2019 17:33

          У вас оператор Google Voice? У меня нет, и таких сообщений я не вижу :( По городским номерам — в США одни и те же коды территории (area codes) могут быть прикручены как к мобильным, так и наземным номерам. Кроме того с наземных номеров могут звонить вполне желательные абоненты (из компаний в основном).


          1. acmnu
            03.04.2019 08:50

            Нет, оператор не Гугл, я вообще в РФ. Это просто фишка в последнем, ванильном Андройд. Вроде начиная с 8ки появилось. Работает независимо от оператора. Алгоритм простой: когда тебе позвонили с номера не из адресной книги, он после звонка спрашивает был ли это спам и надо ли его блокировать. Если скажешь, что это спам, то он эту инфу отправит в облако и после (я так думаю) нескольких таких ответов от других людей начнет всем остальным уже во время звонка показывать предупреждение, что это походу спам. Весьма удобно.


            1. arkamax
              03.04.2019 18:28

              Интересно, на 9-ке я этого не видел. Повнимательнее присмотрюсь.