česky | english
Kvalifikovaná žádost o certifikát
Kvalifikovaná CSR (Certificate Signing Request) je potřebná, aby byl CAcert schopen poskytovat kvalifikované certifikáty.
Prodejce musí zajistit metodu dodání nezfalšovatelné identifikace žádostí o certifikát, vygenerované s zabezpečeným privátním klíčem, uloženým na SmartCard, který nemůže nikdy opustit SmartCard. Například: žádost o certifikát může být digitálně podepsána prodejcovým klíčem, který je integrován do SmartCard.
Referenční implementace
Vytvořili jsme referenční implementaci pro kvalifikované CSR:
http://www2.futureware.at/svn/sourcerer/CAcert/QCSR/ (v úložišti subverzí)
Popis implementace
S "make" můžete projít celým testovacím systémem.
vendor.pl generuje nebo zavádí tajný klíč prodejce (vender*.pem). Smažete-li všechny soubory *.pem před spuštěním (rm *.pem), vytvoří se automaticky nový klíč prodejce.
token.pl generuje pár klíčů (privátní-veřejný) uživatele, extrahuje veřejný klíč a podepíše ho tajným klíčem prodejce. Potom vygeneruje CSR s podpisem jako přídavným polem CSR, pojmenovaným "qcsr".
ca.pl vezme žádost, extrahuje veřejný klíč a pole "qcsr", ověří podpis a rozhodne, zda je to platná žádost o kvalifikovaný certifikát, nebo není.
Úkolem prodejce SmartCard je nyní bezpečně implementovat funkčnost v token.pl do SmartCard. Implementace bude muset být auditována (certifikační autoritou nebo nezávislým auditorem) k ujištění, že je implementace správná a bezpečná.
Další náměty
Následující záležitosti jsou stále otevřeny a prodejce je může změnit:
- Kryptografický algoritmus (zde jsme zvolili RSA)
- Zakódování veřejného klíče (zvolili jsme kódování PEM z OpenSSL)
- Metoda podepisování (zvolili jsme podpis RSA z OpenSSL, což normálně dává 128 binárních bytů jako podpis)
- Kódování do pole "qcsr" v CSR (zvolili jsme hexa-kódování, protože jsme nenašli snadný způsob, jak použít přímo binárku)
- OID (ID objektu) pro pole "qcsr" (alokovali jsme OID od CAcert)
Chce-li prodejce změnit něco v implementaci, musí poskytnout softwarovou referenci implementace, tj. bitově kompatibilní s navrhovanou hardwarovou implementací, aby mohlo být vyhodnoceno zabezpečení. (Bude nejlépe, když bude založena na naší referenční implementaci.)