
Магнитная полоса
Замечали эту штучку у себя на карте? Нет? А ведь это та самая деталь которая делает из скругленного прямоугольника - платежный инструмент в эмоджи.
Почему в России не было магнитных полос? Они были, но не везде. В основном это связано с тем что банковские карты пришли в Россию поздно, и сразу с чипом. А вот в США, стране изобретения банковских карт, до сих пор куча терминалов которые чип не принимают.
Как она работает? Если говорить простыми словами - магнитная полоса это накопитель данных. Такой же например как бумага, или микросхема памяти(не микропроцессор). Кстати, бумагу тоже использовали для оплаты, даже до магнитных полос, для этого с помощью специального прибора импринтера, делали отпечаток выдавленных на карте цифр.
Если интересно узнать про физические аспекты хранения данных на полосе: битовое кодирование, контрольную сумму, намагниченость частиц - ссылки на такое внизу.
Здесь рассмотрим только 2 и 3 уровни представления.
1. Физическое кодирование информации
2. Логическое кодирование
3. Уровень приложения
Собираем картридер
Ну да, а вы думаете он у каждого есть дома?
Можно купить готовый маленький заводской приборчик из Китая, но стоит он там слишком дорого - от 1000 рублей на распродаже. Чтобы пару раз поиграть и написать статью это несколько дороговато, поэтому я создам свой.
Что нам понадобится:
-
Что-то имеющее магнитную головку
-
Старые наушники (провод с миниджеком)
-
2-3х позиционный переключатель (или можно пальцами)
Где есть магнитная головка: устройства работающие с кассетами, платежные терминалы.
Но так как у меня дома нет устройств читающих кассеты, единственным выходом было купить платежный терминал (подойдет любой даже самый старый) магнитная головка редко выходит из строя и по этому можно купить любой самый дешевый терминал, чтобы было не жалко его разбирать. Я смог купить сразу 2 аппарата всего за ~600р.Для сборки нужно всего лишь соединить общий провод миниджека с каждой из катушек магнитной головки с одной стороны. А со второй стороны подключить оба аудио канала к общему выводу переключателя, а остальные его выводы соединить со вторым выводом каждой катушки.
Как вышло у меня:

Я соединил с переключателем 1ю и 2ю катушки магнитной головки так как на 3-ей дорожке(треке) обычно ничего нет.
Важно помнить что 1 дорожка - находится в самом верху карты, то есть маппится на нижнюю катушку считывателя, а 3 получается в самом верху.
Софтвёрная часть
Собрать такой считыватель это - пол дела. Надо еще как-то декодировать полученные данные. Я нашел только такую программу - magstripper и в принципе она работает.
Как ей пользоваться (нужна java):
Нужно подключить считыватель в микрофонный вход.
Установить этот вход как устройство записи по умолчанию в настройках звука
Скачиваем
Кликаем 2 раза на .jar файл
Открывается такое окно:

Жмем на кнопочку с микрофоном и зеленой стрелочкой и проводим карту (переключатель на 2-м треке)

Карты с магнитной полосой в культуре

