Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Hradec Králové, 4. – 5. 4. 2005Konference ISSS Uplatnění standardů při integraci aplikací a kryptografických čipových karet OKsystem, spol. s r. o. www.oksystem.cz.

Podobné prezentace


Prezentace na téma: "Hradec Králové, 4. – 5. 4. 2005Konference ISSS Uplatnění standardů při integraci aplikací a kryptografických čipových karet OKsystem, spol. s r. o. www.oksystem.cz."— Transkript prezentace:

1 Hradec Králové, 4. – Konference ISSS Uplatnění standardů při integraci aplikací a kryptografických čipových karet OKsystem, spol. s r. o. Ivo Rosol ředitel vývojové divize

2 Hradec Králové, 4. – Konference ISSS Abstrakt Praktické zkušenosti z implementace originálního softwarového řešení pro integraci kryptografických čipových karet různých výrobců do prostředí Windows, Linux a Java při maximálním respektování standardů.

3 Hradec Králové, 4. – Konference ISSS Čipové karty Čipové karty existují a vyvíjejí se již více než 25 let. Během této doby jsme svědky změny role čipové karty od jednoduchého identifikačního předmětu, nositele uložených informací až po pokročilý kryptografický prostředek, který je klíčem k bezpečnému přístupu k informačním a komunikačním technologiím.

4 Hradec Králové, 4. – Konference ISSS Kryptografické čipové karty Kryptografické čipové karty umožňují generování a uložení kryptografických klíčů v bezpečné paměti a provádění kryptografických operací přímo na kartě s využitím hardwarové akcelerace. Běžně jsou implementovány algoritmy DES, TDES, RSA a SHA1, na nových čipech i AES a ECC. Kryptografické čipové karty jsou levné a bezpečné prostředky pro širokou škálu aplikací (IAS, SSO...) na různých HW platformách a operačních systémech. Kryptografické čipové karty jsou počítače s vlastním operačním systémem a komunikačním rozhraním.

5 Hradec Králové, 4. – Konference ISSS Komunikace dvou počítačů Komunikace 2 počítačů s odlišným technickým vybavením a operačním systémem. Komunikace je realizována s využitím společného sériového (ISO ) nebo USB (ISO ) rozhraní a specifikací komunikačního protokolu (ISO ). Naneštěstí, zatímco syntaxe „společného jazyka“ je dána, sémantika zasílané zprávy je specifická pro každý typ nativní, nebo programovatelné karty.

6 Hradec Králové, 4. – Konference ISSS Standardy a interoperabilita čipových karet – běh na dlouhou trať Existuje řada oficiálních standardů a respektovaných specifikací, definujících fyzické charakteristiky, umístění kontaktů, parametry pro kontaktní i radiovou komunikaci, metody pro zasílání příkazů a získání odpovědí, organizaci systému souborů, řízení přístupu, uložení kryptografických objektů a řadu dalších aspektů. Mezi základní standardy patří ČSN ISO/IEC 7816 a ČSN ISO/IEC 14443, uznávané specifikace tvoří Java Card a PC/SC. Při respektování všech těchto standardů a specifikací v současné době neexistují dvě karty různých výrobců, které by byly kompatibilní na požadované úrovni. Navíc, mezinárodní standardy se nezabývají dostatečně kryptografií a kryptografickým rozhraním čipových karet. Situaci zachraňují implementace de facto standardů PKCS#11, MS CAPI a JCE, které přispívají k interoperabilitě aplikací a kryptografických čipových karet.

7 Hradec Králové, 4. – Konference ISSS Syntaxe pro komunikaci 2. APDU (Reply) 1. APDU (Response)

8 Hradec Králové, 4. – Konference ISSS Sémantika komunikace Potřebujeme překladatele do mnoha jazyků, nebo společné esperanto? V praxi se využívají různé systémy a různé čipové karty, pro jejich interoperabilitu je možné postupovat následovně: Vybrat konkrétní typ čipové karty a pracovat pouze s ním, v rámci jediného systému (1:1) Vybrat a podporovat několik typů čipových karet v rámci jediného systému (1:n) Podporovat několik systémů a několik typů čipových karet (m:n) Vzrůstající složitost je možné zvládnout s pomocí „společného jazyka“. Problémem je různá „úroveň jazyků“ aplikací a čipových karet. Potřebujeme „tlumočníka“, který zprostředkuje komunikaci.

9 Hradec Králové, 4. – Konference ISSS Middleware – prostředník komunikace Aplikace Middleware (integrační vrstva) Operační systém Hardwarové rozhraní Aplikační rozhraní Čtečka Čipová karta

