Mobile Banking de securitate şi considerente de evaluare a riscului

05 august 2008 în bancar şi EFTPoS, Securitate

Se are în vedere Banking şi de risc asociat, de o evaluare de abordare depinde foarte mult de pe soluţie de a fi create sau furnizate.
General de abordare se bazează pe mai multe niveluri de sprijin şi din jurul tehnologii şi tehnici utilizate.

Iată câteva lucruri de luat în considerare.

în general, evaluările se concentrează asupra a două lucruri.

1 / Sensibilitate de
Ce este de a fi trimis. de ex. de credit numere, adresa de acasă, de cont bancar, etc
nu pot fi sensibile banca, dar poate fi considerat de client ca sensibile.
etc ... ... ....

2 / Oportunitati acces la
Ce mediu este utilizat?
Este uşor de
Ce este folosit?
Sunt datele de căi sigure (de client şi de sfârşitul spate)?
Există o parte 3a implicate în trecerea de la tranzactii?
etc ... ... ...

Lucruri pe care trebuie să ia în considerare:

  • reiniţializează trimise prin client, nu ar trebui să fie folosite ca singura metoda de accesare a conturilor. Un client suplimentare specifice (posibil statică) trece cuvânt / frază ar trebui să fie utilizat în plus faţă de generate dinamic poate fi sniffed (în funcţie de modul şi de locaţie).
  • Dacă este utilizat WAP, sunt capabil de toate dispozitivele Dacă dispozitivele nu sunt capabil de nu am refuza aceste dispozitive? Dacă partea de client sau (CE câştiga, etc), asigura acesta nu poate fi compromisă de un Trojan e şi alte tehnici.
  • Organizarea a considerat partea de client, pentru a verifica certificatele de dispozitiv înainte de a tranzacţiilor fiind acceptate? Luaţi în considerare mai multe dispozitiv de utilizator şi (soluţie foarte dependent).
  • Cele mai multe terminale POS mobil cripta în care clientul a intrat număr, dar nu totul cripta în În cazul în care mediu este compromisă, că ar trebui să ia în considerare în cazul în care poate fi spart şi dacă necriptate este sensibil. Luaţi în considerare suplimentare adică utilizarea tuturor mesaj de (SSL, sau de a folosi un terminal care utilizeaza derivate cheie unică tranzacţie
  • Multe cererile au fost afectate de hacks tipice, cum ar fi hijack, SQL non aleatoare, chei de sesiune (partea de client server lateral), etc ... Aceste tipic hacks ar trebui să fie luate în considerare la dvs. Secure SDLC QA Procese şi, o dată ce sunt conştienţi de şi / sau a dislocat.
  • PBX sisteme de cablare şi de distribuţie de cadre poate fi conectat la dispozitive colecta tranzacţii. Dispozitivele fără fir sunt acum fiind conectate la aceste sisteme. De atacator stă în maşina lor în parc auto exteriorul. Acest lucru este făcut de multe ori în super pieţe.
  • Wireless gateway, dacă nu sunt criptate cu uşurinţă de oricine colectate în termen de wireless, raza de acoperire. 802.11 fără fir şi alte / infra-rosu medii sunt utilizate (evaluarea de şi de mediu, fiind folosit).
  • Organizarea a considerat dinamic pentru chei de utilizatori de telefonie mobilă? Există unele foarte mici, costul SecureID de soluţii disponibile astăzi, dar clientii au nevoie de aceste dispozitive pe ele, atunci când vor să facă tranzacţie.

Cisco trisat foaie de comandă

04 iulie 2008 în infrastructură

Am găsit o listă de util pe care am deşi aş posta aici. Când mă am o sansa va continua să se extindă şi să extindă lista de comanda set.

Vă mulţumim pentru fastget2you.com unit cu # missomhack comunitare pentru lista originală.

ROUTER :

  • Config # terminale de editare - permite editarea comenzilor de îmbunătăţire a
  • Config # terminale de monitor - arată de ieşire de pe sesiune
  • Config # terminale de ip netmask-format hexazecimal | pic-Număr de | zecimal - modificări în format de măşti de subreţea

Nume de gazdă:

  • Config # hostname ROUTER_NAME

Banner:

  • Config # # banner MOTD mesajul aici # - # poate fi înlocuit pentru orice caractere, trebuie să începe şi termina mesajul

DESCRIERI:

  • Config # Aceasta este descrierea SUD Router - pot fi introduse la nivel Config-dacă

Ceas:

  • Config # ceas de fus orar Centrală -6
    # Ceas stabilit HH: MM: SS ZZ luna AAAA - Exemplu: set ceas 14:13:00 25 august 2003

Schimbare de registru:

  • # Config config-registru 0 x 2100 - Monitorul ROM Mode
  • # Config config-registru 0 x 2101 - ROM de boot
  • # Config config-registru 0 x 2102 - Boot-aţi de NVRAM

CDP:

  • Config # CDP rula - Se pare CDP pe
  • Config # CDP holdtime 180 - Seturi de timp în care un dispozitiv rămâne. Implicit este 180
  • Config # CDP Timer 30 - Seturi de actualizare timer.The implicit este de 60 de
  • Config # int 0
  • # Config-dacă CDP permite - Activează CDP pe
  • # Config-dacă nu CDP permite - Dezactivează CDP pe
  • Config # nu rulaţi CDP - Se pare CDP jos

HOST tabel:

  • Config # ip gazdă ROUTER_NAME INT_Address - Exemplu: IP-o gazdă de laborator 192.168.5.1
    -sau -
  • Config # ip gazdă RTR_NAME INT_ADD1 INT_ADD2 INT_ADD3 - Exemplu: IP-o gazdă de laborator 192.168.5.1 203.23.4.2 199.2.3.2 - (pentru e0, s0, s1)

  • Config # domeniu de ip-lookup - Spune-lookup ruterul la numele de domeniu
  • Config # ip 122.22.2.2 - Localizare de DNS
  • Config # ip-nume de domeniu cisco.com - Domeniu de a adăuga la sfârşitul celui de-nume

Contoare de compensare:

TRASEE static:

  • Config # ip traseu Net_Add SN_Mask Next_Hop_Add - Exemplu: ip route 192.168.15.0 255.255.255.0 205.5.5.2
  • Config # ip 0.0.0.0 0.0.0.0 traseu Next_Hop_Add - ruta implicită
    -sau -
  • # Config-ip implicit Net_Add - Portalul LAN

IP Routing:

  • Config # rutare IP - activat implicit
  • # Config router rip
    -sau -
  • # Config router igrp 100
  • Config # 0
  • # Config-dacă adresa de IP 122.2.3.2 255.255.255.0
  • # Config-dacă nu de închidere

IPX Routing:

liste:

IP-standard 1-99
IP Extended 100-199
IPX standard 800-899
IPX Extended 900-999
IPX filtre 1000-1099

IP-standard:

  • # Config lista de permis de 133.2.2.0 0.0.0.255 - permite tuturor src IP de pe 133.2.2.0
    -sau -
  • # Config lista de permis de gazdă 133.2.2.2 - specifică o anumită gazdă
    -sau -
  • # Config lista de permis de orice - permite orice adresa de
  • Config # int 0
  • # Config-ip dacă în-grup de 10 - de asemenea, disponibil: afară

Prelungire de IP:

  • # Config 101 permit tcp 133.12.0.0 0.0.255.255 122.3.2.0 0.0.0.255 eq
    -protocoale: TCP, UDP, ICMP, IP (nu prize apoi), printre altele
    -sursă, atunci adresa de destinaţie
    -up, gt, lt pentru comparare
    -prize pot fi numerice sau de nume (23 sau 21 sau ftp, etc)
    -sau -
  • # Config lista de 101-TCP refuza orice gazdă 133.2.23.3 up www

-sau -

-sau -

  • # Config 801 permit -1 -1 - "-1" este acelaşi ca "orice" cu / adrese de gazdă
  • Config # 0
  • # Config-dacă IPX de 801 IPX prelungită de la:
  • # Config 901 permit 4AA toate 4BB toate
    - Permis de protocol src_add socket socket dest_add
    - "Toate" include toate prize, sau se pot utiliza numere de soclu

-sau -

  • # Config 901 permit orice orice orice toate toate
    -Permise de orice protocol cu orice adresa de pe orice soclu pentru a merge oriunde
  • Config # 0
  • # Config-dacă IPX de 901 în IPX FILTRU:
  • # Config lista de permis de 4aa 3 - "3" este serviciu de

-sau -

-sau -

  • # Config-dacă IPX de filtru - filtru aplicat la pachetele spre exterior

Numit liste:

  • Config # ip standard de listname
    -poate fi de IP sau IPX, standard sau extinse
    urmat de-a permis de a refuza sau de listă
  • Config # permite orice
  • Dacă # Config-ip în grup
    -utilizează lista de nume în loc de o listă numărul
    -permite pentru o sumă mai mare de listele de -

PPP SETUP:

  • # Config-dacă rp-pppoe
  • # Config-rp-pppoe, dacă chap pap
    -ordinea în care ele vor fi folosite
    -a încercat doar cu enumerate
    -dacă una nu reuşeşte, atunci conexiunea este închisă
  • Dacă # Config-ieşire
  • # Config-b Lab nume de utilizator 123456
    -nume de utilizator este router, care vor fi conectaţi la o pe asta
    -specificat doar routere se poate conecta

-sau -

  • # Config-rp-pppoe, dacă chap de gazdă ROUTER
  • # Config-rp-pppoe, dacă chap 123456
    -dacă acesta este setat pe toate routere, atunci oricare dintre ei se poate conecta la orice alte
    -toate pe acelaşi set de uşor de configurare

ISDN SETUP:

  • # Config-ISDN trece bază-5ess - determinată de telecomunicaţii
  • Config # serială 0
  • Dacă # Config-ISDN spid1 2705554564 - ISDN "Număr telefon" din linia 1
  • Dacă # Config-ISDN spid2 2705554565 - ISDN "Număr telefon" din linia 2
  • # Config-dacă PPP - sau ale HDLc, LAPD

DDR - 4 Paşi pentru înfiinţarea ISDN cu DDR Configurare trece

1. # Config-ISDN trece bază-5ess - se poate face la de configurare

2. Configurare rute statice
Config # ip traseu 123.4.35.0 255.255.255.0 192.3.5.5 - trimite trafic destinate 123.4.35.0 la 192.3.5.5
Config # traseu IP 192.3.5.5 255.255.255.255 bri0 - specifică cum, pentru a ajunge la 192.3.5.5 (prin bri0)

3. Configure
# Config-dacă adresa de IP 192.3.5.5 255.255.255.0
# Config-dacă nu de închidere
# Config-dacă rp-pppoe
# Config-dialer dacă-grup 1 - se aplică dialer-list la această
# Config-dialer dacă harta IP 192.3.5.6 nume-Lab b 5551212
conecta la laboratorul de la b-5551212, cu IP 192.3.5.6, dacă există interesant de trafic
pot folosi, de asemenea, "şir de caractere 5551212 dialer" în loc dacă nu există decât o singură router pentru a se conecta la

4. Specificaţi interesant de trafic
Config # dialer-list 1 IP permite orice
-sau -
# Config-dialer lista 1 lista de 101 de IP - utilizarea de lista ca lista de Dialer

5. Alte Opţiuni
# Config-dacă ţineţi-coada de 75 - coada de 75 de pachete, înainte de a forma
# Config-dialer dacă pragul de încărcare-125, fie
-înainte de încărcare necesare doua linie este adus,
- "125" este orice număr de 1-255, în cazul în care sarcina este x/255% (adică 125/255 este de aproximativ 50%)
-puteţi verifica de în, afara, sau, fie

# Config-dialer dacă este inactiv timp de expirare-180
-determină cât de mult timp pentru a rămâne inactiv înainte de sesiunea de încheiere a
-implicit este de 120

Cadru de configurare:

  • Config # serială 0
  • # Config-dacă - Cisco în mod implicit, se poate modifica pentru a ietf
  • # Config-cadru, Cisco - Cisco, implicit, de asemenea, ANSI, q933a
  • Config-dacă latime de banda # 56
  • # Config-dacă de serie 0.100 punct-la-punct - subinterface
  • # Config-dacă adresa de IP 122.1.1.1 255.255.255.0
  • # Config-cadru, dlci-100
    -hărţi de dlci la
    -pot adăuga şi / sau de IETF de la sfârşitul
  • # Config-dacă de serie 1.100 multipunct
  • # Config-dacă nu invers-ARP - se transformă de pe IARP; bun de a face
  • # Config-cadru, harta IP 122.1.1.2 48 ietf
    hărţi de IP-o la un dlci (48 în acest caz)
    -dacă este necesar IARP este oprit
    -ietf şi sunt opţionale
  • # Config-cadru, harta IP 122.1.1.3 54

SHOW COMENZI

  • Arată - toate listele de pe router
  • Arată CDP - CDP holdtime de timp şi
  • Arată CDP intrare * - aceeaşi ca şi viitoare
  • Arată CDP vecini detaliu - cu detalii de vecinul de IP a adăuga şi versiune IOS
  • Arată CDP vecini - id-ul, locale de holdtime, capacitate, platforma portid
  • Arată CDP - int a lor şi să ruleze CDP
  • Arată CDP trafic - CDP pachetele trimise şi primite
  • Arată controlere de serie 0 - DTE sau de statutul de DCE
  • Arată-Dialer - număr de ori Dialer şir a fost atins, alte statistici
  • Arată flash - în fişierele flash
  • Arata-cadru lmi - lmi statistici
  • Arata-cadru harta - harti statice şi dinamice pentru
  • Arata-cadru - şi lui dlci
  • Arată istoria - comenzi introduse
  • Arată gazdele - conţinutul de gazdă de masă
  • Arată int f0/26 - statistici de f0/26
  • Arată 0 - arăta statistici de 0
  • Arata de IP - ip de configurare a comuta
  • Arată Access-liste - Access-comuta de pe listele de
  • Arata de IP a - ip de configurare a
  • Arată protocoale IP - protocoale de rutare şi cronometre
  • Arata ip traseu - Afişează tabelul de rutare IP
  • Arată IPX - acelaşi, doar IPX
  • Arată IPX interfeţe - timpul perioadei anchetei de reexaminare şi info fiind trimise şi primite, IPX adrese
  • Arată IPX traseu - IPX rute în tabelul de
  • Arată IPX servere SAP tabel
  • Arată IPX trafic - timpul perioadei anchetei de reexaminare şi info
  • Arată ISDN activă - numărul cu statut activ
  • Arată starea ISDN - arată dacă sunt SPIDs valabil, dacă este conectat
  • Adresa mac-Arata-tabel - conţinutul dinamic de masă
  • Arată protocoale - rutate de protocoale şi interfeţe de net_addresses
  • Arată rulează-config - măsură de greutate fişier de configurare
  • Arată sesiuni - de conexiuni prin la dispozitivul la distanţă
  • Arata de pornire-config - nvram fişier de configurare
  • Arată terminal - istoria arată dimensiunea
  • Arată portbagaj A / B - portbagaj starea de port 26/27
  • Arată versiunea - IOS info, uptime, adresa de comutator
  • Arată VLAN - toate configurat VLAN's
  • Arata-VLAN de membru - VLAN misiuni
  • Arată vtp - vtp fişiere de configurare

Catalizator COMENZI
Pentru nativi IOS - nu CatOS

SWITCH ADRESA:

  • Config # Adresa de IP 192.168.10.2 255.255.255.0
  • # Config-de IP a gateway-ul implicit 192.168.10.1 duplex mode:
  • Config # 0 / 5 - "fastethernet" de 100 Mbps porturi
  • Dacă # Config-duplex complet - de asemenea, jumătate | Auto | full-flux-control

Trecerea MODE:

  • # Config-modul de comutare magazin-şi-înainte - de asemenea, liber-fragment

Adresa MAC fişiere de configurare:

  • Config # mac-adresă-tabel permanentă aaab.000f.ffef e0 / 2 - mac numai acest lucru va pe acest port
  • Config # mac-adresă-tabel static, limitat aaab.000f.ffef e0 / 2 e0 / 3
    3-port pot doar trimite pe portul pe care 2 cu mac
    -foarte restrictiv
  • Config-port sigur dacă # max-mac-conta 5 - permite doar 5 adrese MAC mapată la acest port

Reţele VLAN:

  • Configurare VLAN # 10 nume de FINANŢE
  • Config # 0 / 3
  • Config-dacă reţeaua VLAN # statică de membru-10 portbagaj LINK-URI:
  • # Config-dacă de pe portbagaj - de asemenea, de pe | Auto | de dorit | nonegotiate
  • # Config-dacă nu-VLAN portbagaj 2
    2 VLAN-elimină de la portbagaj port
    -în mod implicit, toate reţele VLAN sunt stabilite pe un trunchi de port

    Configurarea VTP:

  • Config # şterge vtp - ar trebui să se facă înainte de a adăuga o reţea
  • Config # vtp - este implicit de asemenea, şi transparente de client
  • Config # vtp domeniu Camp - numele nu contează, doar ca toate trece de utilizare aceeaşi
  • Config # vtp 1234 - limitată
  • Config # vtp pruning permite - limitele vtp emisiunilor de a trece de numai afectate
  • Config # vtp pruning dezactiva FLASH actualizare:
  • # Config copie tftp: / / 192.168.5.5/configname.ios opcode - "opcode" pentru upgrade de IOS, "nvram" de pornire pentru configurare

Şterge de pornire de configurare:

  • Config # nvram şterge

PIN-ul de rupere de vize

02 iulie 2008 în bancar şi EFTPoS

Mai jos este un articol recent am găsit. Acest una dintre cele mai complete Descrierile de Valoare tocat.

Am crezut că am să-l reproduc aici pentru meu locale de referinţă.

Ca s-au făcut comentarii cu privire la gramatica utilizate în original, am corectat unele dintre erorile evidente în acelaşi timp menţinând în contextul materialul original.

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

--- Original ----

Cuvânt înainte
Ai mai întreb ce s-ar întâmpla dacă ai pierdut de credit sau debit şi găseşte-l pe cineva. Ar fi această persoană să aibă posibilitatea de a retrage numerar de la un bancomat ghicitul, cumva, Mai mult decât atât, dacă ai fi fost cineva care constată lui te-ar încerca să ghicesc şi să ia şansa de a obţine unele de bani? Desigur, răspunsul la ambele întrebări ar trebui să fie "nu". Acest lucru nu se face cu cea de-a doua întrebare, este o chestiune de Am alăturat încercaţi să răspundeţi la prima întrebare.

Toate informaţiile utilizate pentru acest lucru este public şi poate fi găsit în mod liber Restul este o chestiune de şi de programare, astfel, să putem afla şi au de distractie. Eu nu au evidenţiat nici secretele. Mai mult, scopul (şi de acest lucru este de a demonstra că algoritmi sunt încă suficient de puternici pentru a furniza suficient Ştim cu toţii nu este

Acest lucru analize, una din cele mai comune algoritmi, folosite de multe carduri de debit) şi încearcă să afle cum este rezistent la atacurile ghicitul. Prin "ghicită" Eu nu zic aleatoare a alege un şi Incerc-o într-un bancomat. Este bine cunoscut faptul că în general, ne sunt prezentate trei studii clinice pentru a intra în dreptul ATM-uri, dacă nu am ţine de Ca este de patru cifre de mult timp este uşor de a deduce că şansa de aleatoare pentru un ghicitul este de 3 / 10000 = 0.0003, se pare suficient de scăzut pentru a fi în siguranţă; ai nevoie de ea înseamnă să-ţi pierzi mai mult de trei mii de ori ( sau de a pierde mai mult de trei mii de carduri în acelaşi timp:) până când există o şansă rezonabilă de a pierde

Ce nu-mi înţelege prin "ghicită" a fost rupere de dat, astfel încât orice puteţi imediat să ştiu asociate Prin urmare, acest document de studii în care această posibilitate, analiza de şi de a propune o metodă de În final ne da un instrument care pune în aplicare de şi prezenta rezultatele estimate despre sansa de a sparge sistemul. Reţineţi că, atâta timp cât alte legate de algoritmi (alte formate, cum ar fi IBM, validare de semnături, cum ar fi sau CVC) sunt similare cu aceeaşi analiză se poate face obţinerii de aproape aceleaşi rezultate şi concluzii.



Unul dintre cele mai comune algoritmi este Valoare Clientul este dat un cod PIN şi o Codificat în este o perioada de patru cifre numărul, numit Acest număr este o semnătura criptografică a şi date legate de Când un utilizator intra lui / ei la ATM-uri citeşte encrypts şi trimite toate aceste informaţii la o centrală de computer. Există un proces se calculeaza de client introdus şi criptografice cu un Procesul este, comparativ cu stocate în dacă acestea se potrivesc cu centrale de calculator revine la ATM-uri de autorizare pentru Vezi mai în detaliu.

De descriere a poate fi găsit în două documente legate de la pagina anterioară. În rezumat, în aceasta constă criptare de 8 octeţi (64 biţi) şir date, numit Transformată Parametru (TSP), cu (DEA) în Cod Rezerva Mod (BCE) folosind o cheie secretă pe 64 biţi. De este derivat de la iesire din de criptare, care este un şir de octeţi 8. Cele patru cifre ale (de la stânga la dreapta) să corespundă cu primele patru cifre zecimale (de la stânga la dreapta) din datele de ieşire de la atunci când consideră ca fiind o hexazecimal 16 de caractere (16 x 4 biţi = 64 biţi) şir de caractere. Dacă nu există patru cifre zecimale între hexazecimal de 16 caractere atunci este completat luate (de la stânga la dreapta) şi caractere non zecimal decimalizing-le prin utilizarea de conversie A-> 0, B-> 1, C-> 2, D -> 3, E-> 4, F-> 5. Iată un exemplu:

De iesire de la 0FAB9CDEFFE7DCBA

0975

Strategia de a evita decimalization sar de caractere până la ora patru cifre zecimale sunt găsite (care se întâmplă să fie aproape de toate de ori aşa cum vom vedea mai jos) este foarte inteligent, pentru că evită orice subiectivism un important în distribuţia de cifre care s-a dovedit a fi fatale pentru alte sisteme, cu toate că impactul pe acest sistem ar fi mult mai mici. Vezi de asemenea, o problemă legată nu se aplică la

De TSP, vazut ca o hexazecimal 16 de caractere (64 biţi) şir de caractere, este format (de la stânga la dreapta), cu 11 cifre de la dreapta PAN exclude ultimele cifre (verifica cifre), o cifră de la 1 la 6 care selecteaza cheie de criptare secretă şi, în final, cele patru cifre din Iată un exemplu:

PAN: 1234 5678 9012 3445
Selector cheie: 1
2468

TSP: 5678901234412468

Evident, problema de rupere constă în găsirea de secrete pentru cheie criptare Metoda pentru că este de a face un "brute force" cheie de căutare de spaţiu. Reţine că aceasta nu este singura metodă, unul ar putea încerca să găsească o slăbiciune la DEA, mulţi au încercat, dar acest standard de vechi este încă în largă utilizare (fost înlocuit acum de AES şi totuşi). Acest lucru demonstrează, este suficient de robustă, astfel încât "brute force" este singura metodă viabilă din punct de vedere (există unele atacuri mai bine, dar nu practică în cazul nostru, pentru un rezumat vezi LASEC memoria de murdare şi pentru detalii, a se vedea Biham & Shamir 1990, Biham & Shamir 1991, Matsui 1993, Biham & Biryukov 1994 şi Heys 2001).

Cheia selectorul de cifre, foarte probabil a fost introdusă pentru a acoperi posibilitatea de a o cheie de compromis. În acest caz, ele au doar de a emite carduri de noi, folosind un alt selector cheie. Mai vechi carduri pot fi înlocuite cu altele noi, sau pur şi simplu de ATM-uri pot scrie un nou mod transparent (corespunzător la noua cheie şi păstrarea acelaşi data viitoare clientul utilizează lui / ei Pentru a agita de toţi utilizatorii ar trebui să fie întrebat PINS lor de a schimba, cu toate acestea, ar fi jenant pentru de a explica motivul, deci foarte probabil ca nu le-ar face o astfel de cerere.

Pregătirea de


Brute force "Un criptare constă în a cunoaşte un TSP cu posibil, folosind toate cheile de criptare şi compara obţinute de fiecare cunoscut cu Atunci când un meci este de ne-am găsit un candidat cheie. Dar cât de multe avem cheile pentru a încerca? După cum am spus mai sus de cheie este de 64 de biţi lung, aceasta ar însemna că trebuie să încercaţi 2 ^ 64 chei. Cu toate acestea acest lucru nu este adevărat. De fapt numai 56 de biţi sunt eficiente în pentru că una chei de biţi (de cel mai puţin semnificativ) din fiecare octet rezervat a fost ca un istoric de control pentru alţii; în practică cele 8 biţi (câte unul pentru fiecare din cele 8 octeţi) sunt ignorate.

Prin urmare, cheie spaţiu constă din 2 ^ 56 chei. Dacă am încerca toate aceste chei va vom găsi una şi doar un singur meci, corespunzătoare banca secrete cheie? Sigur nu. Noi va obţine mai multe chei de potrivire. Aceasta este din cauză că este doar o mică parte (un sfert) din iesire. Mai mult de este degenerated pentru că unele din cifre (cele între 0 şi 5 după ultima, vazut de la stânga la dreapta, cifre între 6 şi 9) pot veni de la un sir de zecimal sau hexazecimal decimalized de la o cifră de iesire. Astfel de multe chei va produce un ieşire care randamentele la acelaşi potrivire

Atunci de ce putem face pentru a găsi adevărata cheie printre cei alte fals pozitive cheile? Pur şi simplu ne-am pentru a cripta un al doilea diferite TSP, de asemenea, cunoscut cu dar numai folosind chei de candidatul care a dat un rezultat pozitiv de potrivire cu primul pereche. Cu toate acestea nu există nici o garanţie nu vom ajunge din nou multe "pozitive false", împreună cu adevărat cheie. Dacă este aşa, vom avea nevoie de a treia pereche, repetaţi procesul şi aşa mai departe.

Înainte de a începe să nostru de ne-am să ştiu cât de multe vom avea nevoie de perechi. Pentru că avem de a calcula pentru o aleatoare iesire la un randament de potrivire a doar de sansa. Există mai multe modalităţi de a calcula acest număr şi eu aici va utiliza o abordare simplă uşor de înţeles, dar care necesită unele de fond în probabilitate.

O poate fi întotdeauna considerată ca raport favorabil de cazuri de posibile cazuri. În problema noastră numărul de cazuri posibile este dat de de 16 elemente (de la 0 la F hexazecimal cifre) într-un grup de 16 dintre ei (hexazecimal de 16 cifre ale iesire). Aceasta este data de 16 ^ 16 ~ 1.8 * 10 ^ 19 de curs care coincide cu 2 ^ 64 (diferite numere de 64 de biţi). Acest set de numere pot fi separate în cinci categorii:

Cei cu cel puţin patru cifre zecimale (0 la 9) printre hexazecimal de 16 cifre (0 la F) din iesire.

Cei exact cu doar trei cifre zecimale.

Numai cele cu exact două cifre zecimale.

Cei cu exact o singură cifră zecimală.

Aceste cifre zecimale, fără (toate între A şi F).

Să calcula cât de multe numere se încadrează în fiecare categorie. Dacă vom eticheta hexazecimal de 16 cifre ale X1 de ieşire ca să x16 atunci ne putem etichetare în primele patru cifre zecimale din orice număr dat de prima categorie ca Xi, Xj, şi XK XL. Numărul de combinaţii diferite cu acest profil este dat de produs 6 i-1 * 10 * 6j-i-1 * 10 * 6k-j-1 * 10 * 6 LK-1 * 10 * 1616 în cazul în care l-6 ' S venit de la numărul de posibilităţi pentru un sir de la A la F, de 10 de venit de la posibilităţile de la 0 la 9 cifre, şi la 16 vine de la posibilităţile de la 0 la F cifre. Acum, cu numărul total din prima categorie este pur şi simplu dat de acest produs summation de peste I, J, K, L de la 1 la 16, dar cu i <j <k <l. Dacă veţi face unele matematica de lucru se va vedea asta este egal cu produsul dintre 104 / 6 cu peste summation i de la 4 la 16 de (i-1) * (i-2) * (i-3) * 6i-4 * 16 16-i ~ 1.8 * 1019.

Analogously numărul de cazuri în cea de-a doua categorie este data de peste summation i, j, k de la 1 la 16, cu i <j <k a produsului 6i-1 * 10 * 6j-i-1 * 10 * 6k-j -1 * 10 * 616-k pe care puteţi să-l lucreze pentru a fi 16! / (3! * (16-13)!) * 103 * 6 13 = 16 * 15 * 14 / (3 * 2) * 103 * 613 = 56 * 104 * 613 * 1015 ~ 7.3. În mod similar, pentru a treia categorie, avem peste summation i, j de la 1 la 16, cu i <j din 6 i-1 * 10 * 6j-i-1 * 10 * 616-j, care este egal cu 16! / (2! * (16-14)!) * 102 * 614 = 2 * 103 * 615 * 1014 ~ 9.4. Din nou, pentru a patra categorie avem de peste summation i de la 1 la 16 din 6i-1 * 10 * 616-i = 160 * 615 * 1013 ~ 7.5. Şi, în final, suma de cazuri, în cea de-a cincea categorie este dat de de şase elemente (de la A la F cifre) într-un grup de 16, care este, 616 ~ 2.8 * 1012.

Sper că ai urmat în calculele de până la acest punct, de o parte este greu de facut. Acum, ca o dovadă că totul este în regulă, puteţi suma de numărul de cazuri în 5 categorii si-l vezi este egal cu numărul total de cazuri posibile am calculat înainte. Nu a operaţiunilor utilizând 64 de biţi sau de numere de rotunjire (pentru flotantă) sau prea plin (de intregi) erori nu va lasa sa ajung exact la rezultat.

Pana acum ne-am calculat numărul de cazuri posibile în fiecare din cele cinci categorii, dar noi suntem interesaţi în a obţine numărul de cazuri favorabile, în loc. Este foarte uşor să obţină de la acesta din urmă a fost ca asta este doar de stabilire a combinaţie a celor patru cifre zecimale (sau de cifre necesare hexazecimal dacă nu există patru cifre zecimale) din lăsându-le în loc de liberă. În practică, aceasta înseamnă de 10 de cotitură în formula de mai sus în 1 şi de volumul necesar de 6 în 1 a lui, dacă nu există patru cifre zecimale. Asta este, avem de a împărţi primul rezultat de 104, cea de-a doua 103 de * 6, al treilea de 102 * 62, cel de-al patrulea unul de 10 * 63 şi cea de-a cincea unul de 64. Apoi, numărul de cazuri favorabile, în cinci categorii sunt de aproximativ 1.8 * 1015, 1012 * 1.2, 2.6 * 1011, 1010 * 3.5, 2.2 *, respectiv, 109.

Acum avem posibilitatea de a obţine ceea ce este pentru o iesire la un meci de de sansa. Trebuie să adăugaţi cele cinci numere de cazuri favorabile şi împărţi la numărul total de cazuri posibile. Făcând aceasta vom obţine că este foarte aproximativ 0.0001 sau de una din zece mii. E ciudat de bine rotunjite acest rezultat? Nu la toate, au doar o privire la numerele de mai sus am calculat. Prima categorie domină de mai multe ordine de magnitudine de numărul de cazuri favorabile şi posibil. Acest lucru este destul de intuitiv ca se pare clar că este foarte puţin probabil nu au patru cifre zecimale (10 şansele de pe 16 cifre) între 16 hexazecimal cifre. Am văzut anterior că relaţia dintre numărul de cazuri favorabil posibil şi, în prima categorie a fost de o divizie de 10 ^ 4, ca rezultat al nostru în cazul în care p = 0,0001 vine de la.

Scopul nostru pentru toate aceste calcule, a fost de a afla cât de multe perechi avem nevoie pentru a transporta o de succes "brute force Acum avem posibilitatea de a calcula numărul de aşteptat "pozitive false", într-o primă căutare: ea va fi a numărului de studii clinice de ori de pentru un singur aleatoare fals pozitive, şi anume, nu * p unde t = 2 ^ 56, de dimensiunea cheie spaţiu. Aceasta se ridică la aproximativ 7.2 * 10 ^ 12, un număr destul de mare. De aşteptat număr de "pozitive false" în cea de-a doua de căutare (limitată la pozitiv găsit cheile de la prima căutare) va fi (t * p) * p, pentru o treime va fi de căutare ((t * p) * p) * p şi aşa mai departe. Astfel, pentru n căutări de aşteptat număr de "pozitive false" va fi t * p ^ n.

Putem obţine numărul de căutări necesară pentru a aştepta doar un fals pozitive prin care exprimă ecuaţia t * p ^ n = 1 şi pentru rezolvarea n. Deci n este egal cu în baza de p de 1 / T, care prin proprietăţi de logaritm-l randamentelor n = log (1 / t) / log (p) ~ 4.2. Deoarece nu ne putem face o căutare pe fragmente, este convenabil de a ridica acest număr. 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 for these other platforms) as it happens with the x86 processor.

Update

Here is an article where these techniques may have been used.

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

Financial Transaction Processing

Jul 02, 2008 in Banking and EFTPoS

I have been recently working inside one of the larger Banks in .
Through this work I have been looking at the controls and surrounding the of and cards around the Asia Pacific.

I get perform many and systems assessments.
Over the years I have always considered the of the as one of the key considerations.

Until yesterday I had never seen an or . I think some scripted use of these tools could be very interesting.
The site hziggurat29.com

Many of the other tools on this site are also very unique and worth a look.
Big thanks to ziggurat29 for providing such awesome tools.

As many of these sites are of this nature are difficult to find and often seem to vanish over the years, I have chosen to replicate the the from this page and provide local copies on the files.
It is worth periodically visiting the ziggurat29 site every now and again to see if any additional tools have been posted.

One of the more extraordinary files is the Atalla