Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

SOSI v. 1.1 HTTPS håndtering OCES certifikater: Bootstrapping

Lignende præsentationer


Præsentationer af emnet: "SOSI v. 1.1 HTTPS håndtering OCES certifikater: Bootstrapping"— Præsentationens transcript:

1 SOSI v. 1.1 HTTPS håndtering OCES certifikater: Bootstrapping
Fornyelse SOSI – ver 1.1

2 SSL og SOSI I SOSI (DGWS) håndteres datakonfidentialitet ved kanalkryptering: VPN – håndteres af netværkslaget SSL – håndteres af klient-applikationen (JSSE) SOSI – ver 1.1

3 SSL Server autentifikation Klient autentifikation (optionel)
(Stærk) kryptering af efterfølgende session SOSI – ver 1.1

4 SSL Server autentifikation Klient autentifikation
Serveren autentificerer sig overfor klienten vha. et server-certifikat (og evt. certifikat kæde) Klienten afgør, om den vil stole på serveren: Kommer server-certifikatet fra en pålidelig udsteder? Passer server-certifikatet til den tjeneste, der kontaktes? Er server-certifikatet gyldigt? Klient autentifikation Klienten autentificerer sig vha. klient-certifikat og digital signatur (benyttes i SOSI kun ved fornyelse). SOSI – ver 1.1vvvvvvv

5 SSL Kryptering Når autentifikationsdelen af protokollen er gennemløbet foretages ”key-negotiation”: Symmetrisk krypteringsalgoritme (f.eks. 3DES, AES) Krypteringsnøgle – typisk mindst 128bit (stærk kryptering) Disse benyttes efterfølgende til kryptering af sessionen. SOSI – ver 1.1

6 SSL og Java Java Secure Socket Extension (JSSE) kan konfigureres vha. system parametre: java -Djavax.net.ssl.trustStore=truststore.jks -Djavax.net.ssl.trustStorePassword=1234Test -Djavax.net.ssl.keyStore=keystore.jks -Djavax.net.ssl.keyStorePassword=Test1234 Enkelt Globalt – alle forbindelser håndteres ens Ufleksibelt (ex. J2EE) SOSI – ver 1.1

7 SSL og Java Alternativt defineres trust og nøglematerialet via passende implementationer af interfaces i javax.net.ssl: X509TrustManager Hvilke udstedere af certifikater skal der stoles på? Validering af certifikater og certifikatkæder. X509KeyManager (optionel) Hvilke nøgler og certifikater skal bruges til autentifikation? Denne tilgang er valgt i SOSI biblioteket (dk.sosi.seal.ssl) Knapt så enkelt, til gengæld er SOSI laget enkelt... Fleksibelt – trust håndteres for hver enkelt forbindelse Lokalt – ingen potentielle sideeffekter for resten af JVM'en. SOSI – ver 1.1

8 HttpsConnector Implementation i SOSI biblioteket:
HttpsConnector helper = new HttpsConnectorImpl( TrustedServerCertificateIssuers.getTrustedServerCertificateIssuers() ); //you may need to add additional trusted server certificate issuers helper.addTrustedServerCertificateIssuer(verisignRoot); String xml = XmlUtil.node2String(doc, false,true ); String reply = helper.postSOAP(xml, new URL(“ //now deserialize reply SOSI – ver 1.1

9 Herudover... Er der de sædvanlige småting:
Firewalls, https er port Proxy-servere Sker adgangen til tjenesten via en proxyserver, konfigures proxyserveren via system properties https.proxyHost https.proxyPort SOSI – ver 1.1

10 Certifikater Uddrag af CredentialVault: /**
* Returns <code>true</code> if the passed certificate is either the IdP * certificate, or the certificate associated with this systems credentials. * returns <code>false</code> otherwise. * certificate * the certificate to check. CredentialVaultException * if anything unexpected happened. */ boolean isTrustedCertificate(X509Certificate certificate) throws CredentialVaultException; * Gets the credential pair (private key and certificate) embedded in this * credential vault. CredentialPair getSystemCredentialPair() throws CredentialVaultException; SOSI – ver 1.1

