Zkušenosti s aplikací technologie Rutoken pro registraci a autorizaci uživatelů v systému (část 3)

Dobrý den!

V předchozí části jsme úspěšně vytvořili svůj certifikační úřad. Jak nám může být vlastně užitečný?

Pomocí místního certifikačního úřadu můžeme vydávat certifikáty a také provádět ověření podpisu na těchto certifikátech.

Při vydání certifikátu uživateli certifikační úřad používá speciální žádost o vydání certifikátu Pkcs#10, která má formát souboru '.csr'. Tato žádost obsahuje zakódovanou sekvenci, kterou certifikační úřad ví, jak správně zpracovat. Žádost obsahuje jak veřejný klíč uživatele, tak údaje pro vytvoření certifikátu (asociativní pole s informacemi o uživateli).

Jak získat žádost o vydání certifikátu, se podíváme v příštím článku, ale v tomto chci uvést základní příkazy certifikačního úřadu, které nám pomohou splnit naši úlohu na straně backendu.

Takže na začátku musíme vytvořit certifikát. K tomu použijeme příkaz:

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

ca — příkaz OpenSSL, který se vztahuje k certifikačnímu úřadu,
-batch — zruší potvrzovací dotazy při vytváření certifikátu.
user.csr — žádost o vytvoření certifikátu (soubor formátu .csr).
user.crt — certifikát (výsledný produkt příkazu).

Aby tento příkaz fungoval, musí být certifikační úřad nakonfigurován přesně tak, jak bylo popsáno v předchozí části článku. V opačném případě bude nutné dodatečně uvést umístění kořenového certifikátu certifikačního úřadu.

Příkaz pro ověření certifikátu:

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

cms — příkaz OpenSSL, který se používá pro podepisování, ověřování, šifrování dat a další kryptografické operace pomocí OpenSSL.

-verify — v tomto případě provádíme ověření certifikátu.

authenticate.cms — soubor, který obsahuje podepsaná data certifikátem, který byl vydán předchozím příkazem.

-inform PEM — používá se formát PEM.

-CAfile /Users/……/demoCA/ca.crt — cesta k kořenovému certifikátu. (bez tohoto mi příkaz nefungoval, i když jsou cesty k ca.crt uvedeny v souboru openssl.cfg)

-out data.file — dešifrovaná data posílám do souboru data.file.

Algoritmus použití certifikačního úřadu na straně backendu je následující:

  • Registrace uživatele:
    1. Získáme žádost o vytvoření certifikátu a uložíme ji do souboru user.csr.
    2. Uložíme první příkaz tohoto článku do souboru s příponou .bat nebo .cmd. Spustíme tento soubor z kódu, předtím uložíme žádost o vytvoření certifikátu do souboru user.csr. Získáme soubor s certifikátem user.crt.
    3. Přečteme soubor user.crt a odešleme ho klientovi.

  • Autentizace uživatele:
    1. Získáme podepsaná data od klienta a uložíme je do souboru authenticate.cms.
    2. Uložíme druhý příkaz tohoto článku do souboru s příponou .bat nebo .cmd. Spustíme tento soubor z kódu, předtím uložíme podepsaná data ze serveru do authenticate.cms. Získáme soubor s dešifrovanými daty data.file.
    3. Přečteme data.file a zkontrolujeme tato data na platnost. Co konkrétně zkontrolovat je popsáno v prvním článku. Pokud jsou data platná, autentizace uživatele se považuje za úspěšnou.

Pro realizaci těchto algoritmů lze použít jakýkoli programovací jazyk, který se používá k psaní backendu.

V dalším článku se budeme zabývat spoluprací s pluginem Rútoken.

Děkujeme za pozornost!

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster