Semnarea proiectului de macrocomandă cu semnătură digitală

VBA oferă un mecanism de securitate pentru securizarea proiectelor macro cu semnături digitale. Semnăturile digitale oferă un mijloc de a stabili proveniența proiectelor, ceea ce vă poate ajuta să decideți dacă aveți încredere în cod. Dacă aveți încredere în sursa codului, puteți deschide proiectul și rula codul. Dacă bănuiți că sursa sau informația este rău intenționată, puteți fie să evitați deschiderea proiectului, fie să deschideți proiectul cu codul dezactivat.

Același lucru este valabil și pentru alți oameni: dacă alții sunt preocupați de macrocomenzile dvs., este posibil să fie nevoie să semnați proiectele dvs. pentru ca alți oameni să știe de unde provin și cine le-a creat. După ce ați semnat proiectele, codul este disponibil pentru orice aplicație care v-a specificat ca sursă de încredere pentru proiecte macro. (Se presupune că utilizatorii au ales una dintre opțiunile Dezactivare în caseta de dialog Setări macro. Veți vedea cum să setați nivelul de securitate mai târziu, în secțiunea „Specificarea unei setări de securitate corespunzătoare”).

Următoarele secțiuni descrie ce sunt certificatele digitale, ce înseamnă ele în practică, cum le obțineți și cum le utilizați pentru a crea semnături digitale.

ÎNCREDEREA ÎNTR-UN PROGRAMATOR ESTE GLOBALĂ ÎN APLICAȚIILE VBA

Mecanismul de securitate VBA și lista certificatelor sunt partajate în domeniul aplicațiilor VBA de pe computer. Deci, dacă desemnați un programator VBA de încredere într-o aplicație, toate celelalte aplicații care acceptă securitatea VBA vor avea încredere și în acea sursă. De exemplu, dacă deschideți un document care conține cod în Word și alegeți să aveți încredere în sursa codului, Excel și Outlook vor avea încredere în acea sursă și vor deschide proiectele din acea sursă fără a vă solicita accesul la ele.

Ce este un certificat digital?

Un certificat digital este o bază de date criptată care identifică în mod unic titularul său. Este ca un permis de conducere, care oferă un nivel de încredere în care sunteți cine spuneți că sunteți și că codul dvs. este de încredere.

Utilizați certificatul dvs. digital pentru a crea o semnătură digitală pentru un proiect. Acest proiect poate fi un proiect document, un proiect șablon sau un supliment (add-in). Proiectul nu trebuie să conțină neapărat macrocomenzi, proceduri, formulare de utilizator, clase sau cod VBA pentru a vă semna, deși acestea sunt motivul obișnuit pentru semnarea unui proiect.

O semnătură digitală se aplică pentru un întreg proiect macro, de obicei un proiect de document sau un proiect tipărit. Nu puteți aplica o semnătură digitală doar unei părți a unui proiect – de exemplu, doar unui modul de cod sau unui formular de utilizator. Fiecare element de proiect macro din acel proiect macro - fiecare modul, formular de utilizator, clasă și referință - este acoperit de certificatul digital.

Dar semnăturile digitale, deși de obicei de încredere, au fost uneori compromise.

Obținerea unui Certificat Digital

Există trei tipuri de certificate digitale: cele pe care le creați singur („self-signed”), cele pe care le obțineți de la compania sau organizația dvs. și cele pe care le obțineți de la o autoritate comercială de certificare sau autoritate de certificare (CA).

Un certificat digital pe care îl creați dvs. este cea mai slabă formă de identificare și este de folos pentru persoanele de alături și celor care folosesc computerul dvs., în timp ce un certificat de la o autoritate de certificare comercială ar trebui să fie suficient de bun pentru utilizarea generală în lume. Codul autosemnat (Self-signed) va genera un avertisment de securitate dacă cineva deschide un fișier care conține acest cod. Aplicațiile Office nu vor permite rularea acestui cod pe alt computer decât pe cel pe care a fost creat certificatul.

Un certificat emis de compania dvs. se încadrează în gama de încredere: în multe cazuri, compania obține un certificat de la o certificare comercială care a stabilit că compania este de încredere. În cine alege să aibă încredere compania cu certificatul este o altă problemă și, de asemenea, introduce o altă legătură complicată în lanțul de încredere. Cu toate acestea, software-ul serverului, cum ar fi Windows Server, include servicii de autoritate de certificare independentă, care nu necesită un certificat de la o autoritate de certificare comercială, așa că ar trebui să fiți atent în ce certificate aveți încredere.

Crearea unui Certificat Digital propriu

Cel mai rapid și ușor mod de a obține un certificat digital este să îl creați singur. Este ușor, dar nu uitați că acest tip de certificare funcționează doar pe computerul pe care a fost creat certificatul. Deci, utilitatea sa este foarte limitată.

Pentru a înțelege cum funcționează certificatele digitale, probabil că veți dori să creați mai multe și să exersați cu ele pe fișierele de probă. Desemnând unele dintre fișierele dvs. ca provenind de la editori de încredere și lăsând altele ca nefiind de încredere, puteți obține o idee clară despre modul în care funcționează certificatele digitale fără a fi nevoie să vă confruntați cu cod suspect pe computerul dvs.

Pentru a deschide caseta de dialog Creare certificat digital - Create Digital Certificate în Windows 10 (sau 8),

  • pentru versiunea pe 32 bit a Office, deschideți în File Explorer:

C:\Program Files (x86)\Microsoft Office\root\office16\

  • pentru versiunea pe 64 bit a Office, deschideți în File Explorer:

C:\Program Files\Microsoft Office\root\office16\

și deschideți aplicația SELFCERT.EXE

În Windows 8, ca variantă, apăsați tasta Windows și tastați digital certificate. Apăsați Enter pe Digital Certificate for VBA projects.

Se va deschide formularul următor:

În Windows 7, alegeți Start > All Programs > Microsoft Office > Microsoft Office 2013 Tools > Digital Certificate For VBA Projects.

Sfat: Microsoft pare să deprecieze (elimine) auto-certificarea. Cu fiecare versiune nouă de Windows, găsirea instrumentului este tot mai dificilă. După cum vedeți, se fac mereu modificări, iar în Windows 10, chiar au ascuns programul. Nici funcția de căutare încorporată în Windows nu o mai poate localiza.

Tastați numele pentru certificat în caseta de text, apoi faceți clic pe butonul OK. Aplicația SELFCERT creează certificatul și îl instalează automat.

Puteți semna singur un certificat, dar Office permite o astfel de certificare de încredere doar în computerul în care a fost creat certificatul.

Obținerea unui Certificat Digital de la firma dvs.

A doua opțiune este să obțineți un certificat digital de la un server de certificate digitale al firmei dvs. Detaliile acestei proceduri variază de la companie la companie. Certificatele pe care compania le furnizează prin intermediul serverului său de certificare digitală sunt generate în același mod ca certificatele digitale distribuite de autoritățile de certificare comercială discutate în secțiunea următoare. Cu toate acestea, o companie distribuie certificatele dintr-un grup pe care l-a alocat, fără a fi nevoie să solicite autoritatea de certificare pentru fiecare certificat, după cum este necesar, sau să creeze certificatele de acord, fără a le obține de la o autoritate de certificare. Dar certificatul nu este atât de sigur. Un angajat rău intenționat poate să pară că este demn de încredere pentru a obține un certificat de companie pe care apoi să îl folosească incorect.

Obținerea unui Certificat Digital de la o Autoritate de Certificare Comercială

A treia dvs. alegere este să obțineți un certificat digital de la o autoritate de certificare comercială, precum:

Sunt disponibile mai multe tipuri de certificate, în funcție de ceea ce doriți să faceți. Dacă creați și distribuiți software, probabil veți dori să luați în considerare unul dintre certificatele destinate dezvoltatorilor.

Procedura de dovedire a identității dvs. variază în funcție de CA și de tipul de certificat dorit. În general, cu cât gradul de încredere al certificatului se dorește să fie mai mare, cu atât va trebui să furnizați mai multe dovezi. De exemplu, puteți obține un certificat de bază doar cu o adresă de e-mail verificabilă, dar este puțin probabil ca acest tip de certificare să facă oamenii inteligenți să aibă încredere în dvs. Alte tipuri de certificate necesită să apăreți personal în fața unei autorități de înregistrare cu documentație completă (cum ar fi pașaport, permis de conducere sau alte documente de identitate). Astfel de certificate inspiră în mod evident mai multă încredere.

Instalarea unui CERTIFICAT DIGITAL

După ce aveți un certificat digital, trebuie să îl instalați pentru ca Windows și aplicațiile care îl vor folosi să știe unde se află.

Pentru a instala un certificat digital, urmați acești pași (trebuie să fiți autentificat ca administrator pentru a vizualiza caseta de dialog Certificates):

1. În Windows 8 sau 10, de pe Desktop, apăsați tasta Windows și tastați certmgr.msc

Certificatele proprii sunt înregistrare automat

Programul Office SelfCert înregistrează automat certificatele create pe computer. Dacă ați creat un certificat digital pentru dvs., nu trebuie să îl mai instalați pe același computer.

În Windows 7, faceți clic pe butonul Start. În câmpul de Căutare programe și fișiere, tastați certmgr.msc

2. Când apare certmgr.msc în lista de programe, faceți clic pe acesta. Este posibil să vi se ceară permisiunea pentru a face acest pas. Acordați permisiunea făcând clic pe butonul Continuare. (Din acest moment, Windows 7 va lua o cale diferită și va afișa dialoguri diferite decât cele arătate aici.)

Va fi afișată caseta de dialog Certificates.

După cum puteți vedea, entitatea Certificat de incredere – test, are acordată o certificare de semnare a codului, așa cum este descris mai sus, în secțiunea „Crearea unui Certificat Digital propriu”.

3. Faceți clic pe folderul Editori de încredere (Trusted Publishers) din panoul din stânga al casetei de dialog Certificate.

4. Din meniul casetei de dialog Certificates, alegeți Action > All Tasks > Import. Se deschide Expertul de importare a certificatelor (Certificate Import Wizard).

Windows afișează o casetă de dia­log pentru a administra certificatele digitale.

5. Clic pe butonul Next pentru a localiza fișierul care va fi importat. Puteți face o căutare pe hard disk după fișiere care au extensiile.cer sau .crt.

6. Clic pe butonul Next pentru a afișa pagina Certificate Store.

7. Alegeți cum se va stoca certificatul:

  • Pentru ca Windows să stocheze automat fiecare certificat în depozitul de certificate implicit pentru tipul certificatului, selectați butonul de opțiune Automatically Select The Certificate Store Based On The Type Of Certificate.
  • Pentru a controla locația în care Windows să stocheze certificatele, selectați butonul de opțiune Place All Certificates In The Following Store. Pentru a specifica locația, faceți clic pe butonul Browse pentru a afișa caseta de dialog Select Certificate Store, prezentată în figura de mai jos. Alegeți locația (de exemplu, Personal) și faceți clic pe butonul OK. Pentru a specifica o anumită locație într-un depozit de certificate, bifați caseta de selectare Show Physical Stores, apoi faceți clic pe semnul plus (+) de lângă locația în cauză pentru a afișa subfolderele sale. Selectați dosarul dorit, apoi faceți clic pe butonul OK.

8. Faceți clic pe butonul Next pentru a termina configurarea procedurii de import. Se afișează caseta de dialog Completing The Certificate Import Wizard pentru a confirma alegerile pe care le-ați făcut.

9. Vizualizați alegerile, apoi faceți clic pe butonul Finish. Expertul de import de certificate importă certificatul și apoi confirmă că operațiunea a avut succes.

După ce ați importat certificatul, acesta apare în caseta de dialog Certificate la secțiunea corespunzătoare.

Exportul unui Certificat Digital

Este posibil să fie nevoie să exportați un certificat fie pentru a face o copie de siguranță, fie pentru a-l instala pe un alt computer.

Pentru securitate, nu trebuie să stocați certificatul digital pe hard disk după instalarea acestuia, deoarece acesta este un risc inutil de securitate.

Pentru a exporta un certificat, faceți clic dreapta pe acesta în caseta de dialog Certificate, apoi alegeți All Tasks > Export. Windows pornește Certificate Export Wizard, care realizează procesul de export al certificatului. Dacă alegeți să exportați cheia privată împreună cu certificatul, asigurați-vă că o protejați cu o parolă.

Ștergerea unui Certificat Digital

Pentru a elimina un certificat digital din Certificate Store al Windows, urmați acești pași:

  • Cu comanda certmgr.msc afișați caseta de dialog Certificates (urmați pașii 1 și 2 din secțiunea anterioară pentru instalarea unui certificat).
  • Faceți clic pe folderul din panoul din stânga care conține certificatul digital în cauză, apoi selectați certificatul pe care doriți să îl eliminați.
  • Faceți clic pe pictograma X roșie din bara de instrumente sau alegeți Action > Delete. Windows afișează o casetă de dialog care vă avertizează despre consecințele ștergerii certificatului digital și vă solicită să confirmați ștergerea. Figura de mai jos arată avertismentul pe care îl primiți atunci când eliminați un certificat al autorității de certificare (partea de sus) sau un certificat personal (jos). Faceți clic pe butonul Yes pentru a șterge certificatul.

Semnarea unui proiect Macro cu o semnătură digitală

