Příloha č. 8 1 Informace o testování estovaný generátor: 2 estovací prostředí estovací stroj č. 1: estovací stroj č. 2: estovací stroj č. 3: estovací stroj č. 4: estovací stroj č. 5: Certifikáty vydány autoritou: estovací protokol OpenSSL 1.0.0e HW: virtuální stroj ve VirtualBox 4.0.10; emulovaná čipová sada PIIX3; 756 MB RAM; harddisk 8 GB SAA OS: OpenSUSE 11.4 SW: JSignPDF 1.1.1 HW: virtuální stroj ve VirtualBox 4.0.10; emulovaná čipová sada PIIX3; 1 GB RAM; harddisk 20 GB SAA OS: Windows 7 Service Pack 1 SW: JSignPDF 1.1.1 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 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 HW: MacBook Pro 7,1; Intel Core 2 Duo 2.4 GHz; 4GB RAM DDR3; harddisk 250GB SAA OS: Mac OS X 10.6.8 SW: OpenSSL 0.9.8r; JSignPDF 1.1.1 vlastní testovací certifikační autorita 3 Vlastnosti generátoru klíčů Kompatibilita Podporované operační systémy: Podporované webové prohlížeče: Windows XP Windows Vista Windows 7 Linux Mac OS X 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 V, V, - 1 -
Generované klíče Algoritmus generovaných klíčů: RSA DSA EC (Elliptic curves) Velikost generovaných klíčů: RSA: min. 384 bitů, max. 16 384 bitů a více 2 DSA: min. 512 bitů, max. 8192 bitů a více 3 EC: 112-571 bitů (pevně daný seznam křivek) 4 Podporovaná úložiště klíčů: Podporovaná API pro hardwarová úložiště klíčů: Žádost o certifikát softwarová hardwarová PKCS#11 Struktura žádosti o certifikát: uživatelsky definovaná Položky v dname žádosti: Rozšíření žádosti: Podepisovací algoritmus žádosti: Kódování souboru se žádostí: Opětovné vygenerování žádosti pro existující klíče: Instalace certifikátu Způsob instalace certifikátu: Podporovaná kódování souboru s certifikátem: Legenda ke třetímu sloupci: C, state, L, O, OU, CN, emailaddress, givenname, surname, name, title, description, initials, dnqualifier, role, generationqualifier, X500UniqueIdentifier, pseudonym, serialnumber, friendlyname, domaincomponent 5 SubjectAlternativeName BasicConstraints KeyIdentifier KeyUsage ExtendedKeyUsage 6 MD5withRSA SHA1withRSA SHA224withRSA SHA256withRSA SHA384withRSA SHA512withRSA RIPEMD160withRSA SHA1withDSA SHA1withECDSA DER PEM ano vygenerování souboru typu PKCS#12 za použití souboru s certifikátem a souboru s klíči DER 7 PEM PKCS#7 7 V... tato informace pochází od výrobce generátoru (webové stránky, uživ. podpora, atd.)... tato informace byla zjištěna na základě tohoto testování V, V, V V, - 2 -
4 Doplňující informace 1. 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 estovací scénáře 5.1 Podrobné testování v OpenSUSE 11.4 Datum testování: 25. 9. 2011 Použitý testovací stroj: č. 1 1. Instalace OpenSSL (kompilace zdrojového kódu). 1 2. Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná položky dname žádosti: CN, C rozšíření žádosti: žádná - 3 -
3. Vydání certifikátu a uložení do souboru v kódování PEM. 4. Vytvoření souboru typu PKCS#12. 5. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 6. Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná 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 7. Vydání certifikátu a uložení do souboru v kódování DER. 8. Vytvoření souboru typu PKCS#12. CHYBA 2 9. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 10. Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná položky dname žádosti: CN, generationqualifier, L, state, C, O, OU, title, name rozšíření žádosti: SubjectAlternativeName, KeyUsage podpisový algoritmus: SHA512withRSA 11. Vydání certifikátu a uložení do souboru v kódování PKCS#7. 12. Vytvoření souboru typu PKCS#12. CHYBA 3 13. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 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 podpisový algoritmus: SHA1withRSA 15. Vydání certifikátu a uložení do souboru v kódování DER. 16. Vytvoření souboru typu PKCS#12. CHYBA 2 17. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu - 4 -
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 podpisový algoritmus: SHA1withRSA 19. Vydání certifikátu a uložení do souboru v kódování PEM. 20. Vytvoření souboru typu PKCS#12. 21. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 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ů 23. Vydání certifikátu a uložení do souboru v kódování PEM. 24. Vytvoření souboru typu PKCS#12. 25. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 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 podpisový algoritmus: RIPEMD160withRSA 27. Vydání certifikátu a uložení do souboru v kódování PEM. 28. Vytvoření souboru typu PKCS#12. 29. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu - 5 -
5.2 Podrobné testování ve Windows 7 Datum testování: 24. 9. 2011 Použitý testovací stroj: č. 2 30. Instalace OpenSSL. 4 31. Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná položky dname žádosti: CN, C rozšíření žádosti: žádná 32. Vydání certifikátu a uložení do souboru v kódování PEM. 33. Vytvoření souboru typu PKCS#12. 34. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 35. Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná 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 36. Vydání certifikátu a uložení do souboru v kódování DER. 37. Vytvoření souboru typu PKCS#12. CHYBA 2 38. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 39. Vygenerování klíčů a žádosti o certifikát. Struktura žádosti podobná položky dname žádosti: CN, generationqualifier, L, state, C, O, OU, title, name rozšíření žádosti: SubjectAlternativeName, KeyUsage podpisový algoritmus: SHA512withRSA 40. Vydání certifikátu a uložení do souboru v kódování PKCS#7. 41. Vytvoření souboru typu PKCS#12. CHYBA 3 42. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 5-6 -
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 podpisový algoritmus: SHA1withRSA 44. Vydání certifikátu a uložení do souboru v kódování DER. 45. Vytvoření souboru typu PKCS#12. CHYBA 2 46. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 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 podpisový algoritmus: SHA1withRSA 48. Vydání certifikátu a uložení do souboru v kódování PEM. 49. Vytvoření souboru typu PKCS#12. 50. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 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ů 52. Vydání certifikátu a uložení do souboru v kódování PEM. 53. Vytvoření souboru typu PKCS#12. 54. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 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 podpisový algoritmus: RIPEMD160withRSA - 7 -
56. Vydání certifikátu a uložení do souboru v kódování PEM. 57. Vytvoření souboru typu PKCS#12. 58. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 5.3 Ověření funkčnosti ve Windows Vista Datum testování: 24. 9. 2011 Použitý testovací stroj: č. 3 6 59. Instalace OpenSSL. 7, 4 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 61. Vydání certifikátu a uložení do souboru v kódování PEM. 62. Vytvoření souboru typu PKCS#12. 63. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 5.4 Ověření funkčnosti ve Windows XP Datum testování: 24. 9. 2011 Použitý testovací stroj: č. 4 64. Instalace OpenSSL. 7, 4 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 66. Vydání certifikátu a uložení do souboru v kódování PEM. 67. Vytvoření souboru typu PKCS#12. 68. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu - 8 -
5.5 Ověření funkčnosti v Mac OS X Datum testování: 6. 10. 2011 Použitý testovací stroj: č. 5 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 70. Vydání certifikátu a uložení do souboru v kódování DER. 71. Vytvoření souboru typu PKCS#12. CHYBA 8 72. Ověření funkčnosti klíčů a certifikátu podepsáním PDF v programu 5.6 Otestování dalších funkcionalit OpenSSL ve Windows 7 Datum testování: 25. 9. 2011 Použitý testovací stroj: č. 2 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 74. Porovnání souborů se žádostmi z kroku 31 a 73. Měly by být shodné. 75. Vygenerování libovolné žádosti s podpisovým algoritmem SHA224withRSA. 76. Vygenerování DSA klíčů a žádosti o certifikát. položky dname žádosti: CN, C rozšíření žádosti: žádná podpisový algoritmus: SHA1withDSA 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 - 9 -
6 Poznámky k testovacím scénářům 1. 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./config --prefix=/usr/local 2 make 3 make test 4 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í UF-8. Ze souboru bylo potřeba odstranit uvozovací identifikační byty, které signalizují, že obsah souboru je uložen v kódování UF-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. aké 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.. o 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 -