Příloha č. 8
Testovací protokol 1
Informace o testování
Testovaný generátor:
2
OpenSSL 1.0.0e
Testovací prostředí
Testovací stroj č. 1:
HW: virtuální stroj ve VirtualBox 4.0.10; emulovaná čipová sada PIIX3; 756 MB RAM; harddisk 8 GB SATA OS: OpenSUSE 11.4 SW: JSignPDF 1.1.1
Testovací stroj č. 2:
HW: virtuální stroj ve VirtualBox 4.0.10; emulovaná čipová sada PIIX3; 1 GB RAM; harddisk 20 GB SATA OS: Windows 7 Service Pack 1 SW: JSignPDF 1.1.1
Testovací stroj č. 3:
HW: virtuální stroj ve VirtualBox 4.0.10; emulovaná čipová sada PIIX3; 1 GB RAM; harddisk 20 GB IDE OS: Windows Vista Service Pack 2 SW: JSignPDF 1.1.1
Testovací stroj č. 4:
HW: virtuální stroj ve VirtualBox 4.0.10; emulovaná čipová sada PIIX3; 512 MB RAM; harddisk 16 GB IDE OS: Windows XP Service Pack 3 SW: JSignPDF 1.1.1
Testovací stroj č. 5:
HW: MacBook Pro 7,1; Intel Core 2 Duo 2.4 GHz; 4GB RAM DDR3; harddisk 250GB SATA OS: Mac OS X 10.6.8 SW: OpenSSL 0.9.8r; JSignPDF 1.1.1
Certifikáty vydány autoritou:
vlastní testovací certifikační autorita
3
Vlastnosti generátoru klíčů
Kompatibilita Podporované operační systémy:
Windows XP Windows Vista Windows 7 Linux Mac OS X
Podporované webové prohlížeče:
není relevantní
Další vyžadovaný SW:
Windows: balíček „Visual C++ 2008 Redistributable“1 Linux, Mac OS: vývojářský software, provádí-li se kompilace OpenSSL ze zdrojového kódu -1-
V, T
V, T
Generované klíče Algoritmus generovaných klíčů:
RSA DSA EC (Elliptic curves)
T
Velikost generovaných klíčů:
RSA: min. 384 bitů, max. 16 384 bitů a více2 DSA: min. 512 bitů, max. 8192 bitů a více3 EC: 112-571 bitů (pevně daný seznam křivek)4
V, T
Podporovaná úložiště klíčů:
softwarová hardwarová
V, T
Podporovaná API pro hardwarová úložiště klíčů:
PKCS#11
V
Struktura žádosti o certifikát:
uživatelsky definovaná
T
Položky v dname žádosti:
C, state, L, O, OU, CN, emailAddress, givenName, surname, name, title, description, initials, dnQualifier, role, generationQualifier, X500UniqueIdentifier, pseudonym, serialNumber, friendlyName, domainComponent5
T
Rozšíření žádosti:
SubjectAlternativeName BasicConstraints KeyIdentifier KeyUsage ExtendedKeyUsage6
T
Podepisovací algoritmus žádosti:
MD5withRSA SHA1withRSA SHA224withRSA SHA256withRSA SHA384withRSA SHA512withRSA RIPEMD160withRSA SHA1withDSA SHA1withECDSA
Kódování souboru se žádostí:
DER PEM
T
Opětovné vygenerování žádosti pro existující klíče:
ano
T
Způsob instalace certifikátu:
vygenerování souboru typu PKCS#12 za použití souboru s certifikátem a souboru s klíči
T
Podporovaná kódování souboru s certifikátem:
DER7 PEM PKCS#77
T
Žádost o certifikát
V, T
Instalace certifikátu
Legenda ke třetímu sloupci: V ..... tato informace pochází od výrobce generátoru (webové stránky, uživ. podpora, atd.) T ...... tato informace byla zjištěna na základě tohoto testování
-2-
4 1.
Doplňující informace Balíček „Visual C++ 2008 Redistributable“ je potřeba nainstalovat jen ve Windows XP a Windows Vista.
2.
Velikost RSA klíčů může být prakticky libovolná počínaje hodnotou 384 bitů. Povedlo se vygenerovat RSA klíče až o velikosti 16384 bitů, což trvalo 30 minut.
3.
Velikost DSA klíčů může být téměř libovolná, počínaje hodnotou 512 bitů. Generování klíčů o velikosti 8192 bitů již trvá řádově minuty.
4.
Seznam eliptických křivek, implementovaných v OpenSSL, se zobrazí zadáním příkazu: 1 openssl ecparam –list_curves
5.
Uvedený výčet položek dname žádosti není konečný. Lze definovat vlastní položku dname pomocí jejího OID. Použije se k tomu parametr „oid_section“ v konfiguračním souboru.
6.
Uvedený výčet rozšíření žádosti není konečný. Lze definovat vlastní rozšíření žádosti pomocí OID a hexadecimálně zakódovaného obsahu rozšíření. Opět se využije parametr „oid_section“ v konfiguračním souboru.
7.
Funkce pro vygenerování souboru typu PKCS#12 vyžaduje soubor s certifikátem v kódování PEM. Soubory v kódování DER a PKCS#7 se proto musí nejprve zkonvertovat do kódování PEM pomocí jiných funkcí OpenSSL. Podrobněji viz poznámky k testovacím scénářům na konci tohoto protokolu.
5
Testovací scénáře
5.1 Podrobné testování v OpenSUSE 11.4 Datum testování: 25. 9. 2011
Použitý testovací stroj: č. 1
Činnost
Výsledek
1.
Instalace OpenSSL (kompilace zdrojového kódu).
OK1
2.
Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná struktuře žádostí vytvořených generátory I.CA. položky dname žádosti: CN, C rozšíření žádosti: žádná velikost klíčů: 2048 bitů podpisový algoritmus: SHA256withRSA kódování: PEM
OK
-3-
Činnost
Výsledek
3.
Vydání certifikátu a uložení do souboru v kódování PEM.
OK
4.
Vytvoření souboru typu PKCS#12.
OK
5.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
6.
Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná struktuře žádostí vytvořených generátory I.CA. položky dname žádosti: CN, L, state, C, O, OU, title rozšíření žádosti: SubjectAlternativeName velikost klíčů: 4096 bitů podpisový algoritmus: SHA384withRSA kódování: DER
OK
7.
Vydání certifikátu a uložení do souboru v kódování DER.
OK
8.
Vytvoření souboru typu PKCS#12.
9.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
10.
Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná struktuře žádostí vytvořených generátory I.CA. položky dname žádosti: CN, generationQualifier, L, state, C, O, OU, title, name rozšíření žádosti: SubjectAlternativeName, KeyUsage velikost klíčů: 2048 bitů podpisový algoritmus: SHA512withRSA kódování: PEM
OK
11.
Vydání certifikátu a uložení do souboru v kódování PKCS#7.
OK
12.
Vytvoření souboru typu PKCS#12.
13.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
14.
Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná struktuře žádostí vytvořených generátory PostSignum. položky dname žádosti: C, O, OU, OU, CN, title rozšíření žádosti: SubjectAlternativeName velikost klíčů: 2048 bitů podpisový algoritmus: SHA1withRSA kódování: PEM
OK
15.
Vydání certifikátu a uložení do souboru v kódování DER.
OK
16.
Vytvoření souboru typu PKCS#12.
17.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
CHYBA2
CHYBA3
CHYBA2
-4-
OK
Činnost
Výsledek
18.
Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná struktuře žádostí vytvořených generátory eIdentity. položky dname žádosti: C, O, OU, CN, emailAddress, serialNumber rozšíření žádosti: KeyUsage velikost klíčů: 2048 bitů podpisový algoritmus: SHA1withRSA kódování: PEM
OK
19.
Vydání certifikátu a uložení do souboru v kódování PEM.
OK
20.
Vytvoření souboru typu PKCS#12.
OK
21.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
22.
Vygenerování klíčů a žádosti o certifikát. Otestování dalších podporovaných položek v dname žádosti. položky dname žádosti: domainComponent, CN, givenName, surname, name, initials, description, dnQualifier, role, X500UniqueIdentifier, pseudonym, friendlyName rozšíření žádosti: KeyUsage, ExtendedKeyUsage, BasicConstraints, KeyIdentifier velikost klíčů: 8192 bitů podpisový algoritmus: SHA256withRSA kódování: PEM
OK
23.
Vydání certifikátu a uložení do souboru v kódování PEM.
OK
24.
Vytvoření souboru typu PKCS#12.
OK
25.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
26.
Vygenerování klíčů a žádosti o certifikát. Použití „ne-SHA“ podepisovacího algoritmu. položky dname žádosti: C, CN rozšíření žádosti: KeyUsage velikost klíčů: 2048 bitů podpisový algoritmus: RIPEMD160withRSA kódování: PEM
OK
27.
Vydání certifikátu a uložení do souboru v kódování PEM.
OK
28.
Vytvoření souboru typu PKCS#12.
OK
29.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
-5-
5.2 Podrobné testování ve Windows 7 Datum testování: 24. 9. 2011
Použitý testovací stroj: č. 2
Činnost
Výsledek
30.
Instalace OpenSSL.
OK4
31.
Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná struktuře žádostí vytvořených generátory I.CA. položky dname žádosti: CN, C rozšíření žádosti: žádná velikost klíčů: 2048 bitů podpisový algoritmus: SHA256withRSA kódování: PEM
OK5
32.
Vydání certifikátu a uložení do souboru v kódování PEM.
OK
33.
Vytvoření souboru typu PKCS#12.
OK
34.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
35.
Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná struktuře žádostí vytvořených generátory I.CA. položky dname žádosti: CN, L, state, C, O, OU, title rozšíření žádosti: SubjectAlternativeName velikost klíčů: 4096 bitů podpisový algoritmus: SHA384withRSA kódování: DER
OK
36.
Vydání certifikátu a uložení do souboru v kódování DER.
OK
37.
Vytvoření souboru typu PKCS#12.
38.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
39.
Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná struktuře žádostí vytvořených generátory I.CA. položky dname žádosti: CN, generationQualifier, L, state, C, O, OU, title, name rozšíření žádosti: SubjectAlternativeName, KeyUsage velikost klíčů: 2048 bitů podpisový algoritmus: SHA512withRSA kódování: PEM
OK
40.
Vydání certifikátu a uložení do souboru v kódování PKCS#7.
OK
41.
Vytvoření souboru typu PKCS#12.
42.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
CHYBA2
CHYBA3
-6-
OK
Činnost
Výsledek
43.
Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná struktuře žádostí vytvořených generátory PostSignum. položky dname žádosti: C, O, OU, OU, CN, title rozšíření žádosti: SubjectAlternativeName velikost klíčů: 2048 bitů podpisový algoritmus: SHA1withRSA kódování: PEM
OK
44.
Vydání certifikátu a uložení do souboru v kódování DER.
OK
45.
Vytvoření souboru typu PKCS#12.
46.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
47.
Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná struktuře žádostí vytvořených generátory eIdentity. položky dname žádosti: C, O, OU, CN, emailAddress, serialNumber rozšíření žádosti: KeyUsage velikost klíčů: 2048 bitů podpisový algoritmus: SHA1withRSA kódování: PEM
OK
48.
Vydání certifikátu a uložení do souboru v kódování PEM.
OK
49.
Vytvoření souboru typu PKCS#12.
OK
50.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
51.
Vygenerování klíčů a žádosti o certifikát. Otestování dalších podporovaných položek v dname žádosti. položky dname žádosti: domainComponent, CN, givenName, surname, name, initials, description, dnQualifier, role, X500UniqueIdentifier, pseudonym, friendlyName rozšíření žádosti: KeyUsage, ExtendedKeyUsage, BasicConstraints, KeyIdentifier velikost klíčů: 8192 bitů podpisový algoritmus: SHA256withRSA kódování: PEM
OK
52.
Vydání certifikátu a uložení do souboru v kódování PEM.
OK
53.
Vytvoření souboru typu PKCS#12.
OK
54.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
55.
Vygenerování klíčů a žádosti o certifikát. Použití „ne-SHA“ podepisovacího algoritmu. položky dname žádosti: C, CN rozšíření žádosti: KeyUsage velikost klíčů: 2048 bitů podpisový algoritmus: RIPEMD160withRSA kódování: PEM
OK
CHYBA2
-7-
Činnost
Výsledek
56.
Vydání certifikátu a uložení do souboru v kódování PEM.
OK
57.
Vytvoření souboru typu PKCS#12.
OK
58.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK6
5.3 Ověření funkčnosti ve Windows Vista Datum testování: 24. 9. 2011
Použitý testovací stroj: č. 3
Činnost
Výsledek OK7, 4
59.
Instalace OpenSSL.
60.
Vygenerování klíčů a žádosti o certifikát. položky dname žádosti: CN, generationQualifier, L, state, C, O, OU, title, name rozšíření žádosti: SubjectAlternativeName, KeyUsage velikost klíčů: 2048 bitů podpisový algoritmus: SHA256withRSA kódování: PEM
OK
61.
Vydání certifikátu a uložení do souboru v kódování PEM.
OK
62.
Vytvoření souboru typu PKCS#12.
OK
63.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
5.4 Ověření funkčnosti ve Windows XP Datum testování: 24. 9. 2011
Použitý testovací stroj: č. 4
Činnost
Výsledek OK7, 4
64.
Instalace OpenSSL.
65.
Vygenerování klíčů a žádosti o certifikát. položky dname žádosti: CN, generationQualifier, L, state, C, O, OU, title, name rozšíření žádosti: SubjectAlternativeName, KeyUsage velikost klíčů: 2048 bitů podpisový algoritmus: SHA256withRSA kódování: PEM
OK
66.
Vydání certifikátu a uložení do souboru v kódování PEM.
OK
67.
Vytvoření souboru typu PKCS#12.
OK
68.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
OK
-8-
5.5 Ověření funkčnosti v Mac OS X Datum testování: 6. 10. 2011
Použitý testovací stroj: č. 5
Činnost
Výsledek
69.
Vygenerování klíčů a žádosti o certifikát. položky dname žádosti: CN, generationQualifier, L, state, C, O, OU, title, name rozšíření žádosti: SubjectAlternativeName, KeyUsage velikost klíčů: 2048 bitů podpisový algoritmus: SHA256withRSA kódování: PEM
OK
70.
Vydání certifikátu a uložení do souboru v kódování DER.
OK
71.
Vytvoření souboru typu PKCS#12.
72.
Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu JSignPDF.
CHYBA8 OK
5.6 Otestování dalších funkcionalit OpenSSL ve Windows 7 Datum testování: 25. 9. 2011
Použitý testovací stroj: č. 2
Činnost
Výsledek
73.
Opětovné vygenerování žádosti za použití existujícího souboru s klíči. položky dname žádosti: CN, C rozšíření žádosti: žádná velikost klíčů: existující klíče z kroku 31 podpisový algoritmus: SHA256withRSA kódování: PEM
OK
74.
Porovnání souborů se žádostmi z kroku 31 a 73. Měly by být shodné.
OK
75.
Vygenerování libovolné žádosti s podpisovým algoritmem SHA224withRSA.
OK
76.
Vygenerování DSA klíčů a žádosti o certifikát. položky dname žádosti: CN, C rozšíření žádosti: žádná velikost klíčů: 2048 bitů podpisový algoritmus: SHA1withDSA kódování: PEM
OK
77.
Vygenerování EC (Elliptic Curves) klíčů a žádosti o certifikát. položky dname žádosti: CN, C rozšíření žádosti: žádná velikost klíčů: 192 bitů (prime192v1) podpisový algoritmus: SHA1withECDSA kódování: PEM
OK
-9-
6 1.
Poznámky k testovacím scénářům Pro kompilaci OpenSSL ze zdrojového kódu je nutné do OpenSUSE 11.4 doinstalovat RPM balíčky „make“, „gcc“ a „perl5“. Postup kompilace je poté následující. Uživatel se přepne do adresáře se zdrojovými kódy OpenSSL a postupně zadá tyto příkazy: 1 2 3 4
./config --prefix=/usr/local make make test make install
Programové
soubory
OpenSSL
se
vytvoří
v adresářích
„/usr/local/bin“,
„/usr/local/include/openssl“, „/usr/local/lib“ a „/usr/local/ssl“. 2.
Nepodařilo se vytvořit soubor typu PKCS#12 za použití certifikátu v kódování DER. Bylo nutné pomocí OpenSSL zkonvertovat soubor s certifikátem do kódování PEM. Konkrétní příkaz pro konverzi je tento: 1 openssl x509 -in certifikat_DER.crt -inform DER -out certifikat_P EM.crt -outform PEM
3.
Nepodařilo se vytvořit soubor typu PKCS#12 za použití certifikátu ve formátu PKCS#7 a kódování DER. Bylo nutné pomocí OpenSSL zkonvertovat soubor s certifikátem do kódování PEM. Do souboru typu PKCS#12 se následně uložil uživatelský certifikát i certifikáty certifikační autority. Konkrétní příkaz pro konverzi je tento: 1 openssl pkcs7 -in certifikaty_PKCS7.p7b -inform DER -out certifik aty_PEM.crt -outform PEM –print_certs
4.
Dokud se neprovede restart Windows, při spuštění „openssl.exe“ se zobrazuje chybová hláška, že se nepovedlo najít konfigurační soubor „/usr/local/ssl/openssl.cnf“.
5.
V OpenSSL pro Windows byl problém s kódováním českých znaků v dname žádosti. Pomohlo umístění údajů dname žádosti do konfiguračního souboru, který byl uložen v kódování UTF-8. Ze souboru bylo potřeba odstranit uvozovací identifikační byty, které signalizují, že obsah souboru je uložen v kódování UTF-8.
6.
Bylo zjištěno, že OS Windows nedokáže zkontrolovat certifikáty s podpisovým algoritmem RIPEMD160withRSA. Programy JSignPDF i Acrobat Reader 9 však tento podpisový algoritmus podporují.
7.
Pro spuštění OpenSSL je potřeba nainstalovat balíček „Microsoft Visual C++ 2008 Redistributable Package“ (není potřeba instalovat ve Windows 7 SP1). - 10 -
8.
Také v systému Mac OS se nezdařilo přímé vytvoření souboru typu PKCS#12 z certifikátu ve formátu DER a soubor s certifikátem se musel převést do formátu PEM. OpenSSL v Mac OS ale při použití certifikátu ve formátu DER vypsalo zavádějící chybovou hlášku „No certificate matches private key.“. To mohlo být způsobeno faktem, že v Mac OS byla přítomna starší verze OpenSSL.
Vygenerované klíče jsou v souboru uloženy ve formátu PKCS#5 a kódování Base64. Do příkazu pro vytvoření PKCS#12 lze přidat parametr „-CSP“ pro vložení jména CSP do souboru typu PKCS#12. Pod tímto CSP bude obsah souboru následně importován do úložiště Windows. Není-li v souboru typu PKCS#12 jméno CSP specifikováno, ukládají se klíče a certifikát standardně pod CSP „Microsoft Enhanced Cryptographic Provider v1.0“.
- 11 -