Dobrý den!
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 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.filecms — 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:
- Získáme žádost o vytvoření certifikátu a uložíme ji do souboru user.csr.
- 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.
- Přečteme soubor user.crt a odešleme ho klientovi.
- Autentizace uživatele:
- Získáme podepsaná data od klienta a uložíme je do souboru authenticate.cms.
- 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.
- Přečteme data.file a zkontrolujeme tato data na platnost. Co konkrétně zkontrolovat je popsáno . 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
