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

Dobrý den!

V předchozí části Úspěšně jsme vytvořili vlastní certifikační centrum. Jak může být užitečný pro naše účely?

Pomocí lokální certifikační autority můžeme vydávat certifikáty a také ověřovat podpisy na těchto certifikátech.

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

Na to, jak obdržet žádost o certifikát, se podíváme v příštím článku a v tomto článku chci uvést hlavní příkazy certifikační autority, které nám pomohou dokončit náš úkol na straně backendu.

Nejprve tedy musíme vytvořit certifikát. K tomu použijeme příkaz:

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

ca je příkaz openSSL, který se vztahuje k certifikační autoritě,
-batch - zruší požadavky na potvrzení při generování certifikátu.
user.csr — požadavek na vytvoření certifikátu (soubor ve formátu .csr).
user.crt - certifikát (výsledek příkazu).

Aby tento příkaz fungoval, musí být certifikační autorita nakonfigurována přesně podle popisu v předchozí části článku. V opačném případě budete muset dodatečně zadat umístění kořenového certifikátu certifikační autority.

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

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

cms je 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ě ověříme certifikát.

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

-informujte PEM - je použit formát PEM.

-CAfile /Users/……/demoCA/ca.crt - cesta ke kořenovému certifikátu. (bez toho mi příkaz nefungoval, přestože cesty k ca.crt byly zapsány v souboru openssl.cfg)

-out data.file — Pošlu dešifrovaná data do souboru data.file.

Algoritmus pro použití certifikační autority na straně backendu je následující:

  • Registrace uživatele:
    1. Obdržíme požadavek na vytvoření certifikátu a jeho uložení do souboru user.csr.
    2. První příkaz tohoto článku uložíme do souboru s příponou .bat nebo .cmd. Tento soubor spouštíme z kódu, když jsme předtím uložili požadavek na vytvoření certifikátu do souboru user.csr. Obdržíme soubor s certifikátem user.crt.
    3. Přečteme soubor user.crt a odešleme jej klientovi.

  • Autorizace uživatele:
    1. Přijmeme podepsaná data od klienta a uložíme je do souboru authenticate.cms.
    2. Uložte druhý příkaz tohoto článku do souboru s příponou .bat nebo .cmd. Tento soubor spustíme z kódu, když jsme předtím uložili podepsaná data ze serveru do authenticate.cms. Obdržíme soubor s dešifrovanými daty data.file.
    3. Přečteme data.file a zkontrolujeme platnost těchto dat. Je popsáno, co přesně zkontrolovat v prvním článku. Pokud jsou data platná, autorizace uživatele je považována za úspěšnou.

K implementaci těchto algoritmů můžete použít jakýkoli programovací jazyk, který se používá k psaní backendu.

V příštím článku se podíváme na to, jak pracovat s pluginem Retoken.

Спасибо за внимание!

Zdroj: www.habr.com

Přidat komentář