В 2003 году мне купили первый мобильный телефон Nokia 3310.
В одно время я обнаружил там такой баг с SMS сообщениями, если мне написал Клиент1 и я отвечаю на его сообщение, то в поле кому автоматически появлялся номер Клиент1. Я мог очистить это поле и выбрать другого получателя, например Клиент2. Нажав на клавишу отправить сообщение уходило не Клиенету2, а Клиенту1, не смотря на то, что я изменил номер получателя.
В одно время из-за этого бага случилась неприятная ситуация, когда я отправил смс не тому получателю, за что получил по сраке
И вот спустя почти 10 лет, я случайно вычитал о специфике SMS и понял где именно накосячили программеры Nokia:
Текст SMS содержит небольшое количество байт служебной информации в формате PDU (Protocol Description Unit). Это универсальный формат, который описывает разные типы передаваемых сообщений: SMS, Flash SMS, сообщения о приходе голосовой почты, EMS и др. Спецификации PDU довольно сложны. Например, только для кодирования данных можно использовать различные кодировки: 7-битную, 8-битную, UCS2 (16-битную), с компрессией или без компрессии и т.д.
В текстовой части есть секция под названием UDH (User Data Header), которая не обязательна для использования и определяет ряд продвинутых функций, которые поддерживаются не всеми мобильными телефонами. Одна из этих функций позволяет пользователю изменить номер для ответа на сообщение. Если телефон получателя поддерживает эту опцию, то при ответе на текстовое сообщение оно будет отправлено не на оригинальный номер, а на тот, который указан в секции UDH. Большинство сотовых операторов не проверяют секцию UDH, так что вы можете написать там что угодно, в том числе чей-нибудь чужой номер.
А вот сейчас, почти алогичный баг обнаружен в iOS:
Уязвимость в iOS позволяет любому пользователю отправить SMS, скрыв свой номер и показав вместо него любой другой.
А кроется этот баг опять же в специфике SMS сообщений и чьих-то кривых ручках)
Нормальная операционная система показывала бы и номер отправителя, и номер, на который нужно отвечать, но iPhone показывает только секцию reply-to, создавая у получателя впечатление, что сообщение пришло с этого номера, в то время как истинный отправитель скрыт.
Apple уже опубликовала официальный ответ с заявлением, что компания «серьёзно относится к безопасности», и советом использовать фирменное приложение iMessages вместо SMS. Что ж, совет весьма оригинальный.