Securitate DIY: cum să-ți creezi propriul generator de parole puternice

Securitate DIY: cum să-ți creezi propriul generator de parole puternice

Crezi că parolele generate de programe terțe sunt cu adevărat aleatorii și sigure? Iată cum să-ți construiești propriul generator de parole aleatorii pentru a obține parole imposibil de spart.

Știi regulile de bază. Nu folosi parole simple, precum ziua ta de naștere sau numele iguanei tale de companie. Nu folosi aceeași parolă peste tot.

În schimb, creează o parolă lungă, aleatorie și unică pentru fiecare site. Nu încerca asta fără ajutor—fă rost de un manager de parole.

După ce îți stochezi în siguranță toate parolele în manager, înlocuiește orice parolă slabă sau duplicat cu parole unice, pe care nimeni nu le-ar putea ghici—nici măcar tu nu le-ai putea memora. Un hacker ar putea ghici o parolă banală precum Fido sau ar sparge-o prin atac de forță brută, dar nimeni nu ar putea ghici ceva de genul P5$e?KqA+unh$RhPTlp1, iar spargerea prin forță brută ar dura o veșnicie.

Întrebarea este: de unde obții acele parole aleatorii? Aproape fiecare manager de parole include un generator de parole aleatorii, iar unele sunt mai bune decât altele. De cele mai multe ori, însă, programul folosește un algoritm pseudo-aleator.

În teorie, un hacker care cunoaște algoritmul și are acces la una dintre parolele generate ar putea recrea toate parolele generate ulterior, deși ar fi dificil. Dacă ești suficient de paranoic, ai putea dori să-ți creezi propriul generator de parole aleatorii. Te putem ajuta să-l construiești folosind Microsoft Excel.

Unele sarcini de securitate depășesc domeniul „fă-o singur”. Nu vei construi, de pildă, propria rețea globală de servere VPN. Nici nu vei realiza un antivirus artizanal.

Proiectul de față nu necesită cunoștințe avansate, ci doar abilitatea de a urma instrucțiuni. Nu folosește macrocomenzi sau opțiuni sofisticate, ci funcții obișnuite din Excel, deși unele s-ar putea să fie noi pentru tine.

Reține că acest proiect se bazează pe algoritmul pseudo-aleator din Excel. Diferența e că atacatorii pot studia generatorul de parole integrat în orice manager de parole disponibil public, dar nu au acces la utilitarul tău făcut acasă.

O avertizare: ai nevoie de o versiune actuală de Excel ca proiectul să funcționeze. Office 2019 sau o versiune ulterioară, inclusiv Office 365, este suficientă.

Dacă nu ești sigur ce versiune ai, Microsoft explică cum să obții cea mai recentă versiune.

Mai întâi, haide să construim scheletul care va susține generatorul de parole, adică etichetele și componentele statice. Pune elementele exact în celulele indicate de mine, altfel formulele nu vor funcționa.

După ce totul funcționează, îl poți personaliza după bunul plac.

În celula B1, introdu „Generator de parole aleatorii” sau orice titlu dorești pentru proiect. Începând cu celula B3 și mai jos, tastează etichetele „Lungime”, „Majuscule”, „Minuscule”, „Cifre” și „Caractere speciale”.

Ocolește celula B8, introdu „Apasă F9 pentru regenerare” în B9 și „PAROLĂ” în B10.

În celula C3, introdu 20 sau lungimea dorită implicită a parolei.

În cele patru celule de sub ea, tastează „Da”. În celula D4, introdu alfabetul majuscul, iar în D5, alfabetul minuscul.

În D6, introdu cele 10 cifre, iar în D7, caracterele speciale pe care vrei să le folosești. Sfat util: pune cifra 0 la final, nu la început, altfel Excel o va elimina. Scheletul complet ar trebui să arate cam așa:

Odată ce scheletul este pregătit, e momentul să adăugăm formulele. Mai întâi, trebuie să construim un șir de text care să includă toate caracterele pe care le-am ales.

Formula pentru aceasta pare puțin complicată, dar e doar lungă. O introduci în celula D8:

=IF(C4=”Da”,D4,””) &IF(C5=”Da”,D5,””) &IF(C6=”Da”,D6,””) &IF(C7=”Da”,D7,””)

& operator leagă șiruri de text. Formula spune că, pentru fiecare dintre cele patru seturi de caractere, dacă celula adiacentă conține „Da”, include acel set de caractere.

Dacă celula conține orice altceva în afară de „Da” (indiferent de majuscule sau minuscule), nu-l include. Încearcă acum: schimbă unele valori din „Da” în „Nu”, „Ba” sau „Hmmm”. Șirul de caractere disponibile se va ajusta automat.

La început am folosit o tehnică simplistă pentru a crea o parolă aleatorie. Am pornit de la o formulă care extrage un caracter aleatoriu din șirul din celula D8:

