Gradnja varnih naslovno agnostinih spletnih storitev Matev Ganik

  • Slides: 32
Download presentation
Gradnja varnih, naslovno agnostičnih spletnih storitev Matevž Gačnik Microsoft regionalni direktor Microsoft MVP –

Gradnja varnih, naslovno agnostičnih spletnih storitev Matevž Gačnik Microsoft regionalni direktor Microsoft MVP – XML Vodja področja razvoja aplikacij Gama System d. o. o.

Agenda u u Stanje varnostnih mehanizmov v trenutnem skladu tehnologije spletnih storitev WS-Seturity, et

Agenda u u Stanje varnostnih mehanizmov v trenutnem skladu tehnologije spletnih storitev WS-Seturity, et al. Predlagane arhitekture Naslovna agnostičnost

Akronimi u GXA u u Global XML Web Services Architecture Množica specifikacij u u

Akronimi u GXA u u Global XML Web Services Architecture Množica specifikacij u u u Trenutno podprte z WSE: u u u WS-Security (varnost) WS-Addressing WS-Policy WS-Secure. Conversation WS-Trust WSE 2. 0 u u u Modularne Delujejo s pomočjo glav SOAP (SOAP header) Web Services Enhancements 2. 0 Produkt, ki se integrira v ogrodje. NET Implementira specifikacije GXA Staro ime WSDK (Web Services Development Kit) SOAP, XML, WSDL, UDDI, bla bla, . . .

Kompatibilnost u Ne obstaja u WSE 1. 0 in WSE 2. 0 u u

Kompatibilnost u Ne obstaja u WSE 1. 0 in WSE 2. 0 u u u WSE 2. 0 in WSE 3. 0 u u u Žica: Nekompatibilno Objektni model: Nekompatibilno WSE X. 0 in WSE X-1. 0 u u u Žica: Nekompatibilno Objektni model: Nekompatibilno WSE X. 0 in Indigo: Slabo kompatibilno u u Žica: Kompatibilno Objektni model: Nekompatibilno

Problem specifikacij u Opisne specifikacije u u Protokoli u u u WSDL UDDI DISCO

Problem specifikacij u Opisne specifikacije u u Protokoli u u u WSDL UDDI DISCO SOAP WS-Security WS-Policy … Problem u Opisne specifikacije zaostajajo, kritična je WSDL

Arhitektura u Nalaganje specifikacij / standardov u HTTP u u SOAP u u u

Arhitektura u Nalaganje specifikacij / standardov u HTTP u u SOAP u u u IP TCP HTTP SOAP WS-Security HTTP TCP IP

Kaj prinaša WSE, GXA? u Standardizacija u (Relativno) u Sploh u Vse preprosta uporaba

Kaj prinaša WSE, GXA? u Standardizacija u (Relativno) u Sploh u Vse preprosta uporaba glede na kompleksnost tehnologij je mogoče narediti brez WSE u Pač uporabimo druge tehnologije. . . u WS-Security = SSL + lastna glava SOAP u WS-Addressing = lastna glava SOAP u Veliko dela u Nestandardno u Kako standardni so nestandardni standardi?

ija Procesni model – spletne storitve liz ac SOAP De se Se ria Request

ija Procesni model – spletne storitve liz ac SOAP De se Se ria Request ria liza cij a Strežnik Odjemalec ja De ser - Metoda - Parametri iali zac i SOAP ja Response i ac liz ria e S - Izvedba metode - Rezultat

Procesni model - GXA Trace. Input. Filter a Trace. Output. Filter ria liz Policy.

Procesni model - GXA Trace. Input. Filter a Trace. Output. Filter ria liz Policy. Output. Filter Request Security. Input. Filter De se Timestamp. Input. Filter ria liza cij Policy. Input. Filter a Se Timestamp. Output. Filter SOAP ac ij Security. Ouput. Filter Trace. Output. Filter Trace. Input. Filter Security. Input. Filter Timestamp. Input. Filter Policy. Input. Filter Odjemalec - Metoda - Parametri ja De ser i ac iali zac ija SOAP Response Se liz a i r Security. Ouput. Filter Timestamp. Output. Filter Policy. Output. Filter Strežnik - Izvedba metode - Rezultat

Zakaj potrebujemo WS-Security? u Imamo SSL u u u Enkripcija Digitalni podpis Prečkanje varnostnih

Zakaj potrebujemo WS-Security? u Imamo SSL u u u Enkripcija Digitalni podpis Prečkanje varnostnih domen u u u Kompleksnejše aplikacije želijo več od request/response Identiteta, integriteta, varnost sporočila mora preživeti HTTP preskok WS-Security u u Obstoječi standardi Industrija že rešuje mnogo problemov: u u u X. 509, Kerberos: avtentikacija XML Encryption, XML Signature: enkripcija in podpis XML Podaja način vključevanja zgornjih mehanizmov v sporočilo SOAP

Problemi SSL u Točka – točka u Negotovost preskoka/preusmeritve u Standardna implementacija samo na

Problemi SSL u Točka – točka u Negotovost preskoka/preusmeritve u Standardna implementacija samo na HTTP u SOAP je/bo tuneliran tudi drugje u Avtentikacija končnega prejemnika in pošiljatelja u Slabosti: u Neskalabilno u Nezanesljivo u Varnost s stališča varnosti ni zagotovljena, ne-varno

WS-Security u u Aplikacija – aplikacija (end to end) Zagotavlja u Integriteto sporočila u

WS-Security u u Aplikacija – aplikacija (end to end) Zagotavlja u Integriteto sporočila u Digitalni u podpis, XML Signature Zaupnost sporočila u Simetrična, u u asimetrična kriptografija, XML Encryption Varnost vgrajena v sporočilo SOAP Prednosti: u Skalabilnost u Protokoli u Preusmeritve u Dodatna u mrežna zahteva je nepotrebna Standardizacija

Delovanje WS-Security 1 u Specifikacija obravnava: u u Avtentikacijo Digitalni podpis Enkripcijo Odgovarja na

Delovanje WS-Security 1 u Specifikacija obravnava: u u Avtentikacijo Digitalni podpis Enkripcijo Odgovarja na vprašanja: u u u Koga avtoriziram? (avtorizacija <> avtentikacija) Je bilo sporočilo med preskoki spremenjeno? Je sporočilo res od pošiljatelja? u u u Je sporočilo prišlo, od kogar mislim, da je? Kako zapišem stvari, za katere želim, da jih preberejo samo izbrani? Kako to rešujemo v realnem življenju?

Delovanje WS-Security 2 Tipičen potek sporočil 1. ) Zahtevek za žeton (ne nujno z

Delovanje WS-Security 2 Tipičen potek sporočil 1. ) Zahtevek za žeton (ne nujno z uporabo SS) Odjemalec spletne storitve Servis žetonov 2. ) Žeton, ki ga dodamo sporočilu SOAP 4. ) Validacija žetonov 3. ) Podpis in pošiljanje sporočila 5. ) Odgovor Spletna storitev

Digitalni podpis<>enkripcija u Različen namen u Enkripcija: u Namenjena varovanju u Samo prejemnik lahko

Digitalni podpis<>enkripcija u Različen namen u Enkripcija: u Namenjena varovanju u Samo prejemnik lahko prebere sporočilo (če asimetrična) u Digitalni podpis: u Namenjen verovanju u Pošiljatelj je gotovo poslal vsebino u Pravno u Prebere veljaven kot lastnoročni podpis ga lahko kdorkoli, ki sporočilo ima

Asimetrična enkripcija Prejemnik: Javni ključ + = Prejemnik: Privatni ključ

Asimetrična enkripcija Prejemnik: Javni ključ + = Prejemnik: Privatni ključ

Simetrična enkripcija Ključ + = Ključ

Simetrična enkripcija Ključ + = Ključ

Digitalni podpis Pošiljatelj: Privatni ključ + = Pošiljatelj: Javni ključ

Digitalni podpis Pošiljatelj: Privatni ključ + = Pošiljatelj: Javni ključ

Zaščiten dialog u A (odjemalec) [PA, JA) u u Digitalni podpis (PA) Enkripcija (JB)

Zaščiten dialog u A (odjemalec) [PA, JA) u u Digitalni podpis (PA) Enkripcija (JB) Pripnemo JA B (strežnik) [PB, JB] u u u Vzamemo JA Preverjanje podpisa (JA) Dekripcija (PB) Izvedba metode (gremo nazaj) Enkripcija (JA) Digitalni podpis (PB)

Nivoji objektnega modela u Dva nivoja u Programski u u Deklarativni u u Soap.

Nivoji objektnega modela u Dva nivoja u Programski u u Deklarativni u u Soap. Sender, Soap. Receiver Soap. Client, Soap. Service Visoko-nivojski WS-Policy Kaj uporabiti? u u u Odvisno od zahtev Deklarativni nivo je primeren pri znanih odjemalcih, kjer avtorizacija ni potrebna Programski nivo lahko vključuje ročne nivoje avtorizacije

