Sicherheit und Vertraulichkeit ƒ Aspekte ƒ Verschlüsselung Grundlagen Verfahren ƒ Sicherheit in mobilen Agentensystemen ƒ Zahlungssysteme Sichere Transaktionen Micro Payment Vorlesung Softwareagenten 7-1 Motivation ƒ Voraussetzung für Verbreitung von Agentensystemen Vertraulichkeit der benutzerspezifischen Daten (Profil, Passwörter, Kreditkartendaten) keine Möglichkeit zur Manipulation bzw. zum Mißbrauch durch Dritte Vertrauen in Entscheidungen und Aktionen des Agenten Vorlesung Softwareagenten 7-2 Motivation ƒ Risiken Identifizierung von Teilnehmern, Maskerade unbefugtes Mitlesen oder Modifizieren von Informationen Bestreiten des Sendens bzw. Empfangens von Informationen Bekanntwerden vertraulicher Informationen wiederholtes Einspielen von Informationen (z.b. finanzieller Transaktionen) Vorlesung Softwareagenten 7-3 1
Aspekte der Sicherheit ƒ Verschlüsselung von Informationen ƒ Authentifizierung ƒ Digitale Signaturen ƒ Schutz von Agenten und Hosts ƒ Abrechnung, Durchführung finanzieller Transaktionen Vorlesung Softwareagenten 7-4 Verschlüsselung: Grundlagen ƒ Übertragungssicherheit (Abhörsicherheit) von Informationen durch Verschlüsselung Kodierung mittels Geheiminformation (Schlüssel) die späteres Entschlüsseln ermöglicht ƒ Weitere Anwendungen Authentifizierung: y Kontrolle, ob jemand derjenige ist, der er zu sein vorgibt y Verwendung von Geheiminformationen (Passwort) Digitale Signaturen: y Unterschreiben von Dokumenten Vorlesung Softwareagenten 7-5 Symmetrische Verfahren ƒ Private Key-Verfahren ƒ Kodierung der Nachrichten mit privatem Schlüssel ƒ Verfahren: DES (Data Encryption Standard) IDEA, RC4, RC5 ƒ sichere Kommunikation erst nach Austausch des Schlüssels außerhalb des Mediums möglich Vorlesung Softwareagenten 7-6 2
Symmetrische Verfahren sicherer Übertragungsweg Absender(A) S priv S priv Empfänger(E) Dokument (Klartext) chiffrieren Dokument (chiffriert) dechiffrieren Dokument (Klartext) Vorlesung Softwareagenten 7-7 Asymmetrische Verfahren ƒ Public Key-Verfahren ƒ jeder Teilnehmer besitzt Schlüsselpaar öffentlicher Schlüssel privater Schlüssel ƒ Nachricht, die mit einem Schlüssel chiffriert wurde, kann nur mit anderem Schlüssel dechiffriert werden ƒ Verschlüsselung: Chiffrieren mit öffentlichem Schlüssel des Empfängers ƒ Verfahren: RSA (Rivest, Shamir, Adleman): langsamer als DES (Faktor 10... 10000) Vorlesung Softwareagenten 7-8 Assymetrische Verfahren Absender(A) S E pub S E priv Empfänger(E) Dokument (Klartext) chiffrieren Dokument (chiffriert) dechiffrieren Dokument (Klartext) Vorlesung Softwareagenten 7-9 3
Digitale Unterschrift ƒ Unterschreiben einer Nachricht ƒ Prinzip: Absender chiffriert Nachricht mit privatem Schlüssel Empfänger dechiffriert Nachricht mit öffentlichem Schlüssel des Senders Reduzierung des Aufwandes: y Ableitung einer Signatur (Digest) aus Nachricht und anschließende Verschlüsselung ƒ Verfahren: MD4, MD5 Vorlesung Softwareagenten 7-10 Zertifizierung ƒ Beglaubigung von öffentlichen Schlüsseln durch Zertifizierungsstelle ƒ Zertifikat: Name Schlüssel von Zertifizierungsstelle digital unterzeichnet ƒ Prüfung mittels öffentlichem Schlüssel der Zertifizierungsstelle Vorlesung Softwareagenten 7-11 Sichere Übertragungskanäle ƒ Einordnung OSI-Modell 7 Anwendungsschicht HTTP, FTP, SMTP 6 5 4 3 2 1 Darstellungsschicht Kommunikationssteuerungsschicht Transportschicht Vermittlungsschicht Sicherungsschicht Bitübertragungsschicht TCP, UDP IP SLIP, PPP Vorlesung Softwareagenten 7-12 4
OSI-Schicht 7 ƒ anwendungsspezifische Verschlüsselung ƒ Vorteile: Auswahl und Anpassung der Verfahren an zu schützenden Dienst Integration mit Benutzerschnittstelle (z.b. Chipkarte) ƒ Nachteile: Aufwand Vielzahl von Verfahren Vorlesung Softwareagenten 7-13 OSI-Schicht 7: Beispiele ƒ EMail: PEM (Privacy Enhanced Mail) PGP (Pretty Good Privacy) ƒ HTTP: Secure-HTTP DSig (Digital Signature Initiative) ƒ Telnet: ssh (Secure Shell) Vorlesung Softwareagenten 7-14 OSI-Schicht 4 ƒ sicherer Tunnel zwischen zwei Kommunikationspartnern ƒ Schicht unterhalb der Anwendung ƒ Vorteil Transparenz für Anwendung ƒ Nachteil: unabhängig von Anwendungen: Abspeichern verschlüsselter Nachrichten oder digitale Signaturen nicht möglich ƒ Beispiel: Secure Socket Layer (SSL): private/public key Vorlesung Softwareagenten 7-15 5
OSI-Schicht 3 ƒ sichere Vermittlungsschicht ƒ unabhängig vom Transportprotokoll ƒ nicht nur für Kommunikationspartner sondern auch in Routern Absichern von Teilstrecken ƒ Beispiele: IPsec (Secure IP) Virtuelle private Netze (VPN) Vorlesung Softwareagenten 7-16 Sicherheit in mobilen Agentensystemen ƒ Motivation Authentifizierung des Agenten und der Ausführungsumgebung Schutz der Ausführungsumgebung vor böswilligen Agenten (Viren) Schutz des Agenten (bzw. der mitgebrachten Daten) vor böswilligen Umgebungen Sicherstellung der Zahlungsfähigkeit und -willigkeit Vorlesung Softwareagenten 7-17 Aspekte 1. Transfersicherheit: ƒ Verschlüsselung 2. Authentifizierung, Autorisierung: ƒ digitale Signaturen 3. Sicherheit der Hosts: ƒ Zugriffsrechte, Betriebssystemsicherheit, Sandbox 4. Sicherheit der Ausführungsumgebung (Laufzeitsystem): ƒ Code-Sicherheit, Überprüfung von Speicherzugriffen 5. Agentensicherheit: ƒ Verschlüsselung, sichere Kommunikation Vorlesung Softwareagenten 7-18 6
Aspekte 5 Agenten 3 4 Laufzeitsystem 2 Host 1 Netzwerk Vorlesung Softwareagenten 7-19 Java-Sandbox-Modell ƒ ursprünglich entwickelt für Applets ƒ übertragbar auf (mobile) Agenten ƒ Annahme: jedes Applet ist potentiell gefährlich nur eingeschränkter Zugriff auf Ressourcen erlaubt ƒ Bereitstellung eines gesicherten Bereiches: Sandbox ƒ Aufweichen der Sandbox nur durch vertrauenswürdige Applets (Code-Signierung) Vorlesung Softwareagenten 7-20 Sicherheitsebenen 1. Compiler ƒ sichere Sprache ohne gefährliche Konstrukte, wie z.b. explizite Zeiger, Zeigerarithmetik, Freigabe von Speicher 2. ClassLoader ƒ Klasse stammt aus zuverlässigem Bereich ƒ eigener Namensraum ƒ Überschreiben von Systemklassen nicht möglich Vorlesung Softwareagenten 7-21 7
Sicherheitsebenen 3. Class/Bytecode Verifier ƒ Überprüfung des Formats der Klassendatei und des Bytecodes ƒ Initialisierung der Variablen vor Verwendung ƒ Parameterüberprüfung bei Methodenaufrufen ƒ Zugriffsberechtigungen (private/protected) ƒ Bytecode-Befehle auf vorgesehenen Typen Vorlesung Softwareagenten 7-22 Sicherheitsebenen 4. SecurityManager ƒ Implementierung der Sicherheitsstrategie ƒ Bereitstellung durch Ausführungsumgebung class SecurityManager { public void checkconnect (String host, int port) throws SecurityException; public void checkdelete (String file) throws SecurityException; public void checkread (String file) throws SecurityException;... } Vorlesung Softwareagenten 7-23 Sicherheitsebenen 5. Interpreter/JIT ƒ Implementierung der sicheren Semantik von Java ƒ Zugriff auf null-zeiger ƒ Gültigkeit von Array- und String-Zugriffen ƒ Class Casts ƒ Stacküberlauf Vorlesung Softwareagenten 7-24 8
Zahlungssysteme: Überblick ƒ E-Commerce-Anwendungen ƒ Realisierung sicherer finanzieller Transaktionen (z.b. mit Kreditkarten) ƒ Bezahlen mit Kleinstbeträgen im Internet (Micro Payment) ƒ Aspekte Vertraulichkeit von Informationen Integrität von Zahlungen Identität der beteiligten Partner Vorlesung Softwareagenten 7-25 SET: Secure Electronic Transaction ƒ Industriestandard zur Kreditkartenzahlung im Internet ƒ im Auftrag und unter Beteiligung von Visa und MasterCard entwickelt ƒ Abbildung der Transaktionen einer Kreditkartenzahlung ƒ Nutzung von Zertifikaten digitalen Unterschriften Verschlüsselungstechniken Vorlesung Softwareagenten 7-26 SET: Prinzip ƒ Anforderung: Gewährleistung der Zahlungssicherheit Geheimhaltung der Karteninfos durch Händler Authentifizierung des Händlers Gültigkeit der Karte Authentifizierung des Karteninhabers ƒ Partner: kartenausgebende Bank (Issuer) Händlerbank (acquirer) ƒ Transaktionen: Bestellung, Abrechnung, Autorisierung Vorlesung Softwareagenten 7-27 9
SET: Prinzip ƒ Kreditkarteninformationen in digitalem Umschlag Händler kann Informationen nicht lesen Kreditkarteninfos DESverschlüsselt RSA-verschlüsselt (öff. Schlüssel der Händlerbank) RSA-verschlüsselt (öff. Schlüssel des Empfängers) Bestellung DES-Schlüssel digitaler Umschlag Vorlesung Softwareagenten 7-28 SET: Ablauf einer Bestellung 1. Initialisierungsnachricht von Kunden an Händler: Kaufwunsch 2. Antwort mit Zertifikaten: eigener RSA-Schlüssel + öffentlicher Schlüssel der Händlerbank 3. Kunde: Prüfung der Zertifikate Verschlüsselung der Bestellung mit DES-Schlüssels Verpacken der Kreditkarteninfos in digitalem Umschlag mit öffentlichem Schlüssel der Händlerbank Vorlesung Softwareagenten 7-29 SET: Ablauf einer Bestellung 4. Händler Auspacken des DES-Schlüssels mit privatem RSA-Schlüssel Dekodierung der Bestellung Weiterleitung der verschlüsseltem Kreditkarteninfos an Bank Empfang der Autorisierung Vorlesung Softwareagenten 7-30 10
SET: Ablauf Kunde 1 Internet Händler Zertifizierungsstelle 2 3 (1) Bestellung (2) Autorisierung (3) Abrechnung Kundenbank 2 3 Banken-Netzwerk Händlerbank Vorlesung Softwareagenten 7-31 Micro Payment ƒ Online-Zahlung von Kleinstbeträgen im Internet (Pfennigbruchteile bis wenige DM) ƒ Anwendung: Zahlung mittels Karte oder Rechnung zu aufwendig Systeme mit hohem Durchsatz (10 Mill. Transakt./Tag) ƒ Elektronisches Geld zur Bezahlung von Online-Artikeln Anfragen an Datenbanken oder Suchmaschinen Software-Downloads Vorlesung Softwareagenten 7-32 Micro Payment ƒ Prinzipien direkter Münztransfer y virtuelle Münzen y händler- oder institutsbezogen Schattenkonto bei Institut ƒ Projekte Millicent (Digital) ecash (Deutsche Bank) Cybercash (Dresdner Bank, Cybercash) Vorlesung Softwareagenten 7-33 11
Millicent ƒ Rollen: Kunde mit Millicent-Wallet (elektronische Geldbörse) Händler: y unterhält für definierten Zeitraum Scrip-Konto für jeden Kunden Broker: y Instanz zum Kauf/Verkauf von Scrips (Provider, Bank) y übernimmt Tausch von Geld für verschiedene Händler kein Sammeln von Händler-Scrips notwendig ƒ keine zentrale Kontoführungseinrichtung Vorlesung Softwareagenten 7-34 Millicent ƒ Scrips: elektronisches, virtuelles Geld verschlüsselte Nachricht mit Account, Kontostand, Verfallsdatum definieren vorausbezahlten Wert Gültigkeit für Zahlung mit einem bestimmten Händler Händler kann Gültigkeit selbst prüfen Vorlesung Softwareagenten 7-35 Millicent: Ablauf 1. Kunde kauft beim Broker Scrips für bestimmten Händler Broker kann bei Händler Scrips kaufen Bezahlung: Ecash, Kreditkarte, Telefonrechnung 2. Broker sendet Händler-Scrip und Wechsel-Scrip (Broker-Scrip) an Kunden 3. Kunde bezahlt Produkt mit Händler-Scrips Händler sendet Produkt und Wechsel-Scrip (Händler- Scrip) 4. Weitere Käufe bei diesem Händler möglich Vorlesung Softwareagenten 7-36 12
ecash ƒ Internet-Zahlungssystem (Deutsche Bank, DigiCash) ƒ erste Shops: ecash.dpunkt.de ƒ Prinzip: Transfer elektronischer Münzen ƒ ecash-münzen: Prägedatum und -stempel, Seriennummer, Wert werden beim Kunden erzeugt (Wert, verschlüsselte Seriennummer) Münzenrohling mit y öffentlichem Schlüssel der Bank codiert und y privatem Schlüssel des Kunden signiert Verifikation des Rohlings durch Bank Zurück zum Kunden Vorlesung Softwareagenten 7-37 ecash ƒ Verifikation der Münzen durch blinde Signaturen Bestätigung der Echtheit verschlüsselte Seriennummer: Sicherstellung der Anonymität (Bank kann beim Einlösen den Erzeuger nicht feststellen) ƒ Verhinderung von Münzkopien durch Double- Spending-Server Speicherung der Signaturen der eingezahlten Münzen Einschränkung der Datenmenge durch Prägedatum Vorlesung Softwareagenten 7-38 CyberCash ƒ Internet-Zahlungssystem (Dresdner Bank, Sachsen LB) ƒ Unterstützte Zahlungsverfahren edd: electronic direct debit (Lastschriftverfahren) Kreditkarte CyberCoins (Schattenkonto) ƒ Komponenten Kunden-Wallet CashRegister (Händler) CyberCash Gateway-Server Vorlesung Softwareagenten 7-39 13
CyberCash ƒ CyberCoins := keine Münzen, sondern Kontostandsanzeige für Schattenkonto bei einer Bank ƒ Prinzip Kunde erhält digitale, verschlüsselte Ware Empfang des Schlüssels zum Auspacken erst nach vollständiger Bezahlung ƒ Anwendungsbereiche: digitale Waren (Software, Bilder,...) Vorlesung Softwareagenten 7-40 14