Sichere E-Commerce-Anwendungen1 Sichere Kommunikation für sichere agentenbasierte E- Commerce-Anwendungen René Köppel
Sichere E-Commerce-Anwendungen2 1.Einleitung 2.Sichere agentenbasierte E-Commerce- Anwendungen 3.Sichere Kommunikation durch SSL/TLS 4.Java und Systemsicherheit 5.Sicherung eines einfachen Agenten-Gerüsts 6.Weitere Bemerkungen und Ausführungen 7.Bzgl. Arbeiten und alternative Ansätze 8.Zusammenfassung
Sichere E-Commerce-Anwendungen3 1. Einleitung Bisher: manuelle E-Transaktionen Jetzt (mit Agent) : E-Transaktionen automatisieren Vertrauliche Informationen werden ausgetauscht – dafür muss Sicherheit gewährleistet werden
Sichere E-Commerce-Anwendungen4 2. Sichere agentenbasierte E-Commerce- Anwendungen 3 Aspekte der Sicherheit: Kommunikationssicherheit (Partnerauthentifikation, Daten-, -vertraulichkeit) Systemsicherheit (Schutz zwischen Hosts und Agenten) Anwendungssicherheit (Nicht-Zurückweisung, Zugriffskontrolle)
Sichere E-Commerce-Anwendungen5 3. Sichere Kommunikation durch SSL/TLS Secure Sockets Layer (SSL) von Netscape Comm. Von IETF übernommen, in TLS 1.0 standardisiert (Transport Layer Security) Handshake Protocol zu Beginn der Kommunikation Record Layer Protocol bietet Dienste an
Sichere E-Commerce-Anwendungen6 4. Java und Systemsicherheit Java-Sicherheitsmodell: Sandbox Model Programmcodes laufen innerhalb mit begrenzten Möglichkeiten Java bietet Teillösung für Systemsicherheit Java Cryptography Extension (JCE) stellt Funktionen für Kommunikationssicherheit bereit
Sichere E-Commerce-Anwendungen7 5. Sicherung eines einfachen Agenten-Gerüsts Entwurfsziel: minimaler javabasierter Agent 2 Arten von Agenten: - Agent: sendet und empfängt Nachrichten, handelt eigenständig - System Agent: managt System von Agenten (überwacht Agenten, regelt Kommunikation, unterstützt Eigenständigkeit)
Sichere E-Commerce-Anwendungen8 5. Sicherung eines einfachen Agenten-Gerüsts PingServer.java: SystemAgent system = new SystemAgent(4042); Agent agent = new PingServerAgent(); system.addAgent(agent); SystemAgent.java: MessageServer server = new MessageServerSocketImp(port); MessageServerSocketImp.java: ServerSocket serverSocket = new ServerSocket(port); Socket socket = serverSocket.accept();
Sichere E-Commerce-Anwendungen9 5. Sicherung eines einfachen Agenten-Gerüsts SSL/TLS + Java-Gerüst = Java SSL/TLS Library IAIK iSaSiLk: Java-Implementation vom SSL/TLS-Protokoll Im Code: Socket durch SSLSocket ersetzen Zusätzlicher Code, um Sicherheitsparameter einzustellen
Sichere E-Commerce-Anwendungen10 5. Sicherung eines einfachen Agenten-Gerüsts Sicherheit vollständig transparent in Agenten- Anwendung eingeführt In MessageServerSSLSocketImp wird Sicherheit eingeführt Sicherheitsparameter in Kontextklasse gespeichert (verschiedene Klassen für Server und Client- Kontext)
Sichere E-Commerce-Anwendungen11 5. Sicherung eines einfachen Agenten-Gerüsts PingServer.java: SystemAgent system = new SystemAgent(4042); Agent agent = new PingServerAgent(); system.addAgent(); SystemAgent.java: MessageServer server = new MessageServerSSLSocketImp(port); MessageServerSSLSocketImp.java: SSLServerContext serverContext = new SSLServerContext(); SSLServerSocket serverSocket = new SSLServerSocket(port,serverContext); SSLSocket socket = serverSocket.accept();
Sichere E-Commerce-Anwendungen12 5. Sicherung eines einfachen Agenten-Gerüsts Agent hat Schnittstelle, um Parameter einzurichten Parameter nach geeigneten Methoden von Java SSL/TLS Library eingerichtet und in Server oder Client Kontext gespeichert (eine Kontext-Variable immer null) Alle Agenten hängen vom gleichen System Agenten mit gleichen Parametern ab
Sichere E-Commerce-Anwendungen13 SecurityAwarePingServer.java: SSLServerContext serverContext = new SSLServerContext(); serverContext.setEnabledCipherSuites(cs); serverContext.setRSACertificate(chain, SSLKeyStore.getPrivateKey(0,0)); serverContext.setTrustDecider(trustDecider); SystemAgent system = new SystemAgent(4042,serverContext,null); Agent agent = new PingServerAgent(); system.addAgent(agent); SystemAgent.java: MessageServer server = new MessageServerAgentAwareSSLSocketImp(port,serverContext,c lientContext); MessageServerAgentAwareSSLSocketImp.java: SSLServerSocket serverSocket = new SSLServerSocket(port,serverContext); SSLSocket socket = serverSocket.accept();
Sichere E-Commerce-Anwendungen14 6. Weitere Bemerkungen und Ausführungen Systemsicherheit: - private key auf lokaler Festplatte gespeichert und mit pass phrase symmetrisch verschlüsselt - Mobile Agenten und Hosts sollten sich vertrauen Anwendungssicherheit: - SSL/TLS nur Basis (Kommunikationssicherheit) - benötigt kryptographische Schlüssel
Sichere E-Commerce-Anwendungen15 6. Weitere Bemerkungen und Ausführungen Performance: - Abnahme durch Verschlüsselung - auf Workstation und PC nicht spürbar - Abnahme nur zu Beginn, weil Verbindung offen bleibt - klein: Kommunikationsfrequenz hoch und/oder Nachrichten groß - kleine mobile Geräte: Problem beim Handshake Protocol im SSL/TLS-Protokoll
Sichere E-Commerce-Anwendungen16 6. Weitere Bemerkungen und Ausführungen primäre Ziele des Gerüsts: - Ziele nach Sicherung geblieben? - überflüssige Algorithmen entfernen Anwendungsunabhängigkeit: - Anwendungen wissen nicht, dass SSL/TLS anwendungsunabhängig ist - SSL/TLS transparent – Agenten können nicht selbst entscheiden, wem sie vertrauen
Sichere E-Commerce-Anwendungen17 6. Weitere Bemerkungen und Ausführungen Ausführungen: - bisher nur Kommunikationssicherheit betrachtet - SSL/TLS: Agenten-, Datenauthentifikation, Datenvertraulichkeit - Gerüst nicht mobil: Systemsicherheit unwichtig - nur Gerüst, keine Anwendung: Anwendungssicherheit nicht betrachtet
Sichere E-Commerce-Anwendungen18 7. Bzgl. Arbeiten und alternative Ansätze Sicherheit in anderen Agenten-Gerüsten: - javabasiert: Aglets, JATLite,... - Kommunikationssicherheit scheint unwichtig - digitaler Agentencode zur Benutzeridentifizierung - Zugriffsrestriktionen für Agenten - Ausführung des Codes in sicherer Ausführungsumgebung
Sichere E-Commerce-Anwendungen19 7. Bzgl. Arbeiten und alternative Ansätze Mobile Agenten und Sicherheit: - Hosts vor böswilligen Agenten schützen (Proof-Carrying-Code) - Agenten vor böswilligen Hosts schützen (Riordan & Schneier, Hohl, Vigna) Andere SSL/TLS-Implementationen: - Java Secure Socket Extension (JSSE) von Sun
Sichere E-Commerce-Anwendungen20 7. Bzgl. Arbeiten und alternative Ansätze Sicherheit in anderen Schichten: - SSL/TLS in Transportschicht - IPSec bietet Kommunikationssicherheit in Netzwerkschicht (teilnehmende Hosts und Agenten können sich gegenseitig vertrauen) - anstatt Kanal (System Agent) kann man Nachrichten direkt schützen (He & Sycara) - Sicherheitsgerüste (Kerberos, SESAME,...) können integriert werden
Sichere E-Commerce-Anwendungen21 8. Zusammenfassung Javabasiertes Gerüst konstruiert für E-Commerce- Anwendungen Java-Implementation SSL/TLS sichert Kommunikationsmöglichkeiten Kommunikations-, Anwendungs-, Systemsicherheit (wichtig für mobile Agenten) Java bietet Systemsicherheit (Sandbox) Anwendungssicherheit muss von Entwicklern hinzugefügt werden