Всем здравствовать! Давайте сразу же начнём разбираться с проблемой — без всякой «воды», «подводок» и прочих предысторий. Просто потому, что это никому не нужно! Ведь вам наверняка хочется знать ответ на вопрос, а не читать рассуждения автора на тему «многие пользователи iPhone сталкиваются с проблемой идентификации входящих вызовов — на их устройстве отображается надпись «Анонимный абонент», «Нет ID абонента», «Неизвестный» звонок и так далее и тому подобное».

Хотел начать быстро, но всё равно не получилось. Ладно, сейчас исправлюсь!:)

Итак, давайте узнаем, что из себя представляет «Анонимный абонент» на iPhone.

Раз, два, три. Поехали!

Что значит неизвестный вызов — «Анонимный абонент»?

Это означает, что ваш iPhone по каким-то причинам (об этом ниже) не может распознать тот номер телефона, который пытается вам позвонить. Хочет, но не может.

Звонок есть — цифр нет — получите «Анонимный абонент».

Ну, или «Неизвестный» вызов. Или «Нет ID абонента». Или «Аноним».

Что, в принципе, одно и тоже.

Кто звонит и откуда?

Да кто угодно!

И откуда угодно:)

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

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

Как же так? Давайте разбираться…

Почему на iPhone появляются неизвестные вызовы «Анонимный абонент»?

У данного явления есть несколько причин:

  1. Звонящий скрыл свой номер. Скорей всего, человек воспользовался услугой АнтиАОН (антиопределитель номера). Да, она стоит денег. Но если нужно быть инкогнито, то вариантов нет — придется заплатить.
  2. На вашем iPhone существуют какие-то проблемы с определителем номера. Причём, данные неисправности могут быть самого разного характера. Все варианты расписывать не буду, так как у меня уже есть отдельная статья на эту тему — .
  3. Какой-то сбой в iOS. Слабо вериться, но… всё может быть! Поэтому, попробуйте (на всякий случай) обновить настройки оператора на iPhone и сделать сброс сетевых настроек (Настройки — Основные — Сброс — Сбросить настройки сети).

Иных вариантов почему iPhone показывает «Анонимный абонент» (Неизвестный вызов, Нет ID абонента), наверное, нет.

«Анонимный абонент» — как узнать кто звонил?

Достаточно сложная история, потому что в данном случае iPhone не знает номер телефона звонящего. Да-да-да. Не скрывает его от вас, а именно не знает!

Что делать?

Первый способ:

Заказать детализацию звонков у вашего оператора сотовой связи.

Причём, для этого не нужно никуда ходить — всё можно сделать через личный кабинет. Ну а далее начинаем играть в сыщиков:

  1. Изучаем iPhone на предмет того, когда был совершен звонок от «Анонима».
  2. Ищем в детализации звонков подходящее время.
  3. Сравниваем.

Победа!

Второй способ:

Воспользоваться услугой «Супер определитель номера».

Некоторые операторы предоставляют такую опцию. Да, в большинстве случаев это не бесплатно. Но если очень хочется узнать кто продолжает вам названивать, то… почему бы и нет?

Как заблокировать неизвестные номера и «»Анонимного абонента» на iPhone?

Всё очень просто.

  1. Открываем «Настройки — Телефон».
  2. Находим опцию «Заглушение неизвестных».
  3. Активируем быстро и решительно.

Что произойдёт:

  • Звонки прекратятся, но на вашем iPhone будут появляться уведомления о пропущенных вызовах — что удобно, ведь вы всегда сможете отследить «настырность» абонента.
  • Человек на том конце провода услышит сигнал «занято».
  • Вместе с «Анонимами» заблокируются другие номера, которые отсутствуют в вашей телефонной книжке.

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

Звонки с анонимных номеров всегда вызывают закономерный вопрос – кто и зачем звонил и как это выяснить. Ответить на них, к сожалению, получается не всегда.

Услугу «Антиопределитель номера» и аналогичные ей, используют в большинстве случаев хулиганы и мошенники, не меньшим спросом пользуется она и у коллекторов, рекламных агентов. Известны случаи, когда с анонимных номеров поступали звонки в милицию с сообщением о заминированных объектах – парках, метро, вокзалах.

К сожалению, иногда даже у полиции не удается найти шутника и наказать его в полной мере.
Сегодня скрыть свой номер можно несколькими способами.

Первый и самый простой – заказать услугу «Анти-АОН» и подобные ей. Практически все операторы мобильной связи предоставляют ее за отдельную плату, причем довольно высокую.

Второй вариант – использование специальных сервисов, помогающих скрыть свой номер телефона. Зачастую их предоставляют операторы IP-телефонии. Услуга платная и также достаточно дорогая. Кроме того, необходима установка специального приложения для звонков через интернет-линию.

Выяснить, кто звонил со скрытого номера тоже не всегда предоставляется возможным. Но есть несколько вариантов, которые все же стоит попробовать.

Как вариант, можно заказать у оператора услугу, которая позволяет видеть скрытые номера. Но не все телефонные компании ее предоставляют, а у некоторых операторов она распространяется на номера не всех провайдеров, а лишь одного-двух.

Второй вариант – заказать детализацию звонков, позвонив в службу поддержки. Но и тут есть свои минусы. Во-первых, это может занять некоторое время, а во-вторых, некоторые операторы могут раскрывать скрытые номера только с разрешения МВД. В третьих, если использовалась специальная IP-линия, задача усложнится в разы, и узнать точный номер не удастся.

Более того, некоторые сервисы и программы позволяют не только скрывать номер, но и подменять его на чужой, так что нет гарантии, что в итоге вы получите именно номер звонившего вам лица.

Избавиться от назойливых звонков тоже не всегда получается. Отправить номер в черный список не получиться, так как он не определяется, а обращения к оператору не всегда помогают. В частности, если звонки поступают с разных номеров.

Уже не единожды поднимался вопрос о запрете так называемых скрытых номеров и необходимости обязать операторов перестать предоставлять услугу. Будет ли реализовано это предложение и насколько успешно – неизвестно.

Порой, принимая звонки, на дисплее мобильного устройства высвечиваются надписи «Неизвестный номер», «Номер скрыт». Телефон не демонстрируется, потому что некоторые абоненты намеренного скрывают его. И это сделать могут практически все пользователи сотовой связи, вне зависимости от модели устройства или мобильного оператора.

Как скрыть номер на телефоне

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

На Android

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

Чтобы посмотреть, какая версия Android установлена на смартфоне, необходимо зайти в настройки телефона. Там следует выбрать раздел «Система». В открывшейся вкладке будет показана версия ОС. Найти её можно под опцией «Обновление системы».

Этап Настройка для обладателей ОС Android не обновлённой до версии 6.0 Анонимные звонки на мобильных устройствах с версией операционной системы выше 6.0, порядок действий немного изменён
1 Перейти в настройки мобильного устройства. Открыть меню вызова мобильных телефонов.
2 Выбрать вкладку «Настройки вызовов». Далее необходимо перейти в настройки. Сделать это можно, нажав на значок, похожий на три точки, построенные в одну линию, и тапнув на вкладку «Настройки».
3 Далее необходимо открыть «Дополнительные свойства». Однако название меню будет меняться в зависимости от версии операционной системы. Также возможен вариант «Ещё». Далее действовать по тому же принципу. То есть перейти в «Настройки вызовов» и выбрать «Дополнительные настройки».
4 Следует выбрать пункт «Скрывать номер». Подключить функцию «Антиопределитель».
5 Последний этап — перезагрузка смартфона. Перезагрузить систему телефона.

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

На iPhone

Функция совершения анонимных звонков на операционной системе IOS практически идентичен этому же действию на Android. Так как на смартфонах компании Apple также встроен антиопределитель телефона.

Настроить данную функцию можно следующим образом:

  1. Сначала необходимо зайти в меню «Настройки».
  2. Найти вкладку «Телефон» и выбрать её.
  3. Открыть меню под названием «Показывать номер».
  4. Отключить данную функцию на телефоне с помощью ползунка.
  5. Перезагрузить мобильное устройство.

Если после перезагрузки смартфона функция скрытия так и не заработала, то есть попробовать подключить данную услугу у оператора сотовой связи.

Как сделать номер скрытым у разных операторов

Способы того, как совершить анонимные звонки, будет зависеть от того, клиентом какого мобильного оператора является пользователь. В некоторых случаях данная услуга будет бесплатной, в других — абоненту придётся заплатить, за то, чтобы скрыть свой телефон.

