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

Slides:



Advertisements
Lignende præsentationer
Velkommen. Agenda 1.Nuværende status – Cert.løsning 2.Roadmap 3.Procedurer 4.Teknisk gennemgang af FTP indberetning 5.Eventuelt.
Advertisements

v/ Flemming Faber Souschef, IT-Sikkerhedskontoret
Parameteroverførsel i OIM Mellem portal og serviceprovider.
Velkommen til Softwarekonstruktion
Atlas/Otto Knudsen 1 "Atlas"  AJAX Extensions til ASP.NET.
07 – Kort om OO Introduktion.
Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
ESigner - Signatur på Web Bernt Bisgaard, Cryptomathic IT-erfagrupper i advokatbranchen.
Introduktion til NemHandel Infrastrukturen Heinrich Clausen 4. november 2010.
REST - tekniske aspekter. RESTs tekniske aspekter  Pragmatisk tilgang  pragmatisk != uspecificeret  orienteret mod den konkrete opgave.
Digitale signaturer og CD-kort
SkoleIntra i fremtiden – hvordan kan det integreres med andre tjenester og systemer Ole Windeløv, UNI-C.
Objektorienteret programmering
e-Tinglysning WebService Arkitektur
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
OIOSAML.NET og Umbraco ved Thomas Ravnholt silverbullet.dk
SOSI ( ServiceOrienteret SystemIntegration) SG-5 (6/ )
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Secret Key kryptering – teknikker og problemer INTRODUKTION TIL KRYPTERING.
SOSI ( ServiceOrienteret SystemIntegration) Quick Tour (E)
SOSI ( ServiceOrienteret SystemIntegration) Quick Tour 2.0.
1/11/2015 1:16:14 AM _Teamwork FOBS POC 2 PIP erfa møde Onsdag d. 5. marts 2008.
OISAML Workshop Århus 31. marts 2009
Forelæsning 3.1 Collections Javas for-each løkke
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
Items 4, 14, 24, 34, 44, 54 Orange gruppe Liv, Jonas, Thorkil, Søren S og Martin D.
Program Design – 4 Introduktion til PHP. Dagens lektion Hvad er PHP?  - og lidt historie Hvordan virker PHP? Grundlæggende PHP  Variable  Typer  Løkker.
Fundamentale datastrukturer
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Masterpages/Otto Knudsen 1 Navigation på webstedet Kontroller til navigation mellem siderne på webstedet.
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Introduktion til NemHandel Infrastrukturen Heinrich Clausen 1. marts 2011.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
Sikkerhed.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Hvad består en distribueret applikation af ? Processer der kører på hver deres maskine Tråde - 1 eller flere "letvægtsprocesser" per proces Objekter i.
Per P Madsen AAU1 Del 4 : Sessions-, presentations- og applikationslaget - Applikationsprotokoller. - RPC og RMI. - Digital audio og Voice over IP. - RTP.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Forelæsning 7.1 – repetition
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Web Services. OO (C++/ C#/Java) COM DCOM Web Services.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
Læsning og skrivning af pakker på IP niveau. Hvorfor er det svært? Fra et normalt programmeringssprog er netværksadgangen begrænset Vælg protokol, port,
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Indledende Programmering Uge 6 - Efterår 2006
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
Et Audio/ Video Framework Et framework for en audio/video applikation baseret på lokale og kilder tilgængelige på 1394 via AV/C protokollen.
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
Mikkel deMib Svendsen Duplicate Content & Multiple Site Issue Mikkel deMib Svendsen
Omsætning af en model til en RDB Jesper Tørresø DAB1 F Marts 2008.
1 Pulse check Project Half Double. 2 Pulse Check – let’s start with the baseline 1.Are you confident that your current work is creating impact for the.
WebApi service part 2 Routning og Action Simpel test-client (javascript) Session og Application data.
Oplæg til Elark seminar
Kryptering.
IT-politik og sikkerhed
Trin-for-trin guide til s1 autorisation
WebApi service x.
Algoritmer og Datastrukturer 1
Simpel test-client (javascript) Session og Application data
Sikker overførsel af data, FCS
Smart Data Tool (SDT) In Sales
Præsentationens transcript:

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

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

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

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

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

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

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

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(“https://tjenesten.dk/ws”)); //now deserialize reply SOSI – ver 1.1

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

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. * * @param certificate * the certificate to check. * @throws 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

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

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 14239544 -installationcode 92112342 -vault vault.jar -vaultpwd xyz987423f - vault.jar skabes direkte fra data fra TDC. SOSI – ver 1.1

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

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

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

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

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