- Позволяет хранить все ваши кредитные карты и магнитные полосы на одном устройстве
- Работает с традиционными считывателями магнитной полосы по беспроводной сети (не требуется NFC / RFID)
- Можно отключить чип-и-PIN (код не входит в комплект)
- Правильно предсказывает номера кредитных карт Amex + истечения срока действия предыдущего номера карты (код не включен)
- Поддерживает все три дорожки на магнитной полосе и даже дорожки 1 + 2 одновременно
- Легко построить с использованием Arduino или других распространенных деталей
Примечание: MagSpoof не позволяет вам использовать кредитные карты, которые вы не имеете юридического права использовать. Информация о чипе и PIN- коде и Amex не реализована, и для использования MagSpoof вам необходимо иметь / владеть магнитными полосами, которые вы хотите эмулировать. Просто иметь номер кредитной карты и срок действия недостаточно для совершения транзакций. MagSpoof делает позволяешь проводить исследования в других областях magstripes, микроконтроллеров и электромагнетизма, а также узнать и создавать свои собственные устройства, аналогичные другие существующие, коммерческие технологии, такие как Samsung MST и монеты.
Визуализация данных магнитной полосы.
MagSpoof можно использовать как традиционную кредитную карту и просто хранить все ваши кредитные карты (а с модификацией можно технически отключить требования к чипу) в различных впечатляющих и захватывающих форм-факторах, или его можно использовать для исследования безопасности в любой области, которая традиционно требовала магнитная полоса, такая как считыватели кредитных карт, водительские права, ключи от номеров в отелях, автоматические билеты на стоянку и т. д.
Живая демонстрация и подробности доступны в видео:
Релиз: 24 ноября 2015 г.
Исходный код / схема: https://github.com/samyk/magspoof
Как работают магнитные полосы
Визуализация данных магнитной полосы.
Магнитные полосы (магнитные полосы) на самом деле являются магнитными. Что так круто в магнитных полосах, так это то, что, хотя магнитные полосы внутри слабые, они все еще достаточно сильны, чтобы притягивать мелкие частицы железа, и достаточно широки, чтобы мы могли полностью извлечь все данные с магнитной полосы или кредитной карты невооруженным глазом.
На видео я фактически окунаю свою кредитную карту в пакет с оксидом железа. Магнитные элементы в магнитной полосе притягивают оксид железа, и, вытащив его, вы действительно можете увидеть каждый бит на дорожках. Финансовые карты с магнитными полосами могут иметь до трех дорожек, однако кредитные карты имеют только две дорожки (дорожки 1 и 2). Дорожка 2 хранит меньше битов, чем дорожка 1, поэтому имеет более низкую линейную плотность (бит на дюйм). Это значительно облегчает просмотр дорожки 2. Давайте взглянем:
Магнитная полоса кредитной карты.
Лицевая сторона карты:
Магнитная полоса кредитной карты.
Как вы можете видеть на моей карточке, я написал биты над полосами. Две сплошные полосы - это 1, а полоса, за которой следует пробел, - это 0. Сначала давайте перевернем карту на 180 градусов (глядя на нее вверх ногами) и сначала прочитаем ее как младший бит. Мы игнорируем все начальные 0 до самой первой 1.
Дорожка 2 - это 5 бит на символ, сначала младший бит, а 5-й бит - это бит нечетной четности. Взяв каждые 5 бит и считывая первые 4 бита, мы теперь можем начать извлечение номера кредитной карты (и других данных, таких как срок действия, дискреционные данные, CVV / CVC / CSC / CID / CAV в зависимости от типа карты).
Обратите внимание, что CVV отличается от CVV2. CVV хранится на магнитной полосе, а CVV2 печатается на карте. (CVV специфичен для Visa, и у каждого эмитента есть собственное название, такое как CSC, CVC и т. д.)
Магнитная полоса кредитной карты.
Как работает MagSpoof
MagSpoof имитирует магнитную полосу, быстро изменяя поляризацию электромагнита, создавая магнитное поле, подобное магнитной полосе с обычной магнитной полосой, как если бы по ней смахивали. Что невероятно, так это то, что для считывателя магнитной полосы не требуется беспроводной приемник, NFC или RFID - MagSpoof работает без проводов, даже со стандартными считывателями магнитной полосы. Чем сильнее электромагнит, тем дальше вы можете его использовать (несколько дюймов в его текущей версии).
MagSpoof также использует недорогие готовые детали (описанные в разделе «Аппаратное обеспечение»), и его можно собрать почти из ничего, кроме Arduino, провода и батареи! Я использую драйвер двигателя, чтобы обеспечить разумную мощность.
Обычно электромагниты имеют железный сердечник, однако мы теряем сердечник из-за компактности и портативности. Кроме того, хотя железный сердечник действительно делает электромагнит более эффективным, мы по-прежнему производим более чем достаточно энергии для работы.
MagSpoof улучшает новые карты, такие как Coin. Я клиент Coin, и хотя мне нравится их приложение и карта, на самом деле карта работает очень небольшой процент времени. Изучив документацию Coin FCC, я заметил, что они используют две катушки для создания (очень маленького) электромагнитного поля, однако, к сожалению, этого очень мало, и карта работает менее 50% времени для меня.
Я обнаружил, что, эмулируя карту с помощью MagSpoof, если я отправлю дорожку 1 в одну сторону, а затем отправлю дорожку 2 в обратном порядке, каждый считыватель карт будет считать, что я просто провел картой вперед и назад, использовал данные с обеих дорожек и моего сильного электромагнита, и правильно читать все данные. Это чрезвычайно эффективно, использует только одну катушку и работает для обеих дорожек одновременно. Это также позволяет MagSpoof работать на треке 3.
Кроме того, если вы используете Chip-карту с Coin, вам все равно необходимо принести свою реальную кредитную карту, однако, поскольку MagSpoof может отключить Chip-and-PIN (см. Ниже), вам не потребуется приносить свою карту с ты.
Я удалил функцию отключения чипа и PIN-кода из MagSpoof.
Проблемы с безопасностью
Одна из основных проблем, которые я обнаружил, заключается в том, что некоторые из новых форм безопасности (ну, новые в США) устанавливаются в части «служебный код» магнитной полосы, в частности, в микросхеме и PIN- коде.
Сервисный код на магнитной полосе кредитной карты определяет несколько атрибутов карты, в том числе, может ли карта выдавать наличные, где она может работать (на национальном, международном уровне) и, что самое интересное, имеет ли карта встроенную микросхему (чип) и если он имеет штифт (Chip-and-PIN / EMV).
Если у вашей карты есть чип внутри, и вы идете к продавцу, который поддерживает чип, но проводите только магнитную полосу, система точки продажи (PoS) попросит вас опустить карту / чип для дополнительной безопасности, если она ее поддерживает.
Однако биты, указывающие, что карта имеет чип и PIN, могут быть отключены с магнитной полосы. Это означает, что если вы отнесете карту розничному продавцу, который обычно просит вас окунуть, вы можете вообще не окунуть свой чип во время успешной транзакции, полностью уклонившись от мер безопасности.
Коды обслуживания кредитной карты.
Прогноз номера карты American Express
Первоначально к исследованию магнитных полос меня подтолкнула моя карта Amex. После потери карты и быстрой отправки мне новой карты Amex я заметил, что многие цифры совпадают. Я сравнил номера с несколькими другими картами Amex, которые у меня были, а затем сравнил их с более чем 20 другими картами и заменами Amex и нашел глобальную закономерность, которая позволяет мне точно предсказать номера карт American Express, зная полный номер карты, даже если заявлено о пропаже или краже.
Это означает, что если бы я получил вашу карту Amex, а вы назвали ее потерянной или украденной, в тот момент, когда вы получите новую карту, я узнаю номер вашей новой кредитной карты.
Я также знаю новую дату истечения срока действия, поскольку дата истечения срока действия фиксируется в зависимости от того, когда была запрошена новая карта, и вы можете определить, была ли запрошена новая карта, выполнив аутентификацию на существующей карте.
CID (также известный как CVV2 на Visa), напечатанный на карте, защищен секретным ключом 3DES, который шифрует PAN (номер основного счета, он же номер кредитной карты), код услуги (см. Выше) и срок действия. Код услуги можно легко определить, так как большинство карт будут содержать один и тот же код услуги.
Я также определил, что CSC (по сути, ведет себя как CID или CVV2 на магнитной полосе) для утерянной или украденной карты продолжает работать для новой прогнозируемой карты. Злоумышленник сможет использовать CSC украденной карты с предсказанным номером карты и сроком действия для совершения реальных покупок.
Чтобы действительно выполнить транзакцию, не вызывая подозрений, злоумышленник сможет использовать записывающее устройство на магнитную полосу (например, хорошо известный MSR605) или такое устройство, как MagSpoof, для «загрузки» недавно созданной информации карты на карту, такую как Coin. Сама Coin фактически не проверяет CID (CVV2), что позволяет злоумышленнику загружать данные, а затем использовать карту Coin лично, не зная CID и не используя эти различные проблемы, а также отключая Chip-and-PIN.
Я уведомил American Express о проблеме и не буду выпускать их алгоритм.
Аппаратное обеспечение
MagSpoof.
Atmel ATtiny85 (микроконтроллер)
Atmel ATtiny85 - это микроконтроллер для управления всей системой. В нем хранятся все данные о магнитной полосе / кредитной карте. В более тонкой версии размером с кредитную карту (толщиной 0,8 мм!) Я использую [ATtiny10].
L293D H-Bridge (драйвер двигателя)
Я использую H-образный мост L293D для привода электромагнита. L293D - это драйвер двигателя, но на самом деле двигатели приводятся в движение электромагнитом (-ами) и магнитами внутри них. Здесь должен работать любой стандартный драйвер. Технически L293D не работает при 3,7 В (напряжение LiPo батареи), но работает на удивление хорошо. В версии размером с кредитную карту я предлагаю использовать TI DRV8835 или TI DRV8833.
Магнитный провод 24AWG (катушка)
Я использую где-то около 24AWG магнитного провода в качестве катушки для создания электромагнитного поля. Этот кусок провода невероятно создает электромагнитное поле, которое заставляет устройство считывания карт поверить в то, что карта была протянута. Невероятный. Быстро контролируя поляризацию этого поля, считыватель магнитной полосы полагает, что перевернутые биты реальной карты проходят через считыватель.
100 мАч 3,7 В LiPo аккумулятор (мощность)
Наше устройство питается от небольшой липо-аккумуляторной батареи емкостью 100 мАч, 3,7 В. Для версии размером с кредитную карту (здесь не показана) я использую батарею от PowerStream.
Конденсатор 100 мкФ
Сохраните в этом конденсаторе достаточно энергии, чтобы обеспечить электромагнит питанием, когда оно нам нужно, иначе он потянет слишком большой ток и сбросит микроконтроллер. Это комплект конденсаторов, который я использую, поскольку в нем есть все необходимые мне стандартные значения.
ВЕЛ
Чтобы сигнализировать нам, когда мы передаем информацию. Я использую этот комплект светодиодов, так как в нем много разных светодиодов.
Резистор 100 Ом
Не перегорайте светодиод.
Мгновенный переключатель
Включите электромагнит.
Мини-Протоборд
Для того, чтобы спаять все вместе.
Схема MagSpoof (версия DIP).
Прошивка
MagSpoof
Исходный код и схему MagSpoof можно полностью получить из моего github: https://github.com/samyk/magspoof
MagSpoof совместим с фреймворком Arduino и может работать как на традиционных Arduinos, так и на чипах ATtiny.
Ресурсы
Вы можете узнать о магнитных полосах и кредитных картах из нескольких источников, в том числе:
- Мое видео на MagSpoof
- ISO / IEC 7810
- ISO / IEC 7811
- ISO / IEC 7812
- ISO / IEC 7813
- ISO 8583
- ISO / IEC 4909
- Стандарты магнитных полос MagTek (pdf)
- Карточка с магнитной полосой в Википедии
- Множественный интерфейс веб-служб Amex
Контактное лицо: @SamyKamkar
Вы можете увидеть больше его проектов на http://samy.pl