Билайн — услуга «Антиопределитель номера»

У телекоммуникационной компании Билайн существует

Подключить данную функцию можно следующими способами:

  • при помощи USSD-команды —*110*071#;
  • на звонок оператору Билайн по телефону горячей линии —06740971;
  • в личном кабинете пользователя на официальном сайте или мобильном приложении.

Стоимость подключенной функции анонимных звонков — 3 рубля 77 копеек в сутки.

Однако наиболее интересным является то, что помимо «Антиопределитель номера» для абонентов сотовой связи Билайн доступна функция «Супер Определитель номера». Данная услуга работает по обратному принципу и показывает пользователю все скрытые телефоны. Поэтому если у абонента Билайн подключен «Супер Определитель номера», то даже включённый на тариф «Антиопределитель номера» не поможет звонящему пользователю совершать анонимные голосовые вызовы.

МегаФоне — услуга «АнтиАОН»

У мобильного оператора Мегафон также присутствует функция совершения анонимных звонков телефона «АнтиАОН».

Выполнить подключение можно стандартными способами:

  • набором быстрой USSD-команды;
  • позвонив на специальный телефон для подключения;
  • воспользовавшись официальным сайтом Мегафон;
  • зайдя в личный кабинет в мобильном приложении сотового оператора.

У оператора Мегафон есть сразу несколько USSD-команд для подключения этой услуги. Первый — *105#, а второй *221#.

Также существует несколько номеров для возможности совершения анонимных голосовых вызовов, если пользователю удобнее подключить услугу через голосовой вызов:

  1. 0500 — стандартный телефон службы поддержки.
  2. 88005500500 —в случае нахождения абонента в роуминге.

К тому же помимо постоянного скрытия номера телефона, пользователь Мегафон может подключить разовую вариацию функции «АнтиАОН». В этом случае услуга будет действовать только во время одного совершения звонка.

За каждый вызов с функцией «АнтиАОН» с баланса лицевого счёта абонента будет сниматься 7 рублей.

МТС — услуга «АнтиАОН»

Телекоммуникационная компания МТС подобно Мегафон позволяет подключить функцию «АнтиАОН».

Подключить услугу можно с помощью USSD-кода — *111*46#.

Помимо этого присутствует возможность включения услуги скрытия номера с помощью официального сайта МТС. Для этого необходимо выполнить следующие действия:

  1. Зайти в личный кабинет пользователя на официальном сайте телекоммуникационной компании МТС.
  2. Перейти в раздел «Интернет-помощник».
  3. Выбрать меню «Тарифы и услуги».
  4. В нём найти подпункт «Управление услугами».
  5. В открывшемся окне необходимо подключить услугу «АнтиАОН».

Стоимость услуги «АнтиАОН» 122 рубля в месяц.

Теле2 — «Антиопределитель номера»

Наиболее удобный способ включить «Антиопределитель номера» на тарифном плане мобильного оператора Теле2 — воспользоваться специальным USSD –кодом. Для этого необходимо совершить вызов по следующему короткому номеру — *117*1#.

Отключается функция тоже с помощью USSD-команды — *117*0#.

Скайлинк

Мобильный оператор «Скайлинк» даже предоставляет возможность скрытия номера своим пользователям. Подключить данную услугу можно в личном кабинете пользователя на официальном сайте телекоммуникационной компании.

Также существует возможность одиночного скрытия номера. Для этого после набранного телефона абонент должен дописать «*52*».

Приложения для скрытия номера

Помимо способов скрытия номера, которые связаны с операционной системой смартфона и оператором сотовой связи, существуют также специальные мобильные приложения, которые помогают совершать анонимные звонки.

Try-Out

Наиболее популярная программа для скрытия номера телефона на операционную систему Android. Также её плюсом можно посчитать то, что приложение бесплатное.

После того как клиент скачал программу, необходимо её запустить. Далее — принять все запрашиваемые программным обеспечением разрешения. Если они не будут получены, то функция скрытия работать не будет.

Запустив «Try-Out», в системные настройки пользователя добавляется возможность анонимных звонков. Абонент должен свернуть приложение и совершить вызов.

Скрытие номера телефона будет действовать исключительно в свёрнутом режиме программного обеспечения. При выключенном состоянии «Try-Out», совершение анонимных звонков невозможно.

Приложение «Скрыть номер телефона»

Ещё одна программа для скрытия номера телефона. Скачав данное приложение, пользователь должен разрешить доступ к контактам в телефоне. Выбрав нужный номер, абонент совершает звонок прямо через интерфейс приложения.

Приложение «Hide Caller ID»

Также крайне популярное приложение для совершения анонимных звонков.

Работает данная программа по тому же принципу, что и вышеописанные. Пользователю также придётся предоставить доступ к системным файлам своего мобильного устройства.

«Hide Caller ID» — абсолютно бесплатное программное обеспечение, которое можно скачать в маркете приложений.

Услуга скрытия номера есть у каждого мобильного оператора. Кто-то пользуется этой функцией постоянно, особенно если анонимностью связана с работой. А есть такие, кто даже ни разу ею и не пользовался, просто необходимости не было. Тем не менее, каждому пользователю мобильной сети не помешает иметь небольшую шпаргалочку способов сокрытия своего телефона при звонках другим абонентам.

АнтиАОН

Противоопределитель есть у каждого оператора и закреплен под определенной командой. Можно вводить определенные цифры перед звонком и тогда входящий вызов будет зашифрован, а все остальные по-прежнему определяться. А есть возможность подключить такой тариф на всех вызываемых абонентов.

Второй вариант удобен для людей, которым не нужно, чтобы на втором конце провода определяли телефон. Чаще всего это связано с работой, когда донести информацию нужно, а чтобы потом обратно посыпался шквал звонков, нет.

В Vodafone для разового скрытия следует набрать #31#, а потом комбинацию с восьмёрки. Для постоянного скрытия будет код звёздочка 111 звёздочка 46 решётка. Стоит услуга 3 руб. 95 коп.

У Билайна нет разового подключения, но на месяц услугу активировать можно при помощи кода звёздочка 110 звёздочка 071 решётка. В день это услуга стоит 3,77 руб. Подключение бесплатно. Остальные разговоры и SMS оплачиваются согласно тарифному плану.

В Мегафон скрывается разово номер после набора: решётка 31 решётка. За это надо будет заплатить 20 руб.. Если есть необходимость постоянно скрывать свой телефон, нужно будет ввести команду: звёздочка 221 решётка. Услуга подключается автоматически, об этом пользователь получит SMS оповещение. Стоимость в день 5 руб.

Факт.

В Tele2 нельзя воспользоваться разовой услугой АнтиАОН, нужно только оформить постоянную подписку. Стоит 3 руб. в день, подключение бесплатно. Для этого надо ввести комбинацию звёздочка 117 звёздочка.

Определение

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

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

Возвращается спокойствие несколькими способами:

  1. Обратиться к оператору мобильной связи. Там предложат написать официальное заявление и после этого будут заниматься поиском нарушителя.
  2. Если поступают угрозы, следует обратиться в полицию. Там процедура будет такой же (заявление – поиск).
  3. А можно выяснить даже местоположение нарушителей легально и самостоятельно. Для этого есть специальные программы и многие из них совершенно бесплатны. Например, Момбас. Достаточно ввести свой телефон и ещё некоторые данные, чтобы программа «была уверена» что это именно владелец номера, и скрытый номер будет выявлен. После можно воспользоваться программой phone-location или другими подобными. Ввести полученный номер нарушителя, выяснить его местонахождение. Перезвонить ему и сообщить об обнаружении. Это показывает потрясающий эффект.

Любые атаки мгновенно прекращаются и это без полиции.

Скрывайте свой номер, если в этом есть необходимость. В крайнем случае, за помощью можно обратиться, позвонив на горячую линию своего оператора.

Сегодня я хотел бы рассказать о результатах моих семилетних исследований в области передачи голоса через сеть Tor. Общепринятым является мнение, что голосовая связь через Tor почти невозможна:

  • существующие транспортные протоколы для телефонии работают поверх UDP, а Tor обеспечивает лишь TCP соединения;
  • Tor маршрутизирует пакеты через множество узлов, шифруя данные, что является причиной значительной латентности и делает дуплексную телефонную связь невозможной или крайне некомфортной.

