Lazán csatolt rendszerek • Informatikai rendszerek fejlődése elavulttá tette a régebbi rendszerfejlesztési paradigmákat. • Fizikai távolságok, nyílt hálózat. • Tervezési, implementálási és karbantartási célok könnyebben elérhetőek, ha komponensekre bontjuk a rendszert. • Ezeket a komponenseket laza kapcsolatba szervezve kapjuk meg a teljes rendszert. •
Lazán csatolt komponensű rendszerek.
SOA service-oriented architecture / szolgáltatásorientált architektúra Def.: • az elosztott rendszereknek egy lazán csatolt, • szabványokon alapuló, • protokoll- és platformfüggetlen megközelítése, amelyben a • szoftverek lényegében újrafelhasználható erforrások, amelyek a hálózaton keresztül úgynevezett szolgáltatásként érhetek el
SOA • Újrafelhasználhatóság, elosztottság, modularitás
Webszolgáltatások Web Services, WS • a Webszolgáltatásoka a SOA egyik legszélesebb körben elterjedt megvalósulása. • Alkalmazások közötti adatcserére szolgáló protokollok és szabványok gyűjteménye • World Wide Web Consortium, W3C
Webszolgáltatás architektúra •
háromszereplős modell:
Webszolgáltatás protokoll készlet • UDDI: Universal Description, Discovery, and Integration – A webszolgáltatásokat ezen protokoll segítségével teszik elérhetővé. Lehetővé teszi, hogy információt keressünk webszolgáltatásokról, így segítve a döntést, hogy felhasználjuk-e őket.
• WSDL: Web Services Description Language, WSDL – a webszolgáltatás nyilvános felülete a Webszolgáltatás leíró nyelvvel van leírva. Ez egy XML alapú leírása a webszolgáltatásokkal történő kommunikációnak.
• SOAP
SOAP • Simple Object Access Protocol – Régebbi elnevezés, ma már nem használják, mert félrevezető
• Üzenetküldésre használt, XML-alapú formátum, mely alkalmas változatos környezetbeli adatcserék lebonyolítására. • W3C szabvány • SOAP formátumot használó üzenetek különböző protokollok segítségével továbbíthatóak: – FTP, SMPT, HTTP
SOAP üzenet •
•
•
A header írja le, hogy hogyan kell az üzenetet feldolgozni, valamint prioritási, biztonsági stb. információkat is tartalmaz. A body tartalmazza az XML dokumentumokat. Az Attachment lehet XML vagy nem XML alapú bármilyen csatolmány, mint például egy szöveges fájl, kép stb.
Web Service protocoll stack
Előnyök • • • • • •
Különböző platformok közötti együttműködés. A webszolgáltatás nyílt szabványokat és protokollokat használ. Szövegalapú protokollok Http miatt a tűzfalak nem akadályoznak Integrált szolgáltatások Újrafelhasználhatóság
Hátrányok • Tranzakció kezelés nehézkes • XML: szövegalpú, lassúság • Tűzfalon való könnyű átjutás.
SAML Miért nem elég az SSL?
Budapesti Műszaki és Gazdaságtudományi Egyetem
Web szolgáltatások • XML nyelv használata SOAP üzenetekre SOA rendszerben (tehát nem kliens szerver architektúra, hanem elosztott, dinamikus rendszer)
• Bárhonnan elérhető (nem kell klienst telepíteni) • Vékony webes kliens: szabványosabb felhasználói felület • Elvárások: – Átküldött adatok sértetlensége és megbízhatósága (integrity and confidentiality)
– Web szolgáltatások sértetlensége – szolgáltatások közti bizalom (trust)
– Támadások felderíthetősége – Granularitás: üzenetek kezelése biztonsági házirendek alapján (security policy)
» különböző részeket különböző kulcsokkal, különböző algoritmusokkal » lehetnek titkosítatlan részek (nem bizalmas információt hordozó részek)
Miért nem elég az SSL • Transport level security – – – – – –
pont-pont üzenet csere teljes üzenet titkosítása szállítási rétegben biztonságos csatorna küldő félnek meg kell bíznia az összes közvetítőben használható protokollok szűkössége (HTTPs)
• Message level security – – – – – –
vég-vég üzenet csere az üzenet különböző mezőit más-más entitás olvashatja az üzenet a nem biztonságos neten megy alkalmazás rétegben különböző biztonsági előírások kérésnél / válasznál viszont: bonyolultabb, nagyobb odafigyelést igényel
• SSL nem támogatja az üzenetek tárolását: el kell tárolni a teljes titkosított bájtfolyamot és a használt kulcsokat, adatbeolvasáskor visszafejtés
Megoldások • XML dokumentumok titkosítása (W3C): WS megbízhatósága • XML aláírása (W3C és IETF): WS sértetlensége • SAML + XACML szabványok (Security Assertion Markup Language, eXtensible Access Control Markup Language) WS hitelesítés, jogosultságkezelés (szabványosító egyesület: OASIS - Organization for Advancement of Structured Information Standards SSTC - Security Services Technical Committee)
• Message Security: XML titkosítás és aláírás jellemzői • Reliable Messaging: üzenet kézbesítéséhez használt protokollok • XACML: hozzáférési házirend leíró nyelv • Mindhárom szinten SOAP üzeneteken végeznek műveleteket
SAML 1.0 • • • •
Dinamikusan integrálható XML alapú keretrendszer SSO használata belső hálózaton kívül Feladata: hitelesítés, jogosultság kezelés Három XML mechanizmusból áll: – Assertions: XML séma biztonsági nyilatkozatok számára – Protocol: XML séma kérés-válasz protokoll számára – Bindings: kötések, szabályok melyek szabványos szállítási és üzenetváltási keretrendszert biztosítanak az Assertion-ök számára
• Hitelesítési sémák: – Kerberos, PGP, x.509, SPKI, XML digital signature, Smartcard /PKI, SSL/TLS tanúsítvány alapú, TimeSync token, Telephony, Mobile, védett/ jelszó alapú
SAML Assertion szintaktika •
Nyilatkozat három állapotot vehet fel: – Authentication: a nyilatkozat tárgya adott jelentésű és adott idejű hozzáférés – Authorization: a nyilatkozat tárgya a kívánt erőforrás elérése – Attribute: a nyilatkozat tárgya valamilyen attribútum
• • • • • • • •
Version: 1.0 / 2.0 ID: a nyilatkozat azonosítója IssueInstant: UTC idő Issuer: SAML kiállító Signature: nyilatkozat integritásvédelme (opc.) Subject: infó a nyilatkozat állapotáról (opc.) Conditions: infó a nyilakozat érvényességéről (opc.) Advice: egyéb infó (opc.)
Federációs szolgáltatás • Circle of Trust: központosított hitelesítés, hozzáférés vezérlés • Nagyvállalatok esetén: partnerek, beszállítók • Identitás federáció: az egyik üzleti rendszer felhasználója úgy használja másik bizonyos szolgáltatásait, mintha az a sajátjához tartozna -> SSO
• Pl.: távközlési rendszerbe bejelentkezik a felhasználó, használja a számlázási-, hívásrészletező-, ügyfélszolgálati rendszert. • Adatszolgáltatás: csak a szükséges felhasználói adatok és csak a feldolgozáshoz kellő időben
SAML működése • 1: első igényelt szolgáltatás, policy attribútumokat szolgáltat az SAML-hez • 2: távoli szolgáltatás erőforrásának igénylése (pl. adatbázis) • 3: kliens elküldi az SAML kiszolgálótól kapott információkat a távoli erőforrásnak. • 4: SAML request • 5: SAML response • 6: SAML token elküldése • 7: távoli erőforrás használata
Google SAML (2.0) SSO szolgáltatás • SAML 2.0: SSO rendszereknek nem kell kapcsolatban lenniük, kommunikáció (token igénylés) a kliensen keresztül • Service provider: Google - Gmail, Start Pages és egyéb szolgáltatások • Identity providers (speciális service provider): partnerek – Kezeli: felhasználónevek, jelszavak, hitelesítési és jogosultságkezelés azonosítók a hosztolt alkalmazásokhoz – Identity provider megoldások: OpenSSO (Java), simpleSAMLphp…
Google működés előtt a partner megadja a Google felé az SSO szolgáltatás URL-jét és a nyilvános kulcsot
•partner SSO URL-ben - SAML kérés - user cél URL (Google alkalmazás) - Google ACS URL Ha már van eltárolt SAML adat, akkor rögtön beléptetés
• benne a hitelesített felhasználó neve •digitális aláírással ellátva DSA/RSA itt egy Javascript: automatikus továbbítás Google felé, vagy manuálisan: Submit gomb
Bevezetés • Miért is van szükség az XML titkosításra és aláírásra? (end-to-end) • Mi az új és mi a régi? • Biztonsági szabványok (W3C) – XML Signature (XML DSIG) – XML Encription (XML ENC) – XML Key Managment System (XKMS)
XML titkosítás • <EncryptedData Id? Type? MimeType? Encoding?> <EncryptionMethod/>? <EncryptedKey>?
? ? ? ? ? ? ? <EncryptionProperties>?
XML titkosítás • <EncryptedData> Az <EncryptedData> elem a gyökérelem, amely tartalmazza az összes gyermekelemet. Négy opcionális attribútuma van: – Id: a titkosított adat egyedi azonosítója – Type: megadja, hogy a titkosított adat egy elem, vagy egy elem tartalma stb (lsd. később). – MimeType: megadja a tartalom MIME típusát (Pl.: text/xml, image/jpg stb.) – Encoding: a transzformációs kódolást adja meg (általában Base64-kódolású)
XML titkosítás • Az XML Encryption során használt algoritmusok • URI (Uniform Resource Identifier) • Blokk rejtjelezés (Block Encryption) – TRIPLEDES (3DES – 3x Data Encryption Standard):
XML titkosítás • Kanonikalizáció (Canonicalization, C14N): inkluzív és exkluzív, melyek figyelembe vehetik a megjegyzéseket vagy sem. • PL. <doc>Hello, world!
Általános forma (kommentek nélkül) <doc>Hello, world!