Pull to refresh

Comments 45

Интересная статья, пользуюсь регулярно данной фичей на МТС, никогда не задумывался о том что там под капотом у данной на вид очень простой технологии. Но в роуминге лучше звонить по wa/tg имхо

Ну это как посмотреть. Если друзьям и родным, то да, звонков через мессенджеры более чем хватает. Но вот недавно был в роуминге и у банка сработала антифрод-система на мои "махинации" со счётом, они мне позвонили и вот оно, то самое, ради чего всё затевалось)

Есть устройства, которые поддерживают VoWiFi, но, для определённых операторов, VoWiFi, из коробки, не работает (при том, что оператор сети его тоже поддерживает). Получается база MCC/MNC кодов хранится локально на устройстве и отсутствие в ней кодов конкретного оператора ломает VoWiFi для этого оператора?

Да, так и есть. Крупные производители телефонов (Appleç Samsung) даже вначале сертефицируют сеть оператора для своих устройст и только потом добавляют ее поддержку в прошивку.

Технически, устройство берет MCC/MNC с SIM карты.  Они являются частью идентификатора IMSI, который нужен для идентификации абонента в сотовой сети. Это прописано в стандарте.  Поэтому у устройства всегда есть MCC/MNC для используемого оператора.

Для того чтобы разобраться, на каком этапе ломается процесс регистрации VoWiFi, нужно собрать дополнительные данные:

·        Отправляет ли устройство DNS-Request с FQDN с этими MCC/MNC?

·        Получает ли ответ?

·        Инициирует ли устройство создание IPsec туннеля до ePDG шлюза?

·        Получает ли ответ?

·        Как происходит обмен трафиком с оператором с которым VoWiF работает успешно?

И так далее.

В статье не указано, что должны быть обязательные настройки под каждого оператора!
В телефонах Samsung и LG например стек программный и файлики можно в андроиде поковырять.
На Qualcomm например все настройки лежат в EFS и теоретически их тоже можно поковырять.

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

Кстати не обязательно `epdg.epc.mncХХХ.mccХХХ.pub.3gppnetwork.org` а вообще любой адрес, какой оператор сообщил вендору.

Пример из /etc/epdg_apns.conf

```
<!-- United States : AT&T : ATT --> <settings mnoname="ATT_US" smartwifirssia="-74" smartwifirssib="-80" smartwifirssiroveinvoice="-74" smartwifirsrp1="-108" smartwifirsrp3="-90" smartwifisnrrovein="20" smartwifisnrroveout="-30" smartwifigsmeciorovein="-11" threshold5grovein="90" threshold5groveout="108" threshold4grovein="90" threshold4groveout="108" threshold3grovein="73" threshold3groveout="93" threshold2grovein="85" threshold2groveout="30" hodelaytimer="1" epdgserverip="epdg.epc.att.net" pcscfv4vendorattr="20" pcscfv6vendorattr="21" certi_path="ca.crt" roaming_handover_support="0" wfc_call_menu="1" wfc_setting_menu="1" wfc_quicksetting_menu="1" />
```

А еще там задаются параметры IPSec

<apn mnoname="ATT_US" connname="imsApn" apnname="ims" subnettype="IPV4V6" ownidentity="023430123456701@nai.epc.mnc030.mcc310.3gppnetwork.org" remoteidentity="ims" ipsecintegrity="IPSEC_INTEGRITY_HMAC_SHA_256_128" ipsecgroup="IPSEC_GROUP_MODP_2048" ikeintegrity="IKE_INTEGRITY_HMAC_SHA_256_128" ikegroup="IKE_GROUP_MODP_2048" vendorattribute="P-CSCF-V4V6" periodicdpdtimer="300" mtu="1300" />

А возможен ли MiTM этого IPsec трафика?

По конфигу мне непонятно

VoWiFi - это способ заставить платить дважды: и за WiFi, и за голос - оператору...

Нет, это способ связи, например, если на вашей стороне только Wi-Fi, а на другой стороне только голос (человек с кнопочным телефоном или человек со смартфоном, не подключённым к интернету — например, у меня не подключён мобильный интернет, и когда я где-то, где нет домашнего или бесплатного Wi-Fi, то со мной можно связаться только через мобильный звонок).


А за Wi-Fi большинство людей и не платят. А платят за проводной интернет дома, который затем роутер раздаёт совершенно бесплатно.

Смотрите, логика простая. Там где есть wifi там я могу связаться со 100% своих контактов, без опсоса, бесплатно. А с этой функцией за деньги и с опсосом. Это же "я понесу чемодан, а ты - меня" в чистом виде. Поэтому я рад Вашим -4. Всего дебилов на хабре немного, и те возможно наоборот, лоббисты. И все таки жаль, когда худенький, маленький Гена, которому в детстве читали сказку про лису, готов тащить гигантских Чебурашек, под песню "Битый не битого везет".

любопытного в тему vowifi:
пишут, что если mac dns-сервера не совпадает с mac шлюза (что бывает редко, но не невозможно: dns-сервер должен отличаться от шлюза, и быть в той же сети, что клиент), то на квалкоммах vowifi не будет работать.


