Комментарии 80
Интересно, а какой алгоритм используется у нас в банкоматах?
В банкоматах не знаю, в РЖД - стократно хреновее. На МЦД можно успеть на электричке проехать несколько станций, и всё это время система не зарегистрирует у себя, что ты вошёл. Соответственно при попытке выхода со станции, турникет блокирует тебе карту за несоответствие входов - выходов. И сначала плати штраф за проезд без билета, потом иди ищи кассира, чтобы тебе карту разблокировал. Кассир на другом конце платформы через мост, на улице - официальное штормовое предупреждение.
так оно ж факт входа на мифарь должно писать, нет?
Я этого не знаю. Я рассказываю как оно случается.
Видимо, речь про оплату обычной банковской картой
Ходил к кассиру, разбирался. Короче, это нарушение правил проезда, если ты меняешь 3 транспорта в течении 40 минут. Причём на входе турникет впускает, а на выходе - не выпускает. Я должен был перед посадкой на электричку после метро и другой электрички - постоять у турникета 40 минут, так что это я виноват, а система отличная.
москва какой мы ее любим, чО. самое интересное, что Э-М-Э вроде как и не декларируется как какая-то связка со спецтарификацией, и должна быть двумя отдельными поездками -- но нет.
А смысли нарушение? Можно ж запросто доехать на автобусе до МЦД, пару станций по железке, потом сесть в метро - и все это будет совершенно обычным чьим-то путем на работу, где вторая пересадка совершится в пределах 40 минут от валидации проездного в автобусе.
Кто-то странный придумал такое ограничение, как будто никогда вдали от метро не жил
Скорее проблема в каком нибудь древнем легаси, которого у РЖД хватает.
Мне казалось, что турникетами, которые должны валидировать поездки по кошельку тройки, метро занималось - как раз чтобы избежать проблем с тем, что у РЖД получится долго и криво. Но могу и путать, конечно
Во, нашла, валидаторы на МЦД вот эти ребята делали: https://termt.ru/valitek
Но возможно проблема с обработкой пересадок на на их стороне происходит, хз
Так можно. А вот приехать на метро, сесть в МЦД, проехать на нём, выйти на станции, снова войти и поехать дальше - нельзя. Это же очевидно! Штраф тем, кто так делает! А то завтра в вагонах наркотой торговать начнут!
Мне правда интересно посмотреть в глаза тому аналитику или продакту, который придумывал (не)возможные сценарии перемещения на транспорте по Москве
В билете 90 минут предусмотрена только одна поездка на комплексе Метро+МЦК+МЦД и сколько угодно поездок на наземном. Пересаживаться внутри комплекса можно только в оговоренных местах, если ты вышел за его пределы, то при повторном входе должна стартовать новая поездка. Если штрафуют, тогда надо писать жалобы в московский дептранс, пусть разбираются, так не должно быть.
В детстве у меня неоднократно были ситуации, когда доехал на автобусе до конечной, автобус пошёл в отстойник, я побежал в соседний дом к другу, отдал ему коньки, вернулся на остановку, тот же самый автобус вышел из отстойника, и я в него сел, чтобы ехать домой.
Как хорошо, что тогда были бумажные талончики, а не вот это вот всё.
Ха! У нас, если тайм-аут, банкомат списывает сумму и забирает деньги, надо идти ножками в отделение, писать заявление, по которому назначается служебное расследование по результатам анализа логов банкомата, просмотра записей камер, инкассации банкомата с пересчетом излишков выносится решение о возмещении. На всё про всё от двух недель до пары месяцев, в зависимости от сроков инкассации (перезарядки) банкомата.
Такая схема не прокатит
Примерно такой же, но перед новой записью о пополнении из-за незабранных купюр АТМ оставляет лоток некоторое время открытым, потом прогоняет и только после повторного контроля и удостоверившись в том что купюр нет и пройдены все проверки сумма зачисляется на счет.
Возможно зависит от версии АТМ и версии софта на АТМ.
У нас каждый банкомат считается после инкассации.
Что-то уровень Хабра падает ..
Объясните, допустим вы украли или нашли карту
Клиент не стал обращаться в банк и блокировать карту?
Пин код был на карте написан?
При загрузке/выгоузки денег из банкомата их никто не считает, и лог банкомата не просматривает?
Если у вас идут ошибки timeout и деньги не списываются, а денег не хватает, то сложно догадаться что где-то там проблема?
«Они обнаружили, что одни и те же лица часто посещали определённые банкоматы, используя различные украденные карты клиентов»???
Карту украли с помощью скимминга например. Клиент ничего не узнает пока с карты не спишут средства. Дальше у меня есть несколько вариантов:
Они могли выбирать банкоматы в местах где часто/редко загружаются деньги чтобы не попадать на ситуацию когда банкомат думает что полный, а на самом деле пустой.
Банкомат пересчитывал наличные перед загрузкой обратно и корректно подсчитывал оставшийся баланс, вот только там не был обработан случай когда количество выданной наличности и возвращенной должно быть равной.
Ошибка Timeout в данном случае ничего не говорит, деньги не забрались, деньги вернулись, даже баланс немного вырос(одну же купюру возвращали), случай с расхождением входа и выхода видимо не был покрыт.
Насчет отчетности, их считают, но думаю в рамках безопасности рядовые сотрудники не знают сколько должно быть, их задача посчитать и передать цифру, а дальше уже финансовый отдел сводит отчеты и видит расхождение, но это время.
Захваченные деньги сразу же сбрасываются в reject-кассету и недоступны для выдачи (они физически в другом месте оказываются, откуда выдачи не идет), так что доступны к выдаче баланс никак так расти обратно не может.
Второе, при захвате денег банкомат не знает, сколько их, просто потому, что оборудование не умеет их считать, по крайней мере старое. Современные ресайклеры возможно умеют, но в протоколах NDC и DDC, используемый в 80% случаев, это никак не отражено. Там просто событие хосту -- деньги не взяли после таймаута. Счетчиков, сколько он захватил обратно, в нем нет. Так что считай, не умеют. Можно опрашивать счетчики после таких событий, однако проблема опять же в дурацких протоколах, которые требуют закрыть банкомат, чтобы опросить счетчики. То есть после проблемы вам нужно обменяться кучей сообщений с банкоматом:
сказать ему закрыться
опросить счетчики. При этом из-за древности протоколов, разных вендорных расширений, не все счетчики могут быть опрошены в одном сообщении. А раз уж мы опрашиваем, то логично опросить все. Поэтому
опросить счетчики приема
загрузить новый рабочий PIN ключ (ключ, которым шифруется PIN код). В спеке написано, что перед каждым открытием банкомата нужно грузить ему свежие рабочие ключи
загрузить новый рабочий MAC ключ (ключ, которым считается подпись (MAC) сообщений, для защиты от MITM атак). Вы же за безопасность и защищаете свои сообщения?
собственно команду на открытие
Довольно длительная процедура, да еще и непонятная. Закрыть банкомат можно только когда клиентская сессия на нем завершилась. Но банкомат никак не сообщает хосту об этом. В общем случае после попытки выдачи клиентская сессия еще активна и команда на закрытие будет висеть в очереди. Проблема в том, что банкомат никак не сообщает хосту: "команда принята, лежит в очереди". Он просто молчит. Это ничем не отличается от ситуации, когда команда просто может быть потеряна (удивительно, но факт: хотя используется TCP, различное оборудование / ПО по пути может просто дропать пакеты. Чтобы жизнь медом не казалась, в сообщениях нет идентификатора с его номером, запрос с ответом будьте добры сопоставлять просто по тому, что то что приняли -- это ответ на предыдущую команду. Увы, в реальности может быть не так).
В общем, по совокупности причин опрос счетчиков после таких сбоев может не делаться. В итоге о расхождениях узнают только тогда, когда банкомат проинкассируют и обнаружат недостачу. А дальние банкоматы инкассируют редко (инкассация тоже денег стоит. Зачем команду гонять часто, если в большинстве случаев оказывается, что в банкомате еще полно денег?).
Тут просто обычные рискованные операции. Банк, не желая создавать проблемы легитимным клиентам, решил, что при возникновении ретракта (забытых купюр) он будет возвращать клиенту всю сумму, а не замораживать ее на счете до окончания разбирательств. Вполне здравая политика, если у вас банкоматы часто такие ошибки выдают. Тут мошенники просто это тоже заметили и воспользовались.
Звучит так что «обмануть» старый банкомат в каком-то забытом далеком месте проще чем я думал изначально :)
Я насколько помню, там есть процедура изъятия реджекта при инкассации. Пересчитывают реджект и счётчики в кассетах. Т.е. даже если произошел программный сбой, недосдача будет сразу видна. Получается что инкассация ничего не сверяла.
Создаётся впечатление, что можно подменить взятые деньги куклой, и банкомат этого не заметит.
Захваченные деньги сразу же сбрасываются в reject-кассету и недоступны для выдачи (они физически в другом месте оказываются, откуда выдачи не идет), так что доступны к выдаче баланс никак так расти обратно не может.
Возможно там где вы живёте, это так. Но в Сербии, например, Райфайзен выдает те же деньги, которые ты только что в него положил. То есть буквально по шагам на одном банкомате:
Запрос на выдачу наличных - отказ.
Внесение наличных на счёт - успешно.
Запрос на выдачу наличных в размере только что положенного - успешно.
Запрос на выдачу наличных - отказ.
Деньги вносил на одну карту, снимал с другой, но на одном банкомате не отходя от него.
Это ресайклинг, там предусмотрено, что вложенные деньги попадают в кассеты. А здесь речь шла про реджект (обычно застрявшее на путях выдачи) или ретракт (не взятое клиентом). Так как в обоих случаях непонятно, что с деньгами и безопасно ли их предлагать другому клиенту (в первом случае возможно купюра слишком мятая или порвалась, во втором -- кто его знает, что клиент сделал с деньгами. Вон, выше рассказывают, что подкладывают черти что), то они уезжают в специальную кассету для реджекта / ретракта (ее еще называют кассетой сброса).
В общем, все, что оказалось внутри банкомата нештатно, уезжает в реджект.
Например можно взять карту у знакомого Кумара, а деньги пополам. А когда того прижали - "нисиво не знаю насяльника, карта украля!"
При загрузке/выгрузке денег из банкомата их никто не считает, и лог банкомата не просматривает?
Ну кстати думаю что вообще от слова нет. Это работа софта. А всякие логи - это уже при расследовании, а не при штатной выгрузке. Ну и кстати, установленный в удачном месте банкомат может не требовать посещения месяцами - всякие штрафники и должники вполне будут пополнять его сами.
сложно догадаться что где-то там проблема?
Учитывая, что за всё время была похищена чудовищная сумма аж в три тыщи баксов, то как раз нормально, что столько времени ушло. Возможно, там в софте какой-то люфт заложен, чтобы например списывать слипшиеся купюры, и до какого-то порога он шухер не поднимает. Ну и в целом - индусы же.
А разве банкоматы не ссыпают полученную наличку в одну общую кучу, которую забирает инкассация? Это ведь в банкомате нужно сортировщик банкнот делать(а они часто бывают мятые, изношенные, склеенные, просто рваные), да и проверка там упрощённая.
Сколько не снимал денег, максимум, слегка изношенные/помятые банкноты попадались.
Новые версии банкоматов есть с режимом возврата денег в кассеты или отсеки для выдачи вроде как для круговорота банкнот внутри устройства. Типа положили перед тобой, то может их выдать.
То то я слышал про случаи выдачи поддельных банкнот в банкомате.
Поддельные не примет. Там блок распознавания купюр. Даже подлинные, но слегка грязные или мятые брать не хочет...
Купюры классифицируются на 4 класса (уровня, отсюда L -- Level):
L1 -- белая бумага. В основном для установления базовой линии
L2 -- фальшивые купюры. По совокупности проверок, выполняемых банкоматом, не дотягивают до признания подлинной. В зависимости от настроек могу сразу же изыматься, либо возвращаться клиенту, как "нераспознанные"
L3 -- подозрительные купюры. В зависимости от настроек могут идти в ресайклинговые кассеты или в кассеты только для приема (т.е. не будут выданы другим клиентам)
L4 -- подлинные купюры. Идут в ресайклинг (естественно, если ресайклинг включен. Если выключен, то также в кассету только для приема)
То, про что вы слышали, скорее всего купюры категории 3 (подозрительные) были приняты и выданы, но на самом деле оказались умелой фальшивкой.
Кстати, API устройств банкоматов в свободном доступе -- CEN / XFS. В части 15 можете найти константы WFS_CIM_LEVEL_{1-4}
, вот это как раз оно и есть. Но производители не только это API реализуют, но и свое проприетарное.
Есть устройства работающие только на прием, терминалы условно говоря, там детектор номинала и качества + общая куча.
Есть чистый банкомат, он только выдает, там нет детектора, все что не взяли - в общую кучу.
И есть банкоматы с рециклингом, которые сортируют, обеззараживают и выдают. Вот они могут считать возврат, но часто этого не делают. К примеру, ложное срабатывание детектора, на внесении денег он предложит вам забрать спорную купюру. А что делать, если деньги по таймауту, забрать некому. Потому, часто и в рециклинг эта пачка не идет. Аналогично, если вы на внесении не забрали отбраковку.
Есть разные. Есть просто депозитники, которые собирают все деньги в кучу и ждут инкассацию. А есть ресайклер-депозитники, которые выдают принятые купюры. Но эти аппараты неприлично дорогие и геморойные в плане обслуги и наладки. И не со всеми купюрами работают
карта украля
Ну вот и выяснили бы, где его краля!
Под воровством карт подразумевается обычно не воровство ее физически, а создание его копии из болванки и получение доступа к пинкоду. Владелец может и дальше пользоваться картой не подозревая, что ее "украли"
А уже придумали способ создавать копию чипа, что на карте? Если да, то зачем вообще он нужен?
В странах со старой банковской инфраструктурой и/или низким уровнем воровства, карты всё ещё без чипов. Потому что для работы карт с чипами, нужно менять сотни тысяч устройств. Сколько это затрат? Проще ввести законом нулевую ответственность клиента. И банки сами будут заботится о безопасности денег своих клиентов, а не отмазываться.
Не скажу за Индию, но в США так. В Индии вероятно другой случай. Оборудование с чтением чипов дороже, вот его и не покупают. И карты соответственно без него.
Ну и США показывает, почему перекладывать на банки ответственность тоже не работает. На днях обсуждали случай: 12 летняя девочка выиграла в конкурсе 2000 баксов и положила на свой счёт в банк. "Откуда у 12 летней девочки 2000 долларов?" сказал банк и заблокировал всю сумму. Уже год судятся, не могут деньги назад получить.
12-летней девочке в США нельзя открыть счет! Минимальный возраст - 13 лет, причем один из родителей должен быть вписан в счет. История с 2000 долларами на счету 12-летней девочки и последующей блокироваки счета выглядит очень странно.
На что у меня следующий философский вопрос: общество не интересует, что детям фактически подняли планку пользования денежными средствами лет до 12 и старше? Заведение спецсчета на ребенка - это цирк по сравнению "вот тебе 20 руб, пойди хлебу купи".
В США если Вы пошлёте ребёнка одного хлеб покупать — Вам немедленно прилетит от ювеналки.
+/- https://abc7news.com/woman-calls-911-on-girl-walking-dog-neighbor-police-by-herself-chicago/4042795/ так как тут действующим лицом оказалась соседка, но можно прикинуть, в какое будущее стадо само себя и загоняет. Мне не нравится такой вариант будущего, где с одной стороны трубят про безопасность, а с другой в каждом движении ограничивают. Просто в примере детей я вижу не обузданного другими заботами человека, их жизнь проще сравнить с другими временными отрезками.
В США все карты давно с чипами. Уже даже появились кредитные карты вообще без магнитной полосы.
Нулевая ответственность только при оплате. При снятии денег из банкомата нулевой ответственносто законодательно нет.
В США все карты давно с чипами.
Если верить графикам от самих карточных систем, оно не совсем так.
Правда, я в недоумении. Транзакций с чипом в США - 90.90%. А Deployment and Adoption - 66.38% Это как такого добиться можно было?
Похоже, те, которые без чипа - вообще не используются, а просто в тумбочке валяются потому что банк выдал "а почему бы и нет - дешево же". А деньгами пользуются другим способом.
Есть люди которые продают карты с пином и симкартой. Можно такую купить, положить на счет условно говоря 1000, и ходить снимать по 900 хоть целыми днями.
Банкомат инкассируется кассетами. Разумеется, купюры не считают при их загрузке и выгрузке. Иногда, кстати, путают. ;)
Для подобных случаев, забытых денег, например, есть отдельная кассета. Её считают отдельно, сильно после инкассации. Обработка забытых денег вообше глючное и спорное место, например, была ошибка, когда если клиент брал из пачки купюры, оставив верхнюю и нижнюю, операция вообще отменялась как будто её и не было. Или например, "клиент" может положить фальшивку в пачку которая на выдачу, отследить место её попадания в систему будет очень непросто.
За границей сейчас банкоматы с nfc. Украл данные карты, привязал на Гугл плей и ходи снимай деньги, только листай список
Денис, я всё понимаю, у вас чудовищный объем работы. И никто из вас свои новости не никогда не читает, потому что тупо некогда. И претензия тут скорее к администрации, которая выколачивает из новостной службы максимум новостей, чтобы было чем заполнять бесконечную ленту. Плюс источник еще зачастую написан немытыми индусами, которые тоже не понимают о чём пишут, и тут надо самому соображать, а на это опять снова нет времени
Но всякий раз когда читаешь такого рода тексты, возникает вопрос - куда я попал? Что это за шизофрения? Почему купюру оставляли "обычно", если это и есть ключевое действие во всей операции? Если её не оставить, то сумма спишется и владелец карты начнет суетиться.
Это действие заставило банкомат зарегистрировать транзакцию как незавершённую. Вот только из-за этой ситуации в алгоритме работы банкомата возникала ошибка Timeout Error.

