Erfarenhet av att använda Rutoken-teknik för att registrera och auktorisera användare i systemet (del 3)

God dag!

I föregående del Vi har framgångsrikt skapat vårt eget certifieringscenter. Hur kan det vara användbart för våra syften?

Med hjälp av en lokal certifieringsmyndighet kan vi utfärda certifikat och även verifiera signaturer på dessa certifikat.

När certifieringsmyndigheten utfärdar ett certifikat till en användare använder den en speciell certifikatbegäran Pkcs#10, som har filformatet '.csr'. Denna begäran innehåller en kodad sekvens som certifieringsmyndigheten vet hur man tolkar korrekt. Begäran innehåller både användarens publika nyckel och data för att skapa ett certifikat (en associativ array med data om användaren).

Vi kommer att titta på hur man tar emot en begäran om ett certifikat i nästa artikel, och i den här artikeln vill jag ge certifieringsmyndighetens huvudkommandon som hjälper oss att slutföra vår uppgift på backend-sidan.

Så först måste vi skapa ett certifikat. För att göra detta använder vi kommandot:

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

ca är openSSL-kommandot som relaterar till certifieringsmyndigheten,
-batch - avbryter bekräftelseförfrågningar när ett certifikat genereras.
user.csr — begäran om att skapa ett certifikat (fil i .csr-format).
user.crt - certifikat (resultat av kommandot).

För att detta kommando ska fungera måste certifieringsmyndigheten konfigureras exakt enligt beskrivningen i föregående del av artikeln. Annars måste du dessutom ange platsen för certifieringsmyndighetens rotcertifikat.

Certifikatverifieringskommando:

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

cms är ett openSSL-kommando som används för att signera, verifiera, kryptera data och andra kryptografiska operationer med openSSL.

-verify - i det här fallet verifierar vi certifikatet.

authenticate.cms - en fil som innehåller data signerad med certifikatet som utfärdades av föregående kommando.

-inform PEM - PEM-format används.

-CAfile /Users/……/demoCA/ca.crt - sökväg till rotcertifikatet. (utan detta fungerade inte kommandot för mig, även om sökvägarna till ca.crt skrevs i openssl.cfg-filen)

-out data.file — Jag skickar den dekrypterade datan till filen data.file.

Algoritmen för att använda en certifieringsmyndighet på backend-sidan är följande:

  • Användarregistrering:
    1. Vi får en begäran om att skapa ett certifikat och spara det i filen user.csr.
    2. Vi sparar det första kommandot i den här artikeln i en fil med filtillägget .bat eller .cmd. Vi kör den här filen från kod, efter att tidigare ha sparat begäran om att skapa ett certifikat till filen user.csr. Vi får en fil med certifikatet user.crt.
    3. Vi läser filen user.crt och skickar den till klienten.

  • Användarbehörighet:
    1. Vi tar emot signerad data från klienten och sparar den i filen authenticate.cms.
    2. Spara det andra kommandot i den här artikeln i en fil med filtillägget .bat eller .cmd. Vi kör den här filen från koden, efter att tidigare ha sparat de signerade data från servern i authenticate.cms. Vi får en fil med dekrypterad data data.file.
    3. Vi läser data.file och kontrollerar denna data för giltighet. Exakt vad som ska kontrolleras beskrivs i den första artikeln. Om uppgifterna är giltiga anses användarauktorisering vara framgångsrik.

För att implementera dessa algoritmer kan du använda vilket programmeringsspråk som helst som används för att skriva backend.

I nästa artikel kommer vi att titta på hur man arbetar med Retoken-plugin.

Tack för din uppmärksamhet!

Källa: will.com

Lägg en kommentar