EFT Syetms at aparato Considerations

Aug 05, 2008 sa Pagbabangko at EFTPoS, Security

na aparato at ang mga sistemang naiiba depende sa vendor, bansa at / ng aggregator.
Sa ibaba ay isang listahan ng mga bagay na maaaring isaalang-alang tulad ng sa. Listahan na ito ay labas sa itaas ng aking ulo kaya ito ay marahil hindi kumpleto.

Looking at ang mga produkto at pakikipag-ugnayan sa amin ay karaniwang isang magandang simulan.

Mga bagay-bagay na isaalang-alang:

Breaking visa PIN

Jul 02, 2008 sa Pagbabangko at EFTPoS

Sa ibaba ay isang artikulo ko natagpuan kamakailan-lamang. Ito ang isa sa mga pinaka-kumpletong paglalarawan ng Value taga.

Akala ko kong magtiklop ito dito para sa aking lokal na sanggunian.

Bilang ng puna ay nagawa tungkol sa gramatika na ginamit sa orihinal na ako may Nawastong ang ilan sa mga obvious error habang pinapanatili ang context ng orihinal na materyales.

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

--- Original ----

Paunang salita
May ka magtaka kung ano ang mangyayari kung mawala ang inyong o card at ang isang tao na nahahanap ito. Puwede ba ang taong ito ma-withdraw ng cash mula sa isang ATM hulaan, kahit paano, inyong PIN? Higit sa rito, kung ikaw ay isang tao na nahahanap ang ninyo subukan na hulaan ang at kunin ang pagkakataon na makakuha ng ilang madaling Ng mga kurso ang sagot sa parehong katanungan ay dapat na "no". Trabaho na ito ay hindi na pakikitungo sa pangalawang tanong, ito ay isang bagay mga personal na Dito ko subukan na sagutin ang unang tanong.

Ang lahat ng mga impormasyon na ginagamit para sa trabaho na ito ay pampubliko at maaaring maging malaya na natagpuan sa Ang iba ay isang bagay ng at mga programa, kaya kami ay maaaring malaman ang at may ilang mga masaya. I ilahad walang lihim. Bukod dito, ang mga layunin (at huling ng mga ito sa trabaho ay upang ipakita na ang algorithm ay malakas pa rin sapat na upang magbigay ng sapat na Alam namin ang lahat ng ay hindi ang

Ito gumagana analyses ng isa sa mga pinaka-karaniwang algorithm, na ginagamit ng maraming mga at at tries upang malaman kung paano lumalaban ay ang hulaan atake. Sa pamamagitan ng "hulaan" hindi ko ibig sabihin ng pagpili ng isang random na at sinusubukan ito sa isang ATM. Ito ay kilala din namin na sa pangkalahatan ay binibigyan ng tatlong magkakasunod na subok na ipasok ang tamang kung kami mabibigo mapigil ang ATM Bilang ay apat na digit na matagal na ito ay madaling mahulo na ang mga pagkakataon para sa isang random na hulaan ay 3 / 10000 = 0.0003, tila mababa sapat na upang maging ligtas; ito ay nangangahulugan na kailangan mo upang mawala ang iyong ng higit sa tatlong libong beses ( hindi nawawala o higit pa sa tatlong libong mga card sa parehong oras:) hanggang doon ay isang makatwirang pagkakataon ng pagwawala

Ano ko talagang sinadya sa pamamagitan ng "hulaan" ay pagbubukas ng upang ang mga ibinigay na kahit anong na maaari mong malaman kaagad ang mga kaugnay na Kaya ang dokumento na ito posibilidad na ang pag-aaral, pagtatasa ng mga at minumungkahi ng isang paraan para sa mga Sa wakas namin magbigay ng isang kasangkapan na nagpapatupad ng mga at kasalukuyan tungkol sa mga resulta ng tinatayang pagkakataon na break ang sistema. Tandaan na hangga't ibang kaugnay na algorithm (iba pang format tulad ng IBM o pagpapatunay signatures tulad ng o CVC) ay katulad sa ang parehong analysis ay maaaring tapos na masunurin halos ang parehong mga resulta at conclusion.



Isa sa mga pinaka-karaniwang algorithm ay ang Value Ang customer ay bibigyan ng isang at isang Naka-encode sa ay isang apat na digit na numero, na tinatawag na Ang bilang na ito ay isang cryptographic pirma ng at iba pang mga na may kaugnayan sa Kapag ang isang user ay nagpasok ng kanyang ng ATM mababasa ang encrypts at nagpapadala ng lahat ng impormasyon na ito sa isang central computer. May isang pagsubok ay computed gamit ang mga customer na ipinasok at ang impormasyon na may isang cryptographic Ang pagsubok ay ihahambing sa na naka-imbak sa kung ang mga ito ay tumutugma sa central computer bumalik sa ATM pahintulot sa transaksyon. Makita sa mas maraming detalye.

Ang paglalarawan ng ay matatagpuan sa dalawang dokumento na-link sa nakaraang pahina. Sa buod na ito ay binubuo sa ng isang 8 byte (64 bit) string ng mga na tinatawag na MGA Parameter (TSP), sa (DEA) sa Code Book mode (ECB) gamit ang isang lihim na 64 bit key. Ang ay nagmula sa output ng proseso, na kung saan ay isang 8 byte string. Ang apat na numero ng (mula sa kaliwa papunta sa kanan) ay tumutugma sa mga unang apat na decimal na numero (mula sa kaliwa papunta sa kanan) ng output mula sa kapag isinasaalang-alang bilang isang 16 na karakter na hexadecimal (16 x 4 = 64 bit bit) string. Kung walang mga apat na decimal na numero sa hanay ng 16 hexadecimal character pagkatapos ay ang ay nakumpleto na kinuha (mula sa kaliwa papunta sa kanan) hindi decimal na karakter at decimalizing ang mga ito sa pamamagitan ng paggamit ng conversion A-> 0, B-> 1, C-> 2, D -> 3, E-> 4, F-> 5. Ito ay isang halimbawa:

Output mula sa 0FAB9CDEFFE7DCBA

0975

Ang diskarte ng pag-iwas sa decimalization sa pamamagitan ng laktaw character hanggang apat na decimal na numero ay natagpuan (na mangyayari sa halos lahat ng mga beses na kami ay makikita sa ibaba) ay napaka matalino na ito sapagkat ito avoids isang mahalagang bias sa pamamahagi ng mga bilang na ito ay napatunayan na nakamamatay para sa iba pang mga systems, kahit na ang epekto sa sistemang ito ay magiging lubhang mas mababa. Tingnan din ng mga kaugnay na problema hindi nag-aaplay sa

Ang TSP, tinuturing na isang 16 na karakter na hexadecimal (64 bit) string, ay nabuo (mula sa kaliwa papunta sa kanan) kasama ang 11 rightmost numero ng kawali number) hindi kasama ang huling digit na (i-check digit), isang digit na mula sa 1 hanggang 6 na selects ang lihim encrypting key at sa wakas ang apat na numero ng Ito ay isang halimbawa:

Pan: 1234 5678 9012 3445
Key selector: 1
2468

TSP: 5678901234412468

Maliwanag na nalalaman ang mga problema ng pagbubukas ay binubuo sa paghahanap ng lihim na encrypting key para sa Ang pamamaraan na ito ay para sa gawin ng isang malupit na puwersa ng paghahanap ng space key. Tandaan na ito ay hindi ang tanging paraan, isa ay maaaring subukan upang mahanap ang isang kahinaan sa DEA, maraming tried, ngunit ito ay old standard pa rin sa malawak na gamitin (ngayon ay papalitan ng AES at bagaman). Ito demonstrates ito ay sapat na upang malusog na malupit na puwersa ay ang tanging paraan viable (may ilang mas mahusay na atake ngunit hindi praktikal sa aming kaso, para sa isang buod na makita ang LASEC talaan at para sa marumi tingnan ang mga detalye ng Biham & Shamir 1990, Biham & Shamir 1991, Matsui 1993, Biham & Biryukov 1994 at Heys 2001).

Ang susi selector digit ay tunay malamang nagpasimula upang masakop ang posibilidad ng isang susi sa kompromiso. Sa kaso na lamang sila sa mga isyu na may bagong card gamit ang isa pang key selector. Mas lumang card ay maaaring substituted sa mga bago o lamang ang ATM ay maaari transparently sumulat ng isang bagong (nararapat sa ang bagong key at pagpapanatiling ang parehong sa susunod na panahon ang customer ay gumagamit ng kanyang Para sa iling ng ang lahat ng users ay dapat na hingin sa iyo na palitan ang kanilang mga PINs, subalit ito ay nakakahiya para sa na ipaliwanag ang dahilan, kaya napaka malamang sila ay hindi gumawa ng ganoong kahilingan.

Inihahanda ang mga


Ang isang malupit na puwersa sa encrypting binubuo ng isang TSP sa kilala ang paggamit ng lahat ng posibleng encrypting key at ihambing ang bawat makuha sa kilala Kapag ang isang match ay natagpuan namin ang isang kandidato key. Ngunit kung gaano karaming mga susi na namin sa subukan? Tulad ng sinabi namin sa itaas ang susi ay 64 bit long, ito ay nangangahulugan na namin na subukan ang 2 ^ 64 key. Subalit ito ay hindi totoo. Talagang lamang 56 bits ay epektibo sa key dahil isa bit (ang hindi bababa sa makabuluhang) ng bawat octet ay kasaysayan reserved bilang isang checksum para sa iba; sa pagsasanay sa mga 8 bits (isa para sa bawat isa sa mga 8 octet) ay winalang-bahala.

Kaya ang space key ay binubuo ng 2 ^ 56 key. Kung namin na subukan ang lahat ng mga ito ay mga susi namin mahanap ang isa at lamang ng isang match, nararapat sa ang lihim na key? Totoong hindi. Kami ay makakuha ng maraming mga matching key. Ito ay dahil ang ay lamang ng isang maliit na bahagi (isa-apat) ng output. Bukod dito ang ay degenerated dahil ang ilan sa mga numero (mga iyon sa pagitan ng 0 at 5 pagkatapos ng huling, nakita mula sa kaliwa papunta sa kanang, digit sa pagitan ng 6 at 9) ay maaaring nanggaling mula sa isang decimal digit o mula sa isang decimalized hexadecimal digit ng output. Kaya maraming mga key ay ng isang output na magbubunga sa parehong matching

Pagkatapos ay kung ano ang maaari naming gawin upang hanapin ang tunay na susi sa mga iba pang mga false positive key? Lamang ang mayroon kami sa encrypt ng isang pangalawang iba't-ibang mga TSP, na kilala din sa ngunit ang paggamit lamang ang mga kandidato key na ibinigay ng isang positive na tumutugma sa unang Pares. Gayunman ay walang garantiya na hindi kami makakuha muli ng maraming false positives kasama ang mga tunay na key. Kung gayon, kami ay nangangailangan ng isang ikatlong pares, ulitin ang proseso at kaya sa.

Bago namin simulan ang aming mga namin na malaman kung gaano karaming mga pares namin ay kailangan. Para na namin na kalkulahin ang para sa isang random na output upang bigyang-daan ang isang matching sa pamamagitan lamang ng pagkakataon. Mayroong ilang mga paraan upang kalkulahin ang bilang na ito at dito ko ay gumamit ng isang simpleng diskarte madaling maunawaan ngunit kung saan ay nangangailangan ng ilang mga background sa ng mga

Ang isang maaari ay palaging makikita na ang ratio ng mga kaso sang-ayon sa posibleng mga kaso. Sa aming mga problema sa bilang ng mga posibleng mga kaso ay ibinigay sa pamamagitan ng ng 16 elemento (ang 0 upang F hexadecimal na numero) sa isang grupo ng 16 ng mga ito (ang 16 hexadecimal na numero ng output). Ito ay ibinigay sa pamamagitan ng 16 ^ 16 ~ 1.8 * 10 ^ 19 na ng mga kurso coincides sa 2 ^ 64 (iba't ibang mga numero ng 64 bits). Sa hanay na ito ng numero ay maaaring separated sa limang kategorya:

Mga may hindi bababa sa apat na decimal na numero (0 hanggang 9) sa hanay ng 16 hexadecimal na numero (0 hanggang F) ng output.

Mga may eksaktong lamang tatlong decimal digits.

Mga may eksaktong lamang ng dalawang decimal digits.

Mga may eksaktong lamang ng isang decimal digit.

Mga walang decimal na numero (ang lahat sa pagitan ng A at F).

Let's kalkulahin kung gaano karaming mga numero mahulog sa bawat kategorya. Kung namin label ng 16 hexadecimal na numero ng output bilang X1 sa X16 pagkatapos namin ng label ang unang apat na digit ng decimal anumang ibinigay na numero ng unang kategorya bilang XI, Xj, Xk at Kaman. Ang bilang ng mga iba't-ibang mga kumbinasyon na may profile na ito ay ibinigay sa pamamagitan ng produkto 6 i-1 * 10 * 6j-i-1 * 10 * 6k-j-1 * 10 * 6 Lk-1 * 10 * 1616-l na kung saan ang 6 ' s darating mula sa bilang ng mga posibilidad para sa isang A to F digit, ang 10's dumating mula sa mga posibilidad para sa isang 0 hanggang 9 digit, at ang 16 ay mula sa mga posibilidad para sa isang 0 sa F digit. Ngayon ang buong numero sa unang kategorya lamang ay ibinigay sa pamamagitan ng pagbubuo ng mga produktong ito sa ako, j, k, l mula sa 1 hanggang 16 ngunit may i <j <k <L. Kung ang ilang mga matematika trabaho makikita ninyo ang mga ito ay katumbas sa produkto ng 104 / 6 kasama ang pagbubuo sa ako 4-16 ng (i-1) * (i-2) * (i-3) * 6i-4 * 16 16-i ~ 1.8 * 1019.

Analogously ang bilang ng mga kaso sa pangalawang kategorya ay ibinigay sa pamamagitan ng pagbubuo ng higit i, j, k mula 1 hanggang 16 na may i <j <k ng produkto 6i-1 * 10 * 6j-i-1 * 10 * 6k-j -1 * 10 * 616-k na kung saan ikaw ay maaaring gumawa ito upang maging 16! / (3! * (16-13)!) * 103 * 6 13 = 16 * 15 * 14 / (3 * 2) * 103 * 613 = 56 * 104 * 613 ~ 7.3 * 1015. Katulad nito para sa ikatlong kategorya na namin ang pagbubuo sa i, j mula sa 1 hanggang 16 na may i <j ng 6 na i-1 * 10 * 6j-i-1 * 10 * 616-j na kapareho sa 16! / (2! * (16-14)!) * 102 * 614 = 2 * 103 * 615 ~ 9.4 * 1014. Muli, para sa apat na kategorya na namin ang pagbubuo sa ako mula sa 1 hanggang 16 ng 6i-1 * 10 * 616-i = 160 * 615 ~ 7.5 * 1013. At sa wakas ang halaga ng mga kaso sa ikalima kategorya ay ibinigay sa pamamagitan ng ng anim na elemento (A to F numero) sa isang grupo ng 16, na, 616 ~ 2.8 * 1012.

Umaasa ako na sinundan mo ang mga kalkulasyon hanggang sa puntong ito, ang hard bahagi ay tapos na. Ngayon bilang patunay na ang lahat ng bagay ay karapatan na maaari mong sum ang bilang ng mga kaso sa 5 kategorya at makita ang mga ito ay katumbas ng kabuuang bilang ng mga posibleng mga kaso namin kinakalkula bago. Gawin ang operasyon gamit ang 64 bit numero o rounding (para sa mga floats) o overflow (para sa mga integers) pagkakamali ay hindi nagpapahintulot sa inyo na makakuha ng tumpak na resulta.

Hanggang sa ngayon kami ay kinakalkula ang bilang ng mga posibleng mga kaso sa bawat isa sa mga limang kategorya, ngunit kami ay interesado sa makuha ang numero ng kaso sa halip na makabubuti. Ito ay tunay madali sa kunin ang huli mula sa dating bilang na ito ay lamang ng pag-aayos ng mga kumbinasyon ng apat na decimal na numero (o ang kinakailangan hexadecimal digit kung walang mga apat na decimal na numero) ng sa halip ng pagpapaalam sa kanila ng libre. Sa practice na ito ay nangangahulugan na paikutin ang 10's sa mga formula sa itaas sa 1's at ang kinakailangang halaga ng 6 na sa 1's kung walang mga apat na decimal digits. Na, kami ay upang hatiin ang unang resulta sa pamamagitan ng 104, ang pangalawang isa sa pamamagitan ng 103 * 6, ang ikatlong isa sa pamamagitan ng 102 * 62, ang ikaapat na isa sa pamamagitan ng 10 * 63 at ang ikalima ng isa sa pamamagitan ng 64. Pagkatapos ay ang numero ng kaso sang-ayon sa limang kategorya ay humigit-kumulang sa 1.8 * 1015, 1012 * 1.2, 2.6 * 1011, 1010 * 3.5, 2.2 * 109 ayon.

Ngayon kami ay able sa kumuha kung ano ang para sa isang output upang tumugma sa isang sa pamamagitan ng pagkakataon. Namin lamang na idagdag ang limang numero ng kaso at sang-ayon sa pamamagitan ng paghati-hatiin ito ang kabuuang bilang ng mga posibleng mga kaso. Kapag ginawa ito makuha namin na ang ay humigit-kumulang 0.0001 o isa ng sampung libo. Ito ay kakaiba na ito ng mabuti bilugan resulta? Hindi sa lahat, magkaroon lamang ng isang hitsura at ang mga numero ng aming kinakalkula sa itaas. Ang unang kategorya dominates sa pamamagitan ng ilang mga order ng magnitude ang bilang ng mga napapanahon at posibleng mga kaso. Ito ay sa halip intuitive gaya ito tila malinaw na ito ay malamang na hindi masyadong hindi pagkakaroon ng apat na decimal na numero (10 pagkakataon ng 16 para sa bawat digit) sa hanay 16 hexadecimal digit. Nakita namin dati na ang relasyon sa pagitan ng bilang ng mga posibleng mga kaso at sang-ayon sa unang kategorya ay isang dibisyon ng 10 ^ 4, na kung saan ang aming mga resulta p = 0.0001 mula sa.

Ang aming layunin para sa lahat ng mga kalkulasyon ay upang malaman kung gaano karaming mga pares na kailangan namin upang dalhin ang isang matagumpay na taong malupit na puwersa Ngayon kami ay makapag-kalkula ang inaasahang bilang ng mga false positives sa isang unang paghahanap: ito ay ang bilang ng mga beses na subok ang para sa isang random na false positive, ibig sabihin t * p kung saan t = 2 ^ 56, ang sukat ng susi space. Ang mga halaga sa humigit-kumulang sa 7.2 * 10 ^ 12, sa halip ng isang malaking bilang. Ang inaasahang bilang ng mga false positives sa ikalawang paghahanap (ipinagbabawal sa mga positibo key na natagpuan sa unang paghahanap) ay (t * p) * p, para sa isang third paghahanap ay ((t * p) * p) * p at kaya sa. Kaya para sa paghahanap n ang inaasahang bilang ng mga false positives ay t * p ^ n.

Kami ay maaaring makakuha ng bilang ng paghahanap na kinakailangan para inaasahan lamang ng isang false positive sa pamamagitan ng expressing ang equation t * p ^ n = 1 at solving para sa n. Kaya n katumbas sa sa base p ng 1 / t, na sa pamamagitan ng pag-aari ng logarithms ito ay magbubunga ng n = mag-log (1 / t) / mag-log (p) ~ 4.2. Dahil kami ay hindi maaaring gawin ng isang fractional paghahanap na ito ay nababagay sa round up ang bilang na ito. Kaya kung ano ang inaasahang bilang ng mga false positives kung namin gawin ang limang mga paghahanap? Ito ay t * p ^ 5 ~ 0.0007 o humigit-kumulang sa 1 out of 1400. Kaya ang paggamit ng limang pares ay ligtas upang makuha ang tunay na lihim na key na walang false positives.

Ang


Kapag alam namin na kailangan namin ng limang pares, paano namin makuha ang mga ito? Ng mga kurso na kailangan namin ng hindi bababa sa isang na may kilala at dahil sa ang kalikasan ng na ang tanging bagay na kailangan namin. Sa iba pang mga system, tulad ng IBM, kami ay nangangailangan ng limang cards, subalit ito ay hindi kinakailangan sa Kami lamang na basahin ang at pagkatapos ay palitan ang ng apat na beses ngunit ang pagbabasa ng pagkatapos ng bawat pagbabago.

Ito ay kinakailangan na basahin ang ng para makuha ang at ang encrypting key selector. Maaari kang bumili ng isang komersyal na o gumawa ng isa sa iyong sarili ang mga sumusunod na mga tagubilin na maaari mong hanapin sa nakaraang pahina at mga link doon. Kapag mayroon kang isang makita ang mga ito paglalarawan ng mga pamantayan batubalani track upang malaman kung paano makakuha ng mula sa mga basahin. Sa dokumento na iyon ay ang patlang sa track 1 at 2 ay sinabi na limang karakter ang haba, ngunit ang talagang true binubuo ng huling apat na numero. Ang unang ng limang numero ay ang susi selector. Ako may lamang nakita cards na may halaga ng 1 sa mga digit na ito, na kung saan ay kasang-ayon sa mga pamantayan at sa mga lihim na hindi key ini-kompromiso (at sa gayon sila ay hindi kailangan upang lumipat sa ibang key ang pagbabago ng selector).

Ako ay isang simpleng C programa, getpvvkey.c, upang maisagawa ang mga Ito ay binubuo ng isang loop na subukan ang lahat ng mga posibleng mga susi sa encrypt ang unang TSP, kung ang nagmula matches ang tunay na ng isang bagong TSP ay sinubukan, at para sa hanggang doon ay isang mismatch, sa mga kaso kung saan ang susi ay desetso at ng isang bagong isa ay sinubukan, o sa limang nagmula PVVs tumugma sa nararapat na totoo PVVs, sa mga kaso kung saan maaari naming ipagpalagay na namin nakuha ang lihim na key, subalit ang mga loop mapupunta sa hanggang ito exhausts ang space key. Ito ay ginagawa upang siguruhin namin mahanap ang tunay na susi dahil doon ay isang pagkakataon (bagama't napakababang) ang unang natagpuan ang key ay isang false positive.

Ito ay inaasahan ng programa ay kumuha ng isang napaka-haba ng oras upang matapos at upang mabawasan ang panganib ng kapangyarihan ng isang hiwa, computer hang out, atbp ito ay checkpoints sa file getpvvkey.dat mula sa oras-oras (ang eksaktong oras ay depende sa bilis ng computer, ito ay sa paligid ng isang oras para sa mga computer ang pinakamabilis na ngayon sa paggamit). Para sa parehong dahilan kung ang isang positibong key ay natagpuan na ito ay nakasulat sa file getpvvkey.key. Ang programa ay nagpapakita lamang ng isang mensahe sa simula, ang panimulang posisyon kinuha mula sa magsiyasat kung anumang mga file, matapos na walang karagdagang ay ipinapakita.

Ang ay isang mahalagang punto sa programa, ito ay kaya napakahalaga sa pag-optimize ng bilis nito. Nasubukan ko ng ilang mga pagpapatupad ng: libdes, SSLeay, openssl, cryptlib, nss, libgcrypt, katakumba, libtomcrypt, cryptopp, ufc-silid sa ilalim ng lupa. Ang pag-andar ng unang apat na ay base sa parehong code sa pamamagitan ng Eric Young at ang isa na ginanap sa pinakamahusay na (kasama na ang optimized C at x86 assembler code). Kaya ko pinili libdes na kung saan ay ang orihinal na pagpapatupad at kondensada lahat ng mga kaugnay na code sa ang mga file encrypt.c (C bersyon) at x86encrypt.s (x86 assembler bersyon). Ang code ay bahagyang binago upang makamit ang ilang mga pagpapahusay sa isang malupit na puwersa ang unang ay isang taning na karaniwang ibabad sa bawat TSP at sa gayon ay magagawa lamang ng isang oras sa simula. Ibang pagpapabuti ay na ako wrote isang ganap na bagong setkey function (ako na tinatawag na ito nextkey) na kung saan ay ang mga para sa isang malupit na puwersa loop.

Upang makakuha ng programa ng trabaho mo lang sa nararapat na lugar ng limang TSPs at ang kanilang mga PVVs at pagkatapos ay sumulat ng libro ito. Ako may nasubok ito lamang sa UNIX platform, gamit ang makefile Makegetpvvkey na sumulat ng libro (gamitin ang command na "gumawa-f Makegetpvvkey"). Ito ay maaaring sumulat ng libro sa iba pang mga systems ngunit maaaring kailanganin mong ayusin ang ilang mga bagay-bagay. Siguraduhin na ang kahulugan ng mga long64 ay tumutugma sa isang 64 bit integer. Bilang batayan ay walang pagtitiwala sa endianness ng processor. Ako ay matagumpay na compiled at patakbuhin ito sa Pentium-Linux, Alpha-Tru64, Mips-Irix at Sparc-Solaris. Kung wala ka at hindi mo nais mag-install ng Linux (na hindi mo alam kung ano ang sa inyo ay ang mga nawawalang ;-) ka pa rin magkaroon ng pinili upang tumakbo sa Linux CD at gamitin ang aking mga programa, makita ang aking pahina ng Linux tumatakbo nang walang pag-install ito.

Kapag ikaw ay may natagpuan ang lihim na susi kung nais mong makita ang ng isang arbitrary lamang na magsulat ng isang katulad na programa (paumanhin, ako ay hindi nakasulat na ito, ako ay masyadong tamad:) na subukan ang lahat ng 10 ^ 4 PINs sa pamamagitan ng pagbuo ng kaukulang TSP, encrypting ito sa (hindi na) lihim na key, panggagaling ang at paghahambing ng ito kasama ang sa ng Ikaw ay makakakuha ng isang tugma para sa mga tunay na Lamang ng isang match? Matandaan kung ano ang nakita namin sa itaas, kami ay isang pagkakataon ng 0.0001 na ang isang random na matches ang Kami ay sinusubukan 10000 PINs (at sa gayon TSPs) kaya namin inaasahan 10,000 * 0.0001 = 1 false positive sa average.

Ito ay isang napaka-interesante resulta, ito ay nangangahulugan na, sa karaniwan, ang bawat ay may dalawang may-bisang PINs: ang mga customer at ang inaasahang false positive. I call it "false" ngunit tandaan na hangga't ito ay bumubuo ng tunay na ito ay isang may-bisang bilang ng mga customer ng isa. Bukod dito, walang paraan upang malaman kung saan ay kung saan, kahit para sa ATM; lamang kung customer. Kahit ang false positive ay hindi wastong bilang ikaw pa rin ay may tatlong pagsubok sa ATM anyway, sapat na sa average. Kaya ang na aming kinakalkula sa simula ng dokumentong ito ang tungkol sa mga random na hulaan ng ay dapat Nawastong. Tunay na ito ay dalawang beses na halaga, ibig sabihin, ito ay 0.0006 o isa ng higit sa 1600, pa rin ligtas mababa.

Mga resulta


Ito ay mahalaga upang ma-optimize ang pagtitipon ng mga programa at upang tumakbo ito sa pinakamabilis na posibleng processor dahil sa matagal na inaasahang tatakbo oras. Nahanap ko na ang tagatala optimization bandila-O nakukuha ang mas mahusay na pagganap, iisip ilang mga pagpapabuti ay makakamtan ang pagdaragdag ng-fomit-frame-puntero bandila sa Pentium-Linux, ang-pako bandila sa Alpha-Tru64, ang IPA-flag sa Mips-Irix at ang mabilis na-flag sa Sparc-Solaris. Espesyal na mga bandilang (-DDES_PTR-DDES_RISC1-DDES_RISC2-DDES_UNROLL-DASM) para sa code ay karaniwang may benepisyo rin. Lahat ng mga bandilang may na-subok at pinili ko ang pinakamahusay na kumbinasyon para sa bawat processor (tingnan ang makefile) ngunit maaari mong subukan sa fine tune iba pang mga bandera.

Ayon sa aking pagsusuri ang pinakamahusay na pagganap ay makakamtan sa pamamagitan ng AMD Athlon 1600 MHz processor, mahigit 3.4 milyong mga susi sa bawat segundo. Kawili-wili ito ay nagiging mas mahusay na mga resulta kaysa sa Intel Pentium IV 1800 MHz at 2000 MHz (tingnan ang mga numero sa ibaba, mag-click sa mga ito upang palakihin). Ako ay naniniwalang ito ay dahil sa ilang mga I / O lunod, tiyak na cache o kard ng memorya na na ang AMD processor (na kung saan ay kalahati ang cache ng Pentium) o ang motherboard sa kung saan ito ay tumatakbo, upang maiwasan ang namamahala. Sa unang figure sa ibaba makikita mo na ang pagbubukas bilis ng lahat ng mga processors ay mas marami o mas kaunti sa haba ng isang relasyon sa processor speed, maliban ang para sa dalawang Intel Pentium ko nabanggit bago. Ito ay tama, ito ay nangangahulugan na para sa isang double processor speed makakakuha ka ng double pagbubukas bilis, ngunit watch out para sa lunod epekto, sa kasong ito ito ay mas mahusay ang AMD Athlon 1600 MHz, na kung saan ay kahit na mas mura kaysa sa Intel Pentium 1800 MHz o 2000 MHz.

Sa pangalawang figure namin makikita mo sa karagdagang detalye kung ano ang aming nais na tumawag sa tunay break kapangyarihan ng processor. Ako kumuha ang halaga na ito lamang na naghahati ng break sa pamamagitan ng bilis ng processor speed, na, namin makuha ang numero ng key tried sa bawat segundo at bawat MHz. Ito ay isang sukatan ng pagganap ng processor malaya ng kanyang bilis. Ang mga resulta ay nagpapakita na ang pinakamahusay na processor para sa mga gawaing ito ay ang AMD Athlon, at pagkatapos ay ang Alpha at napaka-close pagkatapos na ito ay ang Intel Pentium (maliban para sa mas mataas na bilis ng mga dahop na gumanap dahil pagbababad sa epekto). Susunod ay ang Mips processor at sa huling lugar ay ang Sparc. Ilang Alpha at Mips processors ay matatagpuan sa ilalim ng iskala dahil sila ay maagang release hindi kasama ang mga pagpapahusay ng huli na mga bersyon. Tandaan na ang mga kasama ko ang pagganap ng x86 processors para sa C at assembler code bilang doon ay isang malaking Ito tila na gcc ay hindi isang magandang diyeneretor ng optimized machine code, pero siyempre hindi namin malaman kung ang isang manual optimization ng assembler code para sa iba pang mga processors (Alpha, Mips, Sparc) would boost ang kanilang mga resulta kumpara sa mga katutubong C compilers (Hindi ko magamit ang gcc para sa mga iba pang platform) bilang ito mangyayari sa x86 processor.

Mag-update

Ito ay isang artikulo na kung saan ang mga pamamaraan na ito ay maaaring gamitin.

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

Financial Transaction processing

Jul 02, 2008 sa Pagbabangko at EFTPoS

Ako ay kamakailan-lamang na nagtatrabaho sa loob ng isa sa mga mas malalaking mga Bangko Australya.
Sa pamamagitan ng trabaho na ito ako ay naghahanap sa mga kontrol at kalapit ang ng mga at sa paligid ng Asia Pacific.

Ako makakakuha ng gawin ang mga at sistema ng pagtasa.
Sa paglipas ng taon ko ay may laging isinasaalang-alang ang ng bilang isa sa mga key considerations.

Hanggang kahapon ko ay hindi kailanman makikita ang isang o tools. Sa tingin ko ang ilang mga script na paggamit ng mga kasangkapan ay maaaring napaka-interesante.
Ang site hziggurat29.com

Marami sa mga iba pang mga kasangkapan sa site na ito ay din tunay at nagkakahalaga ng isang natatanging anyo.
Big thanks sa ziggurat29 para sa pagbibigay ng ganoong awesome tools.

Tulad ng maraming mga site na ito ay kalikasan ng mga ito ay mahirap na mahanap at madalas ay tila sa mawala sa paglipas ng taon, ako napili sa magtiklop ng ang mula sa pahinang ito at magbigay ng lokal na mga kopya sa mga file.
Ito ay nagkakahalaga ng pagbisita sa pana-panahon ang ziggurat29 site bawat ngayon at muli upang makita kung ang anumang karagdagang mga kasangkapan ay na-post.

Isa ng ang mas kagila-gilalas na file ay ang Atalla Module at tools. Kaya ako magtaka kung at ay nanginginig sa kanilang mga bota. Ilang kung paano Hindi sa tingin ko. ;-)

--- Ziggurat29 ---

Ang mga ito ay ang lahat ng Windows command-line utilities (maliban na lamang kung saan kilala); pugutan ng ulo sa-tulong opsyon
upang matukoy paggamit.

DUKPT Decrypt (<- ang aktwal na file sa download)

Ito ay isang na encrypt Harangan na ginawa sa pamamagitan ng paraan. Ginamit ko na ito para sa pagsubok ng output ng ilang Pad software ako had nilikha, ngunit ito ay din sanay para sa iba pang mga debugging layunin.

VISA PVV Calculator (<- ang aktwal na
file sa pag-download)

Ito ay isang na compute at patunayan ang Values na ginawa gamit ang Ito ay isang kumpol ng mga katulong pag-andar, tulad ng pagpapatunay at pag-aayos ng kawali (Luhn at ang paglikha ng encrypting blocks, decrypting at extracting PINs mula sa encrypted blocks, atbp

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