Потому что бигдата государства требует для аналитики и перлюстрации всю доступную информацию. Пока ты пишешь пиздатый месенджер для людей, государство легко пропихнёт нужный ему месенджер по всем каналам. Начиная от безальтернативного впихивания правильного мессенджера через бесправных бюджетников, заканчивая принудиловкой через госуслуги и любые другие источники от платной рекламы до записи на приём к терапевту и выпиливания конкурентов с рынка путём блокировок. Даже если финальный продукт будет позорным говном типа продукции автоваза на фоне китайского хайтека. Просто интересы так сложились...
Решил проверить как работает система авторизации. Собрал простенький клиент на андроиде, все окошки сделал, вкюлчил все сервисы, запустил БД, поднял закрылки, штурвал на себя иии...
И в консоли радующие глаз логи с эмодзи должны были выглядеть вот так:
Должен вывестись номер телефона (хотя... никому он ничего не должен)
Но вместо этого пошли злобные восклицания: капитан, все пропало, Must Run завалился.
Так, постойте, сервис авторизаци, ты же работал и я тебя точно не трогал! Что опять не так 😂🤣?! Попробовал перезапустить все. Снова подготавливаю машину, пробегаюсь по конфигам, поднимаю тумблеры вверх... И неуспех. Вообще, Скала говорит, что перезагрузка решает 95% проблем, но моя вошла в те самые 5%.
Начинаю ковыряться с тем что падает и быстро выявляю что мой модем-телефончик, который я использую как систему рассылки SMS стал падать. Обновления на него не приходили, он лежал выключенным все это время. Да и вообще, это устройство уровня Nokia-кирпич :)
Ковыряюсь далее и вижу что команда запроса номера сим-карты не отрабатывает как надо. Все остальные команды работают (уровень сигнала, наличие симки, проверка памяти симки и все остальное). В общем, какие-то происки врагов. Вечер потрачен на выяснения причины того почему симка перестала предоставлять мне информацию о ее номере. Ковыряясь в сети нашел ответ, попутно еще много чего нашел. Делюсь.
Во-первых симки не такие уж и простые, работают по-разному. Раньше я использовал симку от МТС и она возращала номер. И мне этого хватало, был доволен. И весь код модма собрал с учетом логики: если спросить номер у симки, то она его вернет. Теперь использую симку от ГазпромМобайл. Вместо номера она возвращает "извините, с этим вопросом обращайтесь к ГазпромМобайлу".
Ссылку на страницу провайдера с информацией о том как узнать свой номер сейчас найти не получается, но вот что есть и это правильная информация:
Ну вы всё поняли. Шлем USSD запрос, получаем ответ и номер в кармане. Собрал запрос, отправил, приходит что-то, но явно не номер. Информация о балансе, реклама какая-то. Где обещанный номер?!
В общем, у меня был план, основанный на инструкции и я его придерживался 2 часа. Но номера за это время получить не удалось. Ладно, все же вынудили меня вынуть симкарту из телефона, вставить в нормальный телефон и с него отправить USSD запрос:
Ну и где номер? 4-й час ночи, отклавдываю телефон как приходит SMS в которой:
Ваш номер: "+7 999 999 99 99". Баланс 0 руб. Ожидайте SMS с остатками по пакетам услуг.
Ну и куча SMS с рекламой потом прилетело. Теперь мы знаем, не все что в инструкции написано - правда.
Модифицировал код, научил его принимать SMS в процеесе получения номера. Но возникла другая горячая проблема. Теперь вместо номера отправителя приходило что-то типа "Поешь лохматое чудище", или ближе к оригиналу "吃毛茸茸的". А данные отправителя мне нужны для идентификации отправителя.
На самом деле это не китайский и даже не эльфийский. И что-то даже ИИ не мог помочь мне понять что это неверно раскодированный заголовок.
В общем, заголовки SMS приходят в определенной кодирвке, не будем на этом останавливаться. Алгоритм раскодировал заголовок и получил ерунду на китайском. Через какое-то время я понял, что заголовок в общем-то теперь не кодируется. Ну в смысле не кодируется терпкм кунг-фу с тримя приседаниями с подвыподвертом, а просто в виде ASCII шлется. Допиливаю код, декодирую ASCII и вуаля: GPBMobile, а не мусор какой-то. В общем, собрал код, протестил, модем снова заработал.
Пока гуглил тему, узнал что вот эти вот заголовки - это особая привилегия для альфачей. Собственно заголовки так и называются "Альфа-заголовки". В альфах в виде ASCII можно передавать не номер телефона, а, допустим, название фирмы или ФИО (хотя насчет ФИО не уверен). В общем, суть в том, что провайдер сотовой связи следит чтобы мошенники не выдавали себя за других людей и блокирует если номер содержит недопустимый заголовок. И да, подмена заголовка наказуема. Вот что говорит ИИ:
Краткий ответ: Да, наказуема. Если вы технически сможете подменить альфа-имя (буквенный отправитель) и отправить SMS, то это квалифицируется как нарушение закона, даже если вы отправили письмо самому себе.
С учетом вашего предыдущего вопроса про модем и AT-команды, давайте разберем, что именно считается нарушением и какое наказание грозит.
1.то считается подменой?
Подмена происходит в тот момент, когда вы, используя технические средства (модем, софт, нелегальный шлюз), отправляете сообщение, где в поле "Отправитель" указано нечто иное, чем ваш реальный номер телефона, выделенный SIM-картой.
Даже если вы укажете там свое собственное имя ("Петя"), технически вы совершаете подмену идентификатора, потому что:
-У вас нет договора с оператором на использование этого имени. ...
Вдаваться в детали не стал т.к. подменять ничего не собираюсь. Интересно, а если бы подменил и сам себе бы прислал SMS, то считалось бы это "подменой" и наказуемо ли это. Насколько тонкий лед под ногами 😂
Кому интересно, можете подписаться куда-нибудь на меня, попробуете мессенджер в числе первых, если этот проект кому-то вообще интересен. Постепенно буду дальше делиться успехами :)