Programski nivo u Pridobivanje certifikata u byte[] cert. Hash = {0 x 98, 0

Programski nivo u Pridobivanje certifikata u byte[] cert. Hash = {0 x 98, 0 xec, 0 x 08, 0 x 4 b, 0 xa 5, 0 x 7 a, 0 x 6 c, 0 x 2 f, 0 x 39 , 0 x 26 , 0 xb 3 , 0 x 0 a , 0 x 58, 0 xbf , 0 x 65 , 0 x 25, 0 x 61, 0 xc 5, 0 x 64 , 0 x 59}; // iskanje certifikata X 509 Certificate. Collection certs = store. Find. Certificate. By. Hash(cert. Hash); // izbira certifikata X 509 Certificate cert = ((X 509 Certificate) certs[0]); u Načini za iskanje certifikata u u Find. Certificate. By. Hash Find. Certificate. By. Key. Identifier Find. Certificate. By. Subject. Name Find. Certificate. By. Subject. String

Programski nivo u Preverjanje certifikata u u Instanciranje vmesnega razreda in pridobivanje konteksta SOAP

Programski nivo u Preverjanje certifikata u u Instanciranje vmesnega razreda in pridobivanje konteksta SOAP u u if ((!cert. Supports. Digital. Signature || (!cert. Supports. Data. Encryption) || (cert. Key == null)) { Message. Box. Show(); } Service 1 svc = new Service 1(); Soap. Context req. Context = svc. Request. Soap. Context; Pridobivanje žetona iz certifikata u security. Token = new X 509 Security. Token(cert);

Programski nivo u Digitalno podpisovanje u // dodajanje žetona req. Context. Security. Tokens. Add(signature.

Programski nivo u Digitalno podpisovanje u // dodajanje žetona req. Context. Security. Tokens. Add(signature. Token); // podpisovanje Message. Signature sig = new Message. Signature(signature. Token); // dodajanje podpisa req. Context. Security. Elements. Add(sig); u Enkripcija u // enkripcija, žeton je iz drugega certifikata! Encrypted. Data enc = new Encrypted. Data(encryption. Token); // dodajanje enkripcije req. Context. Security. Elements. Add(enc);

Programski nivo u Časovni žig u u request. Context. Security. Timestamp. Ttl. In. Seconds

Programski nivo u Časovni žig u u request. Context. Security. Timestamp. Ttl. In. Seconds = 60; Klic metode u svc. say. Hello();

Varnost in WSE u u Kako do kriptiranega sporočila SOAP? Digitalni podpis?

Varnost in WSE u u Kako do kriptiranega sporočila SOAP? Digitalni podpis?

Naslovna agnostika u Cilj u u Vzrok u u Zagotoviti transparenco odjemalcem Sprememba fizičnega

Naslovna agnostika u Cilj u u Vzrok u u Zagotoviti transparenco odjemalcem Sprememba fizičnega naslova znotraj vaše varnostne meje Načrtovan izpad strežnika Nadgradnja strežnika Način u u Usmerjevalnik SOAP UDDI

Usmerjevalnik SOAP u u Temelji na WS-Addressing Princip delovanja

Usmerjevalnik SOAP u u Temelji na WS-Addressing Princip delovanja

Arhitektura storitve Usmerjevalnik SOAP u u Naslov končne točke določi usmerjevalnik SOAP Odjemalec/uporabnik ima

Arhitektura storitve Usmerjevalnik SOAP u u Naslov končne točke določi usmerjevalnik SOAP Odjemalec/uporabnik ima zagotovljeno transparenco

Usmerjevalnik SOAP Princip delovanja <? xml version="1. 0" ? > <r: referrals xmlns: r="http:

Usmerjevalnik SOAP Princip delovanja <? xml version="1. 0" ? > <r: referrals xmlns: r="http: //schemas. xmlsoap. org/ws/2001/10/referral"> <r: ref> <r: for> <r: exact> http: //www. request-response. com/router. asmx </r: exact> </r: for> <r: if /> <r: go> <r: via> soap. tcp: //MAINSERVER: 5511/Service </r: via> </r: go> <r: ref. Id> uuid: fa 468856 -0057 -4 e 11 -962 a-81 c 5 e 292 f 2 ae </r: ref. Id> </r: referrals>

Arhitektura storitve Register UDDI u Naslov končne točke dobimo iz repozitorija UDDI

Arhitektura storitve Register UDDI u Naslov končne točke dobimo iz repozitorija UDDI

Povzetek u Kako? u u Zakaj? u u Web Services Enhancements 2. 0 http:

Povzetek u Kako? u u Zakaj? u u Web Services Enhancements 2. 0 http: //msdn. microsoft. com/webservices Standardizacija Preprostost Varnost Kdaj? u u u Lahko danes – odjemalec in strežnik sta prisiljena uporabjati isto tehnologijo Microsoft, IBM (WS-Security) imata implementacijo BEA Systems, Oracle, Iona, RSA, SAP, Cisco, Intel, celo Sun

? Matevž Gačnik Vodja področja razvoja aplikacij Microsoft regionalni direktor Microsoft MVP - XML

? Matevž Gačnik Vodja področja razvoja aplikacij Microsoft regionalni direktor Microsoft MVP - XML Gama System d. o. o. http: //www. gama-system. si matevz. gacnik@gama-system. si