EFT Syetms og Enhet Hensyn

05 august 2008 i Bank og Eftpos, Sikkerhet

enheter og systemer variere land og / aggregator.
Nedenfor er en liste over ting du kanskje liker å tenke. Denne listen er på toppen av hodet mitt, så det er nok ikke fullført.

Se på produkter og relasjoner oss vanligvis en god start.

Ting du bør vurdere:

Mobile Banking Security and Risk Assessment Hensyn

05 august 2008 i Bank og Eftpos, Sikkerhet

Når banktjenester og tilhørende risiko, er en vurdering tilnærming avhenger i stor grad på den løsningen som blir opprettet eller forutsatt.
Vanligvis tilnærmingen er basert på lagdelte støtte og rundt teknologi og teknikker som brukes.

Her er noen ting du bør vurdere.

evalueringer generelt fokuserer på to hovedtyper ting.

1 / Sensitivitet av
Hva blir sendt. f.eks. bankkontonummer, etc.
kan ikke sensitive til men kan bli vurdert av klienten som sensitive.
osv. ... ... ....

2 / mulighet til å til
Hva medium som brukes?
Er det enkelt å
Hva blir brukt?
Er alle stier sikker (klient og back end)?
Er det en 3dje part involvert i veksling av transaksjonene?
osv. ... ... ...

Ting du bør vurdere:

  • tilbakestilles sendt via til klienten, bør ikke brukes som eneste metode for å få tilgang til kontoene. En ekstra klient spesifikke (muligens statisk) pass ord / setninger som bør brukes i tillegg til en dynamisk genererte kan sniffed (avhengig av modus og sted).
  • Hvis WAP brukes, er alle enhetene i stand til Hvis enhetene ikke er i stand til skal vi nekte til disse enhetene? Hvis klientsiden eller (seier CE, osv.), at dette kan ikke bli svekket av en trojaner og andre teknikker.
  • Har organisasjonen vurdert klientsiden sertifikater å verifisere at enheten før transaksjoner blir akseptert? Vurder flere enheten og brukeren metoder (svært løsning avhengige).
  • De fleste mobile POS terminaler kryptere kunden tastet men ikke kryptere alt innen Hvis medium er svekket, bør vi vurdere om kan sprakk og hvis ukrypterte er følsom. Vurdere ytterligere dvs. bruk av alle melding (SSL, eller bruke en terminal som utnytter Basert Unique Key per
  • Mange programmer har blitt påvirket av typiske hacks som session kapring, ikke tilfeldig økt nøkler (klientsiden og side), osv. ... Disse typiske hacks bør vurderes i Secure SDLC og QA prosesser når du er klar over brukes og / eller distribuert.
  • PBX-systemer og kabling distribusjon rammer kan ha enheter som er koblet til å samle transaksjoner. Trådløse enheter er nå koblet til disse systemene. Angriperen sitter i bilen på parkeringsplassen utenfor. Dette er ofte gjort i super markeder.
  • Trådløst gateways hvis ikke kryptert er lett samles av noen innen trådløs rekkevidde. 802,11 og andre trådløse / infra-rødt medier blir brukt (vurdere og medium som brukes).
  • Har organisasjonen vurdert dynamiske nøkler for mobile brukere? Det er noen svært lav kostnad SecureID løsninger tilgjengelig i dag, men kundene må ha disse enhetene på dem når de ønsker å gjøre en

Breaking VISA PIN

02 juli 2008 i Bank og Eftpos

Nedenfor er en artikkel jeg fant nylig. Dette et av de mest omfattende beskrivelser av Verdi

Jeg trodde jeg ville gjenskape det her for min lokale referanse.

Som kommentar har blitt gjort om grammatikk brukt i den opprinnelige jeg har rettet opp noen av de åpenbare feil samtidig opprettholde sammenheng med det opprinnelige materialet.

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

--- Opprinnelig ----

Forord
Har du noen gang lurt på hva som ville skje hvis du mister debetkort, og noen finner den. Vil denne personen kunne ta ut penger fra en minibank gjette, annen, Videre, hvis du var som finner noen vil du forsøke å gjette og ta sjansen til å få noen enkle Selvfølgelig er svaret på begge disse spørsmålene er "nei". Dette arbeidet har ikke avtale med andre spørsmål, er det et spørsmål om Dette jeg forsøker å svare på det første spørsmålet.

All informasjon som brukes til dette arbeidet er offentlig, og kan fritt funnet i Resten er et spørsmål om og programmering, og dermed kan vi lære og ha det moro. Jeg avslører ingen hemmeligheter. Videre er målet (og endelige av dette arbeidet er å vise at algoritmer er fortsatt sterk nok til å gi tilstrekkelig Vi vet alle er ikke det

Dette arbeidet analyserer en av de vanligste algoritmer, brukt av mange debetkort) og prøver å finne ut hvordan resistente er å gjette angrep. Ved å "gjette" Jeg trenger ikke bety å velge en tilfeldig og prøver den i en minibank. Det er kjent at generelt vi får tre forsøk å angi riktig hvis vi mislykkes minibank holder Som er firesifret lenge det er lett å utlede at sjansen for en tilfeldig gjette er 3 / 10000 = 0,0003, det synes lite nok til å være sikker, det betyr at du trenger å miste mer enn tre tusen ganger ( eller å miste mer enn tre tusen kort på samme tid:) inntil det er en rimelig sjanse for å tape

Det jeg egentlig menes med "gjetter" var å bryte slik at gitt noen kan du umiddelbart kjenner den tilknyttede Derfor dette dokumentet studier at muligheten, analysere og foreslå en metode for Til slutt gir vi et verktøy som implementerer og presentere resultater om anslått å ødelegge systemet. Merk at så lenge andre algoritmer (andre formater som IBM eller validering signaturer som eller CVC) ligner samme analyser kan gjøres gir nesten samme resultater og konklusjoner.



En av de vanligste algoritmer er Verdi Kunden får en og en Kodet inn i er et firesifret tall, kalt Dette nummeret er en kryptografisk signatur for andre knyttet til Når en bruker skriver inn sin minibanken leser krypterer og sender denne informasjonen til en sentral datamaskin. Det en prøveordning er beregnet ved hjelp av kunden tastet inn og med en kryptografisk Prøveordningen er sammenlignet med lagret i hvis de samsvarer med den sentrale datamaskinen tilbake til ATM autorisasjon for Se mer detaljert.

Beskrivelsen av kan finnes i to dokumenter knyttet i forrige side. Oppsummert det består i av en 8 byte (64 bit) streng med kalt transformert Parameter (TSP), med (DEA) i Code Book modus (ECB) ved hjelp av en hemmelig 64-biters nøkkel. Den er utledet fra utdataene for som er en 8 byte streng. De fire sifrene i (fra venstre til høyre) tilsvarer de første fire desimaler (fra venstre til høyre) av produksjonen fra når regnet som en 16 heksadesimale tegn (16 x 4 bit = 64 bit) streng. Hvis det ikke finnes fire desimalar blant 16 heksadesimale tegn deretter er fullført tatt (fra venstre til høyre) ikke desimal tegn og decimalizing dem ved hjelp av konvertering A-> 0, B-> 1, C-> 2, D -> 3, E-> 4, F-> 5. Her er et eksempel:

Produksjonen fra 0FAB9CDEFFE7DCBA

0975

Strategien for å unngå decimalization ved å hoppe tegn til fire desimaler finnes (som skulle nesten alle ganger som vi vil se nedenfor) er veldig smart fordi den unngår en viktig skjevhet i fordelingen av tall som har vist seg å være dødelig for andre systemer, selv om virkningen på dette systemet vil være mye lavere. Se også et relatert problem ikke gjelder

Den TSP, sett på som en 16 heksadesimale tegn (64 biter) strengen er dannet (fra venstre til høyre) med 11 høyre sifrene i PAN unntatt det siste sifferet (sjekk siffer), ett siffer fra 1 til 6 som velger hemmelig kryptere nøkkelen og til slutt fire siffer i Her er et eksempel:

PAN: 1234 5678 9012 3445
Key selektor: 1
2468

TSP: 5678901234412468

Tydeligvis problemet med å bryte består i å finne den hemmelige kryptere nøkkelen for Metoden for dette er å gjøre et "brute force" søk på nøkkelen plass. Merk at dette er ikke den eneste metoden, man kunne prøve å finne en svakhet i DEA, mange prøvde, men denne gamle standarden er fortsatt på bred bruk (nå erstattet av AES og skjønt). Dette viser at det er robust nok til at "brute force er den eneste gjennomførbare metoden (er det noen bedre angrep, men ikke praktisk i vårt tilfelle, for en oversikt se LASEC memo og for skitne detaljer se Biham & Shamir 1990, Biham & Shamir 1991, Matsui 1993, Biham & Biryukov 1994 og Heys 2001).

Nøkkelen selektor sifferet var svært sannsynlig innført for å dekke muligheten for en nøkkel kompromiss. Da de bare nødt til å utstede nye kort med en annen tast selektor. Voksne kortene kan erstattes med nye, eller bare minibanken kan transparent skrive en ny (tilsvarende den nye nøkkelen og holde den samme neste gang kunden bruker hans / hennes For å riste av alle brukere bør bli bedt om å endre sin PIN-koder, men det ville være pinlig for å forklare, og derfor svært sannsynlig ville de ikke gjøre slik forespørsel.

Forbereder


En "brute består i å kryptere en TSP med kjente bruke alle mulige kryptere tastene og sammenligne hvert fått med kjente Når en kamp blir funnet vi har en kandidat tasten. Men hvor mange nøkler må vi prøve? Som vi sa over tasten er 64 bits lang, vil dette at vi må prøve 2 ^ 64 nøkler. Men dette er ikke sant. Faktisk bare 56 biter er effektive i nøkler fordi en bit (minst signifikante) ut av hver oktett ble historisk enerett som en kontrollsum for andre, i praksis de 8 biter (ett for hvert av de 8 octets) ignoreres.

Derfor nøkkelen plass består av 2 ^ 56 nøkler. Hvis vi prøver alle disse tastene vil vi finner en og bare en kamp, tilsvarende hemmelig nøkkel? Absolutt ikke. Vi vil få mange samsvarende tastene. Dette er fordi er bare en liten del (kvart) av utgang. Videre er degenerated fordi noen av sifre (de mellom 0 og 5 etter siste sett fra venstre til høyre, siffer mellom 6 og 9) kan komme fra en desimal siffer eller fra en decimalized heksadesimale siffer av utgang. Dermed mange nøkler vil produsere en utgang som gir de samme samsvarende

Så hva kan vi gjøre for å finne den virkelige nøkkelen blant de andre falske positive nøklene? Bare vi har til å kryptere et sekund ulike TSP, også kjent men bruker bare kandidatsiden tastene som ga en positiv samsvarende med den første par. Imidlertid er det ingen garanti for vi vil ikke komme igjen mange falske positive sammen med ekte tast. Hvis det er slik, trenger vi en tredel paret gjenta prosessen og så videre.

Før vi starter våre må vi vite hvor mange parene vi trenger. For at vi har for å beregne for en tilfeldig output å gi en samsvarende bare ved en tilfeldighet. Det er flere måter å beregne dette nummeret, og her vil jeg bruke en enkel tilnærming enkle å forstå, men som krever litt bakgrunnsinformasjon i av

En kan alltid bli sett på som forholdet mellom gode saker til mulige tilfeller. I vårt problem antall mulige tilfeller er gitt av av 16 elementer (0 til F heksadesimaltall) i en gruppe på 16 av dem (16 heksadesimaltall av output). Dette er gitt ved 16 ^ 16 ~ 1,8 * 10 ^ 19 som selvfølgelig faller sammen med 2 ^ 64 (forskjellige tall av 64 biter). Dette settet med tall kan bli delt opp i fem kategorier:

De med minst fire desimaler (0 til 9) blant de 16 heksadesimaltall (0 til F) av utgang.

De med nøyaktig bare tre desimalar.

De med nøyaktig to desimalar.

De med nøyaktig én desimal siffer.

De uten desimaler (alle mellom A og F).

La oss regne ut hvor mange tall faller i hver kategori. Hvis vi merke 16 heksadesimaltall av utgang som X1 til x16 så vi kan merke de første fire desimalar av et gitt antall den første kategorien som Xi, XJ, Xk og Xl. Antallet forskjellige kombinasjoner med denne profilen er gitt ved produktet 6 i-1 * 10 * 6j-i-1 * 10 * 6k-j-1 * 10 * 6 LK-1 * 10 * 1616-l der 6 ' er kommet fra flere muligheter for en A til F siffer, de 10 er kommet fra mulighetene for a 0 til 9 siffer, og 16 kommer fra mulighetene for en 0 til F siffer. Nå er de totale tallene i den første kategorien er bare oppgitt av oppsummering av dette produktet over i, j, k, l fra 1 til 16, men med i <j <k <l. Hvis du gjør noen matematiske arbeid du vil se denne lik til produktet av 104 / 6 med oppsummering over i fra 4 til 16 av (i-1) * (i-2) * (i-3) * 6i-4 * 16 16-i ~ 1,8 * 1019.

I tilsvarende antall tilfeller i den andre kategorien er gitt av oppsummering over i, j, k fra 1 til 16 med i <j <k av produktet 6i-1 * 10 * 6j-i-1 * 10 * 6k-j -1 * 10 * 616-k som du kan arbeide det ut til å være 16! / (3! * (16-13)!) * 103 * 6 13 = 16 * 15 * 14 / (3 * 2) * 103 * 613 = 56 * 104 * 613 ~ 7,3 * 1015. Tilsvarende for tredje kategori har vi oppsummering over i, j fra 1 til 16 med i <j av 6 i-1 * 10 * 6j-i-1 * 10 * 616-j som tilsvarer 16! / (2! * (16-14)!) * 102 * 614 = 2 * 103 * 615 ~ 9,4 * 1014. Igjen, for fjerde kategorien har vi oppsummering over i fra 1 til 16 av 6i-1 * 10 * 616-i = 160 * 615 ~ 7,5 * 1013. Og endelig antall tilfeller i den femte kategorien er gitt av av seks elementer (A til F sifre) i en gruppe på 16, det vil si 616 ~ 2,8 * 1012.

Jeg håper du har fulgt beregninger opptil er den tyngste delen er ferdig. Nå som et bevis på at alt er riktig kan du summen av antall tilfeller i 5 kategorier og se det tilsvarer det totale antallet mulige tilfeller beregnes før. Gjøre operasjoner bruker 64 bits eller avrunding (for flottører) eller overflyt (for heltall) feil vil ikke la deg få nøyaktig resultat.

Hittil har vi beregnet antall mulige tilfeller i hver av fem kategorier, men vi er interessert i å skaffe det antall gunstig tilfeller stedet. Det er veldig enkelt å utlede sistnevnte fra det tidligere så dette er bare å fikse en kombinasjon av de fire desimaler (eller ønsket heksadesimaltall hvis det ikke finnes fire desimalar) av i stedet for å la dem gratis. I praksis betyr dette dreie 10 står i formelen ovenfor i 1 og den nødvendige mengden 6 står i 1's hvis det ikke finnes fire desimalar. Det er vi nødt til å dele det første resultatet av 104, den andre med 103 * 6, den tredje en av 102 * 62, den fjerde en av 10 * 63 og den femte av 64. Deretter antall gode saker i de fem kategoriene er ca 1,8 * 1015, 1,2 * 1012, 2,6 * 1011, 3,5 * 1010, 2,2 * 109 hhv.

Nå har vi muligheten til å få tak i hva som er for et output å matche en ved en tilfeldighet. Vi må bare legge til de fem numrene til gode saker og dele det på det totale antallet mulige tilfeller. Gjør det vi får at er svært omtrent 0.0001 eller én av ti tusen. Er det rart denne brønnen avrundet resultatet? Ikke i det hele tatt, bare ta en titt på tallene vi beregnet ovenfor. Den første kategorien dominerer med flere bestillinger av omfanget antall gode og mulige tilfeller. Dette er ganske intuitivt som det synes klart at det er svært lite sannsynlig ikke har fire desimaler (10 sjansene av 16 per siffer) blant 16 heksadesimale tall. Vi så tidligere at forholdet mellom antall mulige og gode saker i den første kategorien er en divisjon av 10 ^ 4, det er der vårt resultat p = 0,0001 kommer fra.

Vårt mål for alle disse beregningene var å finne ut hvor mange parene vi må gjennomføre en vellykket "brute Nå har vi muligheten til å beregne den forventede antall falske positive i første søk vil det være antall rettssaker ganger for en enkelt tilfeldig falske positive, dvs. t * p hvor t = 2 ^ 56, størrelsen på nøkkelen plass. Dette utgjør om lag 7,2 * 10 ^ 12, en ganske stort antall. Forventet antall falske positive i andre søk (begrenset til den positive nøkler funnet i første søk) vil være (t * p) * p, for en tredje søk blir ((t * p) * p) * p og så videre. Således for n søker forventet antall falske positive blir t * p ^ n.

Vi kan få antall søk nødvendig å forvente bare en falsk positiv ved uttrykker ligningen t * p ^ n = 1 og løse for n. Så n lik til i basen p 1 / t, som med egenskaper logarithms det gir n = log (1 / t) / log (p) ~ 4.2. Siden vi ikke kan gjøre en brøk søk er det beleilig å runde opp dette antallet. Derfor hva er forventet antall falske positive dersom vi utfører fem søker? Det er ikke * p ^ 5 ~ 0,0007 eller ca 1 av 1400. Derfor bruker fem parene er trygt å få oppfylt hemmelig nøkkel uten falske positiver.


Når vi vet at vi trenger fem parene, hvordan får vi dem? Selvsagt trenger vi minst ett med kjente og på grunn av innholdet av som er det eneste vi trenger. Med andre slik som IBM, ville vi trenger fem kort, men dette er ikke nødvendig med Vi må bare lese og deretter endrer du ganger, men leser etter hver endring.

Det er nødvendig å lese for å få og kryptere nøkkelen selektor. Du kan kjøpe en kommersiell eller lage en selv følge instruksjonene du finner i den forrige siden og koblinger der. Når du har en se denne beskrivelsen av standard magnetiske spor for å finne ut hvordan du får fra leses. I dette dokumentet på feltet i spor 1 og 2 skal være fem tegn lang, men faktisk sant består av de fire siste sifrene. Den første av de fem tallene er nøkkelen selektor. Jeg har bare sett kort med verdien 1 i dette tallet, som er i overensstemmelse med standarden og med hemmelig nøkkel aldri skulle bli (og dermed de ikke trenger å flytte til en annen viktig endring velgeren).

Jeg gjorde et enkelt C-program, getpvvkey.c, for å utføre Det består av en løkke til å prøve alle mulige nøkler for å kryptere den første TSP, hvis avledet Kmp sanne en ny TSP er prøvd, og så videre inntil det er endret, hvor nøkkelen er forkastet, og en ny er forsøkt, eller de fem avledet PVVs match tilsvarende sant PVVs, og da kan vi anta at vi fikk hemmelig nøkkel imidlertid loopen går videre til den exhausts tasten plass. Dette er gjort for å forsikre finner vi den egentlige nøkkelen fordi det er en sjanse (men svært lav) første nøkkelen funnet er en falsk positiv.

Det er forventet at programmet ville ta svært lang tid å fullføre og å minimere risikoen for strømbrudd kuttet, datamaskinen henge ut osv. det gjør sjekkpunkter i filen getpvvkey.dat fra tid til annen (det nøyaktige tidspunktet avhenger av hastighet på datamaskinen, er det rundt en time for de raskeste datamaskiner nå er i bruk). Av samme grunn dersom en positiv nøkkelen er funnet den er skrevet på filen getpvvkey.key. Programmet viser bare én melding i begynnelsen, den startposisjon hentet fra Checkpoint filen hvis noen, etter at noe mer blir vist.

The er et sentralt punkt i programmet, er det derfor svært viktig å optimalisere hastighet. Jeg testet flere implementeringer: libdes, SSLeay, openssl, cryptlib, NSS, libgcrypt, catacomb, libtomcrypt, cryptopp, ufc-CRYPT. The funksjoner av de fire første er basert på den samme koden av Eric Young og er den som har best resultat (inkluderer optimalisert C og x86 Assembler code). Derfor jeg valgte libdes som var det opprinnelige implementeringen og kondenseres alle relevante koden i filer encrypt.c (C-versjon) og x86encrypt.s (x86 Assembler versjon). Koden er litt modifisert for å oppnå noen forbedringer i et "brute de første er en fast felles bratt i hvert TSP og derfor kan gjøres bare én gang på begynnelsen. En annen forbedring er at jeg skrev en helt ny setkey funksjon (jeg kalte det nextkey) som er optimal for et "brute force loop.

For å få programmet arbeider du bare å i tilsvarende plass fem TSPs og deres PVVs og deretter kompilere den. Jeg har testet den bare i UNIX plattformer bruker Makefile Makegetpvvkey å kompilere (bruk kommandoen "make-f Makegetpvvkey"). Det kan samle seg på andre systemer, men du må kanskje fikse en del ting. Pass på at definisjonen av long64 tilsvarer en 64-biters heltall. I prinsippet er det ingen avhengighet på endianness av prosessor. Jeg har blitt utarbeidet og kjøre den på Pentium-Linux, Alpha-Tru64, MIPS-IRIX og SPARC-Solaris. Hvis du ikke har og ikke ønsker å installere Linux (du ikke vet hva du mangler ;-) du fortsatt har valget mellom å kjøre Linux på CD og bruke programmet, se min side kjører Linux uten å installere den.

Når du har funnet det hemmelige hvis du vil finne for et tilfeldig du bare å skrive et lignende program (sorry jeg har ikke skrevet det, jeg er altfor lat:) som ville prøve alle 10 ^ 4 PIN-koder ved å generere tilsvarende TSP, kryptere den med (ikke lenger) hemmelig nøkkel, deriving den og sammenligne den med i av Du vil få en kamp for den sanne Bare en kamp? Husk hva vi så ovenfor, har vi en sjanse til 0,0001 at en tilfeldig matcher Vi prøver 10000 PINS (og derfor TSPs) dermed forventer vi 10000 * 0,0001 = 1 falsk positiv i gjennomsnitt.

Dette er et veldig interessant resultat, det betyr at det i gjennomsnitt hvert har to gyldig PINS: kundens og forventet falske positive. Jeg kaller det "falske", men merk at så lenge den genererer den sanne er en som gyldig som kunden en. Videre er det ingen måte å vite noe som er der, selv for ATM; eneste kunde vet. Selv om falske positive var ikke gyldig som vil du fortsatt ha tre forsøk på minibank likevel nok i gjennomsnitt. Derfor vi beregnet i begynnelsen av dette dokumentet om tilfeldige gjette i må korrigeres. Egentlig er det to ganger denne verdien, dvs. det er 0,0006 eller en av mer enn 1600, likevel trygt lav.

Resultater


Det er viktig å optimalisere kompilering av programmet og til å publisere den på raskest mulig prosessor på grunn av lang forventet kjøring. Jeg syntes at kompilatoren optimalisering flagget-O får bedre ytelse, tenkte noen forbedring oppnås legge til-fomit-ramme-pekeren flagget på Pentium-Linux, på-topp flagg på Alpha-Tru64, det IPA flagget på MIPS-IRIX og-rask flagg på SPARC-Solaris. Spesielle flagg (-DDES_PTR-DDES_RISC1-DDES_RISC2-DDES_UNROLL-DASM) for koden generelt har fordeler også. Alle disse flagg allerede har blitt testet og jeg valgte den beste kombinasjonen for hver prosessor (se Makefile), men du kan prøve å finjustere andre flagg.

Ifølge mine tester de beste resultatene er oppnådd med AMD Athlon 1600 MHz prosessor, overstiger 3.4 millioner nøkler per sekund. Interessant det blir bedre resultater enn Intel Pentium IV 1800 MHz og 2000 MHz (se figur nedenfor, klikke på dem for å forstørre). Jeg tror dette skyldes enkelte I / O metning, sikkert hurtigbuffer eller Access, at AMD-prosessor (som har en halv buffer av Pentium) eller hovedkortet som det er i gang, klarer å unngå. I den første figuren nedenfor kan du se at bryte hastighet på alle prosessorer har mer eller mindre en lineær relasjon med prosessorhastighet, unntatt for de to Intel Pentium jeg nevnte tidligere. Dette er logisk, det betyr at for en dobbel prosessor hastighet du får dobbelt bryte fart, men pass på saturation effekter, i dette tilfellet er det bedre for AMD Athlon 1600 MHz, som vil bli enda billigere enn Intel Pentium 1800 MHz eller 2000 MHz.

I den andre figuren ser vi nærmere på hva vi ville kalle egenverdi bryte strømmen til prosessoren. 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 ( )  and for (simulation) tools. So I wonder if and are shaking in their boots. Some how I don’t think so. ;-)

——– ziggurat29 ———

These are all Windows command-line utilities (except where noted); execute with the -help option
to determine usage.

DUKPT Decrypt (<- the actual file to download)

This is a that will Encrypted Blocks that have been produced via the triple- method.  I used this for testing the output of some Pad software I had created, but is also handy for other debugging purposes.

VISA PVV Calculator (<- the actual
file to download)

This is a that will compute and verify Values that have been produced using the .  It has a bunch of auxiliary functions, such as verifying and fixing a PAN (Luhn ), creating and encrypting blocks, decrypting and extracting PINs from encrypted blocks, etc.

VISA CVV Calculator (<- the actual file to download)

This is a that will compute Values that have been produced using the .  MasterCard CVC uses the , so it will work for that as well.  It will compute , CVV2, CVV3, iCVV, CAVV, since these are just variations on service code and the
format of the expiration date. is simply comparing the computed value with what you have received, so there is no explicit function.

Atalla AKB Calculator (<- the actual file to download)

This is a that will both generate and Atalla AKB cryptograms.  You will need the plaintext MFK to perform these operations.  When decrypting, the MAC will also be checked and the results shown.

BogoAtalla (<- the actual file to
download)

This is an Atalla (or simulator).  This software (simulation) of the well-known Atalla Module ( ) that is used by banks and processors for cryptographic operations, such as verifying/translating blocks, authorising transactions by verifying
/CSC numbers, and performing key exchange procedures, was produced for testing purposes.  This implementation is not of the complete HP Atalla command set, but rather the just
portions that I myself needed.  That being said, it is complete enough if you are performing acquiring and/or issuing functions, and are using more modern schemes such as and , and need to do generation, , and translation.

This runs as a listening socket and handles the native Atalla command set.  I have taken some liberties with the error return values and have not striven for high-fidelity there (ie, you may get a different error response from native ), but definitely should get identical positive
responses.  Some features implemented here would normally require purchasing premium commands, but all commands here implemented are available.  Examples are generating values and encrypting/decrypting plaintext values.

BogoAtalla for Linksys (<- the actual file to download)

This is the Atalla ported to Linux and build for installation on an OpenWRT system.  Makes for a really cheap ($60 USD) /test device.

Local Files

bogoatalla002
atallaakbcalc
bogoatalla_10-1_mipsel
dukptdecrypt
visacvvcalc
visapvvcalc

“Contactless” credit cards with RFID are easily hacked

Jun 18, 2008 in RFID

A blog posting on provides further discussion as to the
inappropriate deployment and of chips within the existing
marketplace.

http://www. .net/2006/10/23/report_contactless_c.html

The underlying point of this article is, the schemes and banks said they are using key rotating of all between the and the /issuer, but this is clearly not the case in many situations.

Another interesting paper is ‘ Report’ located at:

http://www.nytimes.com/packages/pdf/business/20061023_CARD/techreport.pdf

E-Commerce Glossary

Jun 18, 2008 in Banking and EFTPoS

Acquiring Institution
The which holds the partaking in a financial , typically the first involved in the of a .

Applet
A small computer program which facilitates the performance of particular tasks.

Bandwidth
The capacity of a to carry or process information. The higher the bandwidth the faster graphics-laden pages will download.

Browser
Short for browser, a software application used to locate and display pages. The two most popular browsers are Netscape Navigator and . Both of these are graphical browsers, which means that they can display graphics as well as . In addition, most modern browsers can present multimedia information, including sound and video, though they require plug-ins for some formats.

Caching
The automatic copying and storage of frequently used information onto a computer system – Typically caching is seen whilst surfing the (graphics, etc.) and used by Services Providers ( ’s) to reduce the amount of requested from the user onto the .

Issuer
The which issued the cardholder’s and .

Cardholder
The individual participating in the financial whose is being credited or debited.


The additional information printed on the to be processed. This is used to verify if the was present when the was initiated.  This is the additional digits imprinted on the usually on the reverse side for & Mastercard and on the front for AMEX.

Certificate
An x.509 certificate used to entities such as Merchants and Gateways. Certificates can be used to identify and/or encrypt sensitive such as numbers and personal cardholder information.

CGI
Common Gateway : A protocol that allows a page to run a program on a . Forms, counters, and guest books are common examples of CGI programs.

Any piece of software can be a CGI program if it handles input and output according to the CGI standard. Usually a CGI program is a small program that takes from a and does with it, like putting the content of a form into an e-mail message, or turning the into a database query. CGI “scripts” are just scripts which use CGI. CGI is often confused with Perl, which is a programming language, while CGI is an to the from a particular program.

Client
A computer or software that requests a service of another computer system or process (a “ ”). For example, a workstation requesting the contents of a file from a file is a client of the file . A browser is commonly referred to as a client.

Clients and Servers
In general, all of the machines on the can be categorised as two types: servers and clients. Those machines that provide services (like servers or FTP servers) to other machines are servers. And the machines that are used to connect to those services are clients.

When you connect to Yahoo at www.google.com to read a page, Google is providing a machine (probably a cluster of very large machines), for use on the , to service your request. Google is providing a . Your machine, on the other hand, is probably providing no services to anyone else on the . Therefore, it is a user machine, also known as a client. It is possible and common for a machine to be both a and a client !

Cookie
A file sent by some