Project Name Document Title TDC Citrix Citrix og Certificate Store Provider Version Number 1.0 Status Release Author jkj Date 5-10-2006
Trademarks All brand names and product names are trademarks or registered trademarks of their respective owners. Disclaimer This document is provided as is without warranty of any kind, either express or implied, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or noninfringement. This document could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the document. Cryptomathic may make improvements of and/or changes to the product described in this document at any time. 2
Table of Contents Revision History...5 References...6 1 Baggrund...7 1.1 Cryptomathic... 7 1.2 Sundhedsstyrrelsens Citrix løsning og CryptoAPI... 8 1.3 Dataudveksling... 9 1.4 Løsningsbeskrivelse... 9 1.4.1 Private nøgler (tynd )... 9 1.4.2 Brugercertifkater... 9 1.5 Udviklede komponenter... 11 1.6 Installation op konfiguration... 12 1.6.1 Server... 12 1.6.2 Klient... 16 3
Revision History Version Status Date Description Authors 0.1 Draft 4-10-2006 Første version Jan Kjaersgaard 1.0 Release 5-10-2006 Tilføjelser Jan Kjaersgaard 4
References [ICA] Citrix Virtual Channel Software Development Kit, version 2.3, May 2003 5
1 Baggrund Microsoft CryptoAPI (CAPI) opdeler ansvaret for håndtering af certifikater og private nøgler nøgler på Windows, således at CryptoAPI håndterer certifikater og cryptografiske enheder () håndterer de private nøgler. Arkitekturen tillader at producenter af cryptografiske hardware tokens, eksempelvis smart card eller USB enheder, kan distribuere en, som kan anvende det specielle token. CAPI Det er essentielt i forståelsen af denne arkitektur at bemærke at CAPI indeholder referencer fra certifikater til tilhørende private nøgler. I grænsefladen bliver brugere præsenteret for certifikater og det bagvedliggende system finder frem til den relevante nøgle på en. 1.1 Cryptomathic Cryptomathic har lavet to er, som TDC distribuerer. PrimeInk er en software som kræver brugerautorisation ved password for anvendelse af en privat nøgle. De private nøgler gemmes krypteret under dette password på filsystemet. Signer Desktop Client er en som kræver bruger autorisation ved password for anvendelse af nøgler på Signer. De private nøgler genereres i, opbevares beskyttet af og anvendes i et hardware security module på Signer. 1.2 Sundhedsstyrrelsens Citrix løsning og CryptoAPI Sundhedsstyrrelsens Elektroniske Indberetningssystem afvikles på en Citrix server, som tilgås fra en række Citrix klienter. En bruger med en Citrix klient, som etablerer forbindelse til Citrix serveren, vil ikke i denne forbindelse have adgang til CryptoAPI på brugerens egen desktop. Dermed vil brugeren heller ikke have adgang til egne certifikater og private nøgler. 6
User PC Citrix Client Citrix CAPI CAPI En bruger som benytter applikationer fra en Citrix Client ser således kun de certifikater (blå) som findes på Citrix serveren, mens egne certifkater (røde) ikke er tilgængelige. 1.3 Dataudveksling Citrix tilbyder til deres klient/server arkitektur virtuelle kanaler, som tillader udveksling af data mellem en Citrix server og en Citrix klient. Ved at implemenete de nødvendige server- og klient komponenter kan man give applikationer afviklet på en Citrix server adgang til de samme resourcer, som applikationer afviklet på brugerens desktop. 1.4 Løsningsbeskrivelse Den overordnede idé i løsningen er forsat at lade private nøgler være håndteret af er på brugerens desktop og kun - når det er nødvendigt - kopiere brugerens certifikater til Citrix serveren. 1.4.1 Private nøgler (tynd ) Private nøgler kontrolleres af er på brugerens desktop. er overholder et lille API, som applikationer herunder specielt CAPI anvender. Ved at implementere en tynd proxy som installeres på Citrix serveren kan man via Citrix s virtuelle kanaler forwarde kald til er på brugerens computer. Derved behøver man ikke kopiere nøglemateriale fra brugerens desktop til Citrix serveren. 1.4.2 Brugercertifkater Certifikate Store Providers er funktioner, som kaldes af CAPI når en applikation skal finde ud af hvilke certifikater, som er tilgængelige i en brugers certifikatlager. 7
Eksempelvis kan der være funktioner til at læse certifikater fra et USB token eller fra en netværksresource. Til kopiering af brugercertifikater udvikles en Certifikate Store Provider, som anvender Citrix s virtuelle kanaler til at kopiere certifikater fra brugerens desktop til Citrix serveren. Da en Certifikate Store Provider kaldes når CAPI har brug at liste certifikater (eksempelvis ved visning af certifikater til klient-logon) gemmes certifkater ikke på Citrix severen over flere sessioner. Brugere vil således kun se egne certifikater. Referencerne fra certifikater til private nøgler på er refererer nu til nøgler på den tynde. User PC CAPI Citrix Client Citrix server Provider CAPI Tynd Provider (Certificate Store Provider) læser certifikater fra brugerens desktop og gør dem tilgængelige på Citrix miljøet. Den tynde kommunikerer med er på brugerens desktop. Kommunikationen benytter Citrix s virtelle kanaler. 8
1.5 Udviklede komponenter Der er udviklet følgende komponenter Server komponenter o Citrix server Certificate Store Provider o Wrapper med Microsoft signatur o Citrix server Klient komponenter o Citrix klient Certificate Store Provider o Citrix klient 1.6 Installation op konfiguration 1.6.1 Server Server komponenter placeres i en installationsfolder, eksempelvis c:\programmer\cryptomathc. 1.6.1.1 Citrix server Certificate Store Provider Citrix Server Certificate Store Provider initierer kommunikation med Citrix klient Certificate Store Provider. Formålet med disse komponenter er at tilbyde adgang til certifikater fra Citrix klienter. Filen ctx_certprovider_server.dll skal placeres i installationsfolderen. Certificate Store Provideren skal registreres i windows registry under: HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\OID\EncodingType 0\ CertDllOpenStoreProv\CryptomathicCitrixProvider med følgende værdier: String dll med værdi installationsfolder\ctx_certptovider_server.dll String FuncName med værdi CertDllOpenStoreProv For hver bruger på Citrix Presentation Server skal der registreres et fysisk certifik lager under HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\My\PhysicalStores\C ryptomathiccitrixstore med værdier: String "OpenStoreProvider" med værdi "CryptomathicCitrixProvider" 9
DWORD "OpenEncodingType" med værdi 65537 DWORD "OpenFlags" med værdi 0 Binær "OpenParameters" uden værdi DWORD Flags" med værdi 5 DWORD "Priority" med værdi 1 Log fra komponenten kan konfigureres ved registry nøgler under: HKEY_LOCAL_MACHINE\Software\Cryptomathic\Citrix\CertificateStoreProvider\ String LogFile med filnavn på logfilen, eksempelvis installationfolder\certificatestoreprovider.txt DWORD level med angivelse af log niveau 0-5, 0 er ingen log og 5 er max. 1.6.1.2 Wrapper med Microsoft Signatur Microsoft kræver at er underskrevet af Microsoft. Da signatur processen kan tage op til 14 dage, er der udviklet en Wrapper som er signeret af Microsoft. Wrapper en forwarder alle kald til en angivet. Herved kan der udføres fejlretninger uden forsinkelse. Filerne ctx_csp_server.dll og ctx_csp_server.sig skal placeres i installationsfolderen. en skal registreres i windows registry under: HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider\ Cryptomathic Citrix Server med følgende værdier: String Image path med værdi installationsfolder\ctx_csp_server.dll DWORD Type med værdi 1 Binær Signature med værdi 39,1f,ed,61,7e,c3,38,33,2c,cd,73,5f,e8,78,f4,1f,0a,0d,0e,e5,0d, be,32,ba,6b,b1,7f,6b,b4,59,41,5b,0b,27,35,e1,c7,50,1c,6f,1a,44,e0,b3,26,e1, d5,b4,14,ea,39,53,8f,4b,ef,04,dd,4c,81,cd,c1,c8,cd,17,26,24,59,c1,32,43,98, 38,f4,58,73,9c,6d,ea,df,e7,7b,39,ab,ad,6a,f8,e5,84,69,e5,32,45,bb,7a,7e,52, 3c,3b,b9,31,7f,69,60,ba,f8,bc,c4,a4,e7,f4,63,22,9b,eb,b8,10,06,25,42,0c,a1, 2f,4c,95,71,56,bd,ab,00,00,00,00,00,00,00,00 10
Wrapperen skal konfigureres med filnavnet på den, som den wrapper. Det gøres i windows registry under: HKEY_LOCAL_MACHINE\Software\Cryptomathic\Wrapper med følgende værdi: String FileName med værdi installationsfolder\ctx_communication_server.dll Log fra komponenten kan konfigureres ved registry nøgler under: HKEY_LOCAL_MACHINE\Software\Cryptomathic\Wrapper String LogFile med filnavn på logfilen, eksempelvis installationfolder\cspwrapper.txt DWORD level med angivelse af log niveau 0-5, 0 er ingen log og 5 er max. 1.6.1.3 Citrix server Denne komponent initierer kummunikationen med CryptoAPI på brugerens PC. Filen ctx_communication_server.dll placeres i installationsfolderen. I forbindelse med at server serverkomponenten afventer nøgle autentifikation på brugerens maskine vises en modalless dialog på serven. Teksten i dialogen kan konfigureres for hver klient og styrres via registry under HKEY_LOCAL_MACHINE\Software\Cryptomathic\Citrix\\ Hvor hver supporteret oprettes herunder en nøgle med navnet på (Eksempelvis CRYPTOMATHIC RSA Full Provider 1.2 med følgende værdier: String Headline med værdi Venter på digital signatur autentifikation String Description med værdi Du er ved at gennemføre en transaktion, der kræver digital signatur. Du skal givetvis indtaste password til din digitale signatur i et bagvedliggende password-vindue. Installeren opretter nøgler for CRYPTOMATHIC RSA Full Provider 1.2 Cryptomathic Signer RSA Full Provider 2.1 Default som indeholder værdier for andre er. Log fra komponenten kan konfigureres ved registry nøgler under: HKEY_LOCAL_MACHINE\Software\Cryptomathic\Citrix\\ String LogFile med filnavn på logfilen, eksempelvis installationfolder\csp.txt DWORD level med angivelse af log niveau 0-5, 0 er ingen log og 5 er max. 11
1.6.2 Klient 1.6.2.1 Citrix klient Certificate Store Provider Citrix Server Certificate Store Provider initierer kommunikation med Citrix klient Certificate Store Provider. Formålet med disse komponenter er at tilbyde adgang til certifikater fra Citrix klienter. 1.6.2.2 Citrix klient Denne komponent kommunikerer med Citrix server. Komponenten forwarder alle kald til CryptoAPI på brugerens maskine og resultater, herunder pointere, returneres til Citrix server. Herved opnås at denne komponent ikke har nogen tilstande, som skal bevares over flere funktionskald. 1.6.2.3 Klient installation Filerne cert_provider_client.dll og ctx_csp_client.dll placeres under ICA client. Module.ini under ICA client modificeres så: Under [ICA 3.0] i linien VirtualDriver tilføjes CrmStor og Crm. Under [VirtualDriver] tilføjes CrmStor = og Crm = I enden af listen med Virtuelle drivere tilføjes [CrmStor] DriverName = Unsupported DriverNameWin16 = Unsupported DriverNameWin32 = cert_provider_client.dll [Crm] DriverName = Unsupported DriverNameWin16 = Unsupported DriverNameWin32 = ctx_csp_client.dll Log fra komponenterne opnås ved HKEY_LOCAL_MACHINE\Software\Cryptomathic\Citrix\CertificateStoreProvider\ String LogFile med filnavn på logfilen, eksempelvis installationfolder\certificatestoreprovider.txt DWORD level med angivelse af log niveau 0-5, 0 er ingen log og 5 er max. 12
HKEY_LOCAL_MACHINE\Software\Cryptomathic\Citrix\\ String LogFile med filnavn på logfilen, eksempelvis installationfolder\csp.txt DWORD level med angivelse af log niveau 0-5, 0 er ingen log og 5 er max. 13