Mobile Banking Bezpieczeństwa i Oceny Ryzyka Considerations

05 sierpnia 2008 w bankowości i EFTPoS, bezpieczeństwa

Przy rozważaniu Mobile i związanych z nimi ryzyka, ocenę podejścia zależy w dużym stopniu na rozwiązanie powstaje lub przewidziane.
Ogólnie rzecz biorąc, podejście oparte jest na warstwowej wspieranie i wokół technologii i technik stosowanych.

Oto kilka rzeczy do rozważenia.

Ocen ogół skupia się na dwóch podstawowych rzeczy.

1 / wrażliwość
Co to jest wysyłana. np.. numery saldo adres domowy, numer itp.
nie mogą być wrażliwe na ale mogą być uznane przez klienta jako wrażliwe.
itp ... ... ....

2 / Możliwość do
Jakie średnio jest używany?
Czy łatwo
Co wykorzystywany jest?
Czy wszystkie bezpiecznych ścieżek (klienta i back end)?
Czy istnieje 3rd party zaangażowanych w rozdzielni z transakcji?
itp ... ... ...

Na co warto zwrócić uwagę:

  • resetuje wysyłane do klienta, nie należy stosować jako jedynego sposobu dostępu do kont. Dodatkowe szczególne klienta (ewentualnie statycznych) przekazać słowa / frazy powinny być wykorzystywane w uzupełnieniu do dynamicznie generowane można sniffed (w zależności od trybu i lokalizacji).
  • Jeśli WAP jest używany, wszystkie urządzenia są zdolne do Jeśli urządzenia nie są zdolne do należy odmówić do tych urządzeń? Jeśli po stronie klienta lub (win CE, itp.), zapewnienie to nie może być naruszona przez Trojan i innych technik.
  • Czy organizacja uznane certyfikaty po stronie klienta w celu sprawdzenia urządzenia przed transakcje są akceptowane? Rozważmy kilka urządzenia i użytkownika metod (bardzo rozwiązanie utrzymaniu).
  • Większość mobilnych terminali POS szyfrowania klient wpisuje numer ale nie szyfruje wszystko wewnątrz Jeśli jest zagrożona, należy rozważyć, czy można krakingu i jeśli niezaszyfrowane wrażliwe. Rozważ dodatkowe tj. wykorzystanie wszystkich wiadomości (SSL, lub korzystać z terminalu, że wykorzystuje pochodne Unique Key transakcję
  • Wiele wnioski zostały dotknięte takimi jak typowy hacks sesji, injection, nie losowo klucze sesji (po stronie klienta i stronie itp ... Te typowe hacks należy rozważyć w bezpiecznej SDLC i QA Procesy po świadomi są i / lub rozmieszczone.
  • PBX systemów okablowania i dystrybucji ramek mogą mieć urządzeń podłączonych do gromadzenia transakcji. Urządzenia bezprzewodowe są obecnie podłączone do tych systemów. Atakujący siedzi w samochodzie na parkingu zewnątrz. Często jest to zrobione w super rynkach.
  • Wireless bramy, jeśli nie są szyfrowane łatwo zbierane przez nikogo w zasięgu bezprzewodowej. 802,11 oraz inne bezprzewodowe / podczerwonego media są wykorzystywane (oceny i średnich używanych).
  • Czy organizacja uważana dynamiczne klucze do użytkowników telefonów komórkowych? Istnieją pewne bardzo niskich kosztach SecureID rozwiązań dostępnych obecnie, ale klienci muszą mieć tych urządzeń na nich, kiedy chcesz zrobić

Cisco Command Cheat Sheet

04 lipca 2008 w infrastrukturze

Znalazłem listę użytecznych które choć chciałbym umieścić tutaj. Kiedy mogę dostać szansę będę kontynuować, aby rozwinąć listę i poszerzyć polecenie set.

Dzięki zastosowaniu fastget2you.com Dołączył Z # missomhack Wspólnoty na oryginalne listy.

ROUTER :

  • Config # terminalu edycji - pozwala na wzmocnionej edycji polecenia
  • Config # terminal monitor - pokazuje wyjście Telnet
  • Config # terminal IP netmask formacie szesnastkowym | bit-count | decimal - zmiany formatu maski podsieci

Nazwa hosta:

  • Config # hostname ROUTER_NAME

BANNER:

  • Config # banner motd # # - # może być zastąpiony przez dowolny znak, musi rozpocząć i zakończyć wiadomość

OPIS:

  • Config # opis Jest to POŁUDNIOWEJ ROUTER - mogą być wprowadzane na config-jeżeli poziom

Zegar:

  • Config # zegar czasowej Centralnego -6
    # Ustawić zegar hh: mm: ss dd miesiąc rrrr - Przykład: zegar ustawić 14:13:00 25. sierpień 2003

Zmiana REGISTER:

  • Config # config-register 0 × 2100 - ROM Monitor Mode
  • Config # config-register 0 × 2101 - boot ROM
  • Config # config-register 0 × 2102 - Uruchomienie z NVRAM

CDP:

  • Config # cdp run - Wlacza CDP na
  • Config # cdp holdtime 180 - Określa czas, że urządzenie pozostaje. Wartość domyślna wynosi 180
  • Config # cdp Minutnik 30 - Ustawia aktualizacji timer.The domyślnie 60
  • Config # int 0
  • Config-if # cdp umożliwić - Umożliwia cdp na
  • Config-if # no cdp umożliwić - Wyłącza CDP na
  • Config # no cdp run - Wlacza CDP off

HOST TABELA:

  • Config # ip hosta ROUTER_NAME INT_Address - Przykład: ip hosta lab-a 192.168.5.1
    -lub -
  • Config # ip hosta RTR_NAME INT_ADD1 INT_ADD2 INT_ADD3 - Przykład: ip hosta lab-a 192.168.5.1 203.23.4.2 199.2.3.2 - (dla e0, s0, s1)

  • Config # ip domain-lookup - Powiedz routera do wyszukiwania nazw domen
  • Config # ip 122.22.2.2 - lokalizacja
  • Config # ip domain-name cisco.com - domeny dodać do końca nazwy

CZYSZCZENIE COUNTERS:

Tras statycznych:

  • Config # ip route Net_Add SN_Mask Next_Hop_Add - Przykład: ip route 192.168.15.0 255.255.255.0 205.5.5.2
  • Config # ip route 0.0.0.0 0.0.0.0 Next_Hop_Add - domyślna trasa
    -lub -
  • # IP domyślnej konfiguracji Net_Add - Portal LAN

Routing IP:

  • Config # IP routing - domyślnie
  • Config # router rip
    -lub -
  • Konfiguracji routera igrp # 100
  • Config # 0
  • Config-if # ip address 122.2.3.2 255.255.255.0
  • Config-if # no shutdown

IPX trasy:

WYKAZÓW:

IP Standard 1-99
IP Rozszerzony 100-199
IPX Standard 800-899
IPX Rozszerzony 900-999
IPX Filtry 1000-1099

IP STANDARDOWE:

  • Config # listę 10 zezwolenia 133.2.2.0 0.0.0.255 - umożliwić wszystkim src ip w 133.2.2.0
    -lub -
  • Config # listę 10 zezwolenia hosta 133.2.2.2 - określa konkretnego hosta
    -lub -
  • Config # lista zezwolić 10 - umożliwia dowolny adres
  • Config # int 0
  • Config-if # ip w grupie - także dostępne obecnie

IP EXTENDED:

  • Config # 101 zezwolenia tcp 133.12.0.0 0.0.255.255 122.3.2.0 0.0.0.255 eq
    -protokołów: TCP, UDP, icmp ip (bez gniazd następnie), m.in.
    source następnie adres docelowy
    -eq, GT, LT dla porównania
    -gniazda można numerycznej lub nazwa (23 lub 21 lub ftp, itp)
    -lub -
  • Config # 101 deny tcp dowolnego hosta 133.2.23.3 eq www

lub

-lub -

  • Config # 801 zezwolenia -1 -1 - "-1" jest taka sama jak "każdy" z / hosta adresy
  • Config # 0
  • Config-if # IPX grupy 801 obecnie IPX EXTENDED:
  • Config # 901 zezwolenia 4AA wszystkich 4BB wszystkich
    - Zezwolenie protokołu src_add gniazda dest_add gniazda
    - "Wszystko" obejmuje wszystkie gniazda, lub można użyć gniazda numery

-lub -

  • Config # 901 zezwolić wszelkie jego wszelkie jego
    Pozwolenia-protokołu z dowolny adres w każdej gniazda, aby przejść w dowolnym miejscu
  • Config # 0
  • Config-if # IPX w grupie 901 IPX FILTER:
  • Config # listy 1000 zezwolenia 4aa 3 - "3" to usługa

-lub -

-lub -

NAMED WYKAZÓW:

  • Config # ip standardowym LISTNAME
    -może być IP lub IPX, standardowe lub rozszerzone
    -po zezwoleniu lub odmówić listy
  • Config # zezwolić
  • Config-if # ip grupy LISTNAME w
    wykorzystanie listy nazwę zamiast listy numer
    -pozwala na większą ilość list

PPP SETUP:

  • Config-if # ppp
  • Config-if # ppp chap pap
    -kolejność, w jakiej będą one wykorzystywane
    tylko próbował z wymienione
    -jeżeli jedna zawiedzie, wtedy połączenie zostanie zakończone
  • Config-if # exit
  • Config # username Lab-b 123456
    -username jest router, który będzie podłączenie do tego
    tylko określone routery mogą łączyć

-lub -

  • Config-if # ppp chap hostname ROUTER
  • Config-if # ppp chap 123456
    -jeżeli jest to zestaw na wszystkie routery, każdy z nich może połączyć się z jakimkolwiek innym
    ustawione tak samo na wszystkich dla łatwej konfiguracji

ISDN SETUP:

  • Config # isdn basic-5ess - ustalona przez telekomunikacji
  • Config # szeregowy 0
  • Config-if # isdn spid1 2705554564 - isdn "numer telefonu" w linii 1
  • Config-if # isdn spid2 2705554565 - isdn "numer telefonu" linii 2
  • Config-if # PPP - lub HDLC, LAPD

DDR - 4 Kroki prowadzące do utworzenia ISDN z DDR Konfiguracja przełącznika

1. Config # isdn basic-5ess - może być sporządzona w konfiguracyjnym

2. Konfigurowanie tras statycznych
Config # ip route 123.4.35.0 255.255.255.0 192.3.5.5 - wysyła ruch przeznaczony dla 123.4.35.0 do 192.3.5.5
Config # ip route 192.3.5.5 255.255.255.255 bri0 - określa w jaki sposób dostać się do 192.3.5.5 (poprzez bri0)

3. Konfiguracja
Config-if # ip address 192.3.5.5 255.255.255.0
Config-if # no shutdown
Config-if # ppp
Config-if # dialer-group 1 - porady dialer-list do tego
Config-if # dialer map ip 192.3.5.6 nazwa Lab-B 5551212
podłączyć do laboratorium w b-5551212 IP 192.3.5.6, jeśli istnieje ciekawe ruchu
można również użyć "dialer string 5551212" zamiast, jeśli istnieje tylko jeden router do łączenia się

4. Określ interesujące ruchu
Config # dialer-list 1 ip zezwolić
-lub -
Config # dialer-list 1 ip listy 101 - korzystać z listę 101 jako dialer listy

5. Inne opcje
Config-if # hold-queue 75 - Kolejka 75 pakietów przed wybierania
Config-if # dialer load-próg 125 albo
obciążenia potrzebne przed drugim wierszu zostanie podniesiony
- "125" jest dowolną liczbą 1-255, gdzie% obciążenia jest x/255 (tj. 125/255 wynosi około 50%)
-można sprawdzić przez w, obecnie, lub ze

Config-if # dialer idle-timeout 180
-określa, jak długo pozostać bezczynny przed kończące sesję
domyślna to 120.

FRAME Z INSTALACJĄ:

  • Config # szeregowy 0
  • Config-if # - cisco domyślnie mogą się zmienić do ietf
  • Config-if # LMI Cisco - Cisco domyślnie również ANSI, q933a
  • Config-if pasma # 56
  • Config-if # szeregowy 0,100 punkt-punkt - subinterface
  • Config-if # ip address 122.1.1.1 255.255.255.0
  • Config-if # 100
    -odwzorowuje dlci do
    -można dodać i / lub IETF na koniec
  • Config-if # szeregowy 1,100 wielopunktowe
  • Config-if # nie odwróć-arp - włącza IARP startu; dobrego zrobić
  • Config-if # map ip 122.1.1.2 48 ietf
    -mapy IP do dlci (48 w tym przypadku)
    -IARP wymagane, jeśli jest wyłączony
    -ietf i są opcjonalne
  • Config-if # map ip 122.1.1.3 54

SHOW COMMAND

  • Pokaż list - wszystkie list na routerze
  • Pokaż cdp - cdp timer i holdtime
  • Pokaż cdp wpis * - tak samo jak obok
  • Pokaż szczegółowo cdp sąsiadów - szczegóły sąsiada z ip dodawać i ios wersji
  • Pokaż cdp sąsiadów - id lokalne holdtime, możliwości platformy portid
  • Pokaż cdp - int bieżące cdp i
  • Pokaż cdp ruchu - cdp pakietów wysłanych i odebranych
  • Pokaż kontrolerów seryjny 0 - DTE lub DCE statusu
  • Pokaż dialer - liczba razy dialer string osiągnięto inne statystyki
  • Pokaż flash - pliki w pamięci flash
  • Pokaż LMI - LMI statystyki
  • Pokaż map - statyczne i dynamiczne mapy 's
  • Pokaż - "S i dlci's
  • Pokaż historię - polecenia wpisane
  • Pokaż gospodarze - zawartość tabeli hosta
  • Pokaż int f0/26 - statystyki z f0/26
  • Pokaż 0 - pokazują statystyki sieci 0
  • Pokaż IP - ip config przełączników
  • Pokaż ip - ip na przełącznik
  • Pokaż ip - ip konfiguracji
  • Pokaż IP - protokoły routingu i liczniki
  • Pokaż ip route - wyświetla IP routing table
  • Pokaż IPX list - takie same, tylko IPX
  • Pokaż IPX interfejsów - RIP i informacje są wysyłane i odbierane, adresy IPX
  • Pokaż IPX trasy - IPX dróg w tabeli
  • Pokaż IPX serwery - tabeli
  • Pokaż IPX ruchu - RIP i info
  • Pokaż isdn aktywnych - numer stanowiska
  • Pokaż isdn status - pokazuje Spids jeśli są ważne, jeśli jest podłączony
  • Pokaż mac-address-table - zawartość dynamiczną tabeli
  • Pokaż protokołów - kierowane protokołów i interfejsów net_addresses
  • Pokaż działa-config - szczypta plik konfiguracyjny
  • Pokaż sesje - połączenia poprzez do zdalnego urządzenia
  • Pokaż starcie-config - NVRAM plik konfiguracyjny
  • Pokaż terminalu - pokazuje historia rozmiar
  • Pokaż a / b - stat portu 26/27
  • Pokaż wersję - ios info, czas, adres przełączać
  • Pokaż vlan - wszystkie skonfigurowane VLAN's
  • Pokaż vlan-członkostwa - vlan przypisań
  • Pokaż vtp - vtp configs

CATALYST COMMAND
Dla Native IOS - Nie CatOS

WŁĄCZAJ ADRES:

  • Config # adres IP 192.168.10.2 255.255.255.0
  • Config # ip default-gateway 192.168.10.1 DUPLEX MODE:
  • Config # 0 / 5 - "fastethernet" do 100 Mbps porty
  • Config-if # pełnego dupleksu - również pół | Auto | pełnej kontroli przepływu

SWITCHING MODE:

  • Config # przełączanie trybu przechowywania i przekazania - również fragment wolny

Adres MAC configs:

  • Config # mac-address-table stałe aaab.000f.ffef e0 / 2 - tylko Mac będzie pracować na tym porcie
  • Config # mac-address-table Ograniczony statyczne aaab.000f.ffef e0 / 2 e0 / 3
    port 3 może jedynie wysyłać w porcie 2 z mac
    -bardzo restrykcyjne
  • Config-if # portu bezpieczna max-mac-count 5 - pozwala jedynie 5 adresów MAC zamapowany do tego portu

VLAN:

  • Config # vlan 10 name FINANSE
  • Config # 0 / 3
  • Config-if # vlan-członkostwa statyczne 10 LINKI:
  • Config-if # on - także off | auto | pożądane | nonegotiate
  • Config-if # nie vlan-2
    -usuwa vlan 2 od portu
    -domyślnie wszystkie VLAN są ustawione na portu

    Konfiguracja VTP:

  • Config # usunąć vtp - powinny być wykonane przed dodając do
  • Config # vtp - domyślnie jest a także klienta i przejrzyste
  • Config # vtp domeny Camp - nazwa nie ma znaczenia, tak wszystkie przełączniki używają tego samego
  • Config # vtp 1234 - ograniczona
  • Config # vtp przycinanie umożliwić - ograniczenia emisji vtp tylko przełączniki dotknięte
  • Config # vtp przycinanie wyłączyć FLASH UPGRADE:
  • Config # kopię tftp: / / 192.168.5.5/configname.ios opcode - "opcode" dla IOS aktualizacji "NVRAM" na starcie config

DELETE CONFIG STARTUP:

  • Config # usunąć NVRAM

Breaking VISA PIN

02 lipca 2008 w bankowości i EFTPoS

Poniżej znajduje się artykuł znalazłem niedawno. To jeden z najbardziej wszechstronnych opisy Value

Myślałem, że będzie replikować go tutaj dla moich lokalne odniesienia.

Jako komentarz zostały dokonane w odniesieniu do gramatyki użyte w oryginalnym, mam poprawione niektóre z oczywistych błędów przy jednoczesnym zachowaniu kontekście pierwotnego materiału.

http://69.46.26.132/ ~ biggold1/fastget2you/tutorial.

--- oryginalny ----

Przedmowa
Czy zdarzyło Ci się zastanawiać, co by się stało, jeśli stracisz lub i ktoś go znajdzie. Czy dana osoba jest w stanie wycofać gotówkę z bankomatów guessing, somehow, Ponadto, jeśli stwierdzi, którzy byli czyjejś Pan spróbować odgadnąć i podejmują szansę niektóre łatwe Oczywiście odpowiedź na oba pytania powinny być "nie". Praca ta nie zajmuje się drugie pytanie, to kwestia Niniejszym próbuję odpowiedzieć na pierwsze pytanie.

Wszelkie informacje wykorzystywane do tych prac jest publiczna i można swobodnie znaleźć w Reszta jest sprawą z zakresu i programowania, w ten sposób możemy dowiedzieć się i zabawy. I ujawniają żadnych tajemnic. Ponadto, w celu (i ostatecznego tej pracy jest wykazanie, że algorytmy są jeszcze wystarczająco silne, aby zapewnić wystarczające Wszyscy wiemy, nie jest

Ta praca analizuje jedną z najczęstszych algorytmów, używanego przez wiele (kart i i próbuje dowiedzieć się, jak odporna jest guessing ataków. Według "zgadywaniu" Nie oznacza wybór losowy i próbuje je w bankomacie. Jest powszechnie wiadomo, że generalnie mamy kolejne trzy próby, aby wprowadzić prawo jeśli nie prowadzi do bankomatu W jest czterocyfrowym długo można łatwo wywnioskować, że szansa na losową guessing jest 3 / 10000 = 0,0003, wydaje się wystarczająco niski, aby być bezpieczne, to znaczy musisz tracić więcej niż trzy tysiące razy ( lub utratę ponad trzy tysiące karty w tym samym czasie:), dopóki istnieje uzasadnione szansę utraty

Co naprawdę oznacza "zgadywaniu" został łamiącym tak, że biorąc pod uwagę wszelkie możesz natychmiast znać związane Dlatego ten dokument badania możliwości, analizując i proponuje metody Wreszcie dajemy narzędzie, które implementuje i obecne wyniki o szacunkowej szansę uszkodzenia systemu. Należy pamiętać, że tak długo, jak innych związane z algorytmów (inne formatach, takich jak IBM lub walidacji podpisów jak CVC lub) są podobne do to samo można zrobić analizę przynosi prawie takie same wyniki i wnioski.



Jedną z najczęstszych algorytmów jest Value Klient otrzymuje i Zakodowany w to czterocyfrowy numer, zwany Ta liczba jest kryptograficzny podpis i inne dotyczące Gdy użytkownik wpisze swój w bankomacie czyta szyfruje i wysyła te informacje do centralnego komputera. Nie procesu jest obliczana za pomocą klienta wpisać i kryptograficzne informacje o Proces jest w porównaniu z przechowywane w jeżeli zgadzają się z centralnym komputerem powraca do bankomatu zezwolenia na Zobacz więcej szczegółów.

Opis z można znaleźć w dwóch dokumentach związanych z poprzedniej strony. W skrócie polega na z 8 bajtów (64 bitów) ciąg zwany Transformed Parametr (TSP), z (DEA) w Code Book trybie (EBC) za pomocą 64 bitowego klucza tajnego. W jest pochodną wyników który jest 8 bajtowy ciąg. Cztery cyfry z (od lewej do prawej) odpowiada pierwszych czterech cyfr (od lewej do prawej) na wyjście z kiedy uznać za 16 znaków szesnastkowych (16 bit x 4 = 64 bit) string. Jeśli nie ma czterech cyfr spośród 16 znaków szesnastkowych następnie zakończone podjęte (od lewej do prawej) nie decimal znaków i decimalizing je za pomocą konwersji A-> 0, B-> 1, C-> 2, D -> 3, E-> 4, K-> 5. Oto przykład:

Wyjście z 0FAB9CDEFFE7DCBA

0975

Strategia unikania decimalization przez skipping znaków aż czterech cyfr znajdują się (co zdarza się prawie wszystkie razy, ile będziemy patrz poniżej) jest bardzo mądry, gdyż unika się ważnym stronniczość w dystrybucji cyfr, który okazał się śmiertelny dla innych systemów, chociaż wpływ tego systemu będzie znacznie niższa. Zobacz również związanym z tym problemem nie stosuje się do

W TSP, postrzegana jako 16 znaków szesnastkowych (64 bit) string, powstaje (od lewej do prawej), z prawej 11 cyfr PAN (numer z wyłączeniem ostatniej cyfry (sprawdź cyfrowy), jedną cyfrę od 1 do 6 które wybiera szyfrowanie tajnego klucza i wreszcie cztery cyfry numeru Oto przykład:

PAN: 1234 5678 9012 3445
Klucz wyboru: 1
2468

TSP: 5678901234412468

Oczywiście problem łamania polega na znalezieniu tajnego klucza szyfrowania Metoda to zrobić brutalnej siły wyszukiwania z kluczowych miejsca. Należy pamiętać, że nie jest to jedyna metoda, można spróbować znaleźć słabość DEA, wielu próbowało, ale to stary standard jest jeszcze w powszechnym użyciu (obecnie został zastąpiony przez AES i chociaż). Pokazuje to, jest odporny na tyle, że tak brutalnej siły jest tylko opłacalne metody (istnieją lepsze ataki, ale nie praktyczne w naszym przypadku, na podsumowanie patrz LASEC pamięć i za brudne szczegóły patrz Biham & Shamir 1990, Biham & Shamir 1991 r., Matsui 1993, Biham i Biryukov 1994 i Heys 2001).

Klucz wyboru cyfrowy jest bardzo prawdopodobne, wprowadzono przepisy dotyczące możliwości kluczową kompromisu. W takim przypadku nie wystarczy do wydania nowej karty przy użyciu innego klucza wyboru. Starsze karty mogą być zastąpione nowymi lub po prostu może ATM przejrzysty napisać nową (odpowiednio do nowego klucza i zachowaniem tego samego następnym razem klient używa swojej Do wytrząsnąć wszystkich użytkowników powinna być wyznaczona do zmiany kodów PIN, jednakże byłoby kłopotliwe dla w celu wyjaśnienia przyczyny, więc bardzo prawdopodobne, że nie złożenia takiego wniosku.

Przygotowanie


A brutalna siła polega na szyfrowaniu TSP jeden ze znanych użyciu wszystkich możliwych kluczy szyfrowania i porównać uzyskane każdego ze znanych Gdy mecz jest znaleźć mamy kandydata kluczowych. Ale jak wielu kluczy musimy spróbować? Jak już wspomniano powyżej kluczowych jest 64-bitowa długo, to znaczy musimy spróbować 2 ^ 64 kluczy. Jednak nie jest to prawda. Właściwie jedynie 56 bitów są skuteczne w kluczy, ponieważ jeden bit (najmniej znaczący) obecnie każdego oktet historycznie była zarezerwowana jako kontrolna dla innych, w praktyce te 8 bitów (po jednym dla każdego z 8 bajtów) są ignorowane.

Dlatego kluczowych przestrzeń składa się z 2 ^ 56 kluczy. Jeśli spróbujemy wszystkich tych klawiszy będzie znaleźć jeden i tylko jeden mecz, co odpowiada tajnego klucza? Na pewno nie. Będziemy uzyskać wiele pasujące klucze. Dzieje się tak, ponieważ jest tylko niewielka część (jedna czwarta) z wyjście. Ponadto jest zdegradowanych ponieważ niektóre cyfry (tych od 0 do 5 po ostatniej, widziana z lewej do prawej, cyfry pomiędzy 6 i 9) mogą pochodzić z postaci cyfr lub z decimalized szesnastkowe cyfry z wyjście. Tak wiele kluczy powstanie rentowności produkcji, którą do tej samej pasujące

Wtedy to, co możemy zrobić, aby odnaleźć prawdziwą kluczowych Wśród innych fałszywych pozytywnych klucze? Po prostu mamy do szyfrowania drugiego różnych TSP, także ze znanymi ale tylko przy użyciu klawiszy kandydata który wydał pozytywną pasujące z pierwszym pary. Jednak nie ma gwarancji, to nie będzie znowu wiele fałszywych alarmów wraz z prawdziwego klucza. Jeśli tak, to musimy jedna trzecia pary, powtórz ten proces i tak dalej.

Zanim zaczniemy naszą musimy wiedzieć, ilu par musimy. Do tego musimy obliczyć dla losowego wyjścia, aby uzyskać odpowiedni tylko przez przypadek. Istnieje kilka sposobów na obliczenie tej liczby i tutaj będę używać proste podejście łatwe do zrozumienia, ale która wymaga pewnych

A może być postrzegane jako stosunek korzystnych przypadkach możliwych przypadków. W naszym problemem liczby możliwych przypadków jest podawany przez z 16 elementów (0 F szesnastkowe cyfry) w grupie 16 z nich (do 16 cyfr szesnastkowych z wyjścia). To przez 16 ^ 16 ~ 1,8 * 10 ^ 19 co oczywiście zbiega się z 2 ^ 64 (różnych numerów na 64 bity). Ten zbiór liczb mogą być podzielone na pięć kategorii:

Osoby z co najmniej czterech cyfr (0 do 9) wśród 16 szesnastkowych cyfr (0 do F) z wyjście.

Dokładnie z tych tylko trzech cyfr.

Dokładnie z tych dwóch cyfr.

Te właśnie tylko z jednego miejsca cyfry.

Osoby bez cyfr (wszystkie pomiędzy A i K).

Let's obliczyć ile spadek liczby w każdej kategorii. Jeśli etykiecie 16 cyfr szesnastkowych z wyjścia jak X1 do X16 następnie możemy etykiecie pierwszych czterech cyfr dowolnej liczby pierwszej kategorii jako Xi, XJ, XK i XL. Liczbę różnych kombinacji z tego profilu jest podana przez producenta 6 I-1 * 10 * 6j-i-1 * 10 * 6k-j-1 * 10 * 6 P.-1 * 10 * 1616-l gdzie 6 ' y od liczby możliwości A do F cyfrowy, 10's pochodzić z możliwości dla cyfry od 0 do 9, a 16 pochodzi z możliwości stosowania 0 do F cyfry. Teraz całkowitej liczby w pierwszej kategorii jest po prostu przez sumowanie tego produktu nad i, j, k, l od 1 do 16, ale z i <j <k <l. Jeśli niektóre matematyki pracy będzie to równa iloczynowi 104 / 6 z ponad zsumowanie i od 4 do 16 (i-1) * (i-2) * (I-3) * 6i-4 * 16 16-i ~ 1,8 * 1019.

Analogicznie liczba przypadków, w drugiej kategorii jest przez sumowanie nad i, j, k od 1 do 16 z i <j <K produktu 6i-1 * 10 * 6j-i-1 * 10 * 6k-j -1 * 10 * 616-k, które można pracować go do 16! / (3! * (16-13)!) * 103 * 6 13 = 16 * 15 * 14 / (3 * 2) * 103 * 613 = 56 * 104 * 613 ~ 7,3 * 1015. Podobnie w przypadku kategorii trzeciej mamy ponad zsumowanie i, j od 1 do 16 z I <J 6 I-1 * 10 * 6j-i-1 * 10 * 616-j, który wynosi do 16! / (2! * (16-14)!) * 102 * 614 = 2 * 103 * 615 ~ 9,4 * 1014. Również na czwartej kategorii mamy ponad zsumowanie i od 1 do 16 6i-1 * 10 * 616-I = 160 * 615 ~ 7,5 * 1013. I wreszcie kwotę przypadkach w piątej kategorii podanych przez sześciu elementów (od A do F cyfr) w grupie 16, czyli 616 ~ 2,8 * 1012.

Mam nadzieję, że po obliczeniach do tego punktu, twardy część jest wykonywana. Teraz, jako dowód, że wszystko jest w prawo można suma liczby przypadków w 5 kategorii i zobaczyć równa całkowitej liczby możliwych przypadkach obliczona przed. Czy z wykorzystaniem 64-bitowej liczbie lub zaokrągleń (dla pływaków) lub przepełnienia (dla całkowitych) błędy nie pozwalają uzyskać dokładny wynik.

Do tej pory mamy oblicza liczbę możliwych przypadków w każdej z pięciu kategorii, ale są zainteresowani uzyskaniem wielu przypadkach zamiast korzystne. Jest to bardzo łatwe do uzyskania drugiego z byłych jak to tylko ustalające kombinacja czterech cyfr (lub wymaganego cyfr szesnastkowych, jeżeli nie istnieją cztery cyfry) z zamiast najmu je bezpłatnie. W praktyce oznacza to, obracając 10 we wzorze powyżej 1 i do wymaganej kwoty na 6 w 1's jeżeli nie ma czterech cyfr. Oznacza to, że musimy najpierw podzielić wynik przez 104, drugi przez 103 * 6, trzeci przez 102 * 62, czwarty jeden przez 10 * 63 i piątym o 64. Następnie liczba korzystnych przypadkach w pięciu kategoriach około 1,8 * 1015, 1,2 * 1012, 2,6 * 1011, 3,5 * 1010, 2,2 * 109 odpowiednio.

Teraz jesteśmy w stanie uzyskać to, co jest na wyjście będzie odpowiadała przez przypadek. Musimy tylko dodać do pięciu numerów przypadkach korzystne i podzielić ją przez liczbę możliwych przypadkach. Wskutek tego otrzymujemy, że jest bardzo ok. 0,0001 lub jeden z dziesięć tysięcy. Czy to dziwne tym dobrze zaokrąglone wynik? Wcale nie, wystarczy spojrzeć na numery my z powyższymi obliczeniami. Pierwsza kategoria dominuje kilka rzędów wielkości liczbę korzystne i możliwe przypadki. To jest raczej intuicyjna, jak wydaje się jasne, że jest to bardzo mało prawdopodobne, nie czterech cyfr (10 z 16 szans na cyfrowy) wśród 16 cyfr szesnastkowych. Widzieliśmy wcześniej, że związek między liczbą możliwe i korzystne w przypadku pierwszej kategorii był podział przez 10 ^ 4, czyli gdzie wynik p = 0,0001 pochodzi.

Naszym celem dla wszystkich tych obliczeń było dowiedzieć się, jak wiele par musimy przeprowadzić udaną brutalnej siły Teraz jesteśmy w stanie obliczyć oczekiwane liczba fałszywych alarmów w pierwszej wyszukiwania: będzie to liczba prób razy dla jednej losowej fałszywie dodatnie, tj. t * p gdzie t = 2 ^ 56, rozmiar klucza miejsca. Wynosi to około 7,2 * 10 ^ 12, dość duża liczba. Spodziewana liczba fałszywych alarmów w drugim wyszukiwania (ograniczona do pozytywnych kluczy znalezionych w pierwszej wyszukiwania) będzie (T * p) * p, jedna trzecia dla wyszukiwania będzie ((t * p) * p) * p tak dalej. Zatem dla n wyszukiwań oczekiwane liczby fałszywych alarmów będzie t * p ^ n.

We can obtain the number of searches required to expect just one false positive by expressing the equation t * p^n = 1 and solving for n. So n equals to the in base p of 1/t, which by properties of logarithms it yields n = log(1/t)/log(p) ~ 4.2. Since we cannot do a fractional search it is convenient to round up this number. Therefore what is the expected number of false positives if we perform five searches? It is t * p^5 ~ 0.0007 or approximately 1 out of 1400. Thus using five TSP- pairs is safe to obtain the true secret key with no false positives.

The


Once we know we need five TSP- pairs, how do we get them? Of course we need at least one with known , and due to the nature of the , that’s the only thing we need. With other systems, such as IBM, we would need five cards, however this is not necessary with . We just have to read the and then change the four times but reading the after each change.

It is necessary to read the of the to get the and the encrypting key selector. You can buy a commercial or make one yourself following the instructions you can find in the previous page and links therein. Once you have a see this description of standard magnetic tracks to find out how to get the from the read. In that document the field in tracks 1 and 2 is said to be five character long, but actually the true consists of the last four digits. The first of the five digits is the key selector. I have only seen cards with a value of 1 in this digit, which is consistent with the standard and with the secret key never being compromised (and therefore they did not need to move to another key changing the selector).

I did a simple C program, getpvvkey.c, to perform the . It consists of a loop to try all possible keys to encrypt the first TSP, if the derived matches the true a new TSP is tried, and so on until there is a mismatch, in which case the key is discarded and a new one is tried, or the five derived PVVs match the corresponding true PVVs, in which case we can assume we got the secret key, however the loop goes on until it exhausts the key space. This is done to assure we find the true key because there is a chance (although very low) the first key found is a false positive.

It is expected the program would take a very long time to finish and to minimize the risks of a power cut, computer hang out, etc. it does checkpoints into the file getpvvkey.dat from time to time (the exact time depends on the speed of the computer, it’s around one hour for the fastest computers now in use). For the same reason if a positive key is found it is written on the file getpvvkey.key. The program only displays one message at the beginning, the starting position taken from the checkpoint file if any, after that nothing more is displayed.

The is a key point in the program, it is therefore very important to optimize its speed. I tested several implementations: libdes, SSLeay, openssl, cryptlib, nss, libgcrypt, catacomb, libtomcrypt, cryptopp, ufc-crypt. The functions of the first four are based on the same code by Eric Young and is the one which performed best (includes optimized C and x86 assembler code). Thus I chose libdes which was the original implementation and condensed all relevant code in the files encrypt.c (C version) and x86encrypt.s (x86 assembler version). The code is slightly modified to achieve some enhancements in a brute force : the initial is a fixed common steep in each TSP and therefore can be made just one time at the beginning. Another improvement is that I wrote a completely new setkey function (I called it nextkey) which is optimum for a brute force loop.

To get the program working you just have to in the corresponding place five TSPs and their PVVs and then compile it. I have tested it only in UNIX platforms, using the makefile Makegetpvvkey to compile (use the command “make -f Makegetpvvkey”). It may compile on other systems but you may need to fix some things. Be sure that the definition of the long64 corresponds to a 64 bit integer. In principle there is no dependence on the endianness of the processor. I have successfully compiled and run it on Pentium-Linux, Alpha-Tru64, Mips-Irix and Sparc-Solaris. If you do not have and do not want to install Linux (you don’t know what you are missing ;-) you still have the choice to run Linux on CD and use my program, see my page running Linux without installing it.

Once you have found the secret key if you want to find the of an arbitrary you just have to write a similar program (sorry I have not written it, I’m too lazy :) that would try all 10^4 PINs by generating the corresponding TSP, encrypting it with the (no longer) secret key, deriving the and comparing it with the in the of the . You will get one match for the true . Only one match? Remember what we saw above, we have a chance of 0.0001 that a random matches the . We are trying 10000 PINs (and therefore TSPs) thus we expect 10000 * 0.0001 = 1 false positive on average.

This is a very interesting result, it means that, on average, each has two valid PINs: the customer and the expected false positive. I call it “false” but note that as long as it generates the true it is a as valid as the customer’s one. Furthermore, there is no way to know which is which, even for the ATM; only customer knows. Even if the false positive were not valid as , you still have three trials at the ATM anyway, enough on average. Therefore the we calculated at the beginning of this document about random guessing of the has to be corrected. Actually it is twice that value, ie, it is 0.0006 or one out of more than 1600, still safely low.

Results


It is important to optimize the compilation of the program and to run it in the fastest possible processor due to the long expected run time. I found that the compiler optimization flag -O gets the better performance, thought some improvement is achieved adding the -fomit-frame-pointer flag on Pentium-Linux, the -spike flag on Alpha-Tru64, the -IPA flag on Mips-Irix and the -fast flag on Sparc-Solaris. Special flags (-DDES_PTR -DDES_RISC1 -DDES_RISC2 -DDES_UNROLL -DASM) for the code have generally benefits as well. All these flags have already been tested and I chose the best combination for each processor (see makefile) but you can try to fine tune other flags.

According to my tests the best performance is achieved with the AMD Athlon 1600 MHz processor, exceeding 3.4 million keys per second. Interestingly it gets better results than Intel Pentium IV 1800 MHz and 2000 MHz (see figures below, click on them to enlarge). I believe this is due to some I/O saturation, surely cache or memory , that the AMD processor (which has half the cache of the Pentium) or the motherboard in which it is running, manages to avoid. In the first figure below you can see that the breaking speed of all processors has more or less a linear relationship with the processor speed, except for the two Intel Pentium I mentioned before. This is logical, it means that for a double processor speed you’ll get double breaking speed, but watch out for saturation effects, in this case it is better the AMD Athlon 1600 MHz, which will be even cheaper than the Intel Pentium 1800 MHz or 2000 MHz.

In the second figure we can see in more detail what we would call intrinsic break power of the processor. I get this value simply dividing the break speed by the processor speed, that is, we get the number of keys tried per second and per MHz. This is a measure of the performance of the processor independently of its speed. The results show that the best processor for this task is the AMD Athlon, then comes the Alpha and very close after it is the Intel Pentium (except for the higher speed ones which perform very poor due to the saturation effect). Next is the Mips processor and in the last place is the Sparc. Some Alpha and Mips processors are located at bottom of scale because they are early releases not including enhancements of late versions. Note that I included the performance of x86 processors for C and assembler code as there is a big . It seems that gcc is not a good generator of optimized machine code, but of course we don’t know whether a manual optimization of assembler code for the other processors (Alpha, Mips, Sparc) would boost their results compared to the native C compilers (I did not use gcc for these other platforms) as it happens with the x86 processor.

Update

Here is an article where these techniques may have been used.

http://redtape.msnbc.com/2008/08/could-a-hacker.html

Financial Transaction Processing

Jul 02, 2008 in Banking and EFTPoS

I have been recently working inside one of the larger Banks in .
Through this work I have been looking at the controls and surrounding the of and cards around the Asia Pacific.

I get perform many and systems assessments.
Over the years I have always considered the of the as one of the key considerations.

Until yesterday I had never seen an or tools. I think some scripted use of these tools could be very interesting.
The site hziggurat29.com

Many of the other tools on this site are also very unique and worth a look.
Big thanks to ziggurat29 for providing such awesome tools.

As many of these sites are of this nature are difficult to find and often seem to vanish over the years, I have chosen to replicate the the from this page and provide local copies on the files.
It is worth periodically visiting the ziggurat29 site every now and again to see if any additional tools have been posted.

One of the more extraordinary files is the Atalla Module (