Tag: PVV
Breaking PIN VISA
przez Derek na Jul.02, 2008, w ramach Bankowość i Eftpos
Poniżej znajduje się artykuł znalazłem niedawno. To jeden z najbardziej wyczerpujące opisy PIN Weryfikacja jakości (PVV) hacking.
Myślałem, że powielanie go tutaj dla mojego lokalnego odniesienia.
Jako swoje uwagi dotyczące gramatyki używane w oryginalnym tekście, mam poprawione niektóre oczywiste błędy przy jednoczesnym zachowaniu związku z oryginalnego materiału.
http://69.46.26.132/ ~ biggold1/fastget2you/tutorial.php
--- Tekst oryginalny ----
Przedmowa
Czy kiedykolwiek zastanawiałeś się, co się stanie, jeśli zgubisz kartę kredytową lub debetową, a ktoś uzna. Czy ta osoba jest w stanie wypłacić gotówkę z bankomatów w niepewności, w jakiś sposób swój PIN? Ponadto, jeżeli ktoś, kto znajdzie się karty byłoby spróbować odgadnąć PIN i podejmuje szansę zdobyć łatwe pieniądze? Oczywiście odpowiedź na oba pytania należy "nie". Praca ta nie zajmuje się drugie pytanie, to kwestia etyki osobistej. Niniejszym postaram się odpowiedzieć na pierwsze pytanie.
Wszystkich informacji wykorzystanych do tej pracy ma charakter publiczny i mogą być swobodnie znaleźć w Internecie. Reszta to kwestia matematyki i programowania, w ten sposób możemy nauczyć się czegoś i dobrze się bawić. I nie ujawniają tajemnice. Ponadto, w celu (i ostatecznych wniosków) tej pracy jest wykazanie, że algorytmy PIN jeszcze wystarczająco silny, aby zapewnić wystarczające bezpieczeństwo. Wszyscy wiemy, technologia nie jest słaby punkt.
Niniejszej analizy pracy jeden z najpopularniejszych algorytmów PIN, VISA PVV, używane przez wielu kart bankomatowych (karty kredytowe i debetowe) i próbuje dowiedzieć się, jak odporny jest PIN zgadywania ataków. Przez "zgadywanie" nie mam na myśli wybór losowy PIN i próbuje go w ATM. Jest dobrze wiadomo, że na ogół daje nam trzy kolejne próby, aby wprowadzić prawo PIN, jeśli nie uda nam ATM trzyma karty. Visa PIN czterocyfrowy długo można łatwo wywnioskować, że szanse na losowe PIN zgadywanie jest 3 / 10000 = 0,0003, wydaje się wystarczająco niskie, aby być bezpieczne, to znaczy musisz tracić karty ponad trzy tysiące razy (lub utratę ponad trzy tysiące kart w tym samym czasie:) do istnieje uzasadnione prawdopodobieństwo utraty pieniędzy.
Co naprawdę oznacza "zgadywania" złamała algorytm PIN tak, że ze względu każdej karty można od razu poznać związane PIN. Dlatego ten dokument możliwość badania, analizy algorytmu i proponuje metodę ataku. W końcu dajemy narzędzie, które wykonuje atak i prezentacji wyników o szacunkowej szansą na obalenie systemu. Należy pamiętać, że tak długo, jak inne zabezpieczenie bankowych związanych algorytmów (inne formaty, takie jak IBM PIN lub PIN karty weryfikacji podpisów, takie jak CVV lub CVC) są podobne do VISA PIN, analiza samego można dokonać przynosi prawie takie same wyniki i wnioski.
VISA PVV algorytm
Jednym z najbardziej powszechnych algorytmów PIN PIN VISA weryfikacji jakości (PVV). Klient otrzymuje PIN i karty z paskiem magnetycznym. Wpisane w pasek magnetyczny to czterocyfrowy numer, zwany PVV. Ten numer jest kryptograficzne podpis PIN i innych danych związanych z kartą. Gdy użytkownik wprowadzi swój PIN w bankomacie odczytuje pasek magnetyczny, szyfruje i wysyła wszystkie informacje do centralnego komputera. Czy próba PVV jest obliczana za pomocą klienta weszła PIN i karty z algorytm kryptograficzny. Procesu PVV jest porównywana z PVV zapisane na karcie, jeśli mecz centralny komputer powraca do ATM zezwolenia na transakcję. Zobacz bardziej szczegółowo.
Opis algorytmu PVV można znaleźć w dwóch dokumentach związanych z poprzedniej strony. W skrócie polega ona na szyfrowanie a 8 bajtów (64 bitów) ciąg danych, zwany Transformed Security Parameter (TSP), z algorytmu DES (DEA) w trybie Electronic Code Book (EBC) przy użyciu tajnego klucza 64 bitów. PVV pochodzi z wyjścia procesu szyfrowania, który jest 8 bajtowy ciąg znaków. Cztery cyfry PVV (od lewej do prawej) odpowiadają pierwszych czterech cyfr (od lewej do prawej) wyjście z DES rozpatrywane jako 16 znaków szesnastkowych (16 x 4 bit = 64 bit) łańcuch. Jeśli nie ma cztery cyfr wśród 16 znaków szesnastkowych następnie PVV zakończeniu podjęte (z lewej) i bez znaków po przecinku decimalizing je za pomocą konwersji A-> 0, B-> 1, C-> 2, D -> 3, E-> 4, F-> 5. Oto przykład:
Wyjście z DES: 0FAB9CDEFFE7DCBA
PVV: 0975
Strategia unikania decimalization omijając znaków do czterech cyfr po przecinku znajdują się (co zdarza się prawie cały czas jak zobaczymy poniżej) jest bardzo mądry, ponieważ pozwala uniknąć stronniczości ważne w dystrybucji cyfry, które okazały się śmiertelne dla innych systemów, choć wpływ na ten system będzie znacznie niższy. Zobacz także związanym z tym problemem nie mające zastosowanie do VISA PVV.
TSP, widziana jako 16 znaków szesnastkowych (64 bit) string, tworzą (od lewej do prawej) z 11 cyfr z prawej strony PAN (numer karty), z wyłączeniem ostatniej cyfry (cyfra), jedna cyfra od 1 do 6 które wybiera szyfrowanie kluczem tajnym i wreszcie cztery cyfry kodu PIN. Oto przykład:
PAN: 1234 5678 9012 3445
Klawisz wyboru: 1
PIN: 2468
TSP: 5678901234412468
Oczywiście problem łamania VISA PIN polega na znalezieniu tajnego klucza szyfrowania DES. Metody to zrobić brute wyszukiwania życie klawisz spacji. Należy pamiętać, że nie jest to jedyna metoda, można było spróbować znaleźć słabość w DEA, próbowałem wielu, ale to stary standard jest jeszcze w powszechnym użyciu (obecnie zastąpione przez AES i RSA, chociaż). Świadczy to o tym jest odporny na tyle, że ślepa siła jest jedynym realnym metody (jest kilka lepszych ataków, ale nie praktyczne w naszym przypadku, na podsumowanie zob. Memo LASEC i brudne szczegóły patrz Biham i Shamir 1990, Biham i Shamir 1991 r., Matsui 1993 r., Biham i Biryukov Heys 1994 i 2001).
Klawisz wyboru cyfrowy było bardzo prawdopodobne, wprowadzone na pokrycie możliwość kompromitacji klucza. W takim przypadku po prostu musiał wydać nowe karty za pomocą innego klucza wyboru. Starsze karty mogą być zastąpione nowymi lub po prostu ATM można napisać nowy przejrzysty PVV (odpowiadające nowy klucz i zachowaniu tej samej PIN) następnym razem klient korzysta z jego karty. Dla shake bezpieczeństwa wszystkich użytkowników należy zwrócić się do zmiany kodów PIN, jednak byłoby to kłopotliwe dla banku do wyjaśnienia przyczyn, więc bardzo prawdopodobne, ponieważ nie złożenia takiego wniosku.
Przygotowanie ataku
Brute force polega na szyfrowaniu TSP PVV znany z wykorzystaniem wszystkich możliwych kluczy szyfrowania i porównać uzyskane PVV każdej ze znanym PVV. Gdy mecz jest znaleźć klucz mamy kandydata. Ale jak wielu kluczy musimy spróbować? Jak wspomniano powyżej, 64-bitowy klucz jest długi, oznaczałoby to, że musimy starać się 2 ^ 64 kluczy. Jednak nie jest to prawdą. Faktycznie tylko 56 bitów są skuteczne w kluczy DES, ponieważ jeden bit (najmniej znaczący) obecnie każdy oktet był historycznie zastrzeżone jako sumy kontrolnej dla innych, w praktyce te 8 bitów (po jednym na każdym z 8 oktetów) są ignorowane.
W związku z tym kluczowe miejsce DES składa się z 2 ^ 56 kluczy. Jeżeli spróbujemy wszystkich tych klawiszy znajdziemy jeden i tylko jeden mecz, co odpowiada bank klucz? Na pewno nie. otrzymamy wiele dopasowanych kluczy. Jest tak dlatego, PVV jest tylko niewielka część (jedna czwarta) część produkcji DES. Ponadto PVV jest zdegenerowane, ponieważ niektóre cyfry (tych od 0 do 5 po ostatnim, patrząc od lewej do prawej, cyfry pomiędzy 6 i 9) mogą pochodzić z dziesiątek lub decimalized szesnastkowym cyfry produkcji DES. W ten sposób wiele klawiszy spowoduje wyjście DES co daje tym samym dopasowania PVV.
To co możemy zrobić, aby znaleźć prawdziwy klucz Wśród innych fałszywych kluczy pozytywny? Po prostu mamy do szyfrowania drugiego różnych TSP, znany również z PVV, ale tylko przy użyciu kluczy kandydujących, które pozytywnie pasujące z pierwszej pary TSP-PVV. Jednak nie ma gwarancji, że nie dostanie znowu wiele fałszywych alarmów wraz z prawdziwym kluczem. Jeśli tak, to będziemy musieli trzeciej parze TSP-PVV, powtórzyć proces i tak dalej.
Zanim zaczniemy nasz atak musimy wiedzieć, ile par TSP-PVV będziemy potrzebować. W tym mamy do obliczenia prawdopodobieństwa losowych produkcji DES, aby uzyskać dopasowanie PVV tylko przez przypadek. Istnieje kilka sposobów obliczania tej liczby i tu użyję proste podejście łatwe do zrozumienia, ale wymaga pewnych podstaw matematyki prawdopodobieństwa.
Prawdopodobieństwem można zawsze postrzegać jako korzystny stosunek przypadków możliwych przypadków. Problem w naszym liczby możliwych przypadków jest przez permutacji 16 elementów (od 0 do cyfry szesnastkowe F) w grupie 16 z nich (z 16 cyfr szesnastkowych wyjściowego DES). Ten znajduje się o 16 ^ 16 ~ 1,8 * 10 ^ 19, które oczywiście zbiega się z 2 ^ 64 (różną liczbę 64 bitów). To zbiór liczb można podzielić na pięć kategorii:
Osób z co najmniej czterech cyfr (0 do 9) wśród 16 cyfr szesnastkowych (0 do F) z produkcji DES.
Z dokładnie tych tylko trzy cyfry po przecinku.
Z dokładnie tych tylko dwóch cyfr po przecinku.
Osób z dokładnie tylko jeden dziesiątek.
Osób bez cyfr po przecinku (wszystkie od A do F).
Policzmy, ile numerów spadek w każdej kategorii. Jeśli etykieta z 16 cyfr szesnastkowych wyjściowego DES jako X1 do X16 to możemy etykiety pierwszych czterech cyfr danej liczby pierwszej kategorii Xi, Xj, XK i XL. Liczbę różnych kombinacji w tym profilu jest przez Produkt 6 i-1 * 10 * 6J-i-1 * 10 * 6k-j-1 * 10 * 6 lk-1 * 10 * 1616-l, gdzie 6 ' s pochodzą z wielu możliwości do F-cyfrowy, 10 pochodzi z możliwości cyfry 0 do 9, i 16 pochodzą z możliwości 0 do F cyfry. Obecnie łączna liczba w pierwszej kategorii jest po prostu podane przez zsumowanie produktu nad i, j, k, l od 1 do 16, ale z i <j <k <l. Jeśli popracować matematyki widać to równa się iloczynowi 104 / 6 z sumowania się 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 zsumowanie 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órym można się dogadać 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 podsumowanie nad i, j od 1 do 16 z i <j z dnia 6 i-1 * 10 * 6J-i-1 * 10 * 616-j, co równa się 16! / (2! * (16-14)!) * 102 * 614 = 2 * 103 * 615 ~ 9,4 * 1014. Ponownie, dla czwartej kategorii mamy ponad podsumowanie i od 1 do 16 z 6i-1 * 10 * 616-i 160 * 615 = ~ 7,5 * 1013. I wreszcie wysokości przypadkach, w piątej kategorii jest przez przestawienie się z sześciu elementów (od A do F cyfr) w grupie 16, które, 616 ~ 2,8 * 1012.
Mam nadzieję, że po obliczeniach do tej pory, część jest trudno zrobić. Teraz jako dowód, że wszystko jest w porządku możesz suma liczby przypadków, w 5 kategoriach i zobaczyć równa łącznej liczbie możliwych przypadków obliczyliśmy wcześniej. Czy do operacji z użyciem 64-bitowych liczb lub zaokrąglania (dla pływaków) lub przelewem (do liczb całkowitych) błędów nie pozwoli uzyskać dokładny wynik.
Do tej pory została przeliczona na liczbę możliwych przypadków, w każdej z pięciu kategorii, ale jesteśmy zainteresowani zdobyciem wielu przypadkach zamiast korzystne. Jest bardzo łatwy do uzyskania go od byłego jak to tylko ustalające połączenie czterech cyfr po przecinku (lub wymaganego cyfr szesnastkowych, jeżeli nie ma cztery cyfr) z PVV, zamiast pozwolić im wolne. W praktyce oznacza to obrót 10's w formule powyżej na 1 i wymaganej kwoty z 6 w 1 jest to jeśli nie ma cztery cyfr. Oznacza to, że musimy podzielić wynik przez pierwszy 104, drugi 103 * 6, a trzeci 102 * 62, czwarta z 10 * 63 i jeden piąte przez 64. Od liczby korzystnych przypadkach w pięciu kategoriach są około 1,8 * 1015, 1.2 * 1012 * 1011 2,6, 3,5 * 1010, 2.2 * 109 odpowiednio.
Teraz jesteśmy w stanie uzyskać to, co jest prawdopodobieństwo wyjścia na mecz DES PVV przez przypadek. Musimy tylko dodać pięć numerów korzystnych przypadkach i podzielić ją przez liczbę wszystkich możliwych przypadków. Ten sposób otrzymujemy, że prawdopodobieństwo jest bardzo ok. 0,0001 lub jeden z dziesięciu tysięcy. Czy to dobrze zaokrąglone dziwny wynik? Wcale nie, wystarczy spojrzeć na liczby, oblicza się powyżej. Pierwszej kategorii dominuje przez kilka rzędów wielkości liczbę przypadków korzystne i możliwe. To jest raczej intuicyjna, jak wydaje się jasne, że jest bardzo mało prawdopodobne, nie o czterech cyfr (10 z 16 szans na cyfrowy) spośród 16 cyfr szesnastkowych. Widzieliśmy wcześniej, że związek między liczbą przypadków korzystne i możliwe do pierwszej kategorii był podział przez 10 ^ 4, to gdzie nasz wynik p = 0,0001 pochodzi.
Naszym celem dla wszystkich tych obliczeń było dowiedzieć się, jak wiele par TSP-PVV musimy przeprowadzić udany atak "siłowy". Teraz jesteśmy w stanie wyliczyć spodziewaną liczbę fałszywych alarmów w pierwszej wyszukiwania: będzie to liczba prób razy prawdopodobieństwo dla jednej losowo fałszywie dodatni, tzn. p * t gdzie t = 2 ^ 56, rozmiar klucza przestrzeni. Stanowi to około 7,2 * 10 ^ 12, dość duża liczba. Spodziewanej liczby fałszywych alarmów w drugiej wyszukiwania (tylko do pozytywnych kluczy znalezionych w pierwszej wyszukiwania) zostanie (t * p) p *, dla trzeciej wyszukiwania będą ((t * p) p *) i * p tak dalej. Tak więc dla n wyszukiwania spodziewanej liczby fałszywych alarmów będzie t * p ^ n.
Możemy uzyskać liczbę wyszukiwań wymagane oczekiwać tylko jeden fałszywy wyrażając t równanie * p ^ n = 1 i rozwiązywania n. Więc n jest równa logarytm przy podstawie p = 1 / t, które ze względu na właściwości logarytmów to daje n = log (1 / t) / log (p) ~ 4.2. Ponieważ nie możemy zrobić ułamkową wyszukiwania wygodnie jest zaokrąglić w górę tej liczby. W związku z tym, co jest oczekiwane liczby fałszywych alarmów, jeśli wykonać pięć wyszukiwania? Jest t * p ^ 5 ~ 0,0007, czyli ok. 1 z 1400 roku. Tak więc za pomocą pięciu par TSP-PVV jest bezpieczny, aby uzyskać prawdziwy klucz, bez fałszywych alarmów.
Atak
Raz wiemy, że trzeba pięć par TSP-PVV, w jaki sposób je zdobyć? Oczywiście potrzebny jest przynajmniej jeden znany PIN z karty, a ze względu na charakter algorytmu PVV, to jedyną rzeczą, jakiej potrzebujemy. PIN z innych systemów, takich jak IBM, musielibyśmy pięć kart, jednak nie jest to konieczne z VISA PVV algorytmu. Musimy tylko do odczytu paska magnetycznego, a następnie zmienić PIN cztery razy, ale czytanie karty po każdej zmianie.
Należy zapoznać się z paska magnetycznego karty, aby uzyskać PVV i szyfrowanie kluczem wyboru. Możesz kupić czytnik paska magnetycznego handlowych lub zrobić samemu postępując zgodnie z instrukcjami można znaleźć w poprzedniej strony i linki w nim. Po czytnika zobaczyć opis standardowych magnetycznych utworów, aby dowiedzieć się jak zdobyć PVV z danych przeczytać. W dokumencie tym zakresie PVV utworów w 1 i 2 mówi się, że pięć znaków długości, ale w rzeczywistości prawdziwego PVV składa się z czterech ostatnich cyfr. Pierwszy z pięciu cyfr jest klucz wyboru. Mam tylko online karty o wartości 1 w tym cyfr, który jest zgodny ze standardem i tajny klucz nigdy nie jest zagrożona (a więc nie muszą przenieść się do innego klawisza zmiany wyboru).
Zrobiłem prosty program C, getpvvkey.c, aby wykonać atak. Składa się z pętli, aby spróbować wszystkich możliwych kluczy do szyfrowania pierwszy TSP, jeżeli uzyskane PVV pozycji prawdziwego PVV nowy TSP jest próbował, i tak dalej aż do wystąpienia niezgodności, w takim przypadku kluczowe jest usunięte i nowe jest sądzony lub pięciu pochodzi PVVs dopasować odpowiednie prawda PVVs, w takim przypadku można założyć, mamy tajnego klucza banku, jednak pętla trwa dopóki nie wyczerpuje klawisz spacji. Ma to na celu zapewnienie znajdziemy prawdziwym kluczem, ponieważ jest szansa (choć bardzo niski) pierwszy klucz ufundować jest fałszywie dodatni.
Oczekuje się, program podejmie bardzo długi czas do końca i zminimalizować ryzyko awarii zasilania, komputer zawiesza się itp. to nie przejść do pliku getpvvkey.dat od czasu do czasu (dokładny czas zależy od prędkości komputera, to około jednej godziny w przypadku najszybszych komputerów już w użyciu). Z tego samego powodu w przypadku pozytywnej znajduje się klucz to jest napisane w pliku getpvvkey.key. Program wyświetla tylko jeden komunikat na początku, w pozycji wyjściowej, pobranych z pliku punktu kontrolnego, jeśli w ogóle, po tym nic więcej nie zostanie wyświetlony.
Algorytmu DES jest kluczowym punktem w programie jest zatem bardzo ważne, aby zoptymalizować jego prędkość. Przetestowałem kilka wdrożeń: libdes, SSLeay, openssl, cryptlib, nss, libgcrypt, katakumby, libtomcrypt, cryptopp, ufc-crypt. Funkcji DES z czterech pierwszych są oparte na tym samym kodzie i przez Erica Younga, która jest najskuteczniejsza (w tym C i zoptymalizowany kod assemblera x86). Tak więc wybrałem libdes które są pierwotnym wdrażania i konsolidacji wszystkich odpowiedni kod w plikach encrypt.c (wersja C) i x86encrypt.s (asembler x86 wersja). Kod jest nieznacznie zmodyfikowane, by uzyskać pewne ulepszenia w brute force: permutacji wstępnej jest stały w każdym wspólnym strome szyfrowania TSP, a zatem można dokonać tylko jeden raz na początku. Kolejnym ulepszeniem jest to, że napisał zupełnie nową funkcję setkey (I nazwał to nextkey), który jest optymalny dla brute pętli życie.
Aby dostać się na pracy wystarczy wpisać w odpowiednie miejsce pięć TSPs i ich PVVs a następnie skompilować. Ja testowałem to tylko na platformach UNIX, używając Makegetpvvkey makefile do kompilacji (użyj polecenia "make-f Makegetpvvkey"). Może się skompilować na innych systemach, ale być może trzeba ustalić pewne rzeczy. Upewnij się, że definicję typu long64 odpowiada 64-bitowy integer. W zasadzie nie ma zależności od bajt procesora. I udało się zestawić, i uruchomić go na Pentium-Linux, Alpha-Tru64, Irix i architekturze MIPS-Sparc Solaris. Jeśli nie masz i nie chcesz zainstalować Linuksa (nie wiesz co tracisz ;-) nadal masz do wyboru Linuksa na płytach CD i używać programu, zobacz moją stronę z systemem Linux bez instalacji.
Po znalezieniu tajnego klucza banku, jeśli chcesz znaleźć PIN dowolnego karty wystarczy napisać podobny program (sorry, że nie pisałem, jestem zbyt leniwy:), że będzie próbował wszystkich 10 ^ 4 PIN poprzez tworzenie odpowiednich TSP, szyfrowanie z (nie) za pomocą klucza, wynikających PVV i porównania go z PVV w pasek magnetyczny karty. Pojawi się jeden mecz dla prawdziwych PIN. Tylko jeden mecz? Pamiętam to, co widzieliśmy powyżej, mamy szansę od 0,0001, że losowo szyfrowania odpowiada PVV. Staramy się 10000 PIN (a więc TSPs), co oczekujemy 10000 * 0,0001 = 1 fałszywy średnio.
Jest to bardzo ciekawy wynik, oznacza to, że średnio, każda karta ma dwa ważne PIN: PIN klienta i oczekiwanych wyników fałszywie dodatnich. Ja nazywam to "false", ale pamiętać, że tak długo, jak tworzy prawdziwe PVV jest tak samo ważny jak PIN klienta jeden. Ponadto, nie ma sposobu, aby wiedzieć, który jest który, nawet dla ATM, tylko klient wie. Nawet jeśli nie były fałszywie dodatnie ważne PIN, nadal mają trzy próby na ATM i tak, tyle średnio. Zatem prawdopodobieństwo mamy obliczoną na początku tego dokumentu o losowych zgadywania kodu PIN musi zostać skorygowany. Właściwie to jest dwa razy tej wartości, czyli jest to 0,0006 lub jeden z ponad 1600, nadal bezpiecznie niska.
Wyniki
Ważne jest, aby zoptymalizować kompilacji programu i uruchomić go w najszybszy procesor możliwy ze względu na długo oczekiwany czas pracy. I stwierdził, że flagi kompilatora optymalizacji-O dostaje lepszą wydajność, że pewną poprawę uzyskuje się dodając-fomit-frame-pointer flagi na Pentium-Linux-spike bandery Alpha-Tru64, IPA-flag na MIPS-Irix szybki i flagi na Sparc-Solaris. Specjalne flagi (-DDES_PTR-DDES_RISC1-DDES_RISC2-DDES_UNROLL-DASM) kodu DES na ogół korzyści. Wszystkie te flagi zostały już zbadane i wybrał najlepszą kombinację dla każdego procesora (patrz makefile), ale można spróbować dostosować innymi banderami.
Według moich badań najlepsze wyniki osiąga się z AMD Athlon 1600 MHz, powyżej 3.400.000 kluczy na sekundę. Co ciekawe robi lepsze wyniki niż Intel Pentium IV 1800 MHz i 2000 MHz (patrz rys. poniżej, kliknij je, aby powiększyć). Wierzę, że jest to spowodowane I / O nasycenia, z pewnością lub dostępu do pamięci cache, że procesor AMD (który połowę cache Pentium) lub płyty głównej, w którym działa, udaje się uniknąć. W pierwszym rysunku poniżej widać, że szybkość łamania DES wszystkich procesorów ma mniej lub bardziej liniowa zależność od prędkości procesora, z wyjątkiem dwóch Intel Pentium wspomniałem wcześniej. Jest to logiczne, to znaczy, że do podwójnego szybkość procesora otrzymasz podwójne złamanie prędkości, ale uważaj na skutki nasycenia, w tym przypadku lepiej jest AMD Athlon 1600 MHz, które będą jeszcze tańsze niż Intel Pentium 1800 MHz lub 2000 MHz.
W drugim rysunku widzimy, bardziej szczegółowo, co moglibyśmy nazwać wewnętrzną moc złamać DES procesora. I to się po prostu dzieląc wartość prędkości przerwy przez szybkość procesora, to otrzymujemy liczbę kluczy DES próbował na sekundę i na MHz. Jest to miara skuteczności typu procesora niezależnie od jego prędkości. Wyniki pokazują, że najlepiej do tego zadania procesor AMD Athlon jest, to jest Alfa i bardzo blisko po to Intel Pentium (z wyjątkiem tych wyższych prędkości, które wykonują bardzo słaba ze względu na efekt nasycenia). Kolejnym jest procesor MIPS i na ostatnim miejscu jest Sparc. Niektóre procesory Alpha i Mips znajdują się na dole skali, ponieważ są już wersje bez akcesoriów późnego wersji. Zauważ, że są wliczone w wydajności procesorów x86 do C i kod asemblera, gdyż istnieje duża różnica. Wydaje się, że gcc nie jest dobry generator zoptymalizowany kod maszynowy, ale oczywiście nie wiemy, czy ręcznej optymalizacji kodu asemblera dla innych procesorów (Alpha, Mips, Sparc) zwiększyłoby ich wyniki w porównaniu z rodzimymi kompilatory C (nie używałem gcc dla tych innych platform), jak to się dzieje z procesorem x86.
Aktualizacja
Oto artykuł, gdzie te techniki mogą być użyte.
Przetwarzania transakcji finansowych
przez Derek na Jul.02, 2008, w ramach Bankowość i Eftpos
Byłem niedawno pracującym w jednym z większych banków w Australii.
Dzięki tej pracy mam był patrząc na kontroli i mechanizmów podczas przetwarzania kart kredytowych i debetowych całym regionie Azji i Pacyfiku.
Mogę wykonywać wiele architektury bezpieczeństwa i oceny systemów płatności.
Z biegiem lat mam zawsze za ochronę danych karty jako jeden z kluczowych wniosków.
Do wczoraj nie widziałem CVV lub narzędzia PVV deszyfrowania. Myślę, że niektórzy skryptów wykorzystanie tych narzędzi może być bardzo ciekawe.
Strona hziggurat29.com
Wiele innych narzędzi na tej stronie są również bardzo wyjątkowy i wart uwagi.
Wielkie dzięki dla ziggurat29 świadczenia tych awesome narzędzi.
Ponieważ wiele z tych miejsc są tego rodzaju są trudne do znalezienia i często wydają się zanikać z biegiem lat, zdecydowałem się powtórzyć tekst z tej strony i świadczenie lokalnych kopii plików.
Warto okresowo odwiedzając ziggurat29 strony co jakiś czas sprawdzić, czy dodatkowe narzędzia zostały zamieszczone.
Jeden z plików jest więcej nadzwyczajnych Atalla Hardware Security Module (HSM) A i BogoAtalla dla emulacji Linksys (symulacja) narzędzi. Więc zastanawiam się, czy Eracom i Thales drżą w ich buty. Niektórzy jak ja tak nie uważam. ;-)
Tekst --- --- ziggurat29
Są to wszystko Windows narzędzi wiersza polecenia (jeżeli nie zaznaczono inaczej); wykonać z opcją-help
w celu ustalenia użytkowania.
DUKPT Decrypt (<- jest to właściwy plik do pobrania)
Jest to narzędzie, które będzie rozszyfrować Encrypted PIN Blocks, które zostały wytworzone przez DUKPT metody triple-DES. Użyłem tego do testowania wydajności niektóre programy PIN Pad I stworzył, ale jest także przydatny w innych celach debugowania.
VISA PVV Calculator (<- rzeczywistą
plik do pobrania)
Jest to narzędzie, które będzie obliczyć i weryfikacji wartości weryfikacji PIN, które zostały wyprodukowane z zastosowaniem techniki PVV VISA. Posiada kilka dodatkowych funkcji, takich jak sprawdzanie i ustalanie PAN (obliczenia Luhna), tworzenie bloków i szyfrowania PIN, dekodowania i z wydobycia PIN PIN szyfrowane bloki, itp.
Kalkulator VISA CVV (<- jest to właściwy plik do pobrania)
Jest to narzędzie, które będzie obliczyć wartości weryfikacji karty, które zostały wyprodukowane z zastosowaniem techniki CVV VISA. MasterCard CVC korzysta z algorytmu CVV, więc będzie działać w tym także. Będzie obliczyć CVV, CVV2, CVV3, iCVV, CAVV, ponieważ to tylko wariacje na temat usług i kod
format daty ważności. Weryfikacja jest po prostu porównywać wartość kalkulowana z tego, co otrzymaliśmy, więc nie ma wyraźnej funkcji kontrolnych.
Kalkulator Atalla AKB (<- jest to właściwy plik do pobrania)
Jest to narzędzie, które będzie zarówno generować i deszyfrowania depesz AKB Atalla. Musisz tekstowy MFK do wykonywania tych operacji. Przypadku odszyfrowywania, MAC będą również sprawdzane i wyniki przedstawione.
BogoAtalla (<- plik do rzeczywistych
download)
Jest to emulator Atalla (lub symulator). Emulacji to oprogramowanie (symulacja) w znanych Atalla Hardware Security Module (HSM), który jest używany przez banki i procesorów dla operacji kryptograficznych, takich jak sprawdzanie / tłumaczenia PIN blokuje, upoważniające transakcji weryfikacji
CVV / numery CSC, i prowadzenie procedur wymiany klucza, został wyprodukowany dla celów testowych. Implementacja ta nie jest w kompletny zestaw HP Atalla polecenia, ale tylko
porcje, które ja sam potrzebne. Pomimo to, jest na tyle kompletny, jeśli wykonują nabycia i / lub wydania przetwarzania funkcji, a są przy użyciu bardziej nowoczesnych systemów, takich jak Visa PVV i DUKPT, i trzeba zrobić pokolenia, weryfikacji i tłumaczenia.
Ten działa jako serwer gniazdo słuchanie muzyki i uchwyty Native Command Atalla zestawu. Wziąłem kilka wolności z wartościami zwróci błąd i nie starała się tam wysokiej jakości (np., można uzyskać inną odpowiedź błąd z native sprzętu), ale zdecydowanie powinien dostać identyczne pozytywne
odpowiedzi. Niektóre funkcje realizowane tu zwykle wymagają zakupu polecenia premium, ale wszystkie polecenia dostępne są tutaj realizowane. Przykładami są: generowanie wartości PVV i szyfrowania / odszyfrowania tekstu jawnego PIN wartości.
BogoAtalla dla Linksys (<- jest to właściwy plik do pobrania)
Jest to emulator Atalla przeniesiony na Linuksa i budowania instalacji w systemie OpenWRT. Sprawia, że naprawdę tanie ($ 60 USD) rozwój / test urządzenia.
Pliki lokalne
bogoatalla002
atallaakbcalc
bogoatalla_10-1_mipsel
dukptdecrypt
visacvvcalc
visapvvcalc









































