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.
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ă
* 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]
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 (contra) Mini cheie hasp de la orice dispozitiv USB, articole, internet @ mania](https://images-on-off.com/images/158/minihaspklyuchizlyubogoustroystvausbstat-253a43b2.jpg)