Netzwerkaspekte
Netzwerkaspekte
Ausarbeitungen WS 2003/04
Kurzzusammenfassung
In diesem Dokument sind die Ergebnisse der Ausarbeitungen vom
WS 2003/04 zur Lehrveranstaltung “Netzwerkaspekte” zu finden. Eine elektronische
Version ist auf [Link] zu finden.
Die jeweiligen Themen wurden von den Studierenden zu Beginn des Semesters aus-
gewählt und im Laufe des Semesters präsentiert. Die Folien sind ebenfalls elektronisch
vorhanden.
Ich danke den Studierenden für den Einsatz und die gute Zusammenarbeit bei den
Vorbereitungen und der Ausarbeitung!
1
2 INHALTSVERZEICHNIS INHALTSVERZEICHNIS 3
• Live: Übertragungen die live aufgezeichnet werden und direkt über Datennetze an
die Empfänger gesendet werden müssen. Beispiele dafür sind IP-Telefonie (VoIP),
TV-und Radio-Übertragungen oder Video-Konferenzen.
Die grosse Palette verschiedenster Anwendungen müssen beim Design von Protokollen, die
diese Dienste anbieten berücksichtigt werden.
1.2.2 Anforderungen
Flexibilität ist eines der Schlagworte, die ein Streamingprotokoll auszeichnen. Jede Form von
multimedialen Daten, in jeder Form kombiniert und auch steuerbar soll möglichst effezient
über das Netzwerk übertragen werden. Die Anforderungen an solche Protokolle werden in
der folgenden Auflistung beschrieben.
10 1 STREAMING PROTOKOLLE 1.3 Real Time Transport Protocol (RTP) 11
• Unicast - Multicast: Um die Netzwerklast am Server möglich gering zu halten, Das RTP-Protokoll besteht grundsätzlich aus zwei Teilen: RTP 1.3.1 und RTCP 1.3.2.
sollten diese nur einmal versendet werden, auch wenn sie an mehrere Enpfänger gehen. RTP ist für den Transport der Daten zuständig, RTCP (RTP Control Protocol) zur Über-
Diese Form der Übertragung wird Multicast genannt, und muss von einem Protokoll wachung des QoS und zum Sammeln von Informationen über Teilnehmer einer Session.
zur Übertragung von live-Daten unterstützt werden. Zusätzlich wird häufig das RTSP 1.3.3 Protokoll verwendet, um Steuerfunktionen von Stre-
Auf Unicast, das ist das Versenden eines Packets an genau einen Empfänger, findet ams wie zum Beispiel “pause”, und “play” zur Verfügung zu stellen.
nur bei On-Demand-Anwendungen Verwendung, da jeder Client verschiedene Packete
erhält. 1.3.1 Transportteil von RTP
• Quality of Service: Quality of Services für Echtzeitdaten zu realisieren birgt einige In diesem Abschnitt bezieht sich RTP auf den Teil des RTP-Protokolles, der für den Trans-
Probleme in sich. Geht ein Packet verloren oder kommt es zu spät an, so kann es in port der Daten, wie Audio oder Video verantwortlich ist. Da RTP auf Application-Layer
den meisten Fällen verworfen werden. Daher setzen die meisten Echtzeitprotokolle auf Ebene aufsetzt verwendet es ein zugrunde liegendes Transport Protokoll, meist UDP. Die
UDP auf. Audio/Videodaten die vom Server gesendet werden sollen werden in RTP Paketen verpackt.
Mit verlorengegangenen Daten muss der Player richtig umgehen können. Im Protokoll Die zu sendenden Daten werden als RTP-Payload bezeichnet. Ein RTP-Paket, in dem
kann das aus den vorher genannten Gründen nicht geschehen. Je nach Datenformat sich eine RTP-Payload befindet enthällt Zusatzinformationen. Diese bestehen aus Sequenz-
ist dies besser oder schlechter möglich. RFC 3119 [RFC 3119 2001] zeigt ein solches nummern, Zeitmarken, Identifikationsnummern, sowie eine Kennzeichnung der verwendeten
Schema auf Datenebene. Payload Daten (Payload Type).
Im RTP Protokoll ist nicht definiert wie ein vorhandener Stream in Payloads zerteilt
• Synchronisierung: Schon die Übertragung eines Kanals birgt ein Problem in sich: werden soll. Wie man einen Stream in solche Teile zerlegt ist natürlich sehr von der Codie-
die Synchronisierung der Packete. Da Packete verloren gehen können und auch in der rung abhängig. Deshalb gibt es eine Reihe weiterer RFCs, die definieren wie man bestimmte
falschen Reihenfolge eintreffen können, muss das Protokoll einen Synchronisierungs- Typen von Streams in eine Serie von RTP Paketen verpackt.
mechnismus unterstützten. Dies geschieht meist durch Anhängen eines Zeitstempels,
der die genaue Abspielzeit (relativ zum Start) angibt.
Die Synchronierung mehrerer Kanäle kann ebenfalls durch den Zeitstempel erfolgen.
• Mehrkanalübertragung: Um die Übertragung von Videos durchzuführen ist es
sinnvoll, die einzelnen Audio- und Videokanäle in eigene Kanäle zu packen und ge-
trennt zu übermitteln. Der Client kann dann einzelne Kanäle anfordern, die die zu
Verfügung stehende Bandbreite berücksichtigt und seinen eigenen Bedürfnissen ent-
spricht (Sprache, Auflösung und Tonqualität der Hardware zur Wiedergabe, etc.) .
Bei Videokonferenzen müssen ebenfalls mehrere Kanäle, in der Regel zwei von jedem
Teilnehmer, zu allen anderen Teilnehmern geschalten werden. Um dabei die Bandbeite
der Teilnehmer nicht zu überlasten, werden sogenannte Mixer eingesetzt. Diese fassen
die Streams mehrerer Quellen zusammen und senden sie als einen Kanal weiter.
• Steuerung des Servers: Der Stream von Daten über ein Netzwerk soll für den
Benutzer die selbe Funktionalität wie die Wiedergabe eines lokalen Mediums bieten.
Um dies zu gewährleisten muss die Rückmeldung vom Client zum Server möglich sein. Abbildung 1: RTP-Header
Wie man leicht erkennen kann sind Anforderungen an den Protokollstack zur Übertragung
von Streaming Media sind sehr breit gefächert, sodass eine Aufteilung in mehrere, vonein-
ander unabhängige Protokolle sinnvoll erscheint. Zum einen in ein reines Transporprotokoll, Payload type: Dieses Feld im RTP-Header definiert den genauen Typ der Payload.
welches nur die Streamingdaten sendet. Zum anderen ein Protokoll, welches die Steuerung Sequence number: Da UDP kein zuverlässiges Protokoll ist muss ein Mechanismus zur
des Servers übernimmt. Erkennung von verlorenen oder vertauschten Paketen vorhanden sein.
Timestamp: Die Zeitmarken werden zur Synchronisation und zur Berechnung von Jitter
1.3 Real Time Transport Protocol (RTP) verwendet.
Das Realtime Transport Protocol [RFC3550 2003] ist ein Protokoll auf Application-Layer
SSRC: Synchronisation Source ID. Wird benötigt, da die Sequenznummern und Zeitmarken
Ebene. Es stellt Funktionen zur Übertragung von zeitkritischen Daten, wie Audio- Video-
unterschiedlicher Quellen nicht sinnvoll direkt miteinander verglichen werden können.
oder Simulationsdaten zur Verfügung. Allerdings werden keine Garantien über das Quality
(Es sind zum Beispiel keine Einheiten für den Timestamp definiert, nur gewisse Ei-
of Service (QoS) gemacht. Es wird Uni- und Multicast unterstützt. Weiters gibt es spezi-
genschaften.)
elle Knoten (RTP-Mixers), die mehrere Streams unterschiedlicher Quellen zu einem Stream
zusammenfassen können. So etwas macht zum Beispiel bei Videokonferenzen mit mehre- CSRC: Contributing Source. Wurden mehrere Streams von einem Mixer zusammengefasst,
ren Teilnehmern Sinn, um die Datenmenge die letztendlich bei jedem Client ankommt auf werden die ursprünglichen Quellen hier aufgelistet (im SSRC Feld würde sich die ID
wenige Streams zu reduzieren. des Mixers befinden).
12 1 STREAMING PROTOKOLLE 1.5 QuickTime r Streaming 13
1.3.2 Realtime Control Protocol (RTCP) (SureStreamTM ). Dieses Verfahren ermöglich es dem Server, verschiedenen Clients verschie-
dene Qualitäten zu liefern, ohne diese in Echtzeit generieren zu müssen. Auch ein Wechsel
Das Real Time Control Protocol [RFC3550 2003] ist Teil des RTP Protokolles und dient zur
wärend der Wiedergabe ist möglich.
Überwachung einer Session. Einerseits werden die Teilnehmer über RTCP verwaltet(z.B.:
Als Übertragungsraten gibt RealNetworks r 75% der Bandbreite bei Einwahlverbindun-
ein User beendet Session), andererseits wird der Zustand des Netzes zu jedem Teilnehmer
gen (Analog, ISDN), und 90% bei DSL/LAN an.
überwacht. Dies ermöglicht die Datenmenge der Streams an die Leistungsfähigkeit der Ver-
bindung zu den Teilnehmer anzupassen. Diese Informationen werden in gewissen Abständen
verschickt. Normalerweise wird ebenfalls UDP verwendet. 1.5 QuickTime r Streaming
Apple r QuickTime r ist eigentlich eine Erweiterung zum Macintosh r -Betriebssystem, die
1.3.3 Realtime Streaming Protocol (RTSP) das Erstellen sowie Abspielen, Komprimieren und Bearbeiten von zeitbasierten Daten er-
Das Real Time Streaming Protocol [RFC2326 1998] dient zur Steuerung der Audio und laubt. QuickTime gibt es seit 1991.
Videostreams und ist eigendlich nicht Teil von RTP [RFC3550 2003], wird aber häufig als QuickTime r bedient sich der Movie-, d.h. Film-Metapher, um zeitbasierte Daten zu be-
Ergänzung verwendet. Im Gegensatz zu RTP verwendet RTSP meist TCP. RTSP definiert schreiben. QuickTime r speichert zeitbasierte Daten in Objekten, die als QuickTime r movie
Kommandos wie zum Beispiel PLAY, die sich auf eine Quelle beziehen. Es hat eine Ähn- bezeichnet werden. Ein einzelnes QuickTime r movie kann mehr als einen Strom von Daten
lichkeit mit HTTP, allerdings können auch Anfragen vom Server an den Client geschickt enthalten. Diese können parallel und sequentiell angeordnet sein. Daher kann man eine
werden. QuickTime r Datei als einen Container für zeitbasierte Daten auffassen.
Um ein QuickTime r Video zu streamen wird eine weitere Spur(pro Medientrack) in der
.mov Datei benötigt, die dem Server Hinweise gibt, wie der Stream in Pakete aufzuspalten ist.
1.4 RealAudio r , RealVideo r Dies kann man zum Beispiel mit dem QuickTime r Player Pro machen und wird “hinting”
Als einer der ersten kommerziellen Anbieter hat sich RealNetworks r 1 mit der Übertragung genannt. Der Stream kann dann vom Server, verpackt in einzelne RTP Pakete versendet
von Audio- und Videodaten über Netzwerke beschäftigt. Herausgekommen sind patentierte werden. Die Erweiterung einer .mov Datei um streaming-spezifischer Informationen ist ein
Codecs für die Komprimierung – RealAudio r und RealVideo r . wesentlicher Unterschied zu den meisten anderen Audio/Video Dateiformaten.
Entsprechende Server und Player, die die Codecs unterstützten stehen in abgespeckten
Basisversionen gratis zum Download zur Verfügung. Weiters bietet RealNetworks r den
1.6 Streaming über HTTP
HelixTM Producer, das ist kostenlose Software zum Rendern von Fremdformaten in die haus-
eigenen Codecs, an. Eine Alternative zu Streaming Protokollen ist die Verteilung von Daten über das, für das
Web entworfene, Hypertext Transfer Protokoll (HTTP) [RFC 2616 1999].
1.4.1 Übertragung Einerseits ist HTTP oft die einzige Möglichkeit, mit Rechnern ausserhalb des eigenen
Subnetzes zu kommunizieren (Firewalls), andererseits stehen sehr viele multimediale Daten
Der Streamingserver unterstützt neben RTP auch die Übertragung/Steuerung über die An- auf Webservern zur Verfügung. Eine Anfrage eines HTTP-Clients sieht wie folgt aus:
wendungsschicht via Hypertext Transport Protocol (HTTP) [RFC 2616 1999] und RTSP.
GET /[Link] HTTP/1.1
1.4.2 Metadateien Range: bytes=21010-47021
[weitere Optionen]
Um den direkten Start von Streams im RealAudio r -/RealVideo r -Format aus einem Brow-
ser zu ermöglichen werden Metadateien eingesetzt. Synchonized Multimedia Integration
Daraufhin liest der Server die entsprechenden Daten aus seinem Speicher und sendet sie an
Language2 (SMIL, sprich “smile”), so heisst der vom W3-Konsortium definierte Standard,
den Client zurück:
wird in den Versionen 1.0 und 2.0 unterstützt.
Ein Link einer Webseite zu einem Stream zeigt nicht direkt auf die Stream-Datei sondern HTTP/1.1 206 Partial Content
auf diese Metadatei. Der Browser übergibt die File und der RealPlayer r liest sich die Content-Range: bytes 21010-47021/47022
angegebebene Tags aus. Content-Length: 26012
[weiter Optionen]
1.4.3 Codec [Daten]
Wie vorher erwähnt ist der Codec, den RealAudio r und RealVideo r verwenden, pateten- Die Daten werden dabei von TCP in Packete zerteilt. Der Client speichert die Daten zwi-
tiert. schen und kann sie dann weiterbearbeiten.
Dateien für diese Formate lassen sich mit dem HelixTM Producer, der in der Basisversion Handelt es sich beim Client um einen Webbrowser, so kann erst nach erfolgter Da-
konstenlos zur Verfügung steht, erzeugen. Als Basis dienen Standardformate wie MPEG tenübertragung die jeweilige Player-Software gestartet werden, Streaming ist nicht möglich.
und MP3, Quicktime und AIFF oder AVI und WAV. In der erweiterten Version des Pro- Da aber Streams über das Webinterface gestartet werden sollen, gibt es Metadateien die
ducers ist es auch möglich, Dateien mit multiplen Streamraten in einem File zu speichern URLs auf das jeweilige File am HTTP-Server beinhalten.
1 [Link] Damit kann der Player die Streaming-Daten selbst am Server anfragen und – sobald die
2 [Link] Packete einlangen – wiedergeben. Dabei ergeben sich aber folgende Probleme:
14 1 STREAMING PROTOKOLLE 1.8 Zusammenfassung 15
• Transport über TCP: HTTP-Verbindungen laufen immer über TCP ab, da die 1.7.4 RealNetworks r
gesendeten Packete auch ankommen müssen. Sobald ein Packet verloren geht, wird
es nochmals geschickt und blockiert damit den Datenstrom (TCP garantiert ja die RealNetworks r bietet als Streaming Server den HelixTM Universial Server an. Auf Netz-
Reihenfolge der Packete). Echtzeitübertragung ist nicht garantiert. werkebene werden RTP, RTSP, HTTP und weitere Protokolle unterstützt. Unterstütz-
te Codecs: RealAudio r , RealVideo r , RealPixTM , RealText r , QuickTime r , MPEG-1,
• Steuerung: Es gibt keine Möglichkeit, den Server direkt anzusteuern. Sobald die MPEG-4, MP3, JPEG, PNG, und einiges mehr. Live Broadcasting ist ebenfalls möglich.
Datei angefragt wurde, wird gesendet. Ein Anhalten ist nur durch Verbindungsabbruch
möglich, Sprünge in den Daten können durch Angabe einer Content-Range bei der 1.7.5 Microsoft r Streaming Service
Anfrage realisiert werden.
Das Microsoft r Streaming Service baut auf dem Internet Information Server Version 4
• Synchronisierung: Die Synchronisierung der Daten stellt kein Problem dar, da alle auf und benutzt natürlich nicht das unabhängige RTP Protokoll, sondern das proprietäre
Packete garantiert in der richtigen Reihenfolge eintreffen. Durch einen einfachen FIFO- MMS (Microsoft Media Streaming)... Gestreamt werden Windows Media r Dateien, die
Buffer kann der Player die Daten wie lokal vorliegende Multimedia-Daten behandeln. proprietäre Erweiterungen von MPEG-4 sind.
• Kommunikation: Verbindungsaufnahme von Client zum Server geschieht mit einem Literaturverzeichnis
normalen Get-Request und einem Cookie-Id. Der Server antwortet mit entsprechenden
Daten-Packeten. [Tanenbaum 2003] Andrew S. Tanenbaum: Computernetzwerke, 4. Auflage, Pearson Studi-
Die Steuerung des Servers kann durch einfache Post-Request vom Server zum Client um (2003).
realisiert werden.
[Peterson 2003] Larry L. Peterson, Bruce S. Davie:Computer Networks, 3rd Edition, Morgan
Apple hat sich mit der Entwicklung eines Servermoduls beschäftigt, das auf diese Technologie Kaufmann (2003).
umsetzt. [Apple 2003].
[RFC3550 2003] H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson: “RTP: A Transport
Protocol for Real-Time Applications” RFC 3550, July 2003
1.7 Überblick über Server-Systeme
[RFC2326 1998] H. Schulzrinne, A. Rao, R. Lanphier: “Real Time Streaming Protocol
1.7.1 Darwin Streaming Server
(RTSP)” RFC 2326, April 1998
Der Darwin Streaming Server ist eine Open Source Version des QuickTime Streaming Servers
von Apple. Er ist geeignet um QuickTime und MPEG-4 zu streamen und ist für verschiedene [RFC 2327 1998] M. Handley, V. Jacobson: “SDP: Session Description Protocol” RFC 2327,
Plattformen verfügbar. Es werden gängige Standards wie RTP, RTSP und SDP [RFC 2327 April 1998
1998] unterstützt. Live streaming ist möglich. QuickTime Clients verwenden dabei eine
[RFC 3119 2001] R. Finlayson: “A More Loss-Tolerant RTP Payload Format for MP3 Au-
.sdp [RFC 2327 1998] Datei, die Informationen über die Quelle enthalten. Es werden mehr
dio” RFC 3119, june 2001
als 3000 gleichzeitige Streams unterstützt.
[RFC 2616 1999] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T.
1.7.2 QuickTime r Streaming Server Berners-Lee: “Hypertext Transfer Protocol – HTTP/1.1” RFC 2616, june 1999
Der QuickTime r Streaming Server ist die kommerzielle Version des Darwin Streaming Ser- [Apple 2003] QuickTime Streaming Server Concepts. [Link]
vers und bei Mac OS X r Server enthalten. Es erweitert den Darwin Server hautsächlich um documentation/QuickTime/QTSS/Concepts/chapter_2_section_14.html
eine GUI. Allerdings ist dieser Server nur für die Mac OS X r Plattform erhältlich.
[Apple 2003] QuickTime Streaming Server Overview. [Link]
1.7.3 Icecast products/qtss/
Icecast ist ein Streaming Server für Musik im Ogg Vorbis Format oder Live Streams und ist [Schetter 2003] Schetter, S. (2003) Streaming: Video und Audio im Internet. [Link]
Freie Software. Icecast benutzt ein eigenes Protokoll für die Netzwerkübertragung. [Link]/rrzk/multimedia/dokumentation/streaming/
16 LITERATURVERZEICHNIS 17
2.1 Einleitung
Anfangs werden wir auf Verteilte Systeme eingehen, um uns später auf einen Teilbereich
dieser, die Peer 2 Peer Systeme, beschränken. Hier werden wir eine allgemeine Einteilung
von Peer 2 Peer Systemen vorstellen und deren Charakteristika aufzeigen. Danach werden
wir einen Überblick über Peer 2 Peer Applikationen geben und einige bekannte Peer 2 Peer
Applikationen vorstellen. Ausserdem werden wir auch noch Vergleiche (Benutzer-, Dateien-,
Bandbreiten-Statistiken) zwischen Napster und Gnutella anstellen.
Ein Verteiltes System ist eine Menge von unabhängigen Computern, die den Benutzern
als ein einzelnes, zusammenhängendes System erscheint ([Tanenbaum 2002]).
Das heißt, die Hardware ist autonom (es gibt einzelne, unabhängige Computer) und die
Software ermöglicht es den Benutzern das System als Ganzes zu benutzen.
• Die Kommunikation zwischen diesen Computern soll für den/die Benutzer nicht sicht-
bar sein.
• Ein Verteiltes System muss stets funktionsfähig sein (Auch wenn Teile des Systems
nicht erreichbar sind).
Ein Verteiltes System kann man grob in folgende Layer (Abbildung 2 auf Seite 18) ein-
teilen:
Die oberen Layer bestehen aus Benutzern und Applikationen. Die darunterliegenden
Layer (Middleware) stellen eine Schnittstelle zwischen den untersten Layern (System von
einzelnen Computern) und dem Benutzer zur Verfügung.
18 2 PEER 2 PEER 2.3 Peer 2 Peer 19
Abbildung 2: Grobe Einteilung eines Verteilten Systems in Layer ([Taylor 2003], [gezeichnet:
Fürnstahl 2003]).
Grundsätzlich gibt es zwei Bereiche von Verteilten Systemen: Centralized Systems und De-
centralized Systems. Centralized Systems sind typischerweise Client-Server Systeme, Decen-
tralized Systems typischerweise Peer 2 Peer Systeme. Abbildung 3: Es gibt keine klare Grenze zwischen Client-Server und Peer 2 Peer Systemen.
Beide Systeme weisen gewisse Charakteristika auf (Managed/Self Organized, Lookup/Discovery,. . . )
Die Grenze zwischen Client-Server und Peer 2 Peer Systemen kann nicht klar gezo-
Beide Modelle können auf verschiedenen Platformen funktionieren (Internet, Intranet, . . . ) und als
gen werden (Abbildung 3 auf Seite 19). Beispielsweise kann die Suchmaschine Google als Basis für Programme fungieren ([Morgan 2002]).
centralized eingestuft werden, da sie einen Centralized Web-Server besitzt (mit eindeutiger
IP-Adresse). Die Informationen werden von einem Datenbankcluster verwaltet, der aus über
10.000 Linux Maschinen besteht. Das wiederum kann aus Such- oder Computerperspektive
als decentralized eingestuft werden. 2.3 Peer 2 Peer
Es gibt drei wesentliche Punkte, welche deutlich machen, ob ein System zentral oder Dieses Kapitel wird einen groben Überblick über Peer 2 Peer Systeme vermitteln. Erst wird
dezentral arbeitet. Das Auffinden (zum Beispiel DNS), die Verfügbarkeit und die Kommu- auf geschichtliche Fakten eingegangen, danach werden wir uns mit der Architektur von Peer
nikation (Peer 2 Peer oder über einen Server). 2 Peer Systemen befassen. Besonderes Augenmerk wird auf deren Charakteristika geworfen.
2.3.1 Geschichtliches
2.2.2 Beispiele Verteilter Systeme
Fast alle frühen Verteilten Systeme waren Peer 2 Peer Anwendungen. UseNet-Server ver-
Ein gutes Beispiel für ein Centralized System ist ein Web-Server. Benutzer verwenden ihren banden sich untereinander, um Nachrichten von Server zu Server weiterzuleiten. Das war
Internet-Browser um auf eine bestimmte Web-Seite auf dem Web-Server zu surfen. Sie eine frühe Form von Document-Sharing. Das FTP ([FTP 1985]) ist ein reines Client-Server
erreichen ihn durch Eingabe einer Domain (Auffindung, statisch durch DNS). Die Seite ist Protokoll, doch betrieben damit viele Benutzer zu Hause einen Server, um ihre Daten mit
verfügbar, wenn der Web-Server in Funktion ist. Die gesamte Kommunikation läuft über Bekannten auszutauschen. Was dieses System zu einem Vorläufer von File-Sharing Pro-
den Web-Server. grammen machte. Dazu kam noch das ein Indexing-System (Archie, nicht mehr existent)
entwickelt wurde, was die globale Suche ermöglichte. Das Fido-Net ist ein weiteres Beispiel
Ein anderes Beispiel war Napster. Napster benutzte zentrale Server um Informationen für ein Peer 2 Peer System. Hier verbanden sich Fido-Nodes untereinander in regelmäßigen
über Dateien zu speichern. Die Kommunikation selbst passierte dann zwischen den Clients Abständen (Ad-Hoc Connection) um Mails in Foren untereinander auszutauschen.
(man konnte ein File fertig downloaden, auch wenn der Server nicht erreichbar war). Deshalb
konnte man Napster auch einfach unterbinden, da man das Betreiben der Index-Server 2.3.2 Was ist Peer 2 Peer?
untersagte. Napster lag in der Grauzone zwischen Centralized und Decentralized Systems.
Systeme die nur teilweise decentralized sind nennt man Brokered Systems. Peer heißt übersetzt ’Gleichgestellter’ oder ’ebenbürtig’, was eigentlich schon aussagt was
Peer 2 Peer bedeutet. Peer 2 Peer Systeme sind Verteilte Systeme. Anders als bei Client-
Gnutella ([GNUTELLA 2001]) ist ein Beispiel eines vollkommen dezentralen Systems. Server Systemen (centralized ) sind die einzelnen Nodes gleichgestellt, dass heißt, jeder Node
20 2 PEER 2 PEER 2.4 Charakteristika von Peer 2 Peer Systemen 21
agiert als Server und als Client. Ein Peer 2 Peer Netzwerk ist dynamisch. Nodes (Peers)
und Verbindungen sind nicht statisch. Das darunterliegende Netzwerk kann aber sehr wohl
statisch sein (zum Beispiel Internet). Nodes haben meist kein Wissen über die Topologie
des Netzwerkes (Identitäten, Verbindungen, . . . ) von anderen Peers im Netzwerk.
Ende der 1990iger Jahre kam es zu einer neuen Definition von Peer 2 Peer:
P2P is a class of applications that takes advantage of resources (for example storage,
cycles, content, human presence) available at the edges of the Internet ([Shirky]).
Mit ’Computers at the edges of the Internet’ sind Computer die zeitlich begrenzt im
Internet sind, eventuell nicht direkt erreichbar sind (Firewall, NAT,. . . ) oder verschiedene
Protokolle und Betriebssysteme verwenden, gemeint (Abbildung 4 auf Seite 20). Diese
Definition sagt auch aus, das eine Vielzahl von klassischen Client-Server Applikationen (zum
Beispiel SETI@Home ([SETI 2001])) eigentlich auch zu Peer 2 Peer Applikationen gehören, Abbildung 5: Grundsätzliche Einteilung von Peer 2 Peer Systemen in Pure- beziehungsweise
da jeder Peer seine CPU-Leistung zur Berechnung einer gemeinsamen Aufgabe verwendet. Hybrid-Systeme ([HP Laboratories]).
Abbildung 6: Hybrid Peer 2 Peer Modell: (1) Verbindungsaufnahme mit dem Server. (2) Direkte
Kommunikation 2er Peers ([HP Laboratories]).
Abbildung 4: Typische Umgebung für ein Peer 2 Peer Netzwerk ([Taylor 2003],[gezeichnet: Fürn-
stahl 2003]).
2.4 Charakteristika von Peer 2 Peer Systemen
Der größte Vorteil von Peer 2 Peer Systemen ist, dass alle Systeme dezentral sind. Diese
Topologie hat Einfluss auf alle anderen Bereiche die für Peer 2 Peer Systeme nötig sind. Des
weiteren sind folgende Punkte bei Peer 2 Peer Systemen sehr wichtig:
Das Erreichen guter Skalierbarkeit, sollte nicht auf Kosten anderer Funktionen (Perfor- 2.4.5 Performance
mance, deterministisch,. . . ) gehen.
Fast alle Peer 2 Peer Systeme steigern ihre Performance durch das verteilte speichern von
Deshalb verwalten hybride Peer 2 Peer Systeme (Napster, hatte cirka eine Skalierbarkeit Daten (Napster,. . . ) oder das verteilte Nutzen von Rechenzyklen (SETI@Home ([SETI
von 6 Millionen Usern) Teile der Operationen zentral. 2001]),. . . ). Da diese Systeme weit verteilt sind, spielen die durchlaufenden Netzwerke eine
große Rolle (Bandbreite,. . . ). Hier spricht man bei Performance nicht mehr von Millise-
Dezentrale Systeme wie zum Beispiel GNuttella, sind Ad-Hoc Systeme (blinde Systeme), kunden, sondern beispielsweise von der Zeit um eine Datei zu empfangen, oder wieviel
dass heißt ein Peer muß eine Suchanfrage zu vielen anderen Peers schicken, die wiederum Bandbreite eine Suchabfrage benötigt. Hybride Systeme versuchen durch teilweise zentrale
eine Suche starten. Die Suchzeit kann in schlechten Fällen unbegrenzt sein, was das System Verwaltungsmechanismen die Performance zu steigern. Das Problem mit sehr dezentralen
nicht deterministisch macht. System ist, dass viele Nachrichten von Hop zu Hop weitergeschickt werden müssen und so
viel Bandbreite konsumiert wird.
Bei vielen Peer 2 Peer Systemen (CAN, Chord, Oceanstore, PAST) verwaltet jede Node
eine kleine Anzahl an anderen Nodes im System. Die Anzahl der zu verwaltenden Zustände Es gibt drei häufige Methoden, die angewendet werden können, um die Performance zu
ist dadurch limitiert, was eine Steigerung der Skalierbarkeit als Folge hat. Solche Systeme verbessern:
haben eine Skalierbarkeit von Milliarden Benutzern und über 1014 Files.
• Replication: Durch diese Methode werden Kopien von Objekten näher bei Peers
platziert, die das Objekt gerade anfordern, um die Entfernung zu minimieren. Ände-
2.4.2 Anonymität rungen in den Daten müssen auch bei den Replikaten erneuert werden. Die geographi-
sche Verteilung der Peers hilft, um geeignete Positionen für Kopien zu finden. Durch
Das Free Haven Projekt ([Free Haven]) legt folgende Punkte der Anonymität fest: die Ad-Hoc Connectivity von Peers, ist Replication auch nützlich wenn Peers die Ver-
bindung zum System trennen, aber andere Peers diese Objekte trotzdem gespeichert
• Der Autor oder Hersteller eines Dokumentes oder Files kann nicht identifiziert werden. haben.
• Die Person, die das Dokument oder File im System veröffentlicht, kann nicht identifi- • Caching: Caching reduziert die Pfadlänge, die benötigt wird, um ein Objekt zu
ziert werden. empfangen. Wird ein Objekt empfangen, cachen alle oder einige Nodes die zwischen
den beiden Peers liegen das Objekt.
• Benutzer, die das Dokument oder File lesen beziehungsweise downloaden, können nicht
identifiziert werden. • Intelligentes Routing: Durch intelligentes Routen durch das Peer 2 Peer Netzwerk
kann die Performance drastisch gesteigert werden. Das Routing in Peer 2 Peer Netz-
• Peers, die das Dokument oder File besitzen, können nicht identifiziert werden. werken ist aber ein sehr komplexes Thema, weshalb wir auf einschlägige Literatur
verweisen.
• Ein Server kann bezüglich einer Suchanfrage, nicht sagen was das gefundene Dokument
beinhaltet. 2.4.6 Security
Peer 2 Peer Systeme haben bezüglich Sicherheit viel mit üblichen Verteilten Systemen ge-
Prinzipiell gibt es drei Formen der Anonymität, egal in welcher Form sie vorliegt. Sender-
meinsam, weshalb wir nur auf einige Möglichkeiten eingehen werden.
Anonymität, Empfänger-Anonymität oder Mutual-Anonymität (beides) ([Pfitzmann 1987]).
Welche Arten, welche Techniken und welche Stufen der Anonymität verwendet werden, hängt • Multi-Key Encryption: Die Verschlüsselung basiert auf einem Public Key und meh-
von den Peer 2 Peer Systemen selbst ab. reren Private Keys (Für den Ersteller, den Besitzer,. . . ). Die sogenannten Byzantine-
Attacks waren eine Gefahr für solche Systeme (siehe diverse Dokumente über Byzantine
2.4.3 Cost of Ownership General’s Problem). Aktuelle Fortschritte ([Castro 1999]) minimieren dieses Problem
aber.
Ein grundlegender Punkt bei Peer 2 Peer Systemen ist das Aufteilen der Kosten. Beispiels-
weise ist SETI@Home ([SETI 2001]) bei seinen Berechnungen schneller als der schnellste • Sandboxing: Peer 2 Peer Systeme müssen Code auf Peer-Maschinen ausführen. Es
Supercomputer, und kostet cirka nur 1% desselben ([HP Laboratories]). Das ganze File- ist wichtig, diese Computer davor zu beschützen, dass fehlerhafter oder bösartiger Co-
Sharing Konzept besteht aus der Idee, das jeder einen Teil der Dateien (zum Beispiel MP3) de ausgeführt werden kann. Es muß allgemeine Sicherheitsmaßnahmen geben, sodass
zur Verfügung stellt. kein Computer durch Code beschädigt oder zum Absturz gebracht werden kann. Es
darf auch nur der Datenzugriff auf benötigte Daten erlaubt werden. Techniken, um das
sicherzustellen wären zum Beispiel: Type-safe languages (.NET, Java), Virtual Ma-
2.4.4 Ad-Hoc Connectivity chines (VMWare,. . . ), bestimmte Compiler die spezielle Überprüfungen durchführen
und bestimmte Betriebssysteme (Windows 2003, FreeBSD, . . . ), die eine eigene Stack-
In Peer 2 Peer Systemen können nicht alle Abläufe auf allen System gleichzeitig durchgeführt Architektur haben.
werden. Manche Systeme sind nur kurzfristig oder gar nicht erreichbar. Peer 2 Peer Systeme
müssen mit dieser (bei Peer 2 Peer Systemen üblichen) Art der willkürlichen Verbindungs- • Digital Rights Management: Peer 2 Peer Systeme machen das Vebreiten von
aufnahme durch spezielle Algorithmen (beispielsweise Join/Leave) zurechtkommen. Dateien sehr einfach. Ein wesentlicher Punkt ist deshalb, Copyrightinformationen in
24 2 PEER 2 PEER 2.5 Peer 2 Peer Applikationen 25
Dateien zu speichern. Dazu werden übliche Techniken (Steganographie - zum Beispiel Anlaufstelle für Entwickler und Anwender. Ebenso gibt es Implementierungen, die versucht
Watermarking ) verwendet. sind, eine Basis für Peer 2 Peer Systeme zur Verfügung zu stellen ([JXTA]).
• Bewertungen: Es ist sinnvoll, Bewertungen von Peers abzugeben. Beispielsweise
sollen Peers gut bewertet werden, wenn sie viele Dateien zur Verfügung stellen, diese 2.5 Peer 2 Peer Applikationen
Dateien nicht korrupt sind oder sie oft erreichbar sind. Dieses Kapitel wird Peer 2 Peer Applikationen in Aufgaben-Kategorien aufteilen.
• Firewalls und NAT: Viele Peers befinden sich hinter Firewalls. Firewalls blocken
üblicherweise eingehende TCP/IP Pakets. Ein Peer innerhalb einer Firewall ist von 2.5.1 Allgemeines
aussen nicht erreichbar. Viele Computer verwenden auch NAT (Network Address Peer 2 Peer lassen sich grundsätzlich in 4 Klassen (Abbildung 7 auf Seite 25) unterteilen:
Translation) was die Verbindung mit einem Peer 2 Peer Netzwerk auch erschwert. Fast
alle Firewalls erlauben den ausgehenden Verkehr durch Port 80, womit zumindest die
Verbindung zu einem Peer 2 Peer Netzwerk aufgebaut werden kann (die Verbindung
muss aber vom Computer innerhalb der Firewall aufgebaut werden). Sind beide No-
des, die miteinander in Verbindung treten wollen, hinter Firewalls müssen sogenannte
Reflection-Server eingesetzt werden. Sie regeln die Kommunikation zwischen diesen
Peers.
3. Kommunikations-Applikationen weitergegeben wird, bis ein oder mehrere Ergebnisse gefunden wurden oder eine gewis-
Der Bereich der Kommunikations-Applikationen gewinnt immer mehr an Bedeutung, se Anzahl an Weitergabeschritten durchgeführt wurde (typischerweise 5-9). Gnutella
da viele Firmen weltweit agieren und billige und schnelle Kommunikation nötig wird. greift auf dieses Modell zurück. Das Modell benötigt eine höhere Netzwerkbandbreite.
Im Allgemeinen sind all diese Kommunikations-Applikationen Ereignis-basierend (Nach- Um diesen Effekt entgegenzuwirken, gibt es Erweiterungen wie zum Beispiel Super-
richt schreiben in einem Chat Programm ist ein Event). Probleme mit denen man in Peers oder Caching.
diesem Bereich kämpfen muß, sind netzwerkbedingte Verzögerungen. Weitere Proble-
me sind Identifikation von Peers und Fehlertoleranz.
4. Platformen
Peer 2 Peer Platformen sind Layer eines Betriebssystems oder Aufsätze auf selbige,
die einfache Implementierungen von Peer 2 Peer Systemen ermöglichen. Dazu gehören
zum Beispiel .NET My Service oder JXTA.
2.5.2 Architektur-Modelle
Es gibt drei verschiedene Implementierungsmodelle, die häufig verwendet werden.
1. Zentralisiertes Verzeichnis-Modell
Dieses Modell (Abbildung 8 auf Seite 26) wurde durch Napster bekannt und zeigte
dort seine Effektivität. Ein Peer der neue Datein anbieten möchte, registriert die-
se bei einem zentralen Verzeichnis. Sollte ein anderer Peer nun diese Datei suchen
(Keywords,. . . ) so wird über dieses Verzeichnis nach der Datei gesucht. Dabei ist es
möglich, bestimmte Anforderungen mit einzubringen (Geschwindigkeit, Zuverlässig-
keit,. . . ). Der Datenaustausch erfolgt danach direkt zwischen den zwei Peers. Man
könnte vermuten, dass diese Architektur bei steigender Anzahl an Peers schnell an
ihre Performancegrenzen stößt. Napster hat jedoch bewiesen, dass dieses Modell sehr Abbildung 9: Flooded Request-Modell kommt bei Gnutella zum Einsatz ([HP Laboratories]).
zuverlässig und effizient funktioniert.
3. Document Routing-Modell
Siehe Grafik (Abbildung 10 auf Seite 28): Dokumenten, die freigegeben werden sollen,
wird eine eindeutige Kennzahl (Hash) zugewiesen, die aus Dokumenttitel und Inhalt
generiert wird. Jedem Peer in dem Netz wird ebenfalls ein GUID (global unique identi-
fier ) zugewiesen. Bei der Freigabe eines Dokumentes, wird dieses Dokument von Peer
zu Peer stets weitergereicht, wobei jeder Peer eine gegebene Anzahl an anderen Peers
kennen muss, bis das Dokument bei dem Peer landet, der die ähnlichste GUID hat.
Bei jeder Weitergabe, wird das Dokument auch bei jedem Peer gesichert (Caching,
Replication). Bei einer Anfrage wird das Dokument solange weitergereicht, bis es der
anfragende Peer erhält. Auch dabei wird das Dokument stets zwischengespeichert.
Obwohl dieses Modell sehr effizient für große Netze ist, hat es den Nachteil, dass die
Dokument-Kennzahl vor Anfrage bekannt sein muß.
existiert schon so lange, dass die Qualität der Applikation an sich schon einen sehr hohen
Standard erreicht hat. Es gibt Implementierungen für fast alle Platformen. SETI@Home
hat trotz eines Management-Servers gute Skalierbarkeit gezeigt (cirka 3 Millionen Benutzer).
2.6.2 Gnutella
Abbildung 11: Down/Up-Stream Bottleneck Vergleiche bei Gnutella/Napster ([GRIBBLE])
Bei Gnutella ([GNUTELLA 2001]) handelt es sich um ein File-Sharing Protokoll. Applikatio-
nen, die dieses Protokol implementieren, geben diesen die Möglichkeit Dateien von anderen
Benutzern downzuloaden. Gnutella wurde im März 2000 von 2 Entwicklern der NullSoft-
Division der Firma AOL implementiert. Es wurde als Open-Source Programm ausgelegt und
funktionierte sehr ähnlich wie Napster. Gnutella wurde aber gleich am nächsten Tag wieder 2.7.3 Session Dauer
offline genommen, da AOL eine Gefahr für Warner-Music und EMI sah. Der Source-Code
Siehe Grafik (Abbildung 12 auf Seite 29): Die Session-Dauer ist bei Napster und Gnutella
des Programmes blieb jedoch lange genug online um sich in der ganzen Welt zu verbreiten.
annähernd gleich. Man erkennt, dass die Mehrzahl der Benutzer lange verbunden bleibt.
Gnutella ist vollkommen dezentral, wodurch ein sehr hoher Anonymitätsgrad erreicht wird.
Das hat große Vorteile für das Peer 2 Peer Netzwerk.
Gnutella ist nicht wirklich eine Software sondern ein Kommunikationsprotokol. Um eine
Verbindung aufzubauen, muß der User die IP-Adresse eines anderen Gnutella-Nodes wissen.
Bei einer Anfrage wird diese an alle bekannten Knoten weitergereicht, solange bis das im
Paket enthaltene time-to-live-Feld 0 ist. Gnutella ist nicht in hohem Grade skalierbar, da
durch das exponentielle Wachstum von Anforderungen beim Weiterreichen enormer Netz-
werktraffic entsteht. Das Protokoll ist nicht sehr fehlertolerant, da nur eine geringe Anzahl
an Benutzern so lange online ist, um Anfragen zu beantworten. Anhand des Broadcast-
Systems gibt es keine garantierte Lösung zu diesem Problem.
Anhand der linken Grafik (Abbildung 13 auf Seite 30) sieht man eindeutig das mehr als
25% der Gnutella-Peers kein einziges File zur Verfügung stellen. 75% stellen weniger als 100
Files zur Verfügung. Nur etwa 7% aller Clients stellen über 1000 Files zur Verfügung. Eine
einfache Berechnung zeigt auf, dass diese 7% zusammen mehr Files anbieten als der Rest
der Benutzer. Die rechte Grafik (Abbildung 13 auf Seite 30) zeigt, dass Napster eine größere
Anzahl an Benutzern mit ähnlicher Anzahl von shared Files hat.
Abbildung 15: Topologie des Gnutella Netzwerkes ([GRIBBLE]).
2.8 Zusammenfassung
Wir glauben, dass Peer 2 Peer Systeme eine wichtige Technologie ist, die mittlerweile in
zahlreichen Produkten und Forschungsprojekten eingesetzt wird. Auch in Zukunft wird
vermehrt auf Peer 2 Peer Systeme zurückgegriffen werden, wenn verteilte Probleme zu lösen
sind. Peer 2 Peer Systeme sind sicher nicht die einzige Lösung und sicher nicht in jedem Fall
anwendbar, stellen aber durch ihre hohe Skalierbarkeit, Anonymität und Fehlerresistenz
Abbildung 13: Shared Files von Benutzern bei Gnutella überhaupt und im Vergleich zu Napster
durchaus eine Alternative zu anderen Modellen dar. Peer 2 Peer Systeme werden einen
([GRIBBLE]).
weiteren Einsatzbereich bei der verteilten Wartung und Installation von Software (SMS)
finden. Peer 2 Peer ist nicht nur eine interessante Forschungstechnologie, sondern auch eine
vielversprechende Produktbasis.
Grafik (Abbildung 14 auf Seite 30) kann folgendermaßen interpretiert werden: Nach-
dem bei Napster alle Dateien im MP3-Format vorliegen müssen und ein durchschnittliches
MP3-File eine Größe von 3,7 MB hat, ergibt sich eine lineares Verhalten zur Anzahl der Fi- Literaturverzeichnis
les. Dadurch ist bei Gnutella (wo beliebige File-Typen erlaubt sind) das Verhältnis breiter
gefächert. [Castro 1999] Castro M. and Liskov B. 1999: Practical Byzantine Fault Tolerance
[FTP 1985] FTP RFC: FTP
[gezeichnet: Fürnstahl 2003] Philipp Fürnstahl 2003
[Free Haven] Free Haven Homepage: Free Haven Project
[GNUTELLA 2001] Gnutella Hompage: GNUTELLA
[GRIBBLE] Steven Gribble: A Measurement study of Peer 2 Peer File Sharing Systems
[HP Laboratories] Dejan S. Milojicic, Vana Kalogeraki, Rajan Lukose, Kiran Nagaraja1,
Jim Pruyne, Bruno Richard, Sami Rollins 2 ,Zhichen Xu, HP Laboratories Palo
Abbildung 14: Anzahl Shared Files / Menge Shared Data bei Gnutella und Napster ([GRIBBLE]). Alto 2002: Peer 2 Peer Computing
[IMESH] iMesh Homepage: iMesh
[JXTA] JXTA Hompage: JXTA
[Tanenbaum 2002] Andrew S. Tanenbaum and Maarten van Steen 2002: Distributed Sy- 3 Wireless LAN
stems, Principles and and Paradigms
Dieser Artikel bietet einen kurzen Überblick über den aktuellen Stand bei Wireless LANs.
[Taylor 2003] Ian Taylor 2003: Peer 2 Peer Systems Vor allem die Sicherheitsaspekte von WLANs werden genauer betrachtet. Die Schwächen
des Sicherheitsprotokolls des aktuellen WLAN-Standards werden erklärt. Außerdem wird
aufgezeigt, wie diese Schwächen von Hackern genützt werden können, um in fremde WLANs
einzudringen und Daten auszuspähen. Die dafür nötigen Sniffer-Tools werden anschließend
vorgestellt.
In Folge werden aktuelle Verbesserungsmöglichkeiten sowie der kommende IEEE Stan-
dard 802.11i erörtert.
Abgeschlossen wird der Artikel mit einem Einblick in die rechtliche Situation betreffend
Datenschutz in Österreich und Deutschland.
3.1 Einführung
Die Abkürzung WLAN bedeutet Wireless Local Area Network und es handelt sich dabei
um ein lokales Funknetzwerk. Es werden also die Daten “drahtlos” durch elektromagneti-
sche Wellen übertragen. Es wird hauptsächlich für die Anbindung von mobilen Clients an
ein Netzwerk (Infrastrukturmodus) verwendet. Es kann aber auch für den Datentransfer
zwischen zwei Geräten (Ad-Hoc-Modus) eingesetzt werden.
Ad-Hoc Netzwerke entstehen meistens spontan, ändern häufig ihre Infrastruktur oder
werden nur temporär benutzt. In diesem Modus kommunizieren zwei Stationen in Form
eines Peer-To-Peer (P2P) Netzwerks miteinander. Im 802.11-Standard wird eine räumli-
che Region, innerhalb der Stationen miteinander kommunizieren können, Basic Service Set
(BSS) genannt. Ein Ad-Hoc Netzwerk ist ein BSS, das nicht mit weiteren Netzwerken ver-
bunden ist, und wird daher auch als Independent BSS (IBSS) bezeichnet.
Beim Infrastrukturmodus übernimmt ein so genannter Access Point (AP) eine Mittler-
position zwischen den mobilen Clients und/oder auch mit einem LAN. Solch eine Zelle wird
im 802.11-Standard als Infrastruktur Basic Service Set bezeichnet. Durch Einbindung meh-
rerer solcher AP’s in ein verkabeltes Ethernet kann die Reichweite des drahtlosen Netzwerkes
ausgedehnt werden und die mobilen Clients können ohne Verbindungsverlust zwischen den
einzelnen AP-Domains bewegt werden. Im 802.11 Standard wird solch ein Netzwerk Exten-
ded Service Set (ESS) genannt.
Die Abbildung 16 zeigt das oben beschriebene Distribution System.
Dieses Distribution System nach dem 802.11 Standard ermöglicht folgende Services:
Distribution Service: Datenübermittlung zwischen den AP’s von Sendern und Empfängern.
Integration Service: Datenübermittlung vom AP der sendenden Station zum Portal des
Empfängers im LAN
Association Service: An- bzw. Abmeldung von Stationen beim Wechsel ihres BSS und
Benachrichtigung aller AP’s im Distribution System über den neuen Standort.
Die Reichweite eines AP’s liegt typischerweise in Gebäuden im Bereich von 10 m bis 100
m. Der Empfangsbereich ist aber von den verwendeten Antennen, der Sendeleistung und
den baulichen Gegebenheiten abhängig.
Punkt zu Punkt Verbindungen erreichen bei Sichtverbindung wesentlich höhere Reich-
weiten. Mit speziellen Richtantennen sind sogar mehrere Kilometer möglich, um Distanzen
34 3 WIRELESS LAN 3.1 Einführung 35
kontinuierlich auf einem breiten Frequenzband versendet. Der Empfänger kann das Si-
gnal nur dann empfangen, wenn ihm dieser Code bekannt ist. Diese Technologie ist wegen
der höheren Übertragungsraten (11 Mbps) am weitesten verbreitet. Im Standard 802.11b
wird nur mehr diese Technologie verwendet. Die Infrarot-Variante wird zurzeit von keinem
Netzwerk-Produkt unterstützt.
Die meisten WLANs benutzen das ISM-Band (Industrial-Scientific-Medical). Dieses
2,4 GHz-Band ist bis auf wenige Ausnahmen weltweit freigeben und darf ohne Genehmi-
gung benutzt werden. Leider verläuft der Datenverkehr in diesem Bereich nicht störungsfrei,
da neben Funksendungen anderer WLANs auch z.B. Mikrowellen als Störquellen in Frage
kommen.
Im 802.11b-Standard sieht die Kanalaufteilung wie folgt aus (siehe auch Abbildung 18):
• Kanalbreite je 22 MHz
Abbildung 16: Distribution System (Abbildung aus [Intelligraphics]) • in Europa 13 Kanäle; in USA, Kanada 11 Kanäle
zwischen Gebäuden überbrücken zu können. Somit können zwei LANs mit Hilfe von Wireless
Bridges verbunden werden.
Der IEEE 802.11 Standard ist die genaue Bezeichnung des Standards für drahtlose Netz-
werke und ist im Juni 1997 verabschiedet worden. Seitdem ist er aber um eine Reihe von
Dokumenten erweitert worden. Erst 1999 mit der Verabschiedung von IEEE 802.11b kam es
zu einer größeren Verbreitung von WLANs, da mit dieser Erweiterung eine Übertragungs-
rate von bis zu 11 Mbps aufgebaut werden kann, während mit dem Originalstandard 802.11
nur 2 Mbps möglich waren.
Die Familie der IEEE 802.11 Standards definiert vor allem die zwei untersten Schichten Abbildung 18: Kanalaufteilung und -überlappung bei 2,4 GHz (Abbildung aus [Hübner 2003])
des OSI-Referenzmodells, wie in Abbildung 17 dargestellt. Die Spezifikation umfasst die
Beschreibung eines Media Access Control (MAC)-Protokolls und drei alternative Physical
Layer (PHY)-Technologien. Zwei davon sind Frequenzspreizverfahren (Frequency Hopping Daraus ergibt sich ein weiterer Nachteil dieses Bandes, da somit nur drei Kanäle zum
Spread Spectrum FHSS bzw. Direct Sequence Spread Spectrum DSSS) und eines funktio- konkurrierenden Betrieb zur Verfügung stehen.
niert auf Infrarot-Basis.
3.1.1 Die Standardfamilie 802.11
In diesem Abschnitt werden die IEEE Standars 802.11g, 802.11a und 802.11h kurz vor-
gestellt. Der Standard 802.11g ist der rückwärtskompatible Nachfolger von 802.11b und
erreicht eine Datenrate von bis zu 54 Mbps.
Im 5 GHz-Bereich bietet der 802.11a Standard Datenraten bis zu 54 Mbps. Dieser
Standard ist in Europa aber nicht zugelassen, sondern nur dessen europäisches Pendant
HiperLAN/2. Außerdem bringt er noch einige andere Nachteile mit sich:
Abbildung 17: IEEE 802-Standards eingebettet im OSI-Modell (Abbildung aus [Intelligraphics]) • Durch die Nutzung der höheren Frequenz ergibt sich eine höhere Dämpfung und eine
starke Anfälligkeit gegen Rauschen, Abschattungen und andere parasitäre Effekte.
• 5 GHz WLANs haben eine um die Hälfte kleinere Reichweite als 2,4 GHz Funknetze,
Bei FHSS wird das Nutzsignal auf ein permanent die Frequenz wechselndes Trägersignal was eine doppelte Anzahl an APs bedeutet.
aufmoduliert. Das Schema des Frequenzwechsels wird durch die Hopping-Sequenzen fest-
gelegt, die synchronisiert sein müssen, damit sich Sender und Empfänger verstehen. Durch • Sie benötigen kostenerhöhende technische Maßnahmen um die Störeffekte zu verrin-
Wahl von unterschiedlichen Sequenzen können mehrere WLAN’s in einem Empfangsbereich gern.
operieren.
Bei DSSS wird jedes Bit in eine Bitfolge verschlüsselt, die auf das Frequenzband auf- Daher eignen sich 5 GHz WLANs nur für große Funknetze, in denen der Vorteil von acht
gespreizt gesendet wird. Es wird hierfür ein Pseudo-Noise-Code verwendet, der das Signal parallel zur Verfügung stehenden Kanälen ausgenutzt werden kann.
36 3 WIRELESS LAN 3.2 Wired Equivalent Privacy 37
Der Standard 802.11h stellt die europäische Variante des 802.11a-Standards dar. Es bie- Produkte verliehen, die ihre Zusammenarbeit mit Produkten anderer Hersteller unter Beweis
tet mit dynamischer Frequenzauswahl (DFS = Dynamic Frequency Selection) und variabler gestellt haben. Dieses Zertifikat sagt nichts über die Sicherheit aus.
Sendeleistung (TPC = Transmit Power Control) zwei Zusatz-Features, die das ETSI (Eu-
ropäischen Standardisierungsinstitut für Telekommunikation) für den europäischen Markt 3.2 Wired Equivalent Privacy
verlangt.
Da es sich bei Funk um ein Shared Medium handelt, müssen Sicherheitsmechanismen im-
3.1.2 Media Access Control plementiert werden, die die folgenden drei Bereiche abdecken:
Dieser Abschnitt beschreibt den Media Access Control (MAC) Layer des 802.11 Standards. • Vertraulichkeit
Bei WLANs kann das aus dem Ethernet bekannte Verfahren CSMA/CD zur Koordinie-
rung des Medienzugriffes nicht verwendet werden, da bei drahtlosen Netzen nicht gleichzeitig • Zugangskontrolle
gesendet und empfangen werden kann. Aus diesem Grund kann ein Teilnehmer des Netzes
• Datenintegrität
nicht überprüfen, ob ein anderer nicht gerade dasselbe macht. Deshalb wird in der 802.11
Standardfamilie das CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance) Pro- In 802.11 wurde zur Verschlüsselung und Authentifizierung WEP (Wired Equivalent
tokoll verwendet: Privacy) spezifiziert. WEP benutzt den Stromchiffrierer RC4 (Ron’s Code 4, entwickelt von
1. Sendewillige Station hört das Medium ab. Ronald L. Rivest 1987).
Bei RC4 handelt es sich im Prinzip um einen Pseudozufallszahlengenerator, der mit einen
2. Ist das Medium für die Dauer eines Inter Frame Space (IFS) frei, wird gesendet. Startwert initialisiert wird und für jedes zu verschlüsselnde Byte eine Zufallszahl ausgibt.
3. Ist das Medium belegt, wird auf ein freies IFS gewartet und dann zusätzlich um eine Diese beiden Bytes werden dann anschließend mit XOR verknüpft, wodurch man das chif-
zufällige Backoff-Zeit verzögert (Kollisionsvermeidung). frierte Byte erhält. Die Entschlüsselung erfolgt analog. Es wird dabei ein geheimer Schlüssel
verwendet, der sowohl den Sender als auch den Empfänger bekannt ist. Es wird mit Hilfe
4. Wird das Medium während der Backoff-Zeit von einem anderen Sender belegt, bleibt desselben Startwertes eine identische Folge von Pseudozufallszahlen erzeugt, die durch XOR
der Backoff-Timer solange stehen. mit dem verschlüsselten Text verknüpft werden. Somit erhält man wieder den Klartext
Bei WEP sind zwei Schlüssellängen spezifiziert 40 und 104 Bit. Der Standard macht
Kollisionen ergeben sich dann nur mehr, wenn entweder zwei sendewillige Stationen die
keine Angaben wie diese Schlüssel verteilt und ausgemacht werden. Es werden pro Paket
gleiche Backoff-Zeit wählen oder durch das Problem der “unsichtbaren Teilnehmer”. Es
die Nutzlast und der Integrity Check Value4 (ICV) mit RC4 verschlüsselt. Der ICV wird
ist möglich, dass zwei Stationen, sich nicht in gegenseitiger Reichweite befinden, aber zur
aus dem Klartext mit Hilfe einer CRC Berechnung erzeugt. Um zu verhindern, dass immer
gleichen dritten Station senden wollen. Sie sind also nicht in der Lage, zu hören, ob der
derselbe Initialisierungsvektor (IV) benutzt wird, entsteht der RC4-Initialisierungswert aus
andere Teilnehmer nicht bereits sendet. Aus diesem Grund sendet eine Station nicht sofort
einer Verkettung eines 24 Bit langen Initialisierungsvektor mit dem geheimen Schlüssel. Da
die Daten, sondern zuerst eine Anfrage. Erst nach Erhalt einer Sendebestätigung wird das
dieser Vektor auch dem Empfänger bekannt sein muss, wird dieser Wert im Header des
Paket übermittelt. Dieser Ablauf ist in Abbildung 19 dargestellt.
MAC-Pakets als Klartext mitübertragen.
Das MAC-Frame-Format für WEP sieht also folgendermaßen aus:
Der Empfänger verkettet zur Entschlüsselung nun den mitgesendeten IV mit dem gehei-
men Schlüssel und entschlüsselt das gesendete Chiffrat mit RC4 um den Klartext und den
ICV zu erhalten. Danach führt er ebenfalls eine CRC Berechnung durch und überprüft, ob
der dadurch gewonnene ICV gleich dem Mitgesendeten ist, um die Integrität sicherzustellen.
Es wird pro Paket ein neuer IV gewählt.
3.3 WEP-Attacken
Abbildung 19: CSMA/CD (Abbildung aus [Uni Oldenburg]) Das WEP-Sicherheitsprotokoll, welches im Standard 802.11 enthalten ist, bietet etliche An-
griffsflächen. Mit den geeigneten Tools und etwas Zeit können Zugangshürden überwunden
werden. Nahezu jeder WLAN-Kartentreiber kann eine andere als die vom Hersteller zu-
gewiesene MAC verwenden. Die “erlaubten” MAC Adressen werden mit einem geeigneten
3.1.3 Wireless Fidelity Sniffer (siehe z.B. Kismet Abschnitt 3.4.3) ausgelesen oder es wird einfach solange probiert,
Ein weiteres oft genanntes Schlagwort ist Wireless Fidelity (WI-FI). bis man Zugang erhält.
Das WI-FI Konsortium3 ist eine internationale Non-Profit Organisation mit dem Ziel Die größere Schwachstelle ist aber der “geheime” Schlüssel und vor allem der Initialisie-
die Zusammenarbeit von WLAN-Produkten zu zertifizieren. Das Wi-Fi Logo wird nur an rungsvektor (IV). Die meisten WLANs verwenden einen geheimen Schlüssel für alle Clients
3 [Link] 4 Prüfsumme
38 3 WIRELESS LAN 3.4 Sniffer 39
und den AP. Aber dieser Schlüssel ist meist gar nicht für die Entschlüsselung notwendig. 3.4.1 NetStumbler
Daher ist die Schlüssellänge nicht wirklich relevant, da der IV sowohl bei Schlüssellängen von
Bei NetStumbler5 handelt es sich um ein Freeware-Hilfsprogramm für Windows. WLANs
64 bzw. 128 Bit genau 24 Bit lang ist. Somit beträgt die eigentliche WEP-Schlüssellänge
innerhalb der Reichweite werden aufspürt. Informationen über die jeweiligen Client-Adapter
bei 64 Bit-Verschlüsselung effektiv nur 40 Bit (64 - 24).
und Access Points werden ermittelt. Wenn der Hersteller des Access Points bekannt ist, sind
Aus folgendem Grund sollte man darauf achten, dass nie zwei Pakete mit demselben
auch die Default Werte für den Administrator Zugang ermittelbar. Mit einem geeigneten
IV verschlüsselt werden. Zwei Nachrichten N1 und N2 ergeben mit dem Schlüssel S zwei
GPS Receiver können Karten mit dem Empfangsbereich der Netze erstellt werden.
codierte Informationen C1 und C2.
genug Pakete gesammelt wurden, wird versucht, die WEP Keys zu ermitteln. Stubblefield, 3.5.3 Global System for Mobile Communications (GSM)
Ioannidis und Rubin von AT&T Labs schufen auf der Grundlage der Arbeit von Fluhrer,
Eine andere Lösungsmöglichkeit wäre, die Sicherheitsmechanismen laut GSM-Standard auf
Mantin und Shamir die Implementierung. Bei schnellen Rechnern funktioniert das bei den
WLANs zu übertragen. Die in GSM verwendeten Mechanismen bieten im Gegensatz zu
meisten WLANs in akzeptabler Zeit. AirSnort funktioniert mit allen gängigen Karten.
dem IEEE Standard 802.11 ein relativ hohes Maß an Sicherheit.
Es gibt erste Lösungen von Nokia und Ericsson, die eine Verbindung von einem WLAN
3.4.7 AP Scanner mit einer GSM-Infrastruktur ermöglichen. Die Authentifzierung erfolgt über ein GSM-SIM,
Mit dem AP Scanner erhält man außer der Anzeige der WLANs innerhalb der Reichweite das in den WLAN-Adapter eingesetzt wird. Die gesamte Abwicklung (Einwählen, Roaming,
nur spärliche Zusatzinformationen. Die Besonderheit dieses Tools ist, dass es auch unter Abrechnung,...) erfolgt über das bestehende GSM-System.
Mac verwendet werden kann. Diese Idee klingt im ersten Moment sehr gut, da ein bestehendes System verwendet wird,
dessen Spezifikation ebenso wie Stärken und Schwächen bestens bekannt und in der Praxis
getestet sind. Allerdings darf nicht übersehen werden, dass es sich auch bei dieser Lösung um
eine proprietäre handelt. Im Jahr 2003 waren noch keine Standards festgelegt. Außerdem
AiroPeak ist sicher ein sehr gutes (aber auch teures) Werkzeug für den Netzwerkadministra- ist hierfür auf jeden Fall spezielle Hardware nötig.
tor. Kismet bietet dagegen viele verschiedene Features, und ist außerdem Freeware.
Grundsätzlich gibt es für Linux eine große Auswahl. Einige Produkte können auch mit 3.5.4 Pass-One
Windows verwendet werden.
Neben der von Nokia und IBM forcierten GSM-WLAN-Variante, gibt es noch einen Lösungs-
ansatz, der sowohl für Mobilfunk- als auch WLAN-Betreiber interessant ist. Pass-One ist
3.5 Verbesserungen der Sicherheit von WLANs eine Lösung die von Wireless ISPs und WLAN-Ausrüstern gestartet wurde. Dieses Sy-
Sicherheit spielt natürlich auch bei Wireless LANs eine große Rolle. Ein WLAN-Betreiber stem dient der Entwicklung eines global akzeptierten Service Level Standards für Hotspots.
muss seinen Kunden eine geschützte Datenübertragung bieten können. Dies ist vor al- Neben Sicherheitsaspekten sind in dieser praxisnahen Lösung auch organisatorische und
lem dann ein Problem, wenn ein WLAN in einer Firma verwendet wird (z.B. als LAN- wirtschaftliche Faktoren von Bedeutung. Insbesondere Roaming also der Wechsel zwischen
Erweiterung) und somit z.B. Kunden- oder Personaldaten zugänglich sind. verschiedenen WLANs soll einfach ermöglicht werden.
Da der aktuelle IEEE 802.11 Verschlüsselungsalgorithmus WEP keine ausreichende Si-
cherheit bietet, gibt es bereits verschiedene Lösungsansätze um diesem Problem zu begeg- 3.6 Der neue Standard 802.11i
nen. Der neue Standard 802.11i wird in Abschnitt 3.6 behandelt, hier werden einige derzeit
Aufgrund der erheblichen Sicherheitsmängel, die WEP aufweist, gibt es die Arbeitsgruppe
gängige proprietäre Lösungen vorgestellt.
TGi die an einer neuen Sicherheitslösung für WLAN arbeitet. Dieser Standardentwurf soll
als 802.11i verabschiedet werden.
3.5.1 Virtual Private Network Die wichtigsten Anforderungen an diese verbesserte Sicherheitslösung waren:
Wenn ein Virtual Private Network (VPN) über einem WLAN betrieben wird, werden sämt-
• Pakete müssen auch authentifiziert, nicht nur verschlüsselt werden.
liche 802.11-Sicherheitsmechanismen weggelassen. Das WLAN wird als öffentliches und da-
mit unsicheres Netzwerk betrachtet, also einfach als ein übertragungsmedium wie Ethernet • Ein Schlüssel wird nur für ein Paket benutzt.
verwendet.
Die gesamte Datenübertragung über das WLAN bis zum VPN-Gateway geht durch einen • Pakete müssen eine verschlüsselte Sequenznummer tragen.
kryptographisch abgesicherten Tunnel. Diese Lösung hat den Vorteil, dass WEP nicht ver-
wendet wird und der Zugang zum dahinter liegenden Netzwerk sauber geregelt ist. Allerdings • Kommunikationspartner müssen sich gegenseitig authentifizieren.
birgt die VPN-Lösung auch Nachteile, da bei grösseren Bandbreiten und vielen gleichzeiti-
Eines der wichtigsten Probleme bei der Erstellung dieses neuen Konzeptes war die
gen Verbindungen die notwendigen Ressourcen und Kosten stark steigen. Außerdem gibt es
Abwärtskompatibilität. Um diese einerseits zu gewährleisten und andererseits langfristig
auch hier verschiedenste Lösungsansätze, ohne dass sich ein Standard durchsetzen konnte.
einen guten Ersatz zu finden, wurden zwei Verschlüsselungsfahren ausgewählt:
Derzeit ist VPN die einzige geeignete Lösung um ein WLAN wirklich abzusichern.
Temporary Key Integrity Protocol (TKIP): Basiert auf WEP um die Kompatibilität
3.5.2 Advanced Mobile Security Architecture zu gewährleisten, aber die größten Schwachstellen fallen weg.
Advanced Mobile Security Architecture (AMSA) ist eine proprietäre Sicherheitslösung von Advanced Encryption Standard (AES): Als langfristiger Ersatz von WEP. AES wird
Agere, die nur auf spezieller Hardware läuft. Für jede Verbindung, die ein Client mit dem vom Offset Codebook (OCB) Modus verwendet.
Access Point öffnet, wird mittels 768-Bit Diffie-Hellman Key Exchange ein individueller RC4-
Schlüssel ausgehandelt. Dabei wird für jede Kommunikationsrichtung ein eigener Schlüssel Bei TKIP wird für jedes Paket ein neuer Schlüssel durch Anwendung einer Hash-Funktion
ausgehandelt. Der Diffie-Hellman Key Exchange ist von einem individuellen Shared-Secret auf dem geheimen symmetrischen Schlüssel, dem IV und einer Paketsequenznummer erzeugt.
(z.B. Benutzerpasswort) abhängig. Der RC4-Schlüssel ist Session-basierend (nicht Frame- Damit soll das Problem des derzeitigen statischen WEP-Schlüssel umgangen werden. Die
basierend wie bei WEP), dadurch entfällt die Notwendigkeit für einen öffentlichen IV, und Authentifizierung von Client und Access Point wird der Standard 802.1x ([IEEE 802.1x])
es stehen die vollen 128 Bit für den Schlüssel zur Verfügung. verwendet. Dieser Standard wurde eigentlich zur portbasierten Netzwerkzugangskontrolle
42 3 WIRELESS LAN 3.7 Gesetzlicher Schutz gegen Attacken auf Funknetze 43
für kabelbasierte Netze entworfen. 802.1x nutzt als Authentisierungssystem das Extensible Informationen und das Umfeld. Die Folge ist, dass ein Hacker von diesem Gesetz überhaupt
Authentication Protocol (EAP), als Authentifizierungs-Instanz dient ein RADIUS-Server11 . nicht berührt wird, solange er sich von personenbezogenen Daten fernhält.
Das offensichtliche Problem hier ist jedoch, dass 802.1x für kabelbasierte geswitchte Netze Das Strafgesetzbuch kennt aber den Tatbestand der Datenbeschädigung
ausgearbeitet wurde, und deshalb nicht auf das Shared Medium bei WLAN ausgerichtet ist. (§ 126a StGB). Dieser Tatbestand ist erfüllt, wenn die eigentliche Computerbenützung ein-
Erste Angriffsmöglichkeiten wurden bereits untersucht. geschränkt wird (z.B. denial of service attack) oder ein Mehraufwand auftritt. Als Mehr-
Für AES, der Nachfolger von DES, wurde der Rijndael-Algorithmus12 von Joan Daemen aufwand gilt z.B. Austausch von Passwörtern, Virenentfernung oder auch der Reboot eines
und Vincent Rijmen vom National Institute of Standards and Technology ausgewählt. Mit Servers.
diesem Verschlüsselungsverfahren wurden die oben genannten Anforderungen erfüllt. Aller- Ein reines akademisches Hacken wäre demgemäß in Österreich derzeit straffrei. Un-
dings setzt auch OCB wieder 802.1x voraus (für die Schlüsselverwaltung und -verteilung). ter “akademischem Hacken” versteht man beispielsweise das bloße Aufspüren von Sicher-
Durch den Einsatz von 802.11i erhöht sich die Komplexität des WLANs. Mit beiden heitslücken ohne sonstige Rechtsverletzungen. Durch die starke Verknüpfung von perso-
Lösungen werden verschlüsselte Sessions zwischen Client und Access Point hergestellt, was nenbezogenen und anderen Daten ist es grundsätzlich sicher sehr schwer, sich auf nicht
sich natürlich negativ auf die Mobilität (Wechsel der Zellen, BSS, ...) auswirkt. personenbezogene Daten zu konzentrieren. Die Gesetzeslücke soll durch Initiativen der EU
und des Europarats geschlossen werden.
3.6.1 Wi-Fi Protected Access
3.7.2 Situation in Deutschland
Da die Entwicklung des IEEE Standards 802.11i für die Praxis zu lange gedauert hat, wurde
vom Wi-Fi-Konsortium13 Wi-Fi Protected Access (WPA) entwickelt. In Deutschland ist nicht nur der persönliche Lebens- und Geheimbereich gesetzlich geschützt,
WPA implementiert einige Teile von 802.11i (erweiterter IV, Message-Integrity-Check,..) sondern es ist auch die Geheimhaltung von nicht unmittelbar wahrnehmbar (also beispiels-
und auch eine Authentifizierung mittels 802.1x, wie bei 802.11i vorgesehen, ist möglich. Al- weise elektronisch oder magnetisch) gespeicherten Daten geregelt. Ein potentieller Täter
lerdings werden andere 802.11i Features wie z.B. das verbesserte Verschlüsselungsverfahren verschafft sich genau dann auf unbefugten Weg Daten, wenn die Daten gegen einen unbe-
(AES) nicht angeboten. rechtigten Zugriff besonders gesichert sind. Daten sind einerseits gespeicherte Daten. Der
Aber auch wenn WPA eine Verbesserung gegenüber WEP bringt, wurden schon Schwächen Fall tritt ein, wenn über das Funknetz die Daten auf einem Rechner unbefugt ausgelesen
entdeckt. So ist auch ein mit WPA geschütztes WLAN nicht sicher gegen eine Denial-Of- werden. Andererseits werden auch die gerade in Übermittlung befindlichen Daten von dieser
Service-Attacke. Vorschrift behandelt. Dieser Fall tritt beim passiven oder aktiven Mitlesen des Datenver-
kehrs ein.
Die Vorrausetzung der besonderen Sicherung gegen unberechtigten Zugang ist im Bereich
3.7 Gesetzlicher Schutz gegen Attacken auf Funknetze der WLANs problematisch. Es stellt sich die Frage, ob Zugangssperren zum Netzwerk
ausreichend sind, oder ob die Daten auf dem Rechner ebenfalls mit Zugangssperren geschützt
Im Folgenden wird “Sniffen” im Zusammenhang mit den österreichschen bzw. deutschen
werden müssen. Beispiele für Zugangsperren bei WLANs sind:
Gesetzen betrachtet. Es wird auch gezeigt, dass die gesetzlichen Einschränkungen für Hacker
nur gelten, wenn im Vorfeld gewisse Sicherheitsmaßnahmen getroffen wurden. Tatsächlich • Hidden SSID
gibt es besonders bei der Datensicherheit gravierende Gesetzeslücken.
• shared key Systeme
3.7.1 Situation in Österreich • MAC-Adress-Control Systeme
Sniffen ist rechtlich nicht vollständig geklärt. Selbstverständlich muss es erlaubt sein, wenn Einige Stimmen in der Literatur meinen, eine besondere Sicherung muss für einen ver-
man sein eigenes Netz mittels eines Sniffers auf Sicherheitslücken überprüft. “Testet” man sierten EDV-Experten eine Hürde darstellen. Die überwiegende Meinung sagt aber im Ge-
ein fremdes Netz, ist Sniffen vergleichbar mit Hacken. Dabei geht es um datenschutzrecht- gensatz dazu, ein Hindernis für versierte EDV-Anwender und sachkundige Laien sei ausrei-
liche Aspekte (d.h. Eingriff in die Privatsphäre Dritter) und strafrechtliche Aspekte (d.h. chend. Bei Funknetzen gibt es eben derzeit noch keine anspruchsvollen und praxistauglichen
Beschädigung des Datenverkehrs Dritter). Sicherungen. Aber um die vorhandenen Sicherungen zu knacken, muss sich der Laie zumin-
Bei kabelbasierenden Netzwerken ist es noch verhältnismäßig schwer Sniffer in ein anderes dest intensiv mit der Materie beschäftigen. Mit den bereits angesprochenen Zugangssperren
Netzwerk physisch einzuschleusen. Wenn WLAN-Technologie für das betroffene Netzwerk sollte der Netzwerkbetreiber sein Geheimhaltungsinteresse ausreichend dokumentiert haben
verwendet wird, reicht es, mit dem entsprechenden Equipment herumzufahren und sich und somit zumindest strafrechtlich gegen das Ausspähen von Daten auf seinen Rechnern
z.B. dem Zaun des Firmengeländes zu nähern. Das ist im Gegensatz zu den bisherigen geschützt sein.
Möglichkeiten zum Abhören (Wanzen) nicht verboten. Inwieweit der strafrechtliche Schutz auch beim Ausspähen von in Übermittlung befindli-
Ob das sogenannte War-driving zulässig ist, ist nicht eindeutig geklärt. Eine mögliche chen Daten reicht, hängt in erster Linie von den physischen Maßnahmen (z. B. Abschirmung)
Argumentation ist, dass der Betrieb eines Sniffer-Equipments mit der Absicht fremde Daten ab. Eine Abschirmung ist ein besonderer Schutz, daher ist strafrechtlicher Schutz sicher ge-
auszuspähen erfolgt, und dass sowohl der Versuch strafbarer Handlungen als auch Vorberei- geben. Wird weder eine Abschirmung noch Verschlüsselung benützt, bekommt man keine
tungshandlungen strafbar sind. Hacken (und daher erst recht Sniffen) ist im österreichischen Unterstützung vom deutschen Gesetzgeber. Andererseits stellt sich die Frage, inwieweit eine
Datenschutzgesetz 2000 nicht geregelt. Dieses Gesetz regelt ausschließlich personenbezogene auf WEP basierte Verschlüsselung als “besondere Sicherung” gilt. Der Gesetzgeber wollte
11 Remote Authentication Dial-In User Service, Authentifizierungs-Instanz bei EAP
die Daten während der Übertragung unabhängig vom Übertragungsmedium schützen. Die
12 [Link] verschlüsselten Daten werden aber ohne weiteren Schutz übertragen. Bei der Verschlüsse-
13 [Link] lung werden neue Daten erzeugt. Werden die verschlüsselten Daten als ein eigenes Objekt
44 LITERATURVERZEICHNIS LITERATURVERZEICHNIS 45
angesehen, tritt der Fall der ungesicherten Übertragung ein. Verschlüsselung stellt also nur [Hassenstein 2002] G. Hassenstein: Wireless LAN Security; Berner Fachhochschule; PDF
dann eine rechtlich geeignete Schutzmaßnahme dar, wenn der erzeugte “Datensalat” keine
eigene Tatobjektqualität besitzt. [Hoff et al 2002] S. Hoff, H.P. Mohn: Sicherheit in Wireless LAN: Eine endlose Geschichte?;
Das Netzwerk Insider Jahrbuch 2002, pp 105–119
3.7.3 Datenschutzprobleme bei WLAN [IEEE 802.1x] IEEE 802.1x “Port-Based Network Access Control”, 2001.
Derzeit ist es also praktisch nicht möglich, ein angriffsicheres WLAN zu betrieben. Laut [Arge Daten 2002-07-20] Ist in Österreich “Sniffen” erlaubt?; Österreichische Gesell-
verschiedenen Berichten wurden zumindest in der Vergangenheit sehr viele WLANs ohne schaft für Datenschutz; [Link] Stand vom
Verschlüsselung und die üblichen Sicherheitsmaßnahmen betrieben. Beispielsweise wurden 18.11.2003
laut einer Studie von Ernst & Young 2002 in Wien rund 80 % von den 200 getesteten WLANs
ungeschützt betrieben werden. Problematisch ist dieser Zustand beispielsweise bei Banken, [Arge Daten 2002-08-19] Sicherheitstechnische Mindestandards bei Behörden; Österreichi-
Versicherungen, Rechtsanwälten und öffentlichen Unternehmen, die besondere Regelungen sche Gesellschaft für Datenschutz; [Link]
für die Datensicherheit einhalten sollen. Zumindest zum Untersuchungszeitpunkt (also vor Stand vom 18.11.2003
Februar 2002) gab es um die Wiener Stiftskaserne viele ungeschützte WLANs. Diese Kaserne
[Arge Daten 2003] Wie ist Hacken im DSG 2000 geregelt?; Österreichische Gesellschaft für
ist unter anderem Sitz des Heeresdatenverarbeitungsamtes (siehe [FuZo 2002-04-29]).
Datenschutz; [Link] Stand vom 18.11.2003
In der EU-Datenschutzrichtlinie und im DSG 2000 gibt es nur recht vage Formulierungen
zu Verpflichtungen bei Datensicherheitsmaßnahmen und keine genau definierten Mindest- [Hübner 2003] U. Hübner: IEEE 802.11/802.11b; Technische Universität Chemnitz,
standards. Diese Gesetzeslücken werden eben besonders bei Technologien wie Wireless LAN Fakultät für Informatik; [Link]
immer offensichtlicher und führen zu enormen Datenschutzproblemen. Stand vom 18.11.2003
Ein Aspekt der Entwicklung der WLAN-Technologie ist, dass durch den leichten Zugang
zu Sniffer Equipment und KnowHow eine weitere Bedrohung für die Privatsphäre entstanden [Intelligraphics] Introduction to IEEE 802.11; [Link] [Link];
ist. Dieser Bedrohung kann aber nicht ausschließlich mit Gesetzen wirksam gegenübergetre- Stand vom 18.11.2003
ten werden. Zusätzlich sind Aufklärung und Vorsorgemaßnamen notwendig.
[FuZo 2002-04-22] 80 Prozent der Wiener WLANs ungeschützt; ORF Futurezo-
ne; [Link] Stand vom
3.8 Zusammenfassung 18.11.2003
Mit Kabelnetzwerken stoßen Netzwerkadministratoren schnell an ihre Grenzen. Gerade in [FuZo 2002-04-29] Riskanter Pfusch bei Funknetzen; ORF Futurezone;
der heutigen Zeit, muss alles mobil sein. Das verlangen Anwender auch von den Computer- [Link] Stand vom
netzen. Daher sind WLANs unumgänglich. Dennoch muss bedacht werden, dass WLANs 18.11.2003
trotz aller Vorteile auch gravierende Nachteile mit sich bringen.
Die Sicherheitsaspekte von WLANs werden sehr oft vernachlässigt. Vor allem wenn ein [Uni Karlsruhe] IEEE 802.11: Architektur; Universität Karlsruhe, Institut für Telematik;
WLAN nur als Erweiterung eines LANs errichtet wird, werden die notwendigen zusätzlichen Web-Link; Stand vom 18.11.2003
Sicherheitsvorkehrungen nicht angewandt.
[ZDNet 1] TechReport: Wireless Security - So prüfen Sie Ihr WLAN auf Sicher-
Wie dieser Artikel erläutert, bieten aber nicht einmal die vorhandenen Sicherheitsvorkeh-
heitslücken; ZDNet; [Link]
rungen (WEP), wenn sie verwendet werden, ausreichend Schutz vor Hackern. Auf Grund der
7,[Link]; Stand vom 18.11.2003
deutlichen Schwächen des aktuellen Sicherheitsstandards gibt es bereits viele Hacker-Tools
(Sniffer) die das Ausspähen von WLANs ermöglichen. [ZDNet 2] TechReport: Wireless Security - Surf-Schäden; ZDNet;
Als Schlussfolgerung bleibt, dass WLANs mit den aktuellen IEEE Standards nicht ent- [Link] Stand
sprechend geschützt werden können. Ob der neue Standard 802.11i ausreichend sein wird, vom 18.11.2003
wird sich in der Praxis erweisen müssen. Auf jeden Fall ist dieser Standard deutlich kom-
plexer und aufwändiger. Ansonsten bleiben nur proprietäre Lösungen wie VPNs, um die [Uni Oldenburg] ; Universität Oldenburg, Institut für Informatik; Web-Link; Stand vom
Daten wirksam zu schützen. 23.11.2003
Literaturverzeichnis
[Dornseif et al 2002] M. Dornseif, K.H. Schumann, C. Klein: Tatsächliche und rechtliche
Risiken drahtloser Computernetzwerke; Datenschutz und Datensicherheit 2002 Heft
4; PDF
So kann diese Technologie überall dort eingesetzt werden, wo elektronische Geräte über
4.1 Bluetooth kurze Distanzen miteinander kommunizieren und den ”lokalen Kabel- und Schnittstellen-
Dschungel” minimieren. Durch das Ersetzen der Kabel im Nahbereich wird ebenfalls die
Einleitung Im Folgenden wird die Technologie Bluetooth betrachtet. Dabei folgen nach
Mobilität erhöht und AD-Hoc - Verbindungen werden vereinfacht bzw. ermöglicht. Die An-
einer kurzen geschichtlichen Einleitung ein Überblick über die Funktionsweise, Protokolle,
wendungsbereiche für Bluetooth sind also mannigfaltig. Das spiegelt sich auch im rasanten
Sicherheitsaspekte und ein Blick in die Zukunft von Bluetooth im Bereich der PANs.
Anstieg der Mitglieder der Bluetooth SIG wieder - Firmen der verschiedensten Branchen
wollen diese Technologie bei ihren Produkten zum Einsatz bringen.
4.1.1 Einführung
4.1.3 Wie funktioniert Bluetooth?
Was ist Bluetooth? Bluetooth ist eine registrierte Handelsmarke, die Funkverbindungen
zwischen verschiedensten Geräten - sei es mobil oder stationär - ermöglicht. Es ist Im Gegensatz zu vielen Wireless-Standards beinhaltet die Bluetooth-Spezifikation Link-
also ein internationaler Standard, über den alle möglichen Geräte drahtlos miteinander Layer- und Application-Layer-Definitionen für Produktentwickler die Daten- Sprach- und
kommunizieren können. Inhaltsspezifische Anwendungen herstellen. Somit ist sichergestellt, dass alle Produkte die
Bluetooth nutzen miteinander kommunizieren können.
Die geschichtliche Entwicklung 1994 gab Ericsson eine Machbarkeitsstudie über low-
Technische Daten zur Funkübertragung: Für die Funkübertragung wird das ISM-Frequenzband
power und low-cost Funkübertragungen zwischen ihren Mobiltelefonen und dem ent-
genutzt. ISM steht für Industrial, Scientific and Medical. Dieses Band liegt bei
sprechenden Zubehör in Auftrag. Im Februar 1998 gründeten fünf Firmen eine Inter-
2,45 GHz und ist weltweit reserviert und lizenzfrei. Somit ist Bluetooth weltweit
essensgemeinschaft. Dieser SIG (Special Interest Group) gehörten anfangs Ericsson,
einsetzbar, ohne z.B. in irgendwelchen Ländern mit dem Militärfunk zu konkurrie-
Nokia, IBM, Toshiba und Intel an. Es waren also je zwei Marktführer aus der Telefonie
ren. Allerdings verursachen Mikrowellen in diesem Bereich Störstrahlung. Um diesem
und der Laptop-Hersteller sowie der Marktführer im Bereich der digitalen Signalver-
Problem Herr zu werden, wird eine als ”Frequency Hopping” bekannte Technologie
arbeitungstechnologie vertreten. Das gemeinsame Ziel war es anstatt der unzähligen
verwendet: Rund um die 2,45 GHz werden 79 Kanäle mit je 1 MHz genutzt. Nach
verschieden Schnittstellen zwischen diversen Geräten ein einziges, drahtloses Interface
jedem verschickten Datenpaket wechselt das Bluetooth Modul zufallsmäßig auf einen
zu kreieren. Dieser Standard wurde nach dem dänischen König Blauzahn (910-985)
anderen Kanal. Die Paketlängen bei Bluetooth- Übertragungen sind relativ klein.
benannt - wohl ein Tribut an die beteiligten skandinavischen Firmen. So wie dieser
Das bedeutet einerseits einen relativ großen Overhead, senkt aber andererseits die
König Blauzahn einst Dänemark und Norwegen vereinte, sollte Bluetooth die Welten
Störanfälligkeit, da kleinere Pakete eher störungsfrei übertragen werden können. Auf-
von Computern und Telekommunikation vereinen. Die große Bedeutung von Bluetooth
grund der Paketlängen und des Frequency-Hoppings wechselt ein Bluetooth-Device
erkannten weltweit Unternehmen aus verschiedenen Bereichen und schlossen sich der
also bis zu 1600 mal pro Sekunde den Kanal. Die Reichweite der Funkwellen beträgt
Interessensgemeinschaft an. So zählt die SIG heute bereits über 3000 Mitglieder die in
je nach Sendeleistung bis zu 10 bzw. 100 Meter, ohne dass ein Sichtkontakt zwischen
verschiedenen Arbeitsgruppen zusammenarbeiten. Der Hauptsitz der Bluetooth SIG
den Geräten nötig ist.
befindet sich seit 2002 in Overland Park, Kansas. Die Spezifikation 1.0 wurde Mitte
1999 veröffentlicht, Ende 2000 folgte die Version 1.1 und seit 5. November 2003 ist Das Pico-Netzwerk: Wenn Geräte über Bluetooth miteinander kommunizieren, bilden
die Spezifikation 1.2 veröffentlicht. Dabei wurde immer auf Abwärts-Kompatibilität sie ein Netzwerk. Diese Art Netzwerk wird als ”Pico-Netzwerk” bezeichnet. In sol-
geachtet. chen Netzen ist stets ein Gerät der Master und regelt als solcher die Kommunikation
48 4 PERSONAL AREA NETWORK (PAN) 4.1 Bluetooth 49
der Devices. Neben dem Master können bis zu sieben Geräte als aktive Slaves und L2CAP Logic Link Control and Adaption Protocol: Dieses Protokoll bietet Dien-
bis zu 255 Geräte als inaktive Slaves im Pico-Netz betrieben werden. Die einzel- ste an, damit höhere Protokolle über Bluetooth kommunizieren können. Dazu
nen Geräte verfügen über eine feste Adresse, vergleichbar mit den MAC-Adressen im gehört die Verbindungsherstellung über ACL mittels L2CAP-Signalen, das Zer-
Ethernet. Wenn ein Master einen weiteren Master in seiner Reichweite findet, kann teilen von größeren Datenpaketen für die Übertragung und das Multiplexen zwi-
er sich als Slave im anderen Netz einbuchen und so eine Brücke zwischen den Pico- schen verschiedenen höheren Protokollen. Da alle höheren Protokolle auf dieses
Netzen darstellen. Ebenso kann sich ein Slave der mehrere Master findet gleichzeitig L2CAP zurückgreifen, kommt diesem Layer eine sehr große Bedeutung zu.
in verschiedenen Netzen einbuchen. Weiters kann jedes Endgerät zu jedem beliebigen RFCOMM: emuliert eine serielle Schnittstelle. Dadurch lassen sich z.B. TCP/IP
Zeitpunkt Netze betreten oder verlassen. Die Zusammenfassung dieser Eigenschaften Verbindungen über PPP aufbauen.
wird als ”Scatternet” bezeichnet.
BNEP Bluetooth Network Encapsulation Protocol: Hier werden verschiedene
Das Protokoll: Allgemein ist zu sagen, dass bei Bluetooth verschiedene bestehende Pro- Protokolle gekapselt, um sie über L2CAP zu übertragen. So werden IPv4, IPv6
tokolle wiederverwendet und neue Protokolle implementiert werden. Dabei bauen alle und IPx und weitere vorhandene Netzwerkprotokolle unterstützt. Das ermöglicht
höheren Protokolle auf die grundlegenden Protokolle auf. Da die Spezifikation offen effiziente IP-basierende Kommunikation im Pico-Netz und die Weiterleitung von
ist, können weitere auf Buetooth basierende Protokolle implementiert werden und so IP-Paketen über Zwischenstationen. Zukünftige Netzwerkprotokolle sollen eben-
künftige Anwendungen Bluetooth einfach nutzen. Weiters benötigt jede Anwendung falls unterstützt werden. Zum BNEP gehören so genannte PAN-Profile (Personal
nicht den vollen Protokoll-Stack sondern nur eine durchgehende horizontale Linie. Area Network). Hier wird festgelegt, welche Rolle ein Gerät im Pico-Netzwerk
Dazu wurden verschiedene Profile wie LAN Access- Headset- und viele weitere Profile spielt. Dabei gibt es:
definiert. • NAP Network Acces Point: Teilnehmer mit direktem Netzwerkzugang der
sieben weiteren PANUs Zugang zum Netz ermöglichen kann.
• PANU PAN User: Teilnehmer ohne Netzzugang der Slave im NAP-Netz oder
Ad-Hoc-Netz ist.
• GN Group Ad-Hoc Network: Master in einem Pico-Netz ohne Netzwerkzu-
gang. Alle weitern Protokolle wie z.B. TCP/IP bauen auf diesen Protokollen
der niederen Schichten auf und werden hier nicht weiter erläutert.
Die Pakete: Bluetooth Pakete sind nach folgendem Schema aufgebaut:
zwei Geräte die Verschlüsselung für ihre Kommunikation nutzen, so müssen sie zuerst gepaart Dieses Unterkapitel behandelt die IrDA Technologie. Dabei handelt es sich um einen
werden. Bei dieser Paarung gibt es drei verschiedene Möglichkeiten: Standard zur Kommunikation mittels Infrarot. Es wird dabei auf die beiden wichtigsten
• Die Paarung geschieht für eine Session. Dabei muss unter anderem an beiden Geräten Protokolle, IrDA Data und IrDA Control, näher eingegangen.
ein bis zu 16 Byte langer PIN vorliegen. Dieser kann entweder eingegeben oder fix
eingestellt werden. Der PIN muss aber an beiden Geräten übereinstimmen. D.h., 4.2.1 Einführung
dass zwei Geräte mit fixem aber unterschiedlichen PIN ihre Kommunikation nicht Geschichte: Die IrDA wurde 1993 in Walnut Creek, Kalifornien gegründet. Ihre Aufgabe
verschlüsseln können. besteht darin einen Infrarot Standard zu definieren, der drahtlose Verbindung zwischen
• Eine weiter Möglichkeit zur Paarung ist, dass Geräteschlüssel als Verbindungsschlüssel einer großen Auswahl von unterschiedlichsten Geräten unterschiedlicher Plattformen
verwendet werden. Dieser wird bei der erstmaligen Verwendung des Bluetooth-Gerätes ermöglichen. Sie arbeitet als ”Non Profit” Vereinigung. Zu ihren Mitgliedern zählen
erzeugt und ändert sich im Allgemeinen nicht. zahlreiche Unternehmen aus den Bereichen Hardware, Software, Telefon, Automobil...
• Master-Schlüssel können vereinbart werden, wenn ein Master mehrere Geräten mit Wozu IrDA: Die Hauptanwendungsgebiete von IrDA liegen im Kruzstreckenbereich bei
demselben Schlüssel erreichen will. Sie gelten wiederum nur für die jeweilige Sitzung. einer Distanz von einigen Metern. Verwendung findet diese Technologie hauptsächlich
bei der Punkt zu Punkt Verbindung von Host-PCs, Digitalkameras, Handheld Da-
Zur Authentisierung wird eine einfache Authentisierung verwendet. Das bedeutet, dass
tensammlungsgeräten etc. Weiters wird IrDA auch für multipoint-Anwendungen wie
sich nur ein Gerät beim Anderen authentisiert und nicht zwingenderweise auch umgekehrt.
Keyboard und Mouse (1-Weg), Joysicks (2-Weg + geringe Latenzzeit) eingesetzt. Für
Wenn sich zumindest ein Gerät beim Anderen authentisiert hat, kann eine Verschlüsselung
multipoint-Anwendungen muss beim Design auf Timesharing oder Räumliche Tren-
verwendet werden. Dabei wird die Verschlüsselung nach dem Aushandeln der Parameter
nung geachtet werden um Interferenzen zu vermeiden. Es gibt zwei große IrDA Pro-
vom Master gestartet. Dazu einigen sich die Geräte auf eine Schlüssellänge zwischen 8
tokollgruppen:
und 128 Bit. Für die Verschlüsselung stehen ebenfalls die Punkt-zu-Punkt oder Punkt-zu-
Mehrpunkt-Betriebsarten zur Verfügung. • IrDA Data
Bluetooth bringt also gute Voraussetzungen für abhörsichere Verbindungen mit. Al-
• IrDA Control
lerdings ist die Verschlüsselung immer optional, muss also vom Benutzer explizit verlangt
werden! Wenn ein Gerät wie z.B. ein Headset keine Möglichkeit zur Einstellung eines PINs
bietet, sind oft schwache Schlüssel (”0000”) vom Erzeuger voreingestellt. Wenn bei der 4.2.2 IrDA Data
Paarung ein schwacher PIN verwendet wird, so kann dieser eventuell erraten werden und IrDA Data definiert seit 1994 einen Standard für eine kabellose und universelle Zweiweg
damit der Verbindungsschlüssel errechnet werden. Der PIN ist der einzige geheime Para- Infrarotübertragung. Bis jetzt wurde IrDA in über 300 Millionen Elektronikgeräten einge-
meter bei der Erzeugung des Verbindungsschlüssels und sollte möglichst schwer zu erraten baut. Beispiele hierfür sind: Notebooks, PalmPCs, Drucker, digitale Kameras, Telephone,
sein. Das steht aber im Widerspruch zu den Nutzergewohnheiten. Viele Nutzer verwenden PDAs, eBooks, Uhren und viele mehr. Das IrDA Protokoll besteht aus einer Vielzahl von
aus ”merktechnischen Gründen” denselben einfachen PIN für viele Geräte. Es gibt eine Rei- zwingenden und einigen optionalen Protokollen.
he von weiteren Kritikpunkten an den Verschlüsselungs- und Authentisierungsmechanismen Obligatorische Protokolle:
bei Bluetooth. Dabei stellt sich jedoch die Frage wie sicher Bluetooth eigentlich sein soll.
Ein Kompromiss zwischen User-Freundlichkeit und Sicherheit muss also gefunden werden. • PHY (Physical Signaling Layer)
Angesichts der begrenzten Reichweite und der oftmals nicht so sicherheitskritischen An- • IrLAP (Link Access Protocol)
wendungen reichen die implementierten Mechanismen für den Durchschnitts-User sicherlich
aus. • IrLMP (Link Management Protocol und Information Access Service (IAS))
Physikalische Eigenschaften von IrDA:
4.1.5 Die Zukunft von Bluetooth
Die nahe Zukunft von Bluetooth liegt sicherlich im Heimbereich beim entwirren des Kabel- • Reichweite: Im Abstand von 1 Meter muss eine Kommunikation fehlerfrei möglich sein
salates. Auch in Autos wird bereits Bluetooth-Technologie für Freisprechanlagen genutzt. (Entfernungen von 2 Meter sollten jedoch kein Problem darstellen). Es gibt auch eine
Haushaltsgeräte und Haussteuerungsanlagen können in Zukunft ebenfalls diese Technologie Lowpower Version die einen Mindestabstand von 20 cm unterstützt. Diese Implemen-
nutzen sowie Dienstleistungen an öffentlichen Plätzen angeboten werden. Da die Sendelei- tation verbraucht nur ein zehntel der Energie.
stung sehr gering ist (1 bis 100 mW im Vergleich zu GSM mit 800 bis 2000 mW) sind auch • Bei allen Spezifikationen ist eine Bidirektionale Kommunikation definiert.
gesundheitliche Schäden nahezu ausgeschlossen. Dies trägt zusammen mit der Gebührenfrei-
heit sicher auch zu einer großen Akzeptanz in allen Bevölkerungsschichten bei. Bluetooth ist • Die Transferrate reicht von 9600 b/s bis 16 Mb/s.
also eine kostengünstige, gebührenfreie und zukunftsorientierte Technologie auf einem klei-
• Die Datenpakete werden mittels CRC Prüfung gesichert. (CRC-16 für Geschwindig-
nen Modul, das Mobilität und Interkonnektivität erhöht und dabei bislang keine relevanten
keiten bis 1.152 Mb/s und CRC-32 für Geschwindigkeiten bis 16 Mb/s)
Nachteile aufweist. Daher ist ein Ende des Bluetooth-Booms nicht abzusehen.
Eigenschaften von IrDA Link Access Protocol (IrLAP)
4.2 Infrared Data Association (IrDA)
• Unterstützt eine Geräte zu Geräte Kommunikation für einen zuverlässigen und geord-
Einleitung neten Datentransfer
52 4 PERSONAL AREA NETWORK (PAN) 4.2 Infrared Data Association (IrDA) 53
• Unterstützt Geräteidentifizierungsroutinen.
Eigenschaften von IrDA Link Management Protokoll (IrLMP)
• Unterstützt multiplexing der IrLAP Schicht. Die ermöglicht mehrere Kanäle der über-
geordneten IrLAP Verbindung.
• Unterstützt die Protokoll- und Service Findung über das Information Access Service
(IAS).
Optionale IrDA Protokolle:
Abbildung 24: Blockschaltbild, Quelle: [Specifications]
• Tiny TP: Unterstützt die Flusskontrolle von IrLMP Verbindungen mit einem optiona-
lem Segmentation- und Reassembly Service.
• IrCOMM: Unterstützt COM (seriell und parallel) Port Emulation für COM Anwen- Inverted Modulation). Bis zu einer Geschwindigkeit von 4Mbit/s wird eine 4PPM
dungen, Drucker und Modems. (Puls Positions Modulation) Modulation verwendet, wobei eine ”1” ein Puls und eine
• OBEX: Unterstützt Objekt-austausch-services,...ähnlich zu HTTP ”0” ein Chip (Chip = Eine Zeitscheibe in einer PPM). Für Geschwindigkeiten bis
16Mbit/s findet eine HHH14 (1,13)Modulation Verwendung. Die HHH Modulation
• IrDA Lite: Unterstützt Methoden, welche den IrDA Code reduzieren mit gleichzeitiger besteht aus mindestens einem leeren bis maximal 13 leeren Chips zwischen Chips die
Kompatibilität zur vollständigen Impementation. Pulse beinhalten. Im Punkt (b) sind die elektrischen Analogien zu den optischen
Signalen an Punkt (c).
• IrTran-P: Unterstützt ein Bild-austausch Protokoll, welches z.b. in Digitalkameras
Verwendung findet. Für Transferraten bis inclusive 115.2 Kbit/s wird das Signal in Frames organisiert.
Jedes Byte wird asynchron mit einem Startbit, 8 Datenbits und einem Stopbit übert-
• IrMC: Ist eine Spezifikation die die Kommunikation zwischen mobilen Telekommuni- ragen. Für höhere Transferraten werden die Daten in synchronen Frames, bestehend
kationsgeräten beschreibt. aus mehreren Datenbytes übertragen.
• IrLAN: Beschreibt ein Protokoll, welches den Drahtlosen IR Zugang zu LANs ermöglicht. In der Tabelle sind die Transferraten, die Art der Modulation und die Signalbreiten
ersichtlich.
IrDA DATA - Hardware/Protocol Stacks:Abbildung 23
ad 1 - Verbindungslose Services:
Es wurden folgende Services definiert:
Abbildung 27: Verbindngsorientierte Services, Quelle: [Specifications]
1. Discovery Services (request, indication, confirm)
Dienen zur Suche nach Geräten, die sich in Reichweite der Basisstation befinden.
IrLMP (Link Management Protocol und Information Access Service (IAS)) Das
2. Address Conflict Services (request, confirm)
Link Management Protokoll ist Bestandteil des IrDA Standards für IrDA Geräte und
Dienen zur Lösung von Adresskonflikten zwischen verschiedenen Geräten. unterstützt walk-up und ad-hoc Verbindungen zwischen zwei Geräten. Die Software
3. Unit Data Services (request, indication) vom einen Gerät kann die Services, welche das andere Gerät unterstützt selbständig
Bieten eine Möglichkeit um Daten außerhalb einer Verbindung zu transferieren. herausfinden. Das Protokoll unterstützt eine Vielzahl von Softwareanwendungen, die
Dieser Datentransfer ist jedoch unzuverlässig. unabhängig voneinander und gleichzeitig über die selbe IR Schnittstelle mit anderen
Geräten kommunizieren. Dies beinhaltet verschiedene Aufgaben wie Ausfindig machen
Die Daten können nicht gerichtet auf ein spezifisches Gerät gesendet werden.
von anderen Geräten, Schnittstellenmultiplexing und Kontrolle der Schnittstelle.
Entspricht also einem ”Broadcast”.
Die generelle IrDA Protokoll Architektur: Das Link Management definiert zwei Kom-
ad 2 - Verbindungsorientierte Services: ponenten innerhalb dieser Architektur:
56 4 PERSONAL AREA NETWORK (PAN) 4.2 Infrared Data Association (IrDA) 57
Überblick über die verschiedenen Layer: Der Physikalische Layer (IrBus PHY) defi-
niert die physikalischen Eigenschaften der Übertragung. In ihm wird z.B. die Art der
Modulation definiert. Der MAC Layer definiert das Medien-Zugriffs-Schema der IR
Abbildung 28: Generelle Protokoll Architektur, Quelle: [Specifications] Kommunikation. Der LLC dient der Übertragungssicherheit. Er stellt z.B. sicher,
dass die Daten in der richtigen Reihenfole ankommen oder sorgt für eine Neusendung
bei Datenverlust. Es gibt grundsätzlich 4 Möglichkeiten eines Application Layer Pro-
Information Access Service: Jede LM-IAS Existenz stellt eine Informationsbasis tokolls. Die Unterscheidung kann anhand des LLC frames getroffen werden. In ihm
bereit um einem anderen Gerät die Möglichkeit zu bieten Informationen über die stehen 2 Bits der HostID zur Codierung bereit. Bis jetzt gibt es allerdings nur 2 rea-
zur Verfügung stehenden Services zu geben. Natürlich ist es dann dem Gerät lisierte Application Layer. Das HA Protokoll für Heim Anwendungen und das USB
auch möglich die gleichen Informationen von einem anderen Gerät zu erhalten. HID Protokoll für Comuter Eingabegeräte.
LM-IAS definiert Operationen, welche für den Zugriff auf Information wichtig Überblick des IrDA Physical Layer:
sind.
• Der Entfernungsbereich entspricht dem herkömmlicher uni-direktionalen Infra-
Link Management Multiplexer: Der LM-MUX stellt dem lokalen LM-IAS und
rotfernsteuerungen (mindestens 5m)
dem Transport von Existenzen oder Anwendungen (die an den LM-MUX gebun-
den sind) Services zur Verfügung. IrLAP stellt hierfür eine zuverlässige Verbin- • Bidriektionalität ist die Basis aller Spezifikationen
dung zwischen zwei IrDA Geräten zur Verfügung. Der LM-MUX unterstützt • Maximal 75 kb/s Übertragungsrate.
multiple Data-link Verbindungen über IrLAP • Die Daten werden in einer 16-Puls Sequenz multipliziert mit einem 1.5 MHz
Subcarrier übertragen. Die Spezifikation befindet sich in [IEC 1603-1]. Durch die
4.2.4 IrDA Control harmonischen Frequenzen die dabei entstehen, kann die Kommunikation in andere
IEC Bänder eindringen. Durch das 16 PSM Schema werden die Interferenzen im
IrDA Control ist ein Infrarot Kommunikations Standard, welcher es erlaubt verschiedenste
33-40 kHz Band minimiert.
Peripheriegeräte wie Keyboards, Mäuse, Gamepads, Joysticks und Zeigegeräte mit vielen
Typen von intelligenten Hostgeräten zu verbinden. Unter Hostgeräten versteht man PCs, • Die Datenpakete werden durch eine CRC Summe überprüft (CRC-8 für kleine
Spielekonsolen und TV-Web Endgeräten, etc. IrDA ist perfekt geeignet um mit Geräten zu- Pakete, CRC-16 für große).
sammenzuarbeiten, welche die USB HID15 class unterstützen. Es unterstützt natürlich auch • Der physikalische Layer ist für geringen Stromverbrauch optimiert und kann mit
herkömmliche Fernsteuerungen mit komplexen Implementationsrichtlinien für bidirektionale günstiger Hardware realisiert werden.
Fernsteuerungen mit MAC Enumeration und LLC Transaktionen.
Überblick des IrDA Media Access Control Layer (MAC):
Das IrDA Control Protokoll besteht aus einem Set von wichtigen Protokollen (siehe
Abbildung 29): • Erlaubt ein Hostgerät mit mehreren pheripherie Geräten zu kommunizieren (Max
8)
• PHY (Physical layer)
• Erlaubt schnelle Reaktionszeiten (13.8 ms Grund-polling rate) und geringe Verzöge-
• MAC (Media Access Control) rung
und stopt die Kommunikation. Möchte nun ein Pheripheriegerät senden, sieht es
den Sleeping Host und kann ihn mittels eines ”wake” Frames aufwecken.
Mittels einer Address und eines Identifiers identifizieren sich die Hosts und Pheri-
pheriegeräte. Ein Host identifiziert sich mittels einer 8 Bit Adresse, die entweder
vom Hersteller vorgegeben wird oder bei der Installation gewählt wird und ei-
nes 16 Bit Identifiers. Die Peripheriegeräte identifizieren sich anhand einer 32 Bit
”Physical ID”. Um die Identifikation der einzelnen Hosts bzw. Periperiegeräten zu
erleichtern, wird ein sogenannter Bind Prozess durchgeführt. Dabei wird für jedes
Peripheriegerät eine eindeutige, 4Bit logische Adresse vom Host berechnet. Diese
Berechnung der logischen 4Bit Adresse heißt ”Enumeration”. Die 32 Bit physical
ID und die Host ID werden also nur zu Beginn einer Kommunikation benötigt,
um die Geräte zu identifizieren. Danach werden Peripheriegeräte mittels ihrer
logischen 4Bit Adresse und die Hosts mittels ihrer 8Bit Adresse angesprochen.
Nachdem der Standard relativ offen für zahlreiche Anwendungsmöglichkeiten ge-
halten worden ist, gibt es 3 unterschiedliche Host Modi.
• Mode 0 - Sleep Mode:
In diesem benötigt der Host wenig Ressourcen und Strom. Der Sleep Mode
ist der Default Mode jedes Hosts. Er wird dann eingestellt wenn weder der
Host noch die Pheripheriegeräte kommunizieren müssen. Abbildung 32: MAC Frame, Quelle: [Specifications]
• Mode-1 - Normal Mode:
Der Normal Mode ist der ”normale” Arbeitsmodus eines Hosts. In diesem
Modus werden verschiedenste Geräte unterstützt die unterschiedlichste An- In diesem Feld stehen Bits die zur Kommunikation benötigt werden. Die
forderungen an die Reaktionszeit stellen. Es gibt prinzipiell Zeitkritische Belegung der Bits ist davon abhängig, ob der Host mit der Peripherie oder
(Maus, Joystick) und nicht zeitkritische Geräte (Fernsteuerung). Bei einem umgekehrt kommuniziert. Dieses Feld beinhaltet Flags wie: Long Frame,
zeitkritischem Gerät wird ein Pollingintervall von 13.8ms vom Host garan- Binding Start, Polling Request...
tiert. Neben dem normalen MAC Layer gibt es noch den asymmetrischen MAC
Überblick des asymmetrischen MAC:
• Mode-2 - IrDA-coexistence Mode:
In diesem Modus ist es möglich das IrDA SIR 1.1 Data Communication und • Unterstützung für die dynamische Zuordnung von Peripherie Adressen.
das IrDA Control communication Protokoll gleichzeitig zu benutzen. Mode (Wiederverwendung bereits vorher vergebener Adressen)
2 muss nicht von jedem Host unterstützt werden! • Scheduling des Medienzugriffs befindet sich im HID LLC
Aufbau des MAC Frames: Wie bereits vom physikalischen Layer bekannt, 3. IrDA Logical Link Control Bridge Layer (LLC)
gibt es einen kurzen und einen langen Frame. Hosts und Peripheriegeräte Der LLC beinhaltet Ressourcen für eine zuverlässige Kommunikation zu und vom
können immer nur kurze Frames benutzen. Hosts dürfen aber im Mode- MAC Layer. Der LLC verwendet dazu einige Lightweight Protocol Controlling
1 auch lange Frames verwenden. Peripheriegeräte dürfen nur dann lange Frames. Der LLC stellt lediglich einfache Methoden zur Überprüfung des An-
Frames verwenden, wenn ihnen dies der Host mittels eines Bits im Polling kommens der Daten zur Verfügung. Sollte eine höhere Übertragungssicherheit
Frame erlaubt (Mode 1). Während der selben Polling Procedure ist es nicht gefordert sein, muss diese in einem höheren Level von der Applikation gesichert
möglich, dass sowohl Host als auch Pheriperie lange Frames verwenden. Der werden. In manchen Fällen wie bei USB-HID fungiert der LLC als Bridge zwi-
Host muss bei der Erlaubnis für lange Frames aber darauf achten, dass die schen dem MAC Layer und dem Host Betriebssystem.
Pollingzeit nicht zu groß wird, da sonst die Latenzzeit von 13.8ms nicht mehr Die Funktionen des LLC sind:
gewährleistet werden kann. • Senden von Kommandos
Host Address Field: • Empfangen von Anfragen
Besteht aus der 8Bit Host Adresse. HAAD 0x0 wird für Broadcast Wake up • Senden von Daten
für den Enumeration Prozess verwendet. Dabei startet jeder Host, der noch • Empfangen von Daten
keinen Eintrag für das sendende Gerät hat, seine Enumeration Procedur
und folgende Fehlerkontroll- Funktionen:
Peripheral Address Field:
Besteht aus der 32 Bit Physical ID. Nach dem Binding Prozess besitzt jedes • Vermeidung von doppelten Frames mittels Data Sequence Number
Gerät eine 4 Bit Logische Addresse. Diese ist nicht fix sondern kann sich • Bestätigung des Empfangs
während jedes Binding Prozesses ändern. 0x0 und 0xF sind für den Bind • Erneutes Versenden eines ”verlorenen” Frames
und Enumeration Prozess reserviert. • Meldung von nicht vorhandenen Features bzw. momentane Undurchführbar-
MAC Control Field: keit eines Requests.
62 4 PERSONAL AREA NETWORK (PAN) 4.3 Bluetooth vs. IrDA 63
Karl Flicker: [Link]@[Link], Authentifizierung, ClusterNFS, Zusammenfassung Mit diesen Angaben kann die RPC-Ablaufumgebung, die im Server eingebunden ist,
in die richtige Unterprozedur verzweigen. Sämtliche Felder im RPC-Protokollkopf sind im
XDR-Format (External Data Representaion) ([RFC 1014]) kodiert.
5.1 Einführung
5.4 NFS-Protokoll
Das Network File System (NFS) erlaubt Programmen, auf Dateien in NFS-Serverrechnern Das NFS-Protokoll ([RFC 1094]) ist auf dem Remote Procedure Call (RPC) Abschnitt 5.3
schreibend und lesend zuzugreifen. Der Zugriff geschieht für diese Programme transparent: aufgebaut. Es besteht selbst aus einer Anzahl von RPC-Prozeduren. Die RPC-Protokollparameter
sie müssen für den Betrieb mit NFS weder abgeändert, noch speziell vorbereitet oder mit für das NFS Protokoll:
zusätzlichen Parametern aufgerufen werden. Die Dateien im NFS-Server werden zugänglich
Programmnummer: 100003
gemacht, indem der NFS-Client-Rechner einzelne Dateisysteme oder Ausschnitte aus Datei-
Versionsnummer: 2
systemen des NFS-Servers in sein eigenes Dateisystem einhängt ( mount“). Die Bereitstel-
” Transportprotokoll: UDP
lung der Zugriffsmöglichkeit erfolgt also nicht auf Veranlassung des zugreifenden Programms,
Portnummer: 2049
sondern muss bereits vor dem Zeitpunkt des Zugriffs für das lokale System geschehen sein.
Alle Prozeduren des NFS-Protokolls sind synchron (sequentiell und blocking)17 . Wenn ein
Prozeduraufruf zurückkehrt, kann der Client davon ausgehen, dass die Operation vollständig
abgeschlossen ist. Das ist ein wichtiger Aspekt der Zustandlosigkeit des NFS-Protokolls. Es
5.2 Herkunft und Entstehungsgeschichte von NFS folgt die Protokollspezifikation von NFS in Remote Procedure Call Language (RPCL):
NFS wurde im Jahre 1984 von der Firma Sun Microsystems, Inc. entwickelt und im fol- /*
genden Jahr die erste Implementierung mit der Versionsnummer 2.0 vorgestellt. Es enthielt * Remote file service routines
(eingebettet in das Virtual File System (VFS)) eine Client- und Server-Implementierung */
von NFS, sowie den Verzeichnis-Dienst Yellow Pages (YP). Sun Microsystems hat sich der
Philosophie der verteilten und offenen Systeme verschrieben. Daher wurde NFS von An- program NFS_PROGRAM {
fang an so konzipiert, dass es die Kopplung von Rechnern verschiedener Hersteller mit version NFS_VERSION {
den unterschiedlichsten darauf ablaufenden Betriebssystemen erlaubt. Die Spezifikationen
der NFS-Protokolle wurden veröffentlicht, eine Referenzimplementierung für UNIX ist allen /* Prozedur 0, Tut nichts - für Testzwecke */
void
interessierten Parteien für einen im Verhältnis zum Aufwand günstigen Preis zugänglich.
NFSPROC_NULL(void) = 0;
Einige wenige Hersteller und Softwarehäuser (selbstverständlich auch das Linux-Projekt)
haben das NFS-Protokoll anhand der veröffentlichten Spezifikationen von Grund auf selbst /* Prozedur 1, Dateiattribute holen */
implementiert und frei gegeben. attrstat
1992 gab es 3.1 Millionen installierte Einheiten und über 100 verschiedene Implemen- NFSPROC_GETATTR(fhandle) = 1;
tierungen - NFS ist eine der erfolgreichsten UNIX-Technologien überhaupt. Im Jahre 1995
erschien NFS Version 3 (siehe Abschnitt 5.5) und im April 2003 die Version 4 (siehe Ab- 16 Mit einem ähnlichen Thema beschäftigt sich auch die Gruppe 8: XML-RPCs“.
17 Die ”
schnitt 5.6). Linux-Implementation von NFSV2 erlaubt einen asynchronen Modus
66 5 NETWORK FILE SYSTEM (NFS)/CLUSTERNFS 5.4 NFS-Protokoll 67
oder Client-Rechners nicht auftreten. Die Lösung war ein zustandloses Protokoll, bei dem 5.7 Überblick über alle NFS-Protokoll-Versionen
der Server keine Information über den augenblicklichen Zustand oder Fortschritt des Dialogs
mit dem Client speichern muss. Da der File Handle für eine Datei immer eindeutig sein NFS V2 NFS V3 NFS V4
muss, ist es nach einem Server-Absturz und dem folgenden Wiederanlauf möglich, eine Transport-Protokoll UDP TCP/UDP TCP/UDP
Leseoperation transparent für das Client-Programm fortzusetzen. Während der Server nicht max. Dateigröße ≤4 GB (32-Bit) ≤4 GB (64-Bit) ≤4 GB (64-Bit)
verfügbar ist, wiederholt das Client-System in regelmäßigen Zeitabständen den Leseauftrag max. Paketgröße 8 KB Bis zu 56 KB Bis zu 56 KB
mit den gleichen Parametern an den Server - so lange, bis dieser wieder antwortet. Das Authentifizierung AUTH UNIX AUTH UNIX, Mehrere
erneute Aussenden von Aufträgen nach Ausbleiben einer Antwort ist ein Bestandteil des AUTH DES, [Link]̈glich-
RPC-Mechanismus. AUTH KERB keiten; Stan-
Die Semantik von den RPC-Prozeduren muss derart definiert sein, dass eine problemlose dardmäßig
Wiederholung (Idempotenz) möglich ist. Im NFS-Protokoll ist dies aber bei einigen Proze- Kerberos und
duren (REMOVE, CREATE, RMDIR, MKDIR, LINK, SYMLINK und SETATTR) nicht LIPKEY
der Fall. Damit daraus keine Probleme entstehen, unterhält die NFS-Serverimplementierung Leistungsoptierungen Save Asyn- Compound RP-
unter UNIX einen Cache, in dem bereits erledigte Aufrufe aller nicht wiederholbaren Pro- chronous Wri- Cs, File Delega-
zeduren mit ihrer Transaktions-ID gespeichert werden. Mit Hilfe dieses Caches lassen sich tes, Autom. tion (Update am
Wiederholungen solcher Aufträge an einer bereits gespeicherten RPC-Transaktions-ID er- Dateiattribute- Server erst bei
kennen - anstelle eines Fehlerkodes wird dann ein positives Ergebnis zurückgeliefert. Updates Bedarf)
5.6 NFS Version 4 • Damals hatte man eine andere Infrastruktur, nämlich größtenteils abgeschlossene Net-
ze ohne Verbindung nach außen.
Das NFS-Protokoll Version 4 unterscheidet sich von seinen Vorgängern gänzlich in seiner • Hardware war damals teuer und klobig. Es konnte nicht einfach jemand unbemerkt
Struktur. Es kommt ohne die externen Protokolle für Mount und Locking Manager aus. Die sein Notebook mitnehmen und ans Netzwerk hängen.
Verwendung von nur mehr einem Protokoll erleichtert das Zusammenspiel mit den Firewalls. • Die Computer wurden ausschließlich von Administratoren (und nicht von den Usern
Die wichtigsten Neuerungen: selbst) verwaltet, auf deren moralische Integrität man sich verließ. Den Usern war es
praktisch unmöglich, die Herrschaft über einen solchen Computer zu erlangen.
• NFSV4 ist nicht mehr zustandslos. Client und Server führen stets die Zustände für
• Früher war alles eher kooperativ“ ausgelegt (Ursprung in Unis)
ihre Operationen, z.B.: File öffnen, lesen, sperren, etc. mit. Um die Zustände konsi- ”
• An heute existierende Bedrohungen wurde nicht gedacht.
stent zu halten, sind aufwendige Maßnahmen für den Client- und Server-Wiederanlauf
notwendig.
Daraus resultieren die damals vorgesehen Authentifizierungs“- und Sicherheits-Maßnahmen
• NFSV4 unterstützt das Zusammensetzen von mehreren Operationen. Komplexe Ope- ”
für NFS:
rationen können dadurch mit einem RPC-Aufruf erledigt werden.
• NFSV4 spezifiziert mehrere Authentifzierungsmöglichkeiten (standardmäßig: Kerbe-
ros und LIPKEY). Ein API steht für die Erweiterung mit anderen Authentifizierungs- Client-Identfikation über die IP-Adresse. Die Berechtigung, ein bestimmtes Server-
mechanismen zur verfügung. Directory über NFS zu mounten, wird über die IP-Adresse gesteuert. (Zuordnung:
Datei /etc/exports) Sobald ein Host eine bestimmte IP hat, hat er Zugang zu allen
Für weitere Details siehe [Pawlowsky]. für diese IP exportierten NFS-Shares. Das war ursprünglich sicher, weil aus den oben
70 5 NETWORK FILE SYSTEM (NFS)/CLUSTERNFS 5.10 ClusterNFS 71
genannten Gründen niemand (außer root) eine falsche IP angeben konnte. Heute kann • Eigener Switch für den Cluster.
man leicht eine IP spoofen18 , wenn man Zugang zum Netz hat. (Notebook)
Wenn die Clients große Datenmengen über das Netzwerk senden, bremst eine Ver-
User-Identifikation über UID (user id) und GID (group id). Die üblichen Unix-Berechtigungen schlüsselung alle beteiligten Rechner ziemlich. (Besonders den Server.) Um ein Snif-
(numerische User- und Group-ID) gibt es auch bei NFS. Die Authentifizierung darüber fing zu verhindern, kann man den ganzen Cluster an einen eigenen, getrennten Switch
wird in den RFCs AUTH UNIX“ genannt. Jeder Benutzer hat am Client nur Zugriff hängen, der mit einer Firewall vom restlichen Netzwerk getrennt ist.
”
auf die Dateien, auf die er auch am Server mit seinen IDs Zugriff hätte. Das war Wenn man dann im Inneren des Clusters auf Sicherheitsmaßnahmen verzichtet, ist die
ursprünglich sicher, weil aus den oben genannten Gründen niemand (außer root) eine Sicherheit des Clusters durch die Sicherheit der Firewall bestimmt.
falsche ID vortäuschen konnte. Heute kann man mit Zugang zum Netz leicht beliebige
Identitäten annehmen. (Auf seinem eigenen Notebook ist man root bzw. wer immer
man sein will.) 5.10 ClusterNFS
Mapping des root-Users auf nobody. (Linux: Option root squash). Das ist die einzige Nach einer kurzen Definition und Beschreibung von Clustern werden die Fähigkeiten und
Maßnahme, die auch heute noch wirksam ist, falls der Server nicht physisch zugänglich momentanen Schwächen von ClusterNFS diskutiert.
ist. Dabei wird vom NFS-Server ein Zugriff des Users root des Clients auf den User
nobody des Servers gemappt, der üblicherweise sehr wenige Rechte hat. Damit kann
man zumindest sicherstellen, dass ein Eindringling am Server nicht mehr Rechte hat als 5.10.1 Cluster
die Vereinigung aller Rechte aller dort vorhandenen gewöhnlichen User incl. nobody
aber nicht die Rechte des privilegierten Benutzers root. Eine mögliche Definition: Eine Menge (mehr als einer) von relativ gleichartigen Computern,
die eine gemeinsame Aufgabe erfüllen.
Wenn alle Teilrechner des Clusters mit dem selben System arbeiten sollen, dann bietet
5.9.1 Maßnahmen zur sichereren Authentifizierung
es sich an, sie diskless“ zu betreiben.
”
• Secure NFS mit Hilfe von Secure-RPC
Sämtliche RPC-Calls werden mit einem Public-Key Verfahren abgesichert. (NIS19 5.10.2 Diskless Client
erleichtert dabei die Passwort-Verteilung.)
Das ist (wie der Name andeutet) ein Computer, der keine Festplatte hat, sondern sein root-
• Tunneln von NFS über SSH20 . Filesystem über das Netz bezieht. Keine Platte“ ist nicht unbedingt so streng zu sehen.
”
Man exportiert nur mehr an localhost“ und Clients müssen sich mit SSH auf den Eine reine Swap-Platte ist z.B. für bessere Performance zu empfehlen. Den Bootsektor
” und ggf. den Kernel kann man auch auf dieser Platte speichern, wenn die Netzwerkkarte
Server verbinden und das NFS-Protokoll durch einen dabei hergestellten Tunnel leiten.
nicht die notwendigen Fähigkeiten für ein direktes Booten eines Betriebssystems über das
• Einsatz von NFS4 und Verwendung eines der darin integrierten Authentifizierungs- Netzwerk hat. Der wesentliche Punkt ist der, dass man lokal kein Betriebssystem installiert
Mechanismen. hat. Vorteile eines diskless client“:
”
5.9.2 Alternative Maßnahmen zur Erhöhung der Sicherheit • Zuverlässigkeit (im wirklich disklosen“ Fall: Festplatte kann nicht kaputt werden.)
”
Oft muss man Sicherheit gegen Performance tauschen und in vielen Fällen kann man Sicher-
• Verfügbarkeit (Im Fall mit Swap-Platte: Wiederaufnahme des Betriebs innerhalb we-
heit auch ohne kryptographische Maßnahmen erreichen. Hier nur noch ein paar Stichworte
niger Minuten nach einem Plattenfehler.)
dazu:
Es gibt keine logische Sicherheit“ ohne physische“ Sicherheit. Wenn jemand Zugang • Backup kann am Server erfolgen
” ”
zu einem Computer hat, kann er alles damit machen, z.B. die Platte ausbauen.
• Einsatz von Firewalls • Kosten (Festplatte entfällt. Ein zentrales RAID am Server ist wesentlich billiger als
eines pro Client.)
• Intelligenz der Benutzer erhöhen
18 IP-Spoofing:
• Arbeitsersparnis bei Software-Pflege. (Installation bzw. Update von Software am
Unberechtigte Verwendung bzw. Vortäuschung einer IP-Adresse in einem Netzwerk. Damit
kann man sowohl Switches dazu bewegen, einem Pakete zu schicken, die eigentlich jemandem anderen gehören
Server wirkt sich bei geeigneter Konzeption des Clusters auf alle Clients aus.)
als auch Pakete unter Verwendung einer falschen Absenderadresse verschicken.
19 Network Information Service. Ein Protokoll der Firma SUN zur Erleichterung der Verwaltung von
mehreren Unix-Workstations. NIS wurde gleichzeitig mit NFS entwickelt und veröffentlicht.
Natürlich hat man auch Nachteile, wie z.B. eine geringere IO-Performance sowie die Not-
20 Secure Shell. Ein sicherer Ersatz für die unsicheren Protokolle telnet, rsh, rcp etc. Sowohl die Authenti- wendigkeit, einen schnellen Server einzusetzen, wenn man viele Clients bedienen will. Es
fizierung als auch die während der Sitzung übertragenen Daten werden mit sicheren Methoden verschlüsselt. gibt aber zahlreiche Fälle, in denen die Vorteile die Nachteile überwiegen.
72 5 NETWORK FILE SYSTEM (NFS)/CLUSTERNFS 5.10 ClusterNFS 73
5.10.3 Motivation für ClusterNFS Alle Datei- und Directory-Aktionen (read, create, link, softlink, getattrib, setattrib, rena-
me, remove, copy, mkdir, rmdir) unterstützen dieses Schema.
Wir wollen das ClusterNFS erweitern, sodass auch der Fall funktioniert, in dem sich alle Cli- ClusterNFS kann auch (in eingeschränkter Weise – siehe Abschnitt 5.10.6) die Erzeu-
ents das gleiche root-Verzeichnis schreibenderweise teilen, wobei es zu keinen ungewünschten gung von Dateien in Abhängigkeit von der Datei $$CREATE=<tag>$$“ beeinflussen. Wenn
Beeinflussungen zwischen den Clients kommen darf. ”
z.B. der Versuch gemacht wird, die Datei myfile“ anzulegen, prüft der NFS-Server auf das
Sobald das geschafft ist, kann man ohne weitere Änderungen die Clients sogar mit dem ”
Vorhandensein einer Datei namens
root-Verzeichnis des Servers selbst betreiben. myfile$$CREATE=<tag>$$“. Wenn diese Datei existiert, wird die Datei unter dem Na-
Damit ist dann das Optimum der Wartbarkeit erreicht. Um z.B. ein neues Programm ”
men myfile$$tag=value$$“ neu angelegt, wenn nicht, dann ganz normal als myfile“.
auf allen Clients zu installieren, reicht es, dieses auf dem Server wie auf einem Einzelplatz- ” ”
Das Vorhandensein einer Datei namens $$CREATE=<tag>“ steuert die Datei-Erzeugungs-
System zu installieren. Es ist dann automatisch und ohne Änderungen für alle Clients ”
Strategie für ein gesamtes Verzeichnis.
ausführbar21 .
5.10.5 Momentane Fähigkeiten von ClusterNFS
5.10.4 Konzept von ClusterNFS
ClusterNFS funktioniert bereits jetzt, wenn man sich auf read-only-mounted Clients be-
ClusterNFS22 ist ein Patch für den unter dem Namen Universal NFS Daemon“ ([UNFSD]) schränkt. Einen kleinen Fehler gibt es auch da: Ein Client kann die Dateien eines anderen
”
bekannten NFS-Server23 , der mit der Idee geschaffen wurde, mehrere Computer als Dis- Clients lesen, wenn er deren tagged name“ verwendet.
kless Clients zu betreiben, wobei nicht für jeden ein eigenes root-Verzeichnis notwendig ist, ”
sondern sich alle Clients das gleiche Verzeichnis teilen. Die wenigen Dateien, die bei den 5.10.6 Momentane Schwachpunkte von ClusterNFS
verschiedenen Clients unterschiedlich sind, werden durch interpretierte“ Dateinamen (auch
”
tagged names“ genannt) realisiert. Um die originale Datei ohne Tags zu beschreiben, wird Können die Clients auf das gemeinsam benutzte root-directory auch schreiben (read-write-
”
im Folgenden die Bezeichnung base name“ verwendet. mounted), dann kommt es zu ungewollten gegenseitigen Beeinflussungen. Es gibt momentan
”
Alle im Folgenden beschriebenen Features gelten übrigens nicht nur für Files, sondern (mindestens) folgende Fehlfunktionen:
auch für Directories, Links, Pipes, Char- und Block-Devices.
• Gemeinsam genutzte Dateien können von einem Client gelöscht werden und sind dann
Wenn ein Client die Datei /path/filename“ anfordert, sucht ClusterNFS nach dem Vor-
” für alle Clients gelöscht.
handensein von Dateien der Form /path/filename$$KEY=value$$. Wenn eine solche Datei
• Seltsame Semantik beim Löschen von Files am Client, wenn ein tagged file“ und ein
existiert und der Client einen passenden value für den KEY aufweist, dann wird diese Datei ”
base file“ existieren:
zurückgegeben. Wenn der value nicht stimmt, oder keine derartige Datei existiert, dann ”
wird der File-Request wie üblich abgearbeitet. Im Moment werden die KEYs HOST (Hostna- – Die Datei wird gelöscht ( tagged file“)
”
me), IP (IP-Adresse) und CLIENT (gilt für jeden NFS-Client) unterstützt. – Die Datei ist immer noch da, aber mit anderem Inhalt! ( base file“)
”
Indem man nun auf dem Server alle Client-spezifischen Dateien – Die Datei wird nochmal gelöscht ( base file“)
”
filename$$IP=[Link]$$“ nennt, bzw. Dateien, die für alle Clients gleich, aber – Diesmal ist sie wirklich weg. (Leider aber die gemeinsam genutze Version.)
”
für den Server unterschiedlich sind filename$$CLIENT$$“ nennt, können der Server und • Das CREATE“-Tag funktioniert nur eingeschränkt, nämlich wirklich ausschließlich beim
” ”
alle Clients das selbe root filesystem teilen. Das erleichtert es, einen ganzen Pool von plat- create“, nicht aber beim Modifizieren von Daten, wenn es ein base file“ aber noch
tenlosen Maschinen aufzusetzen und zu warten. ” ”
kein tagged file“ gibt. Durch diese unzureichende Funktionalität kann jeder Client un-
Wenn der NFS-Server mit der Option -T“ oder --translate-names“ gestartet wird, ”
” ” absichtlich gemeinsam benutzte Files überschreiben, die dann für alle Clients verändert
versucht er, einen angeforderte Dateinamen durch Anhängen von verschiedenen Zusätzen sind.
mit Dateien am Server zur Deckung zu bringen. Die Zusätze werden in der folgenden • analog zum read-only-Fall kann ein Client beliebige Dateien beliebiger anderer Clients
Reihenfolge ausprobiert und der erste übereinstimmende Name wird verwendet. überschreiben, indem er deren tagged name“ verwendet.
”
1. /path/filename$$HOSTNAME=ssss$$ (Client hat den Hostnamen ssss) Die angeführten Fehler reichen aus, um ein gemeinsames root directory nach kurzer Zeit der
2. /path/filename$$IP=[Link]$$ gemeinsamen Benutzung so zu zerschießen“, dass viele Programme und Dienste am Client
”
(Client hat die IP-Adresse [Link]) nicht mehr vernünftig oder gar nicht mehr funktonieren.
3. /path/filename$$CLIENT$$ (Client greift über NFS auf die Datei zu)
4. /path/filename (Liefert immer einen Treffer) 5.10.7 Ansatz zur Verbesserung der Schwachpunkte
Wenn eine übereinstimmende Datei gefunden wurde, aber die Berechtigungen nicht stim- Für die korrekte Funktionsweise des ClusterNFS mit Schreibzugriff werden folgende Punkte
men, dann wird das nicht als Treffer interpretiert und mit dem nächsten Zusatz fortgesetzt. benötigt:
21 Zum Glück hat sich unter Unix noch keine Art von Registry“ durchgesetzt, denn etwas derartiges Eine Möglichkeit, Dateien zu verstecken. Das braucht man für Sicherheit und für die
”
(Tausende Konfigurationseinträge zu den unterschiedlichsten Bereichen und Programmen in einer einzigen semantisch korrekte Unterstützung des Löschens von Dateien. Sicherheit: Man will
Datei) würde eine solche Vorgehensweise perfekt vereiteln.
22 Eine kurze, einführende Beschreibung findet man auf der Webseite [ClusterNFS] z.B. nicht, dass der Client die Datei “/etc/shadow“ des Servers lesen kann. Löschen:
23 Wird momentan mit den meisten Linux-Distributionen mitgeliefert, zusätzlich zum NFS-Server, der in Wenn man Dateien nicht verstecken kann, sieht der Client nach dem Löschen eines
den Linux-Kernel integriert ist. Client-Files nicht wie erwünscht Nichts, sondern das Base-File.
74 LITERATURVERZEICHNIS LITERATURVERZEICHNIS 75
Eine copy on write“-Semantik (COW) als Default. Legt zusammen mit dem fol- [Stern] Hal Stern: NFS und NIS (Managing von UNIX-Netzwerken)“, 1. Auflage, Addison-
” ”
genden Punkt das Verhalten beim Schreiben einer Datei fest. Es soll prinzipiell so Wesley (1993).
sein, dass der Client beim Schreiben einer Datei nie das Base-File überschreibt, son-
dern immer eine eigene Kopie anlegt und diese verändert. [RFC 1094] Sun Microsystem, Inc.: NFS: Network File System Protocol Specification“
”
RFC 1094, März 1989
Eine Möglichkeit, Dateien als shared“ zu definieren. Wenn man explizit wünscht,
” [RFC 1813] B. Callaghan, B. Pawlowski, P. Staubach: NFS Version 3 Protocol Specifica-
dass eine Datei geteilt wird, dann soll man das angeben können. (z.B. file$$SHARED$$“) ”
” tion“ RFC 1813, Juni 1995
Das ist eine Umkehrung des momentanen Verhaltens (alle Dateien geteilt, explizite An-
gabe des Tags CREATE“, falls das nicht erwünscht ist). Da mir aber nur ein einziger [RFC 3530] S. Shepler, B. Callaghan, D. Robinson, R. Thurlow: (NFS) version 4 Protocol“
” ”
Fall einfällt, für den ein shared write“ bedingt sinnvoll ist (gemeinsam genutztes RFC 3530, April 2003
”
Logfile) ist es sinnlos, diesen Fall als Default festzulegen.
[Pawlowsky] B. Pawlowsky: The NFS Version 4 Protocoll“
Verhinderung des Zugriffs von Clients auf tagged names“ Das dient dazu, dass ein ”
” ([Link]
Client keine Dateien von anderen Clients lesen, verändern oder löschen kann. Das ist
am einfachsten zu realisieren, indem man dem Client den Zugriff auf Filenamen der [RFC 1050] Sun Microsystem, Inc.: RPC: Remote Procedure Call Protokoll specification
”
Form file$$<tag>$$“ prinzipiell verbietet. Da der (ziemlich unwahrscheinliche) Fall version 2“ RFC 1050, jetzt RFC 1356, Juni 1988
”
eintreten könnte, dass eine Anwendung unbedingt Namen in dieser Form schreiben
[RFC 1014] Sun Microsystem, Inc.: XDR: External Data Representation Standard“
können muss, werden wir in unserer Erweiterung das Tag-Separations-Zeichen ($$) ”
RFC 1014, Juni 1987
konfigurierbar machen. (z.B. mit der Option “--tag-separator=XX“)
[ClusterNFS] ClusterNFS: [Link]
5.10.8 Weitere Möglichkeiten für Projekte
[UNFS3] User-space NFSv3 Server (UNFS3): [Link]
Folgende Punkte sind wegen des zu großen und nicht einfach abschätzbaren Arbeitsaufwands
[UNFSD] Universal NFS2 Daemon:
nicht Bestandteil unseres praktischen Projekts, würden sich aber für Folgeprojekte anbieten:
[Link] id=142
• Portierung der ClusterNFS-Fähigkeiten auf NFS3. [Samba] Samba: opening windows to a wider world“ [Link]
(z.B. auf den User-space NFSv3 Server UNFS3: [UNFS3]) ”
• Auslagerung der Funktionalität in eine eigene Bibliothek zur Verwendung in anderen [Cygwin] Cygwin, a Linux-like environment for Windows: [Link]
Netzwerk-Dateisystemen.
• Verwendung dieser Bibliothek in Samba ([Samba]) um ein ClusterSMB“ bzw. Clu-
” ”
sterCIFS“ 24 mit ähnlichen Fähigkeiten zu bekommen25 .
• etc. . .
5.11 Zusammenfassung
NFS ist ein bewährtes Netzwerk-Dateisystem aus dem Unix-Bereich, das mit der Version 4
auch auf zukünftige Anforderungen vorbereitet ist.
ClusterNFS ist eine spezielle Version eines NFS-Servers, die es erlaubt, für unterschied-
liche Clients unterschiedliche Versionen einer Datei auszuliefern.
ClusterNFS ist im Moment wegen ein paar Schwachpunkten (die wir aber in unserem
Projekt beheben wollen) noch nicht konsequent einsetzbar.
Die Idee von ClusterNFS ist prinzipiell auch auf andere Netzwerk-Dateisysteme (z.B.
SMB/CIFS) anwendbar.
Literaturverzeichnis
[Santifaller] Michael Santifaller: TCP/IP und ONC/NFS“, 4. Auflage, Addison-Wesley
”
(1998).
24 SMB und CIFS sind die Akronyme für die älteren (SMB) und die neueren (CIFS) Versionen der Datei-
6 Simple Object Access Protocol (SOAP) Struktur als SOAP Envelope. So enthält der Header Informationsblöcke, die sich darauf
beziehen, wie die Nachricht verarbeitet werden soll. Dazu gehören Angaben zum Routing
In der heutigen Zeit nimmt die Bedeutung des Informationsaustauschs zwischen dezentrali- und zur Auslieferung, Aussagen über die Authentifizierung oder Autorisierung und Transak-
sierten System immer mehr zu. Vorallem das Medium Internet und die damit verbundenen tionskontexte. Der Body enthält die eigentliche Nachricht, die ausgeliefert und verarbeitet
Transferprotokolle - speziell einfache, erweiterbare und unabhängige Protokolle - nehmen werden soll. Alles, was in XML-Syntax ausgedrückt werden kann, kann im Body einer
hierbei eine entscheidende Rolle ein. So macht durchaus Sinn, sich eingehender mit jenen Nachricht stehen.
Protokollstandards auseinander zu setzen. Der folgende Abschnitt beschäftigt sich mit einem Weiters wird auch der Standardnamespace27 für SOAP Encoding und Datentypen defi-
Solchen und soll eine Motivation für das eigene Einarbeiten in diese Materie geben. niert. Wie in Abbildung 38 zu sehen ist, ist es syntaktisch notwendig, sowohl den envelope-
als auch den encoding-Namespace zu verwenden.
Thomas Fuchs: minos@[Link]
Marc Klostermann: a3@[Link]
SOAP Envelope
Florian Mendel: mendel@[Link]
SOAP Header
6.1 Einführung
Simple Object Access Protocol (SOAP) ist ein XML-basiertes Messaging-Protokoll für den Headerblock
Austausch von strukturierten Informationen zwischen Peers in einer dezentralisierten, ver-
teilten Umgebung.
Headerblock
Headerblock
SOAP Body
Abbildung 36: SOAP Kommunikation [Schwichtenberg 2002]
eigentliche Nachricht
SOAPs großer Vorteil gegenüber anderen Messaging-Protokollen ist seine Einfachheit und
Erweiterbarkeit, d.h. mehrere Merkmale traditioneller Systeme sind nicht Teil der Spezifi-
kation von SOAP (z.B. distributed garbage collection). 6.2.1 SOAP Header
Wenn ein Envelope ein Headerelement enthält, darf er nur ein einziges enthalten, das au-
6.2 Nachrichten in SOAP – SOAP Envelope
ßerdem als erstes Kind des Envelopes vor dem Body erscheint. Der Header kann jeden
Wie bereits erwähnt, definiert die Spezifikation für eine SOAP-Nachricht lediglich einen ein- beliebigen gültigen, wohlgeformten und namespace-qualifizierten XML-Code enthalten, den
fachen XML-basierten Umschlag (Envelope) für die zu übertragenden Informationen sowie der Erzeuger der SOAP-Nachricht dort einfügen möchte.
einen Regelsatz für die Umsetzung anwendungs- und plattformspezifischer Datentypen in Jedes der im Header enthaltenen Elemente wird Headerblock genannt. Der Zweck eines
XML-Darstellungen. Headerblocks besteht darin, Kontextinformationen mitzuteilen, die für die Verarbeitung
Der SOAP Envelope besteht aus einem Body und einem optional vorangestelltem Hea- einer SOAP-Nachricht relevant sind. Ein Beispiel wäre ein Headerblock, der die Identität
der – jene Bestandteile sind im Standardnamespace26 deklariert und definieren eine solche des Absenders nachweist oder über das gewünschte Routing der Nachricht informiert.
26 [Link] 27 [Link]
78 6 SIMPLE OBJECT ACCESS PROTOCOL (SOAP) 6.2 Nachrichten in SOAP – SOAP Envelope 79
</soap:Envelope> Wie aus Abbildung 38 ersichtlich ist, besteht im SOAP Body die Möglichkeit, auch Fehler-
und Statusinformationen zur SOAP-Nachricht unterzubringen. Hierzu bedient man sich dem
optionalen SOAP-Fault-Element. Dieses Element übermittelt folgende vier Informationen:
Abbildung 38: XML-Grundstruktur einer SOAP-Nachricht
Fault-Code: Ein Wert, der den Typ des aufgetretenen Fehlers identifiziert. Der Wert
muss ein qualifizierter Name sein und hat also nur innerhalb eines definierten XML-
Gemäß dem Standardnamespace für SOAP-Envelopes existieren für Headerblöcke drei Namespaces Bedeutung.
Attribute, welche spezifizieren, wie eine SOAP-Nachricht oder Teile davon vom Empfänger
Die vier Standardtypen von Faults sind:
verarbeitet werden soll. Diese Attribute sind:
• VersionMismatch ... Envelope verwendet einen ungültigen Namespace.
actor: Vom Sender zum Empfänger werden verschiedenste Dienste (= actors) im Nachrich-
tenpfad passiert, die irgendetwas, z.B. Verifizierung einer digitalen Signatur, mit der • MustUnderstand ... Ein Headerblock mit gesetztem Attribut wurde nicht ver-
SOAP-Nachricht anstellen – allerdings wird hierzu meistens nur ein Teil der Nachricht standen (siehe 6.2.1 SOAP Header).
gebraucht. Ein Headerblock mit dem Attribut “actor” spezifiziert genau jenen Teil,
• Server ... Ein Fehler, der nicht unmittelbar mit der Verarbeitung der Nachricht
der für den zwischengeschalteten Dienst von Interesse ist.
in Verbindung gebracht werden kann.
<soap:Header> • Client ... In der Nachricht selbst tritt ein Problem auf.
<x:signature actor="uri:SignatureVerifier">
... Fault-String: Eine lesbare Erklärung des Fehlers.
</x:signature>
</soap:Header> Fault-Actor: Die eindeutige Bezeichnung des Knotens mit Nachrichtenpfad – d.h. des
Actors –, bei dem der Fehler aufgetreten ist.
mustUnderstand: Wenn eine SOAP-Nachricht von einer Anwendung an eine andere ge-
Fault-Details: Hiermit werden anwendungsspezifische Einzelheiten über den aufgetretenen
sendet wird, wird implizit vorausgesetzt, dass der Empfänger verstehen muss, wie die
Fehler mitgeteilt. Diese Information muss angegeben werden, wenn der aufgetretene
Nachricht zu verarbeiten ist. Ein Empfänger versteht (oder versteht unter Umständen
Fehler unmittelbar mit einem Problem im Body der Nachricht zusammenhängt. Sie
auch nicht), wie er mit einem bestimmten Headerblock umgehen muss, kann aber
darf jedoch nicht verwendet werden, um Informationen über Fehler auszudrücken, die
möglicherweise die eigentliche Nachricht dennoch ordnungsgemäß verarbeiten. Wenn
im Zusammenhang mit einem der anderen Aspekte des Nachrichtenprozesses aufgetre-
der Absender der Nachricht verlangen will, dass der Empfänger einen bestimmten
ten sind.
Block versteht, kann er diesem das Attribut mustUnderstand =‘‘true‘‘ hinzufügen.
Wenn dieses Flag in einem bestimmten Block gesetzt ist und der Empfänger diesen
Block nicht versteht, muss er die gesamte Nachricht zurückweisen. Beispiel eines SOAP-Faults:
<soap:Body>
<soap:Header> <soap:Fault>
<x:transaction xmlns:x="soap-transaction" <faultcode>[Link]</faultcode>
soap:mustUnderstand="true"> <faultstring>Ungültiger Identitätsnachweis</faultstring>
... <faultactor>uri:actor</faultactor>
</x:transaction> <details>
</soap:Header> <!-- Anwendungsspezifische Einzelheiten -->
</details>
encodingStyle: Wird verwendet, um die im XML-Dokument benützten Datentypen zu </soap:Fault>
charakterisieren (siehe Abbildung 38). </soap:Body>
80 6 SIMPLE OBJECT ACCESS PROTOCOL (SOAP) 6.3 Nachrichtenaustausch 81
Wie bereits erwähnt, stellt SOAP eine Standardmethode für die Strukturierung von XML- RPC ist derzeit die am weitesten verbreitete Anwendung von SOAP. In den meisten Fällen
Nachrichten zur Verfügung. Da XML an keine spezielle Anwendung, Betriebssystemum- wird auch hier HTTP als Protokoll verwendet, weil ein RPC Request bzw. Response ei-
gebung oder Programmiersprache gebunden ist, können XML-Nachrichten in allen Umge- nem einfachen HTTP Request/Response entspricht. Natürlich kann SOAP-RPC28 auch mit
bungen verwendet werden. Dies stellt eine flexible Methode zur Kommunikation zwischen anderen Protokollen verwendet werden. Um einen solchen Call zu machen sind folgende
Anwendungen zur Verfügung und bildet die Grundlage für SOAP. Im Folgenden werden wir Informationen notwendig:
Methoden zum Datenaustausch mittels SOAP kennen lernen.
• URI des Zielobjekts
HTTP/1.1 200 OK Dazu verwendet man folgende RPC Anfrage (HTTP als Protokoll):
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn POST /HistoryLine3/[Link] HTTP/1.1
Host: [Link]
<SOAP-ENV:Envelope... Content-Type: text/xml; charset=utf-8
Content-Length: length
Im Fall eines SOAP-Fehlers während der Verarbeitung der Anfrage muss der Server eine SOAPAction: "[Link]
HTTP 500 “Internal Server Error” Response mit einer SOAP-Nachricht, welche ein SOAP-
Fault-Element (siehe 6.2.3) enthält, schicken. 28 Remote Procedure Calls (RPC)
82 6 SIMPLE OBJECT ACCESS PROTOCOL (SOAP) 6.4 Webservices 83
<?xml version="1.0" encoding="utf-8"?> • Internet Inter-ORB Protocol (IIOP) für CORBA (Common Object Request Broker
<soap:Envelope xmlns:xsi="[Link] ... Architecture)
<soap:Body>
<addEvent xmlns="[Link] Alle diese Protokolle waren jedoch im Internet nicht einsetzbar, weil sie nicht plattformun-
<von>11.11.2003</von> abhängig, nicht plattformübergreifend und/oder nicht einfach genug waren.
<bis>11.11.2003</bis> Ein Webservice dagegen ist eine Programmfunktion, die auf einem Webserver bereitge-
<titel>Titel</titel> stellt wird und via HTTP unter Einsatz von SOAP-Nachrichten aufgerufen werden kann
<ereignis>Beschreibung</ereignis> und die in der HTTP-Antwort ebenfalls eine SOAP-Nachricht liefert.
</addEvent>
Die Verwendung von SOAP via HTTP bringt den unschätzbaren Vorteil, dass die Kom-
</soap:Body>
munikation über Port 80 läuft. D.h. es muss nicht in bestehende Sicherheitskonzepte (Fi-
</soap:Envelope>
rewalls, etc.) eines Unternehmens eingegriffen werden, um eine Lösung, die Webservices
Konnte die Methode erfolgreich ausgeführt werden, so schaut die RPC Antwort wie folgt verwendet, zu implementieren.
aus: Eine Anwendung, die per SOAP eine Anfrage an ein Webservice richtet und die Antwort
des Webservices empfängt, heißt Webservice-Client. Ein solcher Webservice-Client kann
HTTP/1.1 200 OK eine Windows-Anwendung, eine Konsolenanwendung unter Linux, eine Web-Applikation in
Content-Type: text/xml; charset=utf-8 [Link], J2EE oder PHP, oder auch ein anderes Webservice sein.
Content-Length: length
Es hat sich eingebürgert, das Element mit der Nachrichten-Antwortstruktur nach der Metho-
de zu benennen und Response anzuhängen. Im ersten Feld in der Nachrichten-Antwortstruktur
wird der Rückgabewert erwartet.
SOAP-Faults werden für die Rückgabe von Fehlermeldungen an RPC-Clients verwendet,
wenn die Methode nicht ausgeführt werden konnte.
6.4 Webservices
Ein Webservice ist eine Klasse, die ihre Methoden auf einem Webserver zum Aufruf anbietet.
Der Aufruf erfolgt via SOAP, das einen Remote Procedure Call (RPC) einschließlich des
Marshalling/Unmarshalling29 der Parameter und Rückgabewerte beschreibt.
Der Gedanke, der hinter Webservices steht, ist die Koppelung von
(Geschäfts-)Anwendungen über das Internet. Dieser Wunsch ist so alt wie das Netz selbst.
Auf technischer Ebene gab und gibt es dazu eine Vielzahl von Ansätzen: Abbildung 39: Interaktion mit Webservices [Schwichtenberg 2002]
• Remote Procedure Calls (RPC) in verschiedenen Varianten: Distributed Computing
Environment (DCE), Open Network Computing (ONC) RCP von Sun, ISO30 RPC
Es gibt mittlerweile auch eine Vielzahl von Entwicklungsplattformen für Webservices.
• Remote Methode Invocation (RMI) in Java Unterstützt werden Webservices beispielsweise in Microsoft .NET, Microsoft COM, Sun
One, Oracle .Now, IBM Websphere und HP Netaction.
• Remote Function Call (RFC) in SAP Durch die Verwendung des SOAP-Standards sind Webservices plattformübergreifend.
Ein mit Java geschriebenes Webservice, das unter IBM Websphere betrieben wird, kann
• Distributed COM von Microsoft (basiert auf DCE RPC)
von einer Windows-Anwendung genutzt werden, die mit Visual Basic .NET erstellt wurde.
29 Regeln zum Codieren/Decodieren von Objekten in XML Genauso kann ein Java-Applet ein in C# entwickeltes Webservice nutzen, das auf einem IIS
30 International Organisation of Standardization läuft.
84 6 SIMPLE OBJECT ACCESS PROTOCOL (SOAP) 6.4 Webservices 85
Als speziellen Sicherungsmechanismus für Webservices gibt es auch noch von Microsoft
das so genannte WS-Security34 . Dabei können unter Einsatz von digitalen Signaturen und
Zertifikaten wichtige Sicherheitsanforderungen wie Authentifizierung, Integrität und Ver-
traulichkeit sichergestellt werden.
6.4.4 Beispiele
• CERN Webservices35 : Das CERN verwendet Webservices unteranderem zur internen
Verwaltung.
Abbildung 40: UDDI [Schwichtenberg 2002]
• Amazon Web Services API36 : Amazon ermöglicht einerseits das Abfragen von Preisen
und Lieferbeständen und andererseits das Verwalten des eigenen Angebots.
UDDI32 ist ein herstellerübergreifendes Projekt. Es gibt jedoch kein zentrales Verzeich-
nis. Prinzipiell kann jeder ein UDDI-Verzeichnis33 eröffnen. Öffentliche UDDI-Verzeichnisse • Google Web API37 : Google stellt bei Webservices ihre eigenen Such- und Wörterbuch-
gibt es momentan von Microsoft, IBM, Hewlett Packard und SAP. funktionen zur Verfügung.
Neben UDDI gibt es noch einige Websites, die XML-Webservices auflisten:
• HP & IBM online stores: Beispiele von guten e-Commerce-Anbietern mit Zugriff auf
• [Link] Lagerbästanden usw.
31 DISCO (Webservice DISCOvery) beschreibt eine XML-Sprache, um auf WSDL-Dokumente zu verweisen. 34 [Link]
Damit kann man auf einem Webserver ein Verzeichnis aller auf dem Webserver verfügbaren Webservices [Link]
bereitstellen. 35 [Link]
32 [Link] 36 [Link]
33 auch UDDI Business Registry genannt 37 [Link]
86 LITERATURVERZEICHNIS 87
entwickelt, da man mit HTML an seine Grenzen gekommen ist.(siehe auch W3C ([Link])39 )
88 7 XML-RPC 7.3 XML-RPC vs. andere Protokolle 89
Systeme, die es erlaubt Java mit Perl, Perl mit Python, Python mit ASP usw. zu kommu- handhaben ist, wurde es nicht wirklich für große Leistungen entworfen. Weiters gibt es das
nizieren. XML-RPC stellt somit eine Möglichkeit dar, um Informationen über ein standard Problem, dass die Adresse des XML-RPC-Services nicht von einem normalen Webservice
Vokabular auszutauschen. XML-RPC bietet auch einen Vorteil, wenn man etwa ein Service unterscheidbar ist. Und es ist nicht definiert, wie etwa der XML-RPC-Server auf einen GET
zur Verfügung stellen möchte, aber nicht weiß welche Clients zu unterstützen sind. Request reagieren soll.
Hier sei auch ein kleiner Überblick zumindest über die bekanntesten Implementationen Ein wesentlicher Aspekt von XML-RPC ist auch die Sicherheit, denn damit wird es nun
gegeben: möglich gängige Sicherheitsregeln zu durchbrechen (z.B. ist es dadurch möglich Firewalls zu
umgehen). XML-RPC bietet also wenig Sicherheit und stellt somit eine neue Gefahr dar,
• Java wenn es darum geht, bestimmte Bereiche eines Netzwerks zu schützen. Zu einem gewissen
• PHP Grad kann man diese Gefahr beschränken, indem man z.B. in einem lokalen Netzwerk, keine
Anfragen von außen zulässt, sondern nur auf Anfragen innerhalb des Netzwerks antwortet.
• C/C++ Eine andere Möglichkeit wäre etwa Username und Passwort-Parameter zu übergeben, die
natürlich auch codiert und decodiert werden müssen, Oder auch die HTTP-Verbindung
• Perl mittels SSL zu verschlüsseln. Aufgrund dieser Probleme ist also diese Technologie nicht
• ASP unumstritten.
• Mozilla
7.4 Details des XML-RPC Protokolls
44 Dieses Kapitel beschäftigt sich mit dem XML-RPC Protokoll, also der Struktur und Abfolge
• und einige mehr [Link] .
von Anfragen und Antworten, um auf einer entfernten Maschine Prozeduren mittels XML
Davon sind sicher die ersten paar Implementationen die populärsten. und HTTP aufzurufen.
Obwohl RPC und Tunneling über HTTP brauchbare Technologien sind, sollte man auch Wenn ein XML-RPC Aufruf zwischen dem Client (aufrufender Prozess) und dem Server
Aspekte der Skalierbarkeit und der Sicherheit betrachten und beurteilen ob XML-RPC die (aufgerufener Prozess) durchgeführt wird, läuft das folgendermaßen ab:
passende Technologie für ein bestimmtes Problem ist. • Das Client-Programm macht einen Prozeduraufruf durch den XML-RPC-Client und
RPC Architekturen haben natürliche Einschränkungen. Es gibt jedoch genug Fälle wo übergibt dabei Methodenname, Parameter und Zielserver
RPC angemessen ist und auch welche, die bei Kombinierung von Logik und Daten sehr kom-
plex oder riskant werden können, und unnötigen Aufwand darstellen. Außerdem bringt es • Der XML-RPC-Client nimmt diese Daten, verpackt sie in ein XML-File und verschickt
eine Einschränkung mit sich, da die Nachrichten nicht beliebig übertragen werden können, sie mit dem HTTP POST Request an den Server
sondern an gewisse Prozeduren gebunden sind, die eine bestimmte Zahl von Parametern
• Der HTTP-Server empfängt den POST Request und gibt das XML-File an den XML-
benötigt. Prozeduraufrufe bringen also bedeutende Einschränkungen für Entwicklung, Fle-
RPC Listener weiter. Dieser analysiert das File mit einem Parser, erhält daraus den
xibilität und Wartung.
Prozedurnamen, Parameter usw. und ruft die entsprechende Methode mit den richti-
Da HTTP ursprünglich zur Übertragung von Webseiten entworfen wurde gibt es daher
gen Parametern auf
einige Einschränkungen bei der Benützung für verteilte Systeme. Obwohl HTTP einfach zu
40 [Link] • Der Rückgabewert wird dann wiederum in ein entsprechendes XML-File gepackt und
41 [Link] als Antwort des POST Requests an den Client zurückgeschickt
42 [Link]
43 [Link] • Dieser parst ebenfalls das XML-File um den Rückgabewert der Funktion zu erhalten,
44 [Link] und gibt ihn an das Client Programm zurück.
90 7 XML-RPC 7.4 Details des XML-RPC Protokolls 91
Ein kurzer Exkurs zum Parser: Für XML gibt es vorallem zwei verschiedene Typen von <value><dateTime.iso8601>YYYYMMDDTHH:MM:SS
Parsern: </dateTime.iso8601></value>
• Der erste wäre der SAX-Parser (Simple API for XML). Er ist eventbasiert und liest
Binärdarstellung: XML verbietet eine Darstellung der sog. Steuerzeichen. Wie kann man
das File zeilenweise ein. [Link].org45
also Daten, die solche Zeichen enthalten (Binärfiles), übertragen? Dazu verwendet
• Der andere ist der DOM-Parser (Document Object Model). Dieser Parser liest zuerst XML-RPC die base-64 Codierung (siehe RFC 2045), wie sie in Internetapplikationen
das ganze File ein und erstellt dann einen Baum der Dokumentstruktur. [Link]/DOM46 weit verbreitet ist (z.B: Email-Attachments).
Auf eine XML-RPC Anfrage folgt genau eine Antwort. Die Antwort ist also synchron <value><base64>s</base64></value>
zur Anfrage. Der Grund dafür ist, dass die Antwort auf der selben HTTP-Verbindung wie
die Anfrage zurückkommen muss. Außerdem wird das Client Programm “geblockt”, bis es
eine Antwort bekommt, was natürlich Auswirkungen auf den Programmentwurf hat. Array: Ein <array> beinhaltet ein einziges <data> Element, welches wiederum eine va-
HTTP ist von sich aus eine stateless47 [STATE] Technologie und XML-RPC erbt diese riable Anzahl von <value> Elementen beinhalten kann. Die einzelnen Elemente ei-
Eigenschaft. Wenn nun also das Client Programm eine Funktion zweimal hintereinander nes Arrays können auch durchaus verschiedenen Typs sein und es ist auch möglich
aufruft, so können die Aufrufe von XML-RPC nur als zwei unabhängige Ereignisse behandelt mehrdimensionale Arrays zu definieren, einfach durch Verschachtelung von mehreren
werden. Es gibt aber durchaus Fälle wo ein Status von Vorteil wäre, etwa wenn ein Request einfachen Arrays.
ein Objekt erzeugt und spätere Anfragen dieses Objekt verändern wollen. Eine Lösung
wäre beispielsweise, einen Status serverseitig zu speichern und Identifiers in Cookies, um <value>
dem Server mittzuteilen, dass es sich um eine Fortsetzung einer Session handelt. <array>
<data>
7.4.2 Datentypen <value> ein XML-RPC Wert </value>
...
XML-RPC ist normalen Prozeduraufrufen sehr ähnlich, jedoch sind die Parameter in XML- <value> ein XML-RPC Wert </value>
Form gegeben. Ein Datenelement wird dabei in einem </data>
<value> ... </value> Bereich dargestellt. Es gibt eine Menge von einfachen Datenty- </array>
pen, mit denen auch komplexere Datentypen definiert werden können. </value>
Einfache Datentypen
Strukturen: Eine Struktur (<struct>) beinhaltet eine Anzahl von
Ganzzahlen: 32-bit, signed Integer XML Darstellung: <member> Unterelementen, wobei jedes <member> Element ein <name> und ein <value>
<value><i4>n</i4></value> oder <value><int>n</int></value> Element beinhaltet. Strukturen können rekursiv aufgebaut sein, d.h. jedes <value>
Element kann wiederum ein Element des Typs <struct> oder jedes anderen Typs
Fließkommazahlen: Gleitkommazahl doppelter Genauigkeit (64bit), signed beinhalten.
<value><double>n</double></value>
<value>
<struct>
Boolsche Werte: <value><boolean>b</boolean></value>
<member>
Strings: Grundsätzlich eine ASCII Zeichenkette, allerdings muss man vorsichtig sein, wenn <name> Name_1 </name>
verschiedene Systeme verschiedene Codierungen verwenden. XML-Format entweder <value> Wert_1 </value>
ohne oder auch mit expliziter Typangabe. Sonderzeichen müssen entsprechend den </member>
XML-Definitionen geschrieben werden, also z.B: für & für &. ...
<member>
<value>s</value> <name> Name_N </name>
<value><string>s</string></value> oder <value> Wert_N </value>
</member>
Datums-/Zeitangaben: FÜr Datums- und Zeitangaben wird der Typ dateTime.iso8601 </struct>
verwendet. Für XML-RPC wird eine bestimmte Darstellung des ISO8601 Standards </value>
verwendet:
45 [Link] 7.4.3 Formate
46 [Link]
47 d.h. weder Client noch Server wissen was in früheren Verbindungen passierte, da jede Anfrage völlig XML-RPC bedient sich also der Sprache XML, um die Daten in einer in einer standardisier-
neu ist ten Form zu senden. Dadurch wird ja die Systemunabhängige Kommunikation ermöglicht.
92 7 XML-RPC 7.5 Zusammenfassung 93
Request Format XML-RPC definiert einen HTTP und XML Request, der zu einem <member>
Server gesendet wird um am Server Prozeduren auszuführen. Dabei besteht ein Request aus <name>faultString</name>
einem HTTP-Header und einer XML-Payload. <value><string>No such method.</string></value>
Der XML-Teil hält den Namen der aufzurufenden Methode und die dazugehörigen Pa- </member>
rameter. Dabei muss dieser Teil nach folgendem Schema gebildet sein: </struct>
</value>
<?xml version="1.0"?> </fault>
<methodCall> </methodResponse>
<methodName>print</methodName>
<params> Wie zu sehen besteht die Fehlermeldung aus einem Fehlercode und einem lesbaren String.
<param> Der Fehlercode ist jedoch nicht standardisiert und hängt von der Implementation ab.
<value><string>Hello, World!</string></value> Der HTTP-Teil:
</param> HTTP/1.1 200 OK
</params> Date: Sun, 29 Apr 2001 [Link] GMT
</methodCall> Server: Apache/1.3.12 (Unix) Debian/GNU PHP/4.0.2
Connection: close
Der HTTP-Header hat folgendes Schema und benötigt zumindest diese Einträge. Op- Content-Type: text/xml
tional können noch weitere, eigene Headereinträge hinzugefügt werden. Content-Length: 818
POST /[Link] HTTP/1.0 Der HTTP response Code muss immer 200 OK sein. Der XML-RPC Client sollte aber
User-Agent: PHP XMLRPC 1.0 auch andere Fehlercodes behandeln können, denn es kann auch durchaus vorkommen, dass
Host: [Link] ein 404 Not Found o.ä. vom Server zurückkommt. Der Server Header ist äquivalent zu
Content-Type: text/xml User-Agent und gibt die Software an mit der der Client kommuniziert. Die Content-Length
Content-Length: 216 ist unbedingt erforderlich und impliziert, dass die gesamte Antwort zuerst vollständig gene-
riert werden muss, bevor sie verschickt werden kann.
Response Format Einem XML-RPC Request folgt auch eine Antwort vom Server, in der
das Ergebnis des Prozeduraufrufs zurückgeschickt wird, oder eine Fehlermeldung im Fall, 7.5 Zusammenfassung
dass etwas nicht korrekt funktioniert hat. Auch die Antwort besteht wieder aus einem XML
und einem HTTP-Teil und ist wie zu erwarten ähnlich einem Request. XML-RPC ist also sozusagen ein Mittel um Prozeduren auf entfernten Systemen auszuführen.
Dabei werden die Daten in einer standardisierten Form (XML) übertragen. Das standar-
<?xml version="1.0"?> disierte Datenformat bietet den großen Vorteil der Systemunabhängigkeit, zwischen den
<methodResponse> beiden Computern.
<params> Dadurch dass XML-RPC eine Funktionseinheit von SOAP ist, wird die Entwicklung
<param> hin zu SOAP gehen. Da Webservices und weitere Anwendungen auch andere Aufgaben in
<value><string>London</string></value> verteilten Systemen wahrnehmen sollen, außer Funktionsaufrufen, wird der Entwickler zu
</param> SOAP greifen und sich damit die Remote Procedure Calls gleich mit erschließen. Vielleicht
</params> wird XML-RPC eine Nische besetzten, dort wo es nur auf RPC ankommt. Dort kann XML-
</methodResponse> RPC jedoch durch seine einfachen und klaren Strukturen seine Stärke voll ausspielen.
Ein kleines Problem ergibt sich aber für Prozeduren, die keinen Rückgabewert haben,
denn der <param> muss angegeben werden. Das lässt sich aber leicht lösen indem man Literaturverzeichnis
z.B. eine Bool-Variable für den Erfolg, sonst eine beliebige Variable oder den nil Wert.
Um Fehlerbehandlung zu ermöglichen werden auch die Fehler in einem eigenen Format [LJD 2001] Simon [Link], Joe Johnston, Edd Dumbill: Programming Web Services
zurückgeschickt. with XML-RPC, O’Reilly (2001).
<?xml version="1.0"?> [KIDD 2001] Eric Kidd: XML-RPC Howto, Eric Kidd (2001).
<methodResponse> [PARSER] [Link]
<fault>
<value> [IMPL] [Link]
<struct> [STATE] [Link]
<member>
<name>faultCode</name> [SEC] [Link]
<value><int>3</int></value> [MWAL 2001] [Link]
</member>
94 8 PERSONAL FIREWALLS 8.2 Was sind PFWs? 95
In diesem Artikel werden Personal Firewalls, deren Funktionsweise und Ziele behandelt. Der – Remote Access Dinste,
Einsatz von PFWs auf Windowssystemen wird besonders betrachtet. – Simple Trojaner,
Dogan Gecici: bilgi@[Link] – Backdoors,
– Zombies und
8.1 Einführung
– Bots.
Ziel dieses Artikels ist ein Uberblick auf die Personal Firewalls zu geben. Zuerst werden
die PFWs definiert und es wird gezeigt was sie können bzw. nicht können. Es folgt dann
die Aufzählung potentieller Gefahren für den Privatuser im Netzwerkverkehr. Welche Ge- Abbildung 42 zeigt Schutzmöglichkeiten für einen Privatuser oder ein lokales Netz.
genmassnahmen gegen diesen Gefahren die PFWs setzen wird ebenfalls erläutert. Damit
soll gezeigt werden wie Personal Firewalls funktionieren und welche Mechanismen sie haben
sollten. Zum Schluss wird einiges über Sicherheit der Windowssysteme erzählt und einige
populäre PFWs vorgestellt.
• Netzwerkbasierte Angriffe wie: • Angriffe, die mittels erlaubtem Netzwerkverkehr kommunizieren wie
– Portscans, – Email,
– Exploits von Software und – HTTP und
– Denial of Service (DoS)-Attacken.
– sonstige explizit erlaubte Dienste.
• Zugriff auf Rechnerressourcen, die freigegeben sind wie z.B.:
• Angriffen aus einem vertrauenswürdigen lokalen Netz, Intranet und
– Dateien,
– Drucker, • Angriffen auf die Firewall selbt.
96 8 PERSONAL FIREWALLS 8.3 Typische Gefahren für den Einzelnen im Internet 97
Diebstahl von Daten: Es gibt viele Dienste, die in der Standardinstallation einem an-
onymen Benutzer zu viele Rechte geben. Als Beispiel kann man hier die Dateien und
Druckerfreigabe unter Windows 9x erwähnen. Wenn dieser Dienst aktiviert ist, was
bei der Standardinstallation der Fall ist, so kann jeder Benutzer im Netz unlimitiert auf Abbildung 43: Port Blocking
die Ressourcen zugreifen. Durch fehlerhaft konfigurierte Dienste wie NetBios, FTP,
http, etc. kann also der Angreifer sein Unheil anrichten.
DoS Attacken: Eine Arbeitsstation kann auch im Netz direktes Opfer einer DoS Attacke
werden. Allerdings ist ein wirkungsvoller Schutz vor DoS Attacken bei Clientsystemen
keine zu wichtige Anforderung für eine PFW.
Spyware: Schutz der Privatspäre. Durch Installieren und Verwenden von manchen Share-
bzw. Freewaresoftware wird dem Benutzer verschiedene Programme oder Werbungen
eingeblendet. Es wird dabei persönliche Daten des Benutzer gesammelt, z.B. durch
Werbeclient. Abbildung 44: Port Hiding
Malware: Malware ist ein Überbegriff für Viren, Würmer und Trojaner. Programme also,
die sich verbreiten und dem Computer oftmals auch Schaden zufügen.
Ungewolltes Senden von Daten ins Internet: Durch Software zur Kontrolle der Netz-
Überprüfung von Dateninhalten: Damit wir schon im vorhinein die Gefahr minimieren werkaktivität auf TCP/IP API Ebene kann verhindert werden, dass User Daten un-
können, Malware, oder andere schädliche Software (gefährliche ActiveX Controls, Ja- gewollt ins Internet mittels Würmen, Sypware, kommerziellen Datensammlern etc.
vaApplets, etc) auf unsere Arbeitsstation zu laden, benötigen wir ein System, welches gesendet werden. Dieser Mechanismus ist bekannt als Application/Desktop Firewall.
alle eingehenden Daten analysiert. Man unterscheidet bei Firewalls grundsätzlich zwischen folgenden Architekturen bzw.
Technologien: Firewalls auf der Transport- und Netzwerkschicht findet man in der
Benachrichtigung bei unberechtigten Zugriffen: Wenn unsere Arbeitsstation doch ein- Regel bei Firewalls, welche ganze Netzwerke schützen. Sie lassen sich auch sehr gut
mal Opfer einer gezielten Attacke wird, dann wäre es wünschenswert, wenn wir über als Hardware Produkte realisieren. Die Application / Desktop Firewall schaltet sich
dies informiert würden. Denkbar wäre eine Vorrichtung, welche den Benutzer bei- direct in den TCP/IP Stack des Betriebssystemes ein und überwacht von dort den
spielsweise benachrichtigt, wenn jemand eine Portscan auf den Rechner macht oder gesammten TCP/IP Verkehr.
Verbindung zu verdächtigen Diensten aufzubauen versucht (NetBios, Samba, o.ä) In der untenstehenden Tabelle sind diese Firewall-Ebenen zusammengefasst.
8.3.1 Schutzmechanismen einer PFW Application Application Level Proxies Application Spesific
Inspection, Proxy
Hier werden die Gegenmassnahmen gegen die oben gezeigten potentiellen Gefahren disku- (GET, PUT, OPEN)
tiert. Es geht also um Ziele bzw. Schutzmechanismen, die eine PFw haben sollte. Transport Circuit Level Proxes Stateful Inspection
(SYN, ACK)
Diebstahl von Daten: Wir können uns gegen Datenklau schützen, in dem wir verhindern,
Network Packet Filter Secure Router
dass unser System auf Fragen aus dem Internet keine ungewollten Antworten gibt.
(Screening Router)
Durch einen sog. Port Blocking bzw. Port Hiding Mechanismus kann dies realisiert
werden.
In [Chirillo 2002] findet man Implementierungen zu all diesen hier besprochenen The-
Ein Port Blocker schliesst alle Ports, welche von Internet her nicht verwendet werden men.
dürfen. Will ein Client also ein Request aus dem Internet machen, so antwortet die
Arbeitsstation mit einer Meldung, dass dies nicht erlaubt ist. Abbildung 43 zeigt dieses Durchsuchung der eingehenden Daten: Durch ein Content Screening System können
Prinzip. die eingehenden Daten auf Viren, Trojaner und Würmer untersucht werden. Ein Con-
tent Screening System durchsucht alle eingehenden Inhalte und blockiert den Zugriff
Ein Port Hider ist eine Möglichkeit die Sicherheit noch mehr zu erhöhen. Kommt eine oder entfernt diese falls gefährliche Inhalte entdeckt werden.
Anfrage aus den Internet, so antwortet die Arbeitsstation erst gar nicht. Dadurch kann
die Arbeitsstation bei einem Subnet Scan nicht erkannt werden. Folgende Abbildung Einbruchsmeldung: Ein Alerting System überwacht den Netzwerkverkehr nach verdächti-
44 veranschaulicht dies. gen Aktivitäten. Wird zum Beispiel ein Portscan auf das System durchgeführt, dann
98 8 PERSONAL FIREWALLS 8.4 Personal Firewalls und Windows 99
alarmiert das Alerting System den Benutzer und blockt idealerweise für eine gewisse • eSafe Desctop (Aladdin) [Link].com51
Zeit die Netzwerkzugriffe des potentiellen Angreifers.
• MS Windows XP PFW
8.4 Personal Firewalls und Windows Kommerzielle: Es folgt die Aufzählung einiger kommerziellen PFWs sowie deren Websites.
Folgend sind einige Kritikpunkte aufgeführt:
• Blackice Defender [Link].com52
Fehler im Betriebssystem: In jedem guten Dokument über Firewalling ist nachzulesen, • Norton Internet Security [Link].com53
dass ein Firewallsystem grundsätzlich so schlank wie möglich programmiert werden
soll. Keine überflüssigen Features und keine unnötigen Dienste, denn je mehr Zeilen • McAfee Firewall [Link].com54
Programmcode, desto eher schleichen sich Fehler ein. Dieser Grundsatz wird spätesten • PGP7 Firewall [Link].com55
beim Einsatz von PC-Firewalls auf einem Windowssystem problematisch: Windows
ist ein Betriebssystem, das auf einer schwachen Sicherheitsarchitektur aufbaut und Windows XP Firewall: An dieser Stelle werden wichtige Features von MS Windows XP
einen unstabilen TCP/IP-Stack zu nutzen pflegt. Daher sind die meisten PFWs für PFW aufgeführt.
Windowssysteme nicht gerade schlank. Zwar wird die Messlatte der Sicherheit durch
das Nutzen einer Software-Firewall etwas erhöht, aber niemals können grundlegende • Standard Windows Hilfe.
Fehler des Betriebssystems von vornherein ausgeschlossen und nachträglich behoben
werden. • Bedienungsfreundlichkeit:
Konfigurationsfehler: Die Sicherheit kann zwar durch das Nutzen einer Personal Firewall – keine vordefinierten Regelsets,
ein bisschen erhöht werden, doch sind wir eigentlich schon beim nächsten Punkt der – nicht zu einsteigerfreundlich,
Kritik angelangt: Ein Grossteil der Windowsanwender benutzt den Computer für die – Regeln können nur auf Protokollebene gesetzt werden.
alltägliche Arbeit. Nur die wenigsten kennen sich mit der Systemarchitektur oder Netz-
werken aus. Dementsprechend werden nur wenige Nutzer die TCP/IP-Fragestellung • Sicherheit:
in der Firewall-Software korrekt beantworten und die Meldungen und Logfiles richtig – in der Standardinstallation deaktiviert,
deuten können.
– keine Applikationsbasierenden Regeln.
Programmier-Fehler: Man sollte jedoch nicht ausser Acht lassen, dass auch diverse Software- • Direkt im Betriebsystem integriert.
Firewalls direkte Mängel aufweisen, die von einem Angreifer zum eigenen Vorteil aus-
genutzt werden können. Folgend ein historisches Beispiel: Die PC-FirewallZoneAlarm TINY Personal Firewall: Hier die wichtigsten Eigenschaften des Tiny Personal Fire-
von ZoneLabs in der Version 2.1.10 wies einen markanten Mangel auf: Es werden walls. Somit kann man die Features zwei verschiedener Produkte leicht vergleichen.
grundsätzlich keine Anfragen auf Ports protokolliert, die standartmässig vom Kernel
in Anspruch genommen werden. Somit wird das Portscannen einer durch ZoneAlarm • Keine Hilfe. Es gibt aber ein Online User Forum
geschützten Maschine nicht erkannt, wenn zum Beispiel als Source-PortUDP67 (DH-
CP) gewählt wurde: Die Desktop-Firewall lässt das Paket ohne weiteres passieren, • Bedienungsfreundlichkeit:
und informiert keineswegs den User darüber. Bei den neueren Versionen wurde dieser – Für den Anfänger eher schwierig zu bedienen, sehr viele Einstellmöglichkei-
Bug beseitigt. In [Check für Windowssicherheit] wird ausfühlich beschrieben, wie man ten.
die Sicherheit von Windows xp erhöhehn kann.
– keine vordefinierten Regelsets.
8.4.1 Bekannte Personal Firewalls • Sicherheit:
Hier werden einige populäre PFWs deren Namen und Internetadressen angegeben. Stellver- – Ultimative Kontrolle über alle Protokolle,
tretend wollen wir Windows XP FW und Tiny PFW etwas ausführlicher vorstellen. Angaben – NetBios Regelset wird beim ersten Gebrauch erstellt,
basieren auf Herstellerangaben sowie diversen Internetseiten und PC Magazinen.
– Alle Filtermöglichkeiten sowohl auf Applikations als auch auf Protokoll Ebene
Freeware: Unten sind einige bekannte Personal Firewalls und deren Internetadresen ange- • Remote Administration
geben.
• MD5 Hash für Applikationen
• Tiny Personal Firewall [Link].com48
• Ausführliches Status Fenster
• SyGate Personal Firewall [Link].com49
51 [Link]
• Zone Alarm [Link].com50 52 [Link]
48 [Link] 53 [Link]
49 [Link] 54 [Link]
50 [Link] 55 [Link]
100 LITERATURVERZEICHNIS 101
– Nicht besonders zuverlässig, da schon alleine das Betriebssystem zu viel Angriffs- Wolfgang Lazian lazian@[Link]
fläche bietet,
– Viele Anwender können aufgrund fehlender TCP/IP-Kentnisse keine korrekten Gunther Laure gunnar2@[Link]
Filter- Regeln setzen und die Protokollierung auswerten,
– Performance-Einbussen auf der Workstation,
9.1 Einführung
– trügerisches Gefühl von Sicherheit
Wenn man von Firewalls spricht, muss man sich zwangsläufig auch mit den generellen Risiken
eines Internetzugangs beschäfigten. Es ist wichtig zu definieren, was man wie schützen
Literaturverzeichnis kann. Eine Firewall kann zwar effektiv gegen gewissen Attacken sein, aber auch vollkommen
wirkungslos gegen eine Unzahl anderer.
[Fritsch et al 2003] Jörg Fritsch, Steffen Gundel: Firewalls Illustriert, ADDISON-WESLEY
Aber was ist an einem Netzwerk zu schützen? Im Allgemeinen spricht man über Schutz
(2003).
von Daten, Ressourcen und Reputation.
[Chirillo 2002] John Chirillo: Hack Attacks DENIED, 2rd Edition, Wiley Publishing (2002).
Daten: Daten haben generell drei Charakteristika die zu schützen sind. Es handelt sich
[Kurose et al 2002] James Kurose, Keith W. Ross: Computer Networking, ADDISON-
hierbei um Geheimhaltung, Integrität und Erreichbarkeit. Man will weder Informa-
WESLEY (2002).
tionen unauthoriserten Personen preisgeben, noch ihnen ermöglichen, deren Inhalt
[Zwicky et al 1995] D. Brent Chapman, Elizabeth D. Zwicky: Building Internet Firewalls, unbemerkt zu änderen. Weiters sollen Daten für Nutzer erreichbar bleiben.
O’REILLY (1995).
Ressourcen: Ein Netzwerk oder nur Computer soll für authorisierte Personen nutzbar sein,
[Kauffels 2003] Dr. Franz-Joachim Kauffels: Lokale Netze, Band 2, 15. Auflage, Mitp Verlag und nur für diese.
(2003).
[CT Magazin] Magazin für Computertechnik: CT Hefte, 13/2003 S. 70 / 22/2002 S. 198 / Reputation: Die Reputation ist in diesem Zusammenhang nicht zu unterschätzen. Einer-
15/2002 S. 144 / 23/2001 S. 174 / 21/2001 S. 152 / 04/2000 S. 224 / 20/2000 S. seits leidet das Renommee eines Unternehmen, wenn erfolgreiche IT-Angriffe bekannt
126 werden, andererseits können Hacker die Accountdaten und somit die virtuelle Identität
einer Person mißbrauchen. Darunter fallen Emails unter falschen Namen, Keditkar-
[Firewall Grundlagen] Tecchannel Firewall Grundlagen: Tecchannel Homepage tenmißbrauch etc.
[Home PC Guide] Home PC PFW Guide: PFW Guide
Angriffe auf Netzwerke können ebenfalls in Kategorien eingeteilt werden.
[Boran Security] Personal Firewalls: Boran Security Homepage
[Austricksen] Wie man PFWs austricksen kann: PFWs austricksen Intrusion: Als Intrusion wird der häufigste Angriff bezeichnet. Die Angreifer versuchen
die Kontrolle über Computer, die sich im lokalen Netzwerk befinden, zu übernehmen.
[Sicherheit von Windows] Die Sicherheit von Windows: Windows und Sicherheit; Ausführ-
liche Informationen über Sicherheit von Windows und Personal Firewalls von Marc Denial of Service: DoS Attacken haben einen anderen Zweck. Der Angreifer versucht
Ruef. nicht Daten zu erhalten oder die Kontrolle zu übernehmen, sondern nur den Computer
[Check für Windowssicherheit] Checklist for Securing Windows XP Systems: XP Securing an der Erfüllung von Aufgaben zu hindern.
Homepage
Information Theft: Dieser Angriff ist verwandt mit Intrusion. Jedoch ist es für Angreifer
56 [Link] hierbei auch möglich zu Daten zu kommen, wenn sie nur den Datenfluß nach der
57 [Link] Firewall beobachten.
102 9 INTERNET FIREWALLS 9.2 Firewall Technologien 103
Um nun sein Netzwerk zu schützen, können Firewalls eingesetzt werden. Aber was genau • Weise das Paket zurück, benachrichtige den Sender.
ist eine Firewall? Und was kann sie zur Sicherheit beitragen? Eine Firewall ist ein Gerät,
das den einzigen Verbindungsweg zwischen einem lokalen Netz und dem Internet darstellt. • Log Informationen über das Paket.
Auf diesem Weg müssen alle Verbindungen von und zum Internet durch die Firewall gehen. • Alarmiere jemanden aufgrund eines Pakets.
Somit kann sie sicher gehen, das der jeweilige Datentransfer erlaubt ist.
Da die die Firewall der einzigen Zugang zum Internet ist, kann sie Filterfunktionen Während also ein gewöhnlicher Router nur nach der Destination Adresse eins Pakets
übernehmen. Zum Beispiel kann nur “sichere” Protokolle erlauben und unsichere blockieren. entscheided, wohin das Paket gesendet werden soll, berücksichtigt ein Packet Filter immer
Weiters kann sie sehr gut und effizient Ereignisse mitloggen. Nach außen hin verdeckt eine auch den Header und den Inhalt der Pakete.
Firewall die Struktur des lokalen Netzes. So ist es für Angreifer nicht möglich gezielte Es gibt Routertypen, die sich zu jedem Paket gewisse Daten merken:
Attacken auf innen liegende Rechner durchzuführen.
Firewalls haben jedoch ihre Grenzen. Sie bieten keinerlei Schutz gegen Insider. Wer sich • Ob das Paket eine Antwort auf ein vorhergehendes Paket ist. (Source - Destination
im lokalen Netz bewegt, kann vollkommen ungehindert agieren. Wenn es internen Rechnern Adresse, Sequence Nummer)
auch möglich ist, andere Routen nach außen zu wählen (zB Modem), ist eine Firewalls • Wie viele Pakete zuletzt vom selben Host gekommen sind.
wirkungslos.
Richtig eingesetzt, sind Firewalls jedoch für die Sicherheit eines Netzwerks unersetzbar. • Ob Pakete identisch sind zu vorhergehenden.
Es ist ihm außerdem möglich den body eines IP Packets zu scannen. Das erlaubt es dem
Packet Filter das verwendete Protokol zu überprüfen. Einige DoS Attacken, die auf defekten
IP Paketen basieren, können somit abgefangen werden. Da der Router auch über zumindest
Abbildung 46: Proxy Firewalls (aus [Zwickey et al 2000])
zwei Netzwerkinterfaces verfügt, kann er innere und äußere Pakete unterscheiden.
Ein Packet Filter kann jeden der folgenden Punkte erfüllen:
• Sende das Paket an seine Zieladresse. Client Programme, die mit Proxy Servern arbeiten, müssen diesen unterstützen. Ap-
plikationen, die eine direkte Verbindung zu einem Server erwarten, funktionieren oft über
• Verwerfe das Paket, ohne den Sender zu benachrichtigen. Proxy Server nicht.
104 9 INTERNET FIREWALLS 9.4 Packet Filter Firewalls 105
Auch Proxy Firewalls haben einige Vorteile. Da sie das Protokol einer Applikation ver-
stehen, können sie alle Verbindungen effektiver mitloggen. Es ist ebenfalls recht einfach
Caching Funktionalität einem Proxy hinzuzufügen. Filter von Proxies sind wesentlich ge-
nauer. Es ist möglich Inhalt aus Übertragungen zu filtern. Ein Beispiel dazu wäre Javascript
aus übertragenen HTML Seiten zu entfernen.
Proxy kennen außerdem die Authorisierung auf Benutzerebene. Packet Filter kennen
höchstens die IP Adresse eines Hosts, aber Benutzer können sie nicht unterscheiden.
Da Proxy Server nie direkte Verbindungen zwischen Client und Server zulassen, können
sie ebenfalls fehlerhaften IP Implementationen Schutz bieten. Es wird jedes IP Packet für
den Client im Proxy neu generiert, so dass defekte Pakete aus dem Netz den Client nicht
erreichen.
Ein großer Nachteil ist, das möglicheweise für jeden neuen Service, ein neuer Proxy
Server angeschafft werden muss. Auch die Performance liegt deutlich hinter den Packet
Filtern zurück. Jede Applikation muss auch mit dem Proxy arbeiten können.
9.3 Firewall Architekturen Abbildung 47: Screened Subnet Architecture (aus [Zwickey et al 2000])
Unter Firewall Architekturen versteht man vernünftige Wege Firewall Komponenten unter-
einander zu verbinden. Es gibt verschiedene Architekturen für verschiedene Anwendungs-
zwecke. Netzwerk befindet, können sie nicht den inneren Netzwerk Verkehr sniffen (beobachten).
Dies bietet einen guten Schutz vor gescannten Login Daten.
9.3.1 Single-Box Architekturen Typische Rollen für Bastion Hosts sind alle sicheren Server Anwendungen bis zur Proxy
Funktionalität für das innere Netzwerk.
Single-Box Firewalls bestehen nur aus einer Komponente die als Firewall dient. Dies kann
ein Screening Router oder ein Dual-Homed Host sein. Der Nachteil bei allen Single-Box
Architekturen ist, das nach dem Ausfall der Firewall kein weiterer Schutz für das Netzwerk 9.4 Packet Filter Firewalls
vorhanden ist. Basic Packet Filtering wertet folgende Einträge aus einem IP Paket aus:
Diese Architektur ist in dem Fall angebracht, wenn die lokalen Rechner bereits gut
durch das Betriebssystem geschützt sind (high Host Security, user level authorisation). Die • Die Absenderadresse
unterstützten Protokolle sollten ebenfalls möglichst einfach sein.
Ein Dual-Homed Host ist, im Gegensatz zu einem Screening Router, ein vollständiger • Die Zieladresse
Rechner. Dadurch ist es möglich diesen gleichzeitig als Paket Filter und als Proxy Server
zu verwenden. Natürlich sinkt dadurch die Performance und die Anzahl der Clients, die die • Die Portnummern der Verbindung die zur Datenübertragung verwendet werden.
Firewall ohne Performanceeinbußen schützen kann.
Einfache Systeme lassen keine Kontrolle des Inhalts eines Pakets zu. Erlaubte Regeln
wären in dieser Art: Lass niemanden von außen den Telnet Port benutzen. Oder eine
9.3.2 Screened Subnet Architekturen
andere typische Regel, wäre Lass jeden Daten über den SMTP Port senden. Selektiver geht
Die Screened Subnet Architektur erhöht die Sicherheit im lokalen Netz, indem sie ein zusätz- es, wenn man Regeln auf eine gewisse IP Adresse bezieht: Lass NNTP Verbindungen nur
liches Sicherheitsnetzwerk verwendet. Dieses Perimeter Network wird für sogenannte Basti- auf [Link] ([Link]) zu. Wobei in einer Regel nie ein Hostname stehen sollte!
on Hosts verwendet. Packet Filter Regeln können sich jedoch nie auf gewisse User oder Dateien beziehen.
Bastion Hosts sind im Prinzip Server aus dem lokalen Netz, die jedoch auch Services Basic Packet Filter erlauben auch keine Rückschlüsse darauf, ob eine gewisser Port für sein
nach außen anbieten. Beispiele dafür wären Web oder SMTP Server. Da sie eben Verbin- angestammtes Protokoll verwendet wird, oder ob jemands FTP Verbindungen am SMTP
dungen vom Internet erlauben, sind sie am besten von außen angreifbar und sollten dem Port ausprobiert.
entsprechend gesichert werden. Weiters darf auch die Kompromittierung eines Bastion Host Stateful Packet Filtering erweitert die Möglichkeiten dieses Firewalltyps. Diese Systeme
nicht sofort Gefahr für das lokale Netz bedeuten. erlauben sogenanntes state tracking. Das erlaubt erweiterte Regeln dieser Art: Lass ankom-
In dem man nun ein eigenes Netzwerk zwischen dem externen und dem internen Netzwerk mende UDP Pakete nur durch, wenn sie Antworten zu gesendeten Paketen sind, oder Erlaube
einfügt, erhält man eine sogenannte Demilitarized Zone (DMZ), auch Perimeter Network TCP Pakete mit gesetztem SYN Bit, nur wenn sie Teil eines TCP Verbindungsaufbaus sind.
genannt in der nun Server laufen können, die Dienste nach außen und innen anbieten (siehe State tracking erlaubt Regeln, die sonst nicht möglich wären. Aber daraus resultieren
Abbildung 47). Das Perimeter Network ist zumindest durch Packet Filter vom Internet und auch einige Probleme. Der Router muss sich Verbindungsdaten merken. Dies erhöht die
dem inneren lokalen Netz getrennt. Dadurch verbirgt sich seine Struktur und bietet einen benötigte Rechenleistung und Speicherkapazität und erlaubt auch gewisse DoS Attacken.
gewissen Schutz gegen Insider. Wichtiger ist jedoch der Fall, dass sich Hacker Zugang zum Es ist auch schwierig mehrere Router parallel zu verwenden (zB load balancing), da jeder
Bastion Host verschafft haben. Da der Bastion Host sich in einem physikalisch getrennten Router die State Information der anderen Router wissen muss.
106 9 INTERNET FIREWALLS 9.5 Proxy Systeme 107
Example: Forward all ssh and http connection requests from the Internet
to local system [Link]
Proxy-Aware Operating System Software: In diesem Fall weiß bereits das Betriebs- • Den SOCKS Server.
system über einen Proxy Server bescheid. Diese Methode ist wenig transparent für
den Benutzer und kann zu Problemen führen. • Die SOCKS Client library.
Proxy-Aware Router: Es gibt keine Änderung am Client. Ein Router fängt jedoch An- • Versionen von Unix Standard Programmen, die mit SOCKS arbeiten können. Darun-
fragen an Internet Server ab und leitet sie anstelle zu Proxy Server weiter. ter fällt FTP, Telnet, ping, traceroute.
• Das Program runsocks, das erlaubt Programme zu laufzeit mit SOCKS arbeiten zu
Proxy-Aware User: Für die Benutzer am unangenehmsten. Anstelle der Software Teilen
lassen (über dynamic linking).
sie dem Proxy den richtigen Request mit (zB Web Interface). Dieser leitet dann die
Antwort auf die Client Applikation, die eigentlich nicht mit Proxies arbeiten kann. Applikationen, die mit SOCKS arbeiten sollen, sind gleich zu programmieren wie gewöhn-
liche Programme, die mit Sockets arbeiten. Für jede Unix C Socket Funktion gibt es ein
Proxy Server Typen können recht einfach unterschieden werden: Äquivalent aus der SOCKS Library. Statt bind() verwendet man Rbind() etc (siehe Ta-
Application-Level vs Circuit Level Proxies: Ein Application-Level Proxy kennt die belle 1). Es sind keine Änderungen am Programm selbst notwendig. Die nötigen Verbin-
jeweilige Applikation. Er versteht und interpretiert die Befehle die im jeweiligen Proto- dungsinformationen holt sich die SOCKS Applikation dann aus der [Link] Datei, die am
koll definiert sind. Im Gegensatz dazu verbindet ein Circuit Level den Client mit dem System vorhanden sein muss.
Server ohne direkt das Protokoll zu verstehen. Der zweite arbeitet also sehr ähnlich
Standard Funktion SOCKS Funktion
einem Paket Filter, aber dennoch lässt er keine direkte Verbindung zu.
connect() Rconnect()
Generic vs Dedicated Proxies: Ein Dedicated Proxy Server ist auf ein spezielles Pro- gessockname() Rgetsockname()
tokoll spezialisiert, während ein Generic Proxy multiple Protokolle versteht. In der bind() Rbind()
Praxis sind generische Proxies meist Circuit Level Proxies. accept() Raccept()
listen() Rlisten()
Intelligent Proxy Servers: Sind meist Dedicated Proxies, die zusätzliche Funktionen wie select() Rselect()
Caching bieten.
Tabelle 1: Mapping von Netzwerk Funktion zu SOCKS
9.5.1 SOCKS Proxy Systeme
Der große Vorteil von SOCKS ist seine weite Verbreitung. Gleichzeitig aber auch der
Wenn man über Proxies recherchiert, stösst man sehr bald auf den Begriff der SOCKS größte Nachteil: es gibt bereits Trojaner die selbst SOCKS benützen.
Proxies. SOCKS ist ein Standard ([RFC1928 1980]) für generische Proxies.
Momentan sind SOCKS4 und SOCKS5 in Verwendung, wobei beide Protokolle nicht
9.6 Zusammenfassung
kompatibel zu einander sind. Im Gegensatz zu SOCKS5, kennt SOCKS4 kennt keine Be-
nutzer Authentifizierung und kann nur mit TCP basierten Clients arbeiten. Die zwei Firewall Hauptechnologien befinden sich in stetiger Weiterentwicklung, quasi im
Wettrüsten mit den jeweiligen Angreifern. Der Sicherheitsstandard ist sehr hoch, jedoch
absolut nicht 100%. Erst vor kurzem wurden erfolgreiche Einbrüche in die Debian Linux
Server gemeldet. Heute morgen (4. Dezember 2003) gab es ähnliche Meldungen von den
GNU Savannah und Gentoo Servern.
Man muss sagen, dass das Internet heutzutage ein nicht ungefährlicher Ort ist. Es ist
wichtig Sicherheitssysteme zu verwenden, zu denen die hier vorgestellten Firewall Systeme
gehören.
Literaturverzeichnis
[Zwickey et al 2000] Elizabeth D. Zwicky, Simon Cooper, D. Brent Chapman: Building
Internet Firewalls, O’Reilly, June 2000
Abbildung 50: SOCKS Proxy (aus [Zwickey et al 2000])
[Shorewall] Shorewall-iptables made easy
Wie gesagt ist SOCKS ein generischer Proxy. Aus diesem Grund hat er keine protokol- [RFC1928 1980] M. Leech: “SOCKS Protocol Version 5” RFC 1928, March 1996
spezifischen Funktionen und Logging.
SOCKS protokolliert alle Anfragen an den Server. Es erlaubt Zugriff per User, per
Source Host und Port Nummer und per Destination Host und Port Nummer. Speziell die
Einschränkungsmöglichkeiten per User sind ein Vorteil gegenüber Packet Filtern.
Das SOCKS Software Paket beinhaltet
110 10 VIRTUAL PRIVATE NETWORKS (VPN) 10.2 VPN Typen 111
Dieser Abschnitt behandelt Virtuelle Private Netzwerke in folge VPN’s genannt. Es werden • Bandbreiten Skalierbarkeit
Sicherheitstechnologien in Bezug auf VPN’s behandelt und Protokolle die mit VPN’s in
Verbindung stehen, insbesondere IPSec, besprochen. Geographische Skalierbarkeit,da man innerhalb kürzester Zeit über einen Einwahl-
punkt eines Internetproviders Teil des VPN’s werden kann. Bandbreiten Skalierbar-
Alexander Cucek: cucek@[Link], Grundlegendes über VPN, VPN-Typen, Anfor- keit, will man eine grössere Bandbreite zur Verfügung, wechselt man seine Anbindung
derungen an VPN’s z.B von einem 56Kbps-Modem auf 128Kbps-ISDN oder auf grössere Bandbreiten, je
nach Bedarf.
Peter Gabriel: pgabriel@[Link], Sicherheitstechnologien, Authentifizierung
Alexander Oreschnig: aoresch@[Link], IP-Security-Protocol, Andere Protokolle 10.1.3 Definition VPN
Virtuell bedeutet, dass es sich aus Anwendersicht nur um ein Netzwerk handelt, auch wenn
10.1 Einleitung
sich viele reale Teilnetzwerke dahinter verbergen.
Um einen Einstieg in das Thema VPN zu geben wird kurz auf die Geschichte der Entwicklung
von Privaten Netzwerken eingegangen, sowie die Frage beantwortet, warum eigentlich VPN’s Privat bedeutet, dass die Kommunikation vertrauenswürdig, also nicht öffentlich, durch-
benutzt werden sollen. geführt wird.
10.1.1 Geschichte Netzwerk bedeutet, dass eine definierte Gruppe von Rechnersystemen miteinandere Ver-
bunden wird, und mit Hilfe eines Protokolls (typischerweise aus der TCP/IP-Protokollfamilie)
Bevor das Internet zu einem universal benutztem Medium geworden ist, bestanden VPN’s kommuniziert.
aus von Providern gemieteten Verbindungen. Die Idee war das Kunden diese gemieteten
Verbindungen in gleicher Weise benutzen, wie ihre Verbindungen in ihrem lokalen Netzwerk.
Die Anbieter solcher VPN’s garantierten die Privatheit dieser Netze dadurch, dass nie- 10.1.4 Analogie
mand sonst dieses Netz benutzt. Das ermöglichte den Kunden ihr eigenes IP-Adressing und
Zum besseren Verständnis der grundsätzlichen Idee von VPN wird folgende Analogie ver-
deren eigene Sicherheitbedingungen [Link] Kunden vertrauten dem Anbieter das
wendet, wie sie in Abbildung 51 zu sehen ist. Sicherheitstransporter: Anders als bei nor-
innerhalb dieser gemieteten Verbindungen die Sicherheit des Datentransfers gewährleistet
malen LKW’s, bei denen die zu transportierenden Werte nicht explizit geschützt sind, dient
ist.
ein Sicherheitstransporter dazu, die auszutauschenden Werte während des Transports wir-
Als das Internet als Kommunikationsmedium immer populärer wurde, wurde auch die Si-
kungsvoll gegen Angriffe zu schützen. Dabei nutzen die Organistationen die gemeinsame
cherheit für Kunden und Anbieter ein immer wichtiger werdender Faktor. Da die bisherigen
öffentliche Infrastruktur der Strasse (Landstrasse, Autobahn) ohne eine eigene Infrastruktur
VPN’s keine wirkliche Sicherheit vorzuweisen hatte, begann man Protokolle zu entwickeln,
(Privatstrasse) aufbauen zu müssen.
die am Beginn der Übertragung die Daten verschlüsseln und am Ziel wieder entschlüsselten.
Dieser verschlüsselte Datentransfer verhaltet sich wie ein Tunnel zwischen den Netzwerken,
auch wenn ein Angreifer die Daten sieht, kann er sie nicht lesen, und wenn er sie ändert
kann das erkannt werden.
Abbildung 53: Remote-Ankopplung mit Hilfe eines VPN (Quelle: [VPN 1998])
• Die Daten können durch Dritte gelesen und verändert werden, während sie über das
öffentliche Netz übertragen werden.
• Durch die Ankopplung an ein offenes Netzwerk können Unbefugte auf die Rechnersy-
Abbildung 52: Unternehmensweites VPN (Quelle: [VPN 1998])
steme des eigenen Netzes zugreifen und Schaden anrichten.
Mehrere Sicherheitstechniken können Daten auf Ihren Weg über öffentliche Netze so
schützen, dass ihre Vertraulichkeit(Privatheit) gewährleistet bleibt, und niemand in der Lage
10.2.2 Sichere Remote Ankopplung ist, unbefugte auf die eigenen Rechnersysteme zuzugreifen. Diese Sicherheitsmassnahmen
Heim- und/oder Mobile-Arbeitsplätze, wie es Abbildung 53 in zu sehen ist, greifen innerhalb ermöglichen es die Vorteile öffentlicher Kommunikationsstrukturen zu nutzen und zugleich
eines VPN über ein öffentliches Netzwerk (z.B Internet) geschützt auf die zentral gespeicher- die Vertraulichkeit und Informationssicherheit eines privaten Netzwerkes zu bewahren.
ten Unternehmensdaten zu. Hier spielt die Identifikation und Authentifikation des Nutzers, Um diese Ziele zu erreichen, müssen kryptographische Verfahren und andere Sicherheits-
der auf die Daten zugreifen möchte, eine besondere Rolle. mechanismen eingesetzt werden:
• Verschlüsselung
10.2.3 VPN zwischen verschiedenen Unternehmen
In einer definierten Gruppe von Unternehmen (z.B Automobilherstellern und Zulieferer) • Authentifikation
können alle Partner miteinander mit Hilfe von VPN’s eine vertrauenswürdige, unterein- • Digitale Signaturen
ander und nach aussen hin geschützte Kommunikation realisieren. Hier spielt das unter-
nehmensübergreifende Sicherheitsmanagment eine besondere Rolle. Abbildung 54 zeigt das • Tunneling
Schema eines kooperativen VPN.
Diese Begriffe werden in nachfolgenden Kapiteln behandelt.
10.3 Anforderungen an VPN’s
10.4 Sicherheit in VPNs
In der Informationstechnik wird zunehmend mit verteilten Anwendungen gearbeitet, dass be-
deutet das Daten an verschiedenen Orten erstellt/bearbeitet werden und dann über Kommu- Da bei VPNs der Datenaustausch über ein unsicheres Medium erfolgt, sind besondere Si-
nikationsnetze ausgetauscht werden. Diese Kommunikationstechniken bieten enorme Vortei- cherheitsmaßnahmen zu treffen. In diesem Kapitel werden die VPN-Mechanismen, die die
le in Schnelligkeit und Flexibilität der Informationsübertragung, aber es entstehen dadurch Sicherung privater Daten beim Transport durch das Internet garantieren, etwas genauer
auch nicht zu unterschätzende Sicherheitsrisiken. erläutert.
114 10 VIRTUAL PRIVATE NETWORKS (VPN) 10.5 Verschlüsselung 115
10.4.3 Datenvertraulichkeit
Beim Versenden der Daten über das Internet, soll natürlich gewährleistet werden, dass
keine unauthorisierten Personen die Daten im Klartext lesen können. Dies wird durch
Verschlüsselung erreicht.
Oft wird weiters gefordert, dass auch die internen Netzwerk-Beziehungen (Quell- und
Zieladresse, Protokoll- und Portnummern) geschützt werden. Dies erreicht man, indem
das gesamte Original-Paket, also auch der Header, in den Datenbereich des neuen, ver-
schlüsselten Pakets geschrieben wird. In diesem Fall spricht man dann von Tunneling (siehe
Abschnitt 10.7.6).
10.4.4 Paket-Authentifizierung
Wird ein Paket vom Empfänger empfangen, möchte dieser natürl]ich auch sicher sein, dass
das Paket auch tatsächlich vom authentisierten Sender stammt. Dazu kann die Prüfsumme
des Pakets verwendet werden:
Der Sender berechnet die Prüfsumme des Pakets mittels einer Hash-Funktion. Hier
bieten sich der Message Digest 5 (MD5) und der Secure Hash Algorithmus (SHA) an. Auf
Abbildung 54: Kooperatives VPN verschiedener Unternehmen (Quelle: [VPN 1998])
den genauen Algorithmus wird hier nicht eingegangen. Hier sei auf die [RFC1321 1992]
für den MD5 und [FIPS-PUB 180-1 1993] für den SHA verwiesen. An dieser Stelle sei nur
erwähnt, das der MD5 einen Hashwert der Länge 128 Bit, der SHA hingegen einen Hashwert
der Länge 160 Bit ermittelt. Weiters noch zu erwähnen ist, dass für den MD5 Kollisionen
10.4.1 Einführung bekannt sind. Vor einer Kollision spricht man, wenn zwei unterschiedliche Nachrichten den
selben Hash-Wert ergeben.
Um die privaten Daten genügend zu schützen, werden im generellen folgende Mechanismen Der Empfänger seinerseits berechnet ebenfalls die Prüfsumme des Paketes und vergleicht
gefordert: diese mit der des Senders. Allerdings reichen bei VPNs normale Prüfsummenverfahren nicht
aus. Denn ein Angreifer könnte nachdem er das Paket verändert hat, die Prüfsumme einfach
• Schlüsselmanagement
neu berechnen. Um dies zu verhindern finden sog. Keyed Hash Algorithmen ihren Einsatz.
Diese bilden den Hashwert aus der Nachricht selbst sowie einem symmetrischen Schlüssel.
• Daten-Vertraulichkeit
Da dieser Schlüssel dem Angreifer nicht bekannt ist, kann er auch die Prüfsumme nach ei-
• Paket-Authentifizierung ner Datenänderung nicht korrekt berechnen. Das bei VPNs verwendete Verfahren nennt
sich Hash-Based Message Authentication Code (HMAC). Dies ist kein eigener Algorith-
• Datenintegrität mus, es kombiniert vielmehr bereits bestehende Verfahren (MD5, SHA) mit symmetrischen
Schlüsseln und Padding. Dardurch wird auch die Kollisionssicherheit stark erhöht.
• Benutzer-Authentifizierung
10.4.5 Datenintegrität
Nun werden diese Schlagwörter im Detail etwas genauer erläutert.
Diese dient zur Sicherstellung, dass die Daten auf ihrem Transportweg nicht verändert wer-
den. Oftmals werden die Überprüfung der Datenintegrität und die Paket-Authentifizierung
10.4.2 Schlüsselmanagement kombiniert.
Um die Sicherheit gewährleisten zu können, sind vor allem sichere Schlüssel nötig. Schlüssel
sollten im Allgemeinen, besonders jene zur Datenverschlüsselung, eine begrenzte Lebens- 10.4.6 Benutzer-Authentifizierung
dauer (eine Session, wenige Stunden) haben. Daraus folgt sofort, dass Schlüssel oft erzeugt Mittels der Benutzer-Authentifizierung wird sichergestellt, dass der Absender der Daten
und verteilt werden müssen. Aus diesem Grund fallen manuelle Verfahren aus. Auch sog. auch derjenige ist, der er vorgibt zu sein. Die Authentifizierung der Kommunikationspart-
Out-of-Band-Verfahren sind nicht die optimale Lösung, da dadurch der Netzaufwand nahe- ner erfolgt am Beginn der Kommunikation. Die Authentifizierungsverfahren reichen von
zu verdoppelt wird. Aus diesen Gründen wird bei VPNs ein Schlüsselmanagement, das die einfachen Passwortverfahren bishin zu digitalen Zertifikaten. Welche Möglichkeiten der Au-
Aufgaben der Erstellung, rechtzeitigen Erneuerung und Verteilung der Schlüssel übernimmt, thentifizierung bestehen wird in Abschnitt 10.6 beschrieben. Die Authentifizierung ist bei
verwendet. Die genauen Vorschriften zur Erzeugung und Vergabe der Schlüssel wird durch Remote-Access-VPNs besonders wichtig.
das Internet-Key-Exchange-Protokoll (IKE) definiert. IKE ist kein auf IPSec festgelegtes
Protokoll, die genaue Spezifikation für IPSec findet sich im IPSec Domain of Interpretation
10.5 Verschlüsselung
([RFC2407 1998]). Auf die grundsätzliche Schlüsselerzeugung und -vergabe wird im Ab-
schnitt 10.5.2 eingegangen. Hier sei nur erwähnt, dass dazu sog. asymmetrische Verfahren Die Algorithmen zur Erstellung des Chiffretextes sind im allgemeinem wohl bekannt. Aus
verwendet werden. diesem Grund hängt die Sicherheit des Algorithmus nur von der Geheimhaltung des Schlüssels
116 10 VIRTUAL PRIVATE NETWORKS (VPN) 10.5 Verschlüsselung 117
ab. Daraus ergibt sich, dass die Länge eines Schlüssels sehr stark zur Sicherheit des Algo- dieser wohl definiert und standardisiert ist. Hier eine kleine Liste möglicher symmetrischen
rithmus beiträgt. Ein Algorithmus gilt als sicher, wenn keine schnellere Methode, als die Verschlüsselungsverfahren:
Brute-Force-Attacke bekannt ist. Darunter versteht man das Durchlaufen aller möglichen
Schlüsselkombinationen. In Abbildung 55 findet sich ein Vergleich verschiedener Algorith- • Data Encryption Standard (DES)
men.
• Tiple-DES (3DES)
Grundsätzlich gibt es zwei Arten der Verschlüsselung, die symmetrische und die asym-
metrische Verschlüsselung. • International Data Encryption Algorithm (IDEA)
• Advanced Encryption Standard (AES)
• Carlisle Adams, Stafford Tavares (CAST)
• Blowfish
Im folgenden soll auf den DES sowie den 3DES etwas eingegangen werden.
Data Encryption Standard: Der DES wurde im Jahr 1977 vom National Bureau of Stan-
dards (USA) verabschiedet. Seine genaue Beschreibung findet sich im [FIPS-PUB 46-2
1988]. Der DES ist bis heute noch ungebrochen, d.h. es gibt noch keine schnellere Me-
thode als die Brute-Force-Attacke um den Algorithmus zu [Link] Schwachpunkt
erweist sich beim DES die fixe Schlüssellänge von 56-Bit. Dadurch kann der DES
mittels richtiger Ausstattung und Brute-Force-Attacke in annehmbarer Zeit geknackt
werden. Dies führt uns zum 3DES.
Abbildung 55: Vergleich der benötigten Zeit bei Brute-Force-Attacken
(Quelle: [VPN 2001]) Tiple-DES: Der 3DES arbeitet mit einer dreifachen DES-Verschlüsselung, wie es Abbil-
dung 57) zeigt.
Daraus ergeben sich insgesamt 2168 mögliche Schlüssel. Dies ist mittels Brute-Force-
Attacke nicht mehr möglich zu entschlüsseln. Außerdem bleibt die Kompatibilität zu
DES erhalten. Es müssen lediglich allen 3 Stufen des Triple-DES der 56-Bit-Schlüssel
gleichzeitig zugeführt werden.
IPSec für das Internet Protokoll Version 6 (IPv6). Durch die Inkompatibilität von IPv6
zu IPv4 hat es bis jetzt keine nennenswerte Verbreitung gefunden. Auf die Sicherheit von
Datennetzen wird aber immer mehr Wert gelegt. Daher wurde die Funktionalität von IPSec
auf IPv4 portiert. IPSec ist standardisiert und kann in mehreren Request for Comments
(RFCs) nachgelesen werden. Es wird dabei die generelle Funktionsweise, die einzelnen zum
Einsatz kommenden Protokolle, sowie die Verschlüsselungsalgorithmen beschrieben. Ein
Überblick über IPSec ist in [RFC2401 1998] beschrieben.
Bei der Authentifizierung müssen grundsätzlich zwei Arten unterschieden werden: Paketauthentifizierung: Für die Paketauthentifzierung wird auch der HMAC verwendet.
Überprüft der Empfänger eines IPSec-Paketes den HMAC und stellt keine Veränderung
Benutzer-Authentifizierung: Bringt den Nachweis der Identität einer Person. fest, ist sichergestellt, dass das Paket nicht verändert wurde und es von dem richtigen
Partner stammt.
Absender-Authentifizierung: Bringt den Nachweis der Identität des Absenders (VPN-
Gateway, Router). Diese läuft in einem zweistufigen Prozess ab. Zuerst, beim Verbin- Paketvertraulichkeit: Die Vertraulichkeit der Daten wird durch Verschlüsselung erreicht
dungsaufbau, identifizieren sich die Gegenstellen. Danach, bei der Datenübertragung, (kann auch für Paketintegrität und -authentifizierung verwendet werden). Nachdem
werden die Pakete nach dem Absender überprüft. IPSec symmetrische Verschlüsselungsalgorithmen verwendet, sind die Schlüssel nur
dem Sender und Empfänger bekannt.
Weiters kann man bei der Authentifizierung zwischen einer starken und eine schwachen
Authentifizierung unterscheiden. Verkehrsflussvertraulichkeit: IP-Pakete werden komplett in einen neues Paket gekap-
Starke Authentifizierung: Erbringung des tatsächlichen Nachweises der Identität durch selt und der neue Datenbereich wird verschlüsselt (Tunneling: siehe Abschnitt 10.7.6).
Überprüfung der persönlichen Anwesenheit. Dadurch kann ein Angreifer sich keine Informationen über das private Netzwerk ver-
schaffen.
Schwache Authentifizierung: Betreffende Person weiß oder hat etwas, was normalerwei-
se nur die tatsächlich zugangsberechtigte Person weiß [Link]. Schutz vor Replay-Angriffen: Ein Angreifer kann IPSec Pakete “aufzeichnen” und er-
neut schicken. Diese Pakete schauen für den Empfänger vertraulich aus. Um dies
Zum Abschluss sollen noch die verschiedenen Möglichkeiten der Authentifizierung angeführt zu Verhindern wurde der Anti-Replay Service (ARS) eingeführt. Näheres zu diesem
werden. Service kann im [RFC2406 1998] nachgelesen werden.
Wissensbasierte Authentifizierung: z.B.: Benutzer-ID und Passwort bzw. PIN Schutz vor Denial-of-Service-Angriffen: DoS-Angriffe, sind Attacken, die darauf ab-
zielen ein Gerät in einen Zustand zu versetzen indem es seine Aufgabe nicht mehr
Besitzbasierte Authentifizierung: z.B.: Chipkarte, Token-Karte in vollem Maße ausführen kann. Ziel ist dabei meist der TCP-Stack. Abhilfe schafft
Kombinationsverfahren: z.B.: Bankomat-Karte dabei ein gehärteter IP-Stack. Dieser ist so programmiert das er nur die Protokolle 50
(ESP), 51 (AH) und 17 (UDP) mit den Portnummern 500 in die Schicht 3 durchläßt.
Biometrik: z.B.: Fingerabdruck-Leser, Augennetzhaut-Scanner
Digitale Signaturen und Zertifikate: Die Verschlüsselung erfolgt mittels private Key, 10.7.3 Die IPSec-Architektur
die Entschlüsselung mittels eines public Keys, der einem bestimmten Benutzer zuge- Die Standardisierung von IPSec ist schon weit fortgeschritten und kann in etlichen RFCs
ordnet ist. nachgelesen werden ([RFC2401 1998] und folgende). Die Architektur kann man in der
Übersicht in Abbildung 59 sehen.
10.7 IP-Security-Protokoll (IPSec) Ausgehend von dieser Architektur und den jeweiligen Anwendungsstrategien, ergeben
sich eine Fülle von Kombinationen von IPSec-Diensten:
10.7.1 Einführung
• ESP mit Verschlüsselung, Integritätsprüfung, Authentifizerung und ARS.
Das IP-Security-Protokoll, kurz IPSec, erweitert das bestehende IP Protokoll mit Sicherheit.
Es ist daher im Netzwerk-Layer des OSI-Schichten-Modells anzusiedeln. Entwickelt wurde • AH mit Integritätsprüfung, Authentifizierung und ARS
120 10 VIRTUAL PRIVATE NETWORKS (VPN) 10.7 IP-Security-Protokoll (IPSec) 121
löscht wenn die Life-Time abgelaufen ist und eine neue SA generiert. Die Sicherheit kann
dadurch erhöht werden.
10.7.5 Security-Policy
Die Sicherheitsstrategie oder Security-Policy legt fest, welche Dienste auf ein- und ausgehen-
de Pakete anzuwenden sind. Die Regeln für die Strategien werden aus der Security Policy
Database entnommen. Die Startegie wählt dann eine aus drei Arten aus, wie die Pakete
behandelt werden sollen: Die Pakete werden verworfen (discard), nicht von IPSec-Diensten
bearbeitet und weitergeleitet (bypass) oder durch IPSec bearbeitet (apply). Im apply-Fall
liefert die SPD einen Verweis auf einen Eintrag in der SAD. Dadurch erhält man die not-
wendigen Parameter und Optionen für die Bearbeitung.
10.7.6 IPSec-Betriebsmodi
Abbildung 59: Die Architektur von IPSec (Quelle: [VPN 2001]) Es stehen zwei Betriebsmodi zur Verfügung:
10.7.7 Einsatzszenarien
Abhängig wo die IPSec-Verbindungen initiiert und terminiert werden, gibt es drei mögliche
Einsatzszenarien.
Gateway-to-Gateway: Hier erfolgt der Schutz der IP-Datagrammen durch IPSec zwischen
zwei Gateways. Es sind meist VPN-Gateways oder Router. Der Haupteinsatzzweck
ist die Verbindung von privaten Netzen über das Internet.
Host-to-Gateway: Hier erfolgt der Schutz der IP-Pakete auf dem Transport von einem
Endgerät (Host) zu einem Gateway. Einsatzgebiet ist das Einbinden eines Hosts über
das Internet in ein lokales Netzwerk (Remote Access).
Host-to-Host: Hier werden IP-Pakete zwischen zwei Endgeräten übertragen. Ist nicht
sehr oft anzutreffen, dafür gibt es bessere (“billigere”) Lösungen. Einsatzgebiet wäre
Intranet-VPNs.
Abbildung 60: Security-Assocation ist unidirektional (Quelle: [VPN 2001])
10.7.8 IPSec Protokolle
Der Security Parameter Index (SPI), der in jedem IPSec-Protokoll eingetragen ist, ordnet Zuerst wird auf die Paketverarbeitung etwas näher eingegangen:
jedes Packet einer SA zu.
SAs werden in der Regel durch das Internet-Key-Exchange Protokoll (IKE) erzeugt. Sie Ausgehende Pakete: Ausgehende Pakete werden von der höheren Transportschicht an
können aber manuell generiert werden, abhängig vom Einsatzszenario. Es ist aber empfeh- das IP-Protokoll weitergegeben. Es erfolgt eine Abfrage in der Security Policy Data-
lenswert das IKE zu verwenden, da IKE die SA erstellt wenn noch keine verfügbar ist, sie base, was mit dem betreffenden Paket geschehen soll. Dabei sind drei Fälle möglich.
122 10 VIRTUAL PRIVATE NETWORKS (VPN) 10.7 IP-Security-Protokoll (IPSec) 123
In Abbildung 63 sieht man die Verarbeitung eines ausgehenden ESP Paketes im Tun-
nelmodus. Die IPSec-Security-Policy prüft zuerst anhand ihrer Datenbank, ob das
für das Paket eine Regel zutrifft, und liefert im Erfolgsfall einen Verweis auf einen
Eintrag in der SAD zurück. In der SAD ist dann genau festgelegt wie das Paket be-
arbeitet werden muß (Tunnelparameter, Verschlüsselungsalgorithmus, Schlüssel, ...).
Die Verarbeitung eines eingehenden Paketes kann man als Umkehrung des Prozesses
verstehen.
10.7.9 IPSec-Implementierungen
Betriebssystemembene, IPSec-Stack: In dieser Variante wird der ursprünglich IP-Stack
durch einen neuen Stack ersetzt, der eine zusätzliche IPSec-Funktionalität aufweist. In
Abbildung 61: Das IPSec-AH Protokoll (Quelle: [VPN 2001])
dieser Implementierung ist leider nur in bestimmten Umgebungen einsetzbar. Wenn
es sich zusätzlich um ein reines VPN-Gatway handelt, kann man “gehärtete” Stacks
einsetzen, die zusätzliche Sicherheit bieten. Wie schon erwähnt sind nur die IPSec-
In Abbildung 61 sieht man das AH einmal im Transport- und im Tunnelmodus. Der Dienste (ESP, AH, IKE) in diesem Stack aktiviert, andere Dienste werden verworfen.
Schutz der Datenintegrität erstreckt sich über das vollständige IP-Paket, also auch
über den Header. Das AH-Protokoll wird im IP-Header durch die Protokollnummer Bumb-in-the-Stack (BITS): Wenn die IPSec-Funktionalität nicht im Betriebssystem im-
51 gekennzeichnet. Der eigentliche Header wird zwischen IP-Header und Payload plementiert ist, muß man diese BITS-Variante wählen. Der Eingriff in den IP-Stack des
eingefügt. Betriebssystems wäre zu schwerwiegend, daher fügt man IPSec als zusätzliche Verar-
beitungsschicht zwischen der Datenübertragungs- und IP-Schichte ein. Es ist nicht die
Das Encapsulation-Security-Payload-Protokoll (ESP): Das Encapsulating-Security-
leistungsfähigste Lösung, da die Netzwerkschicht in diesem Falle zweimal durchlaufen
Payload-Protokoll bietet alle Sicherheitsfunktionen, die auch AH bietet, plus einem
wird, aber man ist unabhängig von IPStack und Übertragungstechnlogie.
zusätzlichen Schutz der Datenvertraulichkeit. Um dies zu erreichen, wird ein Teil des
IP-Paketes verschlüsselt und ein Header und ein Trailer in das Datagramm eingefügt. Implementationen:
Die Datenintegritätsprüfung und Authentifizierung erstreckt sich im Gegensatz zum
AH Header nicht über das vollständige Paket, sondern der IP-Header wird von der
Berechnung ausgenommen. ESP ist ebenfalls ein IP-Protokoll, dem die Nummer 50 Betriebssysteme mit IPSec Support:
zugeordnet wurde. Ebenso wie beim AH Header sind die Algorithmen, die zur In- Microsoft hat IPSec in den Windows 2000/XP implementiert. Linux bietet IPSec
tegritätsprüfung und Verschlüsselung benutzt werden im IKE-Protokoll oder manuell ab der Kernel-Version 2.6. Der Backport von IPSec in Kernel 2.4 wird überlegt.
festgelegt. Sun hat in Solaris 8 IPsec aufgenommen. Hewlett Packard bietet auch IPSec in
In Abbildung 62 sieht man ein ESP Paket im Tunnel- und Transportmodus. Es ist den UNIX Maschinen. Für den Palm gibt es von Certicom eine IPSec Implemen-
außerdem der authentifizierte und verschlüsselte Bereich ersichtlich. tierung. Bei Mac OS ist der Support in Planung.
124 10 VIRTUAL PRIVATE NETWORKS (VPN) 10.8 Andere Protokolle 125
Literaturverzeichnis
[VPN 2001] Manfred Lipp: VPN - Virtuelle Private Netzwerke: Aufbau und Sicherheit,
Addison-Wesley (2001).
[VPN 1998] Dave Kosiur: Virtual Private Network - Building and Managing, Wiley Com-
puter Publishing (1998).
[VPN 2001 Campo] Markus a Campo, Norbert Pohlmann: Virtual Private Network, mitp
(2001).
126 LITERATURVERZEICHNIS 127
[RFC2401 1998] S. Kent, R. Atkinson: “Security Architecture for the Internet Protocol” 11 Secure Shell
RFC 2401, November 1998
Aus Anwendersicht ist Secure ShellTM (Ssh) ein Programm, um über ein Netzwerk auf einen
[RFC2402 1998] S. Kent, R. Atkinson: “IP Authentication Header” RFC 2402, November anderen Computer zuzugreifen. Einmal eingeloggt, kann man auf dem entfernten Rech-
1998 ner Befehle und Programme ausführen sowie Dateien übertragen. Ssh bietet eine starke
[RFC2403 1998] C. Madson, R. Glenn: “The Use of HMAC-MD5-96 within ESP and AH” Authentifizierung und sichere Kommunikation über unsichere Kanäle wie z.B. dem Inter-
RFC 2403, November 1998 net. Ssh soll als Nachfolger der klassischen “r”-Befehle (rsh, rlogin, rcp) sowie telnet diese
vollständig ersetzen. Zusätzlich bietet Ssh sichere X-Verbindungen und kann beliebige un-
[RFC2404 1998] C. Madson, R. Glenn: “The Use of HMAC-SHA-1-96 within ESP and AH” sichere TCP/IP-Ports in beide Richtungen durch den verschlüsselten Kanal weiterleiten.
RFC 2404, November 1998 Weiters wird unter dem Begriff Secure Shell auch das Secure Shell Protocol verstanden,
ein Protokoll zur sicheren Datenübertragung über das Internet. Von diesem gibt es zwei
[RFC2405 1998] C. Madson, N. Doraswamy: “The ESP DES-CBC Cipher Algorithm With untereinander nicht kompatible Versionen, nämlich SSHv1 (mit Unterversionen) und SSHv2.
Explicit IV” RFC 2405, November 1998
Dieses Dokument bietet eine grundlegende Einführung in Ssh und dessen Funktionen
[RFC2406 1998] Kent & Atkinson: “IP Encapsulating Security Payload (ESP)” RFC 2406, und Anwendungsgebiete. Ebenso wird eine kurze Einführung in die Kryptografie und Ver-
November 1998 schlüsselungsalgorithmen geboten und die Verwundbarkeit von unverschlüsselten Verbindun-
gen aufgezeigt. Abschließend folgt eine tiefere technische Betrachtung des SSH-Protokolls.
[RFC2407 1998] D. Piper: “The Internet IP Security Domain of Interpretation for
ISAKMP” RFC 2407, November 1998 Reinhard Hutter: hudri@[Link], Abstract, Einführung und Grundlagen
[RFC2408 1998] D. Maughan, M. Schertler, M. Schneider, J. Turner: “Internet Security
Association and Key Management Protocol (ISAKMP)” RFC 2408, November 1998 Jürgen Häuselhofer: haeuselh@[Link], SSH vs. rlogin
[RFC2409 1998] D. Harkins, D. Carrel: “The Internet Key Exchange (IKE)” RFC 2409, Lukas Gruber: luke13@[Link], Das Ssh-Protokoll im Detail
November 1998
[RFC2410 1998] R. Glenn, S. Kent: “The NULL Encryption Algorithm and Its Use With 11.1 Einführung und Grundlagen
IPsec” RFC 2410, November 1998
Mit Secure Shell bzw. Ssh wird sowohl ein kryptographisches Protokoll als auch eine konkre-
[RFC2411 1998] R. Thayer, N. Doraswamy, R. Glenn: “IP Security Document Roadmap” te Implementierung dieses Protokolls bezeichnet58 . Ursprünglicher SSH-Protokoll-Designer
RFC 2411, November 1998 und Software-Autor ist Tatu Ylönen aus Finnland, der die Secure Shell an der TU Helsinki
entwickelte und später die Firma SSH Communications Security Ltd (siehe [SSHCOMM])
[RFC2412 1998] H. Orman: “The OAKLEY Key Determination Protocol” RFC 2412, No-
gründete. Ssh ermöglicht eine kryptographisch gesicherte Kommunikation über unsichere
vember 1998
Netze und bietet dabei ein hohes Sicherheitsniveau: zuverlässige gegenseitige Authentifi-
[RFC1321 1992] R. Rivest “The MD5 Message-Digest Algorithm ” RFC 1321, April 1992 zierung der Partner sowie Integrität und Vertraulichkeit der ausgetauschten Daten. Ssh-
Implementationen befolgen das von der IETF59 gewartete SSH-Protokoll, welches mittler-
[FIPS-PUB 180-1 1993] “Secure Hash Standard” [Link] weile mehrere Versionssprünge hinter sich hat: SSHv1 mit den wichtigen Unterversionen 1.3
[Link], May 1993 und 1.5 gilt mittlerweile als veraltet und nicht mehr sicher. Aktueller Stand ist Version 2.0,
welche zahlreiche Korrekturen und Erweiterungen beinhaltet, aber leider auch nicht kompa-
[FIPS-PUB 46-2 1988] “Data Encryption Standard” [Link]
tibel zu den Versionen 1.x ist. Während Ssh anfangs als Ersatz für die unsicheren “r”-Befehle
fipspubs/[Link], January 1988
rsh, rlogin und rcp als auch für telnet gedacht war, bieten heutige Ssh-Implementationen
[VPN Consortium] “Virtual Private Networks Consortium” [Link] foun- (im besonderen die frei erhältliche und weit verbreitete OpenSSH-Implementation (siehe
ded 1999 [OPENSSH]) vom OpenBSD60 -Team) deutlich mehr Features:
[PHION Security Advisory 2002] “PHION Security Advisory 2002” [Link] Starke Verschlüsselung durch 3DES und Blowfish: Triple DES ist ein sehr guter
com/adv/, September 2002 Chiffrieralgorithmus, der zwar sehr sicher ist und eine starke Verschlüsselung bereit-
stellt, aber als nicht besonders schnell gilt. Blowfish ist ein schneller Blockchiffrierer,
[RFC2766 2002] G. Tsirtsis, P. Srisuresh “Network Address Translation - Protocol Trans-
der von Bruce Schneier entworfen wurde und von Leuten benutzt werden kann, die eine
lation” RFC 2766, February 2002
58 Im folgenden wird die Abkürzung Ssh für Secure Shell allgemein und für konkrete Implementationen
verwendet, während die Abkürzung SSH (in Grossbuchstaben) explizit das SSH-Protokoll anspricht.
59 IETF: Die Internet Engineering Task Force (siehe [IETF 2003]) ist eine offene internationale Gemein-
schaft von Netzwerkdesignern, professionellen Anwendern und Herstellern, die zur Entwicklung des Internet
und dessen reibungslosem Betrieb beitragen.
60 OpenBSD: Das OpenBSD Projekt produziert ein freies UNIX-ähnliches Betriebssystem unter besonderer
schnellere Verschlüsselung benötigen. Die Verschlüsselung beginnt vor der Authenti- 11.1.1 Kryptografie-Grundlagen
fizierung und es werden keine Passwörter oder andere Daten im Klartext übermit-
Eine Methode zur Verschlüsselung und Entschlüsselung wird als Cipher bezeichnet, dement-
telt. Verschlüsselung wird auch benutzt, um sich gegen sogenannte “spoof attacks”61
sprechend wird eine unverschlüsselte Nachricht als Plaintext oder Klartext und eine ver-
zu verteidigen, bei denen sich eine Person als jemand anderes ausgibt. Vom IDEA-
schlüsselte Nachricht als Ciphertext bezeichnet. Manche alte (oder gar altertümliche) Kry-
Algorithmus ist aus patentrechtlichen Gründen abzuraten, da er auch in Österreich
pografiemethoden beruhen auf der Gemeimhaltung der Algorithmen und sind bestenfalls
geschützt ist.
historisch interessant, aber unbrauchbar für heutige Anwendungen. Anstatt dessen verwer-
X11 Forwarding: X1162 Forwarding erlaubt die Verschlüsselung von X Window’s Netz- den alle modernen Algorithmen Schlüssel zur Kontrolle des Codierens und Entschlüsselns.
werkverkehr auf eine Weise, so dass niemand den Datenverkehr mitlesen oder bösartige Dabei gibt es zwei Arten von schlüsselbasierenden Ciphern: symmetrische und asymmetri-
Kommandos einschleusen kann. Das Programm setzt DISPLAY automatisch auf dem sche Algorithmen.
Server, und leitet jegliche X11-Verbindung über den sicheren Tunnel weiter. Gefälschte
Symmetrische Algorithmen: Bei symmetrischen Algorithmen wird für Ver- und Ent-
Xauthority Informationen werden automatisch generiert und an die entfernte Maschine
schlüsselung der selbe Schlüssel verwendet (oder der Dekodierungsschlüssel kann leicht
weitergeleitet; der lokale Client untersucht automatisch ankommende X11 Verbindun-
aus dem Codierungsschlüssel abgeleitet werden). Diese Verfahren werden auch “secret
gen und ersetzt die gefälschten Authorisierungs-Daten mit den echten Daten (und gibt
key”-Verfahren genannt. Diese unterteilen sich wiederum in stream cipher (jedes Bit
der entfernten Maschine nie die echten Informationen).
des Klartextes wird einzeln chiffriert) und block cipher (der Klartext wird zu Bit-
Port Forwarding: Port Forwarding erlaubt das Weiterleiten von TCP/IP Verbindungen Blöcken zusammengefasst und diese als Einheit verschlüsselt). Gängige symmetrische
zu einer entfernten Maschine über ein verschlüsseltes Protokoll. Standard Internet Algorithmen sind DES/3DES, Blowfish und IDEA. Symmetrische Verfahren werden
Applikationen wie POP oder IMAP können damit sicherer gemacht werden. vor allem im SSH Transport Layer Protokoll verwendet, also in der eigentlichen Da-
tenübertragung.
Starke Authentifizierung: Starke Authentifizierung schützt gegen verschiedene Sicher-
Asymmetrische Algorithmen: Im Gegensatz dazu ist bei asymmetrischen Algorithmen
heitsprobleme, z.B. IP spoofing, fake routes, und DNS spoofing (siehe Abschnitt 11.2).
der Codierungs-Schlüssel öffentlich, sodaß jedermann die Nachricht verschlüsseln kann,
Agent Forwarding: Ein Authentifizierungs-Agent, der auf der lokalen Maschine des Users aber nur der Empfänger mit dem richtigen Decodierungs-Schlüssel die Nachricht ent-
läuft, kann benutzt werden, um den RSA- oder DSA-Authentifizierungs-Schlüssel des schlüsseln kann. Daher werden diese Verfahren auch “public key” genannt. Zu den
Users bereitzuhalten. Die Authentifizierungsprotokolle geben die Schlüssel niemals bekanntesten asymmetrischen Algorithmen gehören RSA und DSA. Asymmetrische
preis; sie können nur dazu benutzt werden, um abzufragen, ob der User einen entspre- Verfahren kommen vor allem bei der Authentifizierung zum Einsatz.
chenden Schlüssel hat.
Grundsätzlich sind symmetrische Algorithmen schneller als Asymmetrische, aber in der
Plattformunabhängigkeit: Gängige Ssh-Implementationen unterstützen neben den Ssh Praxis kommt häufig eine Kombination von beiden vor (Hybrid-Verschlüsselung).
Protokollversionen 1.3 und 1.5 auch das SSH Protokoll Version 2.0. Zudem sind so-
wohl Clients als auch Server für alle gängigen Unix-, Linux- und Windows-Varianten 11.1.2 Lizenzrechtliche Fragen
verfügbar, oft sogar als freie Open Source Programme Da Ssh meist auf Unix- und Linux-Derivaten eingesetzt wird, die meist mit sehr freizügigen
Open Source-Lizenzen veröffentlicht werden, wird dies oft auch für Ssh-Implementationen
Datenkompression: Datenkompression vor der Verschlüsselung verbessert die Leistung
allgemein angenommen. Dies ist aber nicht ganz korrekt und wird durch eine Änderung der
über langsame Netzwerkverbindungen.
Lizenzpolitik des wohl bekanntesten Anbieters zusätzlich akut.
Prozessorbelastung: Durch die Verschlüsselung entsteht verständlicherweise eine zusätz- Die erste Implementation von Ssh von Tatu Ylönen und trug auch den Namen “ssh”.
liche Belastung für den Prozessor. Während dies für heutige Prozessoren und Standar- Diese wurde anfangs noch unter der GPL bzw. der LGPL63 veröffentlicht. Jedoch wurden
danwendungsgebiete absolut kein Problem mehr darstellt, kann dies für ältere Rechner bald darauf folgende Versionen unter immer strengeren Lizenzen veröffentlicht. Da jedoch
oder unter besonders zeitkritischen Anforderungen eventuell nicht vernachlässigt wer- die nichtkommerzielle Nutzung weiterhin erlaubt war und der Quellcode für diese (einge-
den. In diesen Sonderfällen sollte man das Verschlüsselungsverfahren mit Bedacht schränkte) Implementation auch weiterhin verfügbar war, blieb die Implementation von
wählen: 3DES gilt als eher langsam, Blowfish und Arcfour gelten als schnelle Algo- Ylönens Firma weiterhin sehr verbreitet. Seit Version 4 jedoch wurde Ylönens Programm-
rithmen (siehe auch Verschlüsselung bei SSH). paket in SSH Tectia umbenannt und ist nunmehr weder als Sourcecode noch als kostenloses
Programm erhältlich.
Prinzipiell gibt es keinen Grund, Ssh nicht zu verwenden! Wann immer man sich auf einem Aus diesem Grund ist vor allem im nichtkommerziellen Umfeld die OpenSSH-Implementation
entfernten Rechner einloggt, Daten überträgt oder Kommandos ausführt, sollte man Ssh des OpenBSD64 -Teams stark im Wachsen. Diese Version beruht ursprünglich auf eine sehr
gegenüber rlogin, rsh und telnet den Vorzug geben. Weiters ist SSHv2 den 1.x Versionen frühe und damit genügend freie Version von Ylönens Implementation. Sowohl das Binärpro-
immer vorzuziehen, da diese noch konzeptionelle Schwächen beinhalten. gramm als auch der Quellcode sind frei verfügbar und geschützte Teile (z.B. Bibliothe-
ken, die IDEA oder RC5 verwenden) wurden aus dem Programm entfernt und können
61 Spoof attacks: Ein Angreifer versucht eine falsche (für das Opfer vertrauenswürdige) Absenderadresse
vorzutäuschen, mit der Absicht vom Opfer wegen der gefälschten Adresse authentifiziert zu werden. 63 GPL und LGPL: Die GNU General Public Licence und die Lesser GNU General Public Licence sind
62 X11: Das X-Window System, kurz X11, ist ein hardware- und plattformunabhängige grafische Engine eine weitverbreitete Lizenz, die sicherstellt, dass die Software und deren Quellcode frei verfügbar sind.
und der Defacto-Standard in Unix- und Linux-Betriebssystemen, auf dessen Basis grafische Benutzerober- 64 Das OpenBSD Projekt produziert ein freies Unix-ähnliches Betriebssystem, dass vor allem auf Sicherheit
flächen wie Gnome und KDE laufen. und Portierbarkeit Wert legt.
130 11 SECURE SHELL 11.2 SSH vs. rlogin 131
über externe Bibliotheken eingebunden werden. Während heutzutage gängige Unix- und 11.2.3 SSH
Linux-Distributionen OpenSSH portiert und als Standard übernommen haben, gilt für die
Die erste Version von SSH wurde 1995 von Tatu Ylönen entwickelt, welcher an der Helsinky
Windows-Welt nach wie vor “SSH - don’t tell anyone it’s free”. Als kostenlose Implementa-
University of Technology als Forscher tätig ist. Im Gegensatz zu den vorher erläuterten
tion für Microsoft-Betriebssysteme sei an dieser Stelle PuTTy65 empfohlen.
Protokollen, liegt das Hauptaugenmerk von SSH auf der Authentifizierung, Verschlüsselung
und Integrität in der Nutzung von Netzwerken. SSH wurde demnach als Ersatz für die UNIX
11.2 SSH vs. rlogin r-Befehle konzipiert. 1996 wurde die zweite Version von SSH entwickelt. Die Versionen 1.x66
und 2 sind miteinander allerdings nicht kompatibel.
Vor der Entwicklung des ersten SSH-Protokolls und damit einer sichereren Kommunikati-
In SSHv2 wird das SSHv1.x-Protokoll in drei verschiedenen Schichten neu definiert, wel-
on zwischen Servern und Clients, standen viele unsichere Protokolle. So wären dies z.B.
che im nachfolgenden Kapitel (Abschnitt 11.3) genauer behandelt werden:
die r-Befehle, von denen rlogin praktisch der Vorläufer des telnet-Protokolls darstellt. In
den folgenden Unterpunkten wird auf die historische Entwicklung der SSH-Protokolle sowie 1. SSH Transport Layer Protocol (SSH-TRANS)
deren Unterschiede gegenüber anderen Protokolle erläutert. Ebenso interessieren mögliche 2. SSH Authentication Protocol (SSH-AUTH)
Attacken auf verschlüsselte und nicht verschlüsselte Kommunikationen.
3. SSH Connection Protocol (SSH-CONN)
11.2.1 r-Befehle Diese drei Protokolle sind in jeweils einem Dokument definiert, wobei noch ein weiteres
Dokument beigefügt ist, welches die Architektur beschreibt (SSH Architecture Protocol67 ).
Diese Befehle, welche aus rsh, rlogin und rcp bestehen, sind in der Unix-Welt sehr weit ver- Dieses gesamte Dokument wurde von der IETF normiert.
breitet. Die Kommunikation erfolgt hierbei unverschlüsselt. Zur Authentifizierung verlässt Die wichtigsten technischen Unterschiede zwischen den beiden Versionen sind in folgender
man sich hierbei auf das sogenannte “Trusted Host”-Konzept, welches auf einer Kombinati- Tabelle zusammengefasst:
on von Benutzernamen und Hostnamen beruht. Aus diesem Grund kann der Benutzer auf
jeglichen besuchten Maschinen eine Datei (.rhosts) anlegen, in der solche Kombinationen SSHv1.x SSHv2
gespeichert werden. Zur weiteren Sicherheit gibt es auf jedem Rechner noch eine zusätzli- integriertes Design Trennung in 3 Ebenen
che, system-weite Datei ([Link]) in welcher die vertrauenswürdigen Hosts eingetragen Integrität mittels CRC32 (sehr unsi- Integrität mittels HMAC (hash-
sind. cher) Verschlüsselung)
Ein Benutzer kann sich auf jeden Rechner einloggen, auf welchem seine Kombination nur ein Kanal per Sitzung unbeschränkte Kanal-Anzahl
in der “.rhosts”-Datei existiert. Der Zielrechner ermittelt den Namen des Benutzerrechners Aushandlung mit einzigem symm. detailierte Aushandlung (symm. Chif-
über eine Name-Server Anfrage und vergleicht ob die IP-Adresse des Rechners, sowie des- Chiffre; Indentifizierung mit eindeuti- fre, öffentlicher Schlüssel, Komprimie-
sen Name übereinstimmen. Die eben erwähnten Dateien sind auch gleichzeitig die größten gem Schlüssel auf beiden Seiten rung...); auf beiden Seiten separater
Risikofaktoren. Sitzungsschlüssel, Komprimierung und
Die r-Befehle haben drei schwerwiegende Sicherheitslücken: Integrität
Rivest-Shamir-Adleman (RSA) als Al- RSA & Digital Signal Algorithm
.rhosts: Hierbei kann ungewollt ein Angreifer Zugang zu einem oder mehreren Rechnern gorithmus für öffentlichen Schlüssel (DSA) als Algorithmus für öffentlichen
erhalten, wenn die Einträge in die Datei zu unvorsichtig durchge-führt werden. Schlüssel
Sitzungsschlüssel vom Client übermit- Sitzungsschlüssel über Diffie-Hellman-
DNS-Attacke: Hier kann es einem Angreifer durch Manipulation des Name-Servers gelin-
telt Protokoll ausgehandelt
gen, seinen eigenen Rechner als “Trusted Host” auszugeben.
Sitzungsschlüssel für ganze Sitzung Sitzungsschlüssel erneuerbar
Island-hopping: Durch die Verwendung von rlogin oder rsh kann es einem Angreifer ge- gültig
lingen von einem Rechner zum anderen zu gelangen. Im Gegensatz zu Telnet erfolgt die Authentifizierung bei SSH über einen verschlüs-selten
Kanal, in dem das Passwort eingekapselt und somit nicht mehr lesbar für Dritte ist.
11.2.2 Telnet Natürlich ist SSH wie jedes andere Protokoll nicht vor Angriffen sicher. So sind auch
hier z.B. MITM-Angriffe möglich. Ein Angreifer kann hier die Daten zwar nicht lesen, er
Terminal Emulation over Network oder kurz Telnet ist SSH sehr ähnlich. Der Unterschied kann jedoch auf die Länge des Passwortes oder der Shell-Befehle schließen und diese Daten
besteht jedoch darin, dass Benutzername und Passwort in Plain-Text übertragen werden, für Brute-Force-Attacken68 benutzen. Wie Openwall ([OPENWALL 2001]) berichtet ist es
und es somit sehr anfällig für Man-in-the-Middle Attacken (MITM) ist. Ebenso kann man sogar möglich, aus diesen Daten die RSA oder DSA Authentifizierung zu erraten.
mit Hilfe eines Monitorprogrammes einfach in den Besitz der Benutzernamen und Passwörter Unter SSHv1.x ist es möglich sogenannte “Buffer-Overflow-Attacken” durchzu-führen
der Benutzer gelangen. Wird ein solches Programm auf einem Backbone im Netzwerk in- und somit die Möglichkeit zu erlangen, beliebigen Code auf dem attackierten System aus-
stalliert, so protokolliert es danach einfach jegliche Login-Aktivitäten mit und der Angreifer zuführen, typischerweise mit “root”-Rechten. Der Buffer-Overflow wird hierbei durch den
erhält somit rasch eine Vielzahl von Benutzernamen und Passwörtern. Die Abhilfe für diese CRC32 Attack-Detection-Function hervorgerufen. Hierbei wird die Größe der Hash-Tabelle,
Sicherheitslücken stellt nun SSH dar. welche die Sitzungsinformationen speichert, auf null gesetzt.
65 PuTTy: Ein kostenloser Client für SSHv1, SSHv2 und Telnet von Simon Tatham. Weitere Informationen 66 1.x da es von Version 1 mehrere Unterversionen gibt
und das Programm selbst zum Download findet man unter [Link] sgtatham/- 67 SSH Architecture Protocol: kurz SSH-ARCH
putty/ 68 Brute-Force-Attacken: simples Ausprobieren von Passwörtern
132 11 SECURE SHELL 11.3 Protokolle 133
mac = MAC(key, sequence-number || unencrypted_packet). “Session Identifier”: Der User Authentication Layer erhält am Anfang aus dem Trans-
port Layer den aus dem Hash H erworbenen “session identifier”.
Interactive Sessions: Unter “Interactive Sessions” wird das Ausführen eines Programmes
(z.B.: shell, system command) verstanden, welches sich nicht auf dem lokalen Sy-
stem befindet. Mehrere “sessions” können gleichzeitig offen sein. Um Attacken von
bösartigen Servern zu vermeiden sollte jede Anfrage für einen Channel, eines Servers,
vom Client verworfen werden. Unteranderem gehöhrt auch “X11 forwarding” zu den
interaktiven “sessions”. Hierzu ist zu bemerken, dass alle später geöffneten X11 Chan-
Abbildung 64: Beispiel eines Schlüsselaustausches
nels keinen Einfluss auf den “X11 forwarded Channel” haben. Der bleibt auch bei
Schließungen von gewöhnlichen X11 Channels erhalten.
Der “key exchange algorithm” erzeugt zwei Werte: einen von beiden Seiten benutz-
baren geheimen Key K und ein Hashwert H. Diese Werte sind Grundlagen für die 11.4 Zusammenfassung
“encryption” und “authentication keys”. Zusätzlich wird der “session identifier”, der
einzigartig für jede Verbindung ist, aus dem Hashwert des ersten Schlüsselaustausches SSH ist sicherlich nicht das “non-plus-ultra” oder die Lösung aller Sicherheits-probleme bei
gebildet. Netzwerkübertragungen. Dennoch ist es ein großer Schritt in Richtung Kommunikationssi-
cherheit. Angreifern ist es dadurch beinahe unmöglich nicht berechtigten Zugriff zu Daten zu
Service Request: Nach erfolgreichen Schlüsselaustausch kann der Client ein Service vom erhalten, da die Verschlüsselungsalgorithmen inzwischen sehr ausgereift sind. Etwas später
Server beantragen. Service Namen und Formate sind im User Authentication Protokoll begann man am IPv6-Protokoll zu arbeiten, welches die Verschlüsselung bereits direkt in-
([SSH-AUTH 2003]) definiert (zb.: ssh-userauth und ssh-connection). kludiert hat. Für Interessierte hier der Link auf die IPv6 Spezifikation: [Link]
[SSHFAQ 2001] Steve Acheson: The Secure Shell Frequently Asked Questions; 2001
“Public Key Authentication”: Der Server offeriert dem Client eine Anzahl an mögli-
chen Authentifizierungsmethoden. Diese folgen einem bestimmten Format. “Public [OPENSSH] The OpenBSD Project: OpenSSH - Offizielle Homepage
Key Authentication” ist wiederum die einzige Authentifizierungsmethode die obliga-
torisch ist. Alle Implementierungen müssen diese Methode unterstützen. Des weiteren [IETF 2003] Internet Engineering Task Force: Secure Shell (secsh), 2003,
existieren die “password authentication” Methode und die “host-based authentication” [Link]
Methode. 73 widow-space: Datenmenge die die jeweilige gegenüber stehende Seite momentan empfangen und verar-
72 KEXINIT: Name des Paketes welches zum Schlüsselaustausch eingesetzt wird (key exchange init) beiten kann.
136 LITERATURVERZEICHNIS 137
[OPENWALL 2001] Passive Analysis of SSH Traffic, [Link] 12 File Transfer Protokolle
[Link]
In diesem Kapitel werden das File Transfer Protocol (FTP) und seine nächsten Verwandten
[YLOENEN] Tatu Ylönen, Mat Brandy: SSH - Secure Shell, behandelt. Wobei der Schwerpunkt der Ausarbeitung auf der Client Seite liegt. Weiters
[Link] brandy/artikel/[Link] soll auch auf Probleme im Zusammenhang mit Firewalls und die Sicherheitsproblematik
von FTP im Allgemeinen eingegangen werden. Als zweiter Schwerpunkt soll das Trivial
[SSH-DRAFTS 2003] Network Working Group: SSHv2 Internet Drafts, 2003,
File Transfer Protocol (TFTP) vorgestellt werden und die Unterschied zu FTP analysiert
[Link]
werden.
[SSH-CONN 2003] Network Working Group: SSHv2 Connection Protocoll, 2003,
[Link] David Feiner: dave@[Link]
[SSH-ARCH 2003] Network Working Group: SSHv2 Architecture Protocoll, 2003, Thomas Trathnigg: tomtrath@[Link]
[Link]
12.1 Einführung
[SSH-TRANS 2003] Network Working Group: SSHv2 Transport Protocoll, 2003,
[Link] File Transfer Protokolle dienen der Übertragung von Dateien zwischen Computern. Dabei
sind die Anforderungen an das Protokoll stark abhängig von der Art des Netzwerkes und der
[SSH-AUTH 2003] Network Working Group: SSHv2 Authentication Protokoll, 2003, benötigten Sicherheit. FTP ist ein auf TCP/IP aufbauendes Anwendungsprotokoll, das zur
[Link] Übertragung von Dateien zwischen Computern im Internet dient. TFTP hingegen basiert
auf UDP und wird hauptsächlich in lokalen Netzwerken eingesetzt.
12.2.1 Historisches
Da die Übertragung von Dateien eine der Grundanforderungen an ein Computernetzwerk
ist wurde schon sehr früh in der Geschichte der Computernetzwerke ein solches Protokoll
entwickelt. Bereits 1971 wurde in [RFC114 1971] eine erste Variante eines solchen Proto-
kolls festgelegt. In den darauffolgenden Jahren veränderte sich dieses Protokoll jedoch recht
häufig (siehe [RFC172 1971], [RFC265 1971]). Mit [RFC354 1972] wurden die Kommandos
am Kontrollkanal per Telnet (siehe [RFC854 1983]) übermittelt. Die weiteren Entwicklungs-
schritte des Protokolls sind in [RFC542 1973] und [RFC765 1980] enthalten, bis letztendlich
mit [RFC959 1985] FTP zu einem IETF Standard wurde. Seitdem hat sich das Protokoll
kaum noch verändert, bis auf Erweiterungen bezüglich Internationalisierung und Sicherheit.
Stream Mode: Im Stream Mode werden die Daten als Bytestrom übermittelt. Das Ende
Server FTP Commands
User PI der Übertragung wird durch das Schließen des Datenkanals bekanntgegeben.
PI FTP Replies
Block Mode: Im Block Mode und im Compressed Mode werden die Daten in Packete
unterteilt und mit einem Header versehen. Das Ende der Übertragung wird durch ein
File Server Data User File
spezielles EOF Packet angezeigt.
System DTP Connection
DTP System
Server- Compressed Mode: Ähnlich wie der Block Mode, zusätzlich wird Run Length Encoding
FTP User-FTP zur Komprimierung verwendet.
• ASCII TYPE
Abbildung 65: FTP-Modell
• EBCDIC TYPE
• IMAGE TYPE
12.2.4 Verbindungsaufbau
• LOCAL TYPE
Der Client-PI baut den Kontrollkanal zum TCP-Port 21 des Servers auf und erhält bei Erfolg
vom Server eine Bestätigung. Als nächstes muss der Client sich beim Server authentifizieren. ASCII TYPE wird zur Übertragung von Textdateien eingesetzt. Bei IMAGE TYPE
Dies erfolgt mittels der Kommandos USER und PASS. Die meisten FTP-Server ermöglichen wird der Bitstream in Packeten zu jeweils 8 Bit übertragen, daher ist diese Repräsentation
auch einen anonymen Zugang, bei dem anonymous als Username und die Email Adresse für die Übertragung von binären Dateien zu verwenden.
als Passwort eingegeben werden müssen. Ist die Authentifizierung erfolgreich, so gibt der
Server eine kurze Beschreibung seiner selbst zurück. Damit ist der Kontrollkanal aufgebaut 12.2.7 Sicherheit
und der User authentifiziert.
Da bei der Authentifizierung sowohl der Username als auch das Passwort im Klartext über
den Kontrollkanal übermittelt werden, können Passwort und Username leicht in flasche
12.2.5 Verbindungsabbau Hände geraten. Weiters wird auch die eigentliche Datenübertragung unverschlüsselt durch-
geführt und auch die Integrität nicht geprüft. Ein Ansatz um das Problem der Klartext-
Der Verbindungsabbau kann auf zwei Arten erfolgen. Entweder vom User durch Senden des
passwörter in den Griff zu bekommen ist in [RFC2228 1997] beschrieben. Eine heutzutage
Kommandos QUIT, oder nach Überschreitung eines Zeitlimits vom Server.
weitaus verbreitetere Lösung ist sftp74 . Dabei wird eine SSH Kanal zum FTP-Server aufge-
baut und über diesen dann normales FTP abgewickelt.
12.2.6 Datenübertragung
Man spricht bei FTP von aktivem und passivem FTP. Damit ist die Art gemeint, wie der 12.3 Trivial File Transfer Protocol (TFTP)
zur Datenübertragung benötigte Datenkanal aufgebaut wird. Das Trivial File Transfer Protocol (TFTP) ist ein sehr einfaches Dateiübertragungspro-
tokoll das normalerweis das UDP-Protokoll als Grundlage verwendet. TFTP unterstützt
Active FTP: Der Client schickt ein PORT Kommando mit seiner IP-Adresse und dem Port, lediglich das Lesen oder Schreiben von Dateien (PUT und GET). Viele Funktion des klassi-
auf dem der Client-DTP lauscht, an den Server. Der Server baut dann die TCP/IP schen FTP wie etwa Rechtevergabe mittels chmod, Anzeigen der vorhandenen Dateien oder
Verbindung zu dem spezifizierten Port am Client auf. Benutzerauthentifizierung sind nicht implementiert.
[RFC1350 1992] beschreibt das TFTP-Protokoll. Es werden lediglich 5 Packet-Typen
Passiv FTP: Der Client schickt ein PASV Kommando an den Server. Die Antwort des
definiert: Read request (RRQ), Write request (WRQ), Data (DATA), Acknowledgment
Servers enthält die IP-Adresse und den Port des Servers auf dem er den Datenkanal
(ACK), Error (ERROR).
erwartet. Die Verbindung für den Datenkanal baut der Client auf.
Um eine Verbindung zu erstellen, bestimmen beide Hosts eine TID für sich selbst, die
zufällig gewählt werden sollte und für die Dauer der Verbindung gültig ist. Diese TIDs
Diese beiden Arten des Verbindungsaufbau für den Datenkanal sind in
werden als Quell- bzw. Zielport an den Transportlayer übergeben. Besteht die Verbindung,
[RFC959 1985] als gleichwertig beschrieben und sollten auch von jedem FTP-Server be-
ziehungsweise Client beherscht werden. 74 [Link]
140 12 FILE TRANSFER PROTOKOLLE 12.4 Zusammenfassung 141
kann der Datentransfer beginnen. Da UDP keine verlorenen Packete erkennt, definiert TFTP 12.3.3 Sicherheitsaskpekte
eine einfache Flusskontrolle (ACK, ERROR). Jedes Datenpacket ist genau 512 Bytes lang.
TFTP stellt in Hinblick auf Systemsicherheit ein beträchtliches Problem dar. Da keine
Ein kürzeres Datenpacket signalisiert das Ende der Übertragung.
Authentifizierung stattfindet, kann per TFTP nur auf öffentlich lesbare Dateien zugegriffen
In [RFC2090 1997] ist die Möglichkeit Multicast-Packete per TFTP zu verschicken vor-
werden. Es können nur solche Dateien geschrieben werden, die bereits existieren und bereits
gesehen. Durch diese Option können z.B. mehrere Computer beim Booten dasselbe Image
öffentlich schreibbar sind. Ein wichtiger Aspekt ist daher, den Zugriff des TFTP-Dämons
gleichzeitig herunterladen. Die Netzwerkeffizienz kann damit erhöht werden.
auf bestimmte Verzeichnisse einzuschränken. Ein weiteres (von FTP vererbtes) Problem ist,
In [RFC1350 1992] waren die Datenpackete auf 512 Bytes beschränkt. In [RFC2348
dass keine Verschlüsselung vorgesehen ist und daher der gesamte Datenverkehr mitgelesen
1998] wurde diese Einschränkung aufgehoben. Die Datenpackete können nun zwischen 8
werden kann. Sollte TFTP am System nicht unbedingt notwendig sein, sollte man es auf
und 65464 Bytes groß sein. Ist ein Datenpacket kürzer als die verhandelte Länge, zeigt es
jeden Fall deaktivieren.
wieder das Ende der Übertragung an.
[RFC2349 1998] erweitert das TFTP-Protokoll um 2 weitere Optionen: Server und Client
können nun über ein Timeout-Intervall verhandeln. Wird eine Datei empfangen kann eine 12.4 Zusammenfassung
maximale Dateigröße mitangegeben werden. FTP und TFTP sind bewährte Lösungen um Dateien in Netzwerken zu übertragen. TFTP
wird hauptsächlich in lokalen Netzwerken eingesetzt, unterstützt keine Authentifizierung und
12.3.1 Anwendungen basiert im Gegesatz zu FTP auf UDP. FTP benötigt zwei TCP Kanäle, wobei der Aufbau
des Datenkanals entweder aktiv oder passiv erfolgt. Beide Protokolle sind nicht zur siche-
Die Anwendungsgebiete von TFTP sind klein. Die Hauptverwendung findet es in dem Start
ren Datenübertragung geeignet, da weder sichere Authentifizierung noch Verschlüsselung
von Betriebssystemen. Viele BIOSe unterstützen heute das Booten über ein Netzwerk. Für
vorgesehen ist.
dieses Verfahren initialisiert das BIOS die Netzwerkkarte und lädt den Kernel des Betriebssy-
stems mittels TFTP von einem Server. Da TFTP auf dem verbindungslosen UDP-Protokoll
aufsetzt, kann dieses Protokoll mit wenig Aufwand in einem ROM implementiert werden. Literaturverzeichnis
Aktive Netzwerkkomponenten wie Router und Bridges verwenden TFTP, um ihre Konfi-
gurationsdateien von einem TFTP-Server zu laden. TFTP wird auch verwendet, um die [RFC854 1983] J. Postel, J. Reynolds: “TELNET PROTOCOL SPECIFICATION”
Computerarbeitsplätze in großen Netzwerken (Schulen, Universitäten, Firmen) zentral zu RFC 854, May 1983
administrieren.
[RFC114 1971] A. Bhushan: “A FILE TRANSFER PROTOCOL” RFC 114, April 1971
12.3.2 Anwendungsbeispiel [RFC172 1971] Abhay Bhushan, Bob Braden, Will Crowther, Eric Harslem, John Heafner,
Alex McKenzie, John Melvin, Bob Sundberg, Dick Watson, Jim White: “THE FILE
Der Bootvorgang einer Festplattenlosen Linux Workstation läuft im groben folgendermaßen
TRANSFER PROTOCOL” RFC 172, June 1971
ab [LinDL]:
[RFC265 1971] Abbay Bhushan, Bob Braden, Will Crowther, Eric Narslem, John Heafner,
• Nachdem der Rechner eingeschaltet wurde, wird das Boot-ROM auf der Netzwerkkarte Alex McKenzie, John Melvin, Bob Sundberg, Dick Watson, Jim White: “THE FILE
vom PC BIOS gestartet. Das Programm im Boot-ROM enthält einen Treiber für die TRANSFER PROTOCOL” RFC 265, November 1971
Netzwerkkarte.
[RFC354 1972] Abhay Bhushan: “THE FILE TRANSFER PROTOCOL” RFC 354, July
• Das Boot-ROM sucht nun nach einem BOOTP Server. Dafür werden IP Packete 1972
mit der Absenderadresse [Link] versendet. Die Identifikation der Rechner im Netz
geschieht noch über die MAC Adresse. [RFC542 1973] Nancy J. Neigus: “File Transfer Protocol for the ARPA Network” RFC 542,
August 1973
• Der BOOTP Server weist dem Programm im Boot-ROM eine IP Adresse und einige
andere Netzdaten zu. [RFC765 1980] J. Postel: “FILE TRANSFER PROTOCOL” RFC 765, June 1980
[RFC959 1985] J. Postel, J. Reynolds: “FILE TRANSFER PROTOCOL (FTP)” RFC 959,
• Über das TFTP Protokoll lädt die Workstation ein spezielles Boot Kernel Image vom
October 1985
Server und startet diesen.
[RFC1579 1994] S. Bellovin: “Firewall-Friendly FTP” RFC 1579, February 1994
• Der Linux Kernel wird gestartet.
[RFC2228 1997] M. Horowitz, S. Lunt: “FTP Security Extensions” RFC 2228, October
• Der Kernel befragt nochmals den BOOTP Server um eine IP-Konfiguration auf Ker- 1997
nelebene zu bekommen.
[RFC2640 1999] B. Curtin: “Internationalization of the File Transfer Protocol” RFC 2640,
• Der Kernel bindet über NFS die Partion mit einem Linux Dateisystem ein. July 1999
Von nun an läuft der Startvorgang wie bei einem “normalen” Linux Rechner mit Fest- [RFC1350 1992] K. Sollins: “THE TFTP PROTOCOL (REVISION 2)” RFC 1350, July
platte ab. 1992
142 LITERATURVERZEICHNIS
[RFC2090 1997] A. Emberson: “TFTP Multicast Option” RFC 2090, February 1997
[RFC2348 1998] G. Malkin, A. Harkin: “TFTP Blocksize Option” RFC 2348, May 1998
[RFC2349 1998] G. Malkin, A. Harkin: “TFTP Timeout Interval and Transfer Size Options
” RFC 2349, May 1998