Manager de parole

Manager de parole - Vaultwarden pe server propriu

Fiecare dintre noi accesează numeroase site-uri sau aplicații online care necesită autentificarea utilizatorilor pe bază de parolă. Dacă cu ani în urmă o persoana obișnuită avea câteva conturi pe care le număra pe degete, odată cu pătrunderea tehnologiei în toate activitățile curente ale omului s-a ajuns ca fiecare să aibă o multitudinea de conturi pe website-uri/aplicații, ca de exemplu pentru:

  • conturile de email
  • website-urile/aplicațiile furnizorilor de utilități (apa, gaz, energie electrica etc);
  • website-urile/aplicațiile furnizorilor de telecomunicații (telefonie fixa, telefonie mobila, acces internet etc);
  • aplicații bancare, de investiții financiare;
  • conturi de social-media;
  • aplicații ale serviciilor de transport alternativ, ale centrelor comerciale etc.
  • magazine online
  • și altele

Soluția la îndemână este folosirea unor combinații utilizator(email)/parolă pentru toate conturile și memorarea acestor credențiale. Această practică este una periculoasă deoarece dezvăluirea combinației unice poate duce la posibilitatea accesării tuturor acelor conturi de către persoane rău voitoare.

Probabil vă gândiți că este greu ca aceste date de autentificare să ajungă cunoscute de altcineva sau, mai rău, publice, dar nu este deloc așa, ele putând ajunge la dispoziția terților prin:

  • vizualizarea lor în momentul introducerii de către utilizatorul real în formularele legitime;
  • în urma unor atacuri de phishing în care utilizatorul introduce datele într-un formular ilegitim pus la dispoziție de atacator;
  • în urma atacurilor cibernetice asupra furnizorilor de servicii unde utilizatorul are cont și extragerea acestor date de autentificare și eventual ulterior publicare lor (gratuit sau contra cost);
  • alte situații.

Așadar, este necesar să folosim date de autentificare unice pentru fiecare aplicație/serviciu/cont pe care îl folosim. Cum numărul acestora este unul semnificativ, nu vom putea memora toate aceste informații ci suntem nevoiți să le notăm pentru folosiri ulterioare.

Este clar că nu le vom nota pe o hârtie/carnețel/agendă ci le vom stoca în mod electronic. Probabil unii consideră ca pur și simplu salvarea lor într-un fișier text în clar rezolvă problema, dar dacă aplicăm aceasta variantă există riscul real ca fișierul respectiv sau datele din el sa fie vizibile și pentru terți.

Este necesar să folosim o soluție de stocare a acestor date (corespondența utilizator/parola) într-un mod sigur. Pentru acest lucru putem folosi o soluție numită manager de parole.

Majoritatea browserelor web au integrată aceasta funcție, salvând local aceste parole și completând automat câmpurile de autentificare de pe website-uri. Unele dintre browsere permit conectarea prin serviciile de cloud proprii pentru stocare date și sincronizarea acestora pe mai multe dispozitive (calculatoare, telefoane etc). Dezavantajul este că se pot folosi aceste date doar în browserul respectiv, nu și în alte aplicații.

Pentru posesorii de telefoane inteligente există soluții de management de parole oferite de către producătorul software-ului care rulează pe ele (ex: Android – Google Password Manager) care permit completarea automata a câmpurilor de autentificare în aplicațiile instalate pe dispozitiv.

Pentru majoritatea utilizatorilor aceste software de gestionare a parolelor sunt suficiente, important este să se asigure că folosesc parole complexe (combinații de cifre, litere minuscule, majuscule cu lungime suficientă), folosesc parole unice pentru fiecare cont/serviciu unde se autentifică, asigura protecția fizică a dispozitivelor informatice (telefon/calculator etc) astfel încât persoane străine sa nu aibă acces la parolele memorate, modifică frecvent parolele folosite în funcție de importanța contului și iau măsuri de îndată ce află ca un anumite serviciu a fost ținta unui atac cibernetic care a dus la diseminarea informațiilor.

Eu folosesc managerul de parole Bitwarden pentru ca:

Puteți folosi această aplicație dacă vă faceți cont pe bitwarden.com sau bitwarden.eu sau, cel mai important, vă găzduiți propriul server. Eu această soluție am ales: să creez o mașină virtuală în care să rulez propriul server pentru gestionarea parolelor folosind Vaultwarden.

Am adăugat o nouă înregistrare de tip A in serverul DNS pentru host.domeniu.tld (înțelegeți voi că numele este doar de exemplu, nu e cel real) care să pointeze spre IP-ul corect și am făcut setările de rutare necesare.

