7:41
25/11/2015

Jeden z badaczy bezpieczeństwa, Samy Kamar, zaprezentował urządzenie własnej konstrukcji o nazwie MagSpoof. Bazuje ono na Arduino i jego celem jest bezprzewodowe wysyłanie fal elektromagnetycznych, które wzbudzają czytnik paska magnetycznego w terminalach płatniczych. Dzięki MagSpoof można więc zdalnie wysłać na terminal dowolne dane karty, nie posiadając jej przy sobie. NFC/RFID nie ma tu nic do rzeczy.

Jak działa MagSpoof?

MagSpoof w swoim działaniu jest zbliżony do znanych rozwiązań takich jak Samsung MST i Coin. Wszystkie bazują na tricku, jaki od lat można było przeprowadzać na tradycyjnych “kaseciakach”.

magdip-schematic

Urządzenie poprzez zmianę polaryzacji elektromangesu produkuje pole, jakie jest generowane podczas przeciągnięcia karty przez czytnik. Sam zresztą twórca MagSpoofa przyznaje, że stworzenie urządzenia ma służyć przede wszystkim jako platforma do dalszych badań nad kartami wykorzystującymi paski magnetyczne (rozwiązania popularne nie tylko w sektorze finansowym, ale również hotelarskim czy parkingowym) — Samy udostępnił specyfikację sprzętową i firmware.

magspoof

Choć przy pomocy MagSpoofa można wygenerować i przesłać na czytnik dowolny numer karty (zawartość paska magnetycznego), to urządzenie w przypadku transakcji finansowych nie będzie za bardzo użyteczne — zobaczmy dlaczego.

Przewidywalny algorytm generowania duplikatów zagubionych kart

Projekt Samego zaczął się w momencie, w którym otrzymał on duplikat swojej zagubionej karty. Przyglądając się nowemu numerowi zauważył pewien wzorzec, z jakiego skorzystał wystawca karty do wygenerowania kolejnego numeru.

Pochwalamy spostrzegawczość badacza, ale trzeba tu Samemu zwrócić uwagę, że nie odkrył on Ameryki. Coś, co szumnie nazywa w swojej publikacji “odkryciem globalnego algorytmu” jest publicznie znane od dawna. Numery karty są bowiem opisane normą ISO i od lat generowane zgodnie z następującym formatem:

1 + 5 + 10 + 3

Gdzie kolejne składowe to:

  • MII – Major Industry Identifier. Oznacza przeznaczenie karty. Dla kart płatniczych poprawne wartości to (4, 5, 6). 1 np. oznacza karty lojalnościowe używane w lotnictwie, a 7 na stacjach benzynowych.
  • IIN – Issuer Identifier Number (BIN). Powszechnie znane są IIN-y poszczególnych banków
  • AN – Account Number. Faktyczny numer rachunku klienta. To tu następuje zmiana przy wydaniu “kolejnej” karty.
  • Suma Kontrolna (algorytm Luhna).
Pasek magnetyczny obsypany opiłkami żelaza, aby ujawnić namagnesowane części paska.

Pasek magnetyczny obsypany opiłkami żelaza, aby ujawnić namagnesowane części paska.

Na pasku magnetycznym karty zapisane są także, poza numerem, dodatkowe informacje, (np. takie czy karta posiada Chip, który musi być wykorzystany, czy kartą da się wybierać gotówkę z bankomatu):

Lista kodów serwisowych

Lista kodów serwisowych

Samy sugeruje, że możliwy jest następujący atak:

    1. Ukradnij komuś kartę i rób nią fraudy, dopóki właściciel się nie zorientuje (Oh wait! Nie zapłacisz nią w sklepach bez podania PIN-u, masz jedynie szanse na fraudy przez internet, bo transakcje MO/TO nie potrzebują pinu, a CVV2, który masz wypisany na skradzionej karcie)

    2. Poczekaj aż ktoś zorientuje się, że “zgubił” kartę i poprosi o duplikat.

    3. Przewidź (a tak naprawdę wylicz) kolejny numer karty

    4. Odpowiednio dopasuj datę ważności nowej karty (zazwyczaj +4 lata od miesiąca kradzieży)

    5. Zaprogramuj na MagSpoof dane nowej karty. Ponieważ nie możesz przewidzieć nowego CVV2, fraudy w internecie odpadają. Odpadają też fraudy w terminalach, bo nie nasz PIN-u

    6. W serwisowej części paska magnetycznego dodaj informację, że karta nie ma Chipa i autoryzacja jest przez podpis, a nie przez PIN.

Czy teraz możesz nią płacić kartą bez znajomości PIN-u? Nie do końca. Możliwość zrealizowania transakcji bez PIN-u zależy nie tylko od “deklaracji” po stronie karty — swoje zdanie na ten temat może też mieć terminal. Z tego powodu, atak nie będzie możliwy do przeprowadzenia w każdym sklepie, a w Polsce w praktycznie żadnym. Dodatkowo, przy autoryzacji przez podpis, kasjer ma obowiązek sprawdzić czy złożony podpis pasuje do wzoru na karcie — a tej przecież nie posiadasz i pokazać nie możesz — więc też fiasko.

Podsumowując, urządzenie stworzone przez Samy’ego, choć widowiskowe, to powinno być traktowane jedynie jako ciekawostka i przykład praktycznej implementacji na tanim sprzęcie czegoś, co jest znane od lat. Generowanie numerów i ich testowanie ma sens w przypadku parkingów czy hoteli, ale ataków “na karty”, czy też terminale, MagSafe w ogóle nie ułatwia. Atakujący dalej musi ukraść (pozyskać) dane karty, a to właśnie ten element ataku jest najtrudniejszy. Wykradzione dane z pasków magnetycznych zdecydowanie sensowniej jest nagrać na “czystą” kartę — mniej wzbudzi to podejrzenie niż przykładanie mikrokotrolera z anteną do czytnika kart…

Tak czy inaczej, projekt Samego jest warty uwagi — w przystępny sposób tłumaczy jak na pasku magnetycznym kodowane są informacje. Polecamy video nagrane przez badacza:

Przeczytaj także:

31 komentarzy

