Вопрос
“В какой-то из древних баек встретил момент, когда бравый рассказчик отдаёт злоумышленникам сгенерированный код карточки пополнения счёта на большое отрицательное число. Такие бывают? Есть ли доступные методы генерации таких кодов, чтобы наказывать разных вредных личностей? :)”
Короткий ответ
Карточки такие бывают, а методов - нет :)
Длинный ответ
У меня есть большое подозрение, что я знаю, откуда (или от кого) пошла по миру эта баечка и впервые я ее услышал из первых рук где-то в начале 2004-го года, после чего мне непосредственные участники процесса демонстрировали принципиальную возможность описанного “фокуса”1.
Впрочем, даже если бы мне ничего не показывали, все равно можно было рассуждать о том, возможно это или нет, зная, как работает механизм.
А механизм работает очень просто.
В сети оператора есть сервер (назовем его ваучер-сервером), который хранит тройки (код карты, период валидности карты, сумма пополнения). К этому серверу обращается та система, через которую происходит пополнение (а оно может быть сделано по USSD, через IVR или “вручную” - при помощи оператора call center). При обращении происходит проверка наличия карточки с указанным кодом, попадание даты пополнения в период валидности карты, и собственно изменение пополняемого баланса на сумму пополнения.
Как видно, система проста, как автомат Калашникова и обладает некоторыми вроде бы очевидными свойствами: 1)Код карточки никаким образом не содержит информации о сумме пополнения 2)В ваучер-сервере хранится информация о реальных кусках картона/пластика - о картах, которые уже находятся в продаже или в процессе выпуска в продажу.
Очевидно, что доступного способа “сгененировать” карту пополнения с отрицательной суммой пополнения - нет. Сделать это может только тот, кто имеет доступ к ваучер-серверу.
А теперь - бонус. Рассмотрим, насколько реальны всякие “генераторы кодов пополнений”, которые в изобилии продаются в интернете.
Очевидно, что код пополнения нельзя “сгенерировать”. Масимум - его можно подобрать/угадать. Рассмотрим, насколько велика вероятность угадать код карты пополнения. Допустим, у оператора мобильной связи 20 млн абонентов. Оператор выпускает на рынок 200 млн карт пополнения разных номиналов (я преувеличиваю, но для красоты изложения, пусть так и будет). Код карты пополнения состоит из 14 цифр. Таким образом, всего может быть 10^13 разных кодов карточек, из которых использованы 2*10^8. Следовательно, вероятность того, что взятое наугад 14-и значное число является валидным кодом карточки пополнения составляет 2*108/1013 = 0.00002.
Получается, что перебрав где-то десять тысяч номеров, у вас есть шанс угадать код карточки. Но стоит ли игра свеч? Врядли. Во-первых, интерфейс ваучер-сервера специально сделан так, чтобы перебор нельзя было делать быстро, и попытки подбора легко идентифицировались и докладывались “кому надо”. Во-вторых, если карточку, код которой вы “угадали”, кто-то купит, и обратиться к оператору с жалобой, что она уже использована, то конфликт с большой вероятностью будет решен в его пользу, а с вашего счета в лучшем случае спишут деньги, а в худшем - его заблокируют. В-третьих, если вы вдруг поставите дело “на поток”, то вами наверняка заинтересуются неулыбчивые люди из СБ оператора, которые подключат неулыбчивых людей из госструктур и постараются напроситься в гости, что всегда неприятно :)
Напомню, о чем шла речь. Вам звонят/присылают SMS и сообщают, что вы победили в лотерее и выиграли СуперПриз, но чтобы получить его - надо заслать куда-то код пополнения с карточки, стоящей существенную сумму денег (вариант: пришлите нам код с карточки номиналом X, а мы вам пополним код на сумму 2*X). Если вы доверчиво покупаете карточку и сообщаете код, то злоумышленники тут же с помощью этого кода пополняют (на сумму Х) счет запечатанного “стартового prepaid пакета” стоимостью Y и продают его на улице за сумму Y+X/2 (напомню, что в украинских реалиях возможно стать абонентом, не предъявляя никаких ID/паспортов/…). Таким образом, злоумышленники получают прибыль в размере X/2, пострадавший теряет деньги на сумму X.
И вот такие злоумышленники звонят жене сотрудника одного из операторов и представляются сотрудниками этой же компании-оператора. Жена тут же звонит мужу, чтобы уточнить, действительно ли есть такая мега-акция. В результате, муж передает жене код ваучера, пополняющего счет на некую отрицательную сумму, и злоумышленники, таким образом, оказываются ни с чем.↩︎