Pentru acest lucru am creat o nouă mașină virtuală pe serverul propriu pe care rulez Proxmox, am bootat o imagine de Debian 12 și am parcurs installer-ul în mod text, selectând opțiunile necesare (bineînțeles cu encrypted lvm), iar, apoi am bootat în noul sistem de operare proaspăt instalat.

Primul pas a fost să instalez Docker:

apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update 

apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Vom rula vaultwarden în docker, alături de caddy pe post de reverse proxy. Am creat directorul /docker în care am pus fișierul docker-compose.yml cu următorul conținut:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      DOMAIN: "https://host.domeniu.tld"  
      SIGNUPS_ALLOWED: "true"
    volumes:
      - /vw-data:/data

  caddy:
    image: caddy:2
    container_name: caddy
    restart: always
    ports:
      - 80:80  
      - 443:443
      - 443:443/udp 
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-config:/config
      - ./caddy-data:/data
    environment:
      DOMAIN: "https://host.domeniu.tld"  
      EMAIL: "email@domeniu.tld"                 
      LOG_FILE: "/data/access.log"

Atenție la numele domeniului și la adresa de email.

În același director vom pune și fișierul Caddyfile cu următorul conținut:

{$DOMAIN} {
  log {
    level INFO
    output file {$LOG_FILE} {
      roll_size 10MB
      roll_keep 10
    }
  }
  tls {$EMAIL}
  encode zstd gzip
  reverse_proxy vaultwarden:80 {
       header_up X-Real-IP {remote_host}
  }
}

Vom porni instanțele de docker:

cd /docker
docker compose up -d

La această prima rulare caddy se va ocupa și de obținerea certificatului SSL pentru HTTPS de la Let’s Encrypt și vom putea accesa apoi în browser url-ul https://host.domeniu.tld

La prima accesare a interfeței web vom da click pe Create account și vom completa datele cerute (adresa de email, numele, parola master și un indiciu pentru a ne aminti parola master în caz că am uitat-o.

Acordați o atenție deosebită alegerii parolei master, ea fiind cea care permite accesul la toate celelalte date. Recomand să bifați și opțiunea de a verifica dacă parola aleasă se găsește în listele de parole care au făcut obiectul furturilor de date de pe diferite site-uri.

După crearea contului, ne putem autentifica cu adresa de email și parola master și vom fi întâmpinați de panoul de control care arată ca în imaginea următoarea:

Aici vom putea importa parolele pe care le avem deja salvate în browsere sau în alte programe de gestionare a parolelor. Ni se recomandă să instalăm și extensia de browser necesară.

O funcție utilă o consider posibilitatea organizării parolelor în directoare, putând astfel să le grupăm după anumite criterii.

În meniul din partea stângă, la unelte (Tools) observăm că avem disponibil un generator de parole cu ajutorul căruia putem genera parole sau nume de utilizator care sa îndeplinească anumite criterii privind lungimea, caracterele utilizate etc. Exista chiar și un istoric al parolelor generate astfel încât dacă am uitat să salvăm o anumită parolă o putem identifica aici după data/ora generării.

Datele pot fi exportate din acest manager de parole în format json sau csv, funcție utilă în cazul în care ulterior vom dori să migrăm la alta soluție de gestionare a parolelor.

În meniul rapoarte putem verifica dacă parolele au fost expuse în urma unor atacuri cibernetice, dacă avem conturi la care folosim aceeași parolă, dacă avem parole de complexitate redusă etc, toate aceste lucruri ajutându-ne să gestionăm parolele în mod corect pentru o securitate crescută.

Dacă până aici am discutat despre serverul propriu, să trecem la aplicațiile standalone care se conectează la acest server.

Astfel, pentru Windows eu folosesc aplicația portabilă, în care, la prima accesare, selectăm în partea de jos unde implicit este bitwarden.com opțiunea self-hosted și ne este solicitat să introducem adresa serverului, câmp în care introducem host.domeniu.tld definit anterior și unde deja rulează serverul nostru pentru gestionarea parolelor.

Urmează să ne autentificăm cu adresa de email, dar trebuie să fim atenți sa fie selectată opțiunea self-hosted:

După autentificarea reușită vom avea acces la parolele existente și vom putea adăuga parole noi.

În același mod funcționează și extensiile pentru browser precum și aplicația pentru mobil, definim serverul propriu și ne autentificăm.

Datele sunt sincronizate local și criptate astfel încât pot fi folosite și atunci când serverul este inaccesibil. Totuși, dacă faceți logout din aplicație sau extensie browser, nu va puteți reautentifica cât timp serverul nu este funcțional.

Articole asemanatoare:

Bogdan Turcanu

Bogdan Turcanu

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

This site uses Akismet to reduce spam. Learn how your comment data is processed.