10 Hradec Králové, 4. – Konference ISSS GP/OP PCSC#3-5 PCSC#2 ISO7816/1-4, PKCS#15 Standardy Nativní karta PKCS#11, CAPI, Java Security API Aplikace Operační systém Java karta Čtečka PKCS#15 PKCS#6 (SCard) ISO7816/4 (APDU) Middleware

11 Hradec Králové, 4. – Konference ISSS Aplikace na straně počítače Efektivní vývoj aplikací využívající čipové karty pro provádění kryptografických a datových operací musí být odstíněn od konkrétní technologie. Prostředkem k tomu jsou kryptografická rozhraní definovaná v rámci jednotlivých platforem nebo operačních systémů.

12 Hradec Králové, 4. – Konference ISSS Windows - CryptoAPI a CSP Microsoft Crypto API (MS CAPI) je proprietární architektura firmy Microsoft použitá v systémech Windows. Aplikace využívající MS CAPI mohou využívat alternativní kryptografické služby prostřednictvím standardního rozhraní, aniž musí komunikovat přímo s konkrétním CSP. Aplikace volá funkce vrstvy MS CAPI, které jsou realizovány prostřednictvím dynamických knihoven Advapi32.dll a Crypto32.dll operačního systému Windows. CSP udržuje privátní/veřejné klíče v permanentní paměti v takzvaných kontejnerech, umístěných v technickém zařízení, nebo při čistě softwarovém řešení v zašifrovaném tvaru na disku. Microsoft definuje funkce CSP (syntaxi, vstupní, výstupní a návratové hodnoty) a umožňuje tak vývojářům dodat vlastní CSP, podporující různé kryptografické algoritmy. Vlastní CSP musí exportovat stanovené funkce CryptoSPI a musí být elektronicky podepsán firmou Microsoft. Důležité je, že přestože CSP je tvořen dynamickou knihovnou ve Windows, vlastní kryptografické operace mohou být prováděny v technickém vybavení (například čipové kartě).

13 Hradec Králové, 4. – Konference ISSS API nezávislé na systému - PKCS#11 Kryptografické rozhraní k zařízením provádějícím kryptografické operace bylo navrženo společností RSA Laboratories pod označením PKCS#11 (Cryptoki). Na rozdíl od CAPI je toto rozhraní navrženo bez závislosti na použitém operačním systému a je nejpoužívanějším kryptografickým rozhraním mimo platformu Windows. Rozhraní PKCS#11 je primárně svázáno s programovacím jazykem C/C++. Z běžných aplikací toto rozhraní používá internetový prohlížeč Mozilla (Netscape) a jeho poštovní klient, Lotus Notes, Entrust a další.

14 Hradec Králové, 4. – Konference ISSS Platforma Java – JCA/JCE Java aplikace může využít několik pokročilých API – Java Authentication and Authorisation Service (JAAS), Java Secure Socket Extension (JSSE), Java Certification Path a Java Generic Security Services (GSS-API). Kryptografické funkce jsou implementovány v rámci připojitelných modulů Java Cryptography Extension (JCE).

