Comments 91
Заебрутишься подбирать номера карт, cvv2 и сроки действия.
ничего подобного, номер карты подчиняется алгоритму Луна. В интернете полно номеров карт выложено их же владельцами — вот от них, например, и можно начинать плясать
Вы вычислите номер карты. Чисто гипотетический номер. Далее нужно выяснить cvv2, срок действия и держателя карты. Причем не известно, это номер действующей карты, есть ли на ней деньги и вообще предназначена ли она для интернет-платежей.
знать держателя карты незачем, а понять, что карта действующая, можно по ответам Мастер-Банка, таким как «14 — No such card»
UFO landed and left these words here
Ну вообще, строго говоря, как-то обрабатывают. Я помню, при покупке билета с сайта Украинских ЖД мне постоянно говорили об ошибке оплаты. Помогла смена имени в профиле сайта с кириллицы на латиницу (в самом диалоге оплаты этих полей не было, поэтому я предположил, что информация передается продавцом). Вероятно, проблема возникла ещё у эквайера, так и не дойдя эмитента, но тем не менее.
ну тут, исходя даже из того что вы описали, идет проверка на стороне сервиса предоставляющего услугу, а не на стороне биллинга.

Выше речь шла о том, что можно совершить платеж в интернете зная только номер карты, cvv\vbv\msc и exp date. Т.е. что бы вы не указали в качестве держателя карты — платеж все равно пройдет.
Да, это особо не афишируется, но на самом деле автоматически не проверяется и может быть полезно только при ручной проверке проблемного перевода.
Никак, и адрес тоже (в России).
В штатах и еще некоторых странах проверяются цифры из адреса (AVS)
Навскидку всего 1000*12*3 вариантов, (для 3 цифр CVV2, и на порядок больше для 4)
Точно не отвечу. Но некоторые платежные сайты просят ввести коды этой длины.
Также об этом говорит википедия в первом предложении.
ru.wikipedia.org/wiki/CVV2
И на Амексах CVV находится на лицевой стороне карты, а не сзади, как на MC или Visa.
>>держателя карты
У меня Google Checkout вполне согласился что имя держателя карты — QIWI CARD. Так что честно говоря — пофиг.
более того, первые 6 цифр — есть ни что иное, как BIN банка и можно взять даже со свой карты.
И для одного банка они могут совпадать (исключение только крупные банки, с большой эмиссией).

Но все-таки, факт остается фактом. Да и если предположить что ты знаешь номера карт, подобрать CVV и сроки не так уж и сложно.
Коллега, в Интернет-эквайринге используется 3DSec, чтобы начать подбирать нужно сначала проскочить через него. Да и пока вы будете долбиться с перебором, вас засекет служба фрод мониторинга и СЭБ банка.
а какой процент эмитентов в мире поддерживают 3dsecure? и какой процент их карт активированы? я думаю <1%.
>>вас засекет служба фрод мониторинга и СЭБ банка
и что, заблокирует все свои карты?
Вообще-то ACS это обязательный атрибут сейчас… но если эмитент его не имеет, то это его финансовые риски, и думаю, что с таким банком не стоит даже связываться, так как с него потом можно будет стрясти ушедшее бабло.

И блокируют карточки, уж поверьте, вместе со всеми подозрительными транзакциями :)

А вот насчёт < 1%, то откуда такая информация?

Кст, насчёт Мастер-Банка, который в данном случае выступает экваером, то ему в данном случае ничего не остаётся, так как заблокировать он вас не может даже блокировать по IP, так как вы можете сидеть за проксёй или ещё веселее за NATом и в данном случае он заблокирует всех кто идёт с такого IPшника.
Цель банка экваера не защитить деньги держателя карты, а провести транзакцию и далее взять свой процент и перевести компенсацию партнёру на счёт.
капча снизит конверсию. можно просто давать 2-3 попытки и дальше блокировать по IP и карте
Вы представляете себе дядьку, который SMSто с трудом пользуется :) А тут ещё какие-то слова нужно вводить в поле… к тому же не понятно как написанные. Да и FineReader рулит в случае капчи ;)
Дядька, который платит за что-то в интернетах, этим самым интернетом пользуется, так что с капчей должен быть знаком. Конечно, распознать можно все. Но это лишние трудности. Можно в довес к капче сделать задержку ответа от сервера в несколько секунд — для человека некритично, а для бота уже проблема. Ну и потоки ограничить.
Неверная мысль, что у экваера позиция «моя хата с краю» (я ведь правильно понял вашу фразу «Цель банка экваера не защитить деньги держателя карты, а провести транзакцию и далее взять свой процент и перевести компенсацию партнёру на счёт»?)
Банк экваер при достижении определенного процента/кол-ва транзакций с фродом начинает получать нехилые штрафы от визы и мастера, вплоть до прекращения деятельности.
Сами работаем с е-комерсом — предоставляем услуги как шлюз, и видим, что банк экваер очень даже опасается фрода даже не по своим картам.
По поводу 3дс тоже несовсем верно. Большинство банков России имеют условную поддержку этой технологии (в реальности тупо заглушку), а хорошего мерчанта, по его просьбе, банк экваер просто снимает с обязательного прохождения 3дс. И всё, нет никакой больше проверки (разве что дополнить можно, что есть определенная группа бинов, по которым, например, сбер и райф отдает ответ о принудительном 3дс и отказывает в проведении без него).
Так что дыра у мастера действительно серьезная…
Я и не говорю что «моя хата с краю». Я только утверждаю, что основная цель банка-экваера не защитить средства на счете, а провести транзакцию. Защищать средства дело банка-эмитента. Экваер только передает информацию эмитенту о том, что ему передал пользователь или мерчант, в качестве которого может выступать внешний процессинг, и на основании данной информации принимает решение об аксепте платежа.

И кст тут фрод не при чем. Фрод привязывается к суммам платежей, максимальному размеру одной транзакции, количеству успешных (или не успешных, а может и всё вместе) транзакций. А количество попыток по различным номерам — это не фрод — привязаться не к чему.

Так же о привязке бинов — бин идентифицирует банк, который выдал карту и только.
Так же вас как мерчанта заводят в ПС как принимающего платежи и ПС уже самостоятельно будет на основании предоставленных документов обязать вас в обязательном порядке только по 3DS или по определённым направлениям (суммам) можно и без него.

Дыры не вижу, в упор, если честно, есть возможность задидосить, но там обычно какой-нить перед сервером стоит F1 или антидидос сеть — типа которых предоставляет касперский.
Банк (в действительности даже не банк, но это не столь важно) не может дать ответ о принудительном 3ds. Он может только сказать, поддерживает ли карта 3ds или нет. Хотя, действительно, существуют карты которые процессется только по 3ds.
Это Интернет узел куда вас отправляет платежная система для авторизации платежа на стороне банка эмитента.
На всех моих картах (Райффайзен, Альфа-банк, Сбербанк) по дефолту была и есть сейчас Verified by Visa. И на большинстве сайтах, на которых я платил (а их довольно много), меня отправляло на страничку моего банка-эмитента, где просилось ввести код, присланный в SMS (в райффайзене плюс к этому ещё и постоянный пароль). Такого процесса не было только при работе с некоторыми западными мёрчантами.
Какой-то странный 1% получается. :) Или это я что-то делаю не так? :)
3D Secure в основном используют у нас и в Европе, в США сверяют адрес владельца.
Кстати, на счёт 3DSecure, у меня как раз такой банк который его поддерживает.
На половине сайтов требуют подтверждения по смс, а на половине всё проскакивает так.

Я видимо не очень понимаю как оно должно работать.
О том как эту защиту обойти на Хабре была статья. Надо только поискать.
Запрос смс-подтверждения делается магазином. При этом, сам воюю с банком, хочу отключить смс- подтверждения вообще для своей карты, оставить только пароль. А они говорят, что невозможно.
Нет, пароль-то присылает банк, но необходимость запроса этого одноразового кода устанавливается магазином. Бред, но сами сотрудники банка это говорят (как минимум, в Райффайзене).
Все верно говорят, процессить с 3ds или без решает в конечном счете магазин. Плюс для магазина: ответственность за чарджбеки по 3ds транзакциям ложится на плечи банка-эмитента. Минус для магазина: падает проходимость, т.к. некоторые карты не поддерживают 3ds.
Я писал не о 3ds в целом, а о степени защиты при 3ds. Может запрашиваться только пароль, а может — пароль + одноразовый код. И нужен ли запрос одноразового кода решает магазин, а не банк.
По-моему, это адский ад.
Насколько мне известно, как конкретно будет проходить аутентификация (по фиксированному платежному паролю, одноразовому, или по тому и другому) решает банк-эмитент. У продавца нет возможности влиять на это, он может только запросить сам факт аутентификации.

Некоторые банки с фиксированным паролем используют одноразовый при неправильном вводе первого, либо раз в определенный промежуток времени.
Извините, но откуда следует, что Вам позволят перебрать какое-то достаточно большое количество номеров?

Добавление пары секунд задержки на ответ при превышении порога запросов с диапазона ip сводит на нет усилия юных хакеров.
> Добавление пары секунд задержки на ответ при превышении порога запросов с диапазона
> ip сводит на нет усилия юных хакеров.

Вы не правы. Это означает что процесс/нить обработчика запроса на эти две секунды больше будет
несвободна для других клиентов. Одна из задач платежного шлюза обеспечить максимальную
скорострельность, а вы предлагаете убить две секунды только на задержку с ответом.
Все-таки, перечитайте внимательно, что написано выше.
Задача-то классическая, алгоритм успешно применяется десятки лет много где.

Может быть это кажется нереально сложным, но представляете, нитей обработчиков может быть больше одной! И совсем не обязательно, чтобы запрос в процессинг выполнялся в клиентской нити.

Причем, реализация паттерна producers/consumers сидящих на priority queue занимает аж целых 3 страницы кода на Java. Еще столько же когда займут soft и hard limits по подсетям.

В общем, задача для толкового студента на неделю-две.
Хотя если лень заниматься всяким параллельным программированием, то можно тупо банить на несколько минут ипшник после десятка-другого неуспешних запросов.

Реализация такого на пхп/мемкэшед вряд ли займет больше 20-ти строк кода.
> нитей обработчиков может быть больше одной

Ок, размышляем дальше.
1. Я не утверждал, что она одна, это ваши необоснованные выдумки. Я говорю, что потерять нить/процесс
на 2 секунды в слипе, даже пула отдачи контента (не процессингового пула) только потому, что надо
задержать ответ — это очень расточительно.
2. Каков бы не был размер пула отдачи контента, он конечен. Любой конечный быстроисчерпаемый ресурс будет первой целью при ddos атаке. Вывести из работы нитку на 2 секунды — это просто находка для атакующего.
3. Рискну предположить, что вы не сталкивались с реальной ddos атакой, иначе бы поняли, что ваши очереди — это лишняя нагрузка на процессор, тем более на яве. Система под ddos это не та система, на которую вы смотрите попивая свой кофе и придумывая «чего бы еще такое интересное и академичное выдумать ». Это система у которой загрузка ядер в 100%, процессы начинает выбирать от нехватки памяти, заход по ssh занимает с полминуты и в лучшем случае удается перекрыть сетевой поток, чтобы начать обработку логов и формирование черных списков ботов.
Я не фанат эрланга, но у него, например, для этого есть очень большое количество собственных тредов, которые не удастся исчерпать. Кроме того, никто не требует делать это в виде треда — сделать в виде очереди задач и не выбирать задачу из очереди до истечения штрафного времени.
Вы, похоже, теоретик больше?

Не слышали про такие варианты, когда одна-единственная нить обрабатывает все входящие коннекты?

Рисковать не надо. На Java несколько лет назад я делал вот как раз то, о чем писал выше. На дефолтной конфигурации получил требуемые 1000 запросов/сек на 1000 одновременных клиентов и успокоился. Даже кол-во хендлов тюнить не пришлось.

Год назад имел дело с другой системой, но тоже на Java, где 1к запросов/сек на один юнит было нормой.

Только я не понял, какое отношение к брутфорсу номера карты имеет красочное описание ДДОСа на канал?

Основная моя изначальная мысль заключалась в том, что закрыть брутфорс подбора номера кредитки через открытый вебинтерфейс — дело тривиальное.
А зачем вообще порождать нити/процессы и блокировать часть из них на время ожидания?
Это как бы заведомо не эффективный подход в решении данной задачи.
Э… задержка для одного клиента не означает задержки для другого. sleep — он не спинлок, как бы.
занятно. имел удовольствие подключаться к их службе приема платежей по пластиковым картам… есть там свои приколы…
Удалить пробелы из строки автоматом — это, конечно, технологии 22-го века, куда нам. Проще красным написать во весь экран.
+1
Аналогичные балбесы делали интерфейс трекера для Почты России.
В точности та же засада.
Я вам больше скажу: там стоит убунту 7.04, на которой крутится апач и 1С: битрикс
И почему платежные интерфейсы проектируют всякие олени? Глупо смотрится комментарий про «заблокируем по IP» — у любой уважающей себя черной шляпы есть возможность на время арендовать небольшой ботнет для соксов, так что никакой банк с ними не справится.

И ведь российские банки без суда не вернут украденные с карты деньги.
Сразу видно человек не знает как работает банковское оборудование. :)
Имя держателя проверяет банк, совместно с общей системой карт. Когда вы начнёте перебирать срок действия карты, через 5 переборов 80% банков вашу карту заблокируют. После 20 ошибок с одного IP происходит блокировка. Чисто теоретически возможно, но практически деньги тащят другим способом.
Практически нигде не указываю реальное имя на карте — ни разу не было отказа в транзакции. У некоторых даже поля такого нет (наприме, в Сервис-Гиде).
Практически нигде не указываю реальное — это вы наверно пошутили. :)
Вы не поняли.
Номер карты проверяет система карт VISA или Маестро.
А вот имя исключительно для логов. Для разбирательства после.

П.С. Сервис-гид Мегафона, отправляет данные сам. Просто поля этого нет.
Существуют правила оказания услуг обработки платежей. Можно вообще убрать проверку даж контрольной суммы, но тогда все риски взмёт на себя магазин.
При оплате всяких мелочей иногда пишу MR CARDHOLDER и прочую белиберду в качестве имени :)
А не подскажете, выбирать тип ПС (вместо определения по номеру карты) надо тоже для логов и последующих разбирательств?
Это из-за лени программиста, или для ошибки на начальном этапе. Обычно по номеру карты система сама определяет какой системе принадлежит карта. Сначала Процессинговый центр (часто являющийся частью банка) отправляет данные в банк-эквайер. Тот, разделяет данные и данные по карте отправляет в центра пластиковых карт, либо сам определяет либо пользователь сообщает. После положительного ответа, отправляет положительный ответ в магазин. Данные о пользователе и назначении платежа отправляет в приписку со счётом. Некоторые банки, включают стоп, и сверяют имя владельца, некоторые делают это в зависимости от суммы. Всегда по разному.
Ну еще тип карты работает как дополнительный антифрод фильтр.
Хотя, конечно, очень условный: понять что первая 4 — это виза, а все остальное определится как мастер, не сложно.
1, 2 — авиакомпании
3 — туризм, развлечения
4, 5 — финансовые организации, банки
6 — торговля, банковская сфера
7 — нефтяные компании
8 — телекоммуникации
9 — государственные структуры.

VISA 4,
Mastercard 5,
Maestro с 3, 5, 6. В зависимости от деятельности.

При поборе номеров часто использовали кратность 10, но сейчас уже другие методы.
Вы несете полную ахинею. Процессинговый центр работает с банком-эквайером по ISO 8583, среди данных клиента: номер карты, дата истечения и cvv (и то не всегда). Никаких данных о владельце карты, ip адресе и т.д. там нет.
ВЫ не говорите умных слов. Причём тут IP. ВЫ про какие данные и на каком этапе говорите?
Я говорю об имени владельца. Не может банк включить никаких стоплистов, потому что имя владельца ему не передается. Использовать стоплисты (по имени владельца, ip-адресу, номеру карты) может процессинговый центр, но конкретно по кардхолдеру это делать бессмысленно — ниже описал почему.
Я просто не буду спорить, это тоже самое что пешеход на велосипеде будет объяснять водителю, как лучше выйти из заноса. Просто ознакомитесь с понятиями «процессинговый центр», что такое банк-эмитер, система расчётов и их стандарты и обязанности продавцов. Если начнёте изучать по нашей стране то осознаете, что процессинговый центр в 90% в России является сам банк. Номер карты это как ключевой момент, т.е. отправили вы данные, дала VISA добро на существование карты и отправила запрос банку. А банк в зависимости от настроек, может сразу отдать положительный ответ, а может пригласить к себе для получения к примеру смс. Это делают многие крупные банки. К примеру у меня виртуальная карта не просит смс, но и оплатить я могу не более 10 000 руб. А обычная пластиковая перекинет во время оплаты в систему моего банка которая и сверит данные + запросит смс. Да и не надо этого в 50% случаев. На счёт имени владельца, то когда магазин в конце месяца получает распечатку по платежам(обычно электронно) там видно где, кто и за что осуществил перевод средств. Стандарт ISO 8583 вы правильно указали, но он у нас работает на этапе между банками, т.е. банки между собой при передаче средств именем владельца карты не оперируют действительно это уменьшилоб скорость и вызвало кучу ошибок. Имя на картах разные банки могут писать с ошибками.
Про 90% вы правы, почти все банки создают свои процессинговые центры и большинство из них делают это на платформе от openway. В решении от openway для взаимодействия с клиентами используется как раз упомянутый выше ISO, который всего лишь описывает формат сообщений для взаимодействия. Так что, во-первых, он работает не только между банками, как вы утверждаете. А во-вторых, если клиент работает с банком напрямую, а не через платежную форму, то имя держателя карты и прочие данные не доходят даже до ПЦ банка. Стоит заметить, что в качестве таких «прямых» клиентов обычно выступают платежные шлюзы, которые берут все обязанности по фродмониторингу на себя.
Ну а делать стоп-листы по имени владельца — это затея неблагодарная, т.к. имя можно ввести произвольное и нет технической возможности сверить его с именем, нанесенным на карте.
Ни кто их по имени владельца и не делает. Карта просто блокируется и всё. И VISA при оплате сразу отвечает «НЕТ». Тоже самое произойдёт если вы позвоните в банк и скажете, что вашу карту украли.
Я вас удивлю, но имя держателя, если речь идет о России, в банк даже не передается.
UFO landed and left these words here
Смешно, ей богу. :))) Вас девушка хоть поцеловала за это :) А проверочный код то она не показала? :)
UFO landed and left these words here
Это равносильно тому что не показывать свою серию и номер паспорта ни кому. На катртах существует для этих целей лимит. Основанный на вычислении риска. Ни кто не даст вам списать со счёта больше 10 тыс. Да, списать у вас получитс, но с этими деньгами вы не чего не сделаете. Это параноя чистой воды.
В некоторых кафе наблюдал забавные чеки, с полным номером карты, и сроком действия.
image
Если сильно хочется, можно найти и места, куда все их выбрасывают.
В США на чеке обычно показывают последние 4 цифры карты. На днях пришло письмо с предложением участвовать в Class Action Settlement против компании где я пару лет назад заказывал билеты на шоу. Формулировка: provided an electronically-printed receipt at the point of sales or transaction that displayed the expiration date or more than the last five digits of that person's credit card or debit card. Сумма иска $525.000.
Как хорошо, что у меня Visa Electron которой можно платить только IRL, а для интернетов отдельная карта
ПО стандартам и правилам, так нельзя. Сообщите в банк они запретят, будут показывать только первые 4 символа и последние 4.
Only those users with full accounts are able to leave comments. Log in, please.