11 Bootstrapping CredentialVaults skal altså udstyres med
VOCES certifikat og tilhørende privat nøgle (system CredentialPair) STS (IdP)'ens certifikat Gøres f.eks. med Seal kommandolinie værktøjet, seal.sh. SOSI – ver 1.1

12 Bootstrapping - VOCES VOCES privat nøgle og certifikat findes i PKCS#12 format: seal.sh –importpkcs12 voces.p12 –pkcs12pwd 6tfgdshj1Zxd -vault vault.jar -vaultpwd xyz987423f vault.jar kan herefter deployes i applikationen. Eller simplere (fra næste release): seal.sh –issue -referencenumber installationcode -vault vault.jar -vaultpwd xyz987423f - vault.jar skabes direkte fra data fra TDC. SOSI – ver 1.1

13 Bootstrapping - STS STS certifikatet importeres tilsvarende:
seal.sh –importcert tdcsts.cer -alias sts -vault vault.jar -vaultpwd xyz987423f Fra næste release: STS identiteten etableres i konfigurationen, og hentes via LDAP ved opstart. SOSI biblioteket bliver robust overfor udskiftning af STS certifikatet Smart, når STS certifikatet udløber SOSI – ver 1.1

14 Fornyelse Kommandolinie værktøjet kan også liste indhold:
seal.sh –list -vault vault.jar -vaultpwd xyz987423f Listing contents: 1 : sosi:alias_system (private key, 2 days to expiry) 2 : sts (trusted certificate) ...så det vil nok være en god ide at forny VOCES certifikatet: seal.sh –renew -vault vault.jar -vaultpwd xyz987423f seal.sh –list -vault vault.jar -vaultpwd xyz987423f Listing contents: 1 : sosi:alias_system (private key, 730 days to expiry) 2 : sosi:alias_system_1 (private key, 2 days to expiry) 2 : sts (trusted certificate) SOSI – ver 1.1

15 Fornyelse ... //code below should run with regular intervals to ensure, that //system credentials never expire //credential vault is probably an extension of ArchivableCredentialVault, // providing a suitable persistence strategy ArchivableCredentialVault credentialVault = new MyDatabaseCredentialVault(”mypassword”); X509Certificate currentVoces = credentialVault.getSystemCredentialPair().getCertificate(); if(certificateIsAboutToExpire(currentVoces)) { //create suitable implementation of renewer CredentialPairRenewer renewer = CredentialPairRenewer.createInstance(currentVoces); //fetch renewed credentials CredentialPair renewedCredentialPair = renewer.renew(credentialVault.getSystemCredentialPair()); //archive current credentials and replace with renewed pair credentialVault.archiveSystemCredentials(renewedCredentialPair); <persist credential vault – depends on implementation> } - se evt. RenewableFileBasedCredentialVault implementationen. SOSI – ver 1.1

16 Fornyelse – det med småt
Fornyelse af TDC VOCES certifikater koster penge! Der betales pr. udstedt certifikat (ca.) Prisen er den samme som ved førstegangskøb Seal toolet advarer og beder om en bekræftelse... ... men det gør TDCCredentialPairRenewer ikke! SOSI – ver 1.1

17 Næste release Følgende er planlagt til release 1.2:
Tool kommando til udstedelse af VOCES signatur tilføjes STS certifikat hentes via LDAP og valideres (bootstrapping) Der etableres fuldt spærringscheck ifm. kontrol af signatur på ID-kort fra STS. - fuld kompatibilitet af klient kode fra 1.1 til 1.2! SOSI – ver 1.1


Download ppt "SOSI v. 1.1 HTTPS håndtering OCES certifikater: Bootstrapping"

Lignende præsentationer


Annoncer fra Google