МФО списывает деньги с карты автоматом. Что делать?
Содержание
МФО списывает деньги с карты автоматом. Что делать?
Непросто жить в наше время, время искушений и соблазнов. Когда даже отсутствие денег не мешает реализовывать свои сиюминутные желания. Обилие всевозможных «помощников» в решении финансовых проблем просто провоцирует получить все здесь и сейчас. А расплата… Ведь это будет потом. Банки, кредитные карты, МФО – все готовы дать вам денег, решить ваши временные финансовые трудности, помочь.
И вот, соблазнившись на очередную игрушку, вы идете и берете микрозайм. Почему микрозайм? Потому что сумма небольшая, срок возврата короткий и создается ошибочное ощущение, что вернуть его не составит труда. Приплюсуем к этому минимум необходимых документов и удобный и популярный ныне способ выдачи средств на карту любого банка. Безусловно, спору нет, получить необходимую сумму в свое распоряжение, находясь при этом где угодно, это действительно приятно. А договор между клиентом и МФО многие просто подписывают, не только не утруждая себя изучением и анализом его условий, а даже банальным прочтением. Видимо считая, что он типовой и «там нет ничего нового».
Между тем, если внимательно присмотреться, то можно обнаружить в таком договоре много интересного. Одним из таких интересных моментов является необходимость привязки карты к личному кабинету заемщика.
Что такое привязка карты и как это выглядит?
Как правило, в договоре на получение микрозайма, указывается возможность МФО списывать денежные средства с любой карты заемщика «для погашения сложившейся задолженности по договору займа». Что это означает простыми словами? А означает это то, что подписав такой договор, вы предоставляете право кредитору право списывать деньги с вашей карты для погашения задолженности и процентов за использование средств. При этом выдавшей вам займ конторе не важно, кредитная у вас карта или дебетовая. Являются ли средства, размещенные на ней, вашими сбережениями на «черный» день, или последними копейками на еду.
Отказаться от привязки карты нельзя — таким способом МФО оставляют себе возможность получить свои деньги назад, если заемщик окажется недобросовестным или забывчивым. Процесс привязки выглядит как тривиальная покупка. Заемщик сообщает реквизиты карты, после чего с нее осуществляется тестовый платеж. Обычно это сумма в пределах нескольких рублей. Финальным этапом привязки является сообщение держателем суммы заблокированных средств. Если сумма верная – то формируется операция, отменяющая этот платеж. На этом процесс привязки завершен.
Какая карта нужна?
Привязать можно не всякую карту. Каждая организация, выдающая микрозаймы, может иметь свои ограничения по картам, но чаще всего встречаются следующие:
- практически все МФО не работают с неперсонифицированными картами. Это дебетовые или кредитные карты, на которых не указывается имя владельца. Такой пластик позволяет сохранить владельцем относительную анонимность, а МФО крайне этого не любят. Такой же подход применяется к виртуальным и предоплаченным картам;
- для осуществления успешной привязки карты в личном кабинете, остаток средств не может быть нулевым. Как правило, МФО указывает, в пределах какой суммы должны наличествовать деньги на счету, но обычно их размер не превышает 10 рублей;
- привязать карту экзотической платежной системы не получится. 99% МФО работают только с картами Visa и MasterCard. Иными словами, если вы владелец American Express, МИР, Золотая корона и им подобных, вам придется заводить еще один пластик. Не каждая МФО поддерживает и карты Cirrus Maestro, хотя формально данная платежная система является частью
- до окончания срока действия карты, обычно, должно оставаться больше 3 месяцев;
- некоторые МФО работают только с картами, выпущенными российскими банками. Проверка «национальности» карты не составляет труда, ведь первые шесть цифр ее номера – это уникальный код банка-эмитента.
Отвязка карта сервисов VisaMe, у Петровича
Есть такие сервисы, которые за подбор займа берут оплату 300 рублей. Они Если вы вводите данные своей карты в личном кабинете и привязываете карту, то они пытаются списать 300 рублей с вас.
Отвязать карту можно также попробывать через личный кабинет.
Если не получается, нужно написать этот вопрос в техническую поддержку сервисов, указав свой аккаунт.
Не хочу платить, как отвязать карту?
Увы, но обычно после вечеринки обычно наступает похмелье. Взяв деньги в долг, их необходимо отдавать. Но берешь чужие и на время, а отдаешь свои и навсегда. Полбеды, если деньги, из которых списываются платежи по займу, изначально были запланированы именно для этой цели. Гораздо хуже, когда пришло время платить взнос, а все что есть на карте – это сумма на оплату коммуналки и на еду. Как было сказано выше, такие мелочи кредитора не интересуют и, при наличии средств на карте, деньги будут списаны. Более того, сейчас технология работы микрофинансовых организаций в принципе не предусматривает возможности отвязать карту.
Даже если вы подаете заявление, и карта исчезает из списка, считаясь «отвязанной», при отсутствии очередного платежа с нее все равно будут списываться средства (или осуществляться попытки их списания). Единственным работающим способом предотвращения подобных операций на сегодняшний день является только перевыпуск карты с обязательным изменением ее номера. В этом случае старый пластик перестает действовать, и в ответ на списание средств будет приходить отказ.
В любом случае, есть два самых надежных и стопроцентно работающих способа избежать ситуации, в которой ваши личные средства без предупреждения исчезают в пользу МФО. Первый (самый простой и логичный) – не пользоваться услугами микрозаймов. Понятно, что не всегда возможно решить проблемы своими силами. Однако прежде чем идти и брать эти деньги стоит несколько раз просчитать возможность обойтись без этого. Не стоит обольщаться рекламными статьями, обещающими легкое погашение и низкие проценты. Где лежит бесплатный сыр знают все.
Конечно, можно постоянно поддерживать нулевой остаток на карте, снимая средства сразу после их поступления. Но это далеко не самый надежный способ. Не всегда под рукой окажется банкомат, не каждое зачисление можно отследить мгновенно. Бывает, что нет возможности снять необходимую сумму: отсутствуют нужные купюры или вообще, банкомат не работает. А если просрочка достигла столь внушительных сумм, что МФО обратилась к судебным приставам, то на ваш счет может быть наложен арест, до момента полного погашения задолженности. В таком случае не поможет даже перевыпуск карты, ведь средства будут списываться уже со счета.
Как бы то ни было, если взять микрозайм все же пришлось, вносите деньги вовремя и в полном объеме, не давая повода МФО запустить свои руки в средства на вашей карте. В конечном итоге, взятые долги необходимо возвращать, не так ли?
Списание денег с карты в счет оплаты кредита: имеет ли право банк на такие операции
Каждый заемщик должен оплачивать банковский кредит своевременно и в полном размере, указанном в договоре. Но ввиду различных жизненных ситуаций не у всех получается это делать. Соответственно, банк принимает меры. Он списывает денежные средства в счет оплаты кредита. Давайте разберемся, имеет ли он право проводить такие операции.
Когда возможно списание средств в счет погашения долга
Незаконным считается, если банк списывает все деньги с карточного счета в счет оплаты по кредиту. В этом случае клиент остается без средств к существованию. Он может оспорить списание в суде. Но из этого правила есть исключения.
В кредитном договоре может быть указано, что банк вправе списывать со счета деньги в счет оплаты кредита.
Приведем пример. Заемщик является участником зарплатного проекта. Такому клиенту банк предоставляет определенные скидки и бонусы. Оформление кредита происходит в считанные минуты, поскольку не нужно подтверждение доходов. Вся информация о заработной плате храниться в базе. И если в кредитном договоре прописано, что банк имеет право снимать средства в счет погашения кредита, заемщику даже не потребуется вносить ежемесячные платежи. Банк автоматически спишет средства после поступления зарплаты.
Есть еще один случай, когда возможно списание денег с карты – банк взыскал задолженность в судебном порядке. Предварительно финансовое учреждение подает иск о полном или частичном взыскании средств в счет оплаты кредита.
Даже если в кредитном договоре не указано, что банк вправе списывать деньги в счет оплаты кредита, он может делать это по желанию заемщика.
Клиенту нужно прийти в банк и написать заявление. В нем указать сумму погашения займа, сроки, а также какую сумму доверяет списать. Чтобы контролировать погашение кредита, надо подключить функцию СМС-оповещения.
С каких выплат неправомерно списывать долги
Не со всех поступлений на карточный счет банк имеет право списывать кредит. К таким относят социальные пособия:
- алименты;
- пенсии;
- детские пособия;
- государственная помощь;
- компенсации;
- материнский капитал.
Некоторые клиенты под такие перечисления из государственного бюджета открывают отдельные карты. Они называются «Социальными». А некоторые используют стандартные дебетовые карты. Банк не всегда отслеживает источник поступлений денег на такие карты. Он списывает их в счет погашения долга. Что делать в этом случае?
Во-первых, нужно написать заявление в банк с требованием прекратить списание денег с социальных выплат. Во-вторых, обратиться в прокуратуру. Ее сотрудники проведут проверку насколько законно списание денег с карточного счета.
Иногда рассмотрение заявлений затягивается. У заемщика продолжают списывать деньги. В этом случае ему нужно запросить выписку по банковскому счету. С ней обратиться к судебным приставам (если средства списывают по решению суда), и потребовать вернуть незаконно списанные социальные выплаты.
Имеет ли право банк списать в счет долга всю зарплату
Согласно законодательству РФ, в счет кредитного долга может быть списано не более 50% от поступлений на клиентский счет.
Стоит учесть, банк не вправе самостоятельно списывать долги по кредиту. Для этого должно быть судебное решение.
Изначально банк обращается в суд с иском о принудительном взыскании кредитного долга. Предоставляет информацию о счетах и остатках на них. После принятия решения, судебные приставы выполняют приговор. Они предоставляют клиенту и банку копии решения суда, а после этого начинается процедура взыскания.
Если на счету клиента имеется достаточно средств для погашения кредитного долга, банк вправе списать их в полном размере. Если же клиенту на счет ежемесячно поступают деньги, удерживают только 50% от поступлений.
Если банк предусмотрел взаимозачет между клиентскими счетами, то эти правила не работают. Например, у клиента открыт кредитный и депозитный карточные счета. На них есть определенный остаток. Банк вправе списать 50% с каждого из счетов.
В какой очередности списывают деньги в счет долга по кредиту
Это должен знать каждый заемщик, который несвоевременно оплачивает кредитные платежи.
Стандартный порядок списания долга:
- задолженность по процентам;
- задолженность по основному долгу;
- штрафы и пени;
- задолженность по процентам на текущий момент;
- сумма основного кредитного долга на текущий момент.
В случае наличия долга по кредиту банк списывает сразу сумму неустоек: пеней и штрафов. И только после этого проценты по кредиту и сумму основного долга. Этот порядок указан в Законе о потребительском кредитовании № 353-ФЗ.
Арест и взыскание денег с карты
Списывать средства в счет оплаты долга могут приставы по судебному решению или банк, если в кредитном договоре указана возможность автоматического списания денег со счета. И суд, и банк вправе арестовать денежные средства. Давайте разберемся, в чем отличие ареста и взыскания.
Арест – блокировка денег на счете в пределах допустимого остатка. То есть, клиент не может воспользоваться средствами.
Взыскание – принудительное списание денежных средств в счет оплаты долга. Оно возможно только по судебному решению.
Итак, банк изначально может потребовать наложить арест на деньги клиента, а потом запросить разрешение на их списание в судебном порядке. Также он вправе списывать 50% от поступлений на счет клиента, если это правило указано в кредитном договоре.
Может ли банк списать деньги с карты в счет оплаты кредита другого банка
Как уже было сказано выше, банк не вправе самостоятельно взыскивать долг со счетов клиента. Это правило относится и к списанию средств в счет оплаты долга по кредиту другого банка.
Изначально банк должен подать в суд на должника. В судебном решении будет указано, в каком размере ежемесячно нужно взыскивать кредитный долг, а также возможность его списания со счетов в других финансовых учреждениях. После этого к работе подключаются судебные приставы и исполнители. Они разыскивают клиентские счета в банках. Затем накладывают на них арест, чтобы должник не успел снять их. После этого предоставляют информацию в банк, в котором у заемщика имеется долг по кредиту. Тот, в свою очередь, передает копию судебного решения в банк, в котором у должника открыт счет. Его сотрудники списывают задолженность по кредиту в счет банка-получателя в указанном размере.
Узнаем, куда исчезли деньги
Как правило, злостные неплательщики прячутся от сотрудников банка и судебных приставов. Поэтому вручить им лично решение суда о принудительном взыскании не представляется возможным. Но это не обязательно. Решение принято, его нужно исполнять.
Если вы обнаружили, что без вашего ведома списывают средства со счета, необходимо:
- Обратиться в банк с заявлением на получение детальной выписки по счету. В этом документе указано, куда и в каком размере ушли средства.
- Если в кредитном договоре не прописано, что банк вправе списывать деньги в счет кредитного долга, необходимо обратиться в прокуратуру.
К сожалению, банки часто отказывают в предоставлении информации. В этом случае нужно обратиться за помощью к руководству финансового учреждения. Будьте внимательны, если у вас в банке открыт кредитный и депозитный счет, списание средств в счет оплаты долга может начаться уже с первой просрочки. Это правило должно быть указано в кредитном договоре.
Что предпринять, чтобы прекратить снятие денег с карты в счет долга
У многих заемщиков в счет долга списывают 50% от заработной платы. Должник может договориться на предприятии о выдаче ЗП на руки, а не на карточный счет. Так удастся сохранить весь бюджет. Но этот способ подойдет не всем, да и назвать его законным не получается.
Лучше обратиться в банк с заявлением о реструктуризации долга. Также можно объявить себя банкротом. В этом случае банк не имеет право списывать поступления. Еще один способ – рефинансирование. Эти программы предлагают все банки. Весь долг погасит банк, который рефинансирует, а клиенту останется своевременно погашать кредит у своего «поручителя».
Как украсть деньги с бесконтактной карты и Apple Pay
В статье разбираются популярные мифы и сценарии мошенничества с бесконтактными системами оплаты на примере настоящего POS-терминала, карт PayPass/payWave и телефонов с функцией Google Pay/Apple Pay.
- Можно ли НА САМОМ ДЕЛЕ украсть деньги, прислонившись POS-терминалом к карману? — мы попытаемся полностью воспроизвести этот сценарий мошенничества от начала до конца, с использованием настоящего POS-терминала и платежных карт в реальных условиях.
- В чем разница между физическими и виртуальными картами Apple Pay? — как происходит связывание физической карты и токена Apple Pay, и почему Apple Pay во много раз безопаснее обычной карты.
- Используем аппаратный NFC-сниффер (ISO 14443A) — воспользуемся устройством HydraNFC для перехвата данных между POS-терминалом и картой. Рассмотрим, какие конфиденциальные данные можно извлечь из перехваченного трафика.
- Разбираем протокол EMV — какими данными обменивается карта с POS-терминалом, используемый формат запросов, механизмы защиты от мошенничества и replay-атак.
- Исследуем операции без карты (CNP, MO/TO) — в каких случаях на самом деле(!) можно украсть деньги с карты, имея только реквизиты, считанные бесконтактно, а в каких нельзя.
В статье подробно описывается гипотетическая схема мошенничества, от начала и до конца, глазами мошенника, с целью покрыть все аспекты, в которых культивируются мифы и заблуждения. Несмотря на провокационный заголовок, основной вывод статьи — бесконтактные платежи достаточно безопасны, а атаки на них трудоемки и невыгодны.
Материалы в статье представлены исключительно в ознакомительных целях. Все сцены демонстрации мошенничества инсценированы и выполнены с согласия участвующих в них лиц. Все списанные деньги с карт были возвращены их владельцам. Воровство денег с карт является уголовным преступлением и преследуется по закону.
Как это работает?
Для начала рассмотрим базовые понятия: любые движения денег с использованием платежных карт возможны только через посредников, подключенных к платежной системе, например VISA или MasterCard. В отличие от переводов между физическими лицами, списание денег с карты доступно только юридическому лицу (мерчанту), имеющему договор эквайринга с банком.
Этапы транзакции при оплате через POS-терминал
На иллюстрации выше изображена классическая схема оплаты через POS-терминал. Именно эта последовательность действий происходит, когда после оплаты на кассе вы ожидаете подтверждения на терминале.
- Покупатель прикладывает/проводит/вставляет карту в POS-терминал;
- POS-терминал по интернету передает данные в банк-эквайер;
- Банк-эквайер через международную платежную систему (МПС) обращается в банк-эмитент и запрашивает, может ли конкретный держатель карты оплатить покупку;
- Банк-эмитент подтверждает или отклоняет покупку, после чего печатается слип (второй чек).
Продавец (Merchant) — лицо или организация, предоставляющая товары или услуги
Банк-эквайер (Acquiring bank) — банк, который предоставляет продавцу услуги приема платежей через банковские карты. В этом банке, обычно, находится расчетный счет продавца, куда зачисляются списанные с карты деньги.
Банк-эмитент (Issuing bank) — банк, выпустивший карту. В нем находится счет владельца карты, у которого списываются деньги.
Международная платежная система (МПС) — международная система-посредник между банками по всему миру, позволяющая банкам производить расчеты между собой без заключения договора с каждым банком по отдельности. Все банки, подключенные к МПС, соглашаются работать по одним правилам, что значительно упрощает взаимодействие. Например, Visa, MasterCard, UnionPay, American Express, МИР (нет, МИР не работает заграницей).
Владелец карты (Cardholder) — человек, заключивший с банком-эмитентом договор обслуживания карты.
Чем отличается обычная карта от Apple Pay или Google Pay?
Процедура привязки банковской карты к системе Apple Pay или Google Pay из-за непонятности процесса часто порождает заблуждения даже у профессионалов в IT. Мне приходилось слышать много разных мифов об этой технологии.
Популярные мифы об Apple Pay
- Карта копируется в телефон
Это не так, в микропроцессорной карте содержится защищенная область памяти с криптографической информацией, которая после выпуска карты не может быть извлечена. Из-за этого чипованную карту нельзя скопировать, никак, вообще. Справедливости ради нужно сказать, что подобные атаки возможны, но стоимость их превышает суммарное количество денег, которые потратят за всю жизнь большинство читателей этой статьи. - Телефон каждый раз подключается к интернету во время оплаты
Google Pay/Apple Pay не подключаются к интернету во время оплаты через POS-терминал. Вся нужная информация хранится локально в телефоне. - На каждую оплату генерируется новый номер карты (PAN)
Так может показаться, если читать пресс-релизы Apple о технологии Apple Pay. Но это ошибочное трактование понятия токена. На самом деле, реквизиты виртуальной карты остаются неизменными достаточно долго, вы можете это проверить по последним цифрам номера карты в слипе (банковском чеке) при оплате покупок. - При оплате через Apple Pay/Google Pay взымается дополнительная комиссия
Это не так, вы заплатите ровно столько, сколько указано на ценнике, и согласно условиям вашего договора с банком-эмитентом, чью карту вы привязали. - Деньги могут списаться два раза
Этот миф касается не только Google Pay/Apple Pay, но и обычных банковских карт. Полагаю, что он появился из-за систем оплаты общественного транспорта, в которых терминал списывает деньги с проездного билета каждый раз при поднесении, так что можно списать средства два или более раз, если неаккуратно поднести карту. В случае с POS-терминалами этого риска не существует, так как терминал прекращает обмен с картой, как только получил нужные данные.
Связывание физической карты с «токеном» в телефоне
Системы, подобные Apple Pay, работают на основе EMV Payment Tokenisation Specification. Процедура связывания физической карты и телефона с Apple Pay не описана публично, поэтому разберем процесс на основе известных данных:
- Поставщик (Google, Apple, Samsung) получает информацию о карте;
- Через МПС поставщик запрашивает, поддерживает ли данная карта (данный банк-эмитент) работу с EMV Tokenisation;
- На стороне МПС генерируется виртуальная карта (токен), который загружается в защищенное хранилище в телефоне. Мне неизвестно, где именно генерируется приватный ключ от виртуальной карты, передается ли он по интернету или генерируется локально на телефоне, в данном случае это не имеет значения.
- В телефоне появляется сгенерированная виртуальная карта-токен, операции по которой банк-эмитент интерпретирует как операции по первой физической карте. В случае блокировки физической карты, токен тоже блокируется.
Apple Pay позволяет считать реквизиты виртуальной карты. PAN номер и expire date отличаются от привязанной карты российского Альфа-Банка. По BIN виртуальной карты (480099) определяется MBNA AMERICA BANK.
При оплате телефоном, POS-терминал видит обычную карту VISA или MasterCard, и общается с ней точно так же, как и с физической картой. Виртуальная карта-токен содержит все атрибуты обычной карты: PAN-номер, срок действия и прочее. При этом номер виртуальной карты и срок действия отличаются от привязанной оригинальной карты.
Сценарий 1 — обычный POS-терминал
Мошенник, вооруженный POS-терминалом
Самый популярный сюжет мошенничества в головах обывателей: к ним в толпе прижимается мошенник с включенным терминалом и списывает деньги. Мы попытаемся воспроизвести этот сценарий в реальности.
Условия следующие:
- У мошенника полностью рабочий обыкновенный POS-терминал, подключенный к банку-эквайеру, такой же, как в магазинах и у курьеров. Прошивка терминала не модифицирована. В нашем случае — Ingenico iWL250. Это портативный POS-терминал с GPRS модемом, который поддерживает бесконтактную оплату, работает от батарейки и полностью мобилен.
- Мошенник не использует дополнительные технические средства, только POS-терминал
- Списанные средства зачисляются на расчетный счет мошенника, по всем правилам банковских систем
Юридическое лицо
Для начала нам потребуется юридическое лицо с расчетным счетом и подключенным эквайрингом. Мы, как настоящие мошенники, не будем ничего оформлять на свое имя, а попытаемся купить готовое юр. лицо на сайте для таких же мошенников. Для этого посмотрим объявления с первой страницы гугла по запросу «купить ип» и «купить ооо».
Предложения о продаже готовых компаний от мошенников (кликабельно)
Цена компании на черном рынке с расчетным счетом колеблется от 20 до 300 тысяч рублей. Мне удалось найти несколько предложений ООО с POS-терминалом от 200 тысяч рублей. Такие компании оформлены на подставных лиц, и покупатель получает весь пакет документов, вместе с «кеш-картой» — это банковская карта, привязанная к расчетному счету подставной компании. С такой картой мошенник может обналичивать деньги в банкомате.
Идем воровать деньги
Итак, мошенник получил POS-терминал и готов отправиться в людное место, чтобы прислоняться к жертвам и воровать деньги из карманов. В нашем эксперименте все жертвы были предварительно проинструктированы о наших намерениях, и все попытки списания денег проводились с их согласия. В случаях, когда испытуемые не имели собственных бесконтактных банковских карт, им предлагалось положить в кошелек нашу карту. Предварительно у испытуемых выяснялось, где именно и как они хранят свои карты, поэтому мошенник заранее знал, где в сумке/кармане находится бесконтактная карта.
Видео: мошенник разбушевался в торговом центре
В случае успешного списания, транзакция отменялась через меню терминала, и деньги возвращались на счет испытуемых. За все время эксперимента мы попытались «украсть» деньги у 20 испытуемых в здании торгового центра и на улице. Результат испытаний описан далее.
Проблема: Лимит на транзакции без PIN-кода
Лимит на максимальную сумму операции без подтверждения ПИН-кодом может быть установлен как на самом POS-терминале (CVM Required Limit), так и на стороне банка. В России это ограничение равно 1000₽.
UPD В настройках карты, может быть установлен тип авторизации Cardholder verification methods (CVMs) в виде подписи на чеке. В таком случае, бесконтактная транзакция пройдет на любую сумму без ПИН-кода.
Наш мошенник принимает решение списывать по 999.99 рублей за раз. Если будет запрошена повторная попытка списания суммы ниже лимита в короткий временной промежуток, будет также запрошен ввод ПИН-кода и, в большинстве случаев, не получится несколько раз подряд списать по 999.99 рублей. Поэтому наиболее оптимальной стратегией будет не более одного списания с одной карты.
В России максимальная сумма списания без PIN-кода равна 1000 руб.
В действительности, множество списаний с суммой 999.99 рублей за короткий промежуток времени могут спровоцировать срабатывание антифрод-системы на стороне банка-экваера, поэтому такая стратегия не является оптимальной для мошенника. Так что, в реальной жизни ему бы пришлось выбирать более разнообразные суммы, тем самым снижая потенциальный доход.
Кстати, во многих статьях по данной теме на русском языке говорится, что можно вручную установить собственный лимит на бесконтактные операции без ПИН-кода. Мне не удалось найти такой опции в основных российских банках. Может, вы знаете о такой возможности? Речь именно о бесконтактных платежах, а не любых chip&pin-транзакциях.
Проблема: Несколько карт в кошельке
Это важный момент в данном сценарии атаки, потому что в реальности почти никто не носит одну единственную карту в кармане. В большинстве случаев, карта хранится в кошельке вместе с другими бесконтактными картами, такими как проездные билеты или другие банковские карты.
Конкретно мой терминал Igenico iWL250 при обнаружении в поле действия более одной карты с SAK, обозначающим поддержку протокола 14443-4, возвращает ошибку: «предъявите одну карту».
Но так поступают не все терминалы. Например, сбербанковские POS-терминалы VeriFone выбирают случайную карту из нескольких. Некоторые терминалы просто игнорируют все карты, если их более одной, не показывая сообщений об ошибке.
Попытка считать несколько карт в кошельке. POS-терминал возвращает ошибку.
Антиколлизии ISO 14443-3
Чтение одной конкретной карты из нескольких — непростая задача на физическом уровне. Для решения этой проблемы существует механизм антиколлизий. Он позволяет выбрать одну карту, если был получен ответ от нескольких карт сразу. Это самый первый этап установления связи с бесконтактной картой в протоколе ISO-14443A. На данном этапе считыватель не в состоянии выяснить, какая из представленных карт банковская. Единственный вариант — выбрать более-менее похожую на банковскую карту, на основании ответа SAK (Select Acknowledge).
Значение бит в ответе SAK
Так, например, используемая в московском общественном транспорте карта «Тройка» (стандарта Mifare) имеет значение SAK=0x08 (b00001000), в котором шестой бит равен нулю. В то время как у всех банковских карт в ответах SAK шестой бит равен 1, что означает поддержку протокола ISO 14443-4.
Поэтому все, что может сделать терминал при обнаружении нескольких карт одновременно — исключить карты, не поддерживающие ISO 14443-4, и выбрать одну из похожих на банковскую. Поддержка протокола ISO 14443-4, кстати, не гарантирует, что эта карта будет банковской, однако вероятнее всего, в кошельке обычного человека не будет карт другого типа, поддерживающих ISO 14443-4.
Блок-схема работы протокола антиколлизий
Из личного опыта: несмотря на наличие протокола антиколлизий, при наличии в кошельке хотя бы трех бесконтактных карт, считать успешно нужную карту КРАЙНЕ тяжело. Большинство попыток заканчивается ошибками чтения. Тем более сложно это сделать на бегу, прижимаясь к чужим карманам и сумкам.
Однако мы будем считать, что нашему мошеннику очень везёт, и это ограничение его не беспокоит.
Оффлайн vs Онлайн транзакции
В устрашающих сюжетах новостей рассказывают о мошенниках с POS-терминалами в вагонах метро, которые прямо в пути списывают у вас из карманов деньги. В этих сюжетах не упоминается, откуда у мошенника мобильный интернет в вагоне метро. Возможно, его терминал поддерживает оффлайн-транзакции?
Спецификации EMV допускают оффлайн-транзакции. В таком режиме списание происходит без онлайн-подтверждения со стороны банка-эмитента. Это работает, например, в общественном транспорте в Москве и Санкт-Петербурге. Чтобы не занимать очередь на входе в автобус, пока терминал выполнит онлайн-подтверждение, вас пропускают сразу, не проверяя, достаточно ли у вас денег на счету для оплаты проезда. В конце дня, когда на терминале появляется интернет, подписанные транзакции отправляются в банк-эмитент. Если окажется, что в этот момент у вас нет денег на оплату проезда, карта будет добавлена в стоп-лист на всех терминалах в городе. Долг можно погасить через личный кабинет по номеру карты. Подробнее об оплате проезда в автобуса Санкт-Петербурга.
Лично мне не удалось получить POS-терминал, поддерживающий такую функцию, поэтому в сценарии с обычным «гражданским» POS-терминалом мы не будем рассматривать возможность оффлайн-списаний. Это ничего не меняет, кроме того, что атакующему потребуется наличие интернета на терминале, поэтому атака, например, в метро, значительно усложняется.
Существуют модели терминалов, поддерживающие WiFi, и в теории наш мошенник мог бы использовать WiFi в метро, предварительно позаботившись о покупке доступа без рекламы для MAC-адреса своего POS-терминала, чтобы не нужно было выполнять аутентификацию через captive portal, так как на POS-терминале это сделать нельзя.
Подсчитываем прибыль
В нашем сценарии себестоимость атаки была 100 000 рублей. Это значит, что для того, чтобы хотя бы вернуть вложения, нашему герою нужно выполнить минимум 100 транзакций по 1 тысяче рублей. Представим, что он был достаточно проворным и весь день бегал по городу, прижимаясь ко всем подряд, так, что к концу дня сделал 120 успешных списаний. Мы не будем учитывать комиссию эквайринга (в среднем 2%), комиссию на обналичивание (4-10%) и другие комиссии.
Может ли он успешно обналичить деньги, используя карту, привязанную к расчетному счету?
В реальности не все так просто. Зачисление денег на счет мошенника произойдет только через несколько дней! За это время, наш мошенник должен надеяться, что никто из ста двадцати жертв не оспорит транзакцию, что крайне маловероятно. Поэтому в реальности, счет мошенника будет заблокирован еще до зачисления на него денег.
Если человек заметил, что по его карте была проведена покупка, которую он не совершал, ему следует обратиться к банку-эмитенту и подать претензию. На рассмотрение спорных операций на территории России уходит до 30 дней, а по операциям, совершенным за рубежом — до 60 дней. За это время банк-эмитент направляет запрос банку-эквайеру, и если банк-эквайер подтверждает факт совершения сомнительных операций, то блокируется терминал и средства на расчетном счете владельца терминала.
Александр Падерин, управляющий директор центра информационной безопасности Уральского банка реконструкции и развития (УБРиР)
Вывод
Себестоимость атаки в нашем сценарии — 100 000р. В действительности, она будет в несколько раз выше, поэтому мошеннику потребуется намного больше усилий для того, чтобы получить прибыль.
В нашем сценарии мошенник всегда списывает по 999.99 рублей, что, вероятнее всего, повлечет за собой срабатывание системы антифрода на стороне банка-эквайера. В реальности мошеннику потребуется списывать меньшие суммы.
Чтобы хотя бы окупить вложения, мошеннику потребуется обработать несколько сотен жертв. Если даже десяток из них обратится в банк-эмитент и оспорит транзакцию, счет мошенника, скорее всего, будет заблокирован. Сценарий, в котором банк-эквайер находится в сговоре с мошенником маловероятен, потому как лицензия для работы с МПС стоит сильно больше, чем любые потенциальные прибыли от такого вида мошенничества.
Из 20 испытуемых только у трех удалось списать деньги с карты, что составляет 15% успеха от всех попыток. Это были те искусственные случаи, когда в кармане находилась одна единственная карта. В случаях же с кошельком и несколькими картами, терминал возвращал ошибку. В сценарии с терминалом, который использует модифицированную прошивку и реализует механизм антиколлизий, процент успешных списаний, возможно, будет выше. Однако, даже в случае использования антиколлизий, в реальных условиях на бегу, считать одну карту из нескольких настолько сложно, что успешное списание в таких условиях можно считать везением. В реальности, доля успешных списаний будет едва ли выше 10% от числа попыток.
Сценарий 2 — злой POS-терминал
Допустим, наш мошенник работает на кассе в магазине или курьером с мобильным POS-терминалом. В таком случае, у него появляется возможность вылавливать данные карты, которых, в некотором случае, может быть достаточно для оплаты в интернете.
Для начала разберемся, как именно выглядит бесконтактная транзакция, и какими данными обменивается карта с POS-терминалом. Так как нам лень читать тысячи страниц документации EMV Contactless Specifications , мы просто перехватим обмен на физическом уровне с помощью сниффера HydraNFC.
Есть некоторая разница между EMV-спецификацией для MasterCard PayPass и Visa payWave. Это разница в формате подписи и некоторых данных. Но для нас это несущественно.
NFC-сниффер
HydraNFC — полностью опенсорсный автономный сниффер ISO-14443A, который сохраняет перехваченные APDU-команды на SD-карту. Антенна сниффера размещается между терминалом и картой, и пассивно захватывает всю передаваемую информацию.
Демонстрация перехвата обмена между POS-терминалом и телефоном с Apple Pay
Забегая вперед, нужно сказать, что на этом уровне оплата телефоном и обычной пластиковой картой не отличается. Для POS-терминала это обычная карта VISA. Однако, оплата телефоном намного безопаснее, чем физической картой, и дальше мы разберем, почему.
Разбор протокола EMV
Вот как выглядит записанный дамп при оплате шоколадки и бутылки воды общей стоимостью 142.98 рублей с помощью Apple Pay:
Кассовый чек и слип от транзакции (кликабельно)
R (READER) — POS-терминал
T (TAG) — карта (в нашем случае телефон)
R>> 52
R>> 52
R>> 52
R>> 52
R>> 52
R>> 52
R>> 52
T<< 04 00
R>> 93 20
T<< 08 fe e4 ec fe
R>> 93 70 08 fe e4 ec fe dd 6e
T<< 20 fc 70
R>> 50 00 57 cd
R>> 26
R>> 52
T<< 04 00
R>> 93 70 08 fe e4 ec fe dd 6e
T<< 20 fc 70
R>> e0 80 31 73
T<< 05 78 80 70 02 a5 46
R>> 02 00 a4 04 00 0e 32 50 41 59 2e 53 59 53 2e 44 44 46 30 31 00 e0 42
T<< 02 6f 23 84 0e 32 50 41 59 2e 53 59 53 2e 44 44 46 30 31 a5 11 bf 0c 0e 61 0c 4f 07 a0 00 00 00 03 10 10 87 01 01 90 00 4b b3
R>> 03 00 a4 04 00 07 a0 00 00 00 03 10 10 00 bc 41
T<< 03 6f 31 84 07 a0 00 00 00 03 10 10 a5 26 9f 38 18 9f 66 04 9f 02 06 9f 03 06 9f 1a 02 95 05 5f 2a 02 9a 03 9c 01 9f 37 04 bf 0c 08 9f 5a 05 60 08 40 06 43 90 00 1d 66
R>> 02 80 a8 00 00 23 83 21 36 a0 40 00 00 00 00 01 42 98 00 00 00 00 00 00 06 43 00 00 00 00 00 06 43 18 09 18 00 e0 11 01 03 00 f9 14
T<< 02 77 62 82 02 00 40 94 04 18 01 01 00 9f 36 02 02 06 9f 26 08 d6 f5 6b 8a be d7 8f 23 9f 10 20 1f 4a ff 32 a0 00 00 00 00 10 03 02 73 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9f 6c 02 00 80 57 13 48 00 99 72 50 51 17 56 d2 31 22 01 00 00 05 20 99 99 5f 9f 6e 04 23 88 00 00 9f 27 01 80 90 00 af c8
R>> 03 00 b2 01 1c 00 c9 05
T<< 03 70 37 5f 28 02 06 43 9f 07 02 c0 00 9f 19 06 04 00 10 03 02 73 5f 34 01 00 9f 24 1d 56 30 30 31 30 30 31 34 36 31 38 30 34 30 31 37 37 31 30 31 33 39 36 31 36 37 36 32 35 90 00 a7 7b
Разберем каждую строку строку из перехваченного дампа в отдельности.
R>> — данные, переданные POS-терминалом
T<< — данные, переданные картой (в нашем случае телефон с Apple Pay)
14443-A Select
В начале обмена терминал устанавливает соединение с картой на канальном уровне. Для тех, кто знаком с сетями и моделью OSI, будет удобно представить это в качестве уровня L2, а UID (Unique Identifier) карты как MAC-адрес узла.
Важное отличие обычной платежной карты от Apple Pay в том, что в карта всегда доступна для считывания и никак не позволяет управлять процессом считывания. Ее можно бесконтрольно считать через одежду, в то время как телефон, попадая в поле действия считывателя, предлагает пользователю активировать виртуальную карту. До подтверждения пользователя телефон не передает никакие данные, и считыватель даже не знает, что рядом находится виртуальная карта.
Терминал постоянно передает команду 0x52 Wake-up (WUPA), и как только в поле действия появляется карта, она отвечает командой Answer To Request type A (ATQA), в нашем случае это 0x04 0x00. Ответ ATQA может различаться в зависимости от производителей чипа.
Получив ответ ATQA, терминал начинает процедуру выявления коллизий, чтобы определить, есть ли в поле действия более одной карты. Команда 0x93 0x20 Select cascade level 1 (SEL CL1) запрашивает у всех карт в поле действия сообщить первую часть своих идентификаторов UID.
Карта отвечает 0x08 0xFE 0xE4 0xEC 0xFE, первые четыре байта — UID виртуальной карты Apple Pay и контрольная сумма 0xFE Bit Count Check (BCC) в конце.
Получив идентификаторы карт, считыватель обращается к конкретной карте командой 0x93 0x70 (SELECT). За командой следует UID карты 0x08 0xfe 0xe4 0xec + 0xfe BCC + 0xdd 0x6e CRC16.
Карта отвечает 0x20 Select Acknowledge (SAK) + 0xfc 0x70 CRC16.
Если на этом шаге получено несколько ответов SAK, ридер может уменьшить длину UID в команде SELECT, пока не ответит единственная карта. Однако, как показано выше, некоторые POS-терминалы отказываются продолжать, если на этом этапе выявлены коллизии, то есть присутствие нескольких карт одновременно.
Ридер посылает команду 0x50 0x00 HALT + 0x57 0xcd CRC16. Это команда завершения связи.
Дальше процедура повторяется заново, ридер снова пробуждает карту (WUPA), но уже без проверки коллизий, сразу выполняется SELECT. Зачем так сделано — не знаю, возможно, это какой-то более надежный способ определения коллизий.
Во второй раз ридер уже посылает команду 0xE0 0x80 Request Answer to Select (RATS) + 0x31 0x73 CRC16.
Карта отвечает 0x05 0x78 0x80 0x70 0x02 Answer to select response (ATS) + 0xA5 0x46 CRC16.
Answer to select — ответ аналогичный Answer To Reset (ATR) для контактных карт. В нем содержится информация о максимальном размере кадра и параметрах канального уровня.
На этом этапе «канальный» уровень завершен, далее начинается обмен на более высокоуровневом протоколе, в зависимости от приложения, содержащегося на карте. Операция SELECT одинакова для всех бесконтактных карт стандарта ISO 14443A, в том числе NFC-меток, билетов на общественный транспорт, и т.д.
Запрос доступных приложений — SELECT PPSE
Начало общения с EMV-картой всегда происходит с чтения PPSE (Payment System Environment). Терминал спрашивает у карты, какие платежные приложения на ней есть.
Чаще всего это одно приложение, как в нашем примере — VISA. Однако бывают карты с несколькими платежными приложениями, например, есть специальные отечественные карты МИР с двумя платежными приложениями внутри. Так как платежная система МИР не работает заграницей, в карту интегрируется второе платежное приложение, по сути вторая карта. Это может быть приложение платежной системы JCB или UnionPay. Такие карты называются кобейджинговыми.
APDU-команда SELECT PPSE
Ответ на SELECT PPSE
Для удобства проанализируем ответ с помощью онлайн-парсера формата TVL iso8583.info/lib/EMV/TLVs. Тот же ответ, обработанный парсером:
Из всего этого нас интересует только идентификатор платежного приложения (AID). В данном случае, это значение A0000000031010, означающее Visa International.
AID помечается маркером 4F. Вторым битом после маркера следует длина данных, в нем содержащихся. Несмотря на то, что длина AID может варьироваться от 5 до 16 байт, в большинстве случаев она равна 7 байтам.
Некоторые популярные AID
Application Priority Indicator — указывает приоритет платежных приложений. Например, в кобейджинговых картах МИР, имеющих внутри несколько платежных приложений, это поле указывает, какое из двух приложений приоритетнее. Так как у нас только одно приложение Visa International, оно указывает на него, и приоритет отсутствует.
Запуск платежного приложения — SELECT AID
Выбрав нужное платежное приложение, терминал запускает его.
PDOL (Processing Options Data Object List)
Разберем ответ парсером
В ответ на запуск платежного приложения карта сообщает набор параметров, которые ожидает получить от терминала — PDOL (Processing Options Data Object List). Терминал обязан ответить в строгом соответствии с этой последовательностью.
PDOL у разных карт может различаться. Общее число параметров PDOL — несколько десятков. Полный список параметров PDOL можно посмотреть здесь.
Разберем PDOL внимательнее. Длина, указанная после маркера — строго ожидаемая длина ответа от терминала на данный запрос. Пустой ответ заполняется нулями до нужной длины.
Разбор запроса PDOL:
До этого момента все передаваемые данные идентичны для любых транзакций по этой карте.
Запрос на списание — GET PROCESSING OPTIONS
В этом ответе наглядно видно, как терминал, который находится в России, запрашивает списание с карты на сумму 142,98 рублей. Обращаем внимание на случайное число в конце (E0110103). Это параметр 9F37 Unpredictable Number. Это первое упоминание криптографии. В дальнейшем это число вместе с данными транзакции карта должна будет подписать криптографической подписью. Это дает терминалу контроль над актуальностью подписи от карты и защищает от replay атак.
Ответ карты на GET PROCESSING OPTIONS
В данном ответе содержатся специфичные для VISA поля данных, поэтому я использовал парсер c поддержкой VISA Contactless Payment Specification (VCSP).
Application Interchange Profile (AIP) — содержит информацию о параметрах платежного приложения. В нашем случае AIP равен 00 40. Рассмотрим значения данного параметра из EMV 4.3 Book 3.
В нашем случае установлен один бит во втором байте, который, если верить этой таблице, Reserved For Future Use (RFU). Что это значит, и какой смысл в это вкладывает Apple Pay, я не знаю.
В AIP содержится важная информация о поддерживаемых методах аутентификации (SDA,CDA,DDA) платежа. Почему в моем случае все эти флаги равны нулю — я не понимаю.
Application File Locator (AFL) — Содержит информацию о расположении записей (SFI range of records) в конкретном AID. На основании этого ответа терминал сформирует запрос READ RECORD.
Разберем ответ AFL подробнее:
Short File Identifier (SFI) равно 0x18. Этот параметр кодируется пятью битами вместо восьми. Соответственно значение 0x18 (b00011000) преобразовываем в b00000011, и получаем 0x3.
First record = 1
Last record = 1
Т.е. в «папке» №3 есть записи с 1 по 1, то есть одна запись.
Application Transaction Counter (ATC) — инкрементный счетчик транзакций, который увеличивается каждый раз на единицу при запросе GET PROCESSING OPTIONS. Под достижению значения 0xFFFF или 0x7FFF, платежное приложение безвозвратно заблокируется. Полагаю, что это сделано для защиты от брутфорса приватного ключа карты. В нашем случае видно, что данный айфон с Apple Pay использовался для оплаты уже 518 (0x206) раз.
Application Cryptogram (AC) — криптографическая подпись, которая вычисляется картой с использованием ее приватного ключа. Данная подпись передается вместе с остальными данными банку-эмитенту, и на ее основании проверяется подлинность транзакции. Так как приватный ключ карты невозможно (доступными средствами) извлечь из карты, это позволяет исключить возможность копирования карты.
Issuer Application Data (IAD) — Содержит проприетарные данные, специфичные для VISA. Я не осилил разбор этой структуры, помогите.
Card Transaction Qualifiers (CTQ) — специфичный для VISA cписок поддерживаемых картой спецификаций. Например, можно ли использовать эту бесконтактную карту для операций в банкомате или нет, и какие подтверждения при этом потребуются.
Track 2 Equivalent Data — Оппа! В этом поле содержится номер карты и expiration date, подробнее эта информация будет разобрана далее.
Form Facto Indicator (FFI) — специфичное для VISA поле. Описывает форм-фактор и характеристики платежного устройства. В нашем случае видно, что это мобильный телефон.
Cryptogram Information Data (CID) — Я не осилил разбор этой структуры, помогите.
Запрос READ DATA RECORD
Терминал посылает запрос на чтение записей, полученных из AFL:
В данном случае, начиная с байта 0x1C следует читать как два значения, где первые пять бит равны 0x18 (b000011), и составляют SFI, а последующие три бита равны 0x04 (d100), и составляют номер записи.
Ответ на READ RECORD
Application Usage Control (AUC) — определяет, разрешено ли платить картой заграницей, и разрешенные виды операций.
9F19 — что-то непонятное, судя по всему — устаревший Dynamic Data Authentication Data Object List (DDOL)
EMV Tokenisation, Payment Account Reference (PAR) — специфичный для токенезированных (виртуальных) карт параметр. Я не осилил разбор этой структуры, помогите.
Что можно извлечь из перехваченой транзакции?
Мы разобрали один конкретный пример перехваченного трафика бесконтактной транзакции Apple Pay c привязанной картой VISA. Протокол MasterCard немного отличается, но в целом похож. Из разбора видно, что транзакция защищена криптоподписью, и протокол защищен от replay-атаки. Существует устаревший протокол бесконтактной оплаты в режиме Magnetic Stripe (MSD), который намного хуже защищен от replay-атак, но в данной статье я его разбирать не буду, потому что, насколько мне известно, он почти не поддерживается в СНГ, возможно я ошибаюсь.
Из перехваченных данных можно извлечь номер карты (PAN) и срок действия (expiration date)
Как видно, из перехваченного трафика можно извлечь полный номер карты и expiration date. Хоть CVV в этом дампе и нет, этих данных уже достаточно для оплаты в некоторых интернет-магазинах. В случае с обычной физической пластиковой картой, в перехваченных данных будет содержаться тот же PAN и срок действия, который выбит на самой карте!
Оплата в интернете без CVV (CNP, MO/TO)
В моей предыдущей статье «Используем Apple Pay и карту Тройка в качестве пропуска на работу» про СКУД на базе Apple Pay меня раскритиковали в комментариях, рассказывая, что имея только последние 10 цифр карты можно украсть деньги. В дампе выше указан не только полный номер моей карты, но также и expiration date. Этих данных вполне достаточно, чтобы платить в некоторых магазинах в интернете. Что ж, попробуем это сделать.
Форма добавления карты в Amazon не требует CVV
Будь это номер физической карты, деньги действительно можно было бы украсть, но данные токена Apple Pay можно использовать ТОЛЬКО для операций Client Present (CP), когда карта подписывает транзакцию криптографический подписью. Эти данные нельзя использовать для оплаты в интернете и других операций типа Card not present (CNP), то есть по телефону или имейлу. То-то же!
Всем желающим убедиться в этом, сообщаю, что реквизиты из перехваченного выше дампа Apple Pay на данный момент актуальны и привязаны к действующей карте, на которой есть деньги. На момент написания статьи это 5 тысяч рублей. Предлагаю попробовать их украсть 🙂
Почему Apple Pay безопаснее обычной карты
Apple Pay vs обычная бесконтактная карта
- Apple Pay требует авторизацию (отпечаток или пароль) на каждую проведенную транзакцию. Обычная карта не позволяет управлять количеством подписанных транзакций при поднесении к POS-терминалу. В теории, «злой» терминал с модифицированной прошивкой может провести одну транзакцию, а пока клиент держит карту возле считывателя, запросить несколько подписаний, но не проводить их сразу, а провести позже, когда клиент уйдет. С Apple Pay такое невозможно, после проведения транзакции пользователь видит значок успешно выполненной операции и приложение закрывается, новый запрос потребует повторный ввод отпечатка пальца.
- Не позволяет считывать данные до авторизации — когда телефон с Apple Pay попадает в поле действия считывателя (13,56 МГц), пользователю предлагается авторизоваться, и только после успешной авторизации телефон начинает обнаруживаться как бесконтактная карта. До этого момента считыватель не видит ничего. Именно поэтому данные с Apple Pay нельзя считать незаметно из кармана, в отличие от обычной карты.
- Нельзя использовать перехваченные данные для оплаты в интернете — обычная карта может быть использована для операций типа Card not present (CNP), то есть для оплаты в интернете, по телефону и т.д. Данные из виртуальной карты Apple Pay нельзя использовать подобным образом.
- Не раскрывает данные владельца — обычные бесконтактные карты могут передавать имя владельца (Cardholder name) и историю последних покупок. По номеру карты, в некоторых случаях, можно установить ФИО владельца. С Apple Pay ничего подобного сделать нельзя.
Вывод
Бесконтактные платежные системы достаточно надежно защищены. Несмотря на теоретическую возможность мошенничества, на практике она оказывается нерентабельна и крайне тяжело осуществима. Нет никакой причины бояться бесконтактных карт или пытаться сломать антенну в карте.
При прочих равных, Apple Pay будет безопаснее обычной пластиковой карты. Для большей безопасности можно заблокировать CNP-операции (оплата в интернете) по основной бесконтактной карте, и завести вторую карту только для оплаты в интернете.
Источник https://hcpeople.ru/mfo-spisyivaet-dengi-s-kartyi-chto-delat/
Источник https://bankstoday.net/last-articles/spisanie-deneg-s-karty-v-schet-oplaty-kredita-imeet-li-pravo-bank-na-takie-operatsii
Источник https://habr.com/ru/post/422551/