Breaking visum PIN

02 juli, 2008 in Banking en Eftpos

Hieronder staat een artikel dat ik onlangs gevonden. Dit een van de meest uitgebreide beschrijvingen PIN Waarde hacken.

Ik dacht dat ik zou repliceren dat hier voor mijn lokale referentie.

Als reactie hebben plaatsgevonden met betrekking tot de grammatica gebruikt in de tekst, ik hebben een aantal voor de hand liggende fouten met behoud van de context van het oorspronkelijke materiaal.

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

--- Original ----

Voorwoord
Heb jij je ooit afgevraagd wat er zou gebeuren als je verliest debetkaart, en iemand vindt. Zou deze persoon in te trekken in contanten uit een geldautomaat gissen, ergens, is uw Bovendien, als je die vindt dat iemand kaart zou je proberen om te raden naar de en neem de kans om wat geld gemakkelijk Natuurlijk is het antwoord op beide vragen moeten worden: "Nee." Dit werk houdt zich niet bezig met de tweede vraag, het is een van persoonlijke Hierbij probeer ik naar het antwoord op de eerste vraag.

Alle gegevens die worden gebruikt voor dit werk is openbaar en vrij kan worden gevonden in De rest is een kwestie van programmeren, dus we kunnen leren en iets gezelligs doen. Ik tonen geen geheimen. Bovendien is de doelstelling (en de uiteindelijke van dit werk is aan te tonen dat zijn nog steeds sterk genoeg om te voorzien in voldoende We weten allemaal zwakke punt.

Dit werk analyseert een van de meest voorkomende die wordt gebruikt door vele en probeert het uit te vinden hoe resistent is om gissen aanvallen. Met "raden" Ik bedoel daarmee niet het kiezen van een willekeurige probeert haar in een ATM. Het is algemeen bekend dat we een drie achtereenvolgende proeven te voer de juiste als we falen ATM houdt de Zoals is vier cijfers lang is het makkelijk om afleiden dat de kans op een willekeurige gissen is 3 / 10000 = 0,0003, lijkt laag genoeg om veilig te zijn, betekent dit dat je nodig hebt te verliezen kaart meer dan drie duizend keer ( of verliezen meer dan drieduizend kaarten tegelijk:) totdat er een redelijke kans op verlies van

Wat ik echt bedoeld met "geraden" was het breken van zodat een willekeurige kunt onmiddellijk weten wat de bijbehorende Daarom is dit document studies die mogelijkheid, het analyseren van algoritme en het voorstellen van een methode voor aanval. Ten slotte geven wij een instrument dat uitvoering geeft aan de huidige resultaten over de geschatte kans om te breken van het systeem. Merk op dat, zolang andere algoritmen (andere zoals IBM kaart validatie handtekeningen zoals of CVC) is vergelijkbaar met hetzelfde onderzoek kan worden gedaan die leidden tot nagenoeg dezelfde resultaten en conclusies.



Een van de meest voorkomende is de Waarde De klant krijgt een en een Gecodeerd in magneetstrip is een vier-cijferige nummer, genaamd Dit nummer is een cryptografische handtekening van de gegevens in verband met kaart. Wanneer een gebruiker zijn / haar de ATM leest de codeert en stuurt al deze informatie naar een centrale computer. Er een proefabonnement wordt berekend met gebruikmaking van de klant opgegeven de kaart informatie met een cryptografisch Het proces wordt vergeleken met de de kaart opgeslagen, indien zij overeenkomen met de centrale computer keert terug naar de ATM toestemming voor de Zie in detail te bekijken.

De beschrijving van de kan gevonden worden in twee documenten met elkaar verbonden zijn in de vorige pagina. Samenvattend bestaat in de een 8-byte (64 bit) string gegevens, genaamd Transformed Parameter (TSP), (DEA) Electronic Code Book-modus (ECB) met behulp van een geheime 64-bits sleutel. De is afgeleid van de output van de een 8-byte string. De vier cijfers van het (van links naar rechts) komen overeen met de eerste vier decimale cijfers (van links naar rechts) van het uitgangssignaal van toen beschouwd als een 16 hexadecimale tekens (16 x 4 bits = 64 bit) string. Als er geen vier decimale cijfers van de 16 hexadecimale tekens dan is de is voltooid genomen (van links naar rechts) niet decimalizing decimale karakters en ze worden met behulp van de A-> 0, B-> 1, C-> 2, D -> 3, E-> 4, F-> 5. Hier is een voorbeeld:

Output van 0FAB9CDEFFE7DCBA

0975

De strategie van vermijding decimalization door het overslaan van karakters tot vier decimalen worden aangetroffen (die toevallig ook bijna alle tijden, zoals we verder zullen zien) is erg slim, omdat men daarmee een belangrijke vertekening bij de verdeling van de cijfers, dit is bewezen te zijn fatale voor andere systemen, hoewel het effect op dit systeem zou veel lager zijn. Zie ook een aanverwant probleem niet van toepassing zijn op

De TSP, gezien als een 16 hexadecimale tekens (64 bits) string, wordt gevormd (van links naar rechts) met de 11 meest rechtse cijfers van het PAN met uitzondering van het laatste cijfer (check digit), een cijfer van 1 tot 6 die kiest voor het versleutelen van de geheime sleutel en tenslotte de vier cijfers van de Hier is een voorbeeld:

PAN: 1234 5678 9012 3445
Key selector: 1
2468

TSP: 5678901234412468

Vanzelfsprekend doet dit probleem van het breken bestaat in het vinden van de geheime sleutel voor het versleutelen van De methode daarvoor is om een brute force zoek naar de sleutel ruimte. Let op: dit is niet de enige methode, kan men proberen te vinden van een tekortkoming in de DEA, veel geprobeerd, maar dit oude norm is nog steeds op grote schaal wordt gebruikt (nu vervangen door AES RSA, hoewel). Dit toont het is stevig genoeg is zodat brute kracht is de enige haalbare methode (er zijn een paar aanvallen maar beter niet praktisch in ons geval, voor een overzicht zie LASEC memo en voor de dirty details zie Biham & Shamir 1990, Biham & Shamir 1991, Matsui 1993, Biham & Biryukov 1994 en Heys 2001).

De belangrijkste cijfers selector is zeer waarschijnlijk ingevoerd ter dekking van de mogelijkheid van een belangrijk compromis. In dat geval worden ze gewoon van de uitgifte van nieuwe kaarten met een andere sleutel selector. Oudere kaarten kunnen worden vervangen door nieuwe of simpelweg het op transparante ATM kunnen schrijven van een nieuw (overeenkomend met de nieuwe sleutel en het houden van dezelfde volgende keer dat de klant gebruikt zijn / haar Voor het schudden de veiligheid voor alle gebruikers moet worden gevraagd om hun pincodes, maar het zou pijnlijk voor bank om de reden, dus zeer waarschijnlijk zouden zij niet een dergelijk verzoek.

Voorbereiden van de


Een brute force bestaat uit het versleutelen van een TSP met een bekende met behulp van alle mogelijke sleutels versleutelen en te vergelijken elk verkregen met de bekende Wanneer er een match is gevonden hebben we een kandidaat-sleutel. Maar hoeveel toetsen we moeten proberen? Zoals we al boven de toets is 64 bits lang, dit zou betekenen dat we moeten proberen 2 ^ 64 sleutels. Dit is echter niet waar. Eigenlijk slechts 56 bits effectief in de want een beetje (het minst significante) van elk octet was vroeger al gereserveerd als een checksum voor de anderen, die in de praktijk 8 bits (een voor elk van de 8 octets) worden genegeerd.

Daarom is de ruimte bestaat uit 2 ^ 56 sleutels. Als we proberen al deze toetsen vinden we een en slechts een wedstrijd, wat overeenkomt met bank geheime sleutel? Zeker niet. We krijgen veel bijpassende sleutels. Dit komt doordat de is slechts een klein deel (een kwart) van het Bovendien is de is ontaard, omdat sommige van de cijfers (die tussen 0 en 5 na de laatste, gezien van links naar rechts, cijfer tussen 6 en 9) kan afkomstig zijn van een decimale cijfers of uit een decimalized hexadecimale cijfers van het Zo veel sleutels zullen een output levert aan dezelfde matching

En wat kunnen we doen om de echte sleutel tot die andere valse positieve sleutels? Simply hebben we bij het coderen van een seconde verschillende TSP, ook met bekende maar met alleen de kandidaat-sleutels die heeft een positieve matching met de eerste paar. Er is echter geen garantie die we gaan nu niet weer veel false positives samen met de echte toets. Zo ja, wij hebben een derde herhaal het proces en ga zo maar door.

Voordat we beginnen onze moeten we weten hoeveel paren zullen we nodig hebben. Om die we hebben voor het berekenen van de willekeurige output moet leiden tot een matching gewoon door toeval. Er zijn verschillende manieren om dit aantal te berekenen en hier zal ik gebruik maken van een eenvoudige benadering gemakkelijk te begrijpen, maar dat vereist enige achtergrond in

Een kan altijd worden gezien als de verhouding van de gevallen gunstig mogelijke gevallen. In ons probleem is het aantal mogelijke gevallen wordt gegeven door de van 16 elementen (de 0 tot en met F hexadecimale cijfers) in een groep van 16 van hen (de 16 hexadecimale cijfers van het Deze wordt gegeven door 16 ^ 16 ~ 1,8 * 10 ^ 19, dat samenvalt met uiteraard 2 ^ 64 (verschillende getallen van 64 bits). Deze reeks getallen kunnen worden gescheiden in vijf categorieën:

Degenen met ten minste vier decimale cijfers (0 t / m 9) van de 16 hexadecimale cijfers (0 t / m F) van het

Degenen met precies slechts drie decimalen.

Degenen met precies slechts twee decimalen.

Degenen met precies alleen een decimaal cijfer.

Degenen die geen decimalen (alle tussen A en F).

Laten we eens berekenen hoeveel nummers vallen in elke categorie. Als we het etiket van 16 hexadecimale cijfers van het output als X1 van X16 dan kunnen we etiket de eerste vier decimalen van een bepaald nummer van de eerste categorie als Xi, XJ, XK en XL. Het aantal verschillende combinaties met dit profiel wordt gegeven door het product 6 i-1 * 10 * 6 undecies-i-1 * 10 * 6k-j-1 * 10 * 6 LK-1 * 10 * 1616-l wanneer de 6 ' s komen uit het aantal mogelijkheden voor een A tot F cijfers, de 10's afkomstig zijn van de mogelijkheden voor een 0 tot en met 9 cijfers, en de 16 is afkomstig van de mogelijkheden voor een 0 tot en met F cijfer. Nu is de totale aantallen in de eerste categorie is gewoon gegeven door de sommering van dit product via i, j, k, l, van 1 tot en met 16 maar met i <j <k <l. Als u nog een aantal wiskundige werk dat u zult zien deze is gelijk aan het product van 104 / 6 met de sommering over i van 4 tot en met 16 van (i-1) * (i-2) * (i-3) * 6i-4 * 16 16-i ~ 1,8 * 1019.

En het aantal gevallen in de tweede categorie wordt gegeven door de sommering over i, j, k van 1 tot 16 met i <j <k van het product 6i-1 * 10 * 6 undecies-i-1 * 10 * 6k-j -1 * 10 * 616-k waarin je er wel uit te zijn 16! / (3! * (16-13)!) * 103 * 13 6 = 16 * 15 * 14 / (3 * 2) * 103 * 613 = 56 * 104 * 613 ~ 7,3 * 1015. Ook voor de derde categorie hebben we de sommering over i, j van 1 tot 16 met i <j, van 6 i-1 * 10 * 6 undecies-i-1 * 10 * 616-j dat gelijk is aan 16! / (2! * (16-14)!) * 102 * 614 = 2 * 103 * 615 ~ 9,4 * 1014. Nogmaals, voor de vierde categorie hebben we de sommering over i van 1 tot 16 van 6i-1 * 10 * 616-i = 160 * 615 ~ 7,5 * 1013. En tot slot het bedrag van de gevallen in de vijfde categorie wordt gegeven door de van zes elementen (A tot F cijfers) in een groep van 16, dat is, 616 ~ 2,8 * 1012.

Ik hoop dat u de berekeningen tot aan dit punt, het harde deel is gedaan. Nu als een bewijs dat alles goed is kun je som van het aantal gevallen in de categorieën 5 en ziet het gelijk aan het totaal aantal mogelijke gevallen hebben we berekend vóór. Hebben de diensten op basis van 64-bits getallen of afronding (voor drijft) of overloop (voor integers) fouten zullen niet toestaan dat u om de exacte resultaat.

Tot nu toe hebben we berekend het aantal mogelijke gevallen in elk van de vijf categorieën, maar we zijn geïnteresseerd in het verkrijgen van het aantal gunstige gevallen plaats. Het is erg makkelijk om de laatste uit de voormalige als dit is slechts tot vaststelling van de combinatie van de vier decimale cijfers (of de vereiste hexadecimale cijfers als er geen vier decimale cijfers) van de in plaats van ze gratis. In de praktijk betekent dit keerpunt in de 10's in de bovenstaande formule 1's en het vereiste bedrag van 6's in 1's als er geen vier decimalen. Dat wil zeggen, we hebben tot het verdelen van het eerste resultaat met 104, het tweede door een 103 * 6, de derde door een 102 * 62, het vierde door een 10 * 63 en de vijfde door een 64. Dan het aantal gunstige gevallen in de vijf categorieën zijn ongeveer 1,8 * 1015, 1,2 * 1012, 2,6 * 1011, 3,5 * 1010, respectievelijk 2,2 * 109.

Nu zijn we in staat zijn te verkrijgen wat is de op een match door toeval. We hoeven alleen maar het toevoegen van de vijf nummers van gunstige gevallen en de verdeling daarvan door het totale aantal mogelijke gevallen. Hierdoor bekomen we de kans groot is ongeveer 0.0001 of een op de tienduizend. Is het vreemd dat goed gevolg afgerond? Helemaal niet, ga dan naar de nummers we hierboven berekende. De eerste categorie overheerst door verschillende ordes van grootte, het aantal gunstige en mogelijke gevallen. Dit is nogal intuïtief als het lijkt duidelijk dat het zeer onwaarschijnlijk is niet met vier decimalen (10 kans van 16 procent cijfers) tussen 16 hexadecimale cijfers. We zagen reeds dat de relatie tussen het aantal positieve gevallen mogelijk en in de eerste categorie was een deling door 10 ^ 4, dat is waar onze resultaat p = 0,0001 vandaan komt.

Ons doel voor al deze berekeningen was om erachter te komen hoeveel pairs we nodig hebben om een succesvol brute attack. Nu zijn we in staat zijn voor de berekening van het verwachte aantal valse positieven in een eerste zoekopdracht: het zal het aantal proeven keer de voor een willekeurige valse positieve, dat wil zeggen t * p waarin t = 2 ^ 56, de grootte van de sleutel ruimte. Dit komt neer op ongeveer 7,2 * 10 ^ 12, een heel groot getal. Het verwachte aantal valse positieven in de tweede search (beperkt tot de positieve sleutels gevonden in het eerste zoekresultaat) zal worden (t * p) * p, voor een derde zoekopdracht wordt ((t * p) * p) * p en enzovoort. Dus voor n zoekt in het verwachte aantal valse positieven zal t * p ^ n.

We kunnen verkrijgen van het aantal zoekopdrachten te verwachten dat slechts een false positive met het uitspreken van de vergelijking t * p ^ n = 1 en voor het oplossen van n. Dus n is gelijk aan logaritme in de basis van p 1 / t, die door de eigenschappen van logaritmen zij rendementen n = log (1 / t) / log (p) ~ 4.2. Omdat we niet kunnen doen een fractionele zoeken is het handig om rond dit getal. Dus wat is het verwachte aantal false positives als we presteren vijf zoekopdrachten? Het is t * p ^ 5 ~ 0.0007 of ongeveer 1 op 1400. Aldus de hand van vijf pairs veilig is voor het verkrijgen van de ware geheime sleutel zonder valse positieven.

aanval


Nu we weten dat we nodig hebben vijf paren, hoe kunnen we ze? Natuurlijk moeten we op zijn minst een met een bekende en vanwege de aard van de dat is het enige wat we nodig hebben. Met andere zoals IBM, die we nodig vijf kaarten, maar dit is niet noodzakelijk VISA We hoeven alleen maar het lezen van de en wijzig de vier keer, maar het lezen van de na elke verandering.

Het is noodzakelijk voor het lezen van de de kaart te krijgen van de en de sleutel versleutelen selector. Je koopt een commerciële of maak zelf een volgens de instructies vindt u in de vorige pagina en links daarin. Zodra u een zie de beschrijving van de standaard magnetische tracks om erachter te komen hoe men de uit gegevens lezen. In dat document wordt de veld in tracks 1 en 2 wordt naar verluidt vijf tekens lang, maar eigenlijk de echte bestaat uit de laatste vier cijfers. De eerste van de vijf cijfers is de sleutel selector. Ik heb alleen gezien kaarten met een waarde van 1 in deze cijfers, die overeenkomen met de norm en met de geheime sleutel nooit gevaar wordt gebracht (en dus ze hoefde niet te verhuizen naar een andere toets verandert de selector).

Ik heb een eenvoudige C programma, getpvvkey.c, voor het uitvoeren van aanslag. Het bestaat uit een lus om te proberen alle mogelijke sleutels te versleutelen, de eerste TSP, indien de afgeleide overeenkomt met de werkelijke een nieuwe TSP is geprobeerd, en zo verder tot er sprake is van een mismatch, in welk geval de sleutel is verwijderd en een nieuwe wordt geprobeerd, of de vijf afgeleide PVVs overeenkomen met de overeenkomstige ware PVVs, in welk geval mogen we aannemen kregen we de geheime sleutel, maar de lus gaat door totdat hij de sleutel uitlaat ruimte. Dit is gedaan om te verzekeren vinden we de echte sleutel, omdat er een kans (zij het zeer geringe) de eerste sleutel gevonden is een vals positief.

Verwacht wordt het programma zou erg lang duren om te eindigen en het minimaliseren van de risico's van een stroomstoring, computer rondhangen, enz. Dit doet checkpoints in het bestand getpvvkey.dat van tijd tot tijd (het exacte tijdstip is afhankelijk van de snelheid van de computer, het is ongeveer een uur voor de snelste computers nu in gebruik). Om dezelfde reden als een positieve toets wordt gevonden is het geschreven op het bestand getpvvkey.key. Het programma toont slechts een boodschap aan het begin, de uitgangspositie genomen uit het bestand als elke controlepost, na dat er niets meer wordt weergegeven.

Het is een cruciaal punt in het programma, is het daarom van groot belang voor het optimaliseren van zijn snelheid. Ik heb getest meerdere implementaties: libdes, SSLeay, OpenSSL, cryptlib, NSS, libgcrypt, catacombe, libtomcrypt, cryptopp, ufc-crypte. De functies van de eerste vier zijn gebaseerd op dezelfde code door Eric Young en is degene die het best uitgevoerd (inclusief x86 geoptimaliseerde C en assembler code). Zo koos ik libdes die was de oorspronkelijke uitvoering en gecondenseerde alle relevante code in de bestanden encrypt.c (C-versie) en x86encrypt.s (x86 assembler versie). De code is enigszins aangepast om een aantal verbeteringen door te voeren in een brute attack: de initiële is een gemeenschappelijke vaste steile in elk kan dus worden gedaan maar een keer aan het begin. Een andere verbetering is dat ik schreef een compleet nieuwe setkey functie (Ik noemde het nextkey) die optimaal is voor een brute force-lus.

Om het programma werkt, hoef je alleen maar typen in de desbetreffende plaats vijf TSPs en hun PVVs en vervolgens compileren. Ik heb het getest alleen in UNIX-platforms, met behulp van de makefile Makegetpvvkey te compileren (gebruik het commando "make-f Makegetpvvkey"). Het kan compileren op andere systemen maar je kan het nodig vast te stellen dat sommige dingen. Wees er zeker van dat de van het soort long64 komt overeen met een 64 bit integer. In principe bestaat er geen afhankelijkheid van de endianness van de processor. Ik hebt en deze vervolgens op Pentium-Linux, Tru64 Alpha-, Mips Irix-en Sparc-Solaris. Als je niet hebt en niet wilt installeren van Linux (je weet niet wat je mist ;-) u nog steeds de keuze zijn om Linux te draaien op cd en gebruik mijn programma, zie mijn pagina 'die Linux draaien zonder te installeren.

Als u eenmaal hebt gevonden de geheime als u wilt dat bij het vinden van de van een willekeurige kun je gewoon met het schrijven van een vergelijkbaar programma (sorry ik heb het niet geschreven, ik ben te lui:) dat zou proberen alle 10 ^ 4 pincodes Door de overeenkomstige TSP, versleutelt het met de (niet meer) geheime sleutel, het afleiden van de en vergelijken deze met de in de de kaart. U krijgt dan een wedstrijd voor de ware Slechts een match? Vergeet niet wat we zagen, hebben wij een kans van 0,0001 dat een encryptie overeenkomt met de Wij proberen 10.000 pincodes (en dus TSPs) dus we verwachten 10000 * 0,0001 = 1 valse positieve van het gemiddelde.

Dit is een zeer interessant resultaat, het betekent dat gemiddeld elke geldige PIN: de klant de verwachte vals alarm. Ik noem het "false" maar let op dat, zolang het genereert de ware is PIN-code als geldig als de klant een. Bovendien is er geen manier om te weten wie is wie, zelfs niet voor de ATM; enige afnemer weet. Zelfs als de valse positieve werden niet geldig als je hebt toch nog drie proeven op de ATM-anyway, genoeg van het gemiddelde. Daarom is de berekend we aan het begin van dit document over random raden de PIN moet worden rechtgezet. Eigenlijk is het dubbele van die waarde, dat wil zeggen, het is +0.0006 of een van de meer dan 1600, nog steeds veilig laag.

Resultaten


Het is belangrijk voor het optimaliseren van de samenstelling van het programma en start het programma op de snelst mogelijke processor te wijten aan het lang verwachte runtime. Ik vond dat de compiler optimalisatie vlag-O krijgt de betere prestaties, dacht enige verbetering wordt bereikt toevoeging van de-fomit-frame-pointer-vlag in de Pentium-Linux, de spike-vlag in de Alpha-Tru64, het IPA-vlag op Mips-Irix en de fast-vlag op Sparc-Solaris. Speciale vlaggen (-DDES_PTR-DDES_RISC1-DDES_RISC2-DDES_UNROLL-DASM) voor de hebben over het algemeen voordelen. Al deze vlaggen zijn al getest en ik koos voor de beste combinatie voor elke processor (zie makefile), maar u kunt proberen te fine-tunen andere vlaggen.

Volgens mijn tests van de beste prestaties wordt bereikt met de AMD Athlon 1600 MHz processor, meer dan 3,4 miljoen toetsen per seconde. Interessant hij krijgt betere resultaten dan een Intel Pentium IV 1800 MHz en 2000 MHz (zie cijfers hieronder, klik op ze om ze te vergroten). Ik denk dat dit te wijten is aan een aantal I / O verzadiging, zeker cache of Access, dat de AMD processor (die de helft van de cache van de Pentium) of het moederbord, waarop het draait, beheert te vermijden. In de eerste figuur hieronder kunt u zien dat de breken snelheid van alle processors is min of meer een lineaire relatie met de processor snelheid, met uitzondering van de twee Intel Pentium ik eerder al noemde. Dat is logisch, betekent dit dat voor een dubbele processor snelheid krijg je dubbele snelheid te breken, maar pas op voor verzadiging effecten, in dit geval is het beter de AMD Athlon 1600 MHz, die zal worden zelfs goedkoper dan de Intel Pentium 1800 MHz of 2000 MHz.

In de tweede figuur zien we meer in detail wat wij zouden noemen intrinsieke pauze kracht van de processor. Ik krijg alleen maar deze waarde te delen door het break snelheid van de processor snelheid, dat wil zeggen, we krijgen het aantal geprobeerd per seconde en per MHz. Dit is een maatstaf voor de prestaties van de type onafhankelijk van de snelheid. Uit de resultaten blijkt dat de beste processor voor deze taak is de AMD Athlon, daarna komt de Alpha en erg dicht nadat het is de Intel Pentium (behalve voor de hogere snelheid zijn die in zeer slecht presteren als gevolg van de verzadiging effect). Het volgende is de Mips-processor en in de laatste plaats is de Sparc. Sommige Alpha en Mips-processoren zijn gevestigd aan de onderkant van de schaal, omdat ze niet met inbegrip van vervroegde invrijheidstelling toebehoren van een te late versies. Merk op dat ik ook de prestatie van x86-processors voor C en assembler code als er een verschil. Het lijkt erop dat gcc is geen goede machine generator van geoptimaliseerde code, maar uiteraard weten we niet of een handmatige optimalisatie van assembler-code voor de andere processoren (Alpha, MIPS, SPARC) zou bevorderen en hun resultaten worden vergeleken met de native C compilers (Ik heb geen gebruik maken van gcc voor deze andere platforms) zoals het geval is met de x86-processor.

Update

Hier is een artikel waar deze technieken kunnen zijn gebruikt.

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

Financiële Transaction Processing

02 juli, 2008 in Banking en Eftpos

Ik heb sinds kort werkzaam binnen een van de grotere banken Australië.
Door dit werk heb ik gekeken naar de controles mechanismen rond de Azië rond de Stille Oceaan.

Ik krijg het uitvoeren van groot aantal veiligheidsrisico betalingssystemen evaluaties.
In de loop der jaren heb ik altijd beschouwd als bescherming van de als een van de belangrijkste overwegingen.

Tot gisteren had ik nog nooit gezien een of Ik denk dat sommige scripts gebruik van deze hulpmiddelen kunnen zeer interessant zijn.
De site hziggurat29.com

Veel van de andere hulpprogramma's op deze site zijn eveneens zeer uniek en de moeite waard een kijkje.
Grote dank aan ziggurat29 voor het verstrekken van dergelijke awesome tools.

Zoals veel van deze sites zijn van dien aard zijn moeilijk te vinden en te vaak lijkt te verdwijnen in de loop der jaren heb ik gekozen te worden van de op deze pagina en lokale kopieën van de bestanden.
Het is de moeite waard ziggurat29 periodiek bezoek aan de site af en toe om te kijken of eventuele aanvullende instrumenten zijn gepost.

Een van de meer buitengewone bestanden is de Atalla en (simulatie) gereedschappen. Dus ik vraag me af of Thales trillen in hun laarzen. Sommige hoe ik denk het niet. ;-)

--- Ziggurat29 ---

Dit zijn alle Windows command-line utilities (tenzij anders vermeld); voeren met de optie-help
om te bepalen gebruik.

DUKPT gecodeerde (<- in het originele bestand te downloaden)

Dit is een zal van versleutelde Blokken die zijn geproduceerd via de Ik gebruikte dit voor het testen van de output van sommige Pad software die ik had gemaakt, maar is ook handig voor andere doeleinden debuggen.

VISA PVV Calculator (<- de werkelijke
bestand om te downloaden)

Dit is een zal berekenen en verifiëren van Waarden die zijn geproduceerd met behulp van de Het is een stelletje hulpmotor functies, zoals het controleren en vaststellen van een PAN (Luhn de creatie en het versleutelen van decoderen en winning van pincodes uit gecodeerde enz.

VISA CVV Calculator (<- in het originele bestand te downloaden)

Dit is een zal compute Waarden die zijn geproduceerd met behulp van de MasterCard CVC maakt gebruik van de zodat het geschikt is voor dit thema aangesneden. Het zal compute CVV3, iCVV, CAVV, aangezien dit zijn slechts variaties op de dienst code en de
formaat van de vervaldatum. is gewoon een vergelijking van de berekende waarde met de riemen die je hebt ontvangen, er is dus geen expliciete

Atalla AKB Calculator (<- in het originele bestand te downloaden)

Dit is een beide zullen genereren te decoderen Atalla AKB cryptograms. U moet het leesbare MFK voor het uitvoeren van deze handelingen. Bij het decoderen, het MAC zal ook worden gecontroleerd en de resultaten weergegeven.

BogoAtalla (<- het eigenlijke bestand op
download)

Dit is een Atalla (of simulator). Deze van de bekende Atalla dat wordt gebruikt door banken en processoren voor cryptografische operaties, zoals het controleren / vertalen van waarbij transacties door verifiëren
CSC cijfers, sleutel-uitwisseling en het uitvoeren van procedures, is geproduceerd voor test doeleinden. Deze uitvoering is niet van de volledige HP Atalla commando set, maar veeleer het net
porties die ik zelf nodig. Dat gezegd hebbende, het compleet is genoeg, als u uitvoert verwerven en / of het uitgeven van en zijn meer gebruik te maken van moderne regelingen zoals en en moeten doen de verificatie en de vertaling.

Deze draait als een luisterend socket native Atalla omgaat met het commando set. Ik heb enkele vrijheden met de foutmelding waarden retourneren en hebben niet gestreefd naar high-fidelity er (dus krijg je een andere fout antwoord van native maar zeker moeten krijgen identieke positief
antwoorden. Sommige functies geïmplementeerd zou hier normaliter premie voor de aankoop van commando's, maar alle commando's uitgevoerd zijn hier beschikbaar. Voorbeelden hiervan zijn het genereren van waarden en versleutelen / decoderen plaintext

BogoAtalla voor Linksys (<- in het originele bestand te downloaden)

Dit is de Atalla voor Linux, en bouwen voor installatie op een OpenWRT systeem. Zorgt voor een echt goedkoop ($ 60 ontwikkeling / test apparaat.

Lokale bestanden

bogoatalla002
atallaakbcalc
bogoatalla_10-1_mipsel
dukptdecrypt
visacvvcalc
visapvvcalc