взято отсюда

вы как-то странно смогли переврать цитату с превращением ip в mac: "... Если в Wi-Fi сети default gateway и DNS server имеют разные IP-адреса, то VoWiFi работать не будет. Это такой замшелый баг в Qualcomm-овских чипах, который уже два года как никто не хочет исправлять. Смешно."

так я специально оставил ссылку на англоязычный источник:
Configure a Network (at least IPv4, IPv6 presence does not matter) 192.168.1.0/24 with the Gateway at 192.168.1.1, DNS server at 192.168.1.2 (these need to be on different machines / have different MAC addresses). The Gateway hands out IPv4 addresses in the 192.168.1.0/24 with the DNS server at 192.168.1.2 propagated to clients.


написано именно то, что в том случае, если dns-сервер за роутером (или совпадает с роутером), баг проявляться не будет.
для его проявления нужно, чтобы телефону dns-сервер был виден с маком отличным от мака шлюза.

Есть несколько "наивных" вопросов, которые хотелось бы прояснить. Если Вас не затруднит...

  1. Какова роль именно SIM-карты оператора для этой технологии? Используется ли какой-то ключ шифрования из неё, или в определённой ячейке хранится особый идентификатор? Если знать цифры MSIDN и MCC/MNC нужной сети - что ещё нужно из реквизитов чтобы "залогиниться"?

  2. "...мобильное устройство определяет IP-адрес ePDG-шлюза сотового оператора, обслуживающего SIM-карту. Для этого используетcя FQDN (доменное имя) специального вида, регламентированное стандартами 3GPP. "

    Кому принадлежит домен *3gppnetwork.org и почему все операторы ломятся именно на него, а не на какой-нибудь условный vowifihub.mts.ru (от балды)?
    Получается очевидная точка отказа, как и в случае c A-GPS, когда Qualcomm может решить больше не отдавать альманахи определённым диапазонам IP, странам, провайдерам.

  3. Где прописан этот адрес, куда телефон должен ломиться для идентификации? Конфигурационный файл? Прошивка? Ячейка SIM-карты?

  4. Всё же, что ещё необходимо для авторизации телефона у оператора через WiFi при отсутствии сигнала сотовой сети?
    Реально ли зная MSIDN, MCC, MNC и адрес, куда нужно ломиться, написать например клиентское приложение для VoWiFi под Win32 по типу SIP-клиента, и "выйти в онлайн" со своего мобильного номера, к примеру с ноутбука на Ethernet (окей, можно с WiFi вместо Ethernet если это принципиально)?

  5. Есть ли какой-то тайм-аут авторизации, после которого абонента "разлогинит" и потребуется повторная проверка чтобы заветный значок "в сети с использованием WiFi" появился?

  6. Сперва небольшая предыстория.
    В некоторых ранних флагманах HTC и Samsung был встроенный SIP-клиент. Ещё до того, как это стало мэйнстримом. Понятное дело что его можно было использовать за границей, самостоятельно вписав туда сервер, логин и пароль, не обязательно от своего сотового оператора, а вообще от любого SIP-провайдера. Но самый шик был именно в сочетании со своим сотовым оператором. В РФ до сих пор можно извлечь логин и пароль на SIP у оператора "МегаФон", т.е. услуга "МультиФОН" ещё работает, а не только своё фирменное приложение. У МТСа извлечь реквизиты от SIP было нельзя, как и у Теле2, а их говённое приложение ещё требовало SIM-карту в слоте для работы.
    Так вот, вопрос - в тех флагманах была возможность получать реквизиты для SIP-клиента откуда-нибудь. Своего рода реализация Auto-Provision, только не от DHCP, а то ли с SIM-карты, то ли от ОПСоСа.
    Вопрос - является ли процесс авторизации в VoWiFi чем-то сродни этому?

Какова роль именно SIM-карты оператора для этой технологии?

Используется для аутентификации. SIM-AKA называется. Деталей не знаю, но интуиция подсказывает, что должно быть похоже на аутентификацию в мобильной сети.

Не уверен, но. SIM-AKA это для так называемого Carrier WiFi, когда ключи с сим карты используются для аутентификации при подключении к WiFi. При VoWiFi этап подключения к WiFi не рассматривается, подразумевается, что устройство уже как-то подключилось. И данные с sim используются для аутентификации при установлении туннеля до ePDG.

Оно там как-то в EAP заворачивается и IKE аутентифицирует. Для strongswan даже плагин специальный есть eap-aka-3gpp.

  1. Авторизация в IMS осуществляется по протоколу Diameter задействуя функционал симкарты. Не знаю, просто ключи или какие-то криптопреобразования.

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

    3. В настройках телефона

    4. В общем случае нужна симка, в моменты тестирования операторы могли снижать требования и к шифрованию IPSec и к авторизации. (я расшифровывал в своё время WireShark трафик VoLTE одного оператора в период тестирования) наверное и авторизация была упрощенная. Но я думаю у них Реглятор не примет такое, да и уязвимости были...

    5. Есть, задаётся в настройках (профиле)

    6. Нет

