Experience using the Rutoken technology for user registration and authentication within the system (part 3)

Goddag!

I den tidligere del Vi har med succes oprettet vores certifikatmyndighed. Hvordan kan den overhovedet være nyttig for vores formål?

Med hjælp fra en lokal certifikatmyndighed kan vi udstede certifikater og også verificere signaturen på disse certifikater.

Ved udstedelse af et certifikat til brugeren bruger certifikatmyndigheden en speciel anmodning om udstedelse af certifikat Pkcs#10, der har filformatet '.csr'. Denne anmodning indeholder en kodet sekvens, som certifikatmyndigheden ved, hvordan man korrekt parser. Anmodningen indeholder både brugerens offentlige nøgle og data til oprettelse af certifikatet (et asociativt array med brugerdata).

Hvordan man får en anmodning om udstedelse af certifikat, vil vi se på i den næste artikel, men i denne vil jeg give de grundlæggende kommandoer for certifikatmyndigheden, som vil hjælpe os med at udføre vores opgave på backend-siden.

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

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

ca — openSSL-kommandoen, der vedrører certifikatmyndigheden,
-batch — annullerer bekræftelsesforespørgsler ved oprettelse af certifikatet.
user.csr — anmodningen om oprettelse af certifikatet (fil med formatet .csr).
user.crt — certifikatet (det opnåede resultat af kommandoen).

For at denne kommando fungerer, skal certifikatmyndigheden være konfigureret præcist som beskrevet i den foregående del af artiklen. Ellers skal du angive placeringen af den rodfil, der tilhører certifikatmyndigheden.

Kommandoen til verifikation af certifikatet:

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

cms — openSSL-kommandoen, der bruges til at signere, verificere, kryptere data og andre kryptografiske operationer med openSSL.

-verify — i dette tilfælde udfører vi verifikationen af certifikatet.

authenticate.cms — filen, der indeholder de signerede data med certifikatet, der blev udstedt af den tidligere kommando.

-inform PEM — bruges til PEM-formatet.

-CAfile /Users/……/demoCA/ca.crt — stien til rodcertifikatet. (uden dette virkede kommandoen ikke, selvom stierne til ca.crt er angivet i filen openssl.cfg)

-out data.file — de dekrypterede data sendes til filen data.file.

Algoritmen for anvendelse af certifikatmyndigheden på backend-siden er som følger:

  • Registrering af bruger:
    1. Vi modtager en anmodning om at oprette et certifikat og gemmer det i filen user.csr.
    2. Vi gemmer den første kommando fra denne artikel i en fil med .bat eller .cmd som filendelse. Vi kører denne fil fra koden, efter at have gemt anmodningen om at oprette certifikatet i filen user.csr. Vi modtager filen med certifikatet user.crt.
    3. Vi læser filen user.crt og sender den til klienten.

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

Til implementering af disse algoritmer kan man bruge ethvert programmeringssprog, der anvendes til at skrive backend.

I den næste artikel vil vi undersøge, hvordan man arbejder med Retoken-plugin.

Tak for din opmærksomhed!

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster