Mobile Banking Security at Risk Assessment Considerations

Aug 05, 2008 sa Pagbabangko at EFTPoS, Security

Isaalang-alang kapag Mobile at ang mga kaugnay na panganib, ang pagtatasa ng isang pamamaraan ay depende sa malaki ang solusyon na ginawa o binigay.
Kadalasan ang diskarte ay batay sa layered sumusuporta at kalapit ang teknolohiya at pamamaraan na ginamit.

Narito ang ilang mga bagay upang isaalang-alang.

pagtasa karaniwang nakatutok sa dalawang pangunahing mga bagay-bagay.

1 / sensitivity ng
Ano ang ipinapadala. hal. numero ng balanse sa home address, number, etc
ay hindi maaaring sensitibo sa ngunit maaaring maging isinaalang-alang ng mga client bilang sensitibo.
etc ... ... ....

2 / Opportunity upang ang
Ano ang daluyan ay ginagamit?
Ito madaling
Ano ay ginagamit?
Ay ang lahat ng landas ng secure (client at bumalik end)?
Mayroon bang isang ika-3 partidong kasangkot sa paglipat ng mga transaksyon?
etc ... ... ...

Mga bagay-bagay upang isaalang-alang:

  • resets na ipinadala sa pamamagitan ng sa client, ay hindi dapat gamitin bilang lamang ang paraan ng pag-access ng account. Isang karagdagang mismong client (maaaring static) na ipasa ang salita / parirala ay dapat na ginagamit sa karagdagan sa isang dynamic na binuong ay maaaring sniffed (depende sa mode at lokasyon).
  • Kung WAP ay ginagamit, ang lahat ng mga aparatong kaya ng Kung ang aparato ay hindi kaya ng gawin naming tanggihan ang sa mga aparatong ito? Kung client side o (manalo CE, atbp), tiyakin na ito ay hindi maaaring-kompromiso sa pamamagitan ng isang Trojan's at iba pang mga pamamaraan.
  • Nagtataglay ng mga organisasyon alang client side sertipiko upang ma-verify ang aparato bago ang mga transaksyon na tinatanggap? Isaalang-alang ang maramihang mga aparato at user pamamaraan (tunay solusyon sustentado).
  • Karamihan sa mga mobile POS terminal encrypt ang client ipinasok numero, ngunit hindi encrypt lahat ng bagay sa loob ng mga Kung ang daluyan ay kompromiso, kami ay dapat isaalang-alang kung ang ay basag at kung unencrypted ay sensitibo. Isaalang-alang ang mga karagdagang gamitin ang ibig sabihin ng lahat ng mga mensahe ng (SSL, o gumamit ng terminal na utilises Derived Natatanging Key Per
  • Maraming mga aplikasyon ay na-aapektuhan sa pamamagitan ng karaniwang hacks tulad ng mga session hijacking, SQL hindi random key session (client side at side), etc ... Ang mga pangkaraniwang hacks dapat ay isinasaalang-alang sa iyong Secure SDLC at QA proseso sa sandaling ikaw ay malaman ang na ginagamit at / o deployed.
  • PBX ng kable at sistema ng pamamahagi ng mga frame ay maaaring magkaroon ng mga aparato na konektado upang mangolekta ng mga transaksyon. Wireless na aparato ay ngayon ay konektado sa mga ganitong sistema. Ang magsasalakay sits sa kanilang kotse sa car park labas. Ito ay madalas na ginawa sa super markets.
  • Wireless gateways kung hindi encrypted ay madaling kinolekta ng sinuman sa loob ng wireless na saklaw. 802,11 at iba pang mga wireless / ibaba-red daluyan ay ginagamit (masuri ang at daluyan ginagamit).
  • Nagtataglay ng mga organisasyon alang dynamic na key para sa mga mobile na gumagamit? May ilang mababang gastos SecureID solusyon na makukuha sa araw na ito, ngunit kailangan mo ng mga customer na magkaroon ng mga aparatong ito sa kanila kapag sila ay gusto mong gawin ang isang

Cisco Command Cheat Sheet

Jul 04, 2008 sa Infrastructure

Natagpuan ko ang isang listahan ng mga kapaki-pakinabang na na ako kahit na ako ay mag-post dito. Kailan ako makakakuha ng isang pagkakataon ako ay magpapatuloy upang mapalawak ang listahan at palawakin command set.

Salamat sa fastget2you.com Joined Sa # missomhack Community para sa orihinal na listahan.

Router :

  • Config # terminal edit - ay nagbibigay-daan para sa mga pinahusay na-e-edit ng utos
  • Config # terminal monitor - nagpapakita ng output sa session
  • Config # terminal ip netmask-format hexadecimal | bit-count | decimal - mga pagbabago sa mga format ng subnet masks

HOST NAME:

  • Config # hostname ROUTER_NAME

Banner:

  • Config # banner motd # MENSAHE DITO # - # ay maaaring substituted para sa anumang mga character, dapat simulan at tapusin ang mga mensahe

Paglalarawan:

  • Config # paglalarawan ITO AY ANG SOUTH router - ay ipinasok sa config-kung sa antas ng

CLOCK:

  • Config # orasan timezone Central -6
    # Orasan itakda HH: mm: ss dd buwan yyyy - Halimbawa: orasan set 14:13:00 25 Agosto 2003

Ang pagbabago ng REGISTER:

  • Config # config-rehistro 0 × 2100 - ROM Monitor Mode
  • Config # config-rehistro 0 × 2101 - ROM boot
  • Config # config-rehistro 0 × 2102 - Boot mula sa NVRAM

CDP:

  • Config # cdp tatakbo - lumiliko CDP sa
  • Config # cdp holdtime 180 - Sets ang oras na ang isang aparato ay nananatiling. Default ay 180
  • Config # cdp timer 30 - Itinatakda ang timer.The i-update ang default ay 60
  • Config # int 0
  • Config-kung # cdp paganahin - Pinapayagan ang cdp sa
  • Config-kung # walang cdp paganahin - Disables CDP sa
  • Config # walang cdp tatakbo - lumiliko CDP off

HOST TALAAN:

  • Config # ip host ROUTER_NAME INT_Address - Halimbawa: ip-host lab-isang 192.168.5.1
    -o -
  • Config # ip host RTR_NAME INT_ADD1 INT_ADD2 INT_ADD3 - Halimbawa: ip-host lab-isang 192.168.5.1 203.23.4.2 199.2.3.2 - (para sa mga e0, s0, s1)

  • Config # ip domain-lookup - Sabihin sa router sa lookup mga pangalan ng domain
  • Config # ip 122.22.2.2 - Lokasyon ng mga
  • Config # ip domain-pangalan cisco.com - Domain upang idagdag sa dulo ng pangalan

Paglilinis Counters:

Static ruta:

  • Config # ip ruta Net_Add SN_Mask Next_Hop_Add - Halimbawa: ip ruta 192.168.15.0 255.255.255.0 205.5.5.2
  • Config # ip route 0.0.0.0 0.0.0.0 Next_Hop_Add - Default na ruta
    -o -
  • Config # ip Net_Add - Gateway LAN

IP Routing:

  • Config # ip routing - enable sa pamamagitan ng default
  • Config # router gahi
    -o -
  • Config # router igrp 100
  • Config # 0
  • Config-kung # ip address na 122.2.3.2 255.255.255.0
  • Config-kung # walang pagpipinid

IPX Routing:

listahan:

IP Standard 1-99
IP Extended 100-199
IPX Standard 800-899
IPX Extended 900-999
IPX Filter 1000-1099

IP STANDARD:

  • Config # 10 pinapayagan 133.2.2.0 0.0.0.255 - pinapayagan ang lahat ng src ip's sa 133.2.2.0
    -o -
  • Config # 10 pinapayagan host 133.2.2.2 - tumutukoy sa isang tiyak na host
    -o -
  • Config # 10 pinapayagan ang anumang - ay nagbibigay-daan sa kahit anong address
  • Config # int 0
  • Config-kung # ip sa 10 - magagamit din: out

IP EXTENDED:

  • Config # 101 pinapayagan TCP 133.12.0.0 0.0.255.255 122.3.2.0 0.0.0.255 eq
    -protocol: TCP, udp, icmp, ip (walang sockets pagkatapos), bukod sa iba
    -source pagkatapos patutunguhang address
    -eq, gt, lt para sa mga paghahambing
    -sockets ay maaaring numero o pangalan (23 o 21 o ftp, etc)
    -o -
  • Config # 101 tanggihan TCP anumang host 133.2.23.3 eq www

-o -

-o -

  • Config # 801 pinapayagan -1 -1 - "-1" ay ang parehong bilang "anumang" sa / host address
  • Config # 0
  • Config-kung # ipx 801 out IPX EXTENDED:
  • Config # 901 pinapayagan 4AA lahat 4BB lahat
    - Permit protocol src_add socket dest_add socket
    - "Lahat" ay kasama ang lahat sockets, o maaaring gamitin ang mga numero ng socket

-o -

  • Config # 901 pinapayagan ang anumang anumang ang lahat ng anumang lahat
    -Pinahihintulutan ang anumang mga protocol sa anumang address sa anumang socket upang pumunta sa kahit saan
  • Config # 0
  • Config-kung # ipx grupo-901 sa IPX FILTER:
  • Config # 1000 pinapayagan 4aa 3 - "3" ay ang serbisyo ng

-o -

-o -

NAMED listahan:

  • Config # listahan ng mga karaniwang LISTNAME
    -ay maaaring ip o ipx, standard o extended
    -sinundan ng permit o tanggihan ang listahan
  • Config # pinapayagan ang anumang
  • Config-kung # ip LISTNAME sa
    -gamitin ang listahan ng pangalan sa halip ng isang listahan ng numero
    -nagbibigay-daan para sa isang mas malaking halaga ng

PPP setup:

  • Config-kung # ppp
  • Config-kung # ppp putok malambot na pagkain
    -order na kung saan sila ay gagamitin
    -lamang tinangka sa nakalista
    -kung hindi isa, at pagkatapos ay koneksyon ay itinigil
  • Config-kung # exit
  • Config # username Lab-b 123456
    -username ay ang router na pagkonekta sa isang ito
    -lamang na tinukoy na routers ay maaaring kumonekta

-o -

  • Config-kung # ppp-putok hostname router
  • Config-kung # ppp-putok 123456
    -kung ito ay naka-set na sa lahat ng routers, pagkatapos ng anuman sa mga ito ay maaaring kumonekta sa anumang iba pang
    i-set-pareho sa lahat para sa madaling configuration

ISDN setup:

  • Config # isdn basic-5ess - tinutukoy ng telecom
  • Config # serial 0
  • Config-kung # isdn spid1 2705554564 - isdn "phonenumber" ng line 1
  • Config-kung # isdn spid2 2705554565 - isdn "phonenumber" ng mga linya 2
  • Config-kung # PPP - o HDLC, LAPD

DDR - 4 Hakbang sa set up ng ISDN na may DDR-configure lumipat

1. Config # isdn basic-5ess - ay maaaring gawin sa config

2. Itakda ang static ruta
Config # ip ruta 123.4.35.0 255.255.255.0 192.3.5.5 - nagpapadala ng trapiko nakalaan para sa mga 123.4.35.0 sa 192.3.5.5
Config # ip ruta 192.3.5.5 255.255.255.255 bri0 - tumutukoy kung paano makararating sa 192.3.5.5 (sa pamamagitan ng bri0)

3. Itakda ang
Config-kung # ip address na 192.3.5.5 255.255.255.0
Config-kung # walang pagpipinid
Config-kung # ppp
Config-kung # Dialer-grupo 1 - naaangkop Dialer-list para sa ito
Config-kung # Dialer mapa ip 192.3.5.6 pangalan Lab-b 5551212
kumonekta sa lab-b at 5551212 sa ip 192.3.5.6 kung diyan ay kagiliw-giliw na trapiko
ay maaari ring gamitin ang "Dialer 5551212 string" sa halip na kung mayroon lamang isang router makakonekta sa

4. Tukuyin ang mga kagiliw-giliw na trapiko
Config # dial-list 1 ip pinapayagan ang anumang
-o -
Config # dial-list 1 ip listahan 101 - gamitin ang 101 bilang Dialer listahan

5. Iba pang Opsyon
Config-kung # hold-queue 75 - queue 75 packets bago dialing
Config-kung # Dialer load-threshold 125 alinman sa
-load ang kailangan bago ikalawang linya ay nagdala ng up
- "125" ay anumang numero 1-255, na kung saan ang% load ay x/255 (ibig sabihin 125/255 ay tungkol sa 50%)
-maaari sa pamamagitan ng check-in, out, o ang alinman sa

Config-kung # Dialer idle-timeout 180
-tumutukoy sa kung gaano katagal na manatiling walang ginagawa bago terminating ng session
-default ay 120

FRAME setup:

  • Config # serial 0
  • Config-kung # - cisco sa pamamagitan ng default, maaari baguhin sa ietf
  • Config-kung # cisco - cisco sa pamamagitan ng default, ang din ansi, q933a
  • Config-kung bandwidth # 56
  • Config-kung # serial 0,100 point-to-point - subinterface
  • Config-kung # ip address na 122.1.1.1 255.255.255.0
  • Config-kung # 100
    -mapa ang dlci sa
    -ay maaaring magdagdag ng at / o IETF sa dulo
  • Config-kung # serial 1,100 multipoint
  • Config-kung # walang kabaligtaran-arp - nagiging IARP off; mabuti mong gawin
  • Config-kung # mapa ip 122.1.1.2 48 ietf
    mapa-isang IP sa isang dlci (48 sa kasong ito)
    -kung kinakailangan IARP ay nakapatay
    -ietf at ay opsyonal
  • Config-kung # mapa ip 122.1.1.3 54

IPAKITA command

  • Ipakita ang - ang lahat na listahan sa router
  • Ipakita ang cdp - cdp timer at holdtime
  • Ipakita ang cdp entry * - katulad ng susunod na
  • Ipakita ang cdp kapitbahay detalye - mga detalye ng kalapit-bahay na may ip magdagdag at ios bersyon
  • Ipakita ang cdp kapitbahay - id, lokal na holdtime, kakayahan, platform portid
  • Ipakita ang cdp - int ang tumatakbo cdp at ang kanilang mga
  • Ipakita ang cdp trapiko - cdp packets na ipinadala at natanggap
  • Ipakita ang controllers serial 0 - DTE o DCE kalagayan
  • Ipakita ang Dialer - bilang ng beses na Dialer string ay naabot na, ang iba pang stats
  • Ipakita ang flash - file sa flash
  • Ipakita ang lmi - lmi stats
  • Ipakita ang mapa - static at dynamic na mga mapa para sa 's
  • Ipakita ang - 's at dlci's
  • Ipakita ang kasaysayan - command ipinasok
  • Ipakita ang mga host - mga nilalaman ng host ng mesa
  • Ipakita ang int f0/26 - stats ng f0/26
  • Ipakita ang 0 - ipakita ang mga istatistika ng 0
  • Ipakita ang ip - ip config ng lumipat
  • Ipakita ang ip - ip sa lumipat
  • Ipakita ang ip - ip config ng
  • Ipakita ang ip protocol - routing protocol at timer
  • Ipakita ang ip ruta - nagpapakita ng mga IP routing table
  • Ipakita ang ipx - parehong, lamang ipx
  • Ipakita ang ipx interface - RIP at impormasyon na ipinadala at natanggap, IPX address
  • Ipakita ang ipx ruta - ipx ruta sa table
  • Ipakita ang ipx server - mesa
  • Ipakita ang ipx trapiko - RIP at info
  • Ipakita ang isdn aktibong - number na may aktibong katayuan
  • Ipakita ang isdn kalagayan - nagpapakita kung SPIDs ay may-bisa, kung connected
  • Ipakita ang mac-address-mesa - mga nilalaman ng mga dynamic na mesa
  • Ipakita ang mga protocol - routed protocol at net_addresses ng interface
  • Ipakita ang tumatakbo-config - drakma config file
  • Ipakita ang mga session - koneksyon sa pamamagitan ng sa remote aparato
  • Ipakita ang startup-config - nvram config file
  • Ipakita ang terminal - nagpapakita ng kasaysayan ng sukat
  • Ipakita ang ng isang / b - stat ng port 26/27
  • Ipakita ang bersyon - ios info, uptime, address ng lumipat
  • Ipakita ang vlan - lahat isinaayos vlan's
  • Ipakita ang vlan-pagiging kasapi - vlan asignatura
  • Ipakita ang vtp - vtp configs

Katalista command
Para sa Katutubong IOS - Hindi CatOS

SWITCH ADDRESS:

  • Config # ip address 192.168.10.2 255.255.255.0
  • Config # ip default-gateway 192.168.10.1 DUPLEX mode:
  • Config # 0 / 5 - "fastethernet" para sa 100 Mbps port
  • Config-kung # dyupleks buong - din, kalahati | auto | full-takbo-ng-control

Lumilipat mode:

  • Config # nagpapalit-mode tindahan-at-forward - din, kapi-free

MAC ADDRESS CONFIGS:

  • Config # mac-address-table permanenteng aaab.000f.ffef e0 / 2 - lamang ito mac ay gagana sa mga ito port
  • Config # mac-address-table restricted static aaab.000f.ffef e0 / 2 e0 / 3
    -port 3 ay maaari lamang magpadala ng sa labas port 2 na mac
    -very mahigpit
  • Config-kung # port secure max-mac-count 5 - ay nagbibigay-daan lamang ang 5 mac address mapped sa port

VLANS:

  • Config vlan # 10 pangalan Finance
  • Config # 0 / 3
  • Config-kung-# vlan ng pagiging miyembro ng static 10 Links:
  • Config-kung # sa - din, off | auto | kanais-nais | nonegotiate
  • Config-kung # walang 2
    -Tinatanggal vlan 2 mula sa port
    -sa pamamagitan ng default, ang lahat ng vlans ay naka-set sa isang port

    Configure VTP:

  • Config # burahin vtp - ay dapat gawin bago ang pagdagdag sa isang
  • Config # vtp - ang default ay din client at transparent
  • Config # vtp domain Camp - pangalan ay hindi bagay, i-switch ang lahat upang gamitin ang parehong
  • Config # vtp 1234 - limitado
  • Config # vtp pruning paganahin - limitasyon vtp broadcasts lamang sa switch apektado
  • Config # vtp pruning disable Flash UPGRADE:
  • Config # kopya tftp: / / 192.168.5.5/configname.ios opcode - "opcode" para sa ios upgrade, "nvram" para sa startup config

DELETE STARTUP config:

  • Config # burahin nvram

Breaking VISA PIN

Jul 02, 2008 sa Pagbabangko at EFTPoS

Nasa ibaba ang isang artikulo ko natagpuan kamakailan. Ito ang isa sa mga pinaka-kumpletong paglalarawan ng Value

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

Bilang puna ay nagawa tungkol sa balarila na ginamit sa orihinal na mayroon akong naitama ang ilan sa mga malinaw na error habang pinapanatili ang konteksto ng orihinal na materyales.

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

--- Orihinal ----

Paunang salita
Naisip mo na kailanman ay magtaka kung ano ang mangyayari kung mawalan ng iyong o at ang isang tao na ito. Puwede ba ang taong ito ma-withdraw ng pera mula sa isang ATM hulaan, kahit paano, ang iyong Saka, kung ikaw ay isang tao na nag hahanap ng mo subukang hulaan ang at kunin ang pagkakataon na makakuha ng ilang madaling Syempre ang sagot sa parehong katanungan ay dapat na "no". Ang trabaho ay hindi na pakikitungo sa pangalawang tanong, ito ay isang bagay na ito ng mga na Dito ako subukin sa sagot na ang unang katanungan.

Lahat ng impormasyon na ginagamit para sa trabaho na ito ay pampubliko at maaaring matagpuan sa Ang natitira ay isang bagay ng at programming, kaya kami ay matuto at may mga ilang mga masaya. Ako isigaw walang secrets. Bukod dito, ang mga layunin (at pinal na ng trabaho na ito ay upang ipakita na ang algorithm ay malakas pa rin sapat na upang magbigay ng sapat na Namin ang lahat kung ay hindi ang

Ito gumagana analyses ng isa sa mga pinaka-karaniwang algorithm, na ginagamit ng maraming mga at cards) at sumusubok na malaman kung paano ay lumalaban sa hulaan tuligsa. 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 mga karapatan kung mabibigo namin mapigil ang ATM Bilang ay apat na digit na mahaba madaling pagbatayan na ang mga pagkakataon para sa isang random na hulaan ay 3 / 10000 = 0,0003, tila mababa ang sapat na upang maging ligtas; ito ay nangangahulugan na kailangan mo upang mawala ang iyong ng higit pa sa tatlong libong beses ( o pagkawala ng higit pa sa tatlong libong mga kard ng sabay-sabay:) hanggang sa may makatwirang pagkakataon ng pagkawala

Ano ko talagang meant sa pamamagitan ng "hulaan" ay paglabag ang upang ang mga ibinigay na kahit anong maaari mong malaman agad ang mga kaugnay na Kaya ang dokumento na ito posibilidad na ang mga pag-aaral, pag-aaral ng at minumungkahi ng isang paraan para sa mga Panghuli naming ibigay isang kasangkapan na nagpapatupad ng mga at kasalukuyang resulta tungkol sa tinatayang pagkakataon sa basagin ang sistema. Tandaan na habang ang ibang kaugnay na algorithm (iba pang mga format tulad ng IBM o pagpapatunay lagda tulad ng o CVC) ay katulad sa ang parehong analysis ay maaaring tapos na mapagtutubuan halos ang parehong resulta at pagpapalagay.



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

Ang paglalarawan ng ay matatagpuan sa loob ng dalawang dokumento na naka-link sa nakaraang pahina. Sa buod na ito ay binubuo ng ng isang 8 byte (64 bit) string ng na tinatawag na Transformed Parameter (TSP), na may (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 mga decimal na numero (mula sa kaliwa papunta sa kanan) ng output mula kapag isinaalang-alang bilang isang 16 na karakter hexadecimal (16 bit x 4 = 64 bit) string. Kung walang mga apat na decimal na numero sa pagitan ng mga 16 hexadecimal character pagkatapos ay ang ay nakumpleto na kinuha (mula sa kaliwa papunta sa kanan) hindi decimal karakter at decimalizing mga ito sa pamamagitan ng paggamit ng conversion A-> 0, B-> 1, C-> 2, D -> 3, E-> 4, F-> 5. Narito ang isang halimbawa:

Output mula 0FAB9CDEFFE7DCBA

0975

Ang mga istratehiya ng pag-iwas sa decimalization ng laktaw character hanggang sa apat na mga decimal na numero ay matatagpuan (na ang mangyayari sa halos lahat ng mga oras na kami ay makikita sa ibaba) ay lubhang matalino dahil ito avoids isang mahalagang bias sa pamamahagi ng mga bilang na ito ay napatunayan na nakamamatay para sa ibang sistema, kahit na ang epekto sa sistemang ito ay marami na mas mababa. Tingnan din ang isang problema sa mga kaugnay na hindi nag-aaplay sa

Ang TSP, makikita bilang 16 hexadecimal character (64 bit) string, ay binuo (mula sa kaliwa papunta sa kanan) sa 11 rightmost numero ng PAN numero ng hindi kasama ang huling digit (check digit), isang digit na mula sa 1 hanggang 6 na na kung saan pinipili ang lihim encrypting susi at sa wakas sa apat na numero ng Narito ang isang halimbawa:

PAN: 1234 5678 9012 3445
Key selector: 1
2468

TSP: 5678901234412468

Obviously ang problema ng mga paglabag ay binubuo sa paghahanap ang susi para sa mga lihim na encrypting Ang pamamaraan na ito ay para sa gumawa ng isang malupit na puwersa ng mga paghahanap ang susi space. Tandaan na hindi ito ang tanging paraan, isa ay subukan upang makahanap ng kahinaan sa DEA, maraming tried, ngunit ito pa rin ang mga lumang pamantayan sa malawak na gamitin (ngayon ay papalitan ng AES at bagaman). Ito ay nagpapakita na ito ay sapat na upang malusog na astig lakas ay ang tanging paraan viable (may ilang mga mas mahusay na atake ngunit hindi praktikal sa aming kaso, para sa isang buod makita 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 was 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 ibang susi selector. Mas lumang cards ay maaaring substituted na may mga bago o lamang ang ATM ay maaari transparently sumulat ng isang bagong (kaukulang sa bagong susi at mapanatili ang parehong sa susunod na pagkakataon ang mga customer na gumagamit ng kanyang Para sa iling ng ang lahat ng mga gumagamit ay dapat na hingin sa iyo na baguhin ang kanilang mga PINs, subalit ito ay nakakahiya para sa upang ipaliwanag ang dahilan, kaya ang tunay malamang sila ay hindi makagawa ng ganoong kahilingan.

Inihahanda ang mga


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

Kaya ang space key ay binubuo ng 2 ^ 56 keys. Kung kami na subukan ang lahat ng mga ito ay mga susi namin mahanap ang isa at isa lamang tugma, nararapat sa ang lihim susi? Tiyak na hindi. Kami ay makakuha ng maraming mga matching keys. Ito ay dahil ang ay lamang ng isang maliit na bahagi (ang isang ika-apat na) ng output. Bukod dito ang ay degenerated dahil ang ilan ng mga numero (ang mga pagitan ng 0 at 5 pagkatapos ng huling, makikita mula sa kaliwa papunta sa kanan, numero 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 gumawa ng isang output na magbubunga sa parehong matching

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

Bago namin simulan ang aming mga na namin na malaman kung gaano karami ang pares namin ang kailangan mo. Para sa mga na kami ay upang makalkula ang mga para sa isang random output sa ani ng isang matching sa pamamagitan lamang ng pagkakataon. Mayroong ilang mga paraan upang kalkulahin ang bilang na ito at dito ako ay gagamit ng isang simpleng diskarte madaling maunawaan ngunit kung saan ay nangangailangan ng ilang background sa ng mga

Ang isang maaari palaging makikita bilang ang ratio ng makabubuti mga kaso ng mga posibleng kaso. Sa aming mga problema sa bilang ng posibleng mga kaso ay ibinigay sa pamamagitan ng ng 16 mga sangkap (ang 0 sa F hexadecimal digit) sa isang grupo ng 16 sa kanila (ang 16 hexadecimal na numero ng output). Ito ay ibinigay sa pamamagitan ng 16 ^ 16 ~ 1,8 * 10 ^ 19 na ng kurso coincides sa 2 ^ 64 (iba't-ibang mga numero ng 64 bits). Sa hanay na ito ng mga numero ay maaaring ihiwalay sa limang kategorya:

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

Mga may eksaktong lamang tatlong mga decimal na numero.

Mga may eksaktong lamang ng dalawang decimal na numero.

Mga may eksaktong isa lamang 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 ang 16 hexadecimal numero ng output bilang X1 sa X16 pagkatapos ay maaari naming label na ang unang apat na mga decimal na numero ng anumang naibigay na bilang ng mga unang kategorya bilang Xi, Xj, Xk at Xl. Ang bilang ng mga iba't-ibang mga kumbinasyon na may profile na ito ay ibinigay sa pamamagitan ng ang 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 dumating mula sa bilang ng mga posibilidad para sa isang A to F digit, ang 10's nanggaling mula sa mga posibilidad para sa isang 0 hanggang 9 digit na, at ang 16 ay mula sa mga posibilidad para sa isang 0 sa F digit. Ngayon ang kabuuang numero sa unang kategorya ay lamang na ibinigay sa pamamagitan ng pagbubuo ng produktong ito sa ako, j, k, l mula sa 1 hanggang 16 ngunit may i <j <k <L. Kung ilang matematika trabaho makikita ninyo ang mga ito ay katumbas sa produkto ng 104 / 6 na may higit sa pagbubuo 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 sa ako, j, k mula sa 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 din para sa ikatlong kategorya na namin ang pagbubuo sa ako, j mula sa 1 hanggang 16 na may i <j ng 6 i-1 * 10 * 6j-i-1 * 10 * 616-j na katumbas sa 16! / (2! * (16-14)!) * 102 * 614 = 2 * 103 * 615 ~ 9,4 * 1014. Muli, para sa ika-apat na kategorya na namin ang pagbubuo higit 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 ikalimang kategorya ay ibinigay sa pamamagitan ng ng anim na mga sangkap (A sa F digit) sa isang grupo ng 16, iyon ay, 616 ~ 2,8 * 1012.

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

Hanggang sa ngayon kami ay kalkulahin ang bilang ng posibleng mga kaso sa bawat isa sa mga limang kategorya, ngunit kami ay interesado sa pagkuha ng bilang ng mga 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 kombinasyon ng apat na decimal na numero (o ang mga kinakailangang hexadecimal digit kung walang mga apat na decimal na numero) ng sa halip ng pagpapaalam sa kanila libre. Sa pagsasanay na ito ay nangangahulugan na sa pamamagitan ng pagpapaandar ng 10's sa mga formula sa itaas sa 1 at ang mga kinakailangang halaga ng 6's sa 1's kung walang mga apat na decimal na numero. Iyon ay, tayo may sa paghati-hatiin ang unang resulta sa pamamagitan ng 104, ang pangalawang ng isa sa pamamagitan ng 103 * 6, ang pangatlong isa sa pamamagitan ng 102 * 62, ang ika-apat na isa sa pamamagitan ng 10 * 63 at ang ikalima ng isa sa pamamagitan ng 64. Pagkatapos ay ang bilang ng mga kaso makabubuti sa limang kategorya ay humigit-kumulang sa 1.8 * 1015, 1.2 * 1012, 2.6 * 1011, 3.5 * 1010, 2.2 * 109 naaayon.

Ngayon namin na kumuha ng kung ano ay ang para sa isang output upang tumugma sa isang ng pagkakataon. Kami lang bang idagdag ang limang numero ng mainam na kaso at hatiin ito sa pamamagitan ng ang kabuuang bilang ng posibleng mga kaso. Kapag ginawa ito makuha namin na ang mga ay humigit-kumulang sa 0,0001 o isa sa labas ng sampung libong. Ito ba ay kakaiba na ito ng mabuti bilugan resulta? Hindi sa lahat, makatarungan may a tumingin at ang 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 kaso. Ito ay sa halip intuitive gaya ito tila malinaw na ito ay hindi tunay hindi pagkakaroon ng apat na decimal na numero (10 mga pagkakataon sa labas ng bawat digit na 16) sa mga 16 hexadecimal digit. Nakita natin noon na ang relasyon sa pagitan ng mga bilang ng 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 ay mula.

Ang aming layunin para sa lahat ng mga kalkulasyon ay upang malaman kung gaano karami ang pares na kailangan namin upang magsagawa ng isang matagumpay na taong malupit na puwersa Ngayon namin na kalkulahin ang inaasahang bilang ng mga false positives sa isang unang search: ito ay ang bilang ng mga pagsubok na beses ang mga para sa isang random na false positive, ibig sabihin t * p kung saan t = 2 ^ 56, ang laki ng mga susi space. Ang mga halaga sa humigit-kumulang sa 7.2 * 10 ^ 12, sa halip ng isang malaking numero. The expected number of false positives in the second search (restricted to the positive keys found in the first search) will be (t * p) * p, for a third search will be ((t * p) * p) * p and so on. Thus for n searches the expected number of false positives will be t * p^n.

We can obtain the number of searches required to expect just one false positive by expressing the equation t * p^n = 1 and solving for n. So n equals to the in base p of 1/t, which by properties of logarithms it yields n = log(1/t)/log(p) ~ 4.2. Since we cannot do a fractional search it is convenient to round up this number. Therefore what is the expected number of false positives if we perform five searches? It is t * p^5 ~ 0.0007 or approximately 1 out of 1400. Thus using five TSP- pairs is safe to obtain the true secret key with no false positives.

The


Once we know we need five TSP- pairs, how do we get them? Of course we need at least one with known , and due to the nature of the , that’s the only thing we need. With other systems, such as IBM, we would need five cards, however this is not necessary with . We just have to read the and then change the four times but reading the after each change.

It is necessary to read the of the to get the and the encrypting key selector. You can buy a commercial or make one yourself following the instructions you can find in the previous page and links therein. Once you have a see this description of standard magnetic tracks to find out how to get the from the read. In that document the field in tracks 1 and 2 is said to be five character long, but actually the true consists of the last four digits. The first of the five digits is the key selector. I have only seen cards with a value of 1 in this digit, which is consistent with the standard and with the secret key never being compromised (and therefore they did not need to move to another key changing the selector).

I did a simple C program, getpvvkey.c, to perform the . It consists of a loop to try all possible keys to encrypt the first TSP, if the derived matches the true a new TSP is tried, and so on until there is a mismatch, in which case the key is discarded and a new one is tried, or the five derived PVVs match the corresponding true PVVs, in which case we can assume we got the secret key, however the loop goes on until it exhausts the key space. This is done to assure we find the true key because there is a chance (although very low) the first key found is a false positive.

It is expected the program would take a very long time to finish and to minimize the risks of a power cut, computer hang out, etc. it does checkpoints into the file getpvvkey.dat from time to time (the exact time depends on the speed of the computer, it’s around one hour for the fastest computers now in use). For the same reason if a positive key is found it is written on the file getpvvkey.key. The program only displays one message at the beginning, the starting position taken from the checkpoint file if any, after that nothing more is displayed.

The is a key point in the program, it is therefore very important to optimize its speed. I tested several implementations: libdes, SSLeay, openssl, cryptlib, nss, libgcrypt, catacomb, libtomcrypt, cryptopp, ufc-crypt. The functions of the first four are based on the same code by Eric Young and is the one which performed best (includes optimized C and x86 assembler code). Thus I chose libdes which was the original implementation and condensed all relevant code in the files encrypt.c (C version) and x86encrypt.s (x86 assembler version). The code is slightly modified to achieve some enhancements in a brute force : the initial is a fixed common steep in each TSP and therefore can be made just one time at the beginning. Another improvement is that I wrote a completely new setkey function (I called it nextkey) which is optimum for a brute force loop.

To get the program working you just have to in the corresponding place five TSPs and their PVVs and then compile it. I have tested it only in UNIX platforms, using the makefile Makegetpvvkey to compile (use the command “make -f Makegetpvvkey”). It may compile on other systems but you may need to fix some things. Be sure that the definition of the long64 corresponds to a 64 bit integer. In principle there is no dependence on the endianness of the processor. I have successfully compiled and run it on Pentium-Linux, Alpha-Tru64, Mips-Irix and Sparc-Solaris. If you do not have and do not want to install Linux (you don’t know what you are missing ;-) you still have the choice to run Linux on CD and use my program, see my page running Linux without installing it.

Once you have found the secret key if you want to find the of an arbitrary you just have to write a similar program (sorry I have not written it, I’m too lazy :) that would try all 10^4 PINs by generating the corresponding TSP, encrypting it with the (no longer) secret key, deriving the and comparing it with the in the of the . You will get one match for the true . Only one match? Remember what we saw above, we have a chance of 0.0001 that a random matches the . We are trying 10000 PINs (and therefore TSPs) thus we expect 10000 * 0.0001 = 1 false positive on average.

This is a very interesting result, it means that, on average, each has two valid PINs: the customer and the expected false positive. I call it “false” but note that as long as it generates the true it is a as valid as the customer’s one. Furthermore, there is no way to know which is which, even for the ATM; only customer knows. Even if the false positive were not valid as , you still have three trials at the ATM anyway, enough on average. Therefore the we calculated at the beginning of this document about random guessing of the has to be corrected. Actually it is twice that value, ie, it is 0.0006 or one out of more than 1600, still safely low.

Results


It is important to optimize the compilation of the program and to run it in the fastest possible processor due to the long expected run time. I found that the compiler optimization flag -O gets the better performance, thought some improvement is achieved adding the -fomit-frame-pointer flag on Pentium-Linux, the -spike flag on Alpha-Tru64, the -IPA flag on Mips-Irix and the -fast flag on Sparc-Solaris. Special flags (-DDES_PTR -DDES_RISC1 -DDES_RISC2 -DDES_UNROLL -DASM) for the code have generally benefits as well. All these flags have already been tested and I chose the best combination for each processor (see makefile) but you can try to fine tune other flags.

According to my tests the best performance is achieved with the AMD Athlon 1600 MHz processor, exceeding 3.4 million keys per second. Interestingly it gets better results than Intel Pentium IV 1800 MHz and 2000 MHz (see figures below, click on them to enlarge). I believe this is due to some I/O saturation, surely cache or memory , that the AMD processor (which has half the cache of the Pentium) or the motherboard in which it is running, manages to avoid. In the first figure below you can see that the breaking speed of all processors has more or less a linear relationship with the processor speed, except for the two Intel Pentium I mentioned before. This is logical, it means that for a double processor speed you’ll get double breaking speed, but watch out for saturation effects, in this case it is better the AMD Athlon 1600 MHz, which will be even cheaper than the Intel Pentium 1800 MHz or 2000 MHz.

In the second figure we can see in more detail what we would call intrinsic break power of the processor. 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 f