Сейчас скорость свайпа по сути не важна. Во всех терминалах я проводил на столько быстро на сколько мог, и если терминал рабочий все проходило успешно. На самодельном картридере у меня тоже получалось проводить достаточно быстро и данные считывались. Единственное чего нельзя делать - останавливаться посреди чтения, тогда точно нужно начинать заново.
Анализируем полученные данные
Да, номер я обрезал по самый BIN. Кратко про формат данных на 2-м треке банковской карты (перевел википедию):
Этот формат был разработан банковской индустрией (ABA). Этот трек записывается по 5битовой схеме (4 бита данных + 1 четность), которая позволяет записать 16 символов, среди которых числа 0-9 и 6 символов : ; < = > ?
. Выбор 6 символов пунктуации может показаться странным, но именно эти 6 символов легко проецируются на ASCII диапазон 0x30 - 0x3f что содержит именно 10 чисел и эти 6 символов. Формат данных:
-
Указатель начала — один символ (обычно ';')
-
Номер счета (PAN) — до 19 символов. Обычно, но не всегда, совпадает с номером кредитной карты напечатаным на самой карте.
-
Разделитель — один символ (обычно '=')
-
Срок действия — четыре символа в формате ГГММ.
-
Сервисный код — три цифры. Первая означает правила приема, вторая правила авторизации и третья диапазон сервисов предастовляемых держателю. (ниже)
-
Непредсказуемые данные — нужны для проверки подлинности карты
-
Указатель конца — один символ (обычно '?')
-
Продольный контроль целостности (LRC) — контрольная сумма.
Сервисный код
Первая цифра (Правила приема карты к использованию)
-
1 Международное использование разрешено
-
2 Международное использование разрешено, обязательно чип если поддерживается мерчантом(если терминал с чип ридером)
-
5 Только национальное использование, если нет договоренности с иностранным банком.
-
6 Только национальное использование, если нет договоренности с иностранным банком, обязательно чип если поддерживается мерчантом(если терминал с чип ридером)
-
7 Принимается только в сети банков партнеров
Вторая цифра (Правила авторизации платежа)
-
0 Нормально (Можно оффлайн)
-
2 Связаться с банком-эмитеном через интернет
-
4 Связаться с банком-эмитеном через интернет, за исключением двухстороннего соглашения между банками
Третья цифра (Диапазон сервисов предоставляемых держателю)
-
0 Без ограничений, нужен ввод PIN (personal identification number)
-
1 Без ограничений, без PIN
-
2 Товары и сервисы (нельзя снимать налик)
-
3 Использование только в банкомате, нужен ввод PIN
-
4 Только налик
-
5 Товары и сервисы (нельзя снимать налик), нужен ввод PIN
-
6 Без ограничений, нужен ввод PIN (если поддерживается, необязательно)
-
7 Товары и сервисы (нельзя снимать налик), нужен ввод PIN (если поддерживается, необязательно)
Попробуем разобрать то, что мы считали с карточки.;5536910000000000=29122013000032100000?
Номер: 5536910000000000
Срок действия: 2912
Сервисный код: 201
-
Международное использование разрешено, обязательно чип если поддерживается мерчантом(если терминал с чип ридером)
-
Нормально (Можно оффлайн)
-
Без ограничений, без PIN
Проверяем

Почти выводы
В 2023 году магнитная полоса почти канула в лету. И к 2025 году основные платежные системы заявили намерение убрать их вообще.
Те читатели Хабра, которые были взрослыми когда я еще не родился, и застали магнитные полосы как свое непосредственное средство оплаты, скорее всего ничего из этой статьи не вынесут. Но те кто помладше и даже не знают о том зачем магнитная полоса нужна и как ее использовать, возможно открыли для себя что-то новое. Но стоп.
Где используется магнитная полоса в 202x году?
Если вы прямо сейчас возьмете свою карту и проведете ее в ближайшей пятерочке, то 101% что у вас ничего не получиться. Терминал попросит вставить карту чипом (сервис код). И ведь это сделано не просто так.
Представьте ситуацию: вы маленький мальчик пятиклассник которому мама скинула 2000 рублей на обед после школы. Вы купили булочку и сок и у вас осталось еще 1900 рублей. Но тут из-за угла выходит злой дядя и отбирает детскую карту. Если бы этой меры защиты не существовало, то грабитель с легкостью бы провел магнитной полосой и списал все деньги без пина в первом же магазине. Но так как терминал видит что на карте есть чип он не даст мошеннику и шанса. (Да да я знаю про NFC но там порог 1000р на операцию, а по полосе его нет)
Вот же раньше люди жили хочу также
Где взять карту с магнитной полосой?
Да, это все еще возможно. Где-то пишут что visa и mastercard уже давно запретили эмиссию карт без чипа, только с полосой. Но что нам их правила. Есть 1 российский банк, который под своим брендом подарочных карт продолжает их выпускать по сей день. Погуглите: <<подарочная карта с деньгами>> 1 или 2 ссылка - то что вы ищите.
Моя одна

Сервисный код 121
-
Международное использование разрешено
-
Связаться с банком-эмитеном через интернет
-
Без ограничений, без PIN
Но PIN все-таки 1 раз терминал запросил, в терминале McDonalds. (потому что транзакции с использованием магнитной полосы должны быть проверенны кассиром на совпадение подписи на чеке и обороте карты, а так как терминал самообслуживания - пин)
Вообще с ней больше проблем, в основном конечно кассирша удивится и еще пара людей в очереди, но когда после 3 свайпа - ничего, и приходится доставать apple pay не совсем круто =/
А еще она физически изнашивается, после 20 оплат она уже вся в продольных царапинах.
Но это не единственный банк который выпускает карты без чипа, есть еще карты разных МФО. Кобейдж MasterCard + Золотая Корона. И как раз на 3 полосе золотая корона и хранит свои данные, которые представляют собой трек 2 с небольшими отличиями.
Почему банки продолжают выпускать карты без чипа, ведь это не безопасно? - дешевизна карт без чипа
Крутые ссылки
https://habr.com/ru/company/timeweb/blog/701206/
https://en.wikipedia.org/wiki/Digital_card
Автор:
seeklay1337