Это что вообще? Какое нам дело до ошибки банкомата? И почему банк никак не реагировал на кучу незавершённых транзакций? Наверное, речь тут совсем не не про ошибку банкомата, а про то, что из-за оставленной купюры транзакция помечалась как незавершённая, и потом гениальный индусский код тупо отменял её по истечению таймаута?
Меня вот заинтересовала эта необычная ситуация с ошибкой именно в работе банкомата и именно так понял из перевода в оригинале ситуацию. По поводу нагрузки - в выходные авторы пишут по возможности, без принуждений и без необходимости заполнять ленту.
По-моему, вся путаница в том, что таймаут тут - это не программная ошибка, а состояние "клиент не забрал деньги из выдачи за минуту, забираем их обратно". А поскольку одну купюру оставляли в слоте, банкомат считал, что возвращает всю сумму, и отменял транзакцию по списанию денег со счёта.
Скорее всего так и есть, так как изначально в банке не смогли по логам обнаружить проблему, т.е. отрабатывался алгоритм как надо, но без учёта того, что одна купюра была, а не все, что выдавались. А воспроизвели проблему только после дополнительного просмотра действий клиентов\мошенников с камер.
Ну, в оригинале написано именно "Timeout error", но да, версия "не пересчитывал возврат" тоже волне правдоподобная.
У нас такие ситуации примерно так работали: забытые забрать деньги первого клиента падали в диверт, а второе забытие оставалось прямо в галерее выдачи сразу за шаттером и банкомат автоматически завершал обслуживание, выпадал в аут оф сервис и слал на процессинг код двойного забытия, ехала инкассация и переинкассировала полностью атм. Отдельно изымалась сумма в кассете сброса и в лотке, Касса банка потом как обычно сверяла остатки по кассетам.
Конда начались приколы, что баланс по банкомату не бъётся, когда клиент из пачки высунутых к выдаче банкоматом аккуратно вытаскивал себе из серединки пару купюрок остальное оставлял, типа забыл взять сумму, имитируя "забытие", пытался оформить возврат полной запрошенной суммы официально себе на карту, тогда начали ставить дополнительную видеокамеру на область возле шаттера и служба безпеки тогда уже занималась мошенничеством с доказательством таких манипуляций клиентом :)
Клиенты в таких случаях всегда отвечают перед законом или есть возможность мирно с банком разойтись, выплатив деньги + убытки (траты на разбирательства и расследование)?
А в целом, хитрости людей нет предела. Мне бы такая схема в жизни в голову не пришла. Вот бы эту энергию и находчивость – да в полезное русло.
Timeout Error
Это "ошибка связанная с функцией банкомата известной как Timeout", то есть, тут Timeout это имя собственное для конкретной функции банкомата, а не имя нарицательное обозначающее проблему с временем.
Когда был в Нью-дели и понадобилось снять денег в банкомате, рядом с ним стоял местный с натуральной двухстволкой на плече. Может район был опасный, а может для защиты от таких "хакеров".
в Индии мошенники некоторое время с помощью ошибки Timeout Error снимали деньги
"В Индии банкоматы, код которых был написан индиотами, выдавали деньги левым людям". Так точнее.
Интересно, был ли в доле программист который сделал этот баг.
Не смешите. Пишут ПО управления сетью банкоматов совсем другие люди, чем те, кто заключает контракты с процессинговыми центрами, в которых обслуживаются банки (если вы не знали, то часто у банков, особенно мелких, нет своих серверов по обслуживанию своих банкоматов. А крупные тоже свое ПО не пишу, а покупают готовое, просто оно на их серверах запущено. Правда, у мелких и банкоматов может не быть, это дорогое удовольствие).
Во вторых, это вовсе и не баг, а штатный вариант поведения. И управляющее ПО наверняка имело возможность:
помечать транзакции, в которых были забыты купюры, чтобы их можно было быстро найти, когда сверка выявит расхождение
не реверсировать автоматически транзакцию
Так что все зависит только от рисков, которые готов принять на себя банк. Хочет -- включает автореверс в таких случаях, легитимные клиент довольны, а мошенничество может быть незначительно настолько, что его могут и вовсе не расследовать (т.к. это может быть дороже, чем просто списать недосдачу).
Хочет -- выключает. Получает негатив от забывчивых клиентов, зато мошенникам сложнее.
Что было в этой конкретной ситуации, сложно сказать, но как тут выше подсчитали, наверное $3000 не настолько большая сумма (за несколько месяцев), чтобы о ней беспокоится.
главное, чтоб фальшивки не попались в банкомате
В Индии мошенники некоторое время с помощью ошибки Timeout Error снимали деньги из банкомата без списывания их со счетов