я расшифровывал в своё время WireShark трафик VoLTE одного оператора в период тестирования

Интересны детали

  1. Для авторизации используется imsi и ключи, хранящиеся на симкарте.

  2. Этот домен принадлежит 3gpp. Но физически через него ничего не ходит, трафик идет сразу на ip ePDG

  3. Адрес нигде не хранится и поменять его нельзя. Он формируется в соответсии со стандартом с использованием MCC и MNC прописанных в симкарте

  4. Нереально. Для подключения устанавливается IPsec туннель с аутентификацией через IKEv2 с использованием крипты с симкарты.

  5. Какойто таймаут определенно есть. После каждого обрыва Ipsec идет повторная аутентификация.

Адрес нигде не хранится и поменять его нельзя Он формируется в соответсии со стандартом с использованием MCC и MNC прописанных в симкарте

Я же выше приводил путь где лежит этот адрес на телефонах Samsung и что он может быть любым.

На Xiaomi вот сейчас смотрю, такого файла нет, видимо в EFS лежит.

Кстати, дамп EFS средствами самого телефона можно как то посмотреть?

Это не из EFS а из самого android. На самсунге стек IMS программный.

Я не знаю таких инструментов.

Я только вчера начал плотно читать про технологию, как понял это я:

Есть 2 этапа. Первый: Устройство устанавливает шифрованный канал до ePDG. Насколько я понял, авторизация происходит с помощью предустановленного сертификата. Второй: Устройство регистрируется в системе IMS. Вот этот этап полностью SIP подобный.

Как извлечь пароль из мультифона?

Насколько я помню прыжок возможен только VoWiFI -> VoLTE -> 3G/2G

А еще многие операторы требуют местоположение отправлять им. У некоторых операторов VoWiFi работает только внутри страны, а за извне берут денег :)

Оператор Билайн, iPhone 13 Pro Max, дошел до "Вызовы по Wi-Fi" там можно включить или выключить, никаких VoWiFi нет, что-то не так?

"name": "MTS IMS",
"network": [
        {
          "type": "lte,wifi",
          "services": [
            "mmtel",
            "mmtel-video",
            "smsip"
          ],
          "enabled": true,
          "dereg_timeout": 8000
        }

"name": "Sberbank RUSSIA IMS",
"network": [
        {
          "type": "wifi",
          "services": [
            "mmtel",
            "smsip"
          ],
          "enabled": true
        }
      ]
"name": "TELE2 Russia IMS"
"network": [
        {
          "type": "lte,wifi",
          "services": [
            "mmtel",
            "mmtel-video",
            "smsip"
          ],
          "enabled": true
        }
      ]
"name": "Beeline VoLTE",
"network": [
        {
          "type": "lte,wifi",
          "services": [
            "mmtel",
            "smsip"
          ],
          "enabled": true
        }
      ]
"name": "Megafon VoLTE",
"network": [
        {
          "type": "lte,wifi",
          "services": [
            "mmtel",
            "smsip"
          ],
          "enabled": true,
          "dereg_timeout": 8000
        }
      ]
"name": "Letai Tattelecom IMS",
"network": [
        {
          "type": "lte,wifi",
          "services": [
            "mmtel"
          ],
          "enabled": true
        }
      ]
"name": "Motiv IMS",
"network": [
        {
          "type": "lte,wifi",
          "services": [
            "mmtel",
            "smsip"
          ],
          "enabled": true
        }
      ]


Как видите у всех кроме Летая есть.
А еще можно заметить что у МТС и Теле2 есть видеозвонки

Маленький кусочек imsprofile.json из приложения imsservice.apk из телефона Samsung.

На устройствах микротик достаточно

ip -> firewall -> service ports -> set sip ports=500,4500,5060,5061,5080,5081,5082

А для чего достаточно?

для создания комментария под комментарием.

В смартфонах Samsung одна из сим-карт может быть подключенной к своему оператору через мобильный интернет второй сим-карты, на которой активен интернет. Значок будет такой же, как у VoWiFi

Думаю, что если получится подключить к смартфону сетевую карту (через usb, например), то vowifi тоже будет работать.

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

Мне как-то сложно найти место где у меня не работает первый оператор и работает второй...

Теоретически да, но зависит от реализации.
У меня если зарегистрироваться в wowifi через wifi и подключиться по проводу, то какбы работает, но достоверно проверить невозможно, потому что как только я отключаю wifi то сразу пропадает значок. А сразу через провод он не регистрируется в wowifi.

Где эта настройка? У меня самсунг, но vowifi отваливается при отключении вайфая, хотя LTE стабильный на другой симке.

Нашёл, работает. Я в восторге ☺️

у МТС есть мобильное приложение МТС-Коннект или Мой-Коннект
у Мегафона - eMotion
работают и по вафле и по мобильному трафику любой сторонней сим-ки
(на всякий случай)

Sign up to leave a comment.