=MID(D8,RANDBETWEEN(1,LEN(D8)),1)

Această formulă îi spune Excel-ului să genereze un număr aleatoriu între 1 și lungimea șirului și să returneze caracterul de la acea poziție. Am repetat-o de 40 de ori pentru a obține un șir de 40 de caractere aleatorii.

Apoi am folosit LEFT() pentru a scurta rezultatul la lungimea dorită. Nu era elegant, iar formula finală avea 1.329 de caractere!

Mulțumită unor trucuri în Excel descoperite între timp, formula mea actuală pentru generarea parolei e mult mai scurtă, doar 78 de caractere:

=TEXTJOIN(“”,TRUE,MID(D8,RANDBETWEEN(SIGN(ROW(INDIRECT(“1:”&C3))),LEN(D8)),1))

Dacă vrei doar să folosești direct această formulă, fără să te întrebi cum funcționează, nicio problemă! Copiaz-o în celula C10.

Vezi o parolă aleatorie care se schimbă de fiecare dată când apeși F9 pentru recalculare, ca prin magie.

Vrei să știi de ce funcționează această formulă aparent complicată? Te pot ajuta cu explicații.

Mai întâi însă, o mărturisire: nu știu dacă e cea mai bună metodă pentru ce am realizat. Am experimentat până a funcționat.

S-ar putea să existe o soluție mai elegantă.

Mai întâi, întâlnește funcția TEXTJOIN(). Această funcție puțin cunoscută primește ca intrare un tablou (array) de valori și le combină într-un singur șir de text.

Este o adiție relativ recentă, disponibilă minim în Office 2019 sau Microsoft 365. Înainte de tablou, are doi parametri: un delimitator pentru separarea valorilor și o opțiune adevărat/fals care indică dacă ignoră valorile goale.

Încearc-o astfel: pe un registru nou, tastează câteva nume în coloana A, rândurile 1–5 și introdu această formulă în celula B1:

=TEXTJOIN(“***”, TRUE, A1:A5)

Celula B1 afișează numele din A1–A5 ca un singur șir de text, cu trei asteriscuri între ele. Iată un alt exemplu.

=TEXTJOIN(” and “,TRUE,ROW(A1:A9))

Poți ghici ce face? Intervalul A1:A9 e un tablou, iar ROW() returnează un alt tablou cu numerele de la 1 la 9. TEXTJOIN le lipește într-un șir, cu „ and „ între ele. Poți folosi această tehnică și pentru a procesa liste de numere în alte moduri.

Nu avem nevoie de o listă de numere. Trebuie doar ca Excel să extragă un caracter aleatoriu de un număr dat de ori.

Din nou, această formulă extrage un singur caracter aleatoriu:

=MID(D8,RANDBETWEEN(1,LEN(D8)),1)

Ca să faci Excel să ruleze funcția de opt ori, trebuie să înlocuiești cifra 1 (care definește limita minimă a intervalului de numere aleatorii) cu o formulă care returnează un tablou cu opt valori de 1.

Funcția SIGN() returnează 1 pentru orice număr pozitiv, iar astfel convertim un tablou de numere crescătoare într-un tablou de 1. Apoi folosim TEXTJOIN() pentru a combina rezultatele.

Această formulă generează o parolă de opt caractere formate din caractere aleatorii luate din șirul din D8:

=TEXTJOIN(“”,TRUE,MID(D8,RANDBETWEEN(SIGN(ROW(1:8)),LEN(D8)),1))

Mai aproape de final! În loc de intervalul 1:8, vrem un interval de la 1 până la valoarea din C3, care definește lungimea parolei.

Funcția INDIRECT() preia un șir de text care descrie celule și îl transformă într-o referință. Cu aceasta, formula e completă. Iată-o din nou:

=TEXTJOIN(“”,TRUE,MID(D8,RANDBETWEEN(SIGN(ROW(INDIRECT(“1:”&C3))),LEN(D8)),1))

Mai stai puțin, se poate și mai simplu! Să revenim asupra formulei care unește seturile de caractere alese. Era plictisitoare prin cele patru instrucțiuni IF aproape identice.

TEXTJOIN() poate simplifica și acest pas. Înlocuiește formula din D8 cu aceasta:

=TEXTJOIN(“”,TRUE,IF(C4:C7=”Da”,D4:D7,””))

Primele ghilimele goale indică lipsa unui delimitator, iar TRUE înseamnă ignorarea textelor goale. Instrucțiunea IF verifică celulele C4:C7 și, dacă valoarea e „Da”, returnează celula corespunzătoare din D4:D7.

Generatorul de parole funcționează complet în acest moment. Dacă ești mulțumit de rezultat, felicitări: ai reușit!

Dacă vrei, îi poți îmbunătăți aspectul și funcționalitatea. De exemplu, dă clic dreapta pe litera D din antetul coloanei D și alege Ascunde din meniu, ca să nu mai vezi lista de seturi de caractere și calculele intermediare.

De obicei vrei să stabilești limite minimă și maximă pentru lungimea parolei. În plus, dacă introduci altceva decât un număr în câmpul Lungime, formula nu funcționează.

Putem rezolva asta. Dă clic pe celula C3 (cea care definește lungimea), accesează fila Date din panglică, apoi Deschide Instrumente de date și selectează Validare date.

În fereastra care apare, în lista Allow alege Număr întreg. Debifează opțiunea Ignoră spațiile goale și setează Minimul la 8 și Maximul la 64.

Când totul arată ca în captura de ecran, dă clic pe fila Mesaj de intrare. Ca mesaj de intrare scrie „Introdu o lungime de la 8 la 64”.

Copiază acest text în clipboard și lipește-l în câmpul Mesaj de eroare de pe fila Alerte eroare, apoi apasă OK. Acum, când dai clic pe celula Lungime, primești un mesaj de instrucțiuni, iar în caz de eroare, un mesaj informativ.

Ești gata pentru o ultimă ajustare? Dă clic în celula C4, imediat la dreapta etichetei „Majuscule”.

În panglică, accesează din nou fila Date și alege Validare date. În lista Allow selectează Listă, debifează Ignoră spațiile goale, dă clic în caseta Sursă și tastează „Da,Nu” fără ghilimele.

În fila Mesaj de intrare, debifează Afișează mesaj de intrare. În fila Alertă eroare tastează „Da sau Nu” ca mesaj de eroare și apasă OK. Apoi copiază această celulă în cele trei de sub ea.

Gata! Acum cele patru celule acceptă doar valorile Da sau Nu.

Mai mult, fiecare a primit o listă derulantă care-ți permite să alegi una dintre aceste valori.

Acum poți fi creativ și să adaugi formatări pentru ca generatorul să arate mai atractiv. Alege fonturi, culori și ajustează design-ul până când aplicația ta arată grozav.

În final, protejează foaia astfel încât să nu ștergi din greșeală o formulă introducând date în celula greșită.

Selectează celulele C3:C7 (adică celula Lungime și cele patru celule Da/Nu), dă clic dreapta și alege Formatare celule. În fila Protecție debifează opțiunea Blocată și apasă OK.

Mergi la fila Revizuire din panglică și alege Protejează foaia. Apasă OK în dialog pentru a accepta setările; nu vrei să pui parolă, ci doar să previi erorile. Salvează rezultatul final!

Sunt un expert în Excel încă de dinainte ca Google Sheets să existe. Poate chiar înainte de apariția Google!

Știu însă că mulți preferă Google Sheets, așa că l-am încercat să mă asigur că proiectul merge și acolo.

Am urmat instrucțiunile mele și în Sheets și am descoperit că totul funcționează perfect, până la formula care afișează un caracter aleatoriu.

Totuși, F9 nu generează un caracter nou. Pentru a forța reîmprospătarea, trebuie să apeși F5 (refresh pagina) sau să schimbi valoarea oricărei celule. E incomod, dar merge.

Am schimbat mesajul din prompt în „Apasă F5 pentru regenerare”.

Am observat o altă diferență: formula principală nu funcționa în Sheets și returna doar un caracter aleatoriu.

Pentru ca Sheets să gestioneze calculele pe matrici, a trebuit să înfășor formula existentă cu ArrayFormula(). Astfel, în Sheets, formula de generare a parolei devine:

=ArrayFormula(TEXTJOIN(“”,TRUE,MID(D8,RANDBETWEEN(SIGN(ROW(INDIRECT(“1:”&C3))),LEN(D8)),1)))

Dacă ai înlocuit formula din D8 cu varianta cu TEXTJOIN() pentru a uni seturile de caractere, va trebui să o înfășori și pe ea cu ArrayFormula().

Nu voi intra în detalii aici, dar am re-creat regulile de validare a datelor și am ascuns coloanele nedorite. Dacă folosești Sheets în loc de Excel, proiectul funcționează în continuare.

Fie că ai folosit varianta de bază a acestui tabel sau ai aplicat tot felul de îmbunătățiri, acum ai un generator de parole creat de tine.

E adevărat că Excel folosește un generator pseudo-aleator, dar poți adăuga și tu un plus de aleatoriu aruncând un zar și apăsând F9 de atâtea ori înainte să accepți parola.

Iar dacă un hacker ar încerca să reverse-engineereze un generator de parole dintr-un manager folosit de milioane, utilitarul tău individual nici măcar nu-l interesează. Ai reușit!

Pentru mai multe sfaturi despre parole, citește 3 trucuri simple pentru a memora parole puternice.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top