1678 Verteilte Systeme Zusammenfassung - fernuni-hagen.de · Kurs 1678 – Verteilte Systeme...
Transcript of 1678 Verteilte Systeme Zusammenfassung - fernuni-hagen.de · Kurs 1678 – Verteilte Systeme...
Kurs 1678 ndash Verteilte SystemeZusammenfassung
1678 Verteilte Systeme Zusammenfassung
KE 1 Grundlagen Verteilter Systeme
1 Definition Verteiltes System Ein verteiltes System ist eine Ansammlung unabhaumlngiger Computer die den
Benutzer wie ein einzelnes kohaumlrentes System erscheinen Ein verteiltes System ist ein System in dem sich HW- od SW-Komponenten
auf vernetzten Computern befinden und nur uumlber den Austausch von Nachrichten kommunizieren und ihre Aktionen koordinieren Aus dieser Definition ergeben sich folgende Konsequenzen
o Nebenlaumlufigkeit der Programmausfuumlhrungo Keine globale Uhr -gt es gibt kein globales Konzept einer genauen Uhr
(da Kommunikation ausschlieszliglich uumlber das Senden von Nachrichten erfolgt)
o Unabhaumlngige Ausfaumllle -gt jede Komponente des Systems kann unabhaumlngig von den anderen ausfallen waumlhrend die anderen weiterhin funktionieren (und womoumlglich lange od uumlberhaupt nie etwas davon merken)
Ziel ist die gemeinsame Nutzung von Ressourcen (HW u SW)
2 Beispiele fuumlr Verteilte AnwendungenSysteme Banksysteme FlugReise-Buchungssysteme verteilte Datenbanken High Availability ndash Cluster
3 Vorteile Verteilter Systeme gegenuumlber Groszligrechnern Wirtschaftlichkeit Geschwindigkeit Verteiltheit - dadurch sind uU natuumlrlichere Problemloumlsungen moumlglich Zuverlaumlssigkeit durch Redundanz Skalierbarkeit
4 Nachteile von Verteilten Systemen Komplexere Software Kommunikationsprobleme sind moumlglich - dadurch schlechtere Performance
Verlust von Nachrichten Nur schwache Schutzvorkehrungen - Ambivalenz zwischen Sicherheit und
Einfachheit des Zugriffs auf Ressourcen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
5 Eigenschaften Verteilter Systeme Rechnertyp und der Kommunikationsarten dieser Rechner Interner Aufbau Konsistenz und einheitliche Arbeit mit dem Verteilten System Skalierbarkeit Ausfallsicherheit
6 Middleware Ein verteiltes System wird auch manchmal als Middleware bezeichnet Die
Middleware ist als Schicht zu sehen welchem dem Anwenderder Anwendung verbirgt dass es sich um ein auf mehreren Rechnern laufendes System handelt
7 Ziele eines Verteilten Systems Zugriff auf lokale und entfernte Ressourcen zu vereinfachen Verteilungstransparenz (dem BenutzerAnwendung soll das System wie ein
Einprozessorsystem vorkommen Ein System dass seine Verteiltheit vollstaumlndig vor dem Benutzer verbirgt und wie ein Einprozessorsystem erscheint heiszligt transparent da die Implementierung fuumlr den Benutzer durchsichtig - im Sinne von unsichtbar - ist)Arten von Transparenz
o Ortstransparenz ndash erlaubt den Zugriff auf die Ressourcen ohne dass man ihre PositionOrt kennt
o Fehlertransparenz ndash erlaubt das Verbergen von Fehlern sodass Benutzer ihre Aufgaben erledigen koumlnnen auch wenn HW- od SW-Komponenten ausgefallen sind
o Zugriffstransparenz ndash ermoumlglicht den Zugriff auf lokale und entfernte Ressourcen unter Verwendung identischer Operatoren
o Nebenlaumlufigkeitstransparenz ndash erlaubt dass mehrere Prozesse gleichzeitig mit denselben gemeinsam genutzten Ressourcen arbeiten ohne sich gegenseitig zu stoumlren
o Replikationstransparenz ndash erlaubt dass mehrere Instanzen von Ressourcen verwendet werden um die Zuverlaumlssigkeit und die Leistung zu verbessern ohne dass die Benutzer wissen dass Repliken verwendet werden
o Migrationstransparenz ndash erlaubt das Verschieben von Ressourcen und Clients innerhalb eines Systems (Name der Ressource bleibt gleich aber geringe Ausfallzeit)
o Relokationstransparenz ndash Verbirgt dass eine Ressource an einen anderen Ort verschoben werden kann waumlhrend sie benutzt wird (Name der Ressource bleibt gleich aber keine Ausfallzeit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Nicht im Bucho Leistungstransparenz ndash erlaubt dass das System neu konfiguriert
wird um die Leistung zu verbessern wenn die Last variierto Skalierungstransparenz ndash erlaubt dass sich das System und
Applikationen vergroumlszligern ohne dass die Systemstruktur oder die Applikationsalgorithmen geaumlndert werden muumlssen
Offenheit (ein offenes Verteiltes System bietet Dienste nach Standardregeln an) Ziele
o Spezifizierung der Dienste durch Schnittstellen (Interface Definition Language)
o Spezifizierung sollte Vollstaumlndig und Neutral sein Interoperabilitaumlt (Zusammenspiel von Komponenten
verschiedener Hersteller) Portabilitaumlt (Anwendung von einem Verteiltem System zum
anderen uumlbertragen ohne Aumlnderungen) Konfiguration verschiedener Komponenten Hinzufuumlgen von Komponenten Ersetzen von Komponenten Flexibilitaumlt (kein monolithischer Ansatz)
Skalierbarkeito Groumlszligeo Geografische Ausdehnungo Administrationo Skalierungsprobleme
Zentralisierte Daten (zB einzige DB) Zentralisierte Dienste (zB einziger Server) Zentralisierte Algorithmen (zB Routing (Dijkstra-Alg)) Loumlsung durch Verwendung von dezentralisierten Algorithmen
8 Dezentralisierte Algorithmen Kein Computer hat vollstaumlndige Informationen uumlber den Systemstatus Computer entscheiden nur aufgrund lokaler Information Der Ausfall eines Computers schaumldigt nicht den Algorithmus Es wird nicht implizit angenommen dass es eine globale Uhr gibt
9 SkalierungstechnikenMeistens handelt es sich um Leistungsprobleme die man mit Hilfe von Skalierung umgehen moumlchte
Verbergen der Latenzzeiten der Kommunikation
Application
Collective Layer
Connectivity Resource Layer
Fabric Layer
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikation Verteilung (zB DNS)
10 Klassen von Verteilten Systemen Cluster-Computer (Homogenitaumlt zB MS SQL Cluster)
o Hardware aus aumlhnlichen Rechnern oder Serverno Gleiches Betriebssystem
Grid-Computer (Heterogenitaumlt zB WWW)o Sehr unterschiedliche Hardware Software und Netzwerktechnik
11 Grid-Computer Architekturvorschlag Vier Schichtenmodell von Foster Fabric Layer (Strukturschicht) Schnittstellen zu lokalen Ressourcen eines
Standortes Connectivity Layer (Verbindungsschicht)Kommunikationsprotokolle zur
Unterstuumltzung von Grid-Transaktionen die die Verwendung mehrerer Ressourcen umfassen zB Daten zwischen Ressourcen austauschen
Resource Layer (Ressourcenschicht)Verwaltung einzelner Ressourcen zB Abruf von Konfigurationsinformationen einer Resource
Collective Layer (gemeinsame Schicht)Dienste zur Suche nach Ressourcen Zuweisung und Zeitplannung von Auftraumlgen
Application Layer (Anwendungsschicht)Anwendungen welche in virtuellen Organisationen laufen und die Grid-Umgebung nutzen
Connectivity Layer + Resource Layer = Grid- Middelware
12
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Eigenschaften von Transaktionen A tomic die Transaktion wird ganz oder gar nicht ausgefuumlhrt C onsistent keine Verletzung von Systeminvarianten zB Gelderhaltung bei
Bankuumlberweisung I solated parallele Transaktionen beeinflussen sich nicht D urable die Aumlnderungen nach einem erfolgreichem Abarbeiten (commit)
der Transaktion sind dauerhaft
13 Verteilte Pervasive Systeme engl pervasive ndash durchdringend um sich greifend ein verteiltes pervasives System ist Teil unserer Umgebung bestehend aus mobilen kleinen mit Funkverbindung ausgestatteten Geraumlten keine Administration Instabilitaumlt ua wegen Ortsaumlnderung 3 Anforderungen an pervasive Anwendungen
o Erfassung kontextueller Aumlnderung (Ortsaumlnderung)o Unterstuumltzung von Ad-hoc-Zusammensetzung (Veraumlnderung des
Anwendungsangebots abhaumlngig vom Ort)o Gemeinsame Nutzung von Informationen (auch Bereitstellung) als
Standard Beispiele
o Haus- Und Multimediasystemeo Informationssyteme im Gesundheitswesen zB BAN (Body Area
Network) o Sensornetze
14 Softwarearchitektur Definition Betrachtung der logischen Anordnung der
Softwarekomponenten Komponente
o Definition modulare Einheit mit wohldefinierten erforderlichen und bereitgestellten Schnittstellen welche in Ihrer Umgebung einsetzbar ist
Architekturstilo Komponenteno Art der Verbindung der Komponenteno Daten welche zwischen den Komponenten ausgetauscht werdeno wie die Komponenten zu einem System konfiguriert werden
Konnektoro Definition Mechanismus welcher die Kommunikation
Koordination oder Kooperation zwischen Komponenten vermittelt
Kurs 1678 ndash Verteilte SystemeZusammenfassung
15 Softwarearchitekturstile Geschichtete Architektur zB Netzwerkprotokollstapel Abfragen
werden nach unten weitergeleitet und Anworten nach oben Objektbasierte Architektur zB Client-Server-Architektur
Kommunikation der einzelnen ObjekteKomponenten uumlber RPC (Remote Procedure Call)
Datenzentrierte Architektur Prozesse kommunizieren uumlber Daten zB uumlber Dateien auf einem gemeinsamen Repository (engl Ablage Behaumllter)
Ereignisbasierte Architektur zB PublishSubscribe-Systeme Prozesse kommunizieren uumlber Ereignisse
16 Zentralisierte Systemarchitekturen Client-Server Modell
o RequestReply Verhalteno Server bietet Dienste an zB DNS (Domain Name System)
o Client fordert Dienste auf Server an zB will er wwwardde in IP umwandeln lassen und fordert hierzu den DNS-Dienst auf dem Server an
o Ablauf Client sendet Anfrage Server nimmt diese entgegen Server verarbeitet die Anfrage Server sendet Antwort Client empfaumlngt Antwort
o Idempotent Anfragen welche beliebig oft gesendet werden koumlnnen wie in unserem Beispiel
o Genau einmal-Semantiko Mindestens einmal-Semantik (= Idempotent)o Houmlchstens einmal-Semantiko CS ist oft als Schichtarchitektur
Benutzerschnittstellenebene (Darstellung der Anwendung) Verarbeitungsebene (Anwendung) Datenebene (zB DB)
Multitier-Architektureno Definition (tier) Stufe Ebeneo 2-Tier-Architekturen
Fat Clients (Darstellung+VerarbeitungDatenDatenbank) Thin Clients (DarstellungVerarbeitung+DatenDatenbank)
o 3-Tier-Architekturen Darstellungsrechner Anwendungsserver Datenbankserver
Kurs 1678 ndash Verteilte SystemeZusammenfassung
17 Dezentralisierte Systemarchitekturen (Peer-to-Peer Architekturen) Vertikale Verteilung
o Logisch unterschiedliche Komponenten auf unterschiedlichen Rechnern
Horizontale Verteilungo Aufteilung von Server und Clientso Client und Server physisch in funktional gleiche Teile zerlegt dh
Client und Server laufen auf einer Hardware aber arbeiten nur mit einer Teilmenge an Daten oder Dienste des gesamten Systems
Peer-to-Peer unterstuumltzt horizontale Verteilungo Anzahl der moumlglichen Kommunikationspaare bei n beteiligten Rechner
ist n(n-1)2o Atomisches P2P (Peer-to-Peer)
Keine zentrale Verwaltung des Netzes Bei Beitritt gibt es 2 Moumlglichkeiten
Broadcastanfrage an alle Clients um zu erfahren welche Dienst vorhanden sind
o Beispiel Datei- und Druckerfreigabe von Microsoft Verbindung zu bekanntem Host (aus Liste) und Erfragung
der Topologie und der Diensteo Benutzerzentriertes P2P
Einem Atomischen P2P wird ein fuumlr die Vermittlung von Benutzer egal vom welchem Rechner zustaumlndiger Server hinzugefuumlgt
Der Vermittlungsserver enthaumllt eine Liste von Benutzern und deren Dienste (Freigabe einer MP3 Datei)
Betritt ein Benutzer dieses P2P meldet er sich mit seinen Diensten am Vermittlungsserver an
o Datenzentriertes P2P Vermittlungsserver merkt sich wo Daten und Dienste liegen
sonst aumlhnlich wie bei benutzerzentrierten P2P Overlay-Netzwerk uumlberlagert LANMANWAN und bildet somit ein eigenes
Netzwerko Peers sind Knoten des Netzwerks welche durch Prozesse gebildet
werdeno Verbindungen sind die moumlglichen Kommunikationskanaumlle zwischen
den Peerso Strukturierteo Unstrukturiere
Strukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)o Konstruktion des Netzwerks durch deterministisches Verfahreno Verteilte Hash-Tabelle (Distributed Hash-Table DHT) jeder Knoten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
erhaumllt zufaumlllige Zahl aus dem Bezeichnerraumo Chord-System Anordnung der Knoten als logischer Ringo CAN (Content Adressable Network) d-dimensionales kartesisches
Koordinatensystem wird vollstaumlndig zwischen allen Koten auftgeteilt Unstrukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)
o Knotenbildung durch Zufallsalgorithmen Topologieverwaltung in Overlay-Nertzwerken
o Realisierung der Anordnung der Knoten im Raum Topologie durch eine Kombination aus strukturierten und unstrukturierten Peer-to-Peer Systemen in 2 Schichten
Superpeer-Konzepteo Superpeer enthalten Index (fuumlr Daten oder Dienste) oder fungieren als
Maklero Superpeers sind auch als Peer-to-Peer System angeordneto Regulaumlren Peer hat meistens eine festen Superpeer an welchen er
sich bindet
Superpeer Netzwerk
Regulaumlrer Peer
Superpeer
Kurs 1678 ndash Verteilte SystemeZusammenfassung
18 Hybridarchitekturen Kombination von Client-Server und dezentralisierter Architektur Beispiele
o Superpeero Edge-Server
Edge (engl Kante) zwischen Internet und Unternehmensnetzwerk oder ISP eines Endanwenders
Verbindung von Client zum Edge als Server Edge als Peer-to-Peer zu Internetdiensten verbunden
o Kollaborative Systeme Knoten tritt dem System an definierter Stelle bei danach
benutzt er ein dezentralisiertes Verfahren zur Zusammenarbeit mit anderen Knoten
BitTorrent-System Globales Verzeichnis von torrent Dateien (strukturiert) Laden der Daten von aktiven anderen Knoten
(unstrukturiert)
19 Fehlertoleranz Anforderungen an Verlaumlssliche Systeme (solch ein System ist
fehlertolerant)o Verfuumlgbarkeit
Wahrscheinlichkeit dass das System zu einer bestimmt Zeitpunkt korrekt arbeitet und seine Dienste bereitstellt
o Zuverlaumlssigkeit Mit hoher Wahrscheinlichkeit lange Zeit ohne Unterbrechung
arbeiten kanno Funktionssicherheit
Bezeichnet den Umstand dass es zu keiner Katastrophe kommt wenn das System zeitweise unkorrekt arbeitet
o Wartbarkeit Wie leicht kann ein ausgefallenes System repariert werden
Ein Fehler ist ein Teil eines Systemzustandes welcher zum Ausfall fuumlhren kann Ein Ausfall beinhaltet das teilweise oder komplette Versagen von Diensten welche es anbietet
Die Ursache eines Ausfalls wird als Stoumlrung bezeichneto Voruumlbergehende Stoumlrungo Wiederkehrende Stoumlrungo Permanente Stoumlrung
Kontrolle von Stoumlrungen wird unterschieden ino Verhinderung von Stoumlrungeno Behebung von Stoumlrungeno Vorhersage von Stoumlrungen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es Systeme zu konstruieren welche selbst bei Stoumlrungen noch Ihre Dienste anbieten koumlnnen In diesem Fall ist das System Fehlertolerant
20 Fehlermodelle Kommt es zu einer Stoumlrung kann es folgende Ursachen haben
o Server hat Stoumlrungo Kommunikationskanal hat Stoumlrungo Beides hat eine Stoumlrung
Ausfallarteno Absturzausfall
Server steht staumlndiger Ausfall vom allen Diensteno Dienstausfall
Server antwortet nicht auf Anfragen Server erhaumllt keine Anfragen von Clients Server sendet keine Nachrichten
o Zeitbedingter Ausfall Antwortzeit liegt auszligerhalb des definierten Wertes
o Ausfall korrekter Antworten Falscher Wert wird geantwortet Server weicht vom Programmablauf ab
o ByzantinischerZufaumllliger Ausfall Server liefert zufaumlllige Antworten zu unbestimmten Zeitpunkten Server liefert absichtlich falsche Antworten (Byzantinischer
Fehler) Server liefert gar keine Antworten mehr(Ausfall-Stopp) Server liefert sinnlose fuumlr den Client als Unsinn zu erkennende
Antworten(Fail Safeausfallsicher da vom Client erkannt)
21 Maskierung von Stoumlrungen durch Redundanz Schluumlsseltechnik Redundanz
o Informationsredundanz zB CRC (Cyclic Redundancy Check) hinzufuumlgen von Bits zum
Datenstrom um im Fehlerfall einige zu korrigiereno Zeitliche Redundanz
Einfach spaumlter nochmals versuchen ein Aktion auszufuumlhreno Technische Redundanz
Zusaumltzliche Prozesse oder Ausruumlstung Gebraumluchlichste Technik zu Realisierung von Fehlertoleranz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 2 Kommunikation Verteilter Systeme
22 Netzwerkschichten Aufgrund des Fehlens von Shared Memory (mehrere Prozesse teilen sich
einen Speicher) erfolgt die gesamte Kommunikation in Verteilten Systemen uumlber das Senden und Empfangen von Nachrichten
Die Ansammlung in einem System verwendeten Protokolle wird als Protokollstapel bezeichnet
OSI (Open System Interconnection)-Modello Bestehend aus sieben Schichten
Application Layer (Anwendungsschicht) Aufgabe
o Unterstuumltzung von Netzwerkanwendungeno Schnittstelle zu Anwendungen
Beispieleo SIP Internettelefonieo HTTP Webseiteno FTP Datenuumlbertragungo Telneto SMTP E-Mail
Presentation Layer (Darstellungsschicht) Aufgabe
o Interpretation der Semantik der uumlbertragenen Bits in strukturierten Informationen wie zB Name Adresse oder Geldbetrag sowie deren Erstellung
o Formatumwandlung unterschiedlicher Datenrepraumlsentationen (ASCIIEBCDICUnicode oder big-little- Endianformat)
Session Layer (Sitzungsschicht Kommunikationssteuerungsschicht)
Aufgabeo Verbesserte Version der Transportschicht Stellt
Dialogkontrolle zur Verfuumlgung uumlberwacht welcher Teilnehmer gerade kommuniziert und bietet Synchronisationsmoumlglichkeiten an Wird nur selten unterstuumltzt
Transportation Layer (Transportschicht) Kommunikation zwischen Prozess auf Quellknoten
Prozess auf Zielknoten Aufgabe
o Stellt Daten anderen Prozessen zuo Ggf Fehlerkorrekturo Ggf Einhaltung der Reihenfolge von Paketen
Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o TCP (Transmission Control Protocol zuverlaumlssig verbindungsorientiert)
o UDP (User Datagram Protocol unzuverlaumlssig verbindungslos)
Network Layer (Vermittlungsschicht) Kommunikation zwischen Quellknoten Zielknoten Aufgabe
o Routing in WANs mit dem Ziel die kuumlrzesten Segmentlaufzeiten zu erreichen Segment ist die Dateneinheit dieser Schicht
Beispieleo X25 verbindungsorientiertes Protokoll beste Route
wird waumlhrend des Verbindungsaufbaus bestimmto IP verbindungsloses Protokoll Jedes IP-Paket wird
unabhaumlngig von allen anderen verschickt und geroutet
Data Link Layer (Sicherungsschicht) Kommunikation zwischen aktuellen Knoten
benachbarten naumlchsten Knoten auf dem Weg zu Zielknoten
Aufgabeo Senden von Bits in Frames (Rahmen)o Fehlerkorrektur zB CRCo Flusskontrolle Sliding Window Protokoll
o Ermoumlglich Bestaumltigungen von Frames auf der Sicherungsschicht
o Selective Repeat einzelne Sendungswiederholung
o Go Back n Uumlbertragung aller Frames ab dem verlorenem
Beispieleo Frame Relayo Etherneto ATM (Asynchrone Transfer Mode)
Physical Layer (Bituumlbertragungsschicht) Kommunikation zwischen aktuellen Knoten naumlchsten
Knoten auf dem Weg zu Zielknoten Aufgabe
o Uumlbertragung von beliebigen Bitfolgeno Bestimmung der physikalischen Darstellung fuumlr 0-
und 1-Bits Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
5 Eigenschaften Verteilter Systeme Rechnertyp und der Kommunikationsarten dieser Rechner Interner Aufbau Konsistenz und einheitliche Arbeit mit dem Verteilten System Skalierbarkeit Ausfallsicherheit
6 Middleware Ein verteiltes System wird auch manchmal als Middleware bezeichnet Die
Middleware ist als Schicht zu sehen welchem dem Anwenderder Anwendung verbirgt dass es sich um ein auf mehreren Rechnern laufendes System handelt
7 Ziele eines Verteilten Systems Zugriff auf lokale und entfernte Ressourcen zu vereinfachen Verteilungstransparenz (dem BenutzerAnwendung soll das System wie ein
Einprozessorsystem vorkommen Ein System dass seine Verteiltheit vollstaumlndig vor dem Benutzer verbirgt und wie ein Einprozessorsystem erscheint heiszligt transparent da die Implementierung fuumlr den Benutzer durchsichtig - im Sinne von unsichtbar - ist)Arten von Transparenz
o Ortstransparenz ndash erlaubt den Zugriff auf die Ressourcen ohne dass man ihre PositionOrt kennt
o Fehlertransparenz ndash erlaubt das Verbergen von Fehlern sodass Benutzer ihre Aufgaben erledigen koumlnnen auch wenn HW- od SW-Komponenten ausgefallen sind
o Zugriffstransparenz ndash ermoumlglicht den Zugriff auf lokale und entfernte Ressourcen unter Verwendung identischer Operatoren
o Nebenlaumlufigkeitstransparenz ndash erlaubt dass mehrere Prozesse gleichzeitig mit denselben gemeinsam genutzten Ressourcen arbeiten ohne sich gegenseitig zu stoumlren
o Replikationstransparenz ndash erlaubt dass mehrere Instanzen von Ressourcen verwendet werden um die Zuverlaumlssigkeit und die Leistung zu verbessern ohne dass die Benutzer wissen dass Repliken verwendet werden
o Migrationstransparenz ndash erlaubt das Verschieben von Ressourcen und Clients innerhalb eines Systems (Name der Ressource bleibt gleich aber geringe Ausfallzeit)
o Relokationstransparenz ndash Verbirgt dass eine Ressource an einen anderen Ort verschoben werden kann waumlhrend sie benutzt wird (Name der Ressource bleibt gleich aber keine Ausfallzeit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Nicht im Bucho Leistungstransparenz ndash erlaubt dass das System neu konfiguriert
wird um die Leistung zu verbessern wenn die Last variierto Skalierungstransparenz ndash erlaubt dass sich das System und
Applikationen vergroumlszligern ohne dass die Systemstruktur oder die Applikationsalgorithmen geaumlndert werden muumlssen
Offenheit (ein offenes Verteiltes System bietet Dienste nach Standardregeln an) Ziele
o Spezifizierung der Dienste durch Schnittstellen (Interface Definition Language)
o Spezifizierung sollte Vollstaumlndig und Neutral sein Interoperabilitaumlt (Zusammenspiel von Komponenten
verschiedener Hersteller) Portabilitaumlt (Anwendung von einem Verteiltem System zum
anderen uumlbertragen ohne Aumlnderungen) Konfiguration verschiedener Komponenten Hinzufuumlgen von Komponenten Ersetzen von Komponenten Flexibilitaumlt (kein monolithischer Ansatz)
Skalierbarkeito Groumlszligeo Geografische Ausdehnungo Administrationo Skalierungsprobleme
Zentralisierte Daten (zB einzige DB) Zentralisierte Dienste (zB einziger Server) Zentralisierte Algorithmen (zB Routing (Dijkstra-Alg)) Loumlsung durch Verwendung von dezentralisierten Algorithmen
8 Dezentralisierte Algorithmen Kein Computer hat vollstaumlndige Informationen uumlber den Systemstatus Computer entscheiden nur aufgrund lokaler Information Der Ausfall eines Computers schaumldigt nicht den Algorithmus Es wird nicht implizit angenommen dass es eine globale Uhr gibt
9 SkalierungstechnikenMeistens handelt es sich um Leistungsprobleme die man mit Hilfe von Skalierung umgehen moumlchte
Verbergen der Latenzzeiten der Kommunikation
Application
Collective Layer
Connectivity Resource Layer
Fabric Layer
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikation Verteilung (zB DNS)
10 Klassen von Verteilten Systemen Cluster-Computer (Homogenitaumlt zB MS SQL Cluster)
o Hardware aus aumlhnlichen Rechnern oder Serverno Gleiches Betriebssystem
Grid-Computer (Heterogenitaumlt zB WWW)o Sehr unterschiedliche Hardware Software und Netzwerktechnik
11 Grid-Computer Architekturvorschlag Vier Schichtenmodell von Foster Fabric Layer (Strukturschicht) Schnittstellen zu lokalen Ressourcen eines
Standortes Connectivity Layer (Verbindungsschicht)Kommunikationsprotokolle zur
Unterstuumltzung von Grid-Transaktionen die die Verwendung mehrerer Ressourcen umfassen zB Daten zwischen Ressourcen austauschen
Resource Layer (Ressourcenschicht)Verwaltung einzelner Ressourcen zB Abruf von Konfigurationsinformationen einer Resource
Collective Layer (gemeinsame Schicht)Dienste zur Suche nach Ressourcen Zuweisung und Zeitplannung von Auftraumlgen
Application Layer (Anwendungsschicht)Anwendungen welche in virtuellen Organisationen laufen und die Grid-Umgebung nutzen
Connectivity Layer + Resource Layer = Grid- Middelware
12
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Eigenschaften von Transaktionen A tomic die Transaktion wird ganz oder gar nicht ausgefuumlhrt C onsistent keine Verletzung von Systeminvarianten zB Gelderhaltung bei
Bankuumlberweisung I solated parallele Transaktionen beeinflussen sich nicht D urable die Aumlnderungen nach einem erfolgreichem Abarbeiten (commit)
der Transaktion sind dauerhaft
13 Verteilte Pervasive Systeme engl pervasive ndash durchdringend um sich greifend ein verteiltes pervasives System ist Teil unserer Umgebung bestehend aus mobilen kleinen mit Funkverbindung ausgestatteten Geraumlten keine Administration Instabilitaumlt ua wegen Ortsaumlnderung 3 Anforderungen an pervasive Anwendungen
o Erfassung kontextueller Aumlnderung (Ortsaumlnderung)o Unterstuumltzung von Ad-hoc-Zusammensetzung (Veraumlnderung des
Anwendungsangebots abhaumlngig vom Ort)o Gemeinsame Nutzung von Informationen (auch Bereitstellung) als
Standard Beispiele
o Haus- Und Multimediasystemeo Informationssyteme im Gesundheitswesen zB BAN (Body Area
Network) o Sensornetze
14 Softwarearchitektur Definition Betrachtung der logischen Anordnung der
Softwarekomponenten Komponente
o Definition modulare Einheit mit wohldefinierten erforderlichen und bereitgestellten Schnittstellen welche in Ihrer Umgebung einsetzbar ist
Architekturstilo Komponenteno Art der Verbindung der Komponenteno Daten welche zwischen den Komponenten ausgetauscht werdeno wie die Komponenten zu einem System konfiguriert werden
Konnektoro Definition Mechanismus welcher die Kommunikation
Koordination oder Kooperation zwischen Komponenten vermittelt
Kurs 1678 ndash Verteilte SystemeZusammenfassung
15 Softwarearchitekturstile Geschichtete Architektur zB Netzwerkprotokollstapel Abfragen
werden nach unten weitergeleitet und Anworten nach oben Objektbasierte Architektur zB Client-Server-Architektur
Kommunikation der einzelnen ObjekteKomponenten uumlber RPC (Remote Procedure Call)
Datenzentrierte Architektur Prozesse kommunizieren uumlber Daten zB uumlber Dateien auf einem gemeinsamen Repository (engl Ablage Behaumllter)
Ereignisbasierte Architektur zB PublishSubscribe-Systeme Prozesse kommunizieren uumlber Ereignisse
16 Zentralisierte Systemarchitekturen Client-Server Modell
o RequestReply Verhalteno Server bietet Dienste an zB DNS (Domain Name System)
o Client fordert Dienste auf Server an zB will er wwwardde in IP umwandeln lassen und fordert hierzu den DNS-Dienst auf dem Server an
o Ablauf Client sendet Anfrage Server nimmt diese entgegen Server verarbeitet die Anfrage Server sendet Antwort Client empfaumlngt Antwort
o Idempotent Anfragen welche beliebig oft gesendet werden koumlnnen wie in unserem Beispiel
o Genau einmal-Semantiko Mindestens einmal-Semantik (= Idempotent)o Houmlchstens einmal-Semantiko CS ist oft als Schichtarchitektur
Benutzerschnittstellenebene (Darstellung der Anwendung) Verarbeitungsebene (Anwendung) Datenebene (zB DB)
Multitier-Architektureno Definition (tier) Stufe Ebeneo 2-Tier-Architekturen
Fat Clients (Darstellung+VerarbeitungDatenDatenbank) Thin Clients (DarstellungVerarbeitung+DatenDatenbank)
o 3-Tier-Architekturen Darstellungsrechner Anwendungsserver Datenbankserver
Kurs 1678 ndash Verteilte SystemeZusammenfassung
17 Dezentralisierte Systemarchitekturen (Peer-to-Peer Architekturen) Vertikale Verteilung
o Logisch unterschiedliche Komponenten auf unterschiedlichen Rechnern
Horizontale Verteilungo Aufteilung von Server und Clientso Client und Server physisch in funktional gleiche Teile zerlegt dh
Client und Server laufen auf einer Hardware aber arbeiten nur mit einer Teilmenge an Daten oder Dienste des gesamten Systems
Peer-to-Peer unterstuumltzt horizontale Verteilungo Anzahl der moumlglichen Kommunikationspaare bei n beteiligten Rechner
ist n(n-1)2o Atomisches P2P (Peer-to-Peer)
Keine zentrale Verwaltung des Netzes Bei Beitritt gibt es 2 Moumlglichkeiten
Broadcastanfrage an alle Clients um zu erfahren welche Dienst vorhanden sind
o Beispiel Datei- und Druckerfreigabe von Microsoft Verbindung zu bekanntem Host (aus Liste) und Erfragung
der Topologie und der Diensteo Benutzerzentriertes P2P
Einem Atomischen P2P wird ein fuumlr die Vermittlung von Benutzer egal vom welchem Rechner zustaumlndiger Server hinzugefuumlgt
Der Vermittlungsserver enthaumllt eine Liste von Benutzern und deren Dienste (Freigabe einer MP3 Datei)
Betritt ein Benutzer dieses P2P meldet er sich mit seinen Diensten am Vermittlungsserver an
o Datenzentriertes P2P Vermittlungsserver merkt sich wo Daten und Dienste liegen
sonst aumlhnlich wie bei benutzerzentrierten P2P Overlay-Netzwerk uumlberlagert LANMANWAN und bildet somit ein eigenes
Netzwerko Peers sind Knoten des Netzwerks welche durch Prozesse gebildet
werdeno Verbindungen sind die moumlglichen Kommunikationskanaumlle zwischen
den Peerso Strukturierteo Unstrukturiere
Strukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)o Konstruktion des Netzwerks durch deterministisches Verfahreno Verteilte Hash-Tabelle (Distributed Hash-Table DHT) jeder Knoten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
erhaumllt zufaumlllige Zahl aus dem Bezeichnerraumo Chord-System Anordnung der Knoten als logischer Ringo CAN (Content Adressable Network) d-dimensionales kartesisches
Koordinatensystem wird vollstaumlndig zwischen allen Koten auftgeteilt Unstrukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)
o Knotenbildung durch Zufallsalgorithmen Topologieverwaltung in Overlay-Nertzwerken
o Realisierung der Anordnung der Knoten im Raum Topologie durch eine Kombination aus strukturierten und unstrukturierten Peer-to-Peer Systemen in 2 Schichten
Superpeer-Konzepteo Superpeer enthalten Index (fuumlr Daten oder Dienste) oder fungieren als
Maklero Superpeers sind auch als Peer-to-Peer System angeordneto Regulaumlren Peer hat meistens eine festen Superpeer an welchen er
sich bindet
Superpeer Netzwerk
Regulaumlrer Peer
Superpeer
Kurs 1678 ndash Verteilte SystemeZusammenfassung
18 Hybridarchitekturen Kombination von Client-Server und dezentralisierter Architektur Beispiele
o Superpeero Edge-Server
Edge (engl Kante) zwischen Internet und Unternehmensnetzwerk oder ISP eines Endanwenders
Verbindung von Client zum Edge als Server Edge als Peer-to-Peer zu Internetdiensten verbunden
o Kollaborative Systeme Knoten tritt dem System an definierter Stelle bei danach
benutzt er ein dezentralisiertes Verfahren zur Zusammenarbeit mit anderen Knoten
BitTorrent-System Globales Verzeichnis von torrent Dateien (strukturiert) Laden der Daten von aktiven anderen Knoten
(unstrukturiert)
19 Fehlertoleranz Anforderungen an Verlaumlssliche Systeme (solch ein System ist
fehlertolerant)o Verfuumlgbarkeit
Wahrscheinlichkeit dass das System zu einer bestimmt Zeitpunkt korrekt arbeitet und seine Dienste bereitstellt
o Zuverlaumlssigkeit Mit hoher Wahrscheinlichkeit lange Zeit ohne Unterbrechung
arbeiten kanno Funktionssicherheit
Bezeichnet den Umstand dass es zu keiner Katastrophe kommt wenn das System zeitweise unkorrekt arbeitet
o Wartbarkeit Wie leicht kann ein ausgefallenes System repariert werden
Ein Fehler ist ein Teil eines Systemzustandes welcher zum Ausfall fuumlhren kann Ein Ausfall beinhaltet das teilweise oder komplette Versagen von Diensten welche es anbietet
Die Ursache eines Ausfalls wird als Stoumlrung bezeichneto Voruumlbergehende Stoumlrungo Wiederkehrende Stoumlrungo Permanente Stoumlrung
Kontrolle von Stoumlrungen wird unterschieden ino Verhinderung von Stoumlrungeno Behebung von Stoumlrungeno Vorhersage von Stoumlrungen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es Systeme zu konstruieren welche selbst bei Stoumlrungen noch Ihre Dienste anbieten koumlnnen In diesem Fall ist das System Fehlertolerant
20 Fehlermodelle Kommt es zu einer Stoumlrung kann es folgende Ursachen haben
o Server hat Stoumlrungo Kommunikationskanal hat Stoumlrungo Beides hat eine Stoumlrung
Ausfallarteno Absturzausfall
Server steht staumlndiger Ausfall vom allen Diensteno Dienstausfall
Server antwortet nicht auf Anfragen Server erhaumllt keine Anfragen von Clients Server sendet keine Nachrichten
o Zeitbedingter Ausfall Antwortzeit liegt auszligerhalb des definierten Wertes
o Ausfall korrekter Antworten Falscher Wert wird geantwortet Server weicht vom Programmablauf ab
o ByzantinischerZufaumllliger Ausfall Server liefert zufaumlllige Antworten zu unbestimmten Zeitpunkten Server liefert absichtlich falsche Antworten (Byzantinischer
Fehler) Server liefert gar keine Antworten mehr(Ausfall-Stopp) Server liefert sinnlose fuumlr den Client als Unsinn zu erkennende
Antworten(Fail Safeausfallsicher da vom Client erkannt)
21 Maskierung von Stoumlrungen durch Redundanz Schluumlsseltechnik Redundanz
o Informationsredundanz zB CRC (Cyclic Redundancy Check) hinzufuumlgen von Bits zum
Datenstrom um im Fehlerfall einige zu korrigiereno Zeitliche Redundanz
Einfach spaumlter nochmals versuchen ein Aktion auszufuumlhreno Technische Redundanz
Zusaumltzliche Prozesse oder Ausruumlstung Gebraumluchlichste Technik zu Realisierung von Fehlertoleranz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 2 Kommunikation Verteilter Systeme
22 Netzwerkschichten Aufgrund des Fehlens von Shared Memory (mehrere Prozesse teilen sich
einen Speicher) erfolgt die gesamte Kommunikation in Verteilten Systemen uumlber das Senden und Empfangen von Nachrichten
Die Ansammlung in einem System verwendeten Protokolle wird als Protokollstapel bezeichnet
OSI (Open System Interconnection)-Modello Bestehend aus sieben Schichten
Application Layer (Anwendungsschicht) Aufgabe
o Unterstuumltzung von Netzwerkanwendungeno Schnittstelle zu Anwendungen
Beispieleo SIP Internettelefonieo HTTP Webseiteno FTP Datenuumlbertragungo Telneto SMTP E-Mail
Presentation Layer (Darstellungsschicht) Aufgabe
o Interpretation der Semantik der uumlbertragenen Bits in strukturierten Informationen wie zB Name Adresse oder Geldbetrag sowie deren Erstellung
o Formatumwandlung unterschiedlicher Datenrepraumlsentationen (ASCIIEBCDICUnicode oder big-little- Endianformat)
Session Layer (Sitzungsschicht Kommunikationssteuerungsschicht)
Aufgabeo Verbesserte Version der Transportschicht Stellt
Dialogkontrolle zur Verfuumlgung uumlberwacht welcher Teilnehmer gerade kommuniziert und bietet Synchronisationsmoumlglichkeiten an Wird nur selten unterstuumltzt
Transportation Layer (Transportschicht) Kommunikation zwischen Prozess auf Quellknoten
Prozess auf Zielknoten Aufgabe
o Stellt Daten anderen Prozessen zuo Ggf Fehlerkorrekturo Ggf Einhaltung der Reihenfolge von Paketen
Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o TCP (Transmission Control Protocol zuverlaumlssig verbindungsorientiert)
o UDP (User Datagram Protocol unzuverlaumlssig verbindungslos)
Network Layer (Vermittlungsschicht) Kommunikation zwischen Quellknoten Zielknoten Aufgabe
o Routing in WANs mit dem Ziel die kuumlrzesten Segmentlaufzeiten zu erreichen Segment ist die Dateneinheit dieser Schicht
Beispieleo X25 verbindungsorientiertes Protokoll beste Route
wird waumlhrend des Verbindungsaufbaus bestimmto IP verbindungsloses Protokoll Jedes IP-Paket wird
unabhaumlngig von allen anderen verschickt und geroutet
Data Link Layer (Sicherungsschicht) Kommunikation zwischen aktuellen Knoten
benachbarten naumlchsten Knoten auf dem Weg zu Zielknoten
Aufgabeo Senden von Bits in Frames (Rahmen)o Fehlerkorrektur zB CRCo Flusskontrolle Sliding Window Protokoll
o Ermoumlglich Bestaumltigungen von Frames auf der Sicherungsschicht
o Selective Repeat einzelne Sendungswiederholung
o Go Back n Uumlbertragung aller Frames ab dem verlorenem
Beispieleo Frame Relayo Etherneto ATM (Asynchrone Transfer Mode)
Physical Layer (Bituumlbertragungsschicht) Kommunikation zwischen aktuellen Knoten naumlchsten
Knoten auf dem Weg zu Zielknoten Aufgabe
o Uumlbertragung von beliebigen Bitfolgeno Bestimmung der physikalischen Darstellung fuumlr 0-
und 1-Bits Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Nicht im Bucho Leistungstransparenz ndash erlaubt dass das System neu konfiguriert
wird um die Leistung zu verbessern wenn die Last variierto Skalierungstransparenz ndash erlaubt dass sich das System und
Applikationen vergroumlszligern ohne dass die Systemstruktur oder die Applikationsalgorithmen geaumlndert werden muumlssen
Offenheit (ein offenes Verteiltes System bietet Dienste nach Standardregeln an) Ziele
o Spezifizierung der Dienste durch Schnittstellen (Interface Definition Language)
o Spezifizierung sollte Vollstaumlndig und Neutral sein Interoperabilitaumlt (Zusammenspiel von Komponenten
verschiedener Hersteller) Portabilitaumlt (Anwendung von einem Verteiltem System zum
anderen uumlbertragen ohne Aumlnderungen) Konfiguration verschiedener Komponenten Hinzufuumlgen von Komponenten Ersetzen von Komponenten Flexibilitaumlt (kein monolithischer Ansatz)
Skalierbarkeito Groumlszligeo Geografische Ausdehnungo Administrationo Skalierungsprobleme
Zentralisierte Daten (zB einzige DB) Zentralisierte Dienste (zB einziger Server) Zentralisierte Algorithmen (zB Routing (Dijkstra-Alg)) Loumlsung durch Verwendung von dezentralisierten Algorithmen
8 Dezentralisierte Algorithmen Kein Computer hat vollstaumlndige Informationen uumlber den Systemstatus Computer entscheiden nur aufgrund lokaler Information Der Ausfall eines Computers schaumldigt nicht den Algorithmus Es wird nicht implizit angenommen dass es eine globale Uhr gibt
9 SkalierungstechnikenMeistens handelt es sich um Leistungsprobleme die man mit Hilfe von Skalierung umgehen moumlchte
Verbergen der Latenzzeiten der Kommunikation
Application
Collective Layer
Connectivity Resource Layer
Fabric Layer
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikation Verteilung (zB DNS)
10 Klassen von Verteilten Systemen Cluster-Computer (Homogenitaumlt zB MS SQL Cluster)
o Hardware aus aumlhnlichen Rechnern oder Serverno Gleiches Betriebssystem
Grid-Computer (Heterogenitaumlt zB WWW)o Sehr unterschiedliche Hardware Software und Netzwerktechnik
11 Grid-Computer Architekturvorschlag Vier Schichtenmodell von Foster Fabric Layer (Strukturschicht) Schnittstellen zu lokalen Ressourcen eines
Standortes Connectivity Layer (Verbindungsschicht)Kommunikationsprotokolle zur
Unterstuumltzung von Grid-Transaktionen die die Verwendung mehrerer Ressourcen umfassen zB Daten zwischen Ressourcen austauschen
Resource Layer (Ressourcenschicht)Verwaltung einzelner Ressourcen zB Abruf von Konfigurationsinformationen einer Resource
Collective Layer (gemeinsame Schicht)Dienste zur Suche nach Ressourcen Zuweisung und Zeitplannung von Auftraumlgen
Application Layer (Anwendungsschicht)Anwendungen welche in virtuellen Organisationen laufen und die Grid-Umgebung nutzen
Connectivity Layer + Resource Layer = Grid- Middelware
12
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Eigenschaften von Transaktionen A tomic die Transaktion wird ganz oder gar nicht ausgefuumlhrt C onsistent keine Verletzung von Systeminvarianten zB Gelderhaltung bei
Bankuumlberweisung I solated parallele Transaktionen beeinflussen sich nicht D urable die Aumlnderungen nach einem erfolgreichem Abarbeiten (commit)
der Transaktion sind dauerhaft
13 Verteilte Pervasive Systeme engl pervasive ndash durchdringend um sich greifend ein verteiltes pervasives System ist Teil unserer Umgebung bestehend aus mobilen kleinen mit Funkverbindung ausgestatteten Geraumlten keine Administration Instabilitaumlt ua wegen Ortsaumlnderung 3 Anforderungen an pervasive Anwendungen
o Erfassung kontextueller Aumlnderung (Ortsaumlnderung)o Unterstuumltzung von Ad-hoc-Zusammensetzung (Veraumlnderung des
Anwendungsangebots abhaumlngig vom Ort)o Gemeinsame Nutzung von Informationen (auch Bereitstellung) als
Standard Beispiele
o Haus- Und Multimediasystemeo Informationssyteme im Gesundheitswesen zB BAN (Body Area
Network) o Sensornetze
14 Softwarearchitektur Definition Betrachtung der logischen Anordnung der
Softwarekomponenten Komponente
o Definition modulare Einheit mit wohldefinierten erforderlichen und bereitgestellten Schnittstellen welche in Ihrer Umgebung einsetzbar ist
Architekturstilo Komponenteno Art der Verbindung der Komponenteno Daten welche zwischen den Komponenten ausgetauscht werdeno wie die Komponenten zu einem System konfiguriert werden
Konnektoro Definition Mechanismus welcher die Kommunikation
Koordination oder Kooperation zwischen Komponenten vermittelt
Kurs 1678 ndash Verteilte SystemeZusammenfassung
15 Softwarearchitekturstile Geschichtete Architektur zB Netzwerkprotokollstapel Abfragen
werden nach unten weitergeleitet und Anworten nach oben Objektbasierte Architektur zB Client-Server-Architektur
Kommunikation der einzelnen ObjekteKomponenten uumlber RPC (Remote Procedure Call)
Datenzentrierte Architektur Prozesse kommunizieren uumlber Daten zB uumlber Dateien auf einem gemeinsamen Repository (engl Ablage Behaumllter)
Ereignisbasierte Architektur zB PublishSubscribe-Systeme Prozesse kommunizieren uumlber Ereignisse
16 Zentralisierte Systemarchitekturen Client-Server Modell
o RequestReply Verhalteno Server bietet Dienste an zB DNS (Domain Name System)
o Client fordert Dienste auf Server an zB will er wwwardde in IP umwandeln lassen und fordert hierzu den DNS-Dienst auf dem Server an
o Ablauf Client sendet Anfrage Server nimmt diese entgegen Server verarbeitet die Anfrage Server sendet Antwort Client empfaumlngt Antwort
o Idempotent Anfragen welche beliebig oft gesendet werden koumlnnen wie in unserem Beispiel
o Genau einmal-Semantiko Mindestens einmal-Semantik (= Idempotent)o Houmlchstens einmal-Semantiko CS ist oft als Schichtarchitektur
Benutzerschnittstellenebene (Darstellung der Anwendung) Verarbeitungsebene (Anwendung) Datenebene (zB DB)
Multitier-Architektureno Definition (tier) Stufe Ebeneo 2-Tier-Architekturen
Fat Clients (Darstellung+VerarbeitungDatenDatenbank) Thin Clients (DarstellungVerarbeitung+DatenDatenbank)
o 3-Tier-Architekturen Darstellungsrechner Anwendungsserver Datenbankserver
Kurs 1678 ndash Verteilte SystemeZusammenfassung
17 Dezentralisierte Systemarchitekturen (Peer-to-Peer Architekturen) Vertikale Verteilung
o Logisch unterschiedliche Komponenten auf unterschiedlichen Rechnern
Horizontale Verteilungo Aufteilung von Server und Clientso Client und Server physisch in funktional gleiche Teile zerlegt dh
Client und Server laufen auf einer Hardware aber arbeiten nur mit einer Teilmenge an Daten oder Dienste des gesamten Systems
Peer-to-Peer unterstuumltzt horizontale Verteilungo Anzahl der moumlglichen Kommunikationspaare bei n beteiligten Rechner
ist n(n-1)2o Atomisches P2P (Peer-to-Peer)
Keine zentrale Verwaltung des Netzes Bei Beitritt gibt es 2 Moumlglichkeiten
Broadcastanfrage an alle Clients um zu erfahren welche Dienst vorhanden sind
o Beispiel Datei- und Druckerfreigabe von Microsoft Verbindung zu bekanntem Host (aus Liste) und Erfragung
der Topologie und der Diensteo Benutzerzentriertes P2P
Einem Atomischen P2P wird ein fuumlr die Vermittlung von Benutzer egal vom welchem Rechner zustaumlndiger Server hinzugefuumlgt
Der Vermittlungsserver enthaumllt eine Liste von Benutzern und deren Dienste (Freigabe einer MP3 Datei)
Betritt ein Benutzer dieses P2P meldet er sich mit seinen Diensten am Vermittlungsserver an
o Datenzentriertes P2P Vermittlungsserver merkt sich wo Daten und Dienste liegen
sonst aumlhnlich wie bei benutzerzentrierten P2P Overlay-Netzwerk uumlberlagert LANMANWAN und bildet somit ein eigenes
Netzwerko Peers sind Knoten des Netzwerks welche durch Prozesse gebildet
werdeno Verbindungen sind die moumlglichen Kommunikationskanaumlle zwischen
den Peerso Strukturierteo Unstrukturiere
Strukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)o Konstruktion des Netzwerks durch deterministisches Verfahreno Verteilte Hash-Tabelle (Distributed Hash-Table DHT) jeder Knoten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
erhaumllt zufaumlllige Zahl aus dem Bezeichnerraumo Chord-System Anordnung der Knoten als logischer Ringo CAN (Content Adressable Network) d-dimensionales kartesisches
Koordinatensystem wird vollstaumlndig zwischen allen Koten auftgeteilt Unstrukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)
o Knotenbildung durch Zufallsalgorithmen Topologieverwaltung in Overlay-Nertzwerken
o Realisierung der Anordnung der Knoten im Raum Topologie durch eine Kombination aus strukturierten und unstrukturierten Peer-to-Peer Systemen in 2 Schichten
Superpeer-Konzepteo Superpeer enthalten Index (fuumlr Daten oder Dienste) oder fungieren als
Maklero Superpeers sind auch als Peer-to-Peer System angeordneto Regulaumlren Peer hat meistens eine festen Superpeer an welchen er
sich bindet
Superpeer Netzwerk
Regulaumlrer Peer
Superpeer
Kurs 1678 ndash Verteilte SystemeZusammenfassung
18 Hybridarchitekturen Kombination von Client-Server und dezentralisierter Architektur Beispiele
o Superpeero Edge-Server
Edge (engl Kante) zwischen Internet und Unternehmensnetzwerk oder ISP eines Endanwenders
Verbindung von Client zum Edge als Server Edge als Peer-to-Peer zu Internetdiensten verbunden
o Kollaborative Systeme Knoten tritt dem System an definierter Stelle bei danach
benutzt er ein dezentralisiertes Verfahren zur Zusammenarbeit mit anderen Knoten
BitTorrent-System Globales Verzeichnis von torrent Dateien (strukturiert) Laden der Daten von aktiven anderen Knoten
(unstrukturiert)
19 Fehlertoleranz Anforderungen an Verlaumlssliche Systeme (solch ein System ist
fehlertolerant)o Verfuumlgbarkeit
Wahrscheinlichkeit dass das System zu einer bestimmt Zeitpunkt korrekt arbeitet und seine Dienste bereitstellt
o Zuverlaumlssigkeit Mit hoher Wahrscheinlichkeit lange Zeit ohne Unterbrechung
arbeiten kanno Funktionssicherheit
Bezeichnet den Umstand dass es zu keiner Katastrophe kommt wenn das System zeitweise unkorrekt arbeitet
o Wartbarkeit Wie leicht kann ein ausgefallenes System repariert werden
Ein Fehler ist ein Teil eines Systemzustandes welcher zum Ausfall fuumlhren kann Ein Ausfall beinhaltet das teilweise oder komplette Versagen von Diensten welche es anbietet
Die Ursache eines Ausfalls wird als Stoumlrung bezeichneto Voruumlbergehende Stoumlrungo Wiederkehrende Stoumlrungo Permanente Stoumlrung
Kontrolle von Stoumlrungen wird unterschieden ino Verhinderung von Stoumlrungeno Behebung von Stoumlrungeno Vorhersage von Stoumlrungen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es Systeme zu konstruieren welche selbst bei Stoumlrungen noch Ihre Dienste anbieten koumlnnen In diesem Fall ist das System Fehlertolerant
20 Fehlermodelle Kommt es zu einer Stoumlrung kann es folgende Ursachen haben
o Server hat Stoumlrungo Kommunikationskanal hat Stoumlrungo Beides hat eine Stoumlrung
Ausfallarteno Absturzausfall
Server steht staumlndiger Ausfall vom allen Diensteno Dienstausfall
Server antwortet nicht auf Anfragen Server erhaumllt keine Anfragen von Clients Server sendet keine Nachrichten
o Zeitbedingter Ausfall Antwortzeit liegt auszligerhalb des definierten Wertes
o Ausfall korrekter Antworten Falscher Wert wird geantwortet Server weicht vom Programmablauf ab
o ByzantinischerZufaumllliger Ausfall Server liefert zufaumlllige Antworten zu unbestimmten Zeitpunkten Server liefert absichtlich falsche Antworten (Byzantinischer
Fehler) Server liefert gar keine Antworten mehr(Ausfall-Stopp) Server liefert sinnlose fuumlr den Client als Unsinn zu erkennende
Antworten(Fail Safeausfallsicher da vom Client erkannt)
21 Maskierung von Stoumlrungen durch Redundanz Schluumlsseltechnik Redundanz
o Informationsredundanz zB CRC (Cyclic Redundancy Check) hinzufuumlgen von Bits zum
Datenstrom um im Fehlerfall einige zu korrigiereno Zeitliche Redundanz
Einfach spaumlter nochmals versuchen ein Aktion auszufuumlhreno Technische Redundanz
Zusaumltzliche Prozesse oder Ausruumlstung Gebraumluchlichste Technik zu Realisierung von Fehlertoleranz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 2 Kommunikation Verteilter Systeme
22 Netzwerkschichten Aufgrund des Fehlens von Shared Memory (mehrere Prozesse teilen sich
einen Speicher) erfolgt die gesamte Kommunikation in Verteilten Systemen uumlber das Senden und Empfangen von Nachrichten
Die Ansammlung in einem System verwendeten Protokolle wird als Protokollstapel bezeichnet
OSI (Open System Interconnection)-Modello Bestehend aus sieben Schichten
Application Layer (Anwendungsschicht) Aufgabe
o Unterstuumltzung von Netzwerkanwendungeno Schnittstelle zu Anwendungen
Beispieleo SIP Internettelefonieo HTTP Webseiteno FTP Datenuumlbertragungo Telneto SMTP E-Mail
Presentation Layer (Darstellungsschicht) Aufgabe
o Interpretation der Semantik der uumlbertragenen Bits in strukturierten Informationen wie zB Name Adresse oder Geldbetrag sowie deren Erstellung
o Formatumwandlung unterschiedlicher Datenrepraumlsentationen (ASCIIEBCDICUnicode oder big-little- Endianformat)
Session Layer (Sitzungsschicht Kommunikationssteuerungsschicht)
Aufgabeo Verbesserte Version der Transportschicht Stellt
Dialogkontrolle zur Verfuumlgung uumlberwacht welcher Teilnehmer gerade kommuniziert und bietet Synchronisationsmoumlglichkeiten an Wird nur selten unterstuumltzt
Transportation Layer (Transportschicht) Kommunikation zwischen Prozess auf Quellknoten
Prozess auf Zielknoten Aufgabe
o Stellt Daten anderen Prozessen zuo Ggf Fehlerkorrekturo Ggf Einhaltung der Reihenfolge von Paketen
Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o TCP (Transmission Control Protocol zuverlaumlssig verbindungsorientiert)
o UDP (User Datagram Protocol unzuverlaumlssig verbindungslos)
Network Layer (Vermittlungsschicht) Kommunikation zwischen Quellknoten Zielknoten Aufgabe
o Routing in WANs mit dem Ziel die kuumlrzesten Segmentlaufzeiten zu erreichen Segment ist die Dateneinheit dieser Schicht
Beispieleo X25 verbindungsorientiertes Protokoll beste Route
wird waumlhrend des Verbindungsaufbaus bestimmto IP verbindungsloses Protokoll Jedes IP-Paket wird
unabhaumlngig von allen anderen verschickt und geroutet
Data Link Layer (Sicherungsschicht) Kommunikation zwischen aktuellen Knoten
benachbarten naumlchsten Knoten auf dem Weg zu Zielknoten
Aufgabeo Senden von Bits in Frames (Rahmen)o Fehlerkorrektur zB CRCo Flusskontrolle Sliding Window Protokoll
o Ermoumlglich Bestaumltigungen von Frames auf der Sicherungsschicht
o Selective Repeat einzelne Sendungswiederholung
o Go Back n Uumlbertragung aller Frames ab dem verlorenem
Beispieleo Frame Relayo Etherneto ATM (Asynchrone Transfer Mode)
Physical Layer (Bituumlbertragungsschicht) Kommunikation zwischen aktuellen Knoten naumlchsten
Knoten auf dem Weg zu Zielknoten Aufgabe
o Uumlbertragung von beliebigen Bitfolgeno Bestimmung der physikalischen Darstellung fuumlr 0-
und 1-Bits Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Application
Collective Layer
Connectivity Resource Layer
Fabric Layer
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikation Verteilung (zB DNS)
10 Klassen von Verteilten Systemen Cluster-Computer (Homogenitaumlt zB MS SQL Cluster)
o Hardware aus aumlhnlichen Rechnern oder Serverno Gleiches Betriebssystem
Grid-Computer (Heterogenitaumlt zB WWW)o Sehr unterschiedliche Hardware Software und Netzwerktechnik
11 Grid-Computer Architekturvorschlag Vier Schichtenmodell von Foster Fabric Layer (Strukturschicht) Schnittstellen zu lokalen Ressourcen eines
Standortes Connectivity Layer (Verbindungsschicht)Kommunikationsprotokolle zur
Unterstuumltzung von Grid-Transaktionen die die Verwendung mehrerer Ressourcen umfassen zB Daten zwischen Ressourcen austauschen
Resource Layer (Ressourcenschicht)Verwaltung einzelner Ressourcen zB Abruf von Konfigurationsinformationen einer Resource
Collective Layer (gemeinsame Schicht)Dienste zur Suche nach Ressourcen Zuweisung und Zeitplannung von Auftraumlgen
Application Layer (Anwendungsschicht)Anwendungen welche in virtuellen Organisationen laufen und die Grid-Umgebung nutzen
Connectivity Layer + Resource Layer = Grid- Middelware
12
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Eigenschaften von Transaktionen A tomic die Transaktion wird ganz oder gar nicht ausgefuumlhrt C onsistent keine Verletzung von Systeminvarianten zB Gelderhaltung bei
Bankuumlberweisung I solated parallele Transaktionen beeinflussen sich nicht D urable die Aumlnderungen nach einem erfolgreichem Abarbeiten (commit)
der Transaktion sind dauerhaft
13 Verteilte Pervasive Systeme engl pervasive ndash durchdringend um sich greifend ein verteiltes pervasives System ist Teil unserer Umgebung bestehend aus mobilen kleinen mit Funkverbindung ausgestatteten Geraumlten keine Administration Instabilitaumlt ua wegen Ortsaumlnderung 3 Anforderungen an pervasive Anwendungen
o Erfassung kontextueller Aumlnderung (Ortsaumlnderung)o Unterstuumltzung von Ad-hoc-Zusammensetzung (Veraumlnderung des
Anwendungsangebots abhaumlngig vom Ort)o Gemeinsame Nutzung von Informationen (auch Bereitstellung) als
Standard Beispiele
o Haus- Und Multimediasystemeo Informationssyteme im Gesundheitswesen zB BAN (Body Area
Network) o Sensornetze
14 Softwarearchitektur Definition Betrachtung der logischen Anordnung der
Softwarekomponenten Komponente
o Definition modulare Einheit mit wohldefinierten erforderlichen und bereitgestellten Schnittstellen welche in Ihrer Umgebung einsetzbar ist
Architekturstilo Komponenteno Art der Verbindung der Komponenteno Daten welche zwischen den Komponenten ausgetauscht werdeno wie die Komponenten zu einem System konfiguriert werden
Konnektoro Definition Mechanismus welcher die Kommunikation
Koordination oder Kooperation zwischen Komponenten vermittelt
Kurs 1678 ndash Verteilte SystemeZusammenfassung
15 Softwarearchitekturstile Geschichtete Architektur zB Netzwerkprotokollstapel Abfragen
werden nach unten weitergeleitet und Anworten nach oben Objektbasierte Architektur zB Client-Server-Architektur
Kommunikation der einzelnen ObjekteKomponenten uumlber RPC (Remote Procedure Call)
Datenzentrierte Architektur Prozesse kommunizieren uumlber Daten zB uumlber Dateien auf einem gemeinsamen Repository (engl Ablage Behaumllter)
Ereignisbasierte Architektur zB PublishSubscribe-Systeme Prozesse kommunizieren uumlber Ereignisse
16 Zentralisierte Systemarchitekturen Client-Server Modell
o RequestReply Verhalteno Server bietet Dienste an zB DNS (Domain Name System)
o Client fordert Dienste auf Server an zB will er wwwardde in IP umwandeln lassen und fordert hierzu den DNS-Dienst auf dem Server an
o Ablauf Client sendet Anfrage Server nimmt diese entgegen Server verarbeitet die Anfrage Server sendet Antwort Client empfaumlngt Antwort
o Idempotent Anfragen welche beliebig oft gesendet werden koumlnnen wie in unserem Beispiel
o Genau einmal-Semantiko Mindestens einmal-Semantik (= Idempotent)o Houmlchstens einmal-Semantiko CS ist oft als Schichtarchitektur
Benutzerschnittstellenebene (Darstellung der Anwendung) Verarbeitungsebene (Anwendung) Datenebene (zB DB)
Multitier-Architektureno Definition (tier) Stufe Ebeneo 2-Tier-Architekturen
Fat Clients (Darstellung+VerarbeitungDatenDatenbank) Thin Clients (DarstellungVerarbeitung+DatenDatenbank)
o 3-Tier-Architekturen Darstellungsrechner Anwendungsserver Datenbankserver
Kurs 1678 ndash Verteilte SystemeZusammenfassung
17 Dezentralisierte Systemarchitekturen (Peer-to-Peer Architekturen) Vertikale Verteilung
o Logisch unterschiedliche Komponenten auf unterschiedlichen Rechnern
Horizontale Verteilungo Aufteilung von Server und Clientso Client und Server physisch in funktional gleiche Teile zerlegt dh
Client und Server laufen auf einer Hardware aber arbeiten nur mit einer Teilmenge an Daten oder Dienste des gesamten Systems
Peer-to-Peer unterstuumltzt horizontale Verteilungo Anzahl der moumlglichen Kommunikationspaare bei n beteiligten Rechner
ist n(n-1)2o Atomisches P2P (Peer-to-Peer)
Keine zentrale Verwaltung des Netzes Bei Beitritt gibt es 2 Moumlglichkeiten
Broadcastanfrage an alle Clients um zu erfahren welche Dienst vorhanden sind
o Beispiel Datei- und Druckerfreigabe von Microsoft Verbindung zu bekanntem Host (aus Liste) und Erfragung
der Topologie und der Diensteo Benutzerzentriertes P2P
Einem Atomischen P2P wird ein fuumlr die Vermittlung von Benutzer egal vom welchem Rechner zustaumlndiger Server hinzugefuumlgt
Der Vermittlungsserver enthaumllt eine Liste von Benutzern und deren Dienste (Freigabe einer MP3 Datei)
Betritt ein Benutzer dieses P2P meldet er sich mit seinen Diensten am Vermittlungsserver an
o Datenzentriertes P2P Vermittlungsserver merkt sich wo Daten und Dienste liegen
sonst aumlhnlich wie bei benutzerzentrierten P2P Overlay-Netzwerk uumlberlagert LANMANWAN und bildet somit ein eigenes
Netzwerko Peers sind Knoten des Netzwerks welche durch Prozesse gebildet
werdeno Verbindungen sind die moumlglichen Kommunikationskanaumlle zwischen
den Peerso Strukturierteo Unstrukturiere
Strukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)o Konstruktion des Netzwerks durch deterministisches Verfahreno Verteilte Hash-Tabelle (Distributed Hash-Table DHT) jeder Knoten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
erhaumllt zufaumlllige Zahl aus dem Bezeichnerraumo Chord-System Anordnung der Knoten als logischer Ringo CAN (Content Adressable Network) d-dimensionales kartesisches
Koordinatensystem wird vollstaumlndig zwischen allen Koten auftgeteilt Unstrukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)
o Knotenbildung durch Zufallsalgorithmen Topologieverwaltung in Overlay-Nertzwerken
o Realisierung der Anordnung der Knoten im Raum Topologie durch eine Kombination aus strukturierten und unstrukturierten Peer-to-Peer Systemen in 2 Schichten
Superpeer-Konzepteo Superpeer enthalten Index (fuumlr Daten oder Dienste) oder fungieren als
Maklero Superpeers sind auch als Peer-to-Peer System angeordneto Regulaumlren Peer hat meistens eine festen Superpeer an welchen er
sich bindet
Superpeer Netzwerk
Regulaumlrer Peer
Superpeer
Kurs 1678 ndash Verteilte SystemeZusammenfassung
18 Hybridarchitekturen Kombination von Client-Server und dezentralisierter Architektur Beispiele
o Superpeero Edge-Server
Edge (engl Kante) zwischen Internet und Unternehmensnetzwerk oder ISP eines Endanwenders
Verbindung von Client zum Edge als Server Edge als Peer-to-Peer zu Internetdiensten verbunden
o Kollaborative Systeme Knoten tritt dem System an definierter Stelle bei danach
benutzt er ein dezentralisiertes Verfahren zur Zusammenarbeit mit anderen Knoten
BitTorrent-System Globales Verzeichnis von torrent Dateien (strukturiert) Laden der Daten von aktiven anderen Knoten
(unstrukturiert)
19 Fehlertoleranz Anforderungen an Verlaumlssliche Systeme (solch ein System ist
fehlertolerant)o Verfuumlgbarkeit
Wahrscheinlichkeit dass das System zu einer bestimmt Zeitpunkt korrekt arbeitet und seine Dienste bereitstellt
o Zuverlaumlssigkeit Mit hoher Wahrscheinlichkeit lange Zeit ohne Unterbrechung
arbeiten kanno Funktionssicherheit
Bezeichnet den Umstand dass es zu keiner Katastrophe kommt wenn das System zeitweise unkorrekt arbeitet
o Wartbarkeit Wie leicht kann ein ausgefallenes System repariert werden
Ein Fehler ist ein Teil eines Systemzustandes welcher zum Ausfall fuumlhren kann Ein Ausfall beinhaltet das teilweise oder komplette Versagen von Diensten welche es anbietet
Die Ursache eines Ausfalls wird als Stoumlrung bezeichneto Voruumlbergehende Stoumlrungo Wiederkehrende Stoumlrungo Permanente Stoumlrung
Kontrolle von Stoumlrungen wird unterschieden ino Verhinderung von Stoumlrungeno Behebung von Stoumlrungeno Vorhersage von Stoumlrungen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es Systeme zu konstruieren welche selbst bei Stoumlrungen noch Ihre Dienste anbieten koumlnnen In diesem Fall ist das System Fehlertolerant
20 Fehlermodelle Kommt es zu einer Stoumlrung kann es folgende Ursachen haben
o Server hat Stoumlrungo Kommunikationskanal hat Stoumlrungo Beides hat eine Stoumlrung
Ausfallarteno Absturzausfall
Server steht staumlndiger Ausfall vom allen Diensteno Dienstausfall
Server antwortet nicht auf Anfragen Server erhaumllt keine Anfragen von Clients Server sendet keine Nachrichten
o Zeitbedingter Ausfall Antwortzeit liegt auszligerhalb des definierten Wertes
o Ausfall korrekter Antworten Falscher Wert wird geantwortet Server weicht vom Programmablauf ab
o ByzantinischerZufaumllliger Ausfall Server liefert zufaumlllige Antworten zu unbestimmten Zeitpunkten Server liefert absichtlich falsche Antworten (Byzantinischer
Fehler) Server liefert gar keine Antworten mehr(Ausfall-Stopp) Server liefert sinnlose fuumlr den Client als Unsinn zu erkennende
Antworten(Fail Safeausfallsicher da vom Client erkannt)
21 Maskierung von Stoumlrungen durch Redundanz Schluumlsseltechnik Redundanz
o Informationsredundanz zB CRC (Cyclic Redundancy Check) hinzufuumlgen von Bits zum
Datenstrom um im Fehlerfall einige zu korrigiereno Zeitliche Redundanz
Einfach spaumlter nochmals versuchen ein Aktion auszufuumlhreno Technische Redundanz
Zusaumltzliche Prozesse oder Ausruumlstung Gebraumluchlichste Technik zu Realisierung von Fehlertoleranz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 2 Kommunikation Verteilter Systeme
22 Netzwerkschichten Aufgrund des Fehlens von Shared Memory (mehrere Prozesse teilen sich
einen Speicher) erfolgt die gesamte Kommunikation in Verteilten Systemen uumlber das Senden und Empfangen von Nachrichten
Die Ansammlung in einem System verwendeten Protokolle wird als Protokollstapel bezeichnet
OSI (Open System Interconnection)-Modello Bestehend aus sieben Schichten
Application Layer (Anwendungsschicht) Aufgabe
o Unterstuumltzung von Netzwerkanwendungeno Schnittstelle zu Anwendungen
Beispieleo SIP Internettelefonieo HTTP Webseiteno FTP Datenuumlbertragungo Telneto SMTP E-Mail
Presentation Layer (Darstellungsschicht) Aufgabe
o Interpretation der Semantik der uumlbertragenen Bits in strukturierten Informationen wie zB Name Adresse oder Geldbetrag sowie deren Erstellung
o Formatumwandlung unterschiedlicher Datenrepraumlsentationen (ASCIIEBCDICUnicode oder big-little- Endianformat)
Session Layer (Sitzungsschicht Kommunikationssteuerungsschicht)
Aufgabeo Verbesserte Version der Transportschicht Stellt
Dialogkontrolle zur Verfuumlgung uumlberwacht welcher Teilnehmer gerade kommuniziert und bietet Synchronisationsmoumlglichkeiten an Wird nur selten unterstuumltzt
Transportation Layer (Transportschicht) Kommunikation zwischen Prozess auf Quellknoten
Prozess auf Zielknoten Aufgabe
o Stellt Daten anderen Prozessen zuo Ggf Fehlerkorrekturo Ggf Einhaltung der Reihenfolge von Paketen
Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o TCP (Transmission Control Protocol zuverlaumlssig verbindungsorientiert)
o UDP (User Datagram Protocol unzuverlaumlssig verbindungslos)
Network Layer (Vermittlungsschicht) Kommunikation zwischen Quellknoten Zielknoten Aufgabe
o Routing in WANs mit dem Ziel die kuumlrzesten Segmentlaufzeiten zu erreichen Segment ist die Dateneinheit dieser Schicht
Beispieleo X25 verbindungsorientiertes Protokoll beste Route
wird waumlhrend des Verbindungsaufbaus bestimmto IP verbindungsloses Protokoll Jedes IP-Paket wird
unabhaumlngig von allen anderen verschickt und geroutet
Data Link Layer (Sicherungsschicht) Kommunikation zwischen aktuellen Knoten
benachbarten naumlchsten Knoten auf dem Weg zu Zielknoten
Aufgabeo Senden von Bits in Frames (Rahmen)o Fehlerkorrektur zB CRCo Flusskontrolle Sliding Window Protokoll
o Ermoumlglich Bestaumltigungen von Frames auf der Sicherungsschicht
o Selective Repeat einzelne Sendungswiederholung
o Go Back n Uumlbertragung aller Frames ab dem verlorenem
Beispieleo Frame Relayo Etherneto ATM (Asynchrone Transfer Mode)
Physical Layer (Bituumlbertragungsschicht) Kommunikation zwischen aktuellen Knoten naumlchsten
Knoten auf dem Weg zu Zielknoten Aufgabe
o Uumlbertragung von beliebigen Bitfolgeno Bestimmung der physikalischen Darstellung fuumlr 0-
und 1-Bits Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Eigenschaften von Transaktionen A tomic die Transaktion wird ganz oder gar nicht ausgefuumlhrt C onsistent keine Verletzung von Systeminvarianten zB Gelderhaltung bei
Bankuumlberweisung I solated parallele Transaktionen beeinflussen sich nicht D urable die Aumlnderungen nach einem erfolgreichem Abarbeiten (commit)
der Transaktion sind dauerhaft
13 Verteilte Pervasive Systeme engl pervasive ndash durchdringend um sich greifend ein verteiltes pervasives System ist Teil unserer Umgebung bestehend aus mobilen kleinen mit Funkverbindung ausgestatteten Geraumlten keine Administration Instabilitaumlt ua wegen Ortsaumlnderung 3 Anforderungen an pervasive Anwendungen
o Erfassung kontextueller Aumlnderung (Ortsaumlnderung)o Unterstuumltzung von Ad-hoc-Zusammensetzung (Veraumlnderung des
Anwendungsangebots abhaumlngig vom Ort)o Gemeinsame Nutzung von Informationen (auch Bereitstellung) als
Standard Beispiele
o Haus- Und Multimediasystemeo Informationssyteme im Gesundheitswesen zB BAN (Body Area
Network) o Sensornetze
14 Softwarearchitektur Definition Betrachtung der logischen Anordnung der
Softwarekomponenten Komponente
o Definition modulare Einheit mit wohldefinierten erforderlichen und bereitgestellten Schnittstellen welche in Ihrer Umgebung einsetzbar ist
Architekturstilo Komponenteno Art der Verbindung der Komponenteno Daten welche zwischen den Komponenten ausgetauscht werdeno wie die Komponenten zu einem System konfiguriert werden
Konnektoro Definition Mechanismus welcher die Kommunikation
Koordination oder Kooperation zwischen Komponenten vermittelt
Kurs 1678 ndash Verteilte SystemeZusammenfassung
15 Softwarearchitekturstile Geschichtete Architektur zB Netzwerkprotokollstapel Abfragen
werden nach unten weitergeleitet und Anworten nach oben Objektbasierte Architektur zB Client-Server-Architektur
Kommunikation der einzelnen ObjekteKomponenten uumlber RPC (Remote Procedure Call)
Datenzentrierte Architektur Prozesse kommunizieren uumlber Daten zB uumlber Dateien auf einem gemeinsamen Repository (engl Ablage Behaumllter)
Ereignisbasierte Architektur zB PublishSubscribe-Systeme Prozesse kommunizieren uumlber Ereignisse
16 Zentralisierte Systemarchitekturen Client-Server Modell
o RequestReply Verhalteno Server bietet Dienste an zB DNS (Domain Name System)
o Client fordert Dienste auf Server an zB will er wwwardde in IP umwandeln lassen und fordert hierzu den DNS-Dienst auf dem Server an
o Ablauf Client sendet Anfrage Server nimmt diese entgegen Server verarbeitet die Anfrage Server sendet Antwort Client empfaumlngt Antwort
o Idempotent Anfragen welche beliebig oft gesendet werden koumlnnen wie in unserem Beispiel
o Genau einmal-Semantiko Mindestens einmal-Semantik (= Idempotent)o Houmlchstens einmal-Semantiko CS ist oft als Schichtarchitektur
Benutzerschnittstellenebene (Darstellung der Anwendung) Verarbeitungsebene (Anwendung) Datenebene (zB DB)
Multitier-Architektureno Definition (tier) Stufe Ebeneo 2-Tier-Architekturen
Fat Clients (Darstellung+VerarbeitungDatenDatenbank) Thin Clients (DarstellungVerarbeitung+DatenDatenbank)
o 3-Tier-Architekturen Darstellungsrechner Anwendungsserver Datenbankserver
Kurs 1678 ndash Verteilte SystemeZusammenfassung
17 Dezentralisierte Systemarchitekturen (Peer-to-Peer Architekturen) Vertikale Verteilung
o Logisch unterschiedliche Komponenten auf unterschiedlichen Rechnern
Horizontale Verteilungo Aufteilung von Server und Clientso Client und Server physisch in funktional gleiche Teile zerlegt dh
Client und Server laufen auf einer Hardware aber arbeiten nur mit einer Teilmenge an Daten oder Dienste des gesamten Systems
Peer-to-Peer unterstuumltzt horizontale Verteilungo Anzahl der moumlglichen Kommunikationspaare bei n beteiligten Rechner
ist n(n-1)2o Atomisches P2P (Peer-to-Peer)
Keine zentrale Verwaltung des Netzes Bei Beitritt gibt es 2 Moumlglichkeiten
Broadcastanfrage an alle Clients um zu erfahren welche Dienst vorhanden sind
o Beispiel Datei- und Druckerfreigabe von Microsoft Verbindung zu bekanntem Host (aus Liste) und Erfragung
der Topologie und der Diensteo Benutzerzentriertes P2P
Einem Atomischen P2P wird ein fuumlr die Vermittlung von Benutzer egal vom welchem Rechner zustaumlndiger Server hinzugefuumlgt
Der Vermittlungsserver enthaumllt eine Liste von Benutzern und deren Dienste (Freigabe einer MP3 Datei)
Betritt ein Benutzer dieses P2P meldet er sich mit seinen Diensten am Vermittlungsserver an
o Datenzentriertes P2P Vermittlungsserver merkt sich wo Daten und Dienste liegen
sonst aumlhnlich wie bei benutzerzentrierten P2P Overlay-Netzwerk uumlberlagert LANMANWAN und bildet somit ein eigenes
Netzwerko Peers sind Knoten des Netzwerks welche durch Prozesse gebildet
werdeno Verbindungen sind die moumlglichen Kommunikationskanaumlle zwischen
den Peerso Strukturierteo Unstrukturiere
Strukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)o Konstruktion des Netzwerks durch deterministisches Verfahreno Verteilte Hash-Tabelle (Distributed Hash-Table DHT) jeder Knoten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
erhaumllt zufaumlllige Zahl aus dem Bezeichnerraumo Chord-System Anordnung der Knoten als logischer Ringo CAN (Content Adressable Network) d-dimensionales kartesisches
Koordinatensystem wird vollstaumlndig zwischen allen Koten auftgeteilt Unstrukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)
o Knotenbildung durch Zufallsalgorithmen Topologieverwaltung in Overlay-Nertzwerken
o Realisierung der Anordnung der Knoten im Raum Topologie durch eine Kombination aus strukturierten und unstrukturierten Peer-to-Peer Systemen in 2 Schichten
Superpeer-Konzepteo Superpeer enthalten Index (fuumlr Daten oder Dienste) oder fungieren als
Maklero Superpeers sind auch als Peer-to-Peer System angeordneto Regulaumlren Peer hat meistens eine festen Superpeer an welchen er
sich bindet
Superpeer Netzwerk
Regulaumlrer Peer
Superpeer
Kurs 1678 ndash Verteilte SystemeZusammenfassung
18 Hybridarchitekturen Kombination von Client-Server und dezentralisierter Architektur Beispiele
o Superpeero Edge-Server
Edge (engl Kante) zwischen Internet und Unternehmensnetzwerk oder ISP eines Endanwenders
Verbindung von Client zum Edge als Server Edge als Peer-to-Peer zu Internetdiensten verbunden
o Kollaborative Systeme Knoten tritt dem System an definierter Stelle bei danach
benutzt er ein dezentralisiertes Verfahren zur Zusammenarbeit mit anderen Knoten
BitTorrent-System Globales Verzeichnis von torrent Dateien (strukturiert) Laden der Daten von aktiven anderen Knoten
(unstrukturiert)
19 Fehlertoleranz Anforderungen an Verlaumlssliche Systeme (solch ein System ist
fehlertolerant)o Verfuumlgbarkeit
Wahrscheinlichkeit dass das System zu einer bestimmt Zeitpunkt korrekt arbeitet und seine Dienste bereitstellt
o Zuverlaumlssigkeit Mit hoher Wahrscheinlichkeit lange Zeit ohne Unterbrechung
arbeiten kanno Funktionssicherheit
Bezeichnet den Umstand dass es zu keiner Katastrophe kommt wenn das System zeitweise unkorrekt arbeitet
o Wartbarkeit Wie leicht kann ein ausgefallenes System repariert werden
Ein Fehler ist ein Teil eines Systemzustandes welcher zum Ausfall fuumlhren kann Ein Ausfall beinhaltet das teilweise oder komplette Versagen von Diensten welche es anbietet
Die Ursache eines Ausfalls wird als Stoumlrung bezeichneto Voruumlbergehende Stoumlrungo Wiederkehrende Stoumlrungo Permanente Stoumlrung
Kontrolle von Stoumlrungen wird unterschieden ino Verhinderung von Stoumlrungeno Behebung von Stoumlrungeno Vorhersage von Stoumlrungen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es Systeme zu konstruieren welche selbst bei Stoumlrungen noch Ihre Dienste anbieten koumlnnen In diesem Fall ist das System Fehlertolerant
20 Fehlermodelle Kommt es zu einer Stoumlrung kann es folgende Ursachen haben
o Server hat Stoumlrungo Kommunikationskanal hat Stoumlrungo Beides hat eine Stoumlrung
Ausfallarteno Absturzausfall
Server steht staumlndiger Ausfall vom allen Diensteno Dienstausfall
Server antwortet nicht auf Anfragen Server erhaumllt keine Anfragen von Clients Server sendet keine Nachrichten
o Zeitbedingter Ausfall Antwortzeit liegt auszligerhalb des definierten Wertes
o Ausfall korrekter Antworten Falscher Wert wird geantwortet Server weicht vom Programmablauf ab
o ByzantinischerZufaumllliger Ausfall Server liefert zufaumlllige Antworten zu unbestimmten Zeitpunkten Server liefert absichtlich falsche Antworten (Byzantinischer
Fehler) Server liefert gar keine Antworten mehr(Ausfall-Stopp) Server liefert sinnlose fuumlr den Client als Unsinn zu erkennende
Antworten(Fail Safeausfallsicher da vom Client erkannt)
21 Maskierung von Stoumlrungen durch Redundanz Schluumlsseltechnik Redundanz
o Informationsredundanz zB CRC (Cyclic Redundancy Check) hinzufuumlgen von Bits zum
Datenstrom um im Fehlerfall einige zu korrigiereno Zeitliche Redundanz
Einfach spaumlter nochmals versuchen ein Aktion auszufuumlhreno Technische Redundanz
Zusaumltzliche Prozesse oder Ausruumlstung Gebraumluchlichste Technik zu Realisierung von Fehlertoleranz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 2 Kommunikation Verteilter Systeme
22 Netzwerkschichten Aufgrund des Fehlens von Shared Memory (mehrere Prozesse teilen sich
einen Speicher) erfolgt die gesamte Kommunikation in Verteilten Systemen uumlber das Senden und Empfangen von Nachrichten
Die Ansammlung in einem System verwendeten Protokolle wird als Protokollstapel bezeichnet
OSI (Open System Interconnection)-Modello Bestehend aus sieben Schichten
Application Layer (Anwendungsschicht) Aufgabe
o Unterstuumltzung von Netzwerkanwendungeno Schnittstelle zu Anwendungen
Beispieleo SIP Internettelefonieo HTTP Webseiteno FTP Datenuumlbertragungo Telneto SMTP E-Mail
Presentation Layer (Darstellungsschicht) Aufgabe
o Interpretation der Semantik der uumlbertragenen Bits in strukturierten Informationen wie zB Name Adresse oder Geldbetrag sowie deren Erstellung
o Formatumwandlung unterschiedlicher Datenrepraumlsentationen (ASCIIEBCDICUnicode oder big-little- Endianformat)
Session Layer (Sitzungsschicht Kommunikationssteuerungsschicht)
Aufgabeo Verbesserte Version der Transportschicht Stellt
Dialogkontrolle zur Verfuumlgung uumlberwacht welcher Teilnehmer gerade kommuniziert und bietet Synchronisationsmoumlglichkeiten an Wird nur selten unterstuumltzt
Transportation Layer (Transportschicht) Kommunikation zwischen Prozess auf Quellknoten
Prozess auf Zielknoten Aufgabe
o Stellt Daten anderen Prozessen zuo Ggf Fehlerkorrekturo Ggf Einhaltung der Reihenfolge von Paketen
Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o TCP (Transmission Control Protocol zuverlaumlssig verbindungsorientiert)
o UDP (User Datagram Protocol unzuverlaumlssig verbindungslos)
Network Layer (Vermittlungsschicht) Kommunikation zwischen Quellknoten Zielknoten Aufgabe
o Routing in WANs mit dem Ziel die kuumlrzesten Segmentlaufzeiten zu erreichen Segment ist die Dateneinheit dieser Schicht
Beispieleo X25 verbindungsorientiertes Protokoll beste Route
wird waumlhrend des Verbindungsaufbaus bestimmto IP verbindungsloses Protokoll Jedes IP-Paket wird
unabhaumlngig von allen anderen verschickt und geroutet
Data Link Layer (Sicherungsschicht) Kommunikation zwischen aktuellen Knoten
benachbarten naumlchsten Knoten auf dem Weg zu Zielknoten
Aufgabeo Senden von Bits in Frames (Rahmen)o Fehlerkorrektur zB CRCo Flusskontrolle Sliding Window Protokoll
o Ermoumlglich Bestaumltigungen von Frames auf der Sicherungsschicht
o Selective Repeat einzelne Sendungswiederholung
o Go Back n Uumlbertragung aller Frames ab dem verlorenem
Beispieleo Frame Relayo Etherneto ATM (Asynchrone Transfer Mode)
Physical Layer (Bituumlbertragungsschicht) Kommunikation zwischen aktuellen Knoten naumlchsten
Knoten auf dem Weg zu Zielknoten Aufgabe
o Uumlbertragung von beliebigen Bitfolgeno Bestimmung der physikalischen Darstellung fuumlr 0-
und 1-Bits Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
15 Softwarearchitekturstile Geschichtete Architektur zB Netzwerkprotokollstapel Abfragen
werden nach unten weitergeleitet und Anworten nach oben Objektbasierte Architektur zB Client-Server-Architektur
Kommunikation der einzelnen ObjekteKomponenten uumlber RPC (Remote Procedure Call)
Datenzentrierte Architektur Prozesse kommunizieren uumlber Daten zB uumlber Dateien auf einem gemeinsamen Repository (engl Ablage Behaumllter)
Ereignisbasierte Architektur zB PublishSubscribe-Systeme Prozesse kommunizieren uumlber Ereignisse
16 Zentralisierte Systemarchitekturen Client-Server Modell
o RequestReply Verhalteno Server bietet Dienste an zB DNS (Domain Name System)
o Client fordert Dienste auf Server an zB will er wwwardde in IP umwandeln lassen und fordert hierzu den DNS-Dienst auf dem Server an
o Ablauf Client sendet Anfrage Server nimmt diese entgegen Server verarbeitet die Anfrage Server sendet Antwort Client empfaumlngt Antwort
o Idempotent Anfragen welche beliebig oft gesendet werden koumlnnen wie in unserem Beispiel
o Genau einmal-Semantiko Mindestens einmal-Semantik (= Idempotent)o Houmlchstens einmal-Semantiko CS ist oft als Schichtarchitektur
Benutzerschnittstellenebene (Darstellung der Anwendung) Verarbeitungsebene (Anwendung) Datenebene (zB DB)
Multitier-Architektureno Definition (tier) Stufe Ebeneo 2-Tier-Architekturen
Fat Clients (Darstellung+VerarbeitungDatenDatenbank) Thin Clients (DarstellungVerarbeitung+DatenDatenbank)
o 3-Tier-Architekturen Darstellungsrechner Anwendungsserver Datenbankserver
Kurs 1678 ndash Verteilte SystemeZusammenfassung
17 Dezentralisierte Systemarchitekturen (Peer-to-Peer Architekturen) Vertikale Verteilung
o Logisch unterschiedliche Komponenten auf unterschiedlichen Rechnern
Horizontale Verteilungo Aufteilung von Server und Clientso Client und Server physisch in funktional gleiche Teile zerlegt dh
Client und Server laufen auf einer Hardware aber arbeiten nur mit einer Teilmenge an Daten oder Dienste des gesamten Systems
Peer-to-Peer unterstuumltzt horizontale Verteilungo Anzahl der moumlglichen Kommunikationspaare bei n beteiligten Rechner
ist n(n-1)2o Atomisches P2P (Peer-to-Peer)
Keine zentrale Verwaltung des Netzes Bei Beitritt gibt es 2 Moumlglichkeiten
Broadcastanfrage an alle Clients um zu erfahren welche Dienst vorhanden sind
o Beispiel Datei- und Druckerfreigabe von Microsoft Verbindung zu bekanntem Host (aus Liste) und Erfragung
der Topologie und der Diensteo Benutzerzentriertes P2P
Einem Atomischen P2P wird ein fuumlr die Vermittlung von Benutzer egal vom welchem Rechner zustaumlndiger Server hinzugefuumlgt
Der Vermittlungsserver enthaumllt eine Liste von Benutzern und deren Dienste (Freigabe einer MP3 Datei)
Betritt ein Benutzer dieses P2P meldet er sich mit seinen Diensten am Vermittlungsserver an
o Datenzentriertes P2P Vermittlungsserver merkt sich wo Daten und Dienste liegen
sonst aumlhnlich wie bei benutzerzentrierten P2P Overlay-Netzwerk uumlberlagert LANMANWAN und bildet somit ein eigenes
Netzwerko Peers sind Knoten des Netzwerks welche durch Prozesse gebildet
werdeno Verbindungen sind die moumlglichen Kommunikationskanaumlle zwischen
den Peerso Strukturierteo Unstrukturiere
Strukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)o Konstruktion des Netzwerks durch deterministisches Verfahreno Verteilte Hash-Tabelle (Distributed Hash-Table DHT) jeder Knoten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
erhaumllt zufaumlllige Zahl aus dem Bezeichnerraumo Chord-System Anordnung der Knoten als logischer Ringo CAN (Content Adressable Network) d-dimensionales kartesisches
Koordinatensystem wird vollstaumlndig zwischen allen Koten auftgeteilt Unstrukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)
o Knotenbildung durch Zufallsalgorithmen Topologieverwaltung in Overlay-Nertzwerken
o Realisierung der Anordnung der Knoten im Raum Topologie durch eine Kombination aus strukturierten und unstrukturierten Peer-to-Peer Systemen in 2 Schichten
Superpeer-Konzepteo Superpeer enthalten Index (fuumlr Daten oder Dienste) oder fungieren als
Maklero Superpeers sind auch als Peer-to-Peer System angeordneto Regulaumlren Peer hat meistens eine festen Superpeer an welchen er
sich bindet
Superpeer Netzwerk
Regulaumlrer Peer
Superpeer
Kurs 1678 ndash Verteilte SystemeZusammenfassung
18 Hybridarchitekturen Kombination von Client-Server und dezentralisierter Architektur Beispiele
o Superpeero Edge-Server
Edge (engl Kante) zwischen Internet und Unternehmensnetzwerk oder ISP eines Endanwenders
Verbindung von Client zum Edge als Server Edge als Peer-to-Peer zu Internetdiensten verbunden
o Kollaborative Systeme Knoten tritt dem System an definierter Stelle bei danach
benutzt er ein dezentralisiertes Verfahren zur Zusammenarbeit mit anderen Knoten
BitTorrent-System Globales Verzeichnis von torrent Dateien (strukturiert) Laden der Daten von aktiven anderen Knoten
(unstrukturiert)
19 Fehlertoleranz Anforderungen an Verlaumlssliche Systeme (solch ein System ist
fehlertolerant)o Verfuumlgbarkeit
Wahrscheinlichkeit dass das System zu einer bestimmt Zeitpunkt korrekt arbeitet und seine Dienste bereitstellt
o Zuverlaumlssigkeit Mit hoher Wahrscheinlichkeit lange Zeit ohne Unterbrechung
arbeiten kanno Funktionssicherheit
Bezeichnet den Umstand dass es zu keiner Katastrophe kommt wenn das System zeitweise unkorrekt arbeitet
o Wartbarkeit Wie leicht kann ein ausgefallenes System repariert werden
Ein Fehler ist ein Teil eines Systemzustandes welcher zum Ausfall fuumlhren kann Ein Ausfall beinhaltet das teilweise oder komplette Versagen von Diensten welche es anbietet
Die Ursache eines Ausfalls wird als Stoumlrung bezeichneto Voruumlbergehende Stoumlrungo Wiederkehrende Stoumlrungo Permanente Stoumlrung
Kontrolle von Stoumlrungen wird unterschieden ino Verhinderung von Stoumlrungeno Behebung von Stoumlrungeno Vorhersage von Stoumlrungen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es Systeme zu konstruieren welche selbst bei Stoumlrungen noch Ihre Dienste anbieten koumlnnen In diesem Fall ist das System Fehlertolerant
20 Fehlermodelle Kommt es zu einer Stoumlrung kann es folgende Ursachen haben
o Server hat Stoumlrungo Kommunikationskanal hat Stoumlrungo Beides hat eine Stoumlrung
Ausfallarteno Absturzausfall
Server steht staumlndiger Ausfall vom allen Diensteno Dienstausfall
Server antwortet nicht auf Anfragen Server erhaumllt keine Anfragen von Clients Server sendet keine Nachrichten
o Zeitbedingter Ausfall Antwortzeit liegt auszligerhalb des definierten Wertes
o Ausfall korrekter Antworten Falscher Wert wird geantwortet Server weicht vom Programmablauf ab
o ByzantinischerZufaumllliger Ausfall Server liefert zufaumlllige Antworten zu unbestimmten Zeitpunkten Server liefert absichtlich falsche Antworten (Byzantinischer
Fehler) Server liefert gar keine Antworten mehr(Ausfall-Stopp) Server liefert sinnlose fuumlr den Client als Unsinn zu erkennende
Antworten(Fail Safeausfallsicher da vom Client erkannt)
21 Maskierung von Stoumlrungen durch Redundanz Schluumlsseltechnik Redundanz
o Informationsredundanz zB CRC (Cyclic Redundancy Check) hinzufuumlgen von Bits zum
Datenstrom um im Fehlerfall einige zu korrigiereno Zeitliche Redundanz
Einfach spaumlter nochmals versuchen ein Aktion auszufuumlhreno Technische Redundanz
Zusaumltzliche Prozesse oder Ausruumlstung Gebraumluchlichste Technik zu Realisierung von Fehlertoleranz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 2 Kommunikation Verteilter Systeme
22 Netzwerkschichten Aufgrund des Fehlens von Shared Memory (mehrere Prozesse teilen sich
einen Speicher) erfolgt die gesamte Kommunikation in Verteilten Systemen uumlber das Senden und Empfangen von Nachrichten
Die Ansammlung in einem System verwendeten Protokolle wird als Protokollstapel bezeichnet
OSI (Open System Interconnection)-Modello Bestehend aus sieben Schichten
Application Layer (Anwendungsschicht) Aufgabe
o Unterstuumltzung von Netzwerkanwendungeno Schnittstelle zu Anwendungen
Beispieleo SIP Internettelefonieo HTTP Webseiteno FTP Datenuumlbertragungo Telneto SMTP E-Mail
Presentation Layer (Darstellungsschicht) Aufgabe
o Interpretation der Semantik der uumlbertragenen Bits in strukturierten Informationen wie zB Name Adresse oder Geldbetrag sowie deren Erstellung
o Formatumwandlung unterschiedlicher Datenrepraumlsentationen (ASCIIEBCDICUnicode oder big-little- Endianformat)
Session Layer (Sitzungsschicht Kommunikationssteuerungsschicht)
Aufgabeo Verbesserte Version der Transportschicht Stellt
Dialogkontrolle zur Verfuumlgung uumlberwacht welcher Teilnehmer gerade kommuniziert und bietet Synchronisationsmoumlglichkeiten an Wird nur selten unterstuumltzt
Transportation Layer (Transportschicht) Kommunikation zwischen Prozess auf Quellknoten
Prozess auf Zielknoten Aufgabe
o Stellt Daten anderen Prozessen zuo Ggf Fehlerkorrekturo Ggf Einhaltung der Reihenfolge von Paketen
Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o TCP (Transmission Control Protocol zuverlaumlssig verbindungsorientiert)
o UDP (User Datagram Protocol unzuverlaumlssig verbindungslos)
Network Layer (Vermittlungsschicht) Kommunikation zwischen Quellknoten Zielknoten Aufgabe
o Routing in WANs mit dem Ziel die kuumlrzesten Segmentlaufzeiten zu erreichen Segment ist die Dateneinheit dieser Schicht
Beispieleo X25 verbindungsorientiertes Protokoll beste Route
wird waumlhrend des Verbindungsaufbaus bestimmto IP verbindungsloses Protokoll Jedes IP-Paket wird
unabhaumlngig von allen anderen verschickt und geroutet
Data Link Layer (Sicherungsschicht) Kommunikation zwischen aktuellen Knoten
benachbarten naumlchsten Knoten auf dem Weg zu Zielknoten
Aufgabeo Senden von Bits in Frames (Rahmen)o Fehlerkorrektur zB CRCo Flusskontrolle Sliding Window Protokoll
o Ermoumlglich Bestaumltigungen von Frames auf der Sicherungsschicht
o Selective Repeat einzelne Sendungswiederholung
o Go Back n Uumlbertragung aller Frames ab dem verlorenem
Beispieleo Frame Relayo Etherneto ATM (Asynchrone Transfer Mode)
Physical Layer (Bituumlbertragungsschicht) Kommunikation zwischen aktuellen Knoten naumlchsten
Knoten auf dem Weg zu Zielknoten Aufgabe
o Uumlbertragung von beliebigen Bitfolgeno Bestimmung der physikalischen Darstellung fuumlr 0-
und 1-Bits Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
17 Dezentralisierte Systemarchitekturen (Peer-to-Peer Architekturen) Vertikale Verteilung
o Logisch unterschiedliche Komponenten auf unterschiedlichen Rechnern
Horizontale Verteilungo Aufteilung von Server und Clientso Client und Server physisch in funktional gleiche Teile zerlegt dh
Client und Server laufen auf einer Hardware aber arbeiten nur mit einer Teilmenge an Daten oder Dienste des gesamten Systems
Peer-to-Peer unterstuumltzt horizontale Verteilungo Anzahl der moumlglichen Kommunikationspaare bei n beteiligten Rechner
ist n(n-1)2o Atomisches P2P (Peer-to-Peer)
Keine zentrale Verwaltung des Netzes Bei Beitritt gibt es 2 Moumlglichkeiten
Broadcastanfrage an alle Clients um zu erfahren welche Dienst vorhanden sind
o Beispiel Datei- und Druckerfreigabe von Microsoft Verbindung zu bekanntem Host (aus Liste) und Erfragung
der Topologie und der Diensteo Benutzerzentriertes P2P
Einem Atomischen P2P wird ein fuumlr die Vermittlung von Benutzer egal vom welchem Rechner zustaumlndiger Server hinzugefuumlgt
Der Vermittlungsserver enthaumllt eine Liste von Benutzern und deren Dienste (Freigabe einer MP3 Datei)
Betritt ein Benutzer dieses P2P meldet er sich mit seinen Diensten am Vermittlungsserver an
o Datenzentriertes P2P Vermittlungsserver merkt sich wo Daten und Dienste liegen
sonst aumlhnlich wie bei benutzerzentrierten P2P Overlay-Netzwerk uumlberlagert LANMANWAN und bildet somit ein eigenes
Netzwerko Peers sind Knoten des Netzwerks welche durch Prozesse gebildet
werdeno Verbindungen sind die moumlglichen Kommunikationskanaumlle zwischen
den Peerso Strukturierteo Unstrukturiere
Strukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)o Konstruktion des Netzwerks durch deterministisches Verfahreno Verteilte Hash-Tabelle (Distributed Hash-Table DHT) jeder Knoten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
erhaumllt zufaumlllige Zahl aus dem Bezeichnerraumo Chord-System Anordnung der Knoten als logischer Ringo CAN (Content Adressable Network) d-dimensionales kartesisches
Koordinatensystem wird vollstaumlndig zwischen allen Koten auftgeteilt Unstrukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)
o Knotenbildung durch Zufallsalgorithmen Topologieverwaltung in Overlay-Nertzwerken
o Realisierung der Anordnung der Knoten im Raum Topologie durch eine Kombination aus strukturierten und unstrukturierten Peer-to-Peer Systemen in 2 Schichten
Superpeer-Konzepteo Superpeer enthalten Index (fuumlr Daten oder Dienste) oder fungieren als
Maklero Superpeers sind auch als Peer-to-Peer System angeordneto Regulaumlren Peer hat meistens eine festen Superpeer an welchen er
sich bindet
Superpeer Netzwerk
Regulaumlrer Peer
Superpeer
Kurs 1678 ndash Verteilte SystemeZusammenfassung
18 Hybridarchitekturen Kombination von Client-Server und dezentralisierter Architektur Beispiele
o Superpeero Edge-Server
Edge (engl Kante) zwischen Internet und Unternehmensnetzwerk oder ISP eines Endanwenders
Verbindung von Client zum Edge als Server Edge als Peer-to-Peer zu Internetdiensten verbunden
o Kollaborative Systeme Knoten tritt dem System an definierter Stelle bei danach
benutzt er ein dezentralisiertes Verfahren zur Zusammenarbeit mit anderen Knoten
BitTorrent-System Globales Verzeichnis von torrent Dateien (strukturiert) Laden der Daten von aktiven anderen Knoten
(unstrukturiert)
19 Fehlertoleranz Anforderungen an Verlaumlssliche Systeme (solch ein System ist
fehlertolerant)o Verfuumlgbarkeit
Wahrscheinlichkeit dass das System zu einer bestimmt Zeitpunkt korrekt arbeitet und seine Dienste bereitstellt
o Zuverlaumlssigkeit Mit hoher Wahrscheinlichkeit lange Zeit ohne Unterbrechung
arbeiten kanno Funktionssicherheit
Bezeichnet den Umstand dass es zu keiner Katastrophe kommt wenn das System zeitweise unkorrekt arbeitet
o Wartbarkeit Wie leicht kann ein ausgefallenes System repariert werden
Ein Fehler ist ein Teil eines Systemzustandes welcher zum Ausfall fuumlhren kann Ein Ausfall beinhaltet das teilweise oder komplette Versagen von Diensten welche es anbietet
Die Ursache eines Ausfalls wird als Stoumlrung bezeichneto Voruumlbergehende Stoumlrungo Wiederkehrende Stoumlrungo Permanente Stoumlrung
Kontrolle von Stoumlrungen wird unterschieden ino Verhinderung von Stoumlrungeno Behebung von Stoumlrungeno Vorhersage von Stoumlrungen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es Systeme zu konstruieren welche selbst bei Stoumlrungen noch Ihre Dienste anbieten koumlnnen In diesem Fall ist das System Fehlertolerant
20 Fehlermodelle Kommt es zu einer Stoumlrung kann es folgende Ursachen haben
o Server hat Stoumlrungo Kommunikationskanal hat Stoumlrungo Beides hat eine Stoumlrung
Ausfallarteno Absturzausfall
Server steht staumlndiger Ausfall vom allen Diensteno Dienstausfall
Server antwortet nicht auf Anfragen Server erhaumllt keine Anfragen von Clients Server sendet keine Nachrichten
o Zeitbedingter Ausfall Antwortzeit liegt auszligerhalb des definierten Wertes
o Ausfall korrekter Antworten Falscher Wert wird geantwortet Server weicht vom Programmablauf ab
o ByzantinischerZufaumllliger Ausfall Server liefert zufaumlllige Antworten zu unbestimmten Zeitpunkten Server liefert absichtlich falsche Antworten (Byzantinischer
Fehler) Server liefert gar keine Antworten mehr(Ausfall-Stopp) Server liefert sinnlose fuumlr den Client als Unsinn zu erkennende
Antworten(Fail Safeausfallsicher da vom Client erkannt)
21 Maskierung von Stoumlrungen durch Redundanz Schluumlsseltechnik Redundanz
o Informationsredundanz zB CRC (Cyclic Redundancy Check) hinzufuumlgen von Bits zum
Datenstrom um im Fehlerfall einige zu korrigiereno Zeitliche Redundanz
Einfach spaumlter nochmals versuchen ein Aktion auszufuumlhreno Technische Redundanz
Zusaumltzliche Prozesse oder Ausruumlstung Gebraumluchlichste Technik zu Realisierung von Fehlertoleranz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 2 Kommunikation Verteilter Systeme
22 Netzwerkschichten Aufgrund des Fehlens von Shared Memory (mehrere Prozesse teilen sich
einen Speicher) erfolgt die gesamte Kommunikation in Verteilten Systemen uumlber das Senden und Empfangen von Nachrichten
Die Ansammlung in einem System verwendeten Protokolle wird als Protokollstapel bezeichnet
OSI (Open System Interconnection)-Modello Bestehend aus sieben Schichten
Application Layer (Anwendungsschicht) Aufgabe
o Unterstuumltzung von Netzwerkanwendungeno Schnittstelle zu Anwendungen
Beispieleo SIP Internettelefonieo HTTP Webseiteno FTP Datenuumlbertragungo Telneto SMTP E-Mail
Presentation Layer (Darstellungsschicht) Aufgabe
o Interpretation der Semantik der uumlbertragenen Bits in strukturierten Informationen wie zB Name Adresse oder Geldbetrag sowie deren Erstellung
o Formatumwandlung unterschiedlicher Datenrepraumlsentationen (ASCIIEBCDICUnicode oder big-little- Endianformat)
Session Layer (Sitzungsschicht Kommunikationssteuerungsschicht)
Aufgabeo Verbesserte Version der Transportschicht Stellt
Dialogkontrolle zur Verfuumlgung uumlberwacht welcher Teilnehmer gerade kommuniziert und bietet Synchronisationsmoumlglichkeiten an Wird nur selten unterstuumltzt
Transportation Layer (Transportschicht) Kommunikation zwischen Prozess auf Quellknoten
Prozess auf Zielknoten Aufgabe
o Stellt Daten anderen Prozessen zuo Ggf Fehlerkorrekturo Ggf Einhaltung der Reihenfolge von Paketen
Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o TCP (Transmission Control Protocol zuverlaumlssig verbindungsorientiert)
o UDP (User Datagram Protocol unzuverlaumlssig verbindungslos)
Network Layer (Vermittlungsschicht) Kommunikation zwischen Quellknoten Zielknoten Aufgabe
o Routing in WANs mit dem Ziel die kuumlrzesten Segmentlaufzeiten zu erreichen Segment ist die Dateneinheit dieser Schicht
Beispieleo X25 verbindungsorientiertes Protokoll beste Route
wird waumlhrend des Verbindungsaufbaus bestimmto IP verbindungsloses Protokoll Jedes IP-Paket wird
unabhaumlngig von allen anderen verschickt und geroutet
Data Link Layer (Sicherungsschicht) Kommunikation zwischen aktuellen Knoten
benachbarten naumlchsten Knoten auf dem Weg zu Zielknoten
Aufgabeo Senden von Bits in Frames (Rahmen)o Fehlerkorrektur zB CRCo Flusskontrolle Sliding Window Protokoll
o Ermoumlglich Bestaumltigungen von Frames auf der Sicherungsschicht
o Selective Repeat einzelne Sendungswiederholung
o Go Back n Uumlbertragung aller Frames ab dem verlorenem
Beispieleo Frame Relayo Etherneto ATM (Asynchrone Transfer Mode)
Physical Layer (Bituumlbertragungsschicht) Kommunikation zwischen aktuellen Knoten naumlchsten
Knoten auf dem Weg zu Zielknoten Aufgabe
o Uumlbertragung von beliebigen Bitfolgeno Bestimmung der physikalischen Darstellung fuumlr 0-
und 1-Bits Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
erhaumllt zufaumlllige Zahl aus dem Bezeichnerraumo Chord-System Anordnung der Knoten als logischer Ringo CAN (Content Adressable Network) d-dimensionales kartesisches
Koordinatensystem wird vollstaumlndig zwischen allen Koten auftgeteilt Unstrukturierte Peer-to-Peer Architekturen (Overlay-Netzwerke)
o Knotenbildung durch Zufallsalgorithmen Topologieverwaltung in Overlay-Nertzwerken
o Realisierung der Anordnung der Knoten im Raum Topologie durch eine Kombination aus strukturierten und unstrukturierten Peer-to-Peer Systemen in 2 Schichten
Superpeer-Konzepteo Superpeer enthalten Index (fuumlr Daten oder Dienste) oder fungieren als
Maklero Superpeers sind auch als Peer-to-Peer System angeordneto Regulaumlren Peer hat meistens eine festen Superpeer an welchen er
sich bindet
Superpeer Netzwerk
Regulaumlrer Peer
Superpeer
Kurs 1678 ndash Verteilte SystemeZusammenfassung
18 Hybridarchitekturen Kombination von Client-Server und dezentralisierter Architektur Beispiele
o Superpeero Edge-Server
Edge (engl Kante) zwischen Internet und Unternehmensnetzwerk oder ISP eines Endanwenders
Verbindung von Client zum Edge als Server Edge als Peer-to-Peer zu Internetdiensten verbunden
o Kollaborative Systeme Knoten tritt dem System an definierter Stelle bei danach
benutzt er ein dezentralisiertes Verfahren zur Zusammenarbeit mit anderen Knoten
BitTorrent-System Globales Verzeichnis von torrent Dateien (strukturiert) Laden der Daten von aktiven anderen Knoten
(unstrukturiert)
19 Fehlertoleranz Anforderungen an Verlaumlssliche Systeme (solch ein System ist
fehlertolerant)o Verfuumlgbarkeit
Wahrscheinlichkeit dass das System zu einer bestimmt Zeitpunkt korrekt arbeitet und seine Dienste bereitstellt
o Zuverlaumlssigkeit Mit hoher Wahrscheinlichkeit lange Zeit ohne Unterbrechung
arbeiten kanno Funktionssicherheit
Bezeichnet den Umstand dass es zu keiner Katastrophe kommt wenn das System zeitweise unkorrekt arbeitet
o Wartbarkeit Wie leicht kann ein ausgefallenes System repariert werden
Ein Fehler ist ein Teil eines Systemzustandes welcher zum Ausfall fuumlhren kann Ein Ausfall beinhaltet das teilweise oder komplette Versagen von Diensten welche es anbietet
Die Ursache eines Ausfalls wird als Stoumlrung bezeichneto Voruumlbergehende Stoumlrungo Wiederkehrende Stoumlrungo Permanente Stoumlrung
Kontrolle von Stoumlrungen wird unterschieden ino Verhinderung von Stoumlrungeno Behebung von Stoumlrungeno Vorhersage von Stoumlrungen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es Systeme zu konstruieren welche selbst bei Stoumlrungen noch Ihre Dienste anbieten koumlnnen In diesem Fall ist das System Fehlertolerant
20 Fehlermodelle Kommt es zu einer Stoumlrung kann es folgende Ursachen haben
o Server hat Stoumlrungo Kommunikationskanal hat Stoumlrungo Beides hat eine Stoumlrung
Ausfallarteno Absturzausfall
Server steht staumlndiger Ausfall vom allen Diensteno Dienstausfall
Server antwortet nicht auf Anfragen Server erhaumllt keine Anfragen von Clients Server sendet keine Nachrichten
o Zeitbedingter Ausfall Antwortzeit liegt auszligerhalb des definierten Wertes
o Ausfall korrekter Antworten Falscher Wert wird geantwortet Server weicht vom Programmablauf ab
o ByzantinischerZufaumllliger Ausfall Server liefert zufaumlllige Antworten zu unbestimmten Zeitpunkten Server liefert absichtlich falsche Antworten (Byzantinischer
Fehler) Server liefert gar keine Antworten mehr(Ausfall-Stopp) Server liefert sinnlose fuumlr den Client als Unsinn zu erkennende
Antworten(Fail Safeausfallsicher da vom Client erkannt)
21 Maskierung von Stoumlrungen durch Redundanz Schluumlsseltechnik Redundanz
o Informationsredundanz zB CRC (Cyclic Redundancy Check) hinzufuumlgen von Bits zum
Datenstrom um im Fehlerfall einige zu korrigiereno Zeitliche Redundanz
Einfach spaumlter nochmals versuchen ein Aktion auszufuumlhreno Technische Redundanz
Zusaumltzliche Prozesse oder Ausruumlstung Gebraumluchlichste Technik zu Realisierung von Fehlertoleranz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 2 Kommunikation Verteilter Systeme
22 Netzwerkschichten Aufgrund des Fehlens von Shared Memory (mehrere Prozesse teilen sich
einen Speicher) erfolgt die gesamte Kommunikation in Verteilten Systemen uumlber das Senden und Empfangen von Nachrichten
Die Ansammlung in einem System verwendeten Protokolle wird als Protokollstapel bezeichnet
OSI (Open System Interconnection)-Modello Bestehend aus sieben Schichten
Application Layer (Anwendungsschicht) Aufgabe
o Unterstuumltzung von Netzwerkanwendungeno Schnittstelle zu Anwendungen
Beispieleo SIP Internettelefonieo HTTP Webseiteno FTP Datenuumlbertragungo Telneto SMTP E-Mail
Presentation Layer (Darstellungsschicht) Aufgabe
o Interpretation der Semantik der uumlbertragenen Bits in strukturierten Informationen wie zB Name Adresse oder Geldbetrag sowie deren Erstellung
o Formatumwandlung unterschiedlicher Datenrepraumlsentationen (ASCIIEBCDICUnicode oder big-little- Endianformat)
Session Layer (Sitzungsschicht Kommunikationssteuerungsschicht)
Aufgabeo Verbesserte Version der Transportschicht Stellt
Dialogkontrolle zur Verfuumlgung uumlberwacht welcher Teilnehmer gerade kommuniziert und bietet Synchronisationsmoumlglichkeiten an Wird nur selten unterstuumltzt
Transportation Layer (Transportschicht) Kommunikation zwischen Prozess auf Quellknoten
Prozess auf Zielknoten Aufgabe
o Stellt Daten anderen Prozessen zuo Ggf Fehlerkorrekturo Ggf Einhaltung der Reihenfolge von Paketen
Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o TCP (Transmission Control Protocol zuverlaumlssig verbindungsorientiert)
o UDP (User Datagram Protocol unzuverlaumlssig verbindungslos)
Network Layer (Vermittlungsschicht) Kommunikation zwischen Quellknoten Zielknoten Aufgabe
o Routing in WANs mit dem Ziel die kuumlrzesten Segmentlaufzeiten zu erreichen Segment ist die Dateneinheit dieser Schicht
Beispieleo X25 verbindungsorientiertes Protokoll beste Route
wird waumlhrend des Verbindungsaufbaus bestimmto IP verbindungsloses Protokoll Jedes IP-Paket wird
unabhaumlngig von allen anderen verschickt und geroutet
Data Link Layer (Sicherungsschicht) Kommunikation zwischen aktuellen Knoten
benachbarten naumlchsten Knoten auf dem Weg zu Zielknoten
Aufgabeo Senden von Bits in Frames (Rahmen)o Fehlerkorrektur zB CRCo Flusskontrolle Sliding Window Protokoll
o Ermoumlglich Bestaumltigungen von Frames auf der Sicherungsschicht
o Selective Repeat einzelne Sendungswiederholung
o Go Back n Uumlbertragung aller Frames ab dem verlorenem
Beispieleo Frame Relayo Etherneto ATM (Asynchrone Transfer Mode)
Physical Layer (Bituumlbertragungsschicht) Kommunikation zwischen aktuellen Knoten naumlchsten
Knoten auf dem Weg zu Zielknoten Aufgabe
o Uumlbertragung von beliebigen Bitfolgeno Bestimmung der physikalischen Darstellung fuumlr 0-
und 1-Bits Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
18 Hybridarchitekturen Kombination von Client-Server und dezentralisierter Architektur Beispiele
o Superpeero Edge-Server
Edge (engl Kante) zwischen Internet und Unternehmensnetzwerk oder ISP eines Endanwenders
Verbindung von Client zum Edge als Server Edge als Peer-to-Peer zu Internetdiensten verbunden
o Kollaborative Systeme Knoten tritt dem System an definierter Stelle bei danach
benutzt er ein dezentralisiertes Verfahren zur Zusammenarbeit mit anderen Knoten
BitTorrent-System Globales Verzeichnis von torrent Dateien (strukturiert) Laden der Daten von aktiven anderen Knoten
(unstrukturiert)
19 Fehlertoleranz Anforderungen an Verlaumlssliche Systeme (solch ein System ist
fehlertolerant)o Verfuumlgbarkeit
Wahrscheinlichkeit dass das System zu einer bestimmt Zeitpunkt korrekt arbeitet und seine Dienste bereitstellt
o Zuverlaumlssigkeit Mit hoher Wahrscheinlichkeit lange Zeit ohne Unterbrechung
arbeiten kanno Funktionssicherheit
Bezeichnet den Umstand dass es zu keiner Katastrophe kommt wenn das System zeitweise unkorrekt arbeitet
o Wartbarkeit Wie leicht kann ein ausgefallenes System repariert werden
Ein Fehler ist ein Teil eines Systemzustandes welcher zum Ausfall fuumlhren kann Ein Ausfall beinhaltet das teilweise oder komplette Versagen von Diensten welche es anbietet
Die Ursache eines Ausfalls wird als Stoumlrung bezeichneto Voruumlbergehende Stoumlrungo Wiederkehrende Stoumlrungo Permanente Stoumlrung
Kontrolle von Stoumlrungen wird unterschieden ino Verhinderung von Stoumlrungeno Behebung von Stoumlrungeno Vorhersage von Stoumlrungen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es Systeme zu konstruieren welche selbst bei Stoumlrungen noch Ihre Dienste anbieten koumlnnen In diesem Fall ist das System Fehlertolerant
20 Fehlermodelle Kommt es zu einer Stoumlrung kann es folgende Ursachen haben
o Server hat Stoumlrungo Kommunikationskanal hat Stoumlrungo Beides hat eine Stoumlrung
Ausfallarteno Absturzausfall
Server steht staumlndiger Ausfall vom allen Diensteno Dienstausfall
Server antwortet nicht auf Anfragen Server erhaumllt keine Anfragen von Clients Server sendet keine Nachrichten
o Zeitbedingter Ausfall Antwortzeit liegt auszligerhalb des definierten Wertes
o Ausfall korrekter Antworten Falscher Wert wird geantwortet Server weicht vom Programmablauf ab
o ByzantinischerZufaumllliger Ausfall Server liefert zufaumlllige Antworten zu unbestimmten Zeitpunkten Server liefert absichtlich falsche Antworten (Byzantinischer
Fehler) Server liefert gar keine Antworten mehr(Ausfall-Stopp) Server liefert sinnlose fuumlr den Client als Unsinn zu erkennende
Antworten(Fail Safeausfallsicher da vom Client erkannt)
21 Maskierung von Stoumlrungen durch Redundanz Schluumlsseltechnik Redundanz
o Informationsredundanz zB CRC (Cyclic Redundancy Check) hinzufuumlgen von Bits zum
Datenstrom um im Fehlerfall einige zu korrigiereno Zeitliche Redundanz
Einfach spaumlter nochmals versuchen ein Aktion auszufuumlhreno Technische Redundanz
Zusaumltzliche Prozesse oder Ausruumlstung Gebraumluchlichste Technik zu Realisierung von Fehlertoleranz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 2 Kommunikation Verteilter Systeme
22 Netzwerkschichten Aufgrund des Fehlens von Shared Memory (mehrere Prozesse teilen sich
einen Speicher) erfolgt die gesamte Kommunikation in Verteilten Systemen uumlber das Senden und Empfangen von Nachrichten
Die Ansammlung in einem System verwendeten Protokolle wird als Protokollstapel bezeichnet
OSI (Open System Interconnection)-Modello Bestehend aus sieben Schichten
Application Layer (Anwendungsschicht) Aufgabe
o Unterstuumltzung von Netzwerkanwendungeno Schnittstelle zu Anwendungen
Beispieleo SIP Internettelefonieo HTTP Webseiteno FTP Datenuumlbertragungo Telneto SMTP E-Mail
Presentation Layer (Darstellungsschicht) Aufgabe
o Interpretation der Semantik der uumlbertragenen Bits in strukturierten Informationen wie zB Name Adresse oder Geldbetrag sowie deren Erstellung
o Formatumwandlung unterschiedlicher Datenrepraumlsentationen (ASCIIEBCDICUnicode oder big-little- Endianformat)
Session Layer (Sitzungsschicht Kommunikationssteuerungsschicht)
Aufgabeo Verbesserte Version der Transportschicht Stellt
Dialogkontrolle zur Verfuumlgung uumlberwacht welcher Teilnehmer gerade kommuniziert und bietet Synchronisationsmoumlglichkeiten an Wird nur selten unterstuumltzt
Transportation Layer (Transportschicht) Kommunikation zwischen Prozess auf Quellknoten
Prozess auf Zielknoten Aufgabe
o Stellt Daten anderen Prozessen zuo Ggf Fehlerkorrekturo Ggf Einhaltung der Reihenfolge von Paketen
Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o TCP (Transmission Control Protocol zuverlaumlssig verbindungsorientiert)
o UDP (User Datagram Protocol unzuverlaumlssig verbindungslos)
Network Layer (Vermittlungsschicht) Kommunikation zwischen Quellknoten Zielknoten Aufgabe
o Routing in WANs mit dem Ziel die kuumlrzesten Segmentlaufzeiten zu erreichen Segment ist die Dateneinheit dieser Schicht
Beispieleo X25 verbindungsorientiertes Protokoll beste Route
wird waumlhrend des Verbindungsaufbaus bestimmto IP verbindungsloses Protokoll Jedes IP-Paket wird
unabhaumlngig von allen anderen verschickt und geroutet
Data Link Layer (Sicherungsschicht) Kommunikation zwischen aktuellen Knoten
benachbarten naumlchsten Knoten auf dem Weg zu Zielknoten
Aufgabeo Senden von Bits in Frames (Rahmen)o Fehlerkorrektur zB CRCo Flusskontrolle Sliding Window Protokoll
o Ermoumlglich Bestaumltigungen von Frames auf der Sicherungsschicht
o Selective Repeat einzelne Sendungswiederholung
o Go Back n Uumlbertragung aller Frames ab dem verlorenem
Beispieleo Frame Relayo Etherneto ATM (Asynchrone Transfer Mode)
Physical Layer (Bituumlbertragungsschicht) Kommunikation zwischen aktuellen Knoten naumlchsten
Knoten auf dem Weg zu Zielknoten Aufgabe
o Uumlbertragung von beliebigen Bitfolgeno Bestimmung der physikalischen Darstellung fuumlr 0-
und 1-Bits Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es Systeme zu konstruieren welche selbst bei Stoumlrungen noch Ihre Dienste anbieten koumlnnen In diesem Fall ist das System Fehlertolerant
20 Fehlermodelle Kommt es zu einer Stoumlrung kann es folgende Ursachen haben
o Server hat Stoumlrungo Kommunikationskanal hat Stoumlrungo Beides hat eine Stoumlrung
Ausfallarteno Absturzausfall
Server steht staumlndiger Ausfall vom allen Diensteno Dienstausfall
Server antwortet nicht auf Anfragen Server erhaumllt keine Anfragen von Clients Server sendet keine Nachrichten
o Zeitbedingter Ausfall Antwortzeit liegt auszligerhalb des definierten Wertes
o Ausfall korrekter Antworten Falscher Wert wird geantwortet Server weicht vom Programmablauf ab
o ByzantinischerZufaumllliger Ausfall Server liefert zufaumlllige Antworten zu unbestimmten Zeitpunkten Server liefert absichtlich falsche Antworten (Byzantinischer
Fehler) Server liefert gar keine Antworten mehr(Ausfall-Stopp) Server liefert sinnlose fuumlr den Client als Unsinn zu erkennende
Antworten(Fail Safeausfallsicher da vom Client erkannt)
21 Maskierung von Stoumlrungen durch Redundanz Schluumlsseltechnik Redundanz
o Informationsredundanz zB CRC (Cyclic Redundancy Check) hinzufuumlgen von Bits zum
Datenstrom um im Fehlerfall einige zu korrigiereno Zeitliche Redundanz
Einfach spaumlter nochmals versuchen ein Aktion auszufuumlhreno Technische Redundanz
Zusaumltzliche Prozesse oder Ausruumlstung Gebraumluchlichste Technik zu Realisierung von Fehlertoleranz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 2 Kommunikation Verteilter Systeme
22 Netzwerkschichten Aufgrund des Fehlens von Shared Memory (mehrere Prozesse teilen sich
einen Speicher) erfolgt die gesamte Kommunikation in Verteilten Systemen uumlber das Senden und Empfangen von Nachrichten
Die Ansammlung in einem System verwendeten Protokolle wird als Protokollstapel bezeichnet
OSI (Open System Interconnection)-Modello Bestehend aus sieben Schichten
Application Layer (Anwendungsschicht) Aufgabe
o Unterstuumltzung von Netzwerkanwendungeno Schnittstelle zu Anwendungen
Beispieleo SIP Internettelefonieo HTTP Webseiteno FTP Datenuumlbertragungo Telneto SMTP E-Mail
Presentation Layer (Darstellungsschicht) Aufgabe
o Interpretation der Semantik der uumlbertragenen Bits in strukturierten Informationen wie zB Name Adresse oder Geldbetrag sowie deren Erstellung
o Formatumwandlung unterschiedlicher Datenrepraumlsentationen (ASCIIEBCDICUnicode oder big-little- Endianformat)
Session Layer (Sitzungsschicht Kommunikationssteuerungsschicht)
Aufgabeo Verbesserte Version der Transportschicht Stellt
Dialogkontrolle zur Verfuumlgung uumlberwacht welcher Teilnehmer gerade kommuniziert und bietet Synchronisationsmoumlglichkeiten an Wird nur selten unterstuumltzt
Transportation Layer (Transportschicht) Kommunikation zwischen Prozess auf Quellknoten
Prozess auf Zielknoten Aufgabe
o Stellt Daten anderen Prozessen zuo Ggf Fehlerkorrekturo Ggf Einhaltung der Reihenfolge von Paketen
Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o TCP (Transmission Control Protocol zuverlaumlssig verbindungsorientiert)
o UDP (User Datagram Protocol unzuverlaumlssig verbindungslos)
Network Layer (Vermittlungsschicht) Kommunikation zwischen Quellknoten Zielknoten Aufgabe
o Routing in WANs mit dem Ziel die kuumlrzesten Segmentlaufzeiten zu erreichen Segment ist die Dateneinheit dieser Schicht
Beispieleo X25 verbindungsorientiertes Protokoll beste Route
wird waumlhrend des Verbindungsaufbaus bestimmto IP verbindungsloses Protokoll Jedes IP-Paket wird
unabhaumlngig von allen anderen verschickt und geroutet
Data Link Layer (Sicherungsschicht) Kommunikation zwischen aktuellen Knoten
benachbarten naumlchsten Knoten auf dem Weg zu Zielknoten
Aufgabeo Senden von Bits in Frames (Rahmen)o Fehlerkorrektur zB CRCo Flusskontrolle Sliding Window Protokoll
o Ermoumlglich Bestaumltigungen von Frames auf der Sicherungsschicht
o Selective Repeat einzelne Sendungswiederholung
o Go Back n Uumlbertragung aller Frames ab dem verlorenem
Beispieleo Frame Relayo Etherneto ATM (Asynchrone Transfer Mode)
Physical Layer (Bituumlbertragungsschicht) Kommunikation zwischen aktuellen Knoten naumlchsten
Knoten auf dem Weg zu Zielknoten Aufgabe
o Uumlbertragung von beliebigen Bitfolgeno Bestimmung der physikalischen Darstellung fuumlr 0-
und 1-Bits Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 2 Kommunikation Verteilter Systeme
22 Netzwerkschichten Aufgrund des Fehlens von Shared Memory (mehrere Prozesse teilen sich
einen Speicher) erfolgt die gesamte Kommunikation in Verteilten Systemen uumlber das Senden und Empfangen von Nachrichten
Die Ansammlung in einem System verwendeten Protokolle wird als Protokollstapel bezeichnet
OSI (Open System Interconnection)-Modello Bestehend aus sieben Schichten
Application Layer (Anwendungsschicht) Aufgabe
o Unterstuumltzung von Netzwerkanwendungeno Schnittstelle zu Anwendungen
Beispieleo SIP Internettelefonieo HTTP Webseiteno FTP Datenuumlbertragungo Telneto SMTP E-Mail
Presentation Layer (Darstellungsschicht) Aufgabe
o Interpretation der Semantik der uumlbertragenen Bits in strukturierten Informationen wie zB Name Adresse oder Geldbetrag sowie deren Erstellung
o Formatumwandlung unterschiedlicher Datenrepraumlsentationen (ASCIIEBCDICUnicode oder big-little- Endianformat)
Session Layer (Sitzungsschicht Kommunikationssteuerungsschicht)
Aufgabeo Verbesserte Version der Transportschicht Stellt
Dialogkontrolle zur Verfuumlgung uumlberwacht welcher Teilnehmer gerade kommuniziert und bietet Synchronisationsmoumlglichkeiten an Wird nur selten unterstuumltzt
Transportation Layer (Transportschicht) Kommunikation zwischen Prozess auf Quellknoten
Prozess auf Zielknoten Aufgabe
o Stellt Daten anderen Prozessen zuo Ggf Fehlerkorrekturo Ggf Einhaltung der Reihenfolge von Paketen
Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o TCP (Transmission Control Protocol zuverlaumlssig verbindungsorientiert)
o UDP (User Datagram Protocol unzuverlaumlssig verbindungslos)
Network Layer (Vermittlungsschicht) Kommunikation zwischen Quellknoten Zielknoten Aufgabe
o Routing in WANs mit dem Ziel die kuumlrzesten Segmentlaufzeiten zu erreichen Segment ist die Dateneinheit dieser Schicht
Beispieleo X25 verbindungsorientiertes Protokoll beste Route
wird waumlhrend des Verbindungsaufbaus bestimmto IP verbindungsloses Protokoll Jedes IP-Paket wird
unabhaumlngig von allen anderen verschickt und geroutet
Data Link Layer (Sicherungsschicht) Kommunikation zwischen aktuellen Knoten
benachbarten naumlchsten Knoten auf dem Weg zu Zielknoten
Aufgabeo Senden von Bits in Frames (Rahmen)o Fehlerkorrektur zB CRCo Flusskontrolle Sliding Window Protokoll
o Ermoumlglich Bestaumltigungen von Frames auf der Sicherungsschicht
o Selective Repeat einzelne Sendungswiederholung
o Go Back n Uumlbertragung aller Frames ab dem verlorenem
Beispieleo Frame Relayo Etherneto ATM (Asynchrone Transfer Mode)
Physical Layer (Bituumlbertragungsschicht) Kommunikation zwischen aktuellen Knoten naumlchsten
Knoten auf dem Weg zu Zielknoten Aufgabe
o Uumlbertragung von beliebigen Bitfolgeno Bestimmung der physikalischen Darstellung fuumlr 0-
und 1-Bits Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o TCP (Transmission Control Protocol zuverlaumlssig verbindungsorientiert)
o UDP (User Datagram Protocol unzuverlaumlssig verbindungslos)
Network Layer (Vermittlungsschicht) Kommunikation zwischen Quellknoten Zielknoten Aufgabe
o Routing in WANs mit dem Ziel die kuumlrzesten Segmentlaufzeiten zu erreichen Segment ist die Dateneinheit dieser Schicht
Beispieleo X25 verbindungsorientiertes Protokoll beste Route
wird waumlhrend des Verbindungsaufbaus bestimmto IP verbindungsloses Protokoll Jedes IP-Paket wird
unabhaumlngig von allen anderen verschickt und geroutet
Data Link Layer (Sicherungsschicht) Kommunikation zwischen aktuellen Knoten
benachbarten naumlchsten Knoten auf dem Weg zu Zielknoten
Aufgabeo Senden von Bits in Frames (Rahmen)o Fehlerkorrektur zB CRCo Flusskontrolle Sliding Window Protokoll
o Ermoumlglich Bestaumltigungen von Frames auf der Sicherungsschicht
o Selective Repeat einzelne Sendungswiederholung
o Go Back n Uumlbertragung aller Frames ab dem verlorenem
Beispieleo Frame Relayo Etherneto ATM (Asynchrone Transfer Mode)
Physical Layer (Bituumlbertragungsschicht) Kommunikation zwischen aktuellen Knoten naumlchsten
Knoten auf dem Weg zu Zielknoten Aufgabe
o Uumlbertragung von beliebigen Bitfolgeno Bestimmung der physikalischen Darstellung fuumlr 0-
und 1-Bits Beispiele
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o RS 232o V24
23 Middleware-Protokolle Eine Anwendung welche in der Anwendungsschicht logisch angesiedelt ist
und viele Protokolle fuumlr allgemeine Zwecke bereitstellt nennt man Middleware
Unterscheidung zwischeno Kommunikationsprotokolle auf hoher Ebeneo Protokolle zur Bereitstellung von Middleware-Diensten
Middlewareschicht liegt zwischen Anwendungs- und Transportschicht Middleware-Kommunikationsdienste
o RPC (Remote Procedure Call)o Warteschlangensystemeo Streamso Multicasting
24 Arten der Kommunikation Persistente (dauerhafte) Kommunikation
o Nachricht wird solange von der Kommunikations-Middleware gespeichert bis sie zugestellt werden kann
Transiente (fluumlchtige) Kommunikationo Nachricht wird verworfen wenn sie nicht ausgeliefert werden kann
zB bei Verbindungsstoumlrung Asynchrone Kommunikation
o Sender faumlhrt sofort fort sobald er eine Nachricht abgesetzt hat Synchrone Kommunikation
o Sender wartet bis seine Anfrage akzeptiert wurde erst dann faumlhrt er fort und sendet zB eine weitere Anfrage
o Diese Synchronisation kann an 3 Stellen erfolgen Sender bleibt gesperrt bis die Middleware seine Anfrage
uumlbernimmt Sender wartet bis die Anfrage an den Empfaumlnger zugestellt
wurde Sender wartet bis seine Anfrage bei Empfaumlnger vollstaumlndig
verarbeitet wurde und er eine Nachricht vom Empfaumlnger uumlber den Erfolg oder Misserfolg erhaumllt
25 RPC Remote Procedure Call Will ein Prozess auf Rechner A eine Prozedur auf Rechner B ausfuumlhren und
evtl ein Ergebnis erhalten so nennt man dieses Verfahren RPC (dt entfernter Prozeduraufruf)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Ziel ist es den RPC wie einen lokalen Prozeduraufruf ausschauen zu lassen er soll transparent sein
Problemeo Uumlbertragung der Parametero Uumlbertragung des Ergebnisseso Unterschiedliche Datendarstellungen zB ASCII Unicode Little
Endian Big Endian Boolsche Werte Flieszligkommadarstellungo Call by Reference muszlig simuliert werden (Arrays oder
Speicherbereiche muumlssen mit uumlbertragen werden)o Unterschiedliche Adressraumlume
Stubo Ermoumlglicht den Aufruf von Prozeduren auf anderen Rechnern Fuumlr den
Entwickler sieht ein solcher Aufruf wie ein gewoumlhnlicher lokaler Aufruf aus (Zugriffstransparenz)
Ablauf von RPCo Client ruft Client-Stub aufo Client-Stub stellt Nachricht zusammen und ruft das lokale OS aufo Das lokale OS sendet Nachricht an das entfernte OSo Entferntes OS uumlbergibt Nachricht an Server-Stubo Server-Stub entpackt Paramter und ruft den Server aufo Server verarbeitet den Aufruf und uumlbergibt Ergebnis an Server-Stubo Server-Stub verpackt es in eine Nachricht und ruft das lokale OS aufo Lokales OS sendet Nachricht an Client OSo Client OS uumlbergibt Nachricht an Client-Stubo Client-Stub entpackt Nachricht und gibt das Ergebnis an den Client
weiter Synchrone RPC Asynchrone RPC
o Kein Ruumlckgabewert vorhanden zB Geld uumlberweisen Eintrage in DB hinzufuumlgen (persistente Kommunikation)
IDL (Interface Definition Language)o Definiert die Schnittstelle zwischen dem Client-Stub und den
Anwendungeno Definiert Sammlung von Prozeduren welche vom Client aufgerufen
werden koumlnnen und vom Server implementiert werden Beispiel DCE-RPC
26
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Parameteruumlbergabe bei RPC Marshalling
o Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem Zwischenformat (zB XML inclusive DTD Document Type Definition oder XML Schema)
o Gruumlnde fuumlr Marshalling Unterschiedliche Datendarstellungen
Unmarshallingo Das Entpacken einer Nachricht aus einem Zwischenformat
27 Nachrichtenbasierte Kommunikation Gruumlnde fuumlr Nachrichten
o RPC innewohnende synchrone Natur nicht immer wuumlnschenswerto Server wird nicht ausgefuumlhrt waumlhrend Anforderung vom Client
ankommt Transiente nachrichtenorientierte Kommunikation
o Berkeley Sockets Socket Kommunikationsendpunkt Server implementiert
bull Socket neuen Kommunikationsendpunkt erstellenbull Bind lokale Adresse einem Socket zuordnenbull Listen Bereitschaft zum Empfangen von Verbindungenbull Accept Aufrufer blockieren bis Verbindungsanfrage
eingeht dann ist eine Verbindung vorhanden Client implementiert
bull Connect aktiver Versuch eine Verbindung aufzubauenbull Send Daten uumlber Verbindung sendenbull Receive Daten uumlber Verbindung empfangenbull Close Verbindung freigeben
o MPI (Message-Passing Interface) 2 Gruumlnde fuumlr die Unzulaumlnglichkeit von Sockets
bull Sie unterstuumltzen nur Senden und Empfangen bull Sockets wurden entworfen um mit
Allzweckprotokollstapeln wie TCPIP uumlber das Netzwerk zu kommunizieren Sie eignen sich zB nicht fuumlr Hochgeschwindigkeitsnetze in Serverclustern da diese erweiterte Funktionen wie Synchronisierung oder Pufferung bedarf
MPI nutzt das zugrundeliegende Netzwerk unmittelbar Unterstuumltzt synchrone und asynchrone Kommunikation
bull Beipielo MSI_bsend asynchrono MSI_send synchron
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
MPI wurde fuumlr Hochleistungsparallelanwendungen entworfen Persistente nachrichtenorientierte Kommunikation
o MQS Message-Queuing Systems (Warteschlangensysteme) ODERo MOM Message-Oriented Middleware (nachrichtenorientierte
Middleware) Gedacht fuumlr Kommunikation welche Minuten anstatt Sekunden
Millisekunden benoumltigen darfo Anwendungen kommunizieren indem Sie Nachrichten in
Warteschlangen einfuumlgeno Nachrichten bleiben erhalten egal ob Sender Empfaumlnger oder beide
aktiv oder passiv sind (falls gewuumlnscht)o Adressierung uumlber systemweiten eindeutigen Namen der
Zielwarteschlangeo Primitive
Put Nachricht an Warteschlange anhaumlngen Get blockieren bis Warteschlange nicht mehr leer ist dann
erste (am laumlngsten wartende) Nachricht holen Poll die erste (am laumlngsten wartende) Nachricht holen
blockiert nicht Notify Handler installieren welcher bei Einstellung einer
Nachricht in die Warteschlange aufgerufen wirdo AufbauAufgaben eines Warteschlangensystems
Quellwarteschlange Zielwarteschlange Bereitstellung von Warteschlangen fuumlr Sender und Empfaumlnger Warteschlangen werden von Warteschlangenmanagern
verwaltetbull Normalerweise kommuniziert der Message-Queue
Manager mit der Anwendungbull Warteschlangenmanager koumlnnen aber auch als Relay oder
Router arbeiten um Nachrichten an andere Warteschlangen zuzustellen Nachrichten zu protokollieren (Ziele Sicherheit Fehlertoleranz etc) oder skalierbare Warteschlangensysteme aufzubauen
o Nachrichtenbroker (Nachrichtenvermittler) Aufgabe ist die Umwandlung von Nachrichtenformaten falls
Sender und Empfaumlnger verschiedene Formate benutzen Ist nicht zwingend fester Bestandteil eines MQS
o Wichtigster Anwendungsbereich ist Integration einer Sammlung von Datenbanken und Anwendungen in ein verbundenes Informationssystem
o Beispiel WebSphere von IBM EntireX JMS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
28 Objektbasierte Nachrichtenuumlbermittlung Beispiele
o CORBA - Common Object Request Broker Architectureo SOAP - Simple Object Access Protocolo Java RMI - Remote Method Invocationo Globe
OID Object Identifier werden als Objektreferenzen benutzt Wo das Objekt liegt muss an einem Locationserver erfragt
werden Dieser gibt eine Kontaktadresse zuruumlck Adressbezeichnung des Knotens + Adressbezeichnung
des Objekts Das Verpacken von ParameternDatenstrukturen in eine Nachricht in einem
Zwischenformat (zB XML inclusive DTD Document Type Definiton oder XML Schema)
Synchronisierungo Verhinderung dass mehrere Prozesse gleichzeitig auf ein Objekt oder
eine Methode zugreifeno Kann zu Problemen fuumlhren da der aufrufende Prozess keine Kenntnis
uumlber die entfernten Objekte hat Diese Objekte koumlnnen auch Ihrerseits wiederum Verweise auf andere entfernte Objekte haben Hierdurch kann es zur einer Sperrenkaskade (MEGA Deadlock) kommen
29 RMI Remote Method Invocation CORBA und SOAP Im Wesentlichen das gleiche wie RPC nur dass hierbei Methoden an
Objekten aufgerufen werden ZB Java RMI CORBA Common Object Request Broker Architecture
o Komponenten ORB Object Request Broker
bull Sorgt fuumlr die Vermittlung von Anfragen an das richtige verteilte Objekt
IDL Interface Definition Languagebull Damit Objekte unterschiedlicher Programmiersprachen
miteinander kommunizieren koumlnnen muumlssen Objekte mit IDL definiert werden zB Kommunikation zwischen Delphi- und Java-Objekte
IIOP Internet Inter-Orb Protokollbull Regelt die Kommunikation uumlber Nachrichten zwischen den
ORBrsquos auf den jeweiligen Rechnern Interface Repository
bull Jeder ORB verfuumlgt uumlber sein eigenes Interface Repository Hier werden fuumlr alle Objekte welche der ORB verwaltet IDLs abgelegt
IOR Interoperable Object Reference
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
bull Sprachunabhaumlngige Objektreferenz Objektreferenzen werden in diesem Format zwischen ORBrsquos ausgetauscht
o Ablauf eines CORBA Methodenaufrufs Rechner A erhaumllt von ORB Referenz auf ein entferntes Objekt Rechner A sendet nun eine Nachricht an Ihre Referenz ORB von Rechner A verpackt die Nachricht(Marshalling) ORB von Rechner A verschickt die Nachricht an Rechner Brsquos
ORB ORB von Rechner B entpackt die Nachricht(Unmarshalling) Rechner B verarbeitet die Nachricht und schickt Ergebnis an
lokalen ORB ORB von Rechner B verpackt das Ergebnis ORB von Rechner B sendet Ergebnis an ORB von Rechner A ORB von Rechner A entpackt das Ergebnis ORB uumlbergibt Ergebnis an Rechner A
o Asynchrone Methodenaufrufe von CORBA Call-Back
bull Eine SchnittstelleMethode wird durch 2 ersetzt (am Client)
o zB int add(in int i in int j)bull Die 1 enthaumllt nur die Uumlbergabeparameter und
Aufrufnamen sie wird von Client aufgerufeno zB void sendCB_add(in int i in int j)
bull Die 2 wird vom Server nach erfolgreicher Arbeit aufgerufen
o zB void replyCB_add(in int returnvalue) Abfragemodell
bull Client fragt nach ob Ergebnis schon da isto zB int add(in int i in int j) wird zu
1) void sendPOLL_add(in int i in int j) 2) void replyPOLL_add(out int returnvalue)
o Staumlrken Sprachunabhaumlngigkeit Unterstuumltzung zum Auffinden von entfernten Objekten Kontrolle von konkurrierenden Zugriffen auf Objekte Einfache Transaktionsmechanismen
SOAP Simple Object Acces Protokollo Loumlsung von 3 allgemeinen Problemen
Abbildung der Dateirepraumlsentation auf ein plattformunabhaumlngiges Zwischenformat(Marshalling)
Unterstuumltzung der Adressierung der Kommunikationspartner (Port und Host) und eventuelles Verbergen vor Programmierer
Zugangspunkte fuumlr die Kommunikation auch bei Systemen mit Firewall
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Realisierung mithilfe von HTTP Zusaumltzlicher Headereintrag SOAPAction Nutzlasten als SOAP-XML im SOAP-Envelope (Umschlag)
o HTTP Port 80 zur Uumlberbruumlckung von Firewallso XML als Plattformunabhaumlngiges weit verbreitetes Format
30 Konsistenz und Replikation in objektbasierten Verteilten Systemen Konsistenz der Replikate
o Aumlnderungen nur an Masterkopie auf Server Vorteil von Replikation bei Schreibvorgaumlngen aufgehoben
o Aumlnderungen nur an Masterkopie auf einem Client Zu jedem Zeitpunkt ist genau ein Client im Besitz einer solchen
Masterkopie 2 Moumlglichkeiten der Veraumlnderung an Objekten
bull Anfrage eines Clients an den Client mit Masterkopiebull Erhalt der Masterkopie zB durch Mastertoken
o Aumlnderung an jedem Objekt erlaubt Probleme
bull Keine mehrfachen Aufrufe desselben Objekts zur gleichen Zeit darf erfolgen
bull Keine unabhaumlngigen Methodenaufruf an 2 Replikaten eines Objekt zu gleichen Zeit duumlrfen erfolgen
Loumlsungbull Vollstaumlndig geordnetes Multicasting (zeitlicher Ablauf ist
komplett geordnet bei allen am verteilten System beteiligten ProzessenThreads)
bull Alle Threads die sich eine Sperre teilen muumlssen bei allen Replikaten in der selben Reihenfolge abgearbeitet werden
o Beispiel fuumlr replizierte Datenhaltung Web-Browser mit Pull-Modell Aktualisierung (Browser holt sich
Aumlnderungen) Replikationsframework mit Interzeptoren (Unterbrecher bei
gewissen Ereignissen welche fuumlr die Konsistenz der Replikate erforderlich sind) fuumlr Java-Beans (EJB) auf J2EE Replikation
Replizierte Aufrufeo Es muss unterbunden werden dass eine Methode welche auf
mehreren Replikaten durchgefuumlhrt wird und diese ein anderes einzelnes Objekt manipulieren mehrfach manipulieren
o Beispiel Bankuumlberweisung wird an einem replizierten
KontoSteuerungsObjekt durchgefuumlhrt Dieses hebt nun vom tatsaumlchlichen Quellkontoobjekt ein Geldbetrag X ab Dieser Vorgang darf nur 1mal erfolgen das Abheben der anderen
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Replikate muss verhindert oder erkannt werdeno Loumlsung sind zB Koordinatoren an den Objekten
Replizierende Systemeo Unterscheidung durch 2 Punkte von lokalen
Aktualitaumlt der Replikate Konsistenz von Aumlnderungen nachdem 2 Clients Replikate
geaumlndert haben muumlssen die Replikate den gleichen Zustand aufweisen
o Arten der Verteilung von Veraumlnderungen Verteilung von Benachrichtigung
bull Alle nicht geaumlnderten Replikate werden als invalid markiert
bull Komplette Uumlbertragung des Objektzustandes bei Bedarf (Lese- oder Schreibzugriff)
bull Mittlere Bandbreitenauslastungbull Gut bei groszliger Anzahl von Aumlnderungen und kleiner an
Lesevorgaumlngen Verteilung von veraumlnderten Daten
bull Alle Aumlnderungen der Daten werden sofort an alle Systeme auf welchem Replikate liegen verschickt kompletter Objektzustand
bull Senden der Veraumlnderungen egal ob Client diese noch braucht oder nicht
bull Hohe Bandbreitenauslastungbull Gut bei groszliger Anzahl von Lesevorgaumlngen und kleinerer
Anzahl an Schreibvorgaumlngen Verteilung von Updateinformationen
bull Mitteilung wie und was sich an einem Objekt geaumlndert hatbull Client kann hierdurch selber entscheiden ob er jetzt oder
spaumlter ein Update durchfuumlhren will oder muss je nach Schreib oder Lesezugriff oder nicht von beiden
bull Nur Updateinformationen werden versendetbull Geringe Bandbreitenauslastungbull Nachteil ist ein houmlherer Rechenbedarf an den Clients
o Veraumlnderungsnachrichten koumlnnen Per Push-Modell gesendet werden oder Per Pull-Modell geholt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
31 Fehlertoleranz und Sicherheit in objektbasierten Verteilten Systemen
Fehlertoleranz wird uA durch technische Replikation erreichto Java verwendet aktive Replikation
Aktive Replikationbull Keinem Replikat werden Datenveraumlnderungen uumlbertragen
sondern nur mitgeteilt welche Aumlnderungsoperation (plus noumltige Parameter dafuumlr) es ausfuumlhren muszlig um in den aktuellen Zustand zu kommen
bull Voraussetzung ist hierfuumlr dass jedes Replikat durch einen Prozess repraumlsentiert wird welcher die Aumlnderungssoperationen verarbeiten kann und sich aktiv auf dem aktuellen Stand haumlltProzesse muumlssen zwingend als deterministische endliche Automaten arbeiten
Kann wegen Nativem Code Threads und verschiedenen Fehlerausgaben der JVM (Java Virtual Machine) nicht deterministisch sein
Sicherheit wird wesentlich durch Standardauthentifizierung und Autorisierung erreicht
KE 3 Prozesse und Zeit
32 Threads Gruumlnde fuumlr Threads in Verteilten Systemen
o Mehrere Steuerthreads erleichtern den Aufbauo Fuumlhren zu houmlherer Leistung
Prozesso Programm in Ausfuumlhrungo Programmcode + Daten + Prozesskontext
Prozesskontext besteht ausbull Registerinhalten bestehend uA ausbull Befehlszaumlhlerbull Grenzen der Adressraumsbull Prozessnummerbull Anderen Informationen wie geoumlffnete Dateien
Elternprozess etco Prozesswechsel
Unabhaumlngigen Adressraum anlegen Datensegmente mit 0 initialisieren Prozesskontext sichern Memory Mapped Unit(Uumlberstetzung virtuelle auf physikalische
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Adressen) und Translation Lookaside Buffer(Puffer fuumlr die uumlbersetzten Adressen) aumlndern
o Bei EA Operation wird gesamter Prozess blockiert Threads
o Threads teilen sich Programmcode Adressraum und Dateien wie ihr Erzeuger
o Programmcode + Daten + Threadkontext Threadkontext besteht aus
bull Befehlszaumlhlerbull Eigenem Stack
o Gruppe von Threads nennt man Task diese sind einem Prozess zugeordnet
Implementierung von Threadso User Threads
Vorteilebull Einfaches erstellen und zerstoumlrenbull Einfacher Kontextwechselbull Leistungsgewinn gegenuumlber Prozessen
Nachteilebull Legt den gesamten Prozess in welchem er laumluft und
somit den Task bei EA lahmbull Fehlender Speicherschutz
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Kernel Threads Vorteil
bull Keine Blockierung des Task da er vom Kernel wie ein Prozess behandelt wird
Nachteilbull Leistungsverlust da Systemcall welcher die
Leistungsvorteile komplett zunichte machen kanno Loumlsung
Leichgewichtige Prozesse LWPbull Laumluft auch im Kontext eines Prozessesbull Kontextwechsel wird bei EO durch den
Userspace(Threadbibiliothek) geregeltbull Synchronisierung (Schutz) wird auch durch den Userspace
implementiert
33 Threads in Verteilten Systemen Lassen Systemaufrufe zu ohne den gesamten Prozess lahmzulegen Multithread-Client am Beispiel eines Browsers
o Kann parallel Verbindungen zu verschiedenen Server aufnehmen waumlhrend man schon ein Dokument lesen kann Bilder und andere Elemente werden waumlhrend der Betrachtung nachgeladen
o Allgemein koumlnnen verschiedene Threads parallel unterschiedliche Aufgaben uumlbernehmen ohne sich gegenseitig zu blockieren
Multithreading wird in Verteilten Systemen hauptsaumlchlich serverseitig genutzt
Multithread-Servero Vereinfacht Servercode durch Schichtung und Weiterleitung von
Aufgaben an andere Threads Beispiel Ein Thread in einem Dateiserver nimmt Anfragen
entgegen und startet fuumlr jede einen eigenen Antwortthreado Vereinfacht Serverentwicklung die die Parallelverarbeitung zur
Leistungsoptimierung ausnutzen
33 Virtualisierung Definition
o Bestehende Schnittstelle wird so erweitert oder ersetzt dass sie das Verhalten eines anderen Systems nachahmen kann
Durch rasche Umschaltung von Threads und Prozess wird die Illusion erzeugt man koumlnne parallel Verarbeiten
Diese Idee Uumlbertragen auf Ressourcen fuumlhrt zur Ressourcenvirtualisierung Hardware aumlndert sich schneller als die Software (Anwendungen und
Middleware)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Anwendungen laufen auf Ihren eigenen Virtuellen Maschinen und ermoumlglichen somit einfach Portabilitaumlt Flexibilitaumlt und Replikation
Architektur Virtueller Maschinen
34 Prozessmigration
2 Typen der Prozessmigration (Preemptiv und Non-Preemptiv)Non-Preemptiv
1 Neustart des gleichen Prozesses auf einer anderen Rechner
Preemptiv (Migration waumlhrend der Prozess laumluft)
Folgende Schritte sind dafuumlr notwendigbull Einfrieren des Prozesses auf dem Quellrechnerbull Erzeugung eines neuen eingeforenen Prozesses auf dem Zielrechnerbull Uumlbertragung des Prozesszustands (Register Scheduling-Tabellen
Seitentabellen EA-Zustaumlnde Zugriffsrechte Prozess-ID)bull Uumlbertragung des Arbeitsspeichers des Prozessesbull Aktivierung des Prozesses auf dem Zielrechners
Wir unterscheiden zwischen zwei Arten der Arbeitsspeichermigration1 Uumlbertragung nach dem Einfrieren des Prozesses
- Uumlbertragung des gesamten Arbeitsspeichern en block- Prozess steht waumlhrend der gesamten Migration nicht zur Verfuumlgung
2 Uumlbertragung vor dem Einfrieren des Prozesses- Uumlbertragung wird vor dem Einfrieren angestossen- Geaumlnderte Speicherseiten werden neu uumlbertragen- Sobald nur noch sehr wenige Speicherseiten uumlbertragen werden muumlssenwird der Prozess eingefroren und die Migration abgeschlossen (Uumlbertragung der noch fehlenden Speicherseiten Prozesskontextuumlbertragung Prozessstart etc)
Vor- bzw Nachteile der zwei SpeicheruumlbertragungsverfahrenldquoUumlbertragung nachrdquo einfacheres Verfahren
Ausfallzeit des Prozesses ist groumlszliger
ldquoUumlbertragung vorrdquo komplexerProzessausfallzeit sehr kleinProzessmigration dauert insgesamt laumlnger
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
35 Zustandslosebehaftet iterativnebenlaumlufige Server
36 Uhrzeitsynchronisationbull Warum braucht man Zeitsychronisation
Zeitstempel fuumlr eCommerce Konsistenz verteilter Daten Prozesssynchronisation Authentizitaumltsuumlberpruumlfung (Kerberos) make-Prozess
bull Moumlglichkeitenbull Synchronisation mit autorativen ext Uhren (UTC-Zeit DCF77
Atomuhren)bull interne Synchronisation mit bekanntem Maszlig an Genauigkeit (muss
nicht mit realer Zeit uumlbereinstimmen)Achtung Uhrzeiten duumlrfen nicht zuruumlckgestellt werden Bei Abweichungen muumlssen sie entweder verlangsamt oder beschleunigt werdenAlgorithmenbull Logischen Uhrenbull Lamport-Algorithmus (kann keine Kausalitaumlt abbilden) ein Ereignis b das nach a auftritt bedeutet nicht zwingend dass b aufgrund von a aufgetreten istBasis happens-before Relation a --gt b dh Ereignis a war vor b Nachrichtenversand erfolgt mit Angabe der lokalen Zeit des
SenderprozessesFalls Empfaumlnger t gt Sender t ist alles ok Falls Empfaumlnger t lt Sender t =gt Empfaumlnger t = Sender t + 1Falls die Zeitangabe um Prozessnummer ergaumlnzt wird ( [tpid] ) wird ein vollstaumlndig geordnetes Multicasting erreicht Bsp [11] --gt [12]
Vektoruhr (von Mattern und Fidge)
Vorteilendash komplette Kausalitaumltskette
Nachteilendash sehr hoher Speicherverbrauchndash Nutzlast steigt proportional zur Anzahl der Prozesse
Funktion Jeder Prozess besitzt einen eigenen Zaumlhler und merkt sich fuumlr alle anderen beteiligten Prozesse deren ihm zuletzt bekannte ZeitZaumlhler in einem Vektor Bei einem Ereignis wird der eigene Zeitstempel erhoumlht und im Vektor vermerkt Der Vektor enthaumllt ebenfalls die ihm zuletzt bekannten Zeitstempel der anderen Prozesse Diese Zeitstempel werden ihm mit dem Empfang einer Nachricht mitgeteilt (ebenfalls als Vektor)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Beispiel Gegeben seien 3 ProzesseProzess P1 sendet Prozess P2 eine Nachricht hier wird nun ein neuer Zeitstempel berechnetV1 = (200)V2 = (030)Hieraus ergibt sich der neue ZeitstempelV2_neu = (23+10)
Es existiert noch ein nebenlaumlufiger Prozess P3
Physikalische Uhren synchronisieren idealerweise mit einer Atomuhr
Berkeley Zeitserver fragt Clients nach Ihrer Zeit1 Er schickt seine Zeit an die Clients2 Die Clients antworten mit der Differenz3 Der Server ermittelt arithmetisches Mittel4 Der Server schickt eine Aumlnderungsinformation an
alle Clients (+- x Minuten)
NTP basierend auf Algorithmus von Cristianndash zentraler Zeitserver der die genaue Zeit kennt (vielleicht durch DCF77)
1 Client fragt Server nach Zeit zum Zeitpunkt t12 Nachricht trifft zu Zeitpunkt t2 beim Server ein3 Nachricht wird zum Zeitpunkt t3 vom Server beantwortet (in Antwort steckt
Zeit t2 drin)4 Zum Zeitpunkt t4 kommt Antwort beim Client an5 Client kann Abweichung der Zeit vom Zeitserver berechnen
Delta = (t2 ndash t1) + (t3-t4) 2
Falls delta lt 0 ist der Client zu schnell und muss seine Uhr verlangsamen
Bisheriger Ablauf ist der Algorithmus von Chrisitan zusaumltzlich wird bei NTP eine Abschaumltzung der Verzoumlgerung (Latenz) hinzu
klein delta = (t2 ndash t1) + (t4 ndash t3) (ist Gesamtlaufzeit) 2
NTP merkt sich 8 Tupel (Delta klein delta) Das Tupel mit der geringsten Verzoumlgerung ist qualitativ die beste Zeitabweichung und wird deshalb verwendet
NTP baut auf Stratum-Ebenen auf Je geringer der Stratum-Wert desto genauer ist
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
die Uhr (Stratum 0 ist meistens eine Atom-Uhr Stratum 1 der NTP-Server der naumlchsten Ebene usw) Die Stratumebenen bilden eine HierarchiehttpenwikipediaorgwikiClock_synchronizationhttpenwikipediaorgwikiNetwork_Time_Protocol
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 4 ndash Sicherheit
Wie kann man Kommunikation sichernschuumltzen Datenuumlbertragung verschluumlsseln
Warum macht man das Warum Verschluumlsselungbull Schutz vor Angriffen Spionage o Sabotagehellipbull Sicherstellung von folgenden Eigenschaften bei der Uumlbertragung
bull Vertraulichkeit Nur die Leute koumlnnen Inhalt lesen die es auch was angehtbull Integritaumlt Manipulationen koumlnnen erkannt und korrigiert o verhindert werden (zB Gebotshoumlhe
bei Onlineauktionen)bull Authentifizierung Benutzer authentifiziert sich gegenuumlber System zB es wird nicht das
Passwort sondern nur ein Hashwert uumlbertragen der verglichen wirdbull Digitale Signatur (Nicht Anfechtbarkeit) Rechtsguumlltige Unterschrift von elektronischen
Dokumenten bzw Kontrolle ob Absender wirklich derjenige ist der er vorgibt zu seinbull Anonymitaumlt eCommerce (durch Mithoumlren)bull Verhinderung von Verzoumlgerungen wichtig bei Auktionen -gt Angriffsmoumlglichkeit uumlber
Netzwerkknoten
Welche Methoden zur Verschluumlsselung existierenbull Symmetrische Verfahren (secret key Verfahren)
Mit demselben geheimen Schluumlssel wird sowohl ver- als auch entschluumlsselt Vorteil schnell Nachteil sicherer Schluumlsselaustausch zwischen den Kommunikationspartnern Beispiele Verschiebechiffre Substitutionschiffre Vigenegravere-Chiffre Permutationschiffre DES (Data
Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
bull Asymmetrische Verfahren (public key Verfahren)Es gibt einen oumlffentlichen Schluumlssel mit dem verschluumlsselt wird und einen geheimen privaten Schluumlssel mit dem entschluumlsselt oder signiert wird Vorteil leichter Schluumlsselaustausch da der oumlffentliche Schluumlssel der ganzen Welt
bekannt sein darf Nachteil langsam da Entschluumlsselung sehr aufwendig ist deswegen fuumlr
Sessionverschluumlsselung nicht gut geeignet Beispiele El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen
uumlber endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen)
Welche klassischen Verschluumlsselungsverfahren kennen Sie Angriffsmoumlglichkeiten (1)Verschiebechiffre (monoalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text
immer mit demselben Zeichen codiert)a) Caumlsar-Chiffre Verschiebung um drei Stellen nach links zB A -gt D
Formel e(x) = (x + 3) mod 26 d(y) = (y ndash 3) mod 26 (bei 26 buchstabigem Alphabet)b) ROT13 Verschiebung um 13 Stellen nach links
Formel e(x) = (x + 13) mod 26 d(y) = (y ndash 13) mod 26Angriff Haumlufigkeitsanalyse wenn Sprache des Textes und somit seine Normverteilung bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
(2)Substitutionschiffre (monoalphabetische Verschluumlsselung)Formel Schluumlsselumfang K ist alle Permutationen uumlber das Alphabet ℤ ℤ mit (i) = j fuumlr ij isin ℤe(i) = (i) = j fuumlr jedes i isin ℤ d(j) = -1(j) = i fuumlr jedes j isin ℤ -1(j) ist die inverse Permutation von Angriff Haumlufigkeitsanalyse wenn Sprache des Textes bekannt ist (haumlufigster Buchstabe im deutschen zB bdquoeldquo)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(3)Vigenegravere-Chiffre (polyalphabetische Verschluumlsselung dh ein und derselbe Buchstabe wird im Text unterschiedlich kodiert)Verfahren Verschluumlsseln
1 Waumlhle ein Schluumlsselwort bdquokldquo der Laumlnge l2 Teile Klartext in Teiltexte der Laumlnge l3 Verschluumlssle Teiltexte wie folgt
e(x0hellipxl-1) = (x0+k0hellip xl-1 + kl-1)4 Setze verschluumlsselte Teiltexte zu einem Text
zusammenVerfahren Entschluumlsseln
1 Teile Chiffrat in Teiltexte der Laumlnge l2 Entschluumlssle Teiltexte wie folgt
d(y0hellipyl-1) = (y0-k0hellip yl-1 - kl-1)3 Setze entschluumlsselte Teiltexte zu einem Text zusammen
Angriff Haumlufigkeitsanalyse mit Hilfe des Koinzidenzindex wenn Sprache bekannt istAnmerkung Koinzidenzindex = Wahrscheinlichkeit dass zwei zufaumlllig aus einem Text gewaumlhlten Zeichen dieselben sind (zB bei deutschen Text ca 0074)Verfahren
Berechne den Koinzidenzindex fuumlr verschiedene Schluumlssellaumlngen zB von 1 ndash 20 und waumlhle die Laumlnge die am naumlchsten am Koinzidenzindex der Sprache des verschluumlsselten Textes liegt
Teile Chiffrat in Teiltexte der gewaumlhlten Laumlnge Fuumlhre auf den Teiltexten eine Haumlufigkeitsanalyse durch um das Schluumlsselwort zu ermitteln (1
Teiltext liefert erstes Zeichen des Schluumlsselworts 2 das Zweite usw) Wichtig ist hier zu wissen dass die Teiltexte mit Verschiebechiffre verschluumlsselt werden
Verbesserung der Sicherheit Schluumlsselwort im Idealfall so lange wie den Klartext selbst waumlhlen weil dann zu wenig statistisches Material fuumlr die Bestimmung der Schluumlssellaumlnge zur Verfuumlgung stehtAnmerkung Laut Vorlesung der Tuumlbinger Uni knackt man den Vigenegravere einfacher wenn man statt der reinen Koinzidenzindexmethode (Friedman-Test) das ganze mit dem Kasiski-Test kombiniert httpdewikipediaorgwikiKasiski-Test + httptimmsuni-tuebingendeListList01aspxrpattern=UT_200[67]_____00[12]_krypto_000_ (8 Stunde)
Welche modernen Verfahren kennen Sie Symmetrische Verfahren
DES (Data Encryption Standard Feistel) 3DES IDEA (International Data Encryption Algorithm Feistel) Blowfish (Feistel) CAST-128 (Feistel) RC5 (Ron Rivest Algorithmen Familie) AES (Advanced Encryption Standard 128 192 256 Bit Schluumlssellaumlnge Substitution)
Asymmetrische Verfahren El-Gamal (Diffie-Hellmann Problem Berechnung von diskreten Logarithmen uumlber
endlichen Koumlrpern) RSA (Rivest Shamir Adleman Problem Primfaktorzerlegung groszliger Zahlen) DSA (Digital Signature Algorthm orientiert an El-Gamal)
Wie funktioniert das DES Verfahren DES (Data Encryption Standard) ist ein Stromchiffre dh eine Kombination aus Permutations- und Substitutionschiffre Er basiert auf dem Feistel-AlorithmusFunktion Ver- u Entschluumlsselung mit 56 Bit-Schluumlssel aus einer S-BOX (Substitutionsbox mit geheimem Schluumlssel)Verschluumlsselung
Teile Klartext in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile den 64 Bit Block in zwei Haumllften L0 und R0
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Li=Ri-1
o Ri=Li-1 EXOR f(Ri-1Si) Nach der 16 Runde ist LiRi der verschluumlsselte 64 Bit Block
Entschluumlsselung Teile Chiffretext in in 64 Bit Bloumlcke (weiteres Verfahren fuumlr je einen Block erklaumlrt) Teile 64 Bit Block in zwei Haumllften L0 und R0
Verschluumlsselung erfolgt in 16 Runden mit folgendem Vorgeheno Riminus1 = Li
o Li-1= Ri EXOR f(LiSi) Nach 16 Runden ist LiRi der entschluumlsselte Datenblock
Zusammenfassung Funktion F Kombination aus XOR und festen Ersetzungsboxen (S-BOX) Teilschluumlssel Generierung von 48 Bit Teilschluumlssel durch Shift und Permutation Runden 16 Blockgroumlszlige 64 Bit Schluumlssellaumlnge 56 Bit
Auf welchem mathematischen Problem beruht RSA und wie funktioniert RSAProblem Primfaktorzerlegung groszliger ganzer Zahlen dauert sehr lange da man bis alle Primzahlen bis n probieren muumlsste Deswegen p und q moumlglichst gleich groszlig waumlhlenFunktion Voraussetzung ist die Verschluumlsselung von Zahlen zwischen 0 und r-1 mit r isinℕ und Klar- und Chiffretext sind P = C = ℤr
1 Waumlhle zwei Primzahlen p und q mit n = pq gt= r2 Berechne Eulersche Funktion φ(n) = (p-1) (q-1)3 ke kd mod =gt ke und kd sind multiplikativ invers zu einander φ(n)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
4 Waumlhle zu φ(n) teilerfremdes ke mit 1 lt ke lt φ(n)
5 Berechne mittels erweitertem Euklidischen Algorithmus das multiplikativ Inverse zu ke und φ(n)
a Ausgangsmatrix g rx uy v =
n k e1 00 1
b Berechnungsmatrix g rx uy v =r g mod r
u xminususdot g div r v yminusvsdot g div r
c Endmatrix gdc n k e =1 0
x minusk eMultiplikativInverses minus n
6 kd = Muliplikativ Iverses falls kd gt 0 sonst kd = (kd + φ(n)) mod φ(n)Angriff Schluumlssel lt 1024 Bit gelten mittlerweile als unsicher da die derzeitige Rechenleistung ausreicht da Schluumlssel bis zu einer Laumlnge 769 Bit (232 Dezimalstellen) inzwischen schnell geknackt werden
Kleiner Exponent-Angriff (low exponent attack)Prinzip basiert auf der Tatsache dass oft mit ke=3 verschluumlsselt wird (hohe Geschwindigkeit) Sendet man eine Nachricht an drei unterschiedliche Empfaumlnger mit ke=3 so kann man Kongruenzen mittels Chinesischem Restwertsatz berechnen (nicht im Skript erklaumlrt)
Gemeinsamer-Modulus-Angriff (common modulus attack)Schwierig immer wieder neue groszlige Primzahlen zu verwenden Zwei Benutzern dasselbe n zu geben fuumlhrt hier zum Fehler httpwww-altphysikuni-muenchendekursComputingjavaoo_07sourceRSApdf httpmemberstripodcomirish_ronanrsaattackshtml
Protokoll-Fehler-Angriff (protocol failure)Wenn die Klartextzeichen einzeln verschluumlsselt werden kann der Klartext leicht ermittelt werden (EA 43)
Rotations-Angriff (cycling attack)Wenn φ (φ(n)) nicht zu groszlig ist wiederholtes potenzieren von x mit ke Das macht man i Mal bis man wieder den verschluumlsselten Text hat Klartext = x^ke^i-1
Angriffsmethoden auf Verschluumlsselung (Kryptoanalyse) Chiffretext-Angriff
Voraussetzung nur Chiffretext ist bekanntZiel Klartext u Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)o Statistische Methoden (zB Haumlufigkeitsanalyse)o Ausprobieren bdquowahrscheinlicher Schluumlsselldquoo Strukturanalyse des Verfahrens Ermittlung einer Funktion als Ersatz der
Entschluumlsselungsfunktion die ohne Schluumlssel auskommt =gt Kryptosystem dauerhaft geknackt
Bekannter-Klartext-AngriffVoraussetzung Klartext u Chiffretext sind bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
o Brute-Force-Attacke (vollstaumlndiges Durchsuchen des Schluumlsselraumes)Beispiel WW II Verschluumlsselte Uumlbertragung oumlffentlicher Reden ins U-Boot dadurch konnten die Briten den Schluumlssel ermitteln
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Gewaumlhlter-Klartext-AngriffVoraussetzung Verschluumlsselungfunktion u Chiffretext ist bekannt Schluumlssel nichtZiel Schluumlssel ermittelnMoumlglichkeiten
o Beliebig viele Nachrichten verschluumlsseln und wenn als Ergebnis der Chiffretext entsteht wurde der Schluumlssel ermittelt (Kommt einer Brute-Force-Attacke in Umkehrung gleich)
Gewaumlhlter-Chiffretext-AngriffVoraussetzung Entschluumlsselungsfunktion bekanntZiel Schluumlssel ermittelnMoumlglichkeiten
Wie funktioniert das public key Verfahren (im Mailaustausch) (1) Schluumlsselpaar generieren(2) Oumlffentlichen Schluumlssel an potentiellen Sender schicken(3) Sender verschluumlsselt E-Mail mit oumlffentlichem Schluumlssel(4) Empfaumlnger entschluumlsselt mit privatem Schluumlssel
Wie signiere ich eine Mail digital Wie funktioniert das mit der elektronischen Unterschrift(1) Signatur erstellen
a) Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechnenb) Verschluumlsselung des Hashwerts mit privaten Schluumlssel (zB von RSA-Verfahren)
Signatur uumlberpruumlfeno Hashwert der E-Mail uumlber kryptographische Funktion (zB MD5) berechneno Entschluumlsselung des verschluumlsselten originalen Hashwerts mit dem oumlffentlichen Schluumlsselo Vergleich der beiden Hashwerte auf Gleichheit
Kann man eine Mail signieren und gleichzeitig verschluumlsselnJa das funktioniert wie folgt
Senderseiteo Signatur der unverschluumlsselten Mail wie oben erstelleno E-Mail samt Signatur mit oumlffentlichem Schluumlssel des Empfaumlngers verschluumlsseln
Empfaumlngerseiteo E-Mail mit privatem Schluumlssel entschluumlsselno Signatur wie oben uumlberpruumlfen
Welche Sicherheitsprotokolle gibt es im Internet IPSec symmetrische Verschluumlsselung auf IP-Schicht VPN (Virtual Private Network) Baut auf IPSec auf und verschluumlsselt mittels dieser Funktionalitaumlt die
Datenkommunikation zwischen zwei oder mehr Netzwerkknoten (Stichwort VPN-Tunnel) SSL (Secure Socket Layer) Verschluumlsselung auf der Transportschicht Somit kann eine Anwendung
den Datenstrom verschluumlsseln lassen (https) Das Verfahren setzt auf den Schluumlsselaustausch von Diffie-Hellmann auf mittels diesem zwei Kommunikationspartner sich auf einen Sitzungsschluumlssel einigen koumlnnen
SSH (Secure Shell) Protokoll zur gesicherten authentifizierten Kommunikation Mittels SSH kann man inzwischen zB Kopieren von Dateien X11 tunneln Portweiterleitungen zB an einen Mailserver Dateisysteme montieren (SSHFS) und vermutlich noch ein wenig mehr
PGP u SMIME Mechanismen zum Verschluumlsseln o signieren von E-Mails die meist auf DES und RSA aufsetzen Als Signaturalogrithmus wird meist SHA1 (Secure Hash Alogorithm) oder MD5 verwendet Anmerkung Laut Wikipedia gilt SHA1 nicht mehr als richtig sicher (Kollisionsfreiheit)
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Wie funktioniert KerberosVorab Was mir nicht klar ist wie der geheime Schluumlssel des Clients zum Kerberos-Server gelangt Wenn ich den RFC3244 richtig verstanden habe wird ein Initialpasswort fuumlr den User vergeben und im AS hinterlegt Mit diesem kann man dann schon verschluumlsseln weil der Benutzer das Passwort kennt und sich damit am System einloggen kann Im Normalfall wird man beim ersten Mal anmelden aufgefordert sein Passwort zu aumlndern Mit dem alten Passwort kann nun eine verschluumlsselte Uumlbertragung des neuen Passworts durchgefuumlhrt werden Das Passwort muss mind einmal vom Client zum AS uumlbertragen werden da nur dort ggf eine Passwortpolicy uumlberpruumlft werden kann Wenn das Passwort dann getauscht wurde muss es nicht mehr uumlbertragen werden Somit senkt man die Anzahl der moumlglichen Angriffe auf die Anzahl der notwendigen Passwortaumlnderungen uumlber ein Jahr
Basiert auf dem Needham-Schroeder-Authentifizierungsprotokoll Folgende Abkuumlrzungen erleichtern die Erklaumlrung
a) AS = Authentication Serverb) TGS = Ticket Granting Serverc) SS = Service Serverd) TGT = Ticket Granting Ticket
Funktion Abgeschrieben von der Wikipedia da mir der Anfang einfach nicht einleuchtetUser Client-based Logon Steps1 A user enters a username and password on the client machine
2 The client performs a one-way function (hash mostly) on the entered password and this becomes the secret key of the clientuser
Client Authentication Steps1 The client sends a cleartext message to the AS requesting services on behalf of the user Sample
message User XYZ would like to request services Note Neither the secret key nor the password is sent to the AS
2 The AS checks to see if the client is in its database If it is the AS sends back the following two messages to the client Message A ClientTGS Session Key encrypted using the secret key of the clientuser Message B Ticket-Granting Ticket (which includes the client ID client network address ticket
validity period and the clientTGS session key) encrypted using the secret key of the TGS3 Once the client receives messages A and B it decrypts message A to obtain the ClientTGS
Session Key This session key is used for further communications with TGSNote The client cannot decrypt Message B as it is encrypted using TGSs secret key At this point the client has enough information to authenticate itself to the TGS
Client Service Authorization Steps When requesting services the client sends the following two messages to the TGS
Message C Composed of the Ticket-Granting Ticket from message B and the ID of the requested service
Message D Authenticator (which is composed of the client ID and the timestamp) encrypted using the ClientTGS Session Key
Upon receiving messages C and D the TGS retrieves message B out of message C It decrypts message B using the TGS secret key This gives it the clientTGS session key Using this key the TGS decrypts message D (Authenticator) and sends the following two messages to the client Message E Client-to-server ticket (which includes the client ID client network address validity
period and ClientServer Session Key) encrypted using the services secret key Message F Clientserver session key encrypted with the ClientTGS Session Key
Client Service Request Steps1 Upon receiving messages E and F from TGS the client has enough information to authenticate itself
to the SS The client connects to the SS and sends the following two messages Message E from the previous step (the client-to-server ticket encrypted using services secret
key) Message G a new Authenticator which includes the client ID timestamp and is encrypted using
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
clientserver session key2 The SS decrypts the ticket using its own secret key to retrieve the ClientServer Session Key Using
the sessions key SS decrypts the Authenticator and sends the following message to the client to confirm its true identity and willingness to serve the client Message H the timestamp found in clients Authenticator plus 1 encrypted using the
ClientServer Session Key3 The client decrypts the confirmation using the ClientServer Session Key and checks whether the
timestamp is correctly updated If so then the client can trust the server and can start issuing service requests to the server
4 The server provides the requested services to the clientNachteile
Single point of failure It requires continuous availability of a central server When the Kerberos server is down no one can log in This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms
Kerberos requires the clocks of the involved hosts to be synchronized The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock the authentication will fail The default configuration requires that clock times are no more than 10 minutes apart In practice Network Time Protocol daemons are usually used to keep the host clocks synchronized
The administration protocol is not standardized and differs between server implementations Password changes are described in RFC 3244
Since the secret keys for all users are stored on the central server a compromise of that server will compromise all users secret keys
A compromised client will compromise the users password
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
KE 5 ndash Verteilte Dateisysteme
FTP als Protokoll wie funktioniert es welcher Verbindungsaufbau findetstatt
Kommunikation uumlber Steuerkanal (Port 21) und Datenkanal (Port 20) Die Verwendung eines Steuerkanals nennt man bdquoout-of-bandldquo FTP ist zustandsbasiert deswegen kann man sofern es die Dateien verkraften eine FTP-Uumlbertragung
nach einer Unterbrechung wieder an der Stelle aufsetzen an der man war 2 Prozesse sowohl auf dem Server als auch auf dem Client
o Datentransferprozess uumlber den laufen die Daten und wird vom Server bei jeder Uumlbertragung auf- und abgebaut
o Protokoll-Interpreter uumlbertraumlgt die Kommandos im Klartext und bleibt waumlhrend der Sitzung geoumlffnet
Verbindungsaufbau Client oumlffnet Steuerkanal zum Server und meldet sich mittels der Kommandos bdquoUSERldquo und bdquoPASSldquo an Anonymer FTP-Zugang mit Benutzername bdquoanonymousldquo
Nach Anmeldung kann sich der Benutzer im FTP-Dateisystem bewegen und VerzeichnisseDateien loumlschenanlegen bzw up-downloaden usw
Vor Uumlbertragung kann es sinnvoll sein eine Uumlbertragungscodierung (ASCII binaumlr EBCDIC) und ggf einen Datenverbindungsport anzugeben
Quittierung durch Server erfolgt durch dreistelligen Zahlencode
FTP Welche Authentifizierung gibt es warum ist FTP unsicher welcheGruumlnde sprechen dafuumlr es trotzdem zu verwenden Wie funktioniertanonymous FTP
Authenfizierung erfolgt uumlber Benutzernamen und Passwort FTP ist unsicher weil die Zugangsdaten unverschluumlsselt uumlbertragen werden Fuumlr FTP spricht Plattformunabhaumlngigkeit und sehr weite Verbreitung Anonymer FTP erfolgt uumlber Eingabe des Benutzernamens bdquoanonymousldquo dies muss jedoch vom FTP-
Server unterstuumltzt sein
HTTP als Protokoll welche Moumlglichkeiten hat man welche Daten kann mansich damit anschauen
HTTP nutzt TCP Objekt wird mit URL (Uniform Resource Locator) angegeben
ltprotocol-idgtltprotocol specific addressgt Verbindungen der Version 10 sind nicht persistent die der Version 11 falls gewuumlnscht Zustandloses pull-Protokoll welches jedes Datei einzeln uumlbertraumlgt Steuerinformationen werden in-Band gesendet HTTP-Nachricht besteht aus Kommandozeile (POST GET) Nachrichtenheader und Nachrichtenkoumlrper
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Meist beschraumlnkte Moumlglichkeiten weil Befehle wie PUT o DELETE meist nicht unterstuumltzt werden =gt kein echtes verteiltes Dateisystem im herkoumlmmlichen Sinne
o Dateien koumlnnen nicht geaumlndert werdeno Verzeichnisse koumlnnen nicht aufgelistet werdeno Keine Besitzer von Dateien Zugriff ja nein Schutz nur von Verzeichnisseno Beschraumlnkt sich auf den Download von Dateien
Caching-Strategien Server-Cache wenn sehr viele Clients immer wieder die gleichen Daten anfordern Cache in Form eines Proxy in Intranets um den externen Verkehr zu reduzieren Client-Cache der vom Browser verwaltet wird Expires-Field in den Dateien fuumlhren zu Konsistenzwahrung in den letzten beiden Faumlllen
Was ist NFSSun Network File System Dient dazu ein entferntes Dateisystem im lokalen Dateisystemeinzubinden (virtuelles Dateisystem) um fuumlr den User eine Zugriffstransparenz auf entfernteDateien zu realisieren
Wie funktioniert NFS
NFS lt= v3 zustandslos ab v4 zustandsorientiert Die NFS Server- und Client-Module befinden sich im Kernel des OS (Unix Linux) Anforderungen an Dateien im entfernten Dateisystem werden vom NFS-Client in NFS-Operationen
uumlbersetzt und mittels RPC an den NFS-Server weitergegeben NFS kann entweder uumlber TCP o UDP kommunizieren Ein Port-Mapper-Dienst ermoumlglicht den Clients sich dem Namen nach zu Diensten in einem Host zu
binden NFS bietet Zugriffstransparenz dh lokale Programme u Benutzer koumlnnen auf entfernte Dateien wie auf
Dateien im lokalen Dateisystem zugreifen Dazu wird uumlber alle vorhandenen Dateisysteme ein virtuelles Dateisystem gestellt Zum Zugriff auf Dateien werden Datei-IDs verwendet
Ein Automounter (zB autofs) ermoumlglicht es dass automatisch das entsprechende entfernte Verzeichnis gemountet wird wenn ein Client auf einen leeren Mountpunkt verweist
NFS nutzt Caching zur Optimierung des Kommunikationsaufwandeso Beim Server wird wie beim konventionellen Dateisystem das Read-ahead Caching (voraus
lesen) eingesetzt o Das Delayed-write Caching kann allerdings zB bei Serverabsturz Konsistenzprobleme
erzeugen da NFS bis Version 3 zustandslos operiert ab Version 4 arbeitet NFS
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
zustandsorientierto Daher gibt es seit NFS 30 zwei Optionen fuumlr die write-Operation
Write-through Caching (geschriebenen Daten werden in Cache und auf HD geschrieben)
Daten in write-Operationen werden nur im Cache gehalten und erst durch eine commit-Operation des Clients auf HD uumlbertragen Der Client erhaumllt erst dann eine Antwort auf das commit wenn die Daten wirklich auf der HD sind
o Clientseitig werden die Ergebnisse von read write getattr lookup und readdir in den Cache gestellt Die Clients muumlssen aber bei den Servern die Aktualitaumlt ihrer Daten im Cache sicherstellen
Was hat der Administrator vor dem Einsatz von NFS zu tun NFS-Server-Software installieren Lokale Dateisysteme fuumlr entferntes Mounten freigeben (uumlblicherweise uumlber etcexports) Zugriffsliste erstellen welche entfernten Hosts welche Dateisysteme mounten duumlrfen NFS-Server starten
Wie findet die Authentifizierung bei NFS statt (Sicherheitsaspekt)NFS bis v3
Authentifizierung uumlber Benutzer- und Gruppen-ID die bei jedem Zugriff mit uumlbertragen werden und mit den Zugriffsrechten der Datei uumlberpruumlft werden
Uumlbertragung erfolgt unverschluumlsselt was leicht zu einem Angriff mittels IP-Klau fuumlhren kann Einsatz von SecureRPC (kaum verbreitet DES-Verschluumlsselung des RPC-Protokolls) schafft hier
AbhilfeNFS ab v4
Authentifizierung kann mittels Kerberos erfolgen Speicherung der Benutzer-Id + Client-Adresse mit den Mount-Informationen Bei jedem Dateizugriff werden dann die gespeicherten Daten vom Mounten uumlberpruumlft und bei
Uumlbereinstimmung Zugriff gewaumlhrt
Wie genau geschieht das Mounten Wann wird gemountet(2) Mount-Dienst auf NFS-Server unterstuumltzt mounten entfernter Dateisysteme (Anfragen von Clients)(3) Client nutzt mount-Kommando und gibt dabei NFS-Server Hostnamen und Pfad des entfernten
Dateisystems an und wo es im lokalen Dateisystem eingehangt werden soll (zB mount smg1nimlpp mnt)
(4) Mount-Befehl kommuniziert mittels RPC uumlber das Mount-Protokoll mit dem Mount-Dienst auf dem NFS-Server was gemountet werden soll
(5) Zuruumlckgelieferter Dateihandle wird uumlber die VFS-Schicht an den NFS-Client uumlbergeben welcher dann die Kommunikation mit dem NFS-Server und den Mount durchfuumlhrtDabei gibt es zwei Arten
f Hard-Mount Prozess wird unterbrochen bis Mount erfolgt ist (auch wenn der NFS-Server nicht erreichbar ist)
g Soft-Mount NFS-Client gibt Fehlermeldung an den Prozess zuruumlck wenn der NFS-Server nicht erreichbar ist
Es gibt drei Zeitpunkte wann gemountet wird Wenn der Benutzer das Mount-Kommando ausfuumlhrt Beim Systemstart falls ein NFS-Mount in der bdquoetcfstabldquo steht Durch den Automounter sobald auf ein Verzeichnis zugegriffen wird welches gemaumlszlig Konfiguration ein
NFS-Mount ist und durch den Automounter bedient werden soll
Wie ist die Arbeitsweise von CVS Was genau ist CVS CVS (Concurrent Version System) ist ein Versionsverwaltungssystem Erfuumlllt neben Datenkonsistenz auch Anforderungen die durch die Gruppenarbeit entstehen
o Isolation Benutzer koumlnnen isoliert von einander eine Datei aumlnderno Integration Aumlnderungen koumlnnen wieder in die Gruppe integriert werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
o Aktualitaumlt einfach aktuelle Dateiinhalte zu erhalteno Nachvollziehbarkeit von Aumlnderungeno Gruppenwahrnehmung Benutzer werden uumlber Aktivitaumlten anderer Benutzer informiert
Funktion Ablage aller Versionen in einer Datei in gemeinsamen Repository Unterstuumltzung der Benutzer bei Auswahl Erzeugung und Manipulation von Versionen Aumlnderungen an einer bestehenden Version sind nicht moumlglich eine Aumlnderung fuumlhrt immer zu einer
neuen Version =gt Nachvollziehbarkeit der Aumlnderungen 3 Phasen der Arbeit
check out (CVS update) =gt Aktualitaumlt Bearbeitung der Dateien =gt Isolation check in (CVS commit) =gt Integration
Was passiert wenn wir die gleiche Datei bearbeiten kann es zu Problemen kommen Wenn zwei Benutzer zur selben Zeit an derselben Datei arbeiten fuumlhrt dies dazu dass zwei Versionen
ins Repository eingecheckt werden Daraus resultiert ein Versionsbaum Will man zu viele Verzweigungen vermeiden kann man vor dem check in ein Update durchfuumlhren um
zu sehen ob sich an der Datei inzwischen etwas geaumlndert hato Falls nein ist alles iO und die Datei kann eingecheckt werdeno Falls ja fuumlhrt der Update zu einem lokalen Merge der Version im Repository und der lokalen
DateiMergekonflikt Kann auftreten wenn zB derselbe Bereich in der Datei veraumlndert wird oder semantische Abhaumlnigkeiten auftreten Dann muss der Benutzer eigenverantwortlich aus den beiden Dateien eine sinnvolle erstellen und ins Repository einchecken
Was ist beim Merge durch das 2-Wegevergleichsverfahren nicht abgedecktEs ist unmoumlglich aus einer gemeinsamen Ursprungsversion eine geloumlschte Zeile zu erkennen Deshalb Erweiterung zum 3-Wegevergleich wo auch die Vorversion in den Vergleich miteinbezogen wird Es werden dabei fuumlr die beiden parallelen Texte die Unterschiede (hinzugefuumlgte geloumlschte Zeilen) zu ihren Vorversionen ermittelt
In welchem Fall fuumlhren parallele Aumlnderungen nicht zu ProblemenWenn es keine semantischen Abhaumlngigkeiten gibt bzw wenn nicht dieselben Dokumentbereiche geaumlndert wurden
Wie wird die Gruppenwahrnehmung in CVS realisiertIn CVS gibt es dafuumlr einen allgemeinen Mechanismus der im Anschluss an commit-Aktionen ausgefuumlhrt werden kann Dieser laumlsst sich zB so konfigurieren dass beim Erstellen einer neuen Version durch einen Benutzer automatisch interessierte Benutzer uumlber E-Mail daruumlber informiert werden Die Benutzer abonnieren dazu den Projektarbeitsbereich indem sie ihre E-Mail Adresse in eine Benachrichtigungsliste eintragen Das System verschickt dann nach jeder Aumlnderung Informationen uumlber die betroffene Datei und den Versionskommentar an die Abonnenten
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 6 Transaktionen
1 Wechselseitiger Ausschluss (Buch 63)2 ACID-Eigenschaften (Buch 132)3 Verteilter Commit (Buch 85)4 Deadlocks (Heft 62)5 Recovery (Buch 86)6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
1 Wechselseitiger Ausschluss (Buch 63) = Mutual Exclusion
- Prozesse haben den Bedarf gleichzeitig auf die gleiche Ressource zuzugreifen- damit die Ressource nicht zerstoumlrt wird (zB Erzeugung von Inkonsistenz) existieren verschiedene Algorithmen um einen wechselseitigen Ausschluss zu gewaumlhrleisten
a) Zentralisierter Algorithmus- ein Prozess fungiert als Koordinator welcher Zugriff erteilt oder verwehrt Verwehrte Zugriffe landen in einer Queue
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- Koordinator ist ein SPF (Single Point of Failure) bei Crash- Koordinator ist ein Performance Bottleneck
b) Dezentralisierter Algorithmus- Jede Ressource wird n mal repliziert es existieren auch n Koordinatoren- Stimmenbasierte Abstimmung auf Zugriff es werden mindestens n2+1 positive Stimmen benoumltigt um Zugriff zu erhalten
Vorteile- Resistenter gegen Ausfaumllle als der zentralisierte Algorithmus
Nachteile- Wenn eine Ressource sehr oft benoumltigt wird kann es sein dass niemand Zugriff erhaumllt da niemand die noumltigen Stimmen erhaumllt (Starvation)- Nicht effektiv
c) Verteilter Algorithmus (kein Koordinator Selbstorganisation)- basierend auf Ricart und Agrawala (1981)- Voraussetzung ist eine totale Ordnung aller Ereignisse im System (basierend wiederrum auf Lamports Algorithmus zur Uhrsynchronisierung 1978)- Prozessanfragen enthalten den Namen der Ressource die eigene Prozess-ID sowie einen globalen Timestamp- Prozessanfragen werden an alle anderen beteiligten Prozesse gesendet es koumlnnen folgende Antworten auftreten
OK message wenn der Empfaumlnger die Ressource nicht benoumltigt keine message wenn der Empfaumlnger die Ressource bereits benutzt Anfrage landet in einer Queue Wenn beide Prozesse die Ressource benutzen wollen gewinnt diejenige mit dem kleineren Timestamp --gt Antworten siehe oben
Vorteile- kein SPF (Single Point of Failure)
Nachteile- Entweder es wird Multicast fuumlr die Anfragen benutzt oder jeder Prozess kennt alle anderen beteiligten Prozesse --gt Aufwaumlndig- Langsamer komplizierter teurer weniger robust als der zentrale Algorithmus
d) Token Ring Algorithmus
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
- basierend auf einem Bus-Netzwerk in dem ein Token pro Ressource staumlndig zwischen den Prozessen kreist (logischer Ring)- die Prozessreihenfolge ist nicht wichtig jedoch muss jeder Prozess seinen Nachfolger im Ring kennen
Vorteile- leichte Implementierung da simpel- fair da Zugriffsreihenfolge fest definiert (FIFO)- no starvation (kein Verhungern)
Nachteile- ldquoVerlierenrdquo des Token dh dieser muss neu generiert werden Problem ist die Feststellung dass der Token verloren wurde- wenn ein Prozess crasht kann die Kette unterbrochen werden (wenn jeder Prozess alle Prozesse kennt kann das Problem umgangen werden)
2 ACID-Eigenschaften (Buch 132)
= Vier Eigenschaften die jede Transaktion haben mussAtomic jede Transaktion geschieht entweder komplett oder gar nichtConsistent Zustaumlnde sind immer konsistent Teiltransaktionen sind von auszligen nicht sichtbarIsolated Transaktionen die parallel laufen fuumlhren zum gleichen Ergebnis als wenn diese nacheinander laufenDurable Ergebnisse abgeschlossener Transaktionen (Commited) sind unveraumlnderbar durch zB
FailureSystemcrash etc
3 Verteilter Commit (Buch 85)
Es existieren uA 1phasige 2phasige und 3phasige CommitsVerteilte Commits werden benoumltigt um sicher zu stellen dass Transaktionen entweder gar nicht oder komplett (Atomic) in einem verteiltem System (mehrere beteiligte Prozesse) ausgefuumlhrt werden
a) one-phase-commit- Koordinator-basierend- Koordinator teilt allen Teilnehmern mit einen Commit auszufuumlhren- es besteht keine Moumlglichkeit fuumlr einen Prozess den Koordinator zu kontaktieren (zB wenn der Prozess den Commit nicht ausfuumlhren kann (zB durch referential constraint verletzung))- Koordinator is SPF (Single Point of Failure)
b) two-phase-commit (Gray 1978)- Koordinator-basierend- Koordinator fraumlgt an ob Prozesse Commiten koumlnnten (VOTE_REQUEST)- Wenn alle Prozesse bestaumltigten (VOTE_COMMIT) wird ein globaler Commit vom Koordinator ausgeloumlst (GLOBAL_COMMIT)- Sollte ein Prozess nicht commiten koumlnnen (VOTE_ABORT wird zuruumlck gesendet) so wird die Transaktion komplett abgebrochen (GLOBAL_ABORT)- Koordinator ist SPF (Single Point of Failure)
c) three-phase-commit- Umgeht das Problem des SPF-Koordinators des two-phase-commits- Vermeidet blockierende Prozesse (im Gegensatz zum two-phase-commit)- Stabileres Verhalten wenn Prozesse oder der Koordinator crashed (autom Rollback etc Alle Zustaumlnde koumlnnen rekonstruiert werden (besser als beim 2phasigen Commit))
4 Deadlocks (Heft 62)- = Systemverklemmung gegenseitiges Aussperren unerwuumlnschter Zustand- es existieren Verfahren zur Erkennung und Vermeidung (nicht Kursbestandteil)
5 Recovery (Buch 86)- Recovery = Wiederherstellung eines guumlltigen Zustandes- backward recovery = Wiederherstellung eines altengesicherten Zustandes durch ldquozuruumlckdrehenrdquo auf einen Checkpoint(Beispiel erneutes Senden eines verlorengegangenen Paketes = br)- forward recovery = Erzeugung eines neuen guumlltigen Zustandes
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
(Beispiel Wiederherstellung eines verlorengegangenen Paketes durch erasure correction)- Checkpoint = sichern des aktuellen Zustandes (konsistenter Zustand) zu Wiederherstellungszwecken (teure Operation)- message logging = mitloggen von messages (entweder sender-based oder receiver-based)Mit Hilfe von Checkpoints und message logging kann der Aufwanddie Kosten reduziert werden- Wiederherstellung mit Hilfe von Checkpointsmessage logging Checkpoint-Zustand wiederherstellen messages replayenStable storage Speicherbereich der auch groumlszligere Failures uumlbersteht ohne dass Daten verloren gehen (zur Speicherung der Recovery-Daten) zB Raid Drive Arrays undoder Datensicherungen- distributed checkpoint = checkpointing in einem fault-tolerant distributed system (jeder Prozess erzeugt individuelle lokale Checkpoints = independent checkpointing)- Bei der Wiederherstellung eines distributed checkpoints muss eine recovery line gefunden werden (wiederherstellbarer konsistenter Zustand des Gesamtsystems)- coordinated checkpointing koordiniertes Ausloumlsen der Checkpoint-Generierung Vorteil generierter distributed checkpoint ist immer global Konsistent Domino-Effekt beim Wiederherstellen wird vermieden- incremental snapshot Ausloumlsen der Checkpoint-Generierung nur bei Prozessen deren Zustand sich geaumlndert hat (die Nachrichten empfangen haben)
6 Transaktionen in kooperativen Anwendungen insbes COAST (Heft 632)
- optimistische Nebenlaumlufigkeitskontrolle mehrere Befehle werden zusammen als Transaktion behandelt Das System uumlberwacht Zugriffe auf replizierte Objekte und uumlberwacht Veraumlnderungen in einem Transaktionslog Clients werden dabei uumlber Veraumlnderungen informiertDas Log enthaumllt auch die urspruumlnglichen Zustaumlnde um diese bei Kollissionen wiederherstellen zu koumlnnenNebenlaumlufigkeitskontrolle werden mehrere Transaktionen parallel ausgefuumlhrt so wird festgestellt ob diese beiden ausgefuumlhrt werden koumlnnen (dh sich nicht gegenseitig beeinflussen) oder ob ein Client seine Transaktion ruumlckgaumlngig machen mussEinfache Nebenlaumlufigkeit es darf keine parallelen Schreiboperationen auf einem Objekt gebenVerbesserte Nebenlaumlufigkeit Nebenlaumlufig sind dabei Aktionen die das gleiche Objekt betreffen sich aber nicht gegenseitig ausschlieszligen wie zB die gleichzeitige Aumlnderung von Farbe und Groumlszlige eines 3D-Koumlrpers Die Erkennung von Nebenlaumlufigkeit wird dabei uumlber eine Kommutativitaumltstabelle realisiert Operationen die kommutativ (miteinander vertauschbar) sind koumlnnen als unabhaumlngig von einander betrachtet werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Kurseinheit 7 Computer Supported Cooperative Work
CSCW = Computer Supported Cooperative Work = Groupware = rechnergestuumltzte ZusammenarbeitCSCL = Computer Supported cooperativecollaborative learning (Verteilung von Wissen durch zB Vorlesungen)
Beispiele Kooperative Bearbeitung von Uumlbungsaufgaben in der synchronen kooperativen Lernumgebung FUB Kooperatives Schreiben eines Buches mit BSCW (Basic Supported Cooperative Work) Gruppenarbeit in verteilten Organisationen mit Workware innerhalb einer Firma
FUB Bilden einer Lerngruppe Durchfuumlhren der kooperativen Lernuumlbung (gemeinsamer Arbeitsbereich) gemeinsame Dateien inkl Versionssystem (altneu) unterstuumltzt kein Merge Chat-Kommunikation Phasenwechsel Einreichen der gemeinsamen Loumlsung
Buch Gemeinsamen Arbeitsbereich einrichten Groben Zeitplan festlegen Gliederung entwickeln Kapitel verteilen und Arbeitsplan erstellen Kapitel schreiben Kapitel gegenseitig begutachten Kapitel verbessern Ergebnisse zum ersten Entwurf integrieren
Groupware Integriertes Workflow-Management Aufgaben erzeugenstarten Aufgaben entlang einer Prozesskette verteilen Aufgaben ruumlckmelden Aufgaben uumlberwachen
Einflussfaktoren der Gruppenarbeit Gemeinsame Artefakte Kommunikation Koordination
Phasen bei der Gruppenarbeit Individuelle Arbeit Asynchrone Kooperation Synchrone Kooperation
Es existieren Rollen in der Gruppe mit verschiedenen sozialen Funktionen bzw Rechte und Pflichten
Abgrenzung zwischen CSCW und CSCL CSCW als Bindeglied zwischen Individualanwendung und Organisationsunterstuumltzung CSCW als Konvergenzbereich verschiedener Entwicklungsbereiche zB HCI MIS Gruppenpsychologie Soziologie etc CSCL benutzt zusaumltzlich Forschungsmethoden und Forschungsergebnisse verschiedener Disziplinen
Klassifikation von CSCW-Systemen in einer RaumZeit-Matrix
RaumZeit Gleiche Zeit (synchron) Verschiedene Zeit (asynchron) vorhersehbar
Verschiedene Zeit (asynchron) nicht vorhersehbar
Gleicher Ort Face-to-FaceSitzungsraum
Organisation von Schichtarbeit
Schwarzes Brett
Verschiedener Ort (vorhersehbar)
Videokonferenz E-Mail Kooperatives Schreiben
Verschiedener Ort (nicht vorhersehbar)
Mobilfunkkonferenz Asynchrone rechnergestuumltzte Konferenz
Vorgangsbearbeitung
Fallstudie DOLPHIN
Basiskonzepte in kooperativen Systemen E-Mail News Chat Instant Messaging
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden
Kurs 1678 ndash Verteilte SystemeZusammenfassung
Koordination (Prozesse Rollenkonzepte Gruppenkalender Workflow gemeinsame Dokumente Kooperation (gemeinsame Arbeitsbereiche Benutzerlisten Application Sharin g WYSIWIS)
Mit Hilfe von COAST (ist ein Framework) koumlnnen CSCW-Systeme entwickelt werden