Přeskočit obsah

Dokumentace knihovny RAConnection

Knihovna je implementována v jazyce C#, distribuována pomocí NuGet balíčku a podporuje verze .NET Framework 4.7.2, 4.8 a .NET 6.0. Součástí balíčku je i programátorská dokumentace ve které jsou okomentovány všechny třídy, jejich vlastnosti a metody.

Knihovna RAConnection slouží jako komunikační knihovna mezi registrační autoritou (RA) systémy I.CA, se kterými je potřeba komunikovat při procesu vydání certifikátu:

  • Certifikační autorita (CA) - komunikace pro práci se žádostmi o certifikáty a samotnými certifikáty (např. odeslání žádosti o certifikát, získání certifikátu, zneplatnění certifikátu apod.). CA jsou rozděleny na kvalifikovanou (QICA) a komerční CA (SICA). Lze vydávat certifikáty s klíčovými páry RSA i ECC.
  • Billing certifikační autorita (BICA) - slouží pro evidenci uživatelů, plátců za certifikát, získání protokolů a fakturaci. Jedná se o podpůrný systém, který obsahuje funkce a data, které se úplně nehodí aby byly uchovány na systému CA.
  • Úložiště dokumentů (STORAGE) - využívá se při vydávání certifikátů elektronickým způsobem kdy se netisknou protokoly, ale jsou podepsány elektronicky a následně uloženy na STORAGE.

Pro komunikaci s každým systémem je dostupná třída v namespace RAConnection - CaConnector (komunikace s CA), BicaConnector (komunikace s BICA) a StorageConnector (komunikace se STORAGE).

Podmínkou pro práci se systémy I.CA při postupu vydání certifikátu je vlastnit komerční certifikát nebo pár certifikátů TWINS, který má nastavenou roli operátora.

Kód RA

Dalším vyžadovaným parametrem pro komunikaci se systémy I.CA je i jednoznačný identifikátor RA, tzv. kód RA. Kód RA je textový řetězec o délce dvou nebo tří znaků, který se může skládat pouze číslic a písmen abecedy (např. A0, A01). V této formě se kód RA vkládá do dokumentů vznikajících při procesu vydání certifikátu.

Při komunikaci se systémy I.CA se kód RA přidává k PKCS#7 jako nepodepsaný atribut typu Integer. Pro knihovnu RAConnection je tedy potřeba kód RA zakódovat do číselné hodnoty nebo pro inicializaci kódu RA v konektorech využít metodu SetCodeRAFromString.

Zdrojový kód pro převod kódu RA na číselnou hodnotu:

public static int EncodeCodeRAToInt32(string codeRA) =>
    Convert.ToInt32(EncodeCodeRA(codeRA));

private static string EncodeCodeRA(string codeRA)
{
    if (string.IsNullOrEmpty(codeRA))
        return codeRA;

    var bytes = Encoding.ASCII.GetBytes(codeRA);
    var decimalValues = string.Empty;
    for (var i = 0; i < bytes.Length; i++)

    {
        decimalValues += bytes[i].ToString();
        if (i != bytes.Length - 1 && codeRA.Length == 2)
            decimalValues += '0';
    }
    return decimalValues;
}

Kód RA se v knihovně vyskytuje pod názvy parametrů a vlastností jako RaCode nebo codeRA.

Varianty vydání certifikátů

Certifikáty lze vydávat dvěma způsoby:

  • Papírově - komunikuje se systémy CA a BICA. Při procesu vydání certifikátu se protokoly a smlouvy předávají v tištěné podobě. Protokoly žadatel a operátor podepisuje vlastnoručně. Pro tento způsob vydání certifikátu operátor RA musí vlastnit komerční certifikát s operátorským oprávněním.
  • Elektronicky - komunikuje se systémy CA, BICA a STORAGE. Při procesu vydání certifikátu se protokoly a smlouvy se v elektronické podobě odesílají na systém STORAGE, kde jsou archivovány. Žadatel i operátor dokumenty podepisuje elektronicky po vydání certifikátu. Pro tento způsob vydání certifikátů operátor RA musí vlastnit TWINS certifikát, kdy komerční certifikát z páru Twins musí mít operátorské oprávnění a kvalifikovaným certifikátem operátor podepisuje jednotlivé protokoly.

Typy certifikátů

Certifikáty je možno rozdělit na skupiny a jednotlivé typy. Skupiny certifikátů jsou dvě - kvalifikované a komerční. Do těchto skupin poté spadají jednotlivé typy certifikátů. Podle cílové skupiny se žádosti o certifikáty zpracovávají na dané CA.

Typ certifikátu se pravidelně vyskytuje v jednotlivých komunikacích se systémy I.CA, nejčastěji pod jmény CertificateType, CertType, BillingType.

Kvalifikované certifikáty

  • Q-PE-CZ - kvalifikovaný osobní certifikát pro el. podpis
  • Q-TW-CZ - kvalifikovaný osobní certifikát pro el. podpis pro pár certifikátů TWINS

Žádosti o kvalifikované certifikáty je potřeba odesílat na kvalifikovanou CA (QICA).

Komerční certifikáty

  • S-PE - komerční osobní certifikát
  • S-TW - komerční osobní certifikát pro pár certifikátů TWINS

Profily žadatelů

Vedle typu certifikátu se také pro systémy I.CA definuje profil žadatele. Podle profilu žadatele se poté během zpracování žádosti upřesňují údaje které jsou potřeba získat od žadatele a při el. formě vydání certifikátů jsou podle profilu definovány povinné přílohy, které žadatel musí dodat operátorovi.

Profil žadatele se v komunikacích vyskytuje pod názvem CertProfile.

  • NATURAL-PERSON - fyzická osoba (základní profil)
  • EMPLOYEE - zaměstnanec (v údajích je potřeba vyplnit název společnosti. Při elektronickém vydání certifikátu je potřeba dodat potvrzení o zaměstnání jako přílohu).

Žádosti o komerční certifikáty je potřeba odesílat na komerční CA (SICA).

Plátce za certifikát (PayParent)

Plátci jsou subjekty, se kterými má I.CA uzavřenou smlouvu na vydávání certifikátů. Jsou u nich uvedeny požadavky na naplnění položek certifikátů, kdy teprve po jejich splnění je certifikát vydán a zařazen pro fakturaci k danému plátci. U plátce jsou uvedeny další konfigurační nastavení související s vydáváním certifikátů a poskytování dalších služeb I.CA.

V komunikacích se systémy I.CA se pak používá pouze ID zvoleného plátce, které se v objektech vyskytuje pod názvem PayParentID, PayParentId nebo PayParent.

URL adresy systémů

QICA:

Testovací prostředí:

https://testq.ica.cz:443/cgi-bin/racom.cgi
Produkční prostředí:

https://q.ica.cz:443/cgi-bin/racom.cgi

SICA:

Testovací prostředí:

https://tests.ica.cz:443/cgi-bin/racom.cgi

Produkční prostředí:

https://s.ica.cz:443/cgi-bin/racom.cgi

BICA:

Testovací prostředí:

https://tbica.ica.cz/cgi-bin/BicaRaComAPI.cgi

Produkční prostředí:

https://b.ica.cz/cgi-bin/BicaRaComAPI.cgi

STORAGE:

Testovací prostředí:

https://td.ica.cz/cgi-bin/StorageRaComAPI.cgi

Produkční prostředí:

https://d.ica.cz/cgi-bin/StorageRaComAPI.cgi

Seznam pojmů a zkratek

Pojem Vysvětlivka
RA Registrační autorita
CA Certifikační autorita
QICA Kvalifikovaná certifikační autorita
SICA Komerční certifikační autorita
BICA Podpůrný systém pro CA
STORAGE Úložiště dokumentů
QC Kvalifikovaný certifikát
KC Komerční certifikát
TWINS Pár certifikátů skládající se z kvalifikovaný a komerční certifikátu vzájemně propojeného pomocí rozšíření certifikátu
IK MPSV Id Klienta Ministerstva Práce a Sociálních Věcí
PayParent Plátce za certifikát
Kód RA Jedinečný identifikátor RA
AKID Identifikátor klíče autority
QSCD Qualified Signature Creation Device (zařízení pro vytváření kvalifikovaných podpisů)