Erfaring med at bruge Rutoken teknologi til registrering og autorisering af brugere i systemet (del 3)

God dag!

I forrige del Vi har med succes skabt vores eget certificeringscenter. Hvordan kan det være nyttigt til vores formål?

Ved at bruge en lokal certificeringsmyndighed kan vi udstede certifikater og også verificere signaturer på disse certifikater.

Når der udstedes et certifikat til en bruger, bruger certificeringsmyndigheden en speciel certifikatanmodning Pkcs#10, som har filformatet '.csr'. Denne anmodning indeholder en kodet sekvens, som certificeringsmyndigheden ved, hvordan man parser korrekt. Anmodningen indeholder både brugerens offentlige nøgle og data til oprettelse af et certifikat (et associativt array med data om brugeren).

Vi vil se på, hvordan man modtager en anmodning om et certifikat i den næste artikel, og i denne artikel vil jeg give de vigtigste kommandoer fra certificeringsmyndigheden, der vil hjælpe os med at fuldføre vores opgave på backend-siden.

Så først skal vi oprette et certifikat. For at gøre dette bruger vi kommandoen:

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

ca er openSSL-kommandoen, der vedrører certificeringsmyndigheden,
-batch - annullerer bekræftelsesanmodninger ved generering af et certifikat.
user.csr — anmodning om at oprette et certifikat (fil i .csr-format).
user.crt - certifikat (resultat af kommandoen).

For at denne kommando kan fungere, skal certificeringsmyndigheden konfigureres nøjagtigt som beskrevet i den foregående del af artiklen. Ellers skal du yderligere angive placeringen af ​​certificeringsmyndighedens rodcertifikat.

Certifikatbekræftelseskommando:

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

cms er en openSSL-kommando, der bruges til at signere, verificere, kryptere data og andre kryptografiske operationer ved hjælp af openSSL.

-verify - i dette tilfælde verificerer vi certifikatet.

authenticate.cms - en fil, der indeholder data, der er signeret med certifikatet, der blev udstedt af den forrige kommando.

-inform PEM - PEM format bruges.

-CAfile /Users/……/demoCA/ca.crt - sti til rodcertifikatet. (uden dette virkede kommandoen ikke for mig, selvom stierne til ca.crt blev skrevet i openssl.cfg-filen)

-out data.file — Jeg sender de dekrypterede data til filen data.file.

Algoritmen for at bruge en certificeringsmyndighed på backend-siden er som følger:

  • Brugerregistrering:
    1. Vi modtager en anmodning om at oprette et certifikat og gemme det i filen user.csr.
    2. Vi gemmer den første kommando i denne artikel i en fil med filtypenavnet .bat eller .cmd. Vi kører denne fil fra kode efter tidligere at have gemt anmodningen om at oprette et certifikat til filen user.csr. Vi modtager en fil med user.crt-certifikatet.
    3. Vi læser user.crt-filen og sender den til klienten.

  • Brugerautorisation:
    1. Vi modtager signerede data fra klienten og gemmer dem i filen authenticate.cms.
    2. Gem den anden kommando i denne artikel i en fil med filtypenavnet .bat eller .cmd. Vi kører denne fil fra koden, efter tidligere at have gemt de signerede data fra serveren i authenticate.cms. Vi modtager en fil med dekrypteret data data.file.
    3. Vi læser data.file og tjekker disse data for gyldighed. Hvad der præcist skal kontrolleres, er beskrevet i den første artikel. Hvis dataene er gyldige, betragtes brugerautorisation som vellykket.

For at implementere disse algoritmer kan du bruge et hvilket som helst programmeringssprog, der bruges til at skrive backend.

I den næste artikel vil vi se på, hvordan man arbejder med Retoken-pluginnet.

Tak for din opmærksomhed!

Kilde: www.habr.com

Tilføj en kommentar