Zusammenfassung Internet

Werbung
Zusammenfassung Internet
1.
Grundlagen des Internets
1.1
Geschichte des Internets
1.2
Das Internet Protokoll Version 4
1.3
Das Internet Protokoll Version 6
2.
Transportschicht
2.1
Grundlagen
Die Aufgabe von Transportschichtprotokollen ist eine zuverlässige und effiziente Ende-zuEnde Kommunikation bereitzustellen. 2 Protokolle der Transportschicht sind TCP und UDP.
2.2
Tranmission Control Protocol (TCP)
TCP ist ein verbindungsorientiertes Protokoll welches eine zuverlässige Datenübermittlung
auch bei unsicherem Netz bietet.
2.3
User Data Protocol (UDP)
UDP ist hingegen ein verbindungsloses Protokoll welches für Echtzeitdaten wie z.B. Video
geeignet ist.
2.4
Client/Server Modell
Client/Server Modell: Der Server bietet einen Dienst an und wartet passiv auf eine Anfrage
eines Clients. Der Client fordert diesen Dienst aktiv an.
3.
DNS-Domain Name Service
3.1
Aufbau des DNS
Das Problem besteht darin, dass es schwierig ist die IP-Adresse einer/eines
Rechners/Internetseite zu merken. Ein weiteres Problem ist, dass der Rechner/Seite nicht
mehr erreichbar ist wenn die IP-Adresse geändert wird. Gelöst wird dies, indem der
Rechnername und die IP-Adresse entkoppelt werden. Die URL muss hierbei der IP-Adresse
zugeordnet werden. -> DNS. Bevor es DNS gab, wurde auf jedem System eine Namenstabelle
abgespeichert, doch durch die immense Größe des Internets heutzutage ist dies nicht mehr
handhabbar.
Domain-Namen:
Die Wurzel des DNS-Baumes hat Null-Label „.“. Der Fully Qualified Domain Name endet mit
„.“. Namen die nicht mit Punkt enden werden Relative Namen genannt. Der DNS-Baum hat
eine maximale Verzweigungstiefe von 127 und ein Label darf maximal 63 besitzen. Eine
Domain umfasst Teil des Domainbaums kann weitere Domains enthalten, muss nicht
Netzwerkstruktur wiedergeben und wird durch organisatorischer Zweckmäßigkeit gebildet.
Aufbau des DNS:
DNS ist eine verteilte Datenbank. Die DNS-Server sind baumförmig vernetzt. Es gibt
verschiedene Top-Level-Domains. Es gibt Domains für Organisationen (com, gov, mil,…),
geographische Domains (de, jp,…). Es sind über 200 Top-Level-Domains registriert.
Delegierung:
Hierbei wird eine Domain in Subdomains aufgeteilt, wie z.B. fbe.hs-weingarten.de. Die
Verantwortung für Subdomains kann delegiert werden, z.B. an Personen. Die Anfragen
werden an die Subdomain weitergeleitet. Deshalb ist DNS eine verteilte Datenbank. Die
Domain de wird z.B. von der DENIC verwaltet. Mitglied in dieser Genossenschaft ist u.a.
BelWÜ, welches Landehochschulen mit schnellen Datenverbindungen versorgt. Hsweingarten.de ist über BelWÜ registriert und wird durch die Hochschule verwaltet.
Zonen:
Der DNS-Namensraum wird in verschiedene Zonen aufgeteilt. Die verschiedenen Zonen
überlappen sich nicht und der Name-Server hat die Autorität über die Zone. Eine Zone
beinhaltet den Teil einer Domain, der nicht delegiert ist. Die Zonen müssen beim
übergeordneten Server registriert sein und jede Zone benötigt mindestens 2 Name-Server.
Zuordnung von Namen zu IP-Adressen: Sucht man zu einer IP-Adresse den dazugehörigen
Rechnername gibt es die Domain in-addr-arpa, diese enthält Zuordnung der Namen zu IPAdressen. Wird bei der Fehleranalyse angewendet, bie der Abfrage wird die IP-Adresse
umgedreht, z.B. 30.139.34.129.in-addr.arpa.
3.2
Nameserver
Arten von Nameserver:
Es gibt den primären und den sekundären Name-Server. Der primäre Name-Server liest die
Daten aus der Datei und die Daten werden auf diesem verwaltet. Der sekundäre NameServer kopiert die Daten von anderem Name-Server (durch Zonentransfer) und besitzt die
volle Autorität über die jeweilige Zone. Eine Zone besitzt meistens mehrere sekundäre
Name-Server, aufgrund von Verfügbarkeit und Lastverteilung. Der Master stellt die Daten
beim Zonentransfer zur Verfügung und der Slave kopiert die Daten. Master ist in der Regel
der primäre Name-Server.
Namensauflösung:
Es gibt verschiedene Arten der Abfrage. Bei der rekursiven Abfrage soll der Server ggf. die
Abfrage weiterleiten und erst eine Antwort liefern wenn er die Adresse gefunden hat, oder
wenn sie nicht auffindbar ist. Bei der iterativen Abfrage antwortet der Server ggf. mit einer
Liste von Servern, welche die Adresse kennen könnten. Wir jedoch nicht weitergeleitet,
sondern der Client muss eine neue Abfrage starten. Die Ergebnisse werden im Cache
gespeichert, dadurch verkürzt sich die Zugriffszeit bei künftigen Anfragen, die Speicherzeit
ist jedoch begrenzt. Für die iterative Abfrage gibt es das Testwerkzeug „nslppkup“. Es ist
gedacht für Abfragen von DNS-Informationen.
Caching:
Die Suche nach Domains erfordert in der Regel eine große Anzahl von Anfragen, dies sorgt
jedoch für Netzlast und Verzögerungen. Dies wird durch Caching verbessert, denn hier
werden Antworten gespeichert, auch negatives Caching. Dadurch ist eine Gültigkeitsdauer
für Domain-Daten erforderlich (TTL). Daten nach Ablauf der TTl werden aus dem Cache
gelöscht.
Name-Server:
Es gibt pro Zoen eine Zonendatei, welche SOA-Record und Ressource Record enthält. Der
SOA-record ist Pflicht und beschreibt die Zone und steuert die Zonentransfers. Die Ressource
Records benennen den Nameserver, bilden Namen auf Adressen ab, benennen Mailserver
und bilden Adressen auf Namen ab,… .
Ressource Records: Das Format ist Name-TTL-Klasse-Type-Daten. Name ist der Domainname
(URL) uns ist eine Folge von Labels. Ein Label hat max. 63 Zeichen, ist nicht case-sensitive
und die einzelnen Labels werden durch Punkt getrennt, max. 127. TTL ist die
Gültigkeitsdauer im Cache, wenn dies nicht angegeben wird gilt die default TTL aus SOA.
Klasse ist die Protokollfamilie, meistens „IN“ für Internet. Type ist die Art des Eintrages und
Daten sind abhängig von Type.
Type = NS: NS-Records (Name-Server)
Type = A: Address und Aliasrecords
Type = PTR: PTR-Records (Pointer)
Type = MX: MX-Records (Mail-Server)
=> MX-Records enthalten Präferenzwerte. Niedrigster Wert hat die höchste Priorität.
Die Lenkung des Mailverkehrs an bestimmten Server wegen Größe, bessere
Verfügbarkeit und bessere Anbindung.
Root-Cache-Daten: Die Name-Server benötigen die Adressen der Root-Server, diese
befinden sich in der Datei named.root und wird durch die ICANN gepflegt. Die Name-Server
benötigen die aktuelle Version dieser Datei.
3.3
Das DNS-Protokoll
Es dient entweder zur Kommunikation zwischen 2 Name-Servern oder zwischen NameServer und Resolver. Der Transport ist entweder über TCP oder über UDP. Bei UDP werden
normale Abfragen bearbeitet und die Nachrichten haben eine maximale Länge von 512 Byte.
Ist eine Nachricht länger, wird der Rest abgeschnitten. Bei TCP handelt es sich um
Zonentransfer und es gibt umfangreiche Antworten. UDP und TCP arbeiten beide auf dem
Port 53.
DNS-Nachrichtenformat:
Der Wert in dem Feld Identification wird von Anfrage in Antwort kopiert und dient zur
Zuordnung. Im Feld Parameters gibt es verschiedene Felder. Das Feld Rcode gibt an ob es
einen Fehler gab, und was für einen (1-5), oder ob alles geklappt hat (0).
3.4
Streitigkeiten über Domainnamen
Das Problem liegt darin, dass jeder Domainname eindeutig sein muss, daher nur einmal
vergeben werden kann. In Deutschland werden die Domainnamen von DENIC vergeben.
Domains haben auch einen wirtschaftlichen Wert, da viele User oft nur die vermutete
Adresse eingeben und die Domain hat auch einen gewissen Wiedererkennungswert.
Vergabe von Domains:
Es gilt bei der Vergabe, wer zuerst kommt, malt zuerst! Dadurch kann es zu DomainGrabbling kommen. Es kann durch Registrierung und Nutzung einer Domain zu
Rechtsverstößen kommen. Die DENIC übernimmt keinerlei Haftung und Prüfung bei
Rechtsverstößen. Haftung gilt nur in offensichtlichen Fällen. Bei der Rechtsverfolgung stellt
die DENIC nur die Daten des Domaininhabers zur Verfügung und der Rechteinhaber wendet
sich dann direkt an den Domaininhaber.
Markenrecht:
Marken genießen einen besonderen Schutz, auch wenn es sich um ähnliche Zeichen handelt,
dies gilt jedoch nur im Geschäftsverkehr. Es kann zu Markenrechtsverletzungen kommen,
wenn ein Markenname für eine Domain benutzt wird.
Namensrecht:
Es gibt ein Recht am eigenen Namen (BGB) auch für Privatpersonen. Man ist nicht berechtigt
einen Namen als Domain zu benutzen den man nicht führen darf (z.B. braunschweig.de).
Dieses Prinzip ist jedoch zum Teil durchbrochen, wegen überragender Bekanntheit einer
Firma (z.B. shell.de)
Gattungsbegriffe und Tippfehler/Umlaute:
Bei Gattungsbegriffen kann es zu wettbewerbsmäßige Behinderung anderer kommen, dies
ist jedoch meist unproblematisch. Bei Tippfehlern kann es zu Markenrechtsverletzungen
kommen, wegen der Verwechslungsgefahr (z.B. googl.com).
Ansprüche:
Die Rechteinhaber können Schadenersatzanspruch stellen, das bedeutet sie bekommen den
Gewinn, oder eine angemessene Lizenzgebühr. Sie haben aber auch den Anspruch auf
Übertragung der Domain, dies ist jedoch rechtlich umstritten. Es ist möglich einen „DisputEintrag“ bei der DENIC zu beantragen.
4.
Die Hypertext Markup Language (HTML)
HTML ist eine Beschreibungssprache für statische Internetseiten. Sie beschreibt logische
Bestandteile eines Dokuments, die Typischen Elemente sind Überschriften, Absätze,
Tabellen,… Die Darstellungsform wird vom jeweiligen Browser festgelegt, jedoch ist auch
explizite Formatierung möglich. Man kann Hyperlinks auf andere Dokumente setzen. HTML
ist eine „Klartextsprache“, man kann somit Dateien im Texteditor erstellen.
4.1
HTML als Auszeichnungssprache
Prinzip:
Die Gliederung ist hierarchisch, es werden Eigenschaften eines Dokuments festgelegt,
Eigenschaften der Elemente des Dokuments festgelegt und Eigenschaften von
Unterelementen festgelegt. Der Erstreckungsraum einer Eigenschaft wird durch Tags
begrenzt.
4.2
Dokumenttyp-Definition (DTD)
Sie legt die Struktur eines Dokuments fest, definiert Reihenfolge von Elementen, die
zugehörigen Attribute und die Zuordnung der Attribute zu den Elementen.
DTD-Varianten für HTML:
Es gibt 3 verschiedene Varianten. Die erste ist Strikt. Bei dieser sind ältere Elemente und
Attribute (depreciated) nicht enthalten, und es gelten strengere Regeln für die
Strukturierung. Die zweite ist Transitional. Bei dieser sind „depriciated“ Elemente zugelassen
und die Strukturierungsregeln sind großzügig. Es sind Formatbeschreibungen ohne
Stylesheets zulässig. Die dritte ist Frameset. Diese ist erforderlich, wenn Frames definiert
werden.
4.3
Meta-Angaben zum Inhalt
Zweck und Aufbau:
Meta-Angaben sind Angaben für den Web-Server, Web-Browser und für Suchmaschinen.
Diese Angaben stehen im Header und werden vom Browser nicht angezeigt.
4.4
Logische und Physische Auszeichnung im Text
Die Gestaltung eines kann logisch und physisch erfolgen. Bei der logischen Gestaltung
entscheidet der Browser wie die Elemente dargestellt werden, somit kann er die Darstellung
optimal an Display anpassen. Bei der physischen Gestaltung wird in der HTML-Datai
festgelegt wie die Elemente dargestellt werden, somit ist keine Anpassung an Display
möglich.
4.5
Ausgewälte HTML-Elemente
Überschriften und Absätze:
Es gibt 6 verschiedene Überschriftsebenen (<h1> bis <h6>). Die Absätze werden mit dem
<p>-Tag gebildet und der Zeilenumbruch mit <br>.
Grafik einbinden:
Eine Referenz auf ein Bild wird mit <img src=“….“ alt=“….“>. alt ist eine Pflichtangabe, dies ist
der Alternativtext, falls das Bild nicht angezeigt werden kann. Die Grafik als Verweis geht mit
<a href=“…“><img src=“…“ alt=“…“></a>.
4.6
Dynamische Webseiten
Verarbeiten die Formulareingaben weiter. Dynamische Webseiten können Serverseitig oder
Clientseitig sein. Serverseitig ist es das Common Gateway Interface (CGI) und PHP: Hypertext
Processor. Clientseitig (DHTML) ist es JavaScript oder Java Applets.
Clientseitig dynamische Seiten:
Sind mit DHTML (Dynamisches HTML) und haben dynamisch veränderliche Elemente, die
Skriptsprache ist in der Regel JavaScript. JavaScript ist eine Interpreter Sprache welche in
HTML eingebunden werden kann, sie läuft auf dem Client. Java Applets sind kompilierte
Programme, welche mit Java programmiert wurden, sie laufen auf Java Virtual Machine.
Serverseitig dynamische Seiten – Verarbeitung dynamischer Webseiten mit CGI:
Der User füllt das Formular aus, das Formular wird an den Server übertragen, dieser gibt es
an CGI-Script weiter. Nun folgt die Abfrage bei der Datenbank und die Daten werden zurück
an CGI-Script gegeben. Das Script erzeugt nun eine HTML-Seite, diese wird dann an den
Browser übergeben und wird von ihm dargestellt.
Common Gateway Interface (CGI):
Wird meistens aus Formularen aufgerufen. Es gibt 2 Methoden, die GET- und die POSTMethode. Es kann jedoch auch durch einen Verweis (<a>-Tag) aufgerufen werden, hierbei
gibt es keine Wertübergabe zum Server.
Wertübergabe mit der GET-Methode:
Hierbei werden die zu übergebende Parameter an die URI angehängt, wird durch ein „?“ von
der URI getrennt. Die Eingaben der zu übertragenden Parameter werden durch ein „&“
getrennt, die Leerzeichen werden durch „+“ ersetzt und die Sonderzeichen werden codiert.
Nach der Übertragung werden die Daten durch ein Rechnerprogramm weiterverarbeitet, die
beliebteste Programmiersprache ist PERL.
Wertübergabe mit der POST-Methode:
Die Daten werden im HTML-Body übertragen und ist somit für größere Datenmengen besser
geeignet.
Server Side Includes:
Eine einfache Methode um einzelne Elemente dynamisch zu machen.
Bsp.: Aktuelles Datum und Uhrzeit:<! -- #echo var=“DATE_LOCAL“>
4.7
Frames
4.8
Objekte im HTML
Es können beliebige Dateien mit <object> - Tag eingebunden werden. Es gibt verschiedene
Anzeigemöglichkeiten, der Browser selbst, ein Plug-In oder ein Externes Programm.
5.
Stylesheets
5.1
Grundlagen
Stylesheets:
Definition zentraler Formate. Im Kopf einer HTML-Datei oder in einer speziellen CSS-Datei,
es sind aber auch Format-Deklarationen innerhalb der HTML-Elemente erlaubt. Man kann
auch verschiedene Sytlesheets für unterschiedliche Ausgabemedien definieren.
5.2
CSS-Deklaration
Die Angaben, welche direkt in den HTML-Elementen stehen, haben Vorrang. Wird z.B. in
einer CSS-Datei die Überschrift mit der Farbe blau definiert, aber die Überschrift im HTMLTeil mit grün, wird die Überschrift in grün dargestellt.
5.3
Kaskadierung
Es sind mehrere Stylesheets möglich.
Browser Stylesheet:
ein eingebautes Stylesheet des Browsers.
User Stylesheet:
Voreinstellung durch Nutzer
Designer Stylesheet:
Zur Gestaltung der Internetseite Modular bedeutet, dass es auf mehrere Stylesheets verteilt
ist Hierarchisch bedeutet, ein allgemeines und spezielles Stylesheet.
Alternative Stylesheets bedeutet, dass es unterschiedliche Präferenzen oder
unterschiedliche Ausgabegeräte gibt.
Konfliktauflösung bei CSS:
Die ausdrücklichen Regeln haben Vorrang vor vererbten Regeln. Die Regeln mit „!important“
haben die höchste Priorität. Die einzelnen Stylesheets werden nach ihrer Herkunft sortiert,
zuerst kommt das Designer Stylesheet, danach das User Stylesheet und zuletzt das Browser
Stylesheet. Innerhalb des Stylesheet haben die Regeln die hinten kommen Vorrang.
6.
Hypertext Transfer Protokoll
6.1
Grundlagen
http dient zur Übertragung von Daten über ein Netz und ist ein Protokoll der
Anwendungsschicht. http wird hauptsächlich bei Internetseiten angewendet, aber auch zum
Austausch beliebiger Daten. Das Protokoll ist zustandslos, aber Zustandsbehaftung ist durch
andere Mechanismen möglich. Baut auf TCP auf.
Uniform Resource Loader:
Lokalisieren von Resourcen im Internet durch URI. Eine URL besteht aus dem Schema und
dem schemaspezifischen Teil, getrennt durch „:“. Das Schema legt das anzuwendende
Protokoll fest, z.B. http, https,... . Der Schemaspezifische Teil wird abhängig vom Schema
interpretiert.
Kodierungsregeln:
„/“ und „:“ werden als Trennzeichen verwendet, „@“ als Trennzeichen zwischen Kennwort
und Host, „%“ als Escapezeichen und „?“ als Einleitung eines Querystrings nach url_path.
http-Versionen:
Die aktuellste Version ist 1.1. Sie benötigt weniger CPU-Zeit und Speicher, hat schnellere
Reaktionszeiten und kann mehrere Anfragen ohne vorherige Antwort zulassen. Durch
Chunked Encoding besitzt die Version eine schnellere Reaktion bei dynamisch generierten
Seiten. Es sind mehrere Domains auf einem Server möglich und es gibt weitere Methoden
wie DELETE oder OPTIONS.
6.2
Request und Response
Ablauf einer http-Nachricht:
Der Aufbau der Nachrichten ähnelt denen von SMTP (Simple Mail Transfer Protocol). Die
Start-Line ist eine Request- oder eine Status-Line. Es gibt verschiedene Header, die GeneralHeader treten sowohl bei den Anfragen als auch bei den Antworten auf. Die Request-Header
treten nur bei Anfragen auf und die Response-Header nur bei Antworten. Die Entity-Header
beziehen sich auf den Message-Body wie z.B. Schriftsatz oder Codierung.
Protokollparameter einer Request-Line:
Es gibt die Methoden Get, Put,… .Die http- Version informiert den Empfänger über
unterstützte Protokollversion. Bei der URI ist der Port ist optional, der Default ist 80.
http-Anfragen (Request-Methoden):
Die GET- Methode ist die wichtigste Methode und muss unterstützt werden (mandatory). Sie
liefert die Information, wie Datei und Prozess, der Datei generiert, der folgenden URI. Es sind
Bedingungen möglich, wie z.B. If-Modified-Since, If-Unmodified-Since,… .
http-Anfragen (Request):
HEAD ist wie GET, jedoch wird nur der Nachrichten-Header abgefragt und dient zum Prüfen
der Verfügbarkeit einer URI und ist mandatory. OPTIONS dient zur Abfrage der Optionen
einer Netzwerkressource oder eines Servers. Bei Server Funktionen funktioniert es wie
„PING“ oder „NOOP“. Diese Funktion ist optional.
http-Anfragen:
POST dient zum Verschicken einer Nachricht an den Server, der URI muss existieren, ist aber
optional. PUT dient zum Hochladen einer Internetseite, funktioniert wie POST, jedoch wird
die Nachricht direkt unter angegebener URI gespeichert. Optional. DELETE dient zum
Löschen einer Datei. TRACE dient zur Fehlersuche. Der Body enthält den Request den Server
empfangen hat und die Nachricht wird zurück an Absender geschickt (Echo, Loopback).
CONNECT ist gedacht für transparenten Pfad für SSL.
Header Felder – General Header Fields:
Cache-Control überschreibt die Default-Mechanismen. Date für Datum. Pragma ist
erforderlich wegen der Kompatibilität zu http 1.0, es werden keine neuen Pragma-Direktiven
definiert. Trailer: Headerfelder im Anhang enthalten, bei Transfer-Codierung in Chunks.
Upgrade fordert den Server auf das Protokoll zu ändern und erlaubt den Wechsel zu
inkompatiblem Protokoll. Via protokollier Gateways und Proxies sowie deren Protokolle.
Request-Header:
Abruf von Teilen einer Ressource (Content-Range), Medientype des Inhalts (Content-Type).
Host ist der Host der Ressource und ist Pflicht und ist erforderlich wenn mehrere WebDomains auf einem Server sind. User-Agent bietet Informationen über Software und
Version. Max-Forwards ist die Anzahl der Proxies, die nachrichten weiterschicken dürfen,
dient zur Fehlersuche. Max-Forwards: 2.
Aufbau eines Responses:
Der Statuscode ist eine 3-stellige Zahl, wobei die 1. Ziffer die Klasse angibt und die 2. und 3.
spezifiziert den Status näher. Die Auswertung der 1. Ziffer ist mandatory. Die Reason Phrase
erläutert den Fehler.
Response-Header (Beispiele):
From, die E-Mail Adresse eines für den Inhalt Verantwortlichen (From: [email protected]).
Age, das Alter eines Inhalts seit Abruf auf dem Ursprungsserver. Allow, der Versender
bezeichnet die Methode, die er unterstützt (Allow: GET, HEAD, PUT). Accept-Ranges,
Versender unterstützt den Abruf von Teilen einer Ressource
(Accept-Ranges: byte). Retry-After ist insbesondere sinnvoll bei 503 Service Unavailable .
Server, die Informationen über Server. Location für die Umleitung einer Anfrage (Location:
http://www.hs-weingarten.de/).
Entity Header (Beispiele):
Content-Encoding ist für das Kompressionsverfahren. Content-Language ist für die Sprache
des Content. Content-MD5 ist die Prüfsumme für die Integritätsprüfung. Content-Type ist
der MIME-Type des Inhalts.
6.3
Content Negotiation
Server-Driven Negotiation:
Es gibt oft mehrere Varianten einer Ressource auf dem Server, entweder verschiedene
Sprachvarianten oder Varianten für unterschiedliche Internetzugänge. Der Content wird
nach verschiedenen Kriterien ausgewählt, durch Request-Header Felder oder durch die
Netzwerkadresse des Client.
Request-Header zur Content Negotiation:
Accept-Language bezeichnet die bevorzugte natürliche Sprache. Accept (MIME) spezifiziert
Medientypen, die der Versender der Nachricht akzeptiert, Präferenzwert zwischen 0 und 1
für jeden Medientyp. Accept-Charset spezifiziert den Schriftsatz, den der Versender
akzeptiert. Accept-Encoding bezeichnet die unterstützten Codierungsverfahren für Medien.
Die Antwort im Fehlerfall ist 406.
6.4
Authentifizierungsmethoden
Beim Basic Authentication Scheme verlangt der Server nach USER-ID und Passwort. Da
Base64-codiert wird das Passwort unverschlüsselt übertragen, aus diesem Grund sollte die
Verbindung TLS verschlüsselt sein. Beim Digest Authentication Scheme sendet der Server
zufällige Bitfolge(„nonce“) im WWW- Authenticate Header. Der Client berechnet mit MD5Algorithmus den Fingerabdruck aus Nonce-Wert, Passwort und mehreren Zeilen des
Requests. Dieser Fingerabdruck wird an Server gesendet und vergleicht ihn mit dem selbst
berechneten Fingerabdruck. Jedoch löst dies auch nicht das Problem der ersten Übertragung
des Passworts.
6.5
Persitente Verbindungen
Es laufen mehrere Request/Response Interaktionen über eine TCP-Verbindung. Der Vorteil
ist, dass es weniger Pakete sind, Pipelining ist möglich und Betriebssystemressourcen
werden gespart. Durch dieses Vorgehen ist das Ende einer Nachricht nicht mehr an
Verbindungsende erkennbar. Das Header-Feld content-length ist erforderlich.
6.6
Chunked Transfer Encoding
Bei dynamisch erzeugten Ressourcen ist die Größe vor Versenden nicht bekannt und es ist
eine Aufteilung in Teile (Chunks) bekannter Größe erforderlich.
Header Felder:
TE spezifiziert Transfer-Encoding Methoden (z.B. TE: trailers, Client akzeptiert Trailer).
Chunked-transfer-encoding wird immer akzeptiert. Trailer: die Genannten Header Felder
sind im Trailer (z.B. Trailer: Content-MD5). Transfer-Encoding (Transfer-encoding: chunked).
6.7
Methoden zur Verbesserung der Performance
Auf der Clientseite gibt es die Methode Caching, hier werden die abgerufenen Dateien im
Cache gespeichert und bei erneuter Anfrage aus dem Cache genommen. Auf der Serverseite
gibt es mehrere Methoden, der Server Side Cache, Server Replication und Content Delivery
Networks. Cache ist eine Art Zwischenstation. Hierarchisches Caching ist z.B. auf dem Client,
im LAN des Client, beim Service Provider, auf dem Origin Server.
Vorteile des Caching:
Die Netzlast wird reduziert, durch Einsparung von Requests und vollständigen Responses.
Die Antwortzeiten werden reduziert, vorausschauendes Caching möglich. Das Problem liegt
darin, zu überprüfen ob der Inhalt im Cache noch aktuell ist. Das Ziel von Caching ist eine
weitreichende semantische Transparenz, der User soll möglichst gleiche Antwort bekommen
wie ohne Cache. Dafür benötigt man Anweisungen zur Steuerung des Cache (Server kann
angeben ob und wie lange gechachet wird). Die Lösungen für dieses Problem sind
„Expiration“ mechanism und „Validation“ mechanism.
Expiration mechanism:
Bei dieser Methode liefert der Server die Gültigkeitsdauer des Inhalts. Explict expiration
Time ist das Ablaufdatum für eine Antwort (Response) und steht im Expires-Header. Wenn
ein Inhalt sofort veraltet sein soll, wird die Expiration-Time in der Vergangenheit angegeben
(Cache-Control: must-revalidate). Die heuristische Ermittlung der Gültigkeit sollte mit
Vorsicht angewendet werden. Hierbei wird die „last-Modified time“ verwendet.
Validation mechanism:
Wenn eine Nachricht im Cache alt ist, kann der Inhalt des Caches validiert werden. Es wird
eine bedingte Anfrage dazu benutzt, ist die Bedingung erfüllt, wird kompletter Inhalt noch
einmal vom Content-Server geholt, ist sie nicht erfüllt kommt die Antwort aus Status-Line
und Message Header (Statuscode: 304 Not Modified).
Cache Control – Direktiven zur Revalidierung:
„If-Match“ dient zur Überprüfung der Aktualität von Entity-Tags, falls einer der Tags passt ist
die Bedingung erfüllt. „If-None-Match“ ist analog dazu. Bei „If-Modified-Since“ gibt es zwei
Antwortmäglichkeiten, Bedingung erfüllt und die Ausführung der Anweisung erfolgt wie
ohne If-Modified-Header und Bedingung nicht erfüllt (304 Not Modified). „If-UnmodifiedSince“ ist analog dazu. Bei „If-Range“ sendet er nur ein Teil einer Ressource, wenn die
Ressource nicht verändert ist und alles, wenn die Ressource verändert ist. Nur zusammen
mit Range-Header.
Feststellung der Gültigkeit des Cache-Inhalts:
Wird in den Header-Felder Last-Modified und Explict Expiration Time festgelegt. Beim ETag
(Entity Tag) gibt es 2 verschiedene Validator, den Strong Validator und den Weak Validator.
Der Strong Validator ist der Versionsidentifier für Entität und wird bei jeder Veränderung
eines Entity aktualisiert. Der Weak Validator ist der Versionsidentifier für semantisch
gleichwertige Entitäten und wird nur bei semantisch signifikanten Änderungen aktualisiert.
Solange der Cache-Inhalt noch gültig ist, wird er ohne „validation“ verwendet, ansonsten
wird er nach gültiger „validation“ verwendet.
Cache Direktiven von Requests:
Bei „no-cache“ muss die Entity validiert werden. Bei „no-store“ darf die Entity nicht
gespeichert werden. Bei „max-age“ akzeptiert der Client nur Inhalt maximal dieses Alters (in
Sekunden). Bei „max-stale“ akzeptiert der Client Inhalte, deren Gültigkeit um die
spezifizierte Zeit abgelaufen ist. Bei „min-fresh“ fordert der Client Informationen, die noch
mindestens um die spezifizierte Sekundenzahl aktuell ist. Bei „no-transform“ darf der Inhalt
nicht um codiert werden. Bei „only-if-cached“ will der Client die Nachrichten nur aus dem
Cache. „Cache-Extensions“: nicht standardisierte Erweiterungen, werden von StandardCaches ignoriert.
Cache Direktive von Responses:
Bei „public“ darf Entity im Cache gespeichert werden. Bei „private“ darf die Entity nur im
privaten Cache gespeichert werden. Bei „no-cache“ muss die Entity validiert werden. Bei
„no-store“ darf die Entity nicht gespeichert werden. Bei „no-transform“ darf der Inhalt nicht
umcodiert werden. Bei „must-revalidate“ muss der Inhalt in jedem Fall validiert werden.
„proxy-revalidate“ ist wie must-revalidate, gilt jedoch nicht für Client Cache. „max-age“ ist
die Fälligkeit der Nachricht. „Cache-Extensions“: nicht standardisierte Erweiterungen,
werden von Standard-Caches ignoriert.
6.8
Sicherheit von HTTP
Das Ziel ist der Schutz vor Lauschangriffen und vor Veränderung der Daten. Es gibt
verschiedene Lösungsansätze. Zum einen die Verwendung einer sicheren
Transportschichtarchitektur, http über SSL, und zum anderen Die Verwendung eines
sicheren Protokolls auf Anwendungsschicht, Secure http (S-http) oder ein auf http
basierendes sicheres Nachrichtenformat. Die 2. Variante wir jedoch kaum eingesetzt.
http über SSL:
SSL steht für Secure Sockets Layer und bietet Verschlüsselung der Verbindung, optional auch
eine Authentifizierung und eine Prüfung der Integrität von Nachrichten. Es sind 3
Verbindungsarten möglich, die anonyme, welche jedoch kein Schutz vor Man-in-the-middleAngriff bietet, Server authentifiziert und das beide Parteien authentifiziert sind. Das Naming
Schema ist https.
6.9
Cookies
Da http ein zustandsloses Protokoll ist sind Request/Response Transaktionen unabhängig
voneinander, deshalb sind z.B. keine Warenkörbe möglich. Der Austausch von
Zustandsinformationen zwischen Client und Server erfolgt durch Cookies. Es gibt 2
Headerdateien, den Set-Cookie, hierbei überträgt der Server den Cookie an den Client und
dieser speichert ihn bei sich ab, und den Cookie, hierbei überträgt der Client den Cookie mit
Request an den Server, der richtige Cookie wird am Servernamen gefunden.
Cookies:
Es gibt 4 verschiedene Arten von Cookies. Die temporären Cookies, diese werden am Ende
der Sitzung wieder gelöscht (Warenkorb), die beständigen Cookies, diese bleiben längere
Zeit auf dem Rechner (Anmeldedaten), die Cookies von Erstanbietern, dies sind Cookies des
aufgerufenen Angebots und die Cookies von Drittanbietern, dies sind Cookies der
Werbefenster (Erforschung des Surfverhaltens).
6.10 Statistik zur Nutzung der HTTP-Header
6.11 Web Server
Kriterien für die Auswahl eines Webservers:
Die wichtigsten Kriterien sind das verwendete Betriebssystem, die Verfügbarkeit, der
Support und der Preis. Am häufigsten eingesetzt wird Apache HTTP Server.
Der Apache HTTP Server:
Der Entwickler ist Apache Software Foundation, welches eine non-profit Organisation ist. Er
ist unter diversen Betriebssystem verfügbar, die betriebsspezifischen Aufgaben werden von
Multi Processing Module (MPM) gelöst, es darf aber nur eine eingebunden werden. Die
Programmiersprache ist C.
Der Apache Server:
Er hat einen modularen Aufbau, die Module werden beim Kompilieren eingebunden, können
aber auch dynamisch geladen werden. Es gibt eine Konfigurationsdatei (httpd.conf) und es
gibt einen umfassenden Funktionsumfang, z.B. FTP-Support, Caching von Inhalten oder CGI.
6.11.1 Kriterien für die Auswahl eines Webservers
6.11.2 Der Apache HTTP Server
7.
Internetrecht
Das Internetrecht ist ein Querschnittsgebiet über mehrere Rechtsgebiete. Es werden oft die
traditionelle Rechtsgebiete auf Internet angewendet, es sind jedoch teilweise spezielle
Gesetze erforderlich. Der Gesetzgeber hinkt oft hinterher.
7.1
Urheberrecht im Internet
Geschützte Werke sind persönliche geistige Schöpfungen, dazu gehören z.B. Musik, Fotos
und Filme. Sie entstehen mit Schaffung des Werkes und es ist somit kein Copyright und keine
Registrierung notwendig.
Urheberrecht und Recht am eigenen Bild:
Urheberpersönlichkeitsrechte, darunter fällt Anerkennung der Urheberschaft und Schutz
gegen Entstellung, insbesondere die Darstellung einer fremden Internetseite in einem Frame
ist problematisch. Nutzungsrechte, darunter fallen alle Nutzungsarten, auch die durch
technische Neuerungen. Recht am eigenen Bild, bedeutet, dass jede Erkennbare Wiedergabe
verboten ist. Es reicht schon das Setzen eines Links auf ein Privatfoto. Es gibt jedoch
Einschränkungen, z.B. „Personen der Zeitgeschichte“ (Politiker, Sportler), aber Schutz vor
Kommerzialisierung.
Links:
Links sind auch ohne Genehmigung des Seitenbetreibers erlaubt, auch Deep-Links, hier kann
jedoch eine Verletzung des Urheberrechts sein.
Kopien für privaten Gebrauch:
Es sind normalerweise bis zu 7 Kopien erlaubt, das Herunterladen und Nutzen aus dem
Internet für privaten Gebrauch ist zulässig. Software darf in der Regel nicht kopiert werden,
es ist lediglich eine Sicherungskopie erlaubt, solange man keinen Kopierschutz bricht. Ein
vollständiges Kopieren von Büchern/Zeitschriften ist nicht erlaubt. Im Bereich Ausbildung
gibt es eine Privilegierung, die Kopien dürfen nur Schulungsteilnehmer zugänglich sein und
ebenfalls keine Kopien von kompletten Büchern.
Rechtsfolgen bei Urheberrechtsverletzungen:
Schadenersatz, entgangener Gewinn, Gewinn des Verletzers oder übliche Lizenzgebühr. Man
ist auch haftbar für andere Personen, bei einem offenen W-LAN-Anschluss oder bei
minderjährigen Kindern. Urheberrechtsverletzungen sind strafbar.
7.2
Datenschutz
Das Bundesdatenschutzgesetz regelt die Nutzung personenbezogener Daten, es gelten der
Grundsatz der Datenvermeidung und Datensparsamkeit und das Prinzip des Verbots mit
Erlaubnisvorbehalt. Nicht-öffentliche Stellen dürfen Daten erheben, speichern, nutzen,
übermitteln, verändern, aber nur wenn es Zweckbestimmungen eines Vertragsverhältnisses
dient oder der Wahrnehmung berechtigter Interessen dient.
Cookies:
Sie dienen u.a. zum Sammeln von Daten über Nutzerverhalten, dies ist bei Anonymisierung
unproblematisch, jedoch bei Zuordnung zu Person besteht ein Verstoß gegen
Datenschutzrecht.
Rechtsfolgen:
Die Ansprüche eines Betroffenen sind Auskunft über gespeicherte Daten, Löschung bei
unberechtigter Speicherung, Berichtigung und Schadensersatz, hierbei ist jedoch ein
Verschulden erforderlich und Beweislastumkehr. Die Strafen sind von Bußgeld bis
strafrechtlichen Folgen in schweren Fällen.
7.3
Sonderprobleme
Dailer sind von der Bundesnetzagentur zu genehmigen und 0900er Nummern werden in
einer Datenbank veröffentlicht, Disclaimer sind rechtlich nicht nachteilig, entbindet aber
nicht immer von Haftung. Haftung des Betreibers von Meinungsplattformen bei
Verbreitung rechtswidriger Inhalte. Der Betreiber muss aber nicht Kommunikation
überwachen, er hat aber bei Kenntnis die Verpflichtung zur Sperrung oder Löschung.
Sonderprobleme:
Wenn der Unternehmer die private Nutzung erlaubt oder stillschweigend duldet kann es zu
Problemen kommen. Probleme bei Vertragsabschlüssen mit dienstlicher E-Mail-Adresse,
Probleme bzgl. Vertraulichkeit der Mails und Probleme bei SPAM-Filterung. Deshalb sollte es
eine Vereinbarung zwischen Arbeitgeber und Arbeitnehmer geben. Allein der Arbeitgeber
entscheidet über die Zulässigkeit. Bei unbefugter privater Internetnutzung kann es zu einer
Abmahnung oder sogar zur Kündigung kommen. Zur Kündigung kann es kommen, wenn der
Arbeitnehmer eine erhebliche Datenmenge herunterlädt, Kosten verursacht, bei Virengefahr
oder bei Schädigung des Rufs des Unternehmens. Eine Abwesenheitserklärung ändert nichts
am Zeitpunkt des Zugangs einer Mail, deshalb sollte man im Urlaub seine Mails von einem
Vertreter kontrollieren lassen. Schadensersatzansprüche gegen Arbeitnehmer wegen Viren,
Trojaner, unsichere Passwörter sind grundsätzlich möglich, aber eingeschränkt, da
Organisation des Betriebs Arbeitgeber obliegt. Es ist auch abhängig vom Maß der
Fahrlässigkeit.
7.4
Internetstrafrecht
Beispiele für verbotene Inhalte sind Volksverhetzung, Anleitung zu Straftaten,
Gewaltdarstellungen und Beleidigung. Auch Hyperlinks auf solche Seiten können strafbar
sein. Bei Viren, Würmer, Trojaner und Spyware ist einer Vorsatz erforderlich. Phishing ist
strafbar (Computerbetrug, Ausspähen von Daten). Denial of Service Attacken, Dailer
(Computerbetrug), Spoofing (Fälschung von beweiserheblicher Daten) und Portscanning (bei
Verwendung von DoS) sind ebenfalls strafbar.
Strafprozessrecht:
Ein vom Staat eingeschleuster Trojaner dient zur verdeckten Online-Durchsuchung, dies ist
jedoch ein unzulässiger Eingriff in die Persönlichkeitsrechte. Es ist nur Verfassungsrechtlich
bei Gefahr für „überragend wichtiges Rechtsgut“ und es ist eine richterliche Anordnung
erforderlich. Der Zugriff auf Mails als Beschlagnahme ist möglich, jedoch nicht unstrittig, da
E-Mails unter das Fernmeldegeheimnis fallen.
8.
Mail
8.1
Simple Mail Transfer Protocol (SMTP)
Es ist ein Client-Server-Protokoll, bei dem der SMTP-Client die Instanz ist, die die E-Mail
versendet und der SMTP-Server die Instanz, die die E-Mail empfängt. Der Client sendet das
Kommando, z.B. „RCPT TO“. Der Server antwortet mit Statusinformationen, z.B. Statuscode
550. Er kann optional auch einen Text schicken („user not known“).
Ablauf einer SMTP-Verbindung:
Eine TCP-Verbindung zwischen Client und Server wird aufgebaut. Der Server antwortet mit
Statuscode und Begrüßung. Client schickt ebenfalls Begrüßung (EHLO) und die Angabe des
Absenders. Der Server antwortet mit Statuscode und List der unterstützten SMTPErweiterungen. Der Client gibt nun den Absender bekannt (MAIL FROM). Server antwortet
wiederum mit Statuscode. Der Client beendet nun die Adressdaten (RCTP TO). Server
antwortet wiederum mit Statuscode. Der Client kündigt den Beginn der Datenübertragung
an (DATA). Server antwortet wiederum mit Statuscode. Client beginnt mit der
Datenübertragung, die E-Mail wird zeilenweise übertragen und die letzte Zeile enthält nur
einen Punkt. Server bestätigt Empfang wiederum mit Statuscode (250 message accepted).
Der Client beendet die Sitzung mit QUIT. Server bestätigt Abbau wiederum mit Statuscode.
Wichtige SMTP-Kommandos:
„EHLO“ bedeutet Extended hello und hat als Parameter den Rechnername des Clients.
„MAIL FROM“ hat als Parameter die Absenderadresse, wird aber in der Regel nicht
ausgewertet. „RCTP TO“ hat als Parameter die Empfängeradresse, der Server sollte nur
Empfänger aus eigener Domain akzeptieren. „DATA“ leitet die Datenübertragung ein und
hat max. 998 Zeichen, die Letzte Zeile hat nur „.“. „RSET“ bedeutet Abbruch der aktuellen
Transaktion. „VRFY“ bedeutet das der Server die Existenz einer Adresse bestätigen soll,
dieses Kommando ist aber in der Regel abgeschaltet (aus Datenschutz Gründen). „HELP“
bedeutet, dass der Server Hilfeinformationen an den Client übertragen soll. „NOOP“
bedeutet keine Operation und bei „QUIT“ wird die Verbindung beendet.
SMTP-Antworten:
Nach jedem Kommando vom Client folgt eine Antwort des Servers, der Client muss Antwort
abwarten und darf vorher kein neues Kommando schicken. Die Statuscodes bestehen aus 3
Zahlen und einem erläuterndem Text. Es gibt 5 Ergebnisklassen, welche durch die 1. Stelle
codiert sind. 2. Und 3. Stelle erläutern den Code genauer. (1xx für vorläufige positive
Antwort, 2xx für endgültig positive Antwort, 3xx für positive Antwort als Zwischenergebnis,
4xx für temporärer Fehler, 5xx Fataler Fehler).
Auffinden eines Mail-Servers:
Bei der Bestimmung der IP-Adresse der Domain mit DNS bezeichnet der MX-Record mit
höchster Priorität den bevorzugten Mail-Server. Falls dieser nicht verfügbar ist, MX-Record
mit niederer Priorität. Falls kein MX-Record verfügbar ist, wird nach dem Host gesucht.
Sicherheitskonzepte:
Die SMTP-Server sollten nur Mails akzeptieren, die entweder aus dem eigenen Netz
kommen, oder an die eigene Domain gerichtet sind. Die Mails werden normalerweise im
Klartext übermittelt, ESMTP unterstützt verschlüsselte Verbindungen (SSL/TLS), sie werden
mit STARTTLS gestartet und arbeitet auf Port 465. Es dürfen nur zugelassene Nutzer den
Mail-Server benutzen, durch Challenge-and-Response Verfahren (ESMPT). Eine eindeutige
Zuordnung von Absender zu Nachricht ist möglich (ESMPT) und eine Nachricht kann nicht
unbemerkt verändert werden (ESMTP).
Aufbau einer Nachricht:
Der Aufbau ist Zeilenweise und höchstens 998 Zeichen pro Zeile und wird in Header und
Nachricht geteilt.
Headerfelder:
Die einzelnen Felder sind Date, From, Sender, Reply-To, To, CC, BCC, Message-ID, In-ReplyTo, References, Subject, Comments und Keywords. Es gibt mehrere Headerfelder für
weitergeleitete Mail, mit Resent-From, Resent-Date,… . Bei Received fügt jeder SMTP-Server
eine Received-Nachricht ein, mit Identität des Clients, Identität des Servers und der Zeit.
Somit ist der Transportweg nachvollziehbar. Im Return-Path steht die Adresse, die bei
Problemen bei der Zustellung kontaktiert werden soll und wird meistens vom MailProgramm gesetzt.
Multipurpose Internet Mail Extensions (MIME):
Das Problem bei SMTP ist, dass es nur 7-Bit-Zeichensatz US-ASCII unterstützt. Damit sind
Texte mit Umlauten, Bilder und Videos nicht direkt übertragbar. Die Lösung ist das
Umcodieren der Nachricht in 7-Bit US-ASCII -> MIME
MIME-Header-Felder:
„content-type“ beschreibt, wie der Inhalt codiert ist. „content-transfer-encoding“
beschreibt, wie der Inhalt umcodiert wurde, damit er über SMTP übertragbar ist. „contensdescription“ ist der Text zur Beschreibung des Inhaltes. „content-ID“ ist die eindeutige ID für
den Inhalt.
MIME-Medientypen:
Top-level-Mediatype gibt an um was für einen Medientyp es sich handelt (Text, Audio,
Video,…) und Second-level-Mediatype spezifiziert den Medientyp näher (Codierungen).
MIME-Medientypen – Der Medientyp Multipart:
Dieser Medientyp hat 4 verschiedene Eigenschaften. Mixed bedeutet es sind unabhängige
Nachrichtenteile, welche in derselben Reihenfolge dargestellt werden sollen wie in der
Nachricht. Parallel sind ebenfalls unabhängige Nachrichtenteile, die aber parallel dargestellt
werden sollen. Alternative bedeutet, dass es alternative Versionen der gleichen Nachricht
gibt (Text in verschiedenen Sprachen), wobei nur eine Version dargestellt werden soll. Digest
bedeutet, dass jeder Teil eine komplette RFC 822 Mail ist.
MIME-Medientypen – Der Medientyp message:
Dieser Medientyp hat 3 verschiedene Eigenschaften. RFC822 bedeutet der Inhalt ist eine
vollständige RFC 822 Nachricht und wird zur Weiterleitung verwendet. Partial ist nur ein
Fragment einer Mail, dies ist notwendig, weil SMTP-Agenten i.d.R. Größe einer Mail
begrenzen. Die Paramater sind ID (eindeutiger Identifier), Number (Sequenznummer des
Teils) und Total (Gesamtzahl der Teile). Bei External-body enthält die Nachricht nur Pointer
auf Datei und die Datei kann nach Empfang der Nachricht heruntergeladen werden.
Codierung von MIME-Nahrichten:
Die möglichen Codierungen sind 7-bit, Quoted-Printable und Base64. 7-bit ist konform mit
SMTP und somit ist keine Umcodierung erforderlich. Quoted-Printable ist geeignet für Text,
der auch nicht US-ASCII-Zeichen enthält. Diese Zeichen werden repräsentiert durch „=“
gefolgt von 2 Hexadezimalzahlen. Base64 ist für die Codierung von Binärdaten.
Base64-Encodierung – Konvertierung 3 in 4 Byte: 3 Byte Binärdaten werden gruppiert zu 24
Bit, dann zu 4x6 Bit konvertiert und zu 4 Byte ergänzt. Daraufhin zu 4 7-Bit ASCII-Zeichen
umcodiert.
Zugriff des Adressaten auf die Mails:
Es gibt 3 verschiedene Zugriffsarten: POP, IMAP und HTTP. Bei POP werden die Mails auf
den lokalen Host geladen und dort verwaltet. Bei IMAP werden die Mails auf dem Server
verwaltet. Bei HTTP-basiertem Zugriff auf Mails, werden die Mails auf dem Server
interpretiert und eine Internetseite zum Lesen der Mails.
8.2
Post Office Protocoll (POP)
POP ist ein Protokoll zum Auflisten, Abholen und Löschen von Mails auf einem Server. Es
werden die Ports 110 (unverschlüsselt) und 995 (verschlüsselt) verwendet. Es gibt 3 Phasen
einer POP-Session, die Autorisierung, Übertragung und UPDATE. Bei der Autorisierung
sendet der Client Username und Passwort. Dadurch besteht bei unverschlüsselten
Verbindungen eine Sicherheitslücke. Bei Übertragung fordert der Client Auflistung,
Übertragung und Löschungen von Mails an. Diese Phase wird mit QUIT beendet. Bei UPDATE
aktualisiert der Server die Mailbox, wird jedoch nur bei Abschluss der Übertragung mit QUIT
ausgeführt.
Wichtige POP3 Befehle:
USER (Benutzername), PASS (Passwort), STAT (Anzahl und Gesamtgröße der Mails), LIST
(Auflisten der Mails), RETR (Übertragung anfordern), DELE (Mail für Löschung markieren),
NOOP (keine Operation), RSET (Delete rückgängig machen) und QUIT (Transaktion beenden,
Update Mailbox und TCP-Verbindung schließen).
8.3
Internet Message Access Protocol (IMAP)
IMAP stellt Zugriff auf Mailboxen bereit und die Mails bleiben in der Regel auf dem Server.
Der User hat umfangreiche Verwaltungsfunktionen, wie z.B. mehrere Mailboxen, mehrere
Ordner mit unterschiedlichen Zugriffsrechten, Benachrichtigungsdienste). Die Ports sind 143
(unverschlüsselt) und 993 (verschlüsselt).
IMAP – Mail-Attribute:
Die Mails können mit Attributen versehen werden. Unique Identifier, Message Sequence
Number, Flags, Datum und Ziel des Nachrichtenempfangs und die Größe der Nachricht.
Client-Befehle:
In jedem Zustand sind folgende Befehle möglich, CAPABILITY dient zur Abfrage der vom
Server unterstützten Funktionen. NOOP bedeutet keine Operation und LOGOUT bedeutet
Verbindungsende. Wenn der Zustand nicht authentifiziert ist, sind folgende Befehle möglich,
STARTTLS startet TLS, AUTHENTICATE fordert ein spezielles Authentisierungsverfahren an
und LOGIN Username und Passwort in Klartext. Wenn der Zustand authentifiziert ist, sind
folgende Befehle möglich, SELECT dient für den Auswahl der Mailbox mit Read-Write-Zugriff,
EXAMINE dient zur Auswahl der Mailbox mit readonly-Zugriff, CREATE zur Erzeugung einer
Mailbox, DELETE dient zum Löschen einer Mailbox, RENAME dient zur Änderung des
Mailboxnamen, SUBSCRIBE zum Abonnieren eines Ordners, UNSUBSCRIBE zum Abbestellen
eines Abonnement, LIST listet Namen von verfügbaren Mailboxen auf, LSUB listet Namen
von abonnierten Mailboxen auf, STATUS ist der Status einer Mailbox und APPEND fügt eine
Nachricht an eine Mailbox an. Beim Zustand Mailbox ausgewählt gibt es folgende Befehle,
CLOSE zum Schließen der Mailbox, bei EXPUNGE werden alle gekennzeichneten Mails
gelöscht, bei SEARCH wird nach Mails gesucht, FETCH liefert die spezifizierten Daten einer
Mail, STORE dient zum Ändern von Attributen einer Mail und COPY kopiert Mails in
spezifizierten Ordner. Frage und Antwort haben immer dieselbe Ziffer.
Aufbau der Nachrichten:
Der Client Befehl hat TAG als Präfix, dies ist ein kurzer Alphanummerischer String, der für
jeden Befehl anders ist mit der zugehörigen Antwort. Der Server antwortet auf die ClientBefehle und sendet ohne Anfrage des Client Daten. Die Antwort des Servers endet mit TAG
des zugehörigen Client-Befehls und OK für erfolgreiche Ausführung, NO wenn der Befehl
zurückgewiesen wird und BAD bei einem Syntaxfehler.
Vergleich IMAP – POP 3:
Protokoll
TCP Port (unverschlüsselt)
TCP Port (verschlüsselt)
Speicherung der Mails
Bearbeitung der Mails
Mehrere Mailboxen
Teilweise Laden von Mails
Verwendung mehrere
Clientrechner
POP3
110
995
User PC
Offline
Nein
Nein
Problematisch
IMAP
143
993
Server
Online
Ja
Ja
Voll unterstützt
Web-Mailer:
Der Zugriff auf die Mailbox erfolgt über eine Internetseite, die Übertragung der Mails mit
HTTP und die Darstellung der Mails als Web-Seite. Web-Mailer hat die gleichen Funktionen
wie E-Mail-Programme und es ist eine Authentifizierung über Passwort und Verschlüsselung
möglich. Die Vorteile sind, dass kein E-Mail-Programm und keine Konfigurationen
erforderlich sind. Die Nachteile sind, kein Arbeiten Offline möglich und es ist ineffizient, da
es einen vergleichsweisen großen Overhead gibt.
8.4
Spam
Was ist Spam:
Bezeichnung für unerwünschte E-Mail (Massenmails).
Versenden von SPAM: Mailprogramm versendet Mail an einen SMTP-Relay-Server. In der
Regel ist es eine Mail mit vielen Adressaten, da dies Ressourcen spart, die Verteilung
übernimmt der Server und die Kosten trägt hauptsächlich der Betreiber des Servers. Es
werden oft fremde Rechner verwendet um die Mails zu Versenden. Die Adressen werden oft
automatisch aus Foren und Internetseite ermittelt.
Gegenmaßnahmen:
Der Server darf nur Mails an Nutzer des eigenen Netzes annehmen. Vermeiden, dass
Adresse in die Hände von Spam-Versendern, E-Mail Adresse im Internet manipulieren. Es
gibt eine Schwarze Liste, dies ist eine Datenbank in der Mail-Versender gespeichert sind und
welche von Mailservern abgefragt werden kann. Die Spamfilter suchen nach Ausdrücken,
Begriffen oder Adressen, jedoch ist dabei eine Fehlzuordnung unvermeidlich. Spamfilter sind
rechtlich problematisch, wenn Nutzer nicht zugestimmt hat.
Rechtliche Behandlung von SPAM:
Bei Haftungsrecht gilt die gleiche Rechtslage wie bei Telefon/Fax-Werbung. Das Gesetz
gegen unlauteren Wettbewerb sagt, dass die Zusendung unerwünschter Werbemails
wettbewerbswidrig ist. Werbemails sind nur bei Zustimmung erlaubt. Beim Strafrecht ist die
absichtliche Verbreitung als Computersabotage strafbar (Viren, Trojaner)
9.
File Transfer Protokoll (FTP)
Ein Programm zur zuverlässigen Übertragung von Dateien. Ein Client-Server-Protokoll zum
Filetransfer, Erstellen und Löschen von Verzeichnissen und Auflistung von
Verzeichnisinhalten. Es ist eine Authentifizierung erforderlich, Username/Passwort wird im
Klartext übertragen.
Ablauf einer FTP-Session:
Client baut eine Verbindung zum Server auf, mit open öffnet er die Verbindung und startet
Login-Session, user identifiziert den Nutzer und pass authentifiziert den Nutzer. Auswahl und
Listing des Directory auf dem Server durch cd (change directory) und dir oder ls zum Listen
des Verzeichnisinhalts. Die Kommandos zum Starten des File-Transfers sind get (File vom
Server zum Client), mget (mehrere Files vom Server zum Client), put (File vom Client zum
Server), mput (mehrere Files vom Client zum Server). Es gibt 2 Modi, aktives und passives
FTP. Beim aktiven FTP öffnet der Client den Port, teilt die Portnummer dem Server mit und
Server öffnet TCP-Verbindung zum Client für Datentransfer. Beim passiven FTP sendet der
Client PASV-Kommando an Server, Server öffnet Port und sendet Portnummer an Client und
Client öffnet TCP-Verbindung für Datentransfer. Das Schließen der Verbindung mit QUIT
(schließt Verbindung) und close (schließt Verbindung, FTP-Client wird nicht beendet).
Statuscodes bei Antworten des Servers: 1xx (vorläufig positiv), 2xx (endgültig positiv), 3xx
(Zwischenergebnis), 4xx (vorläufig negativ) und 5xx (endgültig negativ).
10. Multimedia im Internet
10.1 Transportschichtprotokolle
Da Multimedia Echtzeitdaten beinhaltet, sind größere Verzögerungszeiten nicht zulässig. TCP
ist ungeeignet wegen Sendewiederholungen und Congestion Control. UDP alleine besitzt
keine ausreichende Sicherung der Daten, Paketverluste sind nicht erkennbar und
Paketvertauschungen nicht korrigierbar. Aus diesem Grund ist ein Transportprotokoll für
Echtzeitdaten erforderlich.
10.1.1 Real-Time Transport Protocol (RTP)
Die Echtzeitstempelung dient zur Taktrückgewinnung und Synchronisierung
unterschiedlicher Quellen. Dient zur Erkennung von Paketverlusten, Paketüberholungen,
Paketverdoppelungen es gibt keine Sendewiederholungen. Es kann der Sender des
Datenstroms identifiziert werden. Das Protokoll kommt beim Transport von Sprach- und
Videodaten im Internet und wird zusammen mit RCTP verwendet.
RTP-Dateneinheit – Bedeutung der Felder:
V steht für Version, P für padding (erforderlich für Verschlüsselung), X für Extension, CC für
die Anzahl der Contributing Source Identifier, M für Marker (Sprachpausenunterdrückung),
PT für Payload Type (Datenformat der Nutzdaten), Sequence Number zur Erkennung von
Paketverlusten, Timestamp für den Abtastzeitpunkt des ersten Nutzdatenbytes (bei Audio
pro Abtastwert um 1 erhöht, bei Video haben Daten eines Bildes gleichen Timestamp),
Synchronising Source Identifier SSRC identifiziert den Sender der RTP Daten
(Unterscheidung mehrere Datenströme) und Contributing Source Identifier listet alle am
RTP-Strom beteiligten Quellen auf, wird aber nur bei Einsatz eines Mixers benötigt.
10.1.2 Real Time Control Protocol (RTCP)
Funktionen des RCTP:
Die Rückkopplung über Qualität der Verbindung dient zum Steuern adaptiver Codecs und
Vermeidung von Überlast. Die Senderate wird an die Anzahl der Teilnehmer angepasst und
die Zusatzdaten werden übermittelt. Es gibt pro RTP-Sitzung eine bidirektionale RTCPVerbindung. Die RTP-Ports sind immer geradzahlig, die RTCP-Ports immer RTP-Port + 1.
RTCP-Dateneinheit – Sender Info:
NTP Timestamp ist die Uhrzeit, wann SR verschickt wurde. RTP Timestamp ist die Uhrzeit,
wann RTP-Paket verschickt wurde. Senders Packet Count ist die Zahl der RTP-Pakete, die seit
Beginn der Session verschickt wurden. Senders Octet Count ist die Zahl der RTPNutzdatenbytes seit Beginn der Session.
10.2 Qualitiy of Service im Internet
10.2.1 Anforderungen an die Echtzeitübertragung
Es gibt mehrere Ursachen für eine Verzögerung der Pakete, die Codierung und Decodierung
der Daten, die Signallaufzeit, die Paketbildung und Warteschlangen, Die Verzögerungszeit ist
bei Warteschlangen variabel (Jitter). Jitter muss durch Puffer ausgeglichen werden.
Verzögerungen bis 150ms sind kaum wahrnehmbar, 250ms – 400ms mit Qualitätsverlust.
Konsequenzen zu höher Verzögerungszeiten:
Es kann zu einem Sprecherecho kommen, der Sprecher hört seine Stimme zeitverzögert. Es
kann zu einem Hörerecho kommen, man hört den Sprecher und dessen Echo. Es kann zu
einer Störung von Rede und Gegenrede bei sehr hoher Verzögerungszeit und zum Abbruch
der Verbindung einer Faxübertragung.
Anforderungen an die Echtzeitübertragung – Zuverlässigkeit der Übertragung:
Die Ursachen für Datenverluste sind Bitfehler durch Störungen bei der Übertragung und
Paketverlsute durch Überlauf von Wartespeichern. Paketverlust ist bis zu 3,5% tolerierbar.
Verschleierung der Fehler im Empfänger ist möglich (error concealment). Es gibt jedoch bei
hoher Fehler-/Verlustrate Verschlechterung der Video- und Audioqualität.
Realisierung von QOS im Internet:
Es gib 4 verschiedene Arten. Integrated Service (IntServ), Differentiated Service,
Multiprotokol Label Switching (MPLS) und Überdimensionierung der Netze. Bei Integrated
Service werden Ressourcen in Netzknoten reserviert. (RSVP Protokoll), bei Differentiated
Service wird zwischen unterschiedlichen Verkehrsarten unterschieden, durch
Prioritätsbildung in den Routern. Beim Multiprotokoll Label Switching werden IPVerbindungen identifiziert (Laber-2 – Forwarding). Bei der Überdimensionierung der Netze
wird die Bandbreite gesteigert. Durch geringe Auslastung des Netzes gibt es geringe
Wartezeiten, daraus folgen niedrige Verzögerungszeiten bei zeitkritischen Daten. Diese
Methode ist jedoch ökonomisch problematisch.
10.2.2 Differentiated Services (DiffServ)
Das Prinzip besteht darin, dass es unterschiedliche Bearbeitungsklassen für Pakete gibt. Es
ist jedoch nur relative Qualitiy of Service möglich. Die Klassen werden durch den Differented
Service Code Point gekennzeichnet. Es gibt 3 Hauptklassen, die Expedited Forwarding
(101110), Assured Forwarding mit 12 Prioritätsklassen (Drop Precedence und Bandbreite),
Best Effort (000000) und Network Control Traffic.
Differentiated Service (DiffServ):
Eine Festlegung von Vereinbarungen zwischen Betreiber und Nutzer für jeden Codepoint.
Der Edge Router am Netzeingang kontrolliert die vom Host gesetzten DSCP und korrigierte
diese ggf., weitere Aufgaben sind die Verkehrsmessung, Shaping des Verkehrs (Spitzen
rausnehmen -> keine Spitzen in der Datenrate) und Policing.
10.2.3 Resource Reservation Protocol (RSVP)
Ein Protokoll zur Reservierung von Ressourcen in IP-Netzen, welche nur unidirektional
reserviert werden. Die Reservierung legt den Weg der Pakete durch das Netz fest. Es sind
auch Punkt-zu-Punkt Verbindungen möglich und es wird eine virtuelle Verbindung etabliert.
RSVP Nachrichten:
Path ist der Verbindungsaufbau-Wunsch und enthält die Senderadresse, Liste der Adresse
aller besuchten Router, die Zieladresse und den QoS-Paramater. Legt auch den Weg zum Ziel
fest, die Route ist durch das Routingprotokoll des Netzes bestimmt und alle nachfolgenden
Pakete nutzen diese Route (bis zum nächsten Path) und er informiert Zielrechner über
geforderte QoS. Resv ist die Reservierungsnachricht und nutzt die gleiche Route wie Path.
Enthält die Zieladresse, Adresse der Router und den QoS-Parameter. Jeder Router der
Verbindung prüft, ob QoS-Anforderungen erfüllbar und reduziert ggf. geforderte QoSParameter und reserviert Ressourcen. PathErr bedeutet, dass es ein Fehler bei der
Bearbeitung der Path-Nachricht gab. ResvErr bedeutet, dass es ein Fehler bei der RESVNachricht gab. PathTear wird von Quellrechner verschickt wenn es keine Antwort auf PathNachricht gibt (Time-Out). ResvTear wird von Quellrechner verschickt wenn keine Antwort
(ResvConf) auf Path-Nachricht. ResConf bestätigt eine Resv-Nachricht (optional).
RSVP-Funktionsmodule:
Es gibt eine Zulassungskontrolle, ob die Ressourcen verfügbar sind. Es gibt eine PolicyKontrolle, ob der Benutzer berechtigt ist die Ressourcen zu reservieren. Es gibt einen PaketKlassifizierer, welcher regelt zu welcher QoS-Klasse ein Paket gehört. Der Paket-Scheduler
versendet Pakete einer virtuellen Verbindung.
Bewertung des RSVP:
Es gibt garantierte Bandbreite nur, wenn alle Netzknoten RSVP unterstützen. Bei kurzen
Flows gibt es einen enormen Overhead. Eine enorme Anzahl an Flows in großen Routern ist
kaum handhabbar. Es ist eine Verkehrsaggregation möglich zur Zusammenfassung
gleichartiger Verkehre. Die ist jedoch nur in kleinen Netzen möglich.
10.2.4 Multiprotocol Label Switching (MPLS)
Es wird jedem Paket ein Label vorangestellt, welches eine virtuelle Verbindung realisiert. Die
virtuelle Verbindung wird i.d.R. durch Routing Protokoll des Layer-3 aufgebaut. Die Pakete
werden anhand des Labels weitergeleitet (Switching Layer 2 und Hardwarebasiert).
10.3 Audio Streaming
Download einer Audiodatei durch HTTP GET, der Server sendet Audiofile, wird auf der
Festplatte gespeichert und dann mit einem Audioplayer abgespielt. Der Nachteil sind die
langen Wartezeiten bevor Datei geladen ist. Die Lösung ist Audio-Streaming, hierbei wird die
Datei während des Ladevorgangs abgespielt.
Prinzip des Audio Streaming:
Die Daten werden über UDP/RTP transportiert. Der Mediaserver wird mittels Real Time
Streaming Protokoll (RTSP) gesteuert. RSTP ist ein textbasiertes Protokoll und kann über TCP
und UDP transportiert werden. Die RSTP Anweisungen sind DESCRIBE (Abfrage von
Medienparametern), SETUP (logischer Kanal), PLAY (Start der Übertragung zum Client),
RECORD (Start der Übertragung zum Server), PAUSE (temporäre Unterbrechung) und
TEARDOWN (logischer Kanal abbauen)
10.4 Das Session Initiation Protocol (SIP)
Dient der Etablierung von Verbindungen und gilt als einfacher als die ITU-Protokolle und ist
ein textbasiertes Protokoll. Das unterstützende Protokoll ist Session Description Protocol
(SDP). SDP beschreibt die verwendeten Medien. SIP kann über UDP oder evtl. auch über TCP
transportiert werden.
10.4.1 Aufbau und Verwendung der SIP-Nachrichten
SIP-Transaktionen:
Besteht aus SIP-Request und SIP-Response. Knoten, der Transaktionen mit Anfrage einleitet
heißt „Client“ oder „User Agent Client“ (UAC) und der Knoten der Anfrage beantwortet heißt
„Server“ oder „User Agent Server“ (UAS).
SIP-Nachrichten – Statusinformationen (Auswahl):
1xx Informational, 2xx Sucess, 3xx Redirection, 4xx Client Error, 5xx Server Error und 6xx
Global Failure.
Aufbau einer SIP-Nachricht – Start Line:
Die Elemente der Start-Line eines Request sind Method (Zweck der Anfrage), Request-URI
(Kontaktadresse des Ziel-SIP-Netzelements) und SIP-Version. Die Elemente der Start-Line
eines Responses sind SIP-Version, Status Code und Reason Phrase.
Aufbau einer SIP-Nachricht – Message Header:
From (Namen des Initiators der Nachricht), To (Adresse des Zielteilnehmers), Call-ID (alles
Anfragen und Antworten eines Dialogs haben gleiche Call-ID), CSeq (SIP-Methode, Zähler),
Max-Forwards (Anzahl der Hops, die SIP-Nachricht vollziehen darf), Contact (Temporäre SIP
URL des Senders), Content-Type (Datentyp des Message Body) und Content-Length (Länge
des Message Body).
Aufbau einer SIP-Nachricht – Message Body: SDP-Parameter:
v ist die Version des RTP-Protokolls, o ist die Session einleitende Person mit Version der
Session, s ist der Session-Name, c sind Informationen zum Teilnehmer, t ist Start- und
Endzeit einer Session, m sind Media Descriptions und a ist die Beschreibung der in der
Formatliste angegebenen Codecs.
10.4.2 Netzelemente
Registar Server:
REGISTER-Nachricht enthält ständige SIP URI (im „To“-Feld), Temporäre SIP URI (im
„Contact“-Feld) und Gültigkeitsdauer der Registrierung (im „Expires“-Feld). Die Adresse des
Registar Servers muss in UA konfiguriert werden und es eine Registrierung mehrerer
Temporärer URI für eine ständige URI möglich.
SIP-Netzelemente – Proxy Server:
Die Aufgabe von ihm ist das Routing von SIP-Nachrichten. Es gibt den Inbound Proxy Server,
dieser vermittelt innerhalb der eigenen SIP-Infrastruktur, erfragt temporärer URI vom
Location Server und ist für die Weiterleitung an Zielknoten zuständig. Es gibt auch den
Outbound Proxy Server, dieser vermittelt in fremde SIP-Domains, erfragt die Zieldomain per
DNS und ist für die Weiterleitung an Zieldomain zuständig.
Redirect Server:
Dieser reagiert auf Anfragen mit dem Status „Redirection“ (3xx). Die Redirektion-Nachricht
beinhaltet die neuen Kontaktdaten, aber Redirekt Server leitet Anfrage nicht weiter. Er
realisiert z.B. das Dienstmerkmal Rufumleitung und ist z.B. im Proxy oder im User Agent
realisiert.
Location Server:
Stellt den Zusammenhang zwischen temporärer und ständiger SIP URL her, speichert
Informationen aus Registrierung und stellt SIP Proxy und Redirect Server Informationen zur
Verfügung. Er ist entweder Bestandteil des Proxy oder Abfrage über Netz (LDAP).
Gateways:
Es gibt 3 Gateways, das Signalling-Gateway (SGW), das Media-Gateway (MGW) und das
Decomposed-Gateway (MGW + SGW + Media-Gateway Controller(MGC)). Das SignallingGateway dient zur Umsetzung zwischen zwei Signalisierungsprotokollen, z.B. SIPNachrichten in DSS1-Nachrichten und das Media Gateway dient zur Umsetzung zwischen
Protokollen für die Nutzdatenübertragung, z.B. VoIP-RTP-Daten und 64 kBit/s ISDN B-Kanal.
Das Media-Gateway wird von dem Signalling-Gateway gesteuert. Beim DecomposedGateway ändert das Signalling-Gateway nur den Transport der Signalisierungsnachrichten. Es
interpretiert die Signalisierung durch MGC und das MGC steuert die Media-Gateways.
Application Server:
Dient zur Bereitstellung von Diensten im Netz (wie intelligentes Netz bei konventionellem
Telefonnetz). Beispiele hierfür sind Televoting, Click-to-Dail oder E-Mail bei Anruf in
Abwesenheit.
Application Server – Funktionen:
Er dient als SIP-Schnittstelle zum NGN (Next Generation Network?), zur Vermittlung von SIPSessions, zur Steuerung von Media-Servern, als API für die Dienstentwicklung und wird zur
Initiierung und Terminierung von SIP- und RTP- Sessions verwendet.
10.4.3 Routing von SIP-Nachrichten
Die SIP-Anfragen werden anhand der Request URI geroutet, Peer to Peer zum Zielknoten,
vom Outbound Proxy Server an Ziel Domain und vom Inbound Proxy Server an temporäre
URI des Zielknotens. Bei Loose Routing wird entsprechend vorgegebener Route geroutet. Die
SIP-Statusinformationen nehmen immer den gleichen Weg wie die Anfragen (Infrastruktur
mit einbeziehen, Verbindungsauf- und abbau über gleichen Server).
Nutzung des VIA-Headers:
Der VIA-Header enthält den Pfad der SIP-Nachrichten. Die SIP-Anfragen werden an RequestUEI in Start-Line geroutet, i.d.R. über Proxy. Jeder Proxy fügt oberhalb des VIA-Feldes ein
eigenes VIA-Feld ein. Die SIP-Statusinformation löscht obersten VIA-Header (mit der eigenen
Adresse), routet an IP-Adresse im obersten VIA-Feld oder terminiert die Statusinformation.
Die SIP-Statusinformation nimmt immer den gleichen Weg wie die Anfrage. Auf- und Abbau
über gleichen Server, da sonst der Server nicht mitbekommt wann abgebaut wird (Probleme
bei Minutentarife).
Routing zwischen unterschiedlichen Domains:
Der Outbound Proxy Server (direkter Weg) ist der zentrale Asugangsserver und ist für
Routing von SIP-Nachrichten in andere Domains zuständig, i.d.R. mit DNS. Der Inbound Proxy
Server ist der zentrale Eingangsserver und ist für Routing von SIP-Nachrichten zum
Endknoten in eigener Domain zuständig. Er nutzt den Location Server. Die Nutzdaten (RTP)
werden nicht über Proxy geführt, es wird nur INVITE (und zugehöriges OK) über den Inbound
und Outbound Proxy Server geführt. Ggf. erzwingen die Proxy Server Loose Routing, dasnn
muss die gesamte Signalisierung der Session über Proxy gehen.
Peer-to-Peer SIP:
SIP ohne Infrastruktur (ohne Proxy-Server). Das Problem ist das Auffinden des temporären
SIP-URI. Die Abfrage der temporären SIP-URI in einem Peer-to-Peer Overlay Netzwerk:
Auffinden der Nutzer wird mit Hilfe von SIP durchgeführt. Es wird mit INVITE angefragt
(geflutet) und es kommt eine Antwort mit Moves Temporarily (enthält temporäre SIP-URI).
Dezentrale Kontaktadressenverwaltung durch SIP-Knoten.
11. LDAP (Lightweight Directory Access Protocol)
11.1 Verzeichnisdienste
Eigenschaften:
Verzeichnisdienste sind optimiert für lesenden Zugriff und haben eine baumartige
Hierarchie. Eine Verteilung auf unterschiedliche Rechner ist möglich und ist gut Skalierbar. Es
gibt keine Normalisierung der Daten (Daten nicht mehrfach gespeichert) und die
Administration von Teilen ist delegierbar (dezentral, jeder verwaltet, dass für das er
verantwortlich ist). Die Suchoperation ist auf Teilbäume beschränkbar. Verzeichnisdienste
sind aber keine Datenbanken mit Transaktionen (Operation wird ganz oder gar nicht
ausgeführt) und Normalisierung der Daten. Verzeichnisdienste sind kein Dateisystem (keine
Speicherung großer Dateien) und es ist anwendbar wenn es viele Änderungen der Daten
gibt. Beispiel ist ein Onlineshop, der Katalog ist als Verzeichnisdienst realisiert und die
Bestellungen als relationale Datenbank.
Eigenschaften von LDAP:
Es ist ein einfache Protokoll zur Abfrage von Verzeichnisdiensten und erlaubt eine verteilte
Architektur. LDAP unterstützt Authentifizierung und Verschlüsselung. Da es ein offener
Standard ist unterstützt es Standardschemas (welche Objekte dürfen rein und welche
Attribute haben sie) und selbstdefinierte Schemas. Durch Extensions sind zusätzliche
Operationen definierbar und durch Controls können die Operationen modifziert werden.
Historie:
Das X. 500 Directory Access Protocol (DAP) ist standardisiert von ITU und baut auf dem ISO
7-Schichtmodell auf. Es gilt als sehr komplex. Als einfacher gilt LDAP, da es nur eine
Teilmenge von DAP realisiert. Es baut auf TCP auf und ist in RFCs spezifiziert.
11.2 Das X.500-Datenmodell
Es ist ein hierarchisches Datenmodell, bei dem die Objekte als Namen identifizierbar sind.
Die Einträge unterhalb eines Elternknoten haben eindeutigen Namen (Realive Distinguished
Name (nur auf einer Ebene)). Hierbei ist prinzipiell jedes eindeutige Attribut verwendbar, es
wird jedoch meistens cn (common name) benutzt. Jedes Objekt bzw. jeder
Verzeichniseintrag ist durch einen eindeutigen Namen identifizierbar (Distinguished Name),
dieser ist im gesamten Verzeichnis eindeutig und setzt sich aus allen RDN von der Wurzel an
zusammen.
Objekte / Verzeichniseinträge: Sie sind gekennzeichnet durch einen Satz Eigenschaften,
Eigenschaften heißen Attribute und eine besonderes Attribut ist der Name des Objekts. Die
einzelnen Objekte werden zu Objektklassen zusammengefasst, welche ihre Attribute
vererben können. Es sind standardisierte Objektklassen verfügbar, z.B. Objektklasse
inetOrgPerson, Superklasse Person und Instanz, Verzeichniseintrag, Objekt Frank Fechter.
Attribute:
Sie bestehen aus dem Namen des Attributs und einer Liste von Werten. Attributtyp besteht
aus dem Namen, dem Object Identifier und es gibt Regeln für Gleichheit (EQUALITY), Treffer
von Teilzeichenketten (SUBSTR), Lexikalische bzw. numerische Anordnung (ORDERSTRING),
Syntaxbeschreibung und Quailifier (SINGLE-VALUE, MULTIPLE-VALUE, LENGTH). Viele
Attributtypen sind standardisiert. Attribute können optional oder mandatory sein.
Benennung der Objekte:
Das Verzeichnis ist baumartig organisiert, Objekte die keine weiteren enthalten heißen
Blätter oder Blattobjekte. Einzelne Teilbäume können delegiert werden. Relative
Distinguished Name müssen unterhalb eines Elternobjekts verschieden sein und kann aus
einem oder mehreren Objekten bestehen, oft common name evtl. mit einem weiteren
Attribut. Durch das Zusammenfügen aller Einträge von der von der Wurzel an, bekommt
man den Distinguished Name als kommaseparierte Liste.
Objektklassen:
Es gibt verschiedene Objektklassen abstrakt, strukturell und auxilliär. Abstrakt dient der
Ableitung weiterer Klassen und besitzt keine Instanzen (Bsp. top). Strukturell ist der
Normalfall und Objekte dürfen instanziiert werden. Auxilliär ist die Zusammenfassung von
Attributen. Die Entitys dürfen nicht ausschließlich hieraus instanziiert werden.
Vererbung:
Die Kind-Klasse erbt Attributdefinitionen der Eltern-Klasse, es können dann noch zusätzliche
Attribute hinzugefügt werden. Es gibt zwar nur die einfache Vererbung, aber durch
Polymorphie (Vielgestaltigkeit) kann ein Objekt zu mehreren Klassen gehören.
11.3 Funktionales Modell
Der Ablauf einer LDAP-Sitzung sieht wie folgt aus. Als erstes meldet sich der Client beim
Server an (Binding), durch TCP-Verbindung aufbauen, Informationen über unterstütze
Features, Authentifzierung und Aushandeln der Verschlüsselung. Als nächstes werden
Nachrichten (Messages) ausgetauscht und zum Schluss die Sitzung wieder beendet
(unbinding).
Messages:
Bind dient zur Initialisierung einer Session und unbind zur Beendigung einer Session. Search
dient zur Suche im Verzeichnis. Modify dient zum Ändern der Attribute eines Eintrages, add
zum Hinzufügen eines Eintrags und delete zum Löschen eines Eintrags. modify RDN ändert
den RDN, compare testet, ob Eintrag ein bestehendes Attribut oder Wert hat und abandon
bricht die Anfrage ab.
Partitionierung:
Das Verzeichnis wird auf mehrere Rechner verteilt. Naming Context ist der Teilbaum der auf
einem Rechner verwaltet wird. Verweise durch Referrals und Continuations. Refferal ist eine
Liste von URLs auf die verwiesen wird. Continuation ist eine Liste von URLs bei denen die
Suche fortgesetzt werden soll. Die Weiterverfolgung erfolgt durch Client, alternativ durch
Server, jedoch muss hier ein spezielles Protokoll verwendet werden und es kann zu
Problemen bei der Authentifizierung kommen (LDAP).
Suchfilter:
Die Information kann man mittels Suchfunktionen auslesen. Vergleichen von Attributen
durch „=“. Die Gleichheit mit Attributdefinition festgelegt durch Matching Rules. Standard
Matching Rules sind Berücksichtigung der Groß- und Kleinschreibung (caseExactMatch),
Berücksichtigung von Leerzeichen und Berücksichtigung von speziellen Zeichen
(telephoneNumberMatch). Suche nach Attributen die größer oder kleiner sind mit „=<“ oder
„>=“. Die Verwendung von Wildcards ist erlaubt (cn=F*). Und-Verknüpfung / OderVerknüpfung und Negierung einfacher Filter möglich durch „(&(cn=F*)!(I=W*)) oder durch
(|(cn=F*)(I=B*)). Es gibt 3 Typen von Suchbereichen, scope = base (Suche nach einem
einzelnen Objekt), scope = one (Objekte unterhalb des Basisobjekts) und scope = sub
(gesamten subtree absuchen).
11.4 Lesen aus LDAP-Verzeicnissen
11.5 Schemabeschreibungen und LDIF
Schema:
Enthält Information über Struktur des Verzeichnisses, Definition der verwendeten
Attributtypen und Objektklassen. Die Schemabeschreibung ist ab LDAP Version 3 abfragbar.
Es sind viele Schemata verfügbar, inetorgperson.schema, nis.schema (Netzwerkverwaltung)
und core.schema. Die einzelnen Schemata bauen aufeinander auf.
LDAP Data Interchange Format (LDIF):
Ein Format zum Austausch zwischen verschiedenen Server. Dient zur Beschreibung von
Verzeichnisdaten und hat ein menschenlesbares Format. Die Daten sind leicht änderbar und
die Operationen sind in LDAP beschreibbar. Der Aufbau einer Datei sieht wie folgt aus,
Versionsnummer, Operationen (add ,delete,…) und Datensätze.
Regeln für Datensätz in LDIF:
Der Datensatz besteht aus Distinguished Name und Attribute. Der Attributtyp und Wert
sind durch „:“ getrennt. Jedes Attribut steht in einer neuen Zeile, die Zeile muss am Anfang
beginnen und Kommentare werden mit „#“ gekennzeichnet. Datensätze werden durch
Leerzeichen getrennt und das Zeichenformat ist UTF-8.
Beschreibung von Änderungen am Verzeichnis mit LDIF:
Der grundsätzliche Aufbau ist Domainname, Changetype, Änderung.
Herunterladen