15 Hradec Králové, 4. – Konference ISSS Aplikace na straně čipové karty Aplikací na čipové kartě rozumíme strukturu datových a kryptografických objektů umístěných v souborovém systému čipové karty. Většina současných dodavatelů kryptografických aplikací na čipových kartách, pracuje se svým (proprietárním) formátem aplikace. Takovou kartu pak nelze použít pro jinou aplikaci, než poskytuje vydavatel karty. Standard ČSN ISO/IEC (PKCS#15) definuje standardní kryptografickou aplikaci CIA (Cryptography Information Application).

16 Hradec Králové, 4. – Konference ISSS Struktura ISO/IEC /PKCS#15 Adresář aplikací PKCS#15 aplikace Jiná aplikace klíče certifikáty osobní data Adresář objektů Adresář klíčů Klíč pro podpis Klíč pro šifrování Adresář certifikátů Certifikát pro podpis Certifikát pro šifrování Adresář osobních dat jméno adresa data Čipová karta Hlavními přednostmi PKCS#15 proti proprietárním formátům jsou především přenositelnost a flexibilita. Přenositelnost znamená, že čipová karta může být použita v různých PKCS#15 kompatibilních aplikacích (na kartě) od různých výrobců. Flexibilita umožňuje využít stejné principy ukládání pro různé typy čipových karet a poskytuje tak PKCS#15 aplikaci (na PC) dostatek informací pro správné použití karty.

17 Hradec Králové, 4. – Konference ISSS Specifikace middleware OKsmart OKsmart je originální české softwarové řešení (middleware) pro transparentní integraci kryptografických čipových karet různých výrobců do prostředí systémů Windows a Linux s maximálním respektováním standardů.

18 Hradec Králové, 4. – Konference ISSS Middleware OKsmart (část rezidentní na kartě) Middleware OKsmart Aplikace na počítači Middleware OKsmart (část rezidentní na počítači) Operační systém Hardwarové rozhraní Aplikační rozhraní Čtečka Čipová karta

19 Hradec Králové, 4. – Konference ISSS Hlavní dosažené cíle Možnost vytvářet aplikace nezávislé na použité kartě, popř. čtečce Shodná podpora čipových karet nabízená pro platformy Windows a Linux (Unix) Přímá podpora hlavních typů nativních kryptografických karet významných výrobců s vlastnickým operačním systémem (v první fázi Axalto Cryptoflex a Gemplus GPK) a snadné rozšíření množiny podporovaných karet beze změny klíčových knihoven. Přímá podpora programovatelných karet se systémem Java Card od různých výrobců karet. Na kartu musí být nahrány aplety, které jsou součástí OKsmart Maximální využití uznávaných a používaných standardů, architektur a rozhraní (PKCS#15, PKCS#11, PKCS#12, MS CSP, Java, Java Card, PC/SC, Scard, ISO 7816, X ) umožňuje aplikacím třetích stran transparentní využití podporované množiny čipových karet (za předpokladu, že tyto aplikace používají uvedené standardy). Schopnost uložit více certifikátů a klíčů na čipovou kartu. Volba délky klíče podporované kartou Generování klíčů a provádění kryptografických operací přímo na kartě. Import RSA klíčů a certifikátů podle specifikace PKCS#12. Interoperabilita aplikací využívající čipovou kartu pro kryptografické účely jako podepisování, dešifrování a autentizaci na základě služeb MS CSP a PKCS#11 a JCA/JCE. Kryptografické moduly využívají služeb společné knihovny PKCS#15 a proto je čipová karta plně kompatibilní při spolupráci s PKCS#11 i CSP. Implementace operací používaných při procesu personalizace čipů a v systémech pro správu karet (podmnožina příkazů Global Platform/Open Platform) Jazykové mutace (standardně čeština, angličtina) Široké licenční a obchodní možnosti pro uživatele čipových karet (licence na kartu, na počítač, na kiosek atd.) Pružná reakce na budoucí standardy a potřeby aplikací a uživatelů čipových karet (správa karet, klíčů, biometrická autentizace, virtuální karta...)

20 Hradec Králové, 4. – Konference ISSS SCard PKCS#15 Aplikace CSPPKCS#11 SCIfd SCInput JCE Aplikační rozhraní Uživatelské rozhraní Rozhraní čipové karty Architektura OKsmart

21 Hradec Králové, 4. – Konference ISSS Základní systémové komponenty OKsmart OKsmart je modulární systém tvořený sadou knihoven, z nichž některé jsou výměnné a umožňují tak rozšiřovat podporovanou sadu funkcí a karet. Základní programátorské rozhraní (API) je k dispozici pro jazyk C/C++, kromě toho je možné samozřejmě využívat nadstavbové knihovny a komponenty, které využívají architekturu MS CAPI (například CAPICOM) nebo rozhraní PKCS#11. KomponentaPlarformaPoužití OKcspWindows Knihovna pro MS CAPI aplikace - Outlook, IExplorer, MS Word, přihlášení do Windows, aplikace třetích stran. OKpkcs11 Windows Linux Knihovna pro PKCS#11 aplikace - Mozilla, Netscape + e- mail, Lotus Notes a aplikace třetích stran SCard Windows Linux Knihovna SCard s rozhraním PC/SC

22 Hradec Králové, 4. – Konference ISSS Základní PC aplikace pro OKsmart OKsmart obsahuje také užitečné programové vybavení, které slouží pro práci s čipovou kartou. KomponentaPlarformaPoužití OKsmart Format Windows Formátování čipové karty, vytvoření a smazání PKCS#15 aplikace a základní personalizace. OKsmart Manager Windows Linux Import a export certifikátů, import certifikátu a privátního klíče ze souboru ve formátu PKCS#12, změna a odblokování PIN, informace o kartě. OKsmart SafeWindows Správce hesel a privátních údajů uložených na kartě a aplikace pro automatické zadávání hesel do aplikací.

23 Hradec Králové, 4. – Konference ISSS Aplikace rezidentní na čipové kartě pro OKsmart OKsmart je též tvořen aplikací CIA (PKCS#15) rezidentní na čipové kartě a sadou apletů pro Java Card.

24 Hradec Králové, 4. – Konference ISSS Implementace CSP v rámci OKsmart Důležité aspekty: Vývojář aplikací pro Windows nemusí rozlišovat mezi kryptografií prováděnou v software nebo hardware CSP je DLL ve Windows, ale vlastní kryptografické operace provádí čipová karta. CSP je implementován ve formě dynamické knihovny (okcsp.dll), která je elektronicky podepsána společností Microsoft a je nezávislá na podporované čipové kartě. (karta musí být naformátována pro PKCS#15 aplikaci OKsmart). Při rozšíření portfolia podporovaných karet není nutné měnit CSP

25 Hradec Králové, 4. – Konference ISSS Implementace PKCS#11 v rámci OKsmart Důležité aspekty: Rozhraní PKCS#11 v OKsmart je implementováno pomocí dynamické knihovny OKpkcs11 (.so,.dll), která je nezávislá na typu použité karty (formátované pro PKCS#15 aplikaci OKsmart)! Při rozšíření portfolia podporovaných karet není nutné měnit knihovnu PKCS#11

26 Hradec Králové, 4. – Konference ISSS Java.jar Java Implementace JCE v OKsmart JCE JPKCS#11 JNI C++,.dll,.so Objektové rozhraní PKCS#11 (C++) rozhraní JCE

27 Hradec Králové, 4. – Konference ISSS Čipové karty se systémem Java Card Java Card poskytuje řadu výhod: Nezávislost na jediném výrobci Instalace apletů po vydání karty Funkce a bezpečnost definovaná vydavatelem Nesmí se ale zapomenout na: Vývoj programového kódu rezidentního na kartě (apletů) Paměť EEPROM spotřebovanou pro aplety Výkonost

28 Hradec Králové, 4. – Konference ISSS Java Card Runtime Environment Architektura Java Card Nativní OS čipové karty Java Card VMJava Card API Applet 1Applet 2 Počítač/terminál Čipová karta (Java Card) Aplikace na počítači čtečka APDU Applet firewall

29 Hradec Králové, 4. – Konference ISSS Java Card – rozhraní APDU a SIO Datový aplet AID1 (klient) Autentizační aplet AID2 (server) JCRE 1.Klient požaduje od JCRE SIO serverového apletu identifikovaného pomocí AID2. 2.JCRE se dotazuje serverového apletu na SIO a posílá AID1 klientského apletu. 3.Server vydává ukazatel na požadovaný SIO nebo null, podle toho zda klientský aplet může nebo nemůže komunikovat se serverem 4.JCRE předává výsledek klientské aplikaci. 5.Klientský aplet volá SIO.metoda, parametry lze předávat hodnotou (byte, short) nebo odkazem na sdílenou paměť (ostatní datové typy) (APDU buffer, tranzientní pole v RAM) Firewall sdílená paměť APDU (AID1) APDU (AID2) SIO

30 Hradec Králové, 4. – Konference ISSS Implementace Java Card apletů v OKsmart DA – datový aplet podpora souborového systému podle ISO –maximálně 4 úrovně adresářů –řízení přístupu pomocí DES klíčů uložených v aktuálním nebo nadřízeném adresáři využití a správa SE (Security Environment) podle ISO (řízení přístupových práv) –uložení šablon SE –zprostředkování SE autentizačnímu apletu Uložení certifikátů Uložení DES klíčů AA - autentizační aplet PIN a PUK –Uložení PIN a PUK (APDU) –Změna PIN (APDU, SIO) –Odblokování PIN (APDU) –Ověření PIN (autentizace držitele karty) (APDU, SIO) –vydání informace o stavu ověření (SIO) DES autentizace pro ostatní aplety –generování výzvy (SIO) –výpočet hash (SIO) –generování DES klíče (SIO) –externí a interní autentizace (SIO) –vydání informace o stavu autentizace (SIO) PA – PKI aplet správa RSA klíčů –generování páru klíčů (APDU) –import klíčů na kartu (APDU) –mazání klíčů (APDU) –výpočet hash (APDU, SIO) –vytvoření podpisu (APDU, SIO) –ověření podpisu (APDU, SIO) Datový aplet PKI aplet Autentizační aplet SIO

31 Hradec Králové, 4. – Konference ISSS Současný a budoucí vývoj Šifrování disku pomocí čipové karty Volitelná čtečka s klávesnicí (PINpad) a další... OKsystem, spol. s r. o. Ivo Rosol ředitel vývojové divize


Stáhnout ppt "Hradec Králové, 4. – 5. 4. 2005Konference ISSS Uplatnění standardů při integraci aplikací a kryptografických čipových karet OKsystem, spol. s r. o. www.oksystem.cz."

Podobné prezentace


Reklamy Google