Mini cheie hasp de la orice dispozitiv USB, articole, internet @ mania

Mini cheie HASP de pe orice dispozitiv USB

În articol vom vorbi despre implementarea protecției hardware și software bazate pe orice unitate flash. Dar trebuie avut în vedere că metodologia propusă nu este un concurent serios pentru cheile hardware existente, cum ar fi HASP HL ​​(cu firmware actualizat) de la Alladin [1]. Sentinel, Rockey și alții ...






V-ați întrebat vreodată de ce ar putea să se potrivească o unitate flash convențională? Mulți oameni vor răspunde imediat: "... Ce fel de întrebare? Desigur, pentru stocarea informațiilor ...". Dar, acest lucru este privit din punctul de vedere al laicului. Și dacă te uiți la el cu "ochii unui computer"? Evident, acest proces nu este ușor, este protocolul USB, tranzitorii, identificatori și GUID (Global Identifier Identifier) ​​...

Un pic de teorie.
HASP (hardware împotriva pirateriei software) - un sistem de protecție a programului (software-ului) și a echipamentului împotriva utilizării ilegale. Baza majorității cheilor HASP este, de obicei, un cip personalizat cu software unic, cum ar fi tableta iBUTTON, distribuită pe scară largă, de la Dallas Semiconductor în automatizarea ușilor.

Principiul protecției este că, în timpul procesului de pornire, programul realizează o chestionare a unei chei conectate la computer prin intermediul I2C, LPT, PCMCIA sau USB. Dacă cheia răspunde "corect", programul este executat în mod normal. În caz contrar, blochează accesul la anumite funcții sau pur și simplu nu pornește. Astfel, orice program protejat constă direct în programul în sine și în mecanismele cheie de verificare. Sarcina acestor mecanisme este verificarea prezenței cheii, obținerea identificatorului său unic, citirea sau modificarea conținutului memoriei încorporate.

Cerințe preliminare pentru protecția software-ului. Soluții existente
Principalele criterii pentru utilizarea cheilor hardware sunt:
  • prețul cheilor utilizate ar trebui să fie incomparabil mai mic decât prețul software-ului
  • durata lungă de viață a produsului software
  • algoritmul de interacțiune individuală
Primul criteriu asigură destul de ușor: dezvoltarea intensivă a unor noi tipuri de memorie, cum ar fi PRAM *, prețul SSD media (Solid State Disk) a variat de la 5 $. Astfel, dezvoltatorul poate distribui produsul la cheie, fără a compromite bugetul.






* PRAM (memorie de acces randomizat Phasechange) - memorie cu acces aleatoriu, bazată pe tranzițiile de fază ale substanței - calcogenide, având o viteză de acces de aproximativ 10 ns, care este comparabilă cu memoria RAM modernă.

Al doilea este relevant pentru produsele originale și populare care conțin algoritmi unici care necesită o protecție minimă. Al treilea este determinat de dezvoltatorul însuși. Cu cât cunoașterea utilizatorului este mai mică, cu atât este mai mare puterea criptografică. La urma urmei, cunoașterea algoritmului face posibilă crearea unui program - un emulator care să îndeplinească pe deplin toate funcțiile unui dispozitiv hardware.

Există mai multe variante de chei: nici o memorie internă, protejat de memorie, cu built-in ceas TIMP REAL cu built-in protocoale de rețea.

În același timp, în plus față de soluțiile propuse de articol încorporat ca o componentă, există produse, cum ar fi StarForce, și HASP Envelope de la compania Alladin, permițând în etapa de vânzare pentru a adăuga protecție la unitățile de schimb cheie în programe gata făcute, integrarea lor în codul produsului. Dar ei au costuri asociate cu costul de achiziționarea de chei HASP ei înșiși, al căror cost variază de la 25 la 50 de dolari fiecare (în funcție de modelul de comutare) și software pentru instalare (de la 200 $), în timp ce valoarea programului protejat de la 20 $.

Instrumente de dezvoltare și depanare de software
După cum știți, metoda de protecție HASP se bazează pe legarea programului la o parte sau la o combinație de parametri unici ai cheii și hardware-ului. Deoarece vom folosi un dispozitiv USB, a priori este suficient să luăm în considerare seria și ID-ul unității flash **, deoarece acestea nu se schimbă atunci când sunt formatate.

** Nu toate unitățile flash au acest număr, de exemplu, unele jetoane de la LG

Pentru a lucra, aveți nevoie de următoarele:
  • Miercuri Borland Delphi 5-7
  • Dependență Walker utilitate de la Visual C ++ 6.0 [2]
În mediile NT / XP, informațiile despre dispozitive sunt furnizate de biblioteca de sistem standard SetupApi.dll. De asemenea, vom folosi. Luați în considerare funcția sa exportat folosind Dependență Walker, și pentru dezvoltator comoditate încorpora în componente (denumite în continuare, acesta va fi folosit ca baza mecanismului de protecție)

pentru utilizarea lor - vom face conexiunea lor dinamică în componentă

atunci când creați o componentă, inițializați un sondaj USB:

Să arătăm în practică cum funcționează acest lucru. Vom construi componenta într-un program deja [3] și vom activa modul "mini HASP" în meniu (vezi figura)


După introducerea unității flash, apare evenimentul DBT_DEVICEARRIVAL

am citit numărul de serie, ID-ul și GUID-ul


pentru ca programul să știe că avem "dispozitivul" de care avem nevoie în orice moment și nu doar în momentul eliminării, vom folosi funcția SetupDiGetClassDevsA a aceleiași biblioteci - setapi.dll

introducem cel mai simplu algoritm de protecție bazat pe funcția BlockInput din biblioteca - user32.dll

Sursa completă a componentei și a monitorului de testare sunt disponibile prin [4].

Mini cheie hasp de la orice dispozitiv USB, articole, internet @ mania







Trimiteți-le prietenilor: