Upload
klemens-kempen
View
122
Download
0
Embed Size (px)
Citation preview
Sichere E-Commerce-Anwendungen 1
Sichere Kommunikation für sichere agentenbasierte E-Commerce-Anwendungen
René Köppel
Sichere E-Commerce-Anwendungen 2
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-Anwendungen 3
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-Anwendungen 4
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-Anwendungen 5
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-Anwendungen 6
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-Anwendungen 7
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-Anwendungen 8
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-Anwendungen 9
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-Anwendungen 10
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-Anwendungen 11
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-Anwendungen 12
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-Anwendungen 13
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,clientContext);
MessageServerAgentAwareSSLSocketImp.java: SSLServerSocket serverSocket = new
SSLServerSocket(port,serverContext); SSLSocket socket = serverSocket.accept();
Sichere E-Commerce-Anwendungen 14
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-Anwendungen 15
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-Anwendungen 16
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-Anwendungen 17
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-Anwendungen 18
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-Anwendungen 19
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-Anwendungen 20
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-Anwendungen 21
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