DŮVĚRAŮ Ě A SÉMANTICKÝ WEB Technologie sémantického webu (4.11.2010) Roman Špánek
Obsah 2 Úvod Sémantický web, bezpečnost a důvěra Možné přístupy Reputační č systémy Závěr
Bezpečnost a budoucnost 3 Slibná myšlenka Sémantického webu Softwaroví agenti Neomezená dostupnost relevantních informací Jak řešit bezpečnost č a zajistit soukromí uživatelům?
Důležité pojmy 4 Autentifikace potvrzení identity Autorizace povolení nebo odmítnutí přístupu p Integrita předejít nedetekovaným modifikacím dat Důvěryhodnost zamezení neautorizovaného čtení dat Audit zachování evidence Administrace konfigurace
Jak řešit bezpečnost? I 5 Silné kryptografické algoritmy pro zabezpečení vlastní komunikace na úrovni kanálů zpráv
Jak řešit bezpečnost? II 6 Využít existujících řešení, jako KERBEROS PKI PGP Jak to bude fungovat v případě systému jako je (Sémantický) web?
Jak řešit bezpečnost? (pokr.) 7 Co tedy potřebujeme? Bezpečnostní systém, který bude Flexibilní Sémanticky bohatý Jednoduchý automatizovatelný
Důvěra 8 Direct trust Hierarchical Trust Indirect trust Wb Web of Trust PGP trust notion
Policy based-existující existující mechanizmy 9 XML digitalit signatures Definuje pravidla pro podpisování XML dokumentů Podporuje všechny dostupné technologie XML encryption Definuje pravidla a pro kódování XML a parametrů a ů záznamu Podpora obecně dostupných technologií X.509 Public Key Certificates Extensible Access Control Markup Language (XACML) Policy language (jazyk pro popis politik)
XML digital signatures 10 Základní vlastností je schopnost podepsat pouze specifickou část XML dokumentu
Jak vytvořit XML Signature 11 1. Stanovíme, které zdroje budou podepisovány 2. Vypočteme hash (otisk) pro každý zdroj <DigestValue> <Reference URI="http://www.abccompany.com/news/2000/03_27_00.htm"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue> </Reference> <Reference URI="http://www.w3.org/TR/2000/WD-xmldsig-core-20000228/signatureexample.xml"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>UrXLDLBIta6skoV5/A8Q38GEw44=</DigestValue> </Reference> <DigestMethod> element identifikuje algoritmus použitý pro výpočet č hashh
Jak vytvořit XML Signature II 12 Stanovit všechny referenční elementy <CanonicalizationMethod> element indikuje algoritmus použitý pro kanonizaci elementu <SignedInfo>. Element <SignatureMethod> element identifikuje algoritmus použitý pro výpočet hodnoty podpisu. Podepisování element <SignedInfo>, hodnota podpisu je uložena v elementu<signaturevalue> t l Přidání informaci klíče Pokud se má informace o použitém klíče uložit pak se použije Pokud se má informace o použitém klíče uložit, pak se použije element <KeyInfo> (např. X.509 certifikát pro odesílatele)
Jak vytvořit XML Signature III 13 Přiložit element Signature Uložit elementy <SignedInfo>, <SignatureValue> a <KeyInfo> do <Signature> Element <Signature> obsahuje XML signature.
Ukázka dokumentu podepsaného pomocí XML Signature 14 <faktura cislo="12/2000" vystaveni="2.2.2000" splatnost="16.2.2000"> <odberatel> <nazev>poučená, a.s.</nazev> <adresa>široká 21, Praha 1, 110 00</adresa> </odberatel> <dodavatel> <nazev>xmlcompany, s.r.o.</nazev> <adresa>dlouhá 12, Praha 1, 110 00</adresa> </dodavatel> <polozka> <popis>analýza nasazení XML v podnikovém IS</popis> <cena dph="5">50000</cena> </polozka> <polozka> <popis>xml Editor - 10 licencí</popis> <cena dph="5">128956</cena> </polozka> <polozka> <popis>notebook micromini</popis> <cena dph="22">89500</cena> </polozka> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n- 20010315#WithComments"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <Reference URI=" > <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> p// g/ / / g / <DigestValue>AOz+uJFiTA40hbArhXycZl5V0PM=</DigestValue> </Reference> </SignedInfo> <SignatureValue>IdPPqheBUJEz4dn8cdMUlzt2L49ZP0uKm5f0cFe+Fg3AtvGuclQjQA==</Signa turevalue> <KeyInfo> <X509Data> <X509Certificate>MIIDHjCCAtwCBEOXYIkwCwYHKoZIzjgEAwUAMHUxCzAJBgNVBAYTAm N6MR </X509Certificate> </X509Data> </KeyInfo> </Signature> </faktura>
Verifikace XML signature 15 1. Verifikace fk podpisu v elementu <SignedInfo> pomocí vypočtení hash z <SignedInfo> (používáme algoritmus z <SignatureMethod>). 2. Použijeme veřejný klíč pro ověření hodnoty elementu <SignatureValue>, že je správný vůči elementu <SignedInfo>. 3 Pokud ověření proběhlo v pořádku, pak přepočítáme 3. Pokud ověření proběhlo v pořádku, pak přepočítáme hash referencí elementu <SignedInfo> a porovnáme jej s hash pro každý element <DigestValue> odpovídající elementu <Reference>.
XACML extensible Access Control Markup Language 16 XACML definuje obecný pravidlový jazyk použitý k ochraně zdroje. Současně definuje jazyk pro rozhodování o přístupu. Značkovací jazyk byl standardizován OASIS. XACML popisuje: Jazyk pro rozhodování o politikách Jazyk pro požadavek a odpověď
XACML (Příklady politik) 17 Tisková služba může přistupovat k tiskárnám a dočasným úložištím místo uživatele Primář má přístup ke všem záznamům pacientů poslaných na vyšetření ke specialistovi Kdokoliv může přistupovat k webovému serveru mezi 1 a 4 hodinou ráno
Cíle XACML 18 Schopnost lokalizovat politiky v distribuovaném prostředí Schopnost federovat správu politik nějakého zdroje Schopnost delegace na základě politik Využitelnost v různých prostředích Typů zdrojů, Subjekty, Akce Lokace a kombinace politik
XACML Policy Enforcement Point Subjekt (např. člověk, počítač, agent) chce provést akci nad konkrétním zdrojem. Subjekt odešle požadavek entitě chránící zdroj (např. souborový systém, webový server). Tt Tato entita se nazývá ýá Policy Enforcement Point (PEP). http://sunxacml.sourceforge.net/
XACML Policy Enforcement Point PEP zformuluje dotaz (za použití XACML jazyku) založený na atributech: Subjekt Akce Zdroj Další relevantní informace http://sunxacml.sourceforge.net/
XACML Policy Development Point Obdrží a prozkoumá dotaz. Získá použitelné politiky (napsané v jazyce XACML). Rozhodne zda by měl být přístup povolen. Vrací rozhodnutí PEP http://sunxacml.sourceforge.net/
Policy based-existující existující mechanizmy 22 The Platform for Pi Privacy Preferences (P3P) Definováno W3C pro popis zabezpečení (privacy) stránek, tak aby yp prohlížeče sami rozhodovali, zda zabezpečení koliduje s uživatelovými preferencemi nebo ne Standardní schéma pro data, které může webový server sbírat. Způsob jak připojit politiky pro webové stránky a cookies. XML formát pro vyjádření politik. Mechanizmus pro transport P3P politik pomocí HTTP. Role Based Access Control (RBAC)
P3P architektuta a procesy 23 Elementy P3P web-context: t Preference pro použití privátních dat vyjádřené webovými uživateli Preference je pravidlo nebo množina pravidel stanovených webovým uživatelem, která specifikuje, které akce uživatelům agent bude oprávněn udělat při komunikaci se službou (preference může být vyjádřena ve formě textu nebo lépe strojově zpracovatelném formátu) Praktiky popisující í co je plánováno á sta daty dělat P3P protokol umožňující přístup k takovým informacím obsahuje: Webový prohlížeč vydávající požadavek na praktiky a webový server odpovídající na dotazy stanoviskem obsahujícím sérii tvrzení Stanovisko je popis dat, která bude webový server požadovat, co bude s daty webový server dělat a následky, které to bude mít pro uživatele Funcionalita P3P je zabudován do webových prohlížečů, serverů, případně do proxy serverů.
Zjednodušený popis základního procesu 24 Webový prohlížeč č se zabudovaným získá od P3P webového serveru prohlášení Webový prohlížeč porovná prohlášení s uživatelovými preferencemi Pokud souhlasí, pak webový prohlížeč i server pokračují v komunikaci Pokud nesouhlasí, pak může webový ýprohlížeč: Zkusit vyjednávat s webovým serverem, aby získal souhlas mezi prohlášením a uživatelovými preferencemi Upozornit uživatele na neshodu, aby uživatel mohl: Vydat svolení k další komunikaci přes nesouhlas prohlášení Zkusit získat další informace k prohlášení serveru manuálně Zrušit další interakci se serverem
Systémy pro správu důvěry 25 Policy based Reputation based Social Networks based
Reputation based existující mechanizmy (pokr.) 26 Virtuální organizace Virtuální komunity Jde tedy o vytvoření ř skupin uživatelů a tyto t pak udržovat (spravovat) umožnit jejich dynamický vývoj
Reputation based existující mechanizmy (pokr.) 27 Vytvoření Celá řada postupů Správa dynamického vývoje Největší problém Nesmí degenerovat
Reputation and Trust 28 Reputace a důvěra hrají pilotní úlohu v lidské společnosti při navazování kontaktů a možné další vzájemné spolupráce Reputace: je názor veřejnosti na osobu, skupinu lidí, organizaci, zdroj, Na základě reputace pak odvodit důvěru jedné Na základě reputace pak odvodit důvěru jedné strany v jinou stranu v rámci určitého kontextu
Kde všude reputace? 29 P2P sítě ecommerce (wbay, Amazon, ubid, and Yahoo) Redukují riziko podvodu, zlepšují spokojenost zákazníka či pomáhají redukovat možné transaction-specific rizika Inauthentic content (pollution) v sítích pro sdílení dl souborů Výběr nejlepšího zdroje dat Wikipedia pro určování kvality příspěvku
30 Reputation based existující íí mechanizmy Budovat důvěru mezi poskytovatelem dat, služeb a klientem na základě historických transakcí V současné době využívá řada webových portálů např. ebay, aukro.cz,
Social-network based existující mechanizmy 31 Využití metod z oblasti sociálních sítí pro budování důvěry Virtuální organizace Virtuální komunity Nová sociální stránka internetu Social Web (Friendster, dt MySpace, LinkedIN, )
Základní stavební kameny pro Rep. Systémy 32 Formulace. Abstraktní matematická formulace jak se bude odvozovat reputace na základě vstupních dat do použitelné metriky Kalkulace. Vlastní algoritmus, který bude počítat reputaci pro daný systém či konfiguraci Konkrétní implementace pro cílové prostředí Např. od kolika uzlů se musí získat hodnocení, aby šla spočítat reputace Použití a šíření. Mechanizmus definující, jak se ostatní uzly mohou k reputaci dostat.
33
Formulace 34 Především je třeba rozlišovat: Zdroj vstupních dat Manuální je třeba specifikace, jak převést kvalitativní hodnocení do kvantitativního (Bayesian procedures, Fuzzy logika) Automatické z chování entity (počet chyb, využití uzlu jeho okolím, ) Typ informace Pozitivní Negativní Kombinace Metrika reputace Binární Diskrétní (stupně reputace) Spojitá
Kalkulace 35 Není triviální je třeba mít např. distribuovanou implementaci alg., třeba řešit odolnost kalkulace proti případné manipulaci se vstupními daty, Struktura kalkulace: Centralizovaná (ebay) single point of failure Distribuovaná Kalkulace Deterministický model Pravděpodobnostní model (Markov models, Bayesian models, )
Šíření reputace 36 Struktura šíření: í Centralizované (klastry ebay) Distribuované (každý zel má část hodnot - distributed hash tables, robustnější) Způsob šíření: Deterministický i i (DHT,..) Pravděpodobnostní (probabilistic broadcast,flooding,..) Uložení: Krátkodobé (volatilní paměti) Dlouhodobé (nevolatilní paměti třeba řešit zabezpečení) Redundance šíření: Redundantní uložení, redundance zpráv při šíření,..
Útoky na reputační systémy 37 Kvůli otevřenosti je možné mít útoky zevnitř i zvenku selfish nebo malicious Samostatně nebo skupiny útočníků
Typy útoků 38 Self-Promoting Whitewashing Slandering Orchestrated Denial of Service
Self-promoting. 39 Uzel se snaží podvrhnout svojí reputací, tím že si generuje pozitivní hodnocení či napadne šíření hodnocení Případně celá skupina útočníků zvyšuje svoje vlastní hodnocení Řešení: Vyžadovat důkaz provedených transakcí (dig. podpisy), znemožnit útočníkovi získat více identit (soc. sítě) Hledání skupin, které komunikují výhradně samy se sebou (NP úplné)
Whitewashing. 40 Zneužít systém po krátkou dobu a pak využít slabinu systému a utéct následkům svého konání Např. pomocí vstupu do systému s jinou identitou Útok na formulaci (speciálně pro negativní hodnocení nový člen má vysoké vstupní hodnocení) Je třeba rozlišovat stáří jednotlivých hodnocení (zneužívání je krátké) behavior oscillation
Slandering (pomluva). 41 Útočníci manipulují s reputacemi ostatních pomocí podvržených hodnocení Především tam, kde je nedostatečné ověřování identit a citlivost na záporné hodnocení Používat přísnější ověřování zpětného hodnocení
Orchestrated. 42 Skupina útočníků využije společné síly a kombinace více metod Útok na formulaci, ale i kalkulaci a šíření Např. oscillation attack útočníci rozdělení na skupiny co mají různé role a různých časech. Jedna skupina se chová dobře dobře a druhá zneužívá systém, pak se role prohodí a první skupina pomůže získat zpět dobré hodnocení skupině druhé.
Denial of Service 43 Útok na kalkulaci či šíření, aby systém neodpovídal Napadání cest šíření reputací (např. pokud se šíří pomocí nejdůvěryhodnějších cest) Počítání reputací v přesně určených časech Řešení: distribuovaná implementace a šíření
Obrana proti útokům 44 Sybil (více identit) Svazovat dig. Identitu s fyzickou (IP, ) Vyžadovat od každé nové identity nějakou protislužbu (výpočetní výkon, ) Využít sociální sítě pro detekci uzlů s více identitami Využití grafových postupů
Zmírňování dopadu generování pomluv 45 Svazovat hodnocení s konkrétní transakcí pomocí dig. certifikátů a podpisů Problém jak zamezit šíření nepravdivého hodnocení pokud jej j generuje celá skupina útočníků
Zmírňování dopadu šíření pomluv 46 Nenastává pokud máme jen přímé hodnocení, to však není možné ve větších systémech, kde ne všechny uzly spolu komunikují (symetricky) Využití Bayesovského frameworku, kde pravděpodobnost, že uzel se bude chovat špatně je daná Beta rozdělením Koncepty z teorie řízení pomocí zpětné vazby
Preventing Short-term Abuse of the System 47 Zneužít systém a pak jej opustit a založit si novou identitu Řešení: Nové identity mají nízkou reputaci Nové identity se musí chovat po určitý čas dobře, aby získaly vyšší reputaci Přísněji hodnotit špatné chování v blízké minulosti behavior oscillation
DĚKUJI ZA POZORNOST