După ce ați finalizat un proiect macro și l-ați pregătit pentru distribuție, îl puteți semna cu o semnătură digitală, astfel încât aplicațiile care utilizează un nivel ridicat de securitate să îl poată utiliza.

Pentru a semna digital un proiect macro, urmați acești pași:

1. În VBA Editor, navigați la documentul sau proiectul de șablon care conține proiectul macro pe care doriți să îl semnați.

2. Selectați proiectul în Exploratorul de proiecte.

3. Alegeți Tools > Digital Signature pentru a afișa caseta de dialog DIgital signature.

Dacă caseta de dialog Digital Signature afișează și certificatul cu care doriți să semnați în zona Sign As, faceți clic simplu pe butonul OK pentru a utiliza acel certificat.

4. Clic pe butonul Choose. Dacă aveți mai multe certificate, veți vedea o casetă de dialog Select Certificate. (Dacă aveți un singur certificat, veți vedea caseta de dialog Windows Security unde puteți confirma alegerea dvs. Apoi, trebuie să treceți la pasul 7.

5. Clic pe certificatul pe care doriți să îl utilizați pentru proiectul macro.

6. Clic pe butonul OK pentru a aplica certificatul selectat și închideți caseta de dialog Select Certificate.

7. Clic pe butonul OK pentru a închide caseta de dialog Digital Signature.

8. Clic pe butonul Save din bara de instrumente Standard, apăsați Ctrl + S sau alegeți Fișier> Salvare pentru a salva documentul sau proiectul șablon cu semnătura digitală aplicată acestuia.

Ștergerea unei semnături digitale a unui proiect macro

Pentru a elimina o semnătură digitală dintr-un proiect macro, urmați acești pași:

  1. În VBA Editor, navigați la proiectul de document sau șablon care conține proiectul macro.
  2. Selectați proiectul în Exploratorul de proiecte.
  3. Alegeți Tools > Digital Signatures pentru a afișa caseta de dialog Digital Signature.
  4. Faceți clic pe butonul Remove. Zonele de după eticheta Certificate Name vor afișa [No Certificate] pentru a indica faptul că proiectul nu mai are un certificat digital atribuit la aceasta.
  5. Faceți clic pe butonul OK pentru a închide caseta de dialog Digital Signature.

Puteți reaplica semnătura digitală proiectului oricând doriți, așa cum este descris mai sus.

Al cui este certificatul și ce înseamnă asta?

Când primiți un proiect semnat digital, veți dori probabil să aflați doar cine l-a semnat și ce tip de certificat digital a folosit. Pentru a vizualiza detaliile unui certificat digital, urmați acești pași:

  1. În VBA Editor, navigați la proiectul de document sau șablon care conține proiectul macro.
  2. Selectați proiectul în Exploratorul de proiecte.
  3. Alegeți Tools > Digital Signature pentru a afișa caseta de dialog Digital Signature.
  4. Pentru o certificare oficială (VeriSign sau alta), faceți clic pe butonul Details pentru a vedea informații despre sursă.

Dacă doriți să vizualizați detaliile unuia dintre propriile dvs. certificate, autosemnate, faceți clic pe butonul Choose din caseta de dialog Semnătura digitală, apoi faceți clic pe linkul Click Here To View Certificate Properties pentru a afișa caseta de dialog Certificate Details afișată în figura 19.10.

În caseta de dialog, pictograma Certificatului afișează un sigiliu de aur și o panglică albastră (ele inspiră încredere). Dacă există și un simbol Red X, înseamnă că proiectul în cauză nu poate fi de încredere.

Caseta de dialog Certificate Details are trei pagini:

  • Pagina General afișează informații de bază despre certificat: ce scop are certificatul, care este proprietarul, de către cine a fost eliberat și data expirării.
  • Pagina Details din caseta de dialog Certificate Details, conține specificații despre certificat. Faceți clic pe unul dintre câmpurile din listă pentru a-i afișa valoarea în caseta de text de mai jos.
  • Pagina Certification Path din caseta de dialog Certificate Details arată calea prin care certificatul a fost emis de la autoritatea emitentă către titularul curent. Pentru a verifica una dintre legăturile din lanț, selectați-o în caseta de listă Calea de certificare și faceți clic pe butonul View Certificate (dacă este activ). Veți vedea caseta de dialog Certificate Details pentru certificatul în cauză. Puteți urmări calea de certificare pentru acel certificat dacă alegeți sau faceți clic pe butonul OK pentru a respinge a doua (sau ulterioară) casetă de detalii a certificatului și a reveni la precedenta.