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 kanan, 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 iyo 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 nito sa 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 ay may 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.
Ito sa pamamagitan ng trabaho 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 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 na ito ay nai-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 (<- ang aktwal na file sa download)

Ito ay isang na compute Values na ginawa gamit ang MasterCard CVC ay gumagamit ng CVV sa gayon ito ay para sa mga trabaho na rin. Ito ay compute CVV3, iCVV, CAVV, dahil ang mga ito ay lamang ng mga pagkakaiba-iba sa mga serbisyo ng code at ang
format ng petsa ng pagtatapos. ay lamang sa paghahambing ng computed halaga sa kung ano ang iyong natanggap, kaya walang malinaw na function.

Atalla AKB Calculator (<- ang aktwal na file sa download)

Ito ay isang na pareho ang bumuo at Atalla AKB cryptograms. Kakailanganin mo ang plaintext MFK upang maisagawa ang mga ito na operasyon. Kapag decrypting, ang MAC ay din checked at ang mga resulta na ipinakita.

BogoAtalla (<- ang aktwal na mga file sa
download)

Ito ay isang Atalla (o simulator). Ang software na ito (kunwa) ng mga kilalang Atalla Module na ito ay ginagamit ng mga bangko at processors para sa cryptographic operasyon, tulad ng pagpapatunay ng / sa pagsasalin blocks, authorising transaksyon sa pamamagitan ng pagpapatunay
/ CSC numero, at pagganap ng susi exchange pamamaraan, ay ginawa para sa pagsusuri ng mga layunin. Ang pagpapatupad ay hindi kumpleto ng HP Atalla command set, ngunit sa halip ang lamang
mga bahagi na kailangan ko ang aking sarili. Iyon na sinabi, ito ay kumpleto na sapat na kung ikaw ay gumaganap Kinukuha at / o issuing mga pag-andar, at ang paggamit ng mas maraming makabagong pamamaraan tulad ng at at kailangan mong gawin generation, at pagsasalin.

Ito ay tumatakbo bilang isang pakikinig socket at hawakan ang katutubong Atalla command set. Ko ipakuha ang ilang mga kalayaan ng mga error bumalik halaga at hindi striven para sa mga mataas-na-katapatan doon (ibig sabihin, ikaw ay maaaring makakuha ng isang error sa iba't-ibang tugon mula sa katutubong ngunit iyung-dapat na makakuha ng positibong magkapareho
tugon. Ang ilang mga tampok na ipinatupad dito ay normal na nangangailangan ng pagbili premium na utos, ngunit ang lahat ng utos dito ipinatupad ay magagamit. halimbawa ay pagbuo ng halaga at encrypting / decrypting plaintext halaga.

BogoAtalla para sa mga Linksys (<- ang aktwal na file sa download)

Ito ay ang Atalla ported sa Linux at bumuo para sa pag-install sa isang OpenWRT sistema. Gagawa para sa isang tunay mura ($ 60 USD) / pagsubok na aparato.

Lokal na mga Files

bogoatalla002
atallaakbcalc
bogoatalla_10-1_mipsel
dukptdecrypt
visacvvcalc
visapvvcalc

E-Commerce Glossary

Jun 18, 2008 sa Pagbabangko at EFTPoS

Kinukuha ang institusyon
Ang na humahawak ng pakikibahagi sa isang pinansiyal na kadalasan ang unang na kasangkot sa ng isang

Applet
Ang isang maliit na programa sa computer na facilitates ang pagganap ng partikular na mga gawain.

Bandwidth
Ang kakayahan ng isang upang dalhin o proseso ng impormasyon. Ang mas mataas na ang bandwidth sa mas mabilis na graphics-tigib ay i-download.

Browser
Maikling para sa browser, isang software application na ginagamit upang hanapin at ipakita ang Ang dalawang pinaka-popular na mga browser ay Netscape Navigator at Microsoft Explorer. Pareho ng mga ito ay mga graphical browser, na nangangahulugan na maaari nilang ipakita ang graphics pati na rin ang Sa karagdagan, ang pinaka-modernong mga browser ay maaaring dumalo multimedia na impormasyon, kasama ang mga tunog at video, kahit na sila ay nangangailangan ng plug-in para sa ilang format.

Caching
Ang awtomatik na pagkopya at imbakan ng mga madalas na ginagamit na impormasyon papunta sa isang computer system - Kadalasan caching ay makikita habang surfing sa (graphics, atbp) at ginamit sa pamamagitan ng Serbisyo Provider 's) upang mabawasan dami ng data na hiniling mula sa mga gumagamit papunta sa ang

Issuer
Ang na inisyu ng cardholder ng at

Cardholder
Ang mga indibidwal na kalahok sa mga financial na ang ay na-credit o debit.

verification
Ang karagdagang impormasyon sa nakalimbag na ang upang ma-process. 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 servers to your computer’s hard drive to enable you to quickly and easily return to particular sites. Cookies give rise to concerns as they are often used to store information used for marketing purposes.

The main purpose of cookies is to identify users and possibly prepare customised pages for them. When you enter a site using cookies, you may be asked to fill out a form providing such information as your name and interests. This information is packaged into a cookie and sent to your browser which stores it for later use. The next time you go to the same site, your browser will send the cookie to the . The can use this information to present you with custom pages. So, for example, instead of seeing just a generic welcome page you might see a welcome page with your name on it.

CRN
The Customer Receipt Number (CRN) is used to assist the holder, the gateway and the to confirm the has been processed and to track the throughout the end-to-end process. This is often used when making enquiries about a or for tracking.

Cybersquatting
Bad faith, abusive domain name registration. Cybersquatters register company and product names as domain names with a view to selling them at inflated prices to the “rightful” owners.

/CVC
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.

Database
A collection of : part numbers, product codes, customer information, etc. It usually refers to organised and stored on a computer that can be searched and retrieved by a computer program.

Deep link
A hypertext link directly to a page, often bypassing home pages or other identifying pages.

Certificate
A pop up window that allows you to identify the level of used to secure a particular site.

Signature
A complex numeric “signature” designed to be used, in conjunction with special software, to the sender of a message and guarantee that the contents of the message have not been altered during to the recipient. The EU has adopted legislation which makes signatures legally valid. The Bill (Cth) 1999 has the same effect in .

Domain Name
The plain English name given to a host destination on the , for example, www.madrock.net. The suffix, dot.com is known as the generic top level domain, the prefix madrock. The domain name forms part of the Address or URL.

A name that identifies one or more IP addresses. For example, the domain name microsoft.com represents about a dozen IP addresses. Domain names are used in URLs to identify particular pages. For example, in the URL http://www.madrock.net, the domain name is madrock.net.

Download
To transfer information from one computer to your computer.

Dynamic page
A document that is created from a database in real-time or “on the fly” at the same time it is being viewed, providing a continuous flow of new information and giving visitors a new experience each time they visit the site.

Dynamic sites offer the user the ability to interact with the site. This interaction can take place in the form of a search for products, a questionnaire that automatically posts results or polls. Basically, dynamic pages and content are generated from the input of the user.

EC
.

Often referred to as simply e- , business that is conducted over the using any of the applications that rely on the , such as e-mail, instant messaging, shopping carts, services, and FTP, among others. can be between two businesses transmitting funds, goods, services and/or or between a business and a customer.

ECI
The Indicator (ECI), is used to determine the source of the original request. This is a program that the banks have developed and have mandated it’s use.

Interchange (EDI)
Systems set up by businesses, which facilitate the exchange of information.


The process of scrambling to prevent it being viewed by unauthorized persons.

Expiry Date
The date printed on the indicating when the will expire. Not to be confused with the issue date found on some cards.

Firewall
An barrier and/or traffic filter.

Forms
Forms are pages comprised of and “fields” for a user to fill in with information. They are an excellent way of collecting and information from people visiting a site, as well as allowing them to interact with pages. Forms are written in HTML and processed by CGI programs.

Frame
A means of dividing a screen into a number of compartments. Frames may give rise to legal disputes if sites created by third parties are framed as your own.

FTP servers
One of the oldest of the services, File Transfer Protocol makes it possible to move one or more files securely between computers while providing file and organisation as well as transfer control.

Fulfilment
1. Process of supplying goods after an order has been received.
2. Process of reacting to a customer’s request, covering everything that has to happen from the time the customer places an order until they are completely satisfied.

Host
Any computer on a that provides services or information to other computers on the . A host is also called a .

Integration
The software and/or business processes which combine the ’s (website, back office, etc.) order system with the System.

IP address
Every computer connected to the is assigned a unique number known as an Protocol (IP) address. Since these numbers are usually assigned in country-based blocks, an IP address can often be used to identify the country from which a computer is connecting to the .

Gateway
A system allowing incompatible computer networks to send and receive information.

HTML (Hypertext Markup Language)
Language used to translate documents into a form which can be sent over the .

Hyperlink
A highlighted phrase in a document which permits linking to another document or part of a document.

Content Host (ICH)
Those who host or propose to host content on the . Anybody who is responsible for a site, news group or bulletin board that contains articles, graphics or other content provided by others. The host may/may not also produce their own content and/or provide to the through a carriage service, ie they may also be an .

Service Provider ( )
A company that provides an connection through some kind of carriage service, for example Sprint, Chello Broadband, Telstra Bigpond, Adam , Internode. ’s may/may not also be ICHs.

Mail servers
Almost as ubiquitous and crucial as servers, mail servers move and store mail over corporate networks (via LANs and WANs) and across the .


This is an set up with a to process orders from customers.


The entity receiving payments for goods and/or services.


The ’s into which transactions are credited or debited.


The software installed on the ’s sites or back office system to enable real-time or batched of financial transactions.

Administrator
The individual(s) responsible for the maintenance of the , including issuing and importing certificates.

MTL
Layer (MTL)

PAN
Primary Number (PAN) is the number printed on the customers to reference the cardholder’s financial . This is typically the number.

Gateway
The Gateway provides a central point of contact/ switching with the for the software or devices. The Networks gateway provides advanced integrated