Dodaj komentarz
  1. To że sprzedawca ma porównać wzór podpisu to nie jest żadne zabezpieczenie. Teoretycznie powinien też porównać numer karty, dane posiadacza i datę ważności z wydrukiem z terminala, a w praktyce oddają kartę zanim taki wydruk wyjdzie lub wręcz w ogóle na nią nie patrzą.

    • Sprzedawca podczas płatności kartą ma również obowiązek porównać numer karty z numerem pokazanym w terminalu, więc zgadłeś ^^ A co jeśli tylko paek magnetyczny jest zmieniony? Wtedy pokażą się 2 różne numery

  2. “Dodatkowo, przy autoryzacji przez podpis, kasjer ma obowiązek sprawdzić czy złożony podpis pasuje do wzoru na karcie — a tej przecież nie posiadasz i pokazać nie możesz — więc też fiasko.”

    To po co był punkt 1.?

    “1. Ukradnij komuś kartę i rób nią fraudy, dopóki właściciel się nie zorientuje”

    Polacy zazwyczaj podpisują swoje karty, nawet jeśli są chipowe.

    • Bo karta niepodpisana jest w świetle przepisów organizacji kartowych zwyczajnie nieważna.

  3. W Toyocie Chodzeń widzialem jeszcze ten patent do kopiowania wypuklosci karty na druczek w celu placenia (zapomnialem juz jak to sie nazywa). wiec jeszcze mozna troche fraudow porobic i to nawet bez paska magnetycznego

    • Żelazko.

    • Imprinter

  4. Polacy moze dlatego podpisuja karty ze na każdej karcie (nawet chipowej) jest adnotacją “kartą bez podpisu jest nieważna”

  5. Ja zapłaciłem w Biedronce przez podpis. Najpierw pani stwierdziła że płatności zbliżeniowe nie działają w mojej karcie, potem próbowałem przez chip, ale terminal stwierdził że chip jest uszkodzony i na końcu przez podpis. Oczywiście żadnych danych nie sprawdzała. Kazała się tylko podpisać.

    • Mi zdarzyło się już trafić na trefny terminal z przepięciem na układzie zbliżeniowym, po którym faktycznie padł chip. Ale takie rzeczy z miejsca wymieniają, przynajmniej w Pekao – wystarczy przynieść im kartę i powiedzieć, o co chodzi.

  6. OMG, ależ odkrycie ;)

    W jednej z firm ładnych “parę” lat temu kolega zrobił w pełni funkcjonalny emulator kart magnetycznych, firma niestety nie była zainteresowana wdrożeniem tego urządzenia (a nie dość, że by ułatwiło pracę – to jeszcze by pozwoliło zaoszczędzić sporo $$$).
    W tym roku UL/Collis wypuścił urządzenie o nazwie SmartStripe, które robi to samo…

    Jest coś takiego jak Coin – karta z “programowalnym paskiem magnetycznym” (w sumie działa na tej samej zasadzie), w przyszłym roku jeszcze dojdzie to tego Plastc. Oczywiście to “wynalazki” z kraju który nawet Korea Północna wyprzedziła w kwestii wdrożenia EMV… tak, tak – z USA ;)

  7. w USA nikt nie sprawdza podpisu. Podpisuje sie na terminalu elektronicznym dlugopisem. Kasjerka nie dotyka nawet karty (nie wiem czy powinna). Sa jeszcze terminale samoobsługowe, tam też płaci się karta z podpisem i kto ma wtedy sprawdzić podpis?

    • Gdy byłem w USA to w każdym jednym sklepie razem z kartą wymagali okazania dowodu osobistego – sprawdzali dane karty oraz podpis.

    • w USA proszą o id tylko dla kart kredytowych, dla debetowych nigdy. Inaczej może być dla zagranicznych debetowych, ale tego nie próbowałem.

  8. Kasjer podchodzi i potwierdza zgodność z podpisem na karcie. Tak np masz w tesco na kasach samoobslugowych

  9. i po co pasek na podpis, skoro sporą część zakupów robi się zbliżeniowo, ba – nawet już przestają wyjmować karty z portfeli.. albo o taki telefon z nfc..

  10. Co w momencie jak Janusz upatrzył sobie ofiarę, podejrzał wpisywany PIN i zakodował w głowie. Następnie nagrał dane na czystą kartę i poszedł na zakupy?

  11. Wojna z Apple murowana za te “MagSafe” :D

  12. Przecież tak właśnie mają działać płatności SamsungPay :-)

  13. Jak już jeden z komentujących wspomniał, w USA pasek magnetyczny cały czas króluje, i cały czas należy się podpisać. W wielu sklepach (safeway, target, walmart) do tego celu wykorzystuje się terminale elektroniczne, gdzie personel nawet nie widzi, co klient wpisuje (chyba, że mają podgląd na swoim monitorze). Regularnie podpisuję się poprzez postawienie krzyżyka, także w nowych sklepach – jak dotąd (~1 rok) nie wzbudziło to żadnych podejrzeń.

    Co więcej, moja karta kredytowa posiada chip, i zdarzyło mi się, że terminal odrzucił kartę po sprawdzeniu paska magnetycznego i kazał użyć chipa. Także i w takich przypadkach muszę się podpisać. W rozmowie z bankiem ów stwierdził, że moja karta kredytowa nie posiada PINu, jedynie karta debetowa posiada PIN.

    Formą pseudo PINu karty, która normalnie go nie ma (większość kart kredytowych) jest kod ZIP (kod pocztowy) adresu zamieszkania przypisanego do karty – należy go podać np. podczas przedpłacenia na stacjach benzynowych, czy przy transakcjach w internecie (zamiast CVV).

  14. Przecież to nie Arduino tylko ATtiny.

    • Mnie też wkurza, jak włoska korporacja robi sobie reklamę ich arcydrogich i programowo nieefektywnych odpowiedników zwykłych atmelowych procków. Każdy bardziej ogarnięty elektronik użyje przecież gołego procka choćby ze względu na to, że można sobie samemu ustawić fusy jak się chce (a to jest różnica, czy procesor działa z np. f=1MHz, czy f=8MHz).

    • @Lukasz032
      Ale się uśmiałem, że niby w procku z bootloader arduino nie da się zmienić fusów? Da się, tylko trzeba za każdym razem wgrywać bootloader na nowo. hiahiahia. Pseudo elektro Łukaszek.

      O jakich odpowiednikach mówisz??? Jak arcydrogo? Przecie to opensource.

    • Nie cierpię takiego sposobu wyrażania się, ale skoro to widzę, to kup sobie opensource’owo fizyczną płytkę.

      Już wolę samemu wykonać płytkę za niecałe 15 zł (jakieś 7 zł procek + 3 zł laminat + chemia + grosze za komponenty jak się kupuje hurtowo) niż wydawać >40 złociszy za to samo i przy okazji nie móc podpiąć tego do zwykłego programatora i zaprogramować tego prosto z AtmelStudio.

    • Ty nie rozumiesz tego co ja napisałem. Nie powiedziałem żebyś kupił, wykonaj ją sam! Jak nie możesz podpiąć programatora?Hahaha, że niby nie możesz programować układów z poziomu AtmelStudio, haha. Akurat ja tak robię. Jest do tego wtyczka. To żaden argument… A co do programatora… da się USBasp?

    • Zwykłą Atmegę z usbasp przez AS6 da się, tylko trzeba nakombinować z interfejsowaniem avrdude, bo jedynie atmelowskie programatory są natywnie obsługiwane z AS6 (no i ich klony – Atmel robi programatory na procesorach… Atmela, które można też kupić i zaprogramować wsadem wyjętym z oryginału!)
      Tak jak mówię, jeżeli bawić się w programowanie, to żadne arduina i inne wynalazki, tylko procek, peryferia i AS6, przynajmniej pisze się w czystym ANSI C nie kombinując z udziwnieniami i jakimś podziemnym kodem. Tracimy tylko idiotoodporność, bo jak któryś wyrzuci fusa SPIEN albo zapnie RSTDISBL to tylko Dragonem potem taki procek ruszy (albo innym programatorem równoległym).

    • Szkoda mi cię cytować. Okej żyj sobie tam w niewiedzy.

  15. Ty nie rozumiesz tego co ja napisałem. Nie powiedziałem żebyś kupił, wykonaj ją sam! Jak nie możesz podpiąć programatora?Hahaha, że niby nie możesz programować układów z poziomu AtmelStudio, haha. Akurat ja tak robię. Jest do tego wtyczka. To żaden argument… A co do programatora… da się USBasp?

  16. “Projekt Samego” – chyba “Samiego” powinno być

  17. To nie jest MagSafe, to MagSpoof. Wypada poprawić.

  18. Karty są coraz lepsze, nie posiadają większości z tychże wad. Zupełnie inną sprawą, że większość w obiegu jest leciwa i podatna na ataki, np. kopiowania. Nie od dziś wiadomo, że profesjonalny złodziej poradzi sobie z pozyskaniem PIN’u – zwłaszcza, jeśli ofiara nie jest: 1) też złodziejem 2) (byłym) policjantem/żołnierzem/sportowcem wyczynowym 3) kobietą z co najmniej dwójką dzieci 4) poprawnie przeszkolona przez Lotto. P.S. nie wiem jak na bitsecie robią te grafiki na ESP8266.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.