Но так ли это на самом деле?
В далеком 2012 году я впервые задумался о принципиальной возможности реализации анонимной телефонной связи с использованием анонимизаторов Tor и i2p. Реакция сообщества была однозначно отрицательной, включая самого Филла Циммермана, автора знаменитого PGPFone, на базе которого работал первый Торфон. Но я был упрям, проверял новые идеи, тестировал и улучшал найденные трюки, в основном направленные на снижение латентности до приемлемого уровня. В данном направлении также работали и другие исследователи, и их публикации давали мне новые идеи и почву для дальнейшей работы. Положительными моментами было значительное ускорение глобальной сети Интернет и сети Tor в частности, а также постепенное отвыкание пользователей от PSTN в пользу GSM связи с присущей ей значительной латентностью. Наконец, подходящая концепция была выработана, и настал черед реализации задуманного.
В 2013 году Roger Dingledine в личной переписке жестко раскритиковал проект за отсутствие кроссплатформенности (на тот момент в качестве базы использовался PGPFone на Windows-платформе) и за не-модулярную архитектуру. На фоне этой критики была заложена почва для современной реализации Торфона с учетом множества проб и ошибок, а также современных тенденций в криптографии.
Сегодня Торфон состоит из четырех программных модулей, взаимодействующих друг с другом с помощью 36-байтных пакетов со строго фиксированными полями. Это транспортный модуль, обеспечивающий работу с сокетами, модуль криптографии и звука, модуль хранилища (производит операции с приватным ключом и содержит зашифрованную адресную книгу) и модуль пользовательского интерфейса. Они могут быть запущены на одной аппаратной платформе (в одном или в различных потоках) или на нескольких изолированных платформах, использующих в качестве интерфейса стандартный последовательный протокол (аппаратный UART, USB CSD или Bluetooth SPP). Данная архитектура позволяет разработчику определять компромисс между защищенностью и удобством реализации. Доступны варианты от автономного Windows-приложения до аппаратной реализации в виде одноплатника с Linux для Tor и транспортного модуля в связке с изолированным Cortex M4 микроконтроллером, на котором выполняется шифрование, полная обработка и проигрывание аудио, хранение приватного ключа и контактов, реализован графический интерфейс пользователя.

Исходный код модулей написан на C и является полностью кроссплатформенным, за исключением низкоуровневой работы с аудио, вынесенной в отдельные файлы, специфичные для Windows (Wave), Linux (Alsa), Android (OpenSL) и bare metal (ADC/DAC+DMA для микроконтроллера).
При выборе аудиокодека и очереди учитывались особенности сети Tor: периодические частые спонтанные задержки, некоторое снижение латентности для пакетов в определенном диапазоне длины, возможность в процессе звонка создавать дублирующие цепочки с различными путями маршрутизации и т.п. В промежуточный проект OnionPhone были включены 17 самых распространенных низкобитрейтных аудиокодеков. После тщательного тестирования был выбран наиболее подходящий вариант: AMR с минимальным для него битрейтом 4750 bps и с быстродействующим VAD. Таким образом, с учетом естественных пауз между словами и дуплексной природы общения, итоговый средний битрейт в каждом направлении составляет около 2000-3000 bps., что дает возможность использовать GPRS даже в условиях плохого GSM — покрытия и массивных потерь GSM пакетов.
В качестве подавителя шума применен эффективный алгоритм NPP7, разработанный для борьбы с интенсивными аудиопомехами и входящий в составе кодека MELPe – действующего стандарта военной связи STANAG-4591. Алгоритм эхоподавления был выбран из проекта WebRTC как наиболее эффективный из доступных открытых решений.
Общий функционал Торфона разрабатывался с учетом возможных вариантов использования и существующих моделей угроз, уже применявшихся против популярных мессенджеров.
Основные режимы работы:

  1. Анонимные голосовые звонки на скрытый сервис Tor (по onion-адресу). Эти звонки максимально защищены, но ощущается некоторая задержка, что может вызывать определенный дискомфорт у непривыкших пользователей.
  2. Переключение на прямое UDP соединение (с проходом NAT) после установки Tor-соединения. Сессионные ключи шифрования, согласованные внутри Tor, обеспечивают надежную конфиденциальность, но анонимность теряется (пользователи раскрывают свой IP адрес друг другу).
  3. Прямые звонки по указанному IP-адресу (или доменному имени) и номеру TCP порта. Для приема таких звонков требуется наличие «белого» (маршрутизируемого) IP адреса на устройстве (многие сотовые операторы предлагают это в качестве платной услуги) или «проброс» использующегося TCP-порта на локальном роутере (например, в домашней WiFi сети). Прямые звонки могут осуществляться в изолированной локальной сети (например, локальной WiFi сети, созданной с помощью мощной точкой доступа, установленной в центре зоны обслуживания). В этом случае Торфон не требует взаимодействия с интернет: у проекта нет своего сервера, являющегося точкой потенциального отказа, атак и сбора метаданных. Таки образом, Торфон может успешно работать даже при полной изоляции сегмента сети или всего Рунет на государственном уровне.

Сегодня достаточно часто поднимается вопрос доверия к Tor как в плане сохранения анонимности, так и в плане конфиденциальности передаваемых данных. Известный мессенджер TorChat не использовал своего шифрования и аутентификации, полностью полагаясь на сервисы, предоставляемые Tor. Лично я доверяю Tor, во всяком случае, в плане обеспечения конфиденциальности и совершенной обратной секретности. Но, к сожалению, такая позиция омрачена открытием глобальных уязвимостей SPECTRE / MELTDOWN, а также массой уязвимостей нулевого дня для всех известных операционных систем, практически используемых в качестве рабочих инструментов в арсенале любой спецслужбы. Поэтому я не смог пойти по пути TorChat и добавил в Торфон собственный слой шифрования и аутентификации, использующий самые современные протоколы и доказуемо стойкие криптографические примитивы.
В основе концепции лежит возможность осуществлять звонки между незнакомыми абонентами, а затем автоматически обмениваться своими публичными ключами для взаимной аутентификации в последующих сеансах связи. Данный подход обеспечивает определенную отрицаемость в вопросе наличия компрометирующего ключа в списке ваших контактов: любой абонент, зная ваш онион-адрес, может осуществить анонимный звонок и тут же переслать вам любой контакт из своей записной книги. Этот контакт будет автоматически добавлен в вашу адресную книгу. Впрочем, эту возможность можно отключить в настройках, но кто знает, была ли она у вас включена раньше?
Особое внимание уделено защите идентификаторов абонентов. Так, вызывающий абонент знает, кому он звонит, и должен ему сообщить свой ID (ключ). Но только ему и никому другому! Мало того, если соединение будет перехвачено, в том числе активным атакующим, а позже все приватные ключи участников будут раскрыты, не существует возможности установить (или выбрать из списка известных) идентификаторы участников в каждой пробе или перехваченной сессии в прошлом. Другими словами, обеспечивается защита ID вызывающего и вызываемого абонентов с совершенной обратной секретностью (PFS). Это удалось достичь, модифицировав протокол Triple-DH (тройной Диффи-Хеллман, применяемый в том числе и в Signal) добавлением параллельно выполняемого протокола SPEKE, обеспечивающего нулевое разглашение в отношении явных (explicit) аутентификаторов, которыми обмениваются стороны на этапе начального обмена ключами.
Используемый в Торфоне протокол имеет свойство отрицаемости (Deniability), когда после завершенного сеанса связи злонамеренная сторона не может убедить судью в том, что действительно контакт имел место. Также обеспечивается отрицаемость наперед (Forward Deniability), когда злонамеренная сторона заранее договаривается с судьей о том, что будет проводить сеанс, и после завершения сеанса пытается доказать, что он имел место. Полная отрицаемость (Full Deniability, когда злонамеренная сторона контактирует с судьей во время сеанса связи), конкурирует с таким важным свойством, как KCI — устойчивость (невозможность представиться другим перед абонентом, приватный ключ которого известен). Исходя из практических реалий, предпочтение было в пользу KCI -устойчивости, как более практичного свойства, особенно в условиях неправовых отношений.
Из дополнительных возможностей аутентифицировать друг друга при первом контакте (для гарантии достоверности обмена ключей) реализовано два протокола:

  • сравнение короткого отпечатка общего секрета (SAS, аналогично как в протоколе ZRTP). Для блокирования атаки подбора короткого отпечатка в процессе MitM используется коммитмент в процедуре Диффи-Хеллмана. Кроме того, отпечаток общего секрета автоматически включается в имя контакта, принятого в данной сессии. Таким образом, при обмене контактами в течение одной сессии начало имени нового контакта у обоих участников должно быть одинаковым, что можно проверить позже, например, при личной встрече. И, кстати, полученный контакт нужно обязательно переименовать для того, чтобы разрешить Торфону представлять себя (свой ID) этому контакту.
  • сравнение заранее согласованного секрета (слова, фразы). В OTR аналогичную функцию выполняет протокол Социалиста-Миллионера. В Торфоне используется аналогичный по свойствам (с нулевым разглашением) протокол SPEKE.

В случае, если у обоих участников сеанса имеются контакты (публичные ключи) друг друга, если аутентификация успешна и используется Tor (звонок на онион-адрес), то принимающая сторона осуществляет встречный звонок, используя онион-адрес вызывающей стороны из своей адресной книги. После установления соединения производится взаимная аутентификация по второму каналу, подтверждающая онион-адрес звонящего абонента. Аналогичную процедуру использует TorChat для аутентификации чатов, используя в качестве ID онион-адрес контакта.
Параллельное Tor-соединение состоит из иных цепочек, что выгодно используется для компенсации спонтанных задержек: речевые пакеты отправляются сразу в оба канала, используется пакет, пришедший ранее. Кроме того, ведется статистика задержек в обоих каналах, и, если один из каналов значительно медленнее, то он периодически переподключается в процессе разговора. Это снижает общую латентность аутентифицированного звонка в сравнении со звонком от неизвестного абонента.
Как показывает печальная практика, сегодня весьма важно научить приложение защищаться от возможных блокировок. К счастью, Торфон не имеет собственного сервера или облака, используя вместо него Tor. Поэтому блокировка Торфона возможна лишь путем блокировки Tor. Но сегодня это – тоже реальность, и в подобном случае останется лишь возможность выполнения звонков непосредственно на IP — адрес и TCP порт. В самом пессимистичном сценарии большой брат будет пытаться научить системы DPI (глубокого анализа пакетов) выявлять в контролируемой сети p2p трафик между двумя Торфонами. Поэтому были приняты дополнительные меры для максимального сокрытия такого трафика. Во первых, слушающий порт TCP может быть выбран вручную и фактически является частью адреса абонента. Во вторых, абсолютно все пакеты (в том числе и звуковые) в течение сеанса связи (TCP — сессии) не имеют никаких отличительных особенностей (постоянных или инкрементируемых полей, длины и т.п.) и для внешнего наблюдателя выглядят как случайные данные случайной длины. В третьих, для проведения активной пробы протокола требуется «подтверждение работы» (Proof of Job) в качестве защиты от массированного сканирования адресов и портов на предмет обнаружения Торфонов.
Фактически соединение выполняется двумя последовательными TCP — подключениями. Во время первого подключения стороны обмениваются первичными сессионными ключами в виде точек на эллиптической кривой X25519, выполняя обычный протокол Диффи-Хеллмана. Так как Montgomery-формат представления точки не является случайным числом, используется представление Elligator2, дополненное случайными байтами. После выведения общего секрета первая сессия разрывается, и через случайный промежуток времени (несколько секунд) устанавливается вторая сессия, все данные в которой зашифрованы ключом, выведенным из общего секрета. Генерируются новые сессионные ключи, и протокол Диффи-Хеллмана выполняется еще раз, теперь уже с коммитментом. Из полученного секрета выводятся симметричные ключи для шифрования и расшифровки. Затем выполняется тройной протокол Диффи-Хеллмана параллельно с протоколом SPEKE для защиты ID вызывающего абонента и аутентификации. В случае отсутствия ключей в адресной книге (неизвестный контакт) или любого несоответствия все сообщения заменяются случайными байтами., т.е. протокол не прерывается для предотвращения утечки информации об идентичности участников.
Для реализации указанных протоколов используются тщательно перепроверенные исходные С-коды криптографических примитивов, взятые из известных криптографических библиотек. Для верификации на этапе разработки использовались известные тестовые векторы, а после каждого запуска приложения производится дополнительная верификация конкретной реализации исполняемого кода (результата компиляции).
Для слоя обфускации был выбран симметричный алгоритм Serpent-128, работающий в режиме аутентифицированного шифрования OCB. Для основного слоя симметричного шифрования используется преобразование Keccak-800 в виде функции Shake-128 и однонаправленный счетчик пакетов CTR. Этот же примитив используется в качестве Hash, MAC и PKDF. Для шифрования адресной книги и генератора псевдослучайных чисел используется алгоритм ChaCha20. Ресидирование генератора производится в начале каждой сессии, для накопления энтропии в мультизадацных операционных системах используется алгоритм Havege, а в микроконтроллере – младший бит результата АЦП, измеряющего шум резистивного делителя. Накопление энтропии производится до необходимого количества, оцениваемого с помощью группового частотного теста.
Основные криптографические примитивы (элементарная математика для X25519, Keccak800, ChaCha20) используют не оптимизируемые компилятором ассемблерные реализации для микроконтроллерных платформ (Cortex M1 и M4), тщательно проверенные на постоянство времени выполнения и с минимизированными утечками по побочным каналам ЭМИ и флуктуаций тока потребления. Сразу скажу – эти ассемблерные коды получены от профессионалов с мировыми именами, я лишь портировал их из GNU ASM в среду Keil, более привычную для сборки встроенных проектов.
Ну, что в итоге?
Если вы дочитали до этого места и не умерли со скуки, то значит, этот проект Вам действительно может быть полезен. Если так, то по запросу на почту рад предоставить тестовые сборки (статически линкованные исполняемые файлы, не требуемые установки), а также исходные коды графического интерфейса для Windows, Linux и Android в соответствующих средах разработки. Ядро проекта выполнено на базе кроссплатформенной библиотеки torfone, доступной поиском на github. Там же можно найти прямые ссылки на альфа-версию Андроид-приложения и краткое руководство по его установке и использованию, что поможет всем желающим оценить латентность телефонии в сети Tor.
Графический интерфейс реализован отдельно для каждой платформы и не является вариантом выбора (пока что это лишь альфа-тестирование). Тестовое приложение для всех версий Windows (начиная с древней Windows 98) выполнено в старом, но мощном Borland C++ Builder 6. Для Linux GUI-приложение разрабатывалось с использованием забытой Wide Studio для графики X11 отдельно для i386 и ARM архитектур. Первое должно работать как на 32- так и на 64-разрядных десктопах, второе – на недорогих одноплатных компьютерах: RPi, Orange, Nano и др. Для Android доступен apk-файл, собранный в Embarcadero RAD Studio 10.2. Это далеко не лучший вариант и пока что не умеет создавать Foreground service, но, тем не менее, стабильно работает в Background при отключенной оптимизации использования батареи. Также в среде Android поддерживается автоматическое резервное копирование файлов конфигурации, ключей и адресной книги (в зашифрованном виде) во внешнее хранилище и восстановление при переустановке Торфона или переносе на другое устройство. На момент написания статьи ведется работа над проектом в среде Keil uVision, включающим транспортный, шифровальный модули, аудио и графический интерфейс на базе Arduino — совместимого 320*240 TFT+Touch дисплея. В качестве открытой аппаратной платформы будет использована NanoPi Neo c установленным Debian server и плата Nucleo STM32F446RE, соединенные через физический UART. В отдаленных планах – портирование в iOS, хотя я с трудом понимаю, как это может сочетаться с элементарными гарантиями безопасности.
И в завершение.
Мне часто задают одни и те же вопросы: как можно управлять пользователями без центрального сервера? Как забрасывать обновления, рекламу? И, главное, зачем это все мне нужно, если в этом нет коммерческой ценности?
На самом деле мир не такой серый и испорченный. И есть много ценностей, которые не измерить деньгами. А ответ на первые два вопроса – никак. Ну, нельзя Торфон остановить. Нельзя получить от него «ключи», слить действия пользователей, даже замеченных в терроризме или педофилии, нельзя забанить неугодных. Нельзя заставлять обновляться. Нельзя управлять извне. Нет в Торфоне никаких утечек, побочных соединений, кроме как предусмотренных протоколом. Это можно легко проверить как в коде (почти каждая строчка прокомментирована и не так уж много файлов в проекте), так и сетевыми анализаторами. Поэтому никто не сможет управлять пользователями Торфона. Но помните: Торфон – лишь инструмент, а все ваши действия – на вашей совести, и за них отвечаете вы, а не автор проекта.

Анонимные звонки

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *