Készítette: Erdősi Lajos

Slides:



Advertisements
Hasonló előadás
Windows Communication Foundation (WCF)
Advertisements

RESTful Web Service tesztelése
Készítette: Nagy Márton
Hálózati és Internet ismeretek
ISO International Standards Organisation OSI Open System Interconnection ISO International Standards Organisation OSI Open System Interconnection Ez a.
Nyilvános kulcsú titkosítás
Tempus S_JEP Számítógép hálózatok Összefoglalás Összefoglalás Összeállította: Broczkó Péter (BMF)
IPSec.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
1. Előadás WCF- bemutatás
Client Access Server. Autodiscovery service Availability service (EWS) Offline Address Book (OAB) service Activesync service Outlook Web Access Public.
ILBK451, 2013/2014. I. félév, ea: Kovács Zita 4.Azonosítás AZ INFORMATIKAI BIZTONSÁG ALAPJAI.
WLAN hálózatok a támadó szemszögéből Horváth Tamás
Webszolgáltatások PHP-ben
Tectia MobileID Express – Kétfaktoros erős autentikáció – 5 percen belül üzemkészen! január 16.
Elektronikus archiválórendszer fejlesztése PKI alapokon Készítette: Kollár Balázs november 11.
Vezeték nélküli hálózatok biztonsági megoldásai Készítette Hudac Lóránd (HULRAAI) A Bemutatóban szó lesz: Vezeték nélküli hálózatok felépítése Ezek működtetése.
OSI Modell.
1 IP alapú hálózatok tervezése és üzemeltetése II. 15/11.
Az ETR technológia DEXTER Informatikai kft..
Digitális Aláírás ● A rejtjelező algoritmusokon alapuló protokollok közé tartozik a digitális aláírás is. ● Itt is rejtjelezés történik, de nem az üzenet.
Az e-kereskedelem (e-business)
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
OE-NIK HP Haladó Programozás WCF kivételkezelés. OE-NIK HP Haladó Programozás Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése.
Authentication & Authorization Belinszki Balázs terméktámogató mérnök Juhász Mihály alkalmazásfejlesztési tanácsadó.
Egy ISA szerver naplója Sárosi György Terméktámogatási Tanácsadó Microsoft Magyarország.
Bevezetés az ebXML-be Forrás: An Introduction to ebXML ebXML and Web Services Practical Considerations In Implementing Web Services Romin IraniRomin Irani.
SOAP alapismeretek A SOAP egy egyszerű XML alapú protokoll, ami lehetővé teszi, hogy az alkalmazások információt cseréljenek a HTTP-én keresztül. Forrás:
eEgészség – Digitális Aláírás (TTP) státusz a projekt 11. hetében „A digitális aláírás egészségügyben való alkalmazhatóságát lehetővé tévő módosítandó.
AD {RMS} Active Directory Rights Management Services
…az ISA Server 2006 segítségével Gál Tamás Microsoft Magyarország.
Hálózatkezelési újdonságok Windows 7 / R2
Web service fenyegetések e- közigazgatási környezetben Krasznay Csaba IT biztonsági tanácsadó HP Magyarország Kft.
, levelezés … kérdések - válaszok Takács Béla 2008.
a Moodle autentikációjához a PTE FEEK-en
Tóth Gergely, október 27. HISEC’04, október , Budapest Keretrendszer anonimitási módszerek integrálására Tóth Gergely Budapesti Műszaki.
Tóth Gergely, február BME-MIT Miniszimpózium, Általános célú biztonságos anonimitási architektúra Tóth Gergely Konzulensek: Hornák Zoltán.
LOGO Webszolgáltatások Készítette: Kovács Zoltán IV. PTM.
Titkosítás, elektronikus és digitális aláírás. Fontos mindig észben tartanunk, hogy ha titkosítatlan csatornán kommunikálunk az Interneten, akkor bármely.
Műszer vezérlő - kezelő program GPI-745A teszterhez.
{ PKI } Active Directory Certificate Services
Windows Server 2008 Távoli elérés – I.
Java web programozás 11..
Bifrost Anonim kommunikációs rendszer. Bevezetés Egyre több szolgáltatás jelenik meg az interneten, melyek megkövetelik az anonimitiást, pl.: Egészségügyi.
Hálózat menedzsment Óravázlat Készítette: Toldi Miklós.
Eszköz és identitás kezelés Korlátlan fájl szerver kapacitás Másodlagos adatközpont Korlátlanul skálázódó infrastruktúra Biztonságos DMZ Hibrid adat-
Webszolgáltatás szabványok Simon Balázs
User Account Management Endrődi Tamás (MCT, MCP, MCITP) GDF Informatikai Intézet vezetője SZÁMALK Oktatóközpont.
Iratkezelő rendszerek biztonsági megoldásai
Illés Zoltán ELTE Informatikai Kar
„Ágazati felkészítés a hazai ELI projekttel összefüggő képzési és K+F feladatokra" Adatbiztonság a méréstechnológiában képzők képzése.
AAA AAA Ki, mikor, mivel, hogyan? Mit csinált, mit csinálhat, (mit fog csinálni)? Ki mihez hogyan férhet hozzá? Authentication Authorization Accounting/Audit.
Fórum használata A fórum főoldala alapállapotban.
Christopher Chapman | MCT Content PM, Microsoft Learning, PDG Planning, Microsoft.
Live Communication Server Integrált kommunikációs infrastruktúra Mobil támogatás Munkaterület Instant üzenetküldés VOIP Alkalmazások, munkafolyamatok.
A PKI project célja Digitális kulccsal elérhető szerver Hamisíthatatlan naplózás Új kulcsok dinamikus létrehozása Felhasználók letiltása.
WLAN Biztonság Rádiusz hitelesítés Radius autentikáció
Nyilvános kulcsú titkosítás Digitális aláírás Üzenet pecsétek.
Biztonság kábelek nélkül Magyar Dénes május 19.
Titkosítás.
Az elektronikus aláírás
Szalai Ferenc – Web Service Bricks
Hálózatkezelés Java-ban
WLAN-ok biztonsága.
2018. március 3. B épület E1 előadó
Az elektronikus aláírás
Az elektronikus aláírás
IT hálózat biztonság Összeállította: Huszár István
Az INTEGRÁLT RENDSZER Több egymáshoz kapcsolódó, egymást kiegészítő biztonsági rendszer összessége, szoftver és hardver elemekből felépítve.
Előadás másolata:

Készítette: Erdősi Lajos 2011.11.20. Biztonság a WCF-ben Készítette: Erdősi Lajos 2011.11.20.

Miről is lesz szó... Mi is az a WCF biztonság Miért van szükség a szolgáltatások biztonságára? Mi is az a WCF biztonság Biztonság fejlődése webszolgáltatások esetében Főbb alapelvek a web szolgáltatások biztonságában Szállítási biztonság és üzenetek biztonsága WCF biztonság használat közben Első lépések a biztonságossá válásban

Mi ellen kell védekezni? Autentikáció Hálózat lehallgatása Jogosultságkezelés Érzékeny adatok kiadása Sessionkezelés Man-In-The-Middle Érvényességellenőrzés SQL-Injection Cross-Site Scripting Stb…

Biztonság fejlődése Web szolgáltatások két meghatározó pontja: Együttműködés (Interoperability) Web szolgáltatások és biztonság 90-es évek vége: SOAP üzenet – Üzenetek nem biztonságosak -> Szállítási rétegre bízzák HTTP -> nem biztonságos üzenet átvitel HTTPS -> garantálja a titoktartást Üzenetek biztonságossá tétele-> WS-* specifikáció

WS-Security 2004. április 19.-én vezették be, a WS-* Specifikáció biztonsági részeként Ez már az üzenetek szintjén biztosította a web szolgáltatásokat Microsoft kiadja a WSE (Web Service Enhancements) első verzióját 2006-ban ez megszűnik (utolsó verzió: WSE 3.0)-> WCF bemutatása

Főbb alapelvek Infrastruktúra-szintű Felhasználó-szintű Authentication Authorization Impersonation (Megszemélyesítés) Message Integrity Message Confidentiality Infrastruktúra-szintű Transport Security Message Security

Authentication A folyamat, ahol egyedülállóan azonosítják a résztvevőket, melyek az üzenetek forrásaként szerepelnek. Az authentikáció alapvetően két kérdés köré épül: Ki vagy te? Hogy bizonyítod ezt be? Azonosítás fajtái: Felhasználói név és jelszó, Kerberos jegy, X.509 – es tanúsítvány, stb… Veszély: Phishing, „Szótát” alkalmazásos támadás, stb… Lehetséges védekezés: kettős azonosítás (kliens és service is)

Authorization A folyamat, ami eldönti, hogy milyen erőforrásokhoz férhet hozzá, illetve milyen műveleteket végezhet a hitelesített felhasználó. Alapvetően a website dönt arról, hogy a hitelesített felhasználónak milyen engedélyeket ad Ezt megteheti: Hozzáférési listák alapján Képesség alapján 3. fél hitelesítés alapján Atomic Authorization

Impersonation Ez a fajta hitelesítés csak akkor lehetséges, ha a felhasználó egy Windows Account-tal rendelkezik, ami hitelesíti őt. Alapvetően a hozzáférés ellenőrzéshez hasonló a működése, azonban a felhasználót (személye, jogok, stb…) egy token tárolja (Impersonation Token). Szintek: Anonymous Identify Impersonate Delagate

Message Integrity Garantálja, hogy az üzenet nem módosul a feladástól számítva a kézbesítésig Az integritás megőrzése alapvetően a titkosítási technikákon alapul: Digitális aláírás Hashing Üzenet autentikációs kódok Az integritásőrzés kifejezetten jó megoldás a MITM támadás elhárítására

Message Confidentiality A folyamat, hogy biztosan privát és titkos maradjon az üzenet, azaz hogy egy külső fél ne férjen hozzá az adatokhoz. Szintén az adatok titkosításán alapul A legbiztosabb az aszimmetrikus kulcson alapuló titkosítás, mint az RSA A titkosításnak köszönhetően kivédhető a MITM támadás és az Eavesdropping.

Szállítási biztonság I. Ez a fajta biztonság szélesebb körben használt gyorsasága és interoperabilitása miatt. Mivel ebben az esetben az üzenetek nem biztonságosak, azaz a szállítási réteg felelős a biztonság megőrzése miatt egy 3. fél olvasni tudja az üzenet adatait A biztonságos szállítás érdekében a következőeket használja: SSL (Secure Socket Layer) TLS (Transport Layer Security) Point-to-Point kommunikáció esetén alkalmazható, ami azt jelenti, hogy biztonságos az átvitel a küldő és fogadó fél között Probléma azonban, ha egy 3. fél is csatlakozik a kommunikációhoz

Szállítási biztonság II. Ha csak a kliens és a szerver szerepel a kapcsolatban, akkor biztonságos az üzenetek átvitele Ha vannak köztes média elemek, akkor a továbbítás során új SSL kapcsolat jön létre. Ha az üzenet elhagyja a szállítási réteget, akkor tovább már nincs biztonságban az üzenet Nagy előny az Üzenet biztonsággal szemben, hogy a feleknek nem kell teljes mértékben ismerniük a WS-Security specifikációt, ezáltal nagy az interoperabilitása a különböző platformok vagy szolgáltatások között A függetlenség két fő faktorból ered: A WS-Security specifikáció komplexitásából A web szolgáltatások végső implementációjának különbözőségéből

Szállítási biztonság III. Működése: A kliens, mely csatlakozik a szerverhez elküldi az elérhető titkosítási algoritmusokat A szerver visszaküldi tanúsítványának másolatát, majd választ egy algoritmust A kliens kinyeri a szerver publikus kulcsát a tanúsítványból, mellyel hitelesíti a szervert A kliens létrehoz egy session kulcsot, majd ezzel a kulccsal titkosítja az adatokat, melyek cserélésre kerülnek a kliens és szerver között

Üzenet biztonság I. Minden biztonsági metaadatot a SOAP üzenet tartalmaz: Digitális aláírás, Titkosított elemek, Felhasználói bizonyítvány, Titkosítási kulcsok, stb… Ez a modell a WS-Security specifikáción alapszik, mely nagyban meghatározza, hogy: Hogyan írjuk alá és titkosítsuk a SOAP borítékokat Milyen különböző algoritmusokat és kulcsokat használjunk Mint egy XML implementáció, a WS-Security lehetőséget ad különböző típusú bizonyítványok használatára …vagy akár újakat is létrehozhatunk.

Üzenet biztonság II. A fő különbség a Szállítási biztonsággal szemben, hogy: Az üzenetek továbbíthatóak más szolgáltatásokhoz vagy közvetítő rendszerekhez a biztonság megsértése nélkül Az üzenetek mindig biztonságosak maradnak, még akkor is ha elhagyják a szállítási réteget Az üzenet küldő módosítja az üzenetet: Az üzenet testét titkosítja Módosítja az üzenet fejrészét, egy speciális SOAP headerrel (Security) Ha az üzenet kézbesítésre kerül: Megvizsgálják ezt a Security fejrészt, hogy: Az üzenet tartalmaz-e titkosított részt Milyen módon lett titkosítva

Üzenet biztonság III. Példa a header módosítására: < o:Security s:mustUnderstand=”1” xmlns:o=”http://docs.oasis-open.org/ wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd” > < u:Timestamp u:Id=”uuid-ea4659dc-85e5-4054-9b0c- c674f0128e7f-11” > < u:Created > 2009-07-27T20:03:36.830Z < /u:Created > < u:Expires > 2009-07-27T20:08:36.830Z < /u:Expires > < /u:Timestamp > < !-- Removed for simplicity -- > < /o:Security >

Üzenet biztonság IV. Példa a body módosítására: < s:Body u:Id=”_0” > < e:EncryptedData Id=”_1” Type=”http://www.w3.org/2001/04/xmlenc#Content” xmlns:e=”http://www.w3.org/2001/04/xmlenc#” > < e:EncryptionMethod Algorithm=”http://www.w3.org/2001/04/xmlenc#aes256-cbc” > < /e:EncryptionMethod > < KeyInfo xmlns=”http://www.w3.org/2000/09/xmldsig#” > < o:SecurityTokenReference xmlns:o=”http://docs.oasis-open.org/wss/2004/01/ oasis-200401-wss-wssecurity-secext-1.0.xsd” > < o:Reference ValueType=”http://schemas.xmlsoap.org/ws/2005/02/sc/dk” URI=”#uuid-ea4659dc-85e5-4054-9b0c-c674f0128e7f-10” > < /o:Reference > < /o:SecurityTokenReference > < /KeyInfo > < e:CipherData > < e:CipherValue > ..... < /e:CipherValue > < /e:CipherData > < /e:EncryptedData

Áttekintés Eddig: Ezután: Áttekintettük, hogy milyen támadások vannak Hogyan lehet ezek ellen védekezni Mik azok az Infrastruktúra-szintű alapelvek Ezután: Megnézzük, hogy milyen lehetőségeket biztosít a WCF minderre

Biztonság a WCF-ben I. Támogatja: Szállítási biztonság Üzenet biztonság Hybrid (Szállítási biztonság + Üzenet bizonyítvány) A WSE 3.0 tapasztalatai alapján támogat „minden” tipikus biztonsági sémát Azonban lehetőséget biztosít saját biztonsági sémák létrehozására

Biztonság a WCF-ben II. Fő belépési pontok a WCF biztonsági alrendszerébe: Kötés (Binding) Viselkedés (Behavior) A megfelelő biztonsági séma és politika beállítása függ: Üzenetek védelmétől Autentikáció fajtájától Autorizáció fajtájától

Kötések I. A kötések határozzák meg: Kommunikációs protokollt Szolgáltatások kódolását Üzenet védelmi beállításokat Autentikációs sémát A kötés kiválasztása hatással van a konfigurációs beállításokra Pl.: BasicHttp esetén csak Szállítási biztonságot használhatunk A tévedések elkerülése érdekében, ha nincsenek speciális beállítási igényeink, használhatjuk a WCF által előre definiált konfigurációs sémákat

Kötések II. Kötések Beállítások WsHttpBinding Üzenet biztonság Windows Auth-tal (NTLM vagy Kerberos) BasicHttpBinding Nincs biztonság WsFederationHttpBinding Üzenet biztonság Befogadott Auth-tal (Issue Token) NetTcpBinding Szállítási biztonság Windows Auth-tal (NTLM vagy Kerberos) NetNamedPipeBinding NetMsmqBinding

Példa < wsHttpBinding > < binding name=”UsernameBinding” > < security mode=”Message” > < message clientCredentialType=”UserName”/ > < /security > < /binding > < /wsHttpBinding > A példában „Message” biztonsági mód látható, illetve „username” biztonsági token profil. A további biztonsági beállításai a kötésnek az alap (default) beállítások.

Biztonsági mód I. Két alap biztonsági nézetet határoz meg: Az üzenet védelem biztonsági modelljét Támogatott kliens autentikációs sémákat Azonban ezek a nézetek megkötéseket is vonnak magukkal. Pl.: Befogadott Autentikáció csak üzenet autentikáció esetén érhető el Ezen beállítás a konfigurációs modell „security” elem Mode property-jével érhető el

Példa Konfigurációs modellben: Kódban: < wsHttpBinding > < binding name=”helloWorld” > < security mode=”TransportWithMessageCredential” > < /security > < /binding > < /wsHttpBinding > Kódban: WSHttpBinding binding = new WSHttpBinding(); binding.Security.Mode = SecurityMode.TransportWithMessageCredential;

Biztonsági mód II. Mód Leírás None A szolgáltatás mindenki számára elérhető, az üzenetek nincsenek védve. Transport A Szállítási biztonsági modellt használja. Message Az Üzenet biztonsági modellt használja. Both Hybrid mód, csak MSMQ kötéssel használható. TransportWithMessageCredentials Szállítási modell, támogatva az üzenetek védelmével. Az autentikációs bizonyítvány az üzenet részeként kerül szállításra. TransportCredentialOnly A kliensek autentikálására a Szállítási modellt használja. Szolgáltatások nincsenek hitelesítve, az üzenetek sima szövegként kerülnek átvitelre.

Védelmi szint I. Alapvetően a WCF minden üzenetet titkosít és aláír, hogy biztosítsa a titoktartást és integritást. Ha „Message Security” módot használunk, akkor felüldefiniálhatjuk ezt, így kikapcsolhatjuk a WCF ezen szolgáltatásait. A védelmi szint beállítható: Szolgáltatás szinten a szerződés definíciójában Műveleti szinten Ha mindkettő beállításra került, akkor a műveleti felüldefiniálja a szolgáltatás szintűt

Védelmi szint II. Név Működés None Nincs üzenet védelem Sign Csak az üzenet integritása garantált. EncryptAndSign Az üzenet integritása és titkosítása is garantált.

Példa Attribútumokon keresztül állíthatóak be: [MessageContract(ProtectionLevel = ProtectionLevel.None)] public class HelloWorldRequestMessage { [MessageHeader] public string SampleHeader { get; set; } [MessageBodyMember()] public string Message { get; set; } }

Kliens bizonyítvány típus I. Nagyon fontos A szolgáltatás által használt autentikációs sémát állítja be Meghatározza, hogy a kliens vagy a szolgáltatás „fogyasztója” milyen hitelesítéssel kell rendelkeznie

Kliens bizonyítvány típus - Üzenet None A kliensek nincsenek autentikálva. Megegyezik az Anonymous autentikációval. Windows A kliensek autentikálásához a szabványos Windows autentikálást használja Kerberos vagy NTLM-en keresztül. Username A kliens a felhasználói név és jelszó megadásával kerül autentikálásra egy szolgáltatás által. Certificate A kliens egy X.509-es tanúsítvány megadásával kerül autentikálásra egy szolgáltatás által. IssueToken A kliens Http Windows Integrated Authentication – nel kerül autentikálásra.

Kliens bizonyítvány típus - Szállítás None Megegyezik az Üzenet biztonságival. Windows Certificate Basic A kliens with Http Basic Authentication –nel kerül autentikálásra. Digest A kliens with Http Digest Authentication–nel kerül autentikálásra. NTLM A kliens with Http Windows Integrated Authentication–nel kerül autentikálásra.

Példa Konfigurációs modellben: Kódban: < wsHttpBinding > < binding name=”helloWorld” > < security mode=”Transport” > < transport clientCredentialType=”Windows”/ > < message clientCredentialType=”Windows”/ > < /security > < /binding > < /wsHttpBinding > Kódban: WSHttpBinding binding = new WSHttpBinding(); binding.Security.Mode = SecurityMode.Transport; binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows; binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;

Köszönöm a figyelmet! Vége… 