Semantic Web und Trust
Hauptseminar Web Engineering, SS 2008
Professur Verteilte und Selbstorganisierende Rechnersysteme
Technische Universität Chemnitz
- Vorstellung über Probleme und Lösungen zur Vertrauenswürdigkeit der Herkunft von Daten im Semantic Web
Übersicht
- Gesamtüberblick & Einordnung
- Notwendigkeit eines "Web of Trust"
- Exkurs in gängige Sicherheitsmechanismen
- XML-Signaturen
- XML-Verschlüsselung
- Bewertungs- & Reputationssysteme
- Vertrauensstrategien
- Wo setzt der Trust-Layer im Semantic Web an? Wozu braucht man das ganze? Wo liegen die Probleme und was gibt's für Lösungen?
- eigentliches "Vertrauen" ... Erwartung an Kompetenz, Objektivität unter Abwägung von Kontext & Risikoabschätzung
- Signatur als elektronischer Identitätsnachweis in XML, komplett oder auch nur teilweise
- Vertraulichkeit von XML-Dokumenten, die bloß für bestimmt Empfänger gedacht sind
Die Vision ;-)
Randy Siegel: What Google's homepage may look like in 2084.
aus: New York Times, 10.10.2005
- Randy Siegel ist Präsident und Verleger von Parade Publications
- http://www.nytimes.com/imagepages/2005/10/10/opinion/1010opart.html
Das Semantische Web
The Semantic Web is a vision: the idea of having data on the web defined and linked in a way that it can be used by machines not just for display purposes, but for automation, integration and reuse of data across various applications. (Tim Berners-Lee)
Philosophie
- "Semantic" ... deklarativ auf Kommunikation ausgerichtet: für Maschinen lesbar, für Menschen nachvollziehbar
- "Web" ... navigierbarer Raum mit selbstbeschreiben-
den Dokumenten und URIs als Grundlage
- Zitat vom Keynote auf der Emerging Technologies Conference am MIT, September 2004 (Video)
- Daten im Web sollen also nicht einfach nur gelesen (bzw. von Menschen verstanden) werden können, sondern maschinenlesbar definiert und verlinkt werden, um von verschiedensten Applikationen automatisch verarbeitet und interpretiert werden zu können
- Vision vom Keynote zum Semantic Web auf der "XML 2000" am 06.12.2000
- Semantic: nicht natürlichsprachlich - Schwerpunkt auf das, was man mit den Daten anstellen kann
- Web: "neues Genre der Kommunikation" - Uniform Resource Identifier zum statischen Abbilden geeignet, gehen aber zur Identifizierung nicht weit genug
Der "Layer Cake"
Quelle: http://www.w3.org/2007/03/layerCake.png
- Latest Layer, Stand Mai 2007
- schon in der "Semantic Web Road map" von 1998 vorgesehen, seitdem immer mal geändert/verbessert
- Trust: grob "trusted rating services" und Rechtevergabe für Gruppen (z.B. Freunde)
- Crypto: war vorher nur Digital Signature, jetzt Zusammenfassung mit zusätzlich Verschlüsselung
- Proof (Beweis): Zurückverfolgung der Schritte des Semantic Web Agent möglich, mit denen er zu einer bestimmten Schlussfolgerung gekommen ist
- oben = wichtigstes Thema, Ontologien muss Vertrauen geschenkt werden können
Notwendigkeit
The Web works though anyone being (technically) allowed to say anything about anything. (Tim Berners-Lee)
- Zitat: Jeder kann alles sagen, wahr oder falsch, und auch das Semantische Web kann daran nichts ändern
- Problem: Maschinen bzw. Agenten müssen Vertrauenswürdigkeit selbst beurteilen, zusätzlich im Kontext, z.B. wer wann aus welchem Grund etwas gesagt hat
- darüber hinaus Vertrauen in Kommunikation benötigt, z.B. wichtig für elektronischen Handel
- Verbindlichkeit: Ist die Nachricht wirklich beim Empfänger angekommen?
- Autorisation: Kann Empfänger wirklich nur für ihn bestimmte Nachrichten lesen?
- Vertraulichkeit: Hat die Nachricht wirklich niemand sonst mitgelesen? (Verschlüsselung)
- Authentizität: Ist der Absender wirklich echt?
- Datenintegrität: Wurde die Nachricht nach dem Versenden geändert? (beides Signatur)
Gängige Sicherheitsmechanismen
- Verschlüsselung
- symmetrisch ... gleicher Schlüssel zum Codieren und Decodieren (SSL)
- asymmetrisch ... öffentl. Schlüssel codiert, privater Schlüssel decodiert (PGP)
- Signatur
- inverse Verschlüsselung ... privater Schlüssel codiert und öffentlicher Schlüssel decodiert den Hash-Wert der Daten, Empfänger vergleicht mit eigener Berechnung
- Zertifizierung
- zentrale Stelle verwaltet öffentl. Schlüssel, prüft persönliche Identität des Inhabers und erstellt Zertifikat zum Nachprüfen
- Secure Sockets Layer nutzt symmetrische Verfahren wie DES und AES (Data/Advanced Encryption Standard)
- Symmetrie vereinfacht: über definierte Regeln, z.B. vertauschte Buchstaben
- Pretty Good Privacy mit RSA (veraltet)
- Signierung für Absenderauthentizität (hat privaten Schlüssel) und Integrität (Hash), Verfahren hier stark vereinfacht
- zahlreiche Certification Authorities, z.B. TUC/DFN/Telekom (für Angehörige, zeitl. begrenzt), CaCert (frei), VeriSign (SSL 1.299 EUR/Jahr), Kosten abhängig von Verbreitung in den Browsern
Probleme
- Dokumente können jetzt aus vielen Teilen und Quellen zusammengesetzt werden
- unterschiedliches Vertrauen in verschiedene Ressourcen
- herkömmliche Verschlüsselungs- & Signaturverfahren dafür ungeeignet
- Lösung: XML-Signature und XML-Encryption
- keine sichere Kommunikation zw. mehr als 2 Agenten
- übliche Verfahren nicht für teilweise Codierung gedacht
- einzelne XML-Teile mit Zugriffsrechten für bestimmte Nutzgruppen müssen behandelt werden
- beides W3C Recommendations von 2002 ... Signature 12.02. ... Encryption 10.12.
XML-Signature - Funktion
- Problem: semantisch gleiche Dokumente können syntaktisch unterschiedlich beschrieben werden
- Lösung: Kanonisierung und Transformation vor Generierung der Signatur
- Generierung: für jedes zu signierende Element Referenz erstellen und Fingerabdruck berechnen, anschließend komplette Signatur erzeugen
- Validierung:
- zuerst Referenzen validieren
- öffentlichen Schlüssel und kanonisierte Form ermitteln, Fingerabdruck berechnen, Signatur entschlüsseln und vergleichen
- z.B. Reihenfolge kann variieren, das hat Auswirkung auf Signaturalgorithmus
- deswegen Elemente vorher standardkonform anordnen und in Normalform bringen
- Definition anzuwendender Transformierungen (in anderes Format) möglich
- Gen.: ggf. mit Transformation, dann davon Fingerabdruck berechnen, Reference Element erzeugen (mit Identifikation, Transformation, Message Detection Code (MDC)/Fingerabdruck)
- dann SignedInfo Element erzeugen (enthält alle Reference Elemente), dieses kanonisieren, anschließend Fingerabdruck berechnen, diesen verschlüsseln, Signature-Element erzeugen (enthält dann SignedInfo, KeyInfo und Signaturwert)
- Val.: selbst ggf. URIs für Transformationen ermitteln, Fingerabdruck berechnen, mit dem aus dem Reference Element vergleichen
- öffentlicher Schlüssel z.B. aus Keyinfo Element für die Decodierung/Bestätigung, kanonisierte Form ermitteln, berechnen des Fingerabdrucks über SignedInfo, entschlüsseln des Fingerabdrucks aus der Signatur & vergleichen
- Grob: XML-Dokument mit einzelnen Objekten A,B,C -> Signaturen je für A, B & C -> alles zusammen nochmal signieren (damit ist auch Zusammenstellung validiert)
XML-Signature - Beispiel
- Signatur speziell für XML-Dokumente
<Signature Id="MyFirstSignature" xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/>
<Reference URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/">
<Transforms>
<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>MC0CFFrVLtRlk=...</SignatureValue>
<KeyInfo>
<KeyValue>
<DSAKeyValue>
<P>...</P><Q>...</Q><G>...</G><Y>...</Y>
</DSAKeyValue>
</KeyValue>
</KeyInfo>
</Signature>
- <Signature> ... Wurzelelement, worin Signatur untergebracht wird
- <SignedInfo> ... Kanonisierung (Normalform), SiMe SignedInfo -> SignatureValue, referenziertes (ext.) Objekt mit schrittweiser Transformationen (opt.), Sig.-Methode der Ref. und Signatur
- <SignaturValue> ... enthält eigentliche Signatur (in Base64-Codierung, damit ohne Sonderzeichen)
- <KeyInfo> ... optional (falls Signierer Daten nicht preisgeben möchte/ Schlüssel anderweitig verteilt wurde), öffentlicher Schlüssel bzw. mehr Information dazu
- Beispiel von http://www.w3.org/TR/xmldsig-core/#sec-o-Simple
XML-Signature - Einbindung
- Möglichkeiten der Einbindung
- Enveloped Signature: Einbetten der Signatur in das unterschriebene Objekt
<dokumentPart Id="dok"> ...inhalt... <Signature>...<Reference URI="dok"/>...</Signature> </dokumentPart>
- Enveloping Signature: Einbetten des unterschriebenen Objekts in die Signatur
<Signature>...<Reference URI="obj"/>...
<Object Id="obj"> ...dokumentPart... </Object>
</Signature>
- Detached Signature: Referenzierung des unterschriebenen Objekts über eine URI
<dokumentPart>
<Signature>...<Reference URI="http://..."/>...</Signature>
</dokumentPart>
- Detached Signature meist so genutzt/Standardfall
- praktische Anwendung z.B. bei Webservices in SOAP-Nachrichten, Signatur im Header und Inhalt/Teile im body signiert
- zusammenfassend: gutes Werkzeug um Authentizität (des Absenders) und Datenintegrität sicher zu stellen
XML-Encryption - Einführung
- Verschlüsselung speziell für XML-Dokumente
<?xml version='1.0'?>
<PaymentInfo xmlns='http://example.org/paymentv2'>
<Name>John Smith</Name>
<CreditCard Limit='5,000' Currency='USD'>
<Number>4019 2445 0277 5567</Number>
<Issuer>Example Bank</Issuer>
<Expiration>04/02</Expiration>
</CreditCard>
</PaymentInfo>
- Verschlüsselungsmöglichkeiten
- gesamtes XML-Dokument
- gesamtes XML-Element
- Inhalt eines XML-Elements
- Textinhalt eines XML-Elements
- alles, hier Rest nach <?xml ...>
- gesamtes Element mit Name, Inhalt & Kind-Elementen, hier z.B. CreditCard
- Inhalt eines XML-Elements, hier z.B. Number inkl. Tag
- Textinhalt eines XML-Elements (ohne Kind-Elemente!), z.B. hier nur Inhalt von Number ohne Tag
- Verschlüsselungsverfahren über URI referenzierbar -> frei wählbar
- Beispiel von http://www.w3.org/TR/xmlenc-core/#sec-eg-Granularity
XML-Encryption - Beispiel
<EncryptedData Id='ED' xmlns='http://www.w3.org/2001/04/xmlenc#'
Type='http://www.w3.org/2001/04/xmlenc#Element'>
<EncryptionMethod Algorithm='http://www.w3.org/2001/04/xmlenc#aes128-cbc'/>
<ds:KeyInfo xmlns:ds='http://www.w3.org/2000/09/xmldsig#'>
<ds:RetrievalMethod URI='#EK' Type="http://www.w3.org/2001/04/xmlenc#EncryptedKey"/>
<ds:KeyName>Sally Doe</ds:KeyName>
</ds:KeyInfo>
<CipherData><CipherValue>DEADBEEF</CipherValue></CipherData>
[<EncryptionProperties>]
</EncryptedData>
- Wiederverschlüsselung von <EncryptedData> zur "Super-Encryption" möglich
- Verschlüsselungsverfahren über URI referenzier- und somit frei wählbar
- <EncryptedData> ...Beginn/Ende des verschlüsselten Blocks
- über Type-URI kann Verschlüsselungsverfahren bestimmt werden
- <EncryptionMethod> ... Information über verwendeten Verschlüsselungsalgorithmus
- <KeyInfo> ... bei asym. Verfahren Infos über öffentlichen Schlüssel
- RetrievalMethod zum Schlüssel, URI sagt wo, Type ist Typ
- alternativ über KeyName, enthält Name eines symmetrischen Schlüssels
- <CipherData> ... verschlüsselte Daten des ursprünglichen Blocks, wieder in base64
- <EncryptionProperties> ... bestimmte Eigenschaften, z.B. time stamp
- Super-Encryption nützlich für hierarchische Zugriffsrechte
XML-Encryption - Funktion
- Verschlüsselung über Hybridverfahren
- Daten nur symmetrisch verschlüsselt
- sym. Schlüssel asymmetrisch verschlüsselt und in chiffriertes XML-Dokument eingefügt
- Verfahren z.B. auch bei SSL verwendet, asym=hohe Sicherheit, sym.=schnell mit niedrigen Anforderungen an Rechenleistung
- "XML Encryption Working Group" entwickelte XML-Encryption Syntax/Verarbeitung und Decryption Transformation für XML-Signature ... u.a. Microsoft, IBM, VeriSign, Motorola & Sun involviert
Bewertungs- & Reputationssysteme
- keine Kontrolle veröffentlichter Inhalte
- Agenten müssen auch ohne komplette Informationen Aussagen treffen zu können
- Aufbau & Verbreitung eines Vertrauensnetzwerks notwendig
- "Open Rating Systems"
- einheitlicher, globaler Wert durch Bewertungen aus verschiedenen Quellen
- Meta-Ranking: Beurteilung der Qualität der Bewertungen an sich
- eigentliches "Vertrauen"/Trust (Vorhandensein von Kompetenz, Wahrung von Ausgewogenheit) und wie kann das anderen mitgeteilt werden
- Reputation = Ansehen eines Menschen/Gruppe, im weitesten Sinne auch Kompetenz bzw. Wertschätzung: wenn viele jemandem vertrauen, dann können andere das auch
- Sem. Web weiterhin frei: jeder darf alles sagen ohne (zentrale) Kontrolle
- Aggregation (Assoziation verschiedener Objekte) zu einem Wert, z.B. 0,6
- Meta-Ranking ... Woher? In welchem Zusammenhang?
Meta-Ranking
- Bewertungen von Agenten untereinander und von Objekten
- Beurteilung unbewerteter Objekte kann durch Vertrauensbeziehungen zu anderen Agenten generiert werden
- eigene Reihenfolge muss selbst erstellt werden
- Bsp.: Wertungen für Objekte und links auch untereinander nach Relevanz
- eigene Toplist als Ranking-Problem, Top-N reicht meist aus
Reputationsnetzwerke
- direkte Kante entspricht direkter Reputation, hier für B von A aus
- indirekte Reputation über Pfade mittels anderer Agenten
- Problem: "böse" Knoten mit schlechter Reputation & falschen Bewertungen der Nachbarknoten
- jetzt lokal: wie sieht ein Agent seine Welt bzw. bewertet in Abhängigkeit seines Vertrauens zu anderen Agenten
- rekursive Anfrage an Nachbarknoten mit guter Reputation über Kanten zu unbek. Agenten -> sammelt verschiedene Reputationen und berechnet eigenen Wert
- Analogie zu Wirtschaft: Beziehungen zu anderen Unternehmen verleihen jungen Unternehmung gewisse Reputation, z.B. Partnerschaft mit Microsoft bringt Vertrauensgewinn im IT-Bereich
Vertrauensstrategien
- Vertrauen als Grundvoraussetzung für Interaktion
- Ziel: maximaler Nutzen bei minimalem Risiko
- Probleme mit kontextabhängigem Vertrauen
- 5 Basis-Strategien
- optimistisch ... vertraue jedem, bis es Gegenargumente gibt
- pessimistisch ... misstraue jedem, bis es Gegenargumente gibt
- zentral ... Zertifizierung und Weitergabe von Vertrauen
- recherchierend ... autonomer Vertrauensaufbau zw. zwei Agenten
- transitiv ... Vertrauensbildung über Reputationsnetzwerke
- Risikoabschätzung quantifizierbar durch anfallende Kosten
- Vertrauen gebildet durch Informationsbeschaffung und -auswertung
- Kontextabhängigkeit: In welchen Fällen kann Agenten getraut werden?
- Wechsel & Kombination von Strategien möglich
- opt.: bei großem Nutzen und geringem Risiko bzw. schneller Netzwerksinitialisierung
- pess.: bei hohem Risiko/Kosten & geringem Nutzen
- zen.: zentrale Zertifizierungsstelle sammelt Feedbacks der Agenten nach jeder Interaktion, jeder muss Autorität vertrauen (Bsp. vom Meta-Ranking)
- rech.: Agenten handeln unter Aufsicht eines dritten, dem beide vertrauen, schrittweises eine Art Vertrag aus
- tra.: meist nur näherungsweise transitiv (A->B->C != A->C), sehr kontextabhängig
- Welche davon die richtige bei keinem Wissen über Umgebung? Will maximalen Nutzen & in bestimmter Zeit Vertrauen erreicht/berechnet haben
- Operationale Kosten: Realisierung vs. Komplexität (Ressourcenbedarf) ... gering: Opt./Pess., hoch: Rest
- Opportunitätskosten: wenn Möglichkeit für max. Nutzen nicht wahrgenommen wird ... gering: Optimismus, hoch: Pessimismus
- Ausfallkosten: wenn man von einem Agenten betrogen wird ... gering: Pessimismus, hoch: zentral (Misstrauen in Autorität)
Quellen
- Tim Berners-Lee. (1998). Semantic Web Road map. WWW: http://www.w3.org/DesignIssues/Semantic.html (Stand: 24. Mai 2008)
- Tim Berners-Lee. (2000). Semantic Web - XML2000. WWW: http://www.w3.org/2000/Talks/1206-xml2k-tbl/ (Stand: 24. Mai 2008)
- Christoph Meinel, Harald Sack: WWW - Kommunikation, Internetworking, Web-Technologien. Springer, Heidelberg (u.a.) 2004 [TUC-Bib: ST 205 mei]
- Bartel, Boyer et al. (2002). XML-Signature Syntax and Processing. WWW: http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/ (Stand: 24. Mai 2008)
- Imamura, Dillaway et al. (2002). XML Encryption Syntax and Processing. WWW: http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/ (Stand: 24. Mai 2008)
- Harald Sack. (2007). Semantic Web - Web of Trust. WWW: http://www.db-thueringen.de/servlets/DerivateServlet/Derivate-10503/semweb-08_WebOfTrustXXL.pdf
- O'Hara, Alani et al. (2004). Trust Strategies for the Semantic Web. WWW: http://eprints.aktors.org/372/01/ISWC04-OHara-final.pdf
Vielen Dank für Ihre Aufmerksamkeit.
Fragen? Wünsche? >Anregungen?
|