Experiența utilizării tehnologiei Rutoken pentru înregistrarea și autorizarea utilizatorilor în sistem (partea 3)

Bună ziua!

În partea anterioară am creat cu succes centrul nostru de certificare. Ce beneficii poate avea acesta pentru scopurile noastre?

Cu ajutorul centrului de certificare local, putem emite certificate și, de asemenea, putem verifica semnăturile acestor certificate.

Atunci când un certificat este emis unui utilizator, centrul de certificare folosește o cerere specială pentru emiterea certificatului Pkcs#10, care are formatul de fișier ‘.csr’. Această cerere conține o secvență codificată pe care centrul de certificare știe cum să o analizeze corect. Cererea conține atât cheia publică a utilizatorului, cât și datele necesare pentru crearea certificatului (un array asociativ cu informațiile despre utilizator).

Modul în care obținem cererea pentru emiterea certificatului îl vom analiza în articolul următor, dar în acesta vreau să prezint comenzile principale ale centrului de certificare, care ne vor ajuta să ne îndeplinim sarcina pe partea de backend.

Așadar, mai întâi trebuie să creăm certificatul. Pentru aceasta, folosim comanda:

openssl ca -batch -in user.csr -out user.crt

ca — comanda openSSL, care se referă la centrul de certificare,
-batch — anulează cererile de confirmare la formarea certificatului.
user.csr — cererea de creare a certificatului (fișier de format .csr).
user.crt — certificatul (rezultatul obținut al comenzii).

Pentru ca această comandă să funcționeze, centrul de certificare trebuie să fie configurat exact așa cum este descris în partea anterioară a articolului. Altfel, va trebui să specificați suplimentar locația certificatului rădăcină al centrului de certificare.

Comanda de verificare a certificatului:

openssl cms -verify -in authenticate.cms -inform PEM -CAfile /Users/……/demoCA/ca.crt -out data.file

cms — comanda openSSL care este folosită pentru semnarea, verificarea, criptarea datelor și alte operațiuni criptografice prin openSSL.

-verify — în acest caz, efectuăm verificarea certificatului.

authenticate.cms — fișierul care conține datele semnate de certificat, care a fost emis de comanda anterioară.

-inform PEM — se folosește formatul PEM.

-CAfile /Users/……/demoCA/ca.crt — calea către certificatul rădăcină. (fără aceasta comanda mea nu a funcționat, deși căile către ca.crt sunt specificate în fișierul openssl.cfg)

-out data.file — trimitere a datelor decriptate în fișierul data.file.

Algoritmul de aplicare a autorității de certificare pe partea de backend este următorul:

  • Registrarea utilizatorului:
    1. Primim cererea pentru generarea certificatului și o salvăm în fișierul user.csr.
    2. Salvăm prima comandă din acest articol în fișier cu extensia .bat sau .cmd. Rulăm acest fișier din cod, după ce am salvat cererea pentru generarea certificatului în fișierul user.csr. Obținem fișierul cu certificatul user.crt.
    3. Citim fișierul user.crt și îl trimitem către client.

  • Autentificarea utilizatorului:
    1. Primim datele semnate de la client și le salvăm în fișierul authenticate.cms.
    2. Salvăm a doua comandă din acest articol în fișier cu extensia .bat sau .cmd. Rulăm acest fișier din cod, după ce am salvat datele semnate de la server în authenticate.cms. Obținem fișierul cu datele decriptate data.file.
    3. Citim data.file și verificăm aceste date pentru validitate. Ce anume trebuie verificat este descris în primul articol. Dacă datele sunt valide, autentificarea utilizatorului este considerată reușită.

Pentru implementarea acestor algoritmi se poate folosi orice limbaj de programare utilizat pentru scrierea backend-ului.

În articolul următor vom analiza cum să lucrăm cu pluginul Rutoken.

Vă mulțumesc pentru atenție!

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster