Criptarea transparentă a accesului la baze de date

Se știe că până în prezent nu există nicio modalitate de a proteja valorile stocate în tabelele bazei de date de acces de la accesul direct. Nu există o protecție este îndepărtată folosind dbRecowery tipuri de programe, sau impune restricții serioase privind performanța aplicațiilor care rulează cu baza de date și încă hacked, dar cu mare efort.







Iată avantajele metodei propuse:

  • Protecția este instalată și îndepărtată prin apăsarea unui buton
  • adăugați protecție la cod - adăugați o linie atunci când conectați baza de date și schimbați linia cu parola din cod (mai mult sau nimic de schimbat nu este necesar)
  • Nu poate fi eliminat de programe cum ar fi dbRecowery
  • Utilizarea sa aproape nu afectează performanța
  • puteți utiliza ADO sau DAO
  • Codul de protecție poate fi integrat într-un proiect VB (2 clase și 2 module)
  • Nu plătiți pentru programe și chei electronice.

Iată neajunsurile sale:

  • implementat sub forma de dll Active-X în Visual Basic 6 (nu a reușit să facă pe VBA)
  • funcționează numai pe baza datelor citite (scrierea nu este implementată)
  • funcționează sub WinXP; ar trebui să funcționeze sub 2k; sub 98 - nu funcționează (este necesar să se termine)

Despre proiectul de testare







  • data.mdb - o bază de date sigură cu două tabele și o interogare
  • user.mdb - DB cu formularul 'main' la care se extrag datele de la data.mdb folosind Protect.dll
  • Protect.dll - cauta data.mdb în același director în sine și returnează ADODB.Recordset de înregistrare trebuie să fie făcută folosind linia de comandă „regsvr32.exe [cale de a ta] \ Protect.dll“

Descrierea metodei de protecție

Această metodă se bazează pe utilizarea criptare transparentă. Prin această abordare, programul informat de date nu observă că datele sunt criptate. Cu alte cuvinte, atunci când bibliotecile ADODB ale programului nostru accesează un fișier de bază de date - ei văd cel mai frecvent fișier. Dar dacă programul altcuiva începe să lucreze cu aceste date, vede datele criptate. O abordare similară este folosită în Plicul HASP. Dar cu aceasta, întregul fișier este criptat, ceea ce reduce foarte mult performanța. Între timp, este suficient să criptați numai antetul bazei de date pentru a obține un nivel acceptabil de protecție.

Pentru a lucra cu Access DB, ADODB este în prezent utilizat. Mai întâi, este creată o conexiune la fișierul bazei de date (ADODB.Connection). Când sunt setați toți parametrii de conectare, se va apela metoda Open, care deschide baza de date. În același timp, primul H10000 octeți din fișierul bazei de date. Aici, protecția este declanșată. Noi suntem aceștia H10000 octeți este pre-criptat. Programul blochează apelurile API la funcția ReadFile, citește antetul bazei de date și returnează datele decriptate.

Pentru a intercepta apelurile API la funcția ReadFile, trebuie să faceți următoarele:

Funcția de înlocuire are același set de argumente ca și originalul ReadFile. Astfel, după ce am primit controlul în mâinile noastre, știm unde și cât să numărăm și unde să punem rezultatul. Când este apelată funcția de înlocuire, se întâmplă următoarele:

Dezvoltarea proiectului







Articole similare

Trimiteți-le prietenilor: