• Keine Ergebnisse gefunden

- Wird durch .NET abgelöst

N/A
N/A
Protected

Academic year: 2021

Aktie "- Wird durch .NET abgelöst"

Copied!
40
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

- Integration, Interoperabilität, Komponenten-Modell - transparenter Zugriff auf entfernte Objekte (RPC-Idee) - statische und dynamische Aufrufe

- IDL heisst hier MIDL (‘M’ für Microsoft)

- Aufgaben von ORB und Object Adapter werden von einem “Service Control Manager” (SCM) wahrgenommen

- DCOM aber proprietär auf MS-Technologie ausgerichtet

- Keine Vererbung, stattdessen Delegation und Aggregation

- Kapselung binärer Bibliotheken

- Einbettung von Objekten in andere mit Weiterreichung von Schnittstellen nach aussen

-Aggregation: automatisches Durchreichen der kompletten inneren Schnittstelle nach aussen

-Delegation: Durchreichen eines Teils der inneren Schnittstelle nach aussen; äussere Schnittstelle ruft innere Methoden explizit auf

- Wird durch .NET abgelöst

- .NET-Remoting: entfernter Methodenaufruf - Quellcode in .NET-Sprache wird kompiliert in Common Intermediate Language (CIL)

- entspricht etwa Java Bytecode

- Virtuelle .NET-Maschine (Common Language

- entspricht Java Virtual Machine

- CLR enthält Just-in-Time (JIT) Compiler

Runtime, CLR) führt CIL-Code aus

- Clients verwenden lokale Proxies, die dieselbe Schnittstelle wie das entfernte Serverobjekt anbieten und Methodenaufrufe weiterleiten

- Verschiedene Server-Aktivierungsmodi möglich:

-Singleton: ein einziges Serverobjekt für alle Methodenaufrufe -SingleCall: ein eigenes Serverobjekt für jeden Methodenaufruf

(2)

- Java RMI (Remote Methode Invocation)

- Schnittstelle “Serializable” implementieren

- Serialisierung durch Schreiben auf “ObjectOutputStream”

- Instanzvariablen, die nicht serialisiert werden sollen, werden mit “transient” gekennzeichnet

- Deserialisierung durch Lesen von “ObjectInputStream”

- .NET: zwei mögliche Serialisierungsformate

-Binärformat: platzsparend, effizient, nicht menschlich lesbar, gut für homogene .NET-Anwendungen

-SOAP-Format: XML-Kodierung, interoperable mit anderen SOAP-Komponenten (auch Nicht-.NET)

- zu serialisierende Klasse wird mit Attribut “Serializable” versehen

→ entspricht bei Java “Serializable”

- nicht zu serialisierende Komponente wird mit Attribut “NonSerialized” markiert→ entspricht bei Java “transient”

network. It has an interface described in a

machine-processable format (specically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serializa- tion in conjunction with other Web-related standards.

- Also: Ein entfernter Dienst, der über SOAP-Nachrich- im Universal Description Discovery and Integration (UDDI)-Registry verzeichnet ist.

ten aufgerufen werden kann; in der Web Service Description Language (WSDL) beschrieben ist; und

- WDSL: XML-basierte Sprache zur Spezikation der Schnittstellen von Web Services

- Rolle vergleichbar mit CORBA IDL

- SOAP (Simple Object Access Protocol): Austausch

von XML-Nachrichten über HTTP (oder HTTPS)

(3)

- unabhängig von existierenden Plattformen (Sprachen, Middleware) - sehr lockere Koppelung von Client und Server

- ubiquitär nutzbar, (im Prinzip) weltweit zugreifbar

- Web-Browser als kanonische Clients nutzbar

- Browser werden mit Java-VM etc. auch zunehmend leistungsfähiger - fungiert als Interface für Nutzer bei Web-Service-Applikationen

- Problembereiche

- http war als reines Dokumentenaustauschprotokoll für menschl. Nutzer konzipiert worden - nicht zur Kommunikation zwischen Computern - die Beschreibung von global anwendbaren Diensten für E-Commerce etc. stellt andere Anforderungen als die (rein syntaktische) Interface- Beschreibung klassischer Prozeduren in Programmiersprachen - Overhead für einen Aufruf ist relativ gross

- UDDI-Service global (“universell”) zu etablieren, ist eine technische und kommerzielle Herausforderung (teilweise Suchmaschinen- funktionalität!)

(4)

Jini

Teil der Vorlesung „Verteilte Systeme“

F.Ma. 2

ƒ Infrastructure (“middleware”) for dynamic, cooperative, spontaneously networked systems

ƒfacilitates implementation of distributed applications

Jini

(5)

F.Ma. 3

ƒ Infrastructure (“middleware”) for dynamic, cooperative, spontaneously networked systems

ƒfacilitates implementation of distributed applications

Jini

•framework of APIs with usefulfunctions / services•helper services (discovery, lookup,...)•suite of standard protocols andconventions

F.Ma. 4

ƒ Infrastructure (“middleware”) for dynamic, cooperative, spontaneously networked systems

ƒfacilitates implementation ofdistributed applications

Jini

•services, devices, …find each other automatically (“plug and play”)•dynamically added / removed components•changing communication relationships•mobility

(6)

F.Ma. 5

Jini ƒ Service-oriented

ƒ(almost) everything is considered a serviceƒJini system is a federation of servicesƒmobile proxy objects for service access

ƒ Infrastructure (“middleware”) for dynamic, cooperative, spontaneously networked systems

ƒfacilitates implementation of distributed applications

ƒ Based on Java

ƒmay use RMI (Remote Method Invocation)ƒcode shippingƒrequires JVM / bytecodeeverywhere

F.Ma. 6 ƒ(Almost) everything is a serviceƒe.g. persistent storage, software filter, …

ƒJini’srun-time infrastructure offers mechanisms for adding, removing, finding, andusing services

ƒServices are defined by interfacesand provide their functionality via their interfacesƒservices are characterizedby their typeand their attributes(e.g. “600 dpi”, “version 21.1”)

ƒServices (and service users) may “spontaneously”forma system (“federation”)

Service Paradigm

(7)

F.Ma. 7

Example of a Jini Federation

Camera 1(client)Camera 2(client) Printservice Picture directoryand storage Picture mailingservice

Network

F.Ma. 8

Jini: Global Architecture

ƒ

Lookup Service(LUS)ƒmain registry entity and brokerage service for services and clientsƒmaintains information about available servicesƒServicesƒspecified by Java interfacesƒregister together with proxy objectsand attributes at the LUSƒClientsƒknow the Java interfaces of the services, but not their implementationƒfind services via the LUSƒuse services via proxy objects LookupService

Client ClientClient

Service ServiceService

(8)

F.Ma. 9

Network Centric

ƒJini is based on the network paradigmƒ“the network is the computer”

ƒNetwork = hardware and software infrastructure

ƒView is “network to which devices are connected to”, not “devices that get networked”ƒnetwork always exists, devices and services are transient

ƒJini supports dynamicnetworks and adaptive systemsƒadding and removing components or communication relations should only minimally affect other components

F.Ma. 10

Spontaneous Networking ƒ Objects i

n an open, distributed, dynamic world find each other and form a transitory community

ƒcooperation, service usage, …

ƒ Typic al scenario: client wake s up (de vice is switched on, plugged in, …) and asks for services in its vicinity

ƒ Finding each other and establishing a connecti on should be fast , ea sy , and automatic

(9)

F.Ma. 13

Some Fallacies of Common Distributed Computing Systems ƒ

The “classical” idealistic view …

ƒthe network is reliableƒlatency is zeroƒbandwidth is infiniteƒthe network is secureƒthe topology is stableƒthere is a single administrator

ƒ … isn’t true in fact

ƒJini addresses some of these issues ƒ(or at least it does not hide or ignore them)

F.Ma. 14

Bird’s-Eye View on Jini as a Middleware Infrastructure ƒ Jini consists of a number of APIs ƒ Is an extension to the Java platfo rm dealing with distributed computing ƒ Is an abstraction layer between the application and the underlying infra- structure (network, OS)

Network Operating system Java technology Jini technologyJini technology ApplicationsServices

(10)

F.Ma. 15

Jini’s Use of Java

ƒ Jini requires JVM (as bytecode interpreter)

ƒhomogeneity in a heterogeneous worldƒ(but is this a realistic assumption?)

ƒ Devices that are not “Jini-enabled” or t h a t d o not have a JVM c a n be managed by a software proxy (so mewhere in the net)

run protocols for discovery andjoin; have a JVM

F.Ma. 16

Main Components of the Jini Infrastructure ƒ

Lookup service

ƒas repository / naming service / trader

ƒ Protocols

ƒbased on TCP/UDP/IPƒdiscovery & join, lookup of services

ƒ Proxy objects

ƒtransferred from service to clientsƒrepresent the service locally at the client

(11)

F.Ma. 17

Context-Knowledge? ƒ

Jini advocates spo ntaneous networking and formatio n of federations without prior knowledge of local environment

ƒ Problem: How do service pro viders and clients learn abo ut their lo cal enviro nments?

Įlookup service!

F.Ma. 18

Lookup Service (LUS) ƒ

Central component of every Jini federation

ƒ Repository of services

ƒ Similar to naming services (e .g., RMI registry) o f other middleware architectures

ƒ Functions as a “help-desk” for services and clie nts

ƒregistration of services(services advertise themselves)ƒdistribution of services(clients lookup and find services)

ƒ Has mechanisms to bring together services and clients

(12)

F.Ma. 19 Client Lookupservice

Service -

iste reg r lookup

use JiniFederation

Lookup Service

F.Ma. 20

Example

Lookup service

Officeapplication Printerproxyarbitrary protocol

Communication betweenapplication and printer via functional calls of the proxy Printerproxy

Printerproxy

(13)

F.Ma. 21

Lookup Service

ƒ

UsesJava RMIfor communicationƒobjects („proxies“) can migrate over the network

ƒNot only name/addressof a service is stored (as in traditional naming services), but also:ƒset of attributesƒe.g.: printer(color: true, dpi: 600, ...)ƒproxies, which may be complex classesƒe.g. user interfaces

ƒFurther possibilities:ƒresponsibility can be distributed to a number of (logically separated) lookup servicesƒincrease robustness by running redundant lookup services

F.Ma. 22

Discovery: Finding a LUS ƒ

Goal: Find a lookup service (without knowing anything about the network) to

ƒadvertise (register) a service, orƒfind (look up) an existing service

ƒ Discovery protocol :

ƒmulticastto well-known address/portƒlookup service replies with a serialized object (its proxy)ƒcommunication with LUS then via this proxy

(14)

F.Ma. 23

Discovery

Where isthe lookupservice?

??

Lookup Service That’s me!!! Multicast Request

Reply

Communication Lookup Service

Lookup ServiceLookup Service

ProxyProxy Look

up-Service

ProxyProxy

F.Ma. 24

Multicast Discovery Protocol

ƒSearch for lookup servicesƒno information about the host network needed

ƒDiscovery request uses multicast UDPpacketsƒmulticast addressfor discovery is 224.0.1.85ƒdefaultport numberof lookup services is 4160ƒrecommended time-to-liveis 15ƒusually does not cross subnet boundaries

ƒDiscoveryreplyis establishment of a TCP connectionƒport for reply is included in multicast request packet

(15)

F.Ma. 25

Join: Registering a Service ƒ

Assumption: Service provider already has a proxy of the lookup service ( Æ discovery) ƒ It uses this proxy to register its servic e ƒ Gives to the lookup service

ƒitsservice proxyƒattributesthat further describe the service

ƒ Service provider can now be found and used in this Jini federation

F.Ma. 26

...

Lookup Service

Service database in LUS

Join

Lookup ServiceLookup Service

ProxyProxy

Entry 1Entry 2Entry n...

Serviceproxy

Entry1Entry2Entry n...

Serviceproxy

Reg istra

tion

Service

Reg istra

tion

(16)

F.Ma. 27

Join: More Features

ƒ

To join, a service supplies:ƒitsproxyƒitsServiceID(if previously assigned; “universally unique identifier”)ƒset of attributesƒ(possibly empty) set of specific lookup servicesto join

ƒService waits a random amount of time after start-upƒprevents packet storms after restarting a network segment

ƒRegistration with a lookup service is bound to a leaseƒservice has to renewits lease periodically

F.Ma. 28

Lookup: Searching Services

ƒ

Client creates query for lookup serviceƒmatching by registration numberof service and/or service typeand/or attributespossibleƒattributes: only exact matchingpossible (no “larger-than”, ...)ƒwildcardspossible („null“)ƒVia its proxy at the client, the lookup service returns zero, one or morematches(i.e.,server proxies)ƒSelection among several matches is done by client

ƒClient uses service by calling functions of theservice proxyƒAny “private”protocol between service proxy and service provideris possible

(17)

F.Ma. 29

...

Lookup Service

Service database in LUS Entry1Entry2Entry n...ServiceServiceproxyproxy Entry1Entry2Entry n...

ServiceService

proxyproxy

Lookup

Lookup ServiceProxyProxyLookup

?

? ?

prie pro tary

prie pro tary to pro

col pro

ol toc

Client

Entry1Entry2Entry n...ServiceServiceproxyproxy

F.Ma. 31

Proxies ƒ

Proxy object is stored in the lookup service upo n registration

ƒserialized objectƒimplements the service interfaces

ƒ Upon request, service proxy is sent to the client

ƒclient communicates with service implementation via its proxy: client invokes methods of the proxy objectƒproxyimplementation hiddenfrom client

(18)

F.Ma. 32

Smart Proxies

ƒ

Parts of (or the whole) service functionality may be executed by the proxyat the clientƒWhen dealing with large volumes of data, it usually makes sense to preprocessparts of or all the dataƒe.g.: compressing video data before transferƒPartition of service functionality depends on service implementer’s choiceƒclient needs appropriate resources

ClientClientServiceService ProxyProxyCommunication

F.Ma. 33

Leases ƒ

Leases are contracts between two parties ƒ Leases introduce a n otion of time

ƒresource usage is restricted to a certain time frame

ƒ Repeatedly express interest in some resource:

ƒI’mstill interestedin Xƒrenew lease periodicallyƒlease renewal can be deniedƒIdon’t needX anymoreƒcancel lease or let it expireƒlease grantor can use X for something else

(19)

F.Ma. 35

Distributed Events ƒ

Objects on one JVM can register interest in certain events of another o b ject on a different JVM ƒ “Publishe r/sub scrib er” model

Subscriber Eventsource 1. Registration

2. Event occurs

3. Send notification

F.Ma. 36

Distributed Events – Example

ƒExample: printer is plugged inƒprinterregistersitself with local lookup serviceƒMaintenance applicationwants to update software

Lookup-Service

Maintenanceapplication Any protocol Proxy,attributes

Proxy,attributes

Proxy,attributes

(20)

F.Ma. 37 ƒMaintenance application is run on demand, search for printers is “outsourced”ƒsensor servicelooks for certain services on behalf of the maintenance applicationƒmaintenance application registersfor eventsshowing the arrivalof certain types of printersƒsensor observes thelookup serviceƒnotifies applicationas soonas matching printer arrivesvia distributedevents Lookup-Service

Maintenanceapplication Sensorservice

Tell me about the arrival of new printers of type x!

Distributed Events – Example

F.Ma. 38 ƒExample:printer arrives, registers with lookup serviceƒprinter performsdiscovery and joinƒsensor finds newprinter in lookupserviceƒchecks if thereis an event registrationfor this type of printerƒnotifiesallinterested objectsƒmaintenanceapplicationretrievesprinter proxy and updates software Lookup-Service

Maintenanceapplication A new printer arrived.I have to notify allinterested objects!

Notification Sensorservice

Proxy,attributes Proxy,attributes

Distributed Events – Example

(21)

F.Ma. 39

Jini Issues and Problem Areas

ƒ

Securityƒimportant especially in dynamic environmentsƒservices use other services on behalf of the userƒprincipals, delegation

ƒScalabilityƒhow well does Jini scale to a global level?

ƒJava centric

ƒSimilar, non-Java-based systemsƒUPnP, Bluetooth SDP, SLP, HAVi, Salutation, e-speak, HP Chai,...ƒopen, Internet-scale infrastructures (e.g., Web services)

(22)

Aufschalten

A

B

‘U’→ ‘X’

Fälschen Wechselseitiges Misstrauen

A B A

?

(z.B. Erzeugen falscher Nachrichten als Angriff auf die Glaubwürdigkeit) Aha!

$@#!

(23)

- Daten / Nachrichteninhalt gegen Lesen Unberechtigter schützten - Kommunikationsverhalten (wer mit wem etc.) geheim halten

- Authentizität

- Absender “stimmt” (z.B. Server ist der, für den er sich ausgibt) - Daten sind “echt” und aktuell (→ Integrität)

- Verfügbarkeit der wichtigsten Dienste

- keine Zugangsbehinderung (“denial of service”) durch andere - kein provozierter Absturz (“Sabotage”)

- Integrität

- Wahrung der Unversehrtheit von Nachrichten, Programmen und Daten

- Weitergehende Anforderungen, z.B.:

- breiter Einsatz, allgemeine Verwendung→ Angriffreizvoller

→ Gewährleistung der Sicherheit ist in verteilten Systemen wichtiger und schwieriger als in alleinstehenden Systemen!

- physische Abschottung nicht durchsetzbar

- technologische Gegebenheiten: z.B. Wireless LAN (“broadcast”)

- Heterogenität

- sorgt für zusätzliche Schwachstellen

- erschwert Durchsetzung einer einheitlichen Schutzphilosophie

- Dezentralität

- fehlende netzweite Sicherheitsautorität

Typische Techniken und “Sicherheitsdienste”:

(24)

→ Verschlüsselung

→ Anonymisierung

A B

- Aktive Angriffe: vorsätzliche Täuschung; Eindringen

- Durchbrechen von Zugangsschranken - Verändern des Nachrichtenstroms

tauschen, Verzögern, Wiederholen - Vorspiegelung falscher Identitäten

- Missbräuchliche Nutzung von Diensten

(Verändern, Vernichten, Erzeugen, Ver-

A

(Maskerade: Nachahmen anderer Prozesse

B

oder Nutzung eines fremden Passwortes) (“replay”) von Nachrichten)

- Denial of Service durch Sabotage oder Verhindern des Dienstzugangs, z.B. durch Überfluten mit Nachrichten

- Authentizität ist essentiell für die Sicherheit eines verteilten Systems

- Authentizität eines Subjekts (Client)

- ist er wirklich der, der er vorgibt zu sein?

- Authentizität eines Dienstes (Server)

- Bsp.: Handelt es sich wirklich um den Druckdienst oder um einen böswilligen Dienst, der die Datei ausserdem noch heimlich kopiert?

- darf ich als Server daher ihm (?) den Zugriff gewähren?

- Authentizität einer Nachricht

- hat mein Kommunikationspartner dies wirklich so gesagt?

- soll ich als Geldautomat wirklich so viel Geld ausspucken?

- zu authentischen Nachrichten / Daten vgl. auch den Begriff “Integrität”

(25)

Neuversenden einer früher abgehörten Nachricht)

- Massnahmen gegen Replays: z.B. mitcodierte Sequenznummer

- Peer-Authentifizierung mit Frage-Antwort-Spiel

- “challenge / response”: Antworten sollte nur der echte

- idealerweise stets neue Fragen verwenden (Replay-Attacken!) Kommunikationspartner kennen

- Peer-Authentifizierung mit Passwort

- typischerweise zur Authentifizierung eines Benutzers (“Client”) zum Schutz des Dienstes vor unbefugter Benutzung (Autorisierung) - Kenntnis des Passworts gilt als Identitätsbeweis (ist das gerechtfertigt?)

- Potentielle Schwächen von Passwörtern

- Geheimhaltung (Benutzer kann Passwörter “verleihen” etc.) - Raten oder systematische Suche (“dictionary attack“)

- Zurückweisung zu “simpler” Passwörter - Zeitverzögerung nach jedem Fehlversuch

⇒ Einwegfunktionen mit “trap-door”

extrem schwierig aus y zu ermitteln f

zeitaufwändig (→ prak- tisch nicht durchführbar)

- Es gibt (noch) keinen mathematischen Beweis, dass es Einwegfunktionen tatsächlich gibt (aber es gibt einige Funktionen, die es allem Anschein nach sind!) - Einwegfunktionen erscheinen zunächst ziemlich sinnlos: Ein zu y = f(x) verschlüsselter Text x kann nie wieder entschlüsselt werden!

(ein Geheimnis, das es erlaubt, f -1 effizient zu berechnen) - Idee: Nur der “Besitzer” oder “Erfinder” von f kennt dieses - Beispiel Briefkasten: Einfach etwas hineinzutun; schwierig etwas herauszuholen; mit Schlüssel (= Geheimnis) ist das aber einfach!

- Prinzipien typischer (vermuteter) Einwegfunktionen:

z.B. f = O(n), O(n log n),...

aber f-1 = O(2n)

- Anwendung z.B.: Public-Key-Verschlüsselung

(26)

x1 f x2 f f xn-1 f xn ...

f

auf Länge von 256 Bit gebracht)

pwd(Ci) = f(y) ? Initiale Passwort-

Ci-1 ...

Ci xn+1 Ci+1 ...

... ...

... ...

receive y from Ci

falls ja: Authentifizierung OK und pwd(Ci) := y

Server

Zunächst wird xn verwen- det, beim nächsten Mal xn-1, dann xn-2etc.

Einwegfunktion f wird (quasi auf Vor- rat) eineListe von n Einmalpasswörtern x1 ... xn erzeugt

datei pwd:

- Ein abgehörtes Passwort x

i

nützt nicht viel

- Berechnung von x aus x ist (praktisch) nicht möglich Kommunikation über

das Netz ist unsicher!

(bijektiven)

cipher- text

cipher- text

decryption

plain- text

key unsicherer Kanal oder

unsicherer Aufbewahrungsort

- Schreibweisen

-Verschlüsseln mit SchlüsselK1: Schlüsseltext = { Klartext }K1 -Entschlüsseln mit SchlüsselK2: Klartext = { Schlüsseltext }K2

- Symmetrische Kryptosysteme: K1 = K2

- Asymmetrische Kryptosysteme: K1 ≠ K2

(27)

- Verfahren, die Geheimhaltung nötig hätten, erscheinen “verdächtig”

- Verschlüsselungsfunktion ist ohne Kenntnis der

- Schlüssel muss geheimgehalten werden (da Verfahren i.Allg. bekannt)

- Nachteile symmetrischer Schlüssel:

- mit allen Kommunikationspartnern separaten Schlüssel vereinbaren - hohe Komplexität der Schlüsselverwaltung bei vielen Teilnehmern - Problem des geheimen Schlüsselaustausches

- Vorteile symmetrischer Schlüssel:

- ca. 100 bis 1000 Mal schneller als typische asymmetrischeVerfahren

- Beispiele für symmetrische Verfahren:

Schlüssel höchstens mit unverhältnismässig hohem Rechenaufwand umkehrbar

V E R T E I L T E S Y S T E M E

56 45 52 54 45 49 4C 54 45 20 53 59 53 54 45 4D 45 in ASCII

4C 93 EF 20 B7 55 92 7C DA 69 23 F8 BB 72 0E 81 00 Schlüssel

1A D6 BD 74 F2 1C DE 28 9F 49 70 A1 E8 26 4B CC 45

= Chiffre

XOR Klartext

-Entschlüsselung:Klartext = Schlüsseltext XOR Schlüsselbitsequenz

- Anforderungen an Schlüsselbitsequenz:

- keine periodische Wiederholung von Bitmustern

→ Schlüssellänge = Klartextlänge

- Schlüsselbitsequenz ohne Bildungsgesetz (“echte” Zufallsfolge ) - Schlüsselbitsequenz ist wirklich “one-time“ (keine Mehrfachverwendung!)

- Kryptoanalyse ohne Kenntnis der Schlüsselbitsequenz

ist dann nicht möglich

(28)

they have discovered a security loophole in the Windows 2000 operating system.

The researchers say they have found a way to decipher how Windows’ random number generator works, compute previous and future encryption keys used by a computer, and monitor private communication. The security loophole jeopardizes emails, passwords, and credit card numbers entered into a computer. "This is not a theoretical discov- ery," says Dr. Benny Pinkas from the Department of Com- puter Science at the University of Haifa, who headed the research initiative. "Anyone who exploits this security loophole can definitely access this information on other computers."

The researchers say the newer versions of Windows may also be vulnerable if Microsoft uses similar random num- ber generator programs.

- Schlüssel zum Ver- / Entschlüsseln sind verschieden

- Für jeden Prozess X existiert ein Paar (p,s) p = public key

s = secret key

zumVerschlüsseln von Nachrichten an X zumEntschlüsseln von mit p verschlüsselten Nachrichten

- Jeder Prozess, der an

- Nur X selbst kennt s X

A B

{m’}p

{m}p

m = {{m}p}s m’ = {{m’}p}s

X sendet, kennt p

- Public-Key-Server:

X? X p (oder “private” key)

-RSA-Verfahren (Rivest, Shamir, Adleman, 1978), beruht auf der Schwierigkeit von Faktorisierung

- andere Verfahren beruhen z.B. auf diskreten Logarithmen

(29)

Nachricht nicht (mit vertretbarem Aufwand) ableiten 3) m = {{m}

p

}

s

- Vorteil gegenüber symmetrischen Verfahren:

vereinfachter Schlüsselaustausch

- jeder darf den übermittelten public key p mithören

- secret key s braucht grundsätzlich nie mitgeteilt zu werden

- bei n Teilnehmern genügen 2n Schlüssel (statt O(n2) bei sym. Schlüsseln)

4) evtl. zusätzlich: m = {{m}

s

}

p

- Kenntnis von s authentifiziert zugleich den Besitzer

(Rolle von Verschlüsselung und Entschlüsselung austauschbar)

- Beachte: “Chosen-Plaintext“-Angriff möglich:

- beliebige Nachrichten M und deren Verschlüsselung { M }p jederzeit generierbar, falls p tatsächlich öffentlich

- das Kryptosystem muss demgegenüber robust sein

A: m := “Ich bin A”

m’ := {m}

K

A → B: m’, m

B: überprüfe, ob {m}

K

= m’

1. Verfahren:

-Nachteil: Möglichkeit

2. Verfahren:

A → B: “Ich bin A”

von replays durch Abhören

Problem: B soll die Authentizität von A feststellen.

-Idee: Überprüfe die Fähigkeit, Nachrichten mit einem geheimen Schlüssel zu kodieren Idee (Geheimdienstprinzip): “Wenn Xdas weiss und kann, dann muss X wirklich X sein, denn sonst weiss und kann das niemand”

Damit B den richtigen Schlüssel (für A) wählt

Bemerkung:Oft ist einegegenseitige Authentifizierung nötig

(30)

m = „Ich bin A“

[m,n] = {m' }pA? Falls ja:

⇒„Dies muss von Alice stammen!“

⇒Nur A konnte mitsA Textm'

A lice B ob

m,m' m' = {m, n}sA

n = zufällige Einmalkennung

„Wer bist du?“,n

(„nonce“)

herstellen

- geschützt gegen Replays (wieso?)

- Vorsicht: “Man in the middle“-Angriff möglich (wie?) - Nachteil: B muss viele public keys speichern; alternativ:

KS

Key Server: Kennt

alle public keys

- B erfragt public key von A bei KS digitale Unterschrift

generiert Noncen { A,n }pB

entschlüsselt mit privatemsB, generiert Nonce m, zusätzlich (symmetrischen) session keyK {n,m, K}pA

entschlüsselt mit

{m }K Vorhandensein von n

privatem sA und prüft

A lice B ob

- Hier zusätzlich: Vereinbarung eines symmetrischen “session keys” K, der nach der Authentifizierung zur effizienten Verschlüsselung benutzt wird

- Voraussetzung: A und B kennen die public keys

pB bzw. pA des jeweiligen Partners

(31)

1) Verwendung von Einmalkennungen, die vom Empfänger vorgegeben werden (“nonce”)

→ (fast) alle Nachrichten sind verschieden

2) Verwendung von mitkodierten Sequenznummern

- nur bei einer Nachrichtenfolge zwischen 2 Prozessen möglich

3) Mitverschlüsseln der Absendezeit

- aufwändiges Protokoll aus mehreren Nachrichten

- lokale Uhrzeit

- globale Zeitapproximation aus Zeitservice (z.B. NTP-Protokoll)

- Empfängerzeit vorher erfragen - Empfänger akzep-

tiert Nachricht nur, wenn seine Zeit max.Δt abweicht.

- Zeitfenster Δ t geschickt wählen!

P

secret key

- secret key muss auf sicherem Kanal zum Client gelangen

- Zur Generierung von temporären symmetrischen Schlüsseln (“session key”)

- public key von P kann an beliebige Prozesse offen verteilt werden

Schlüssel- server

A B

Session keys werden sicher und authentisch mit einem Public- Key-Verfahren an zwei Kommu- nikationspartner übertragen

Schlüs- selserver

(jedoch i.Allg. “zertifiziert”, dass der Schlüssel authentisch ist)

(32)

A B

- Problem: A und B wollen sich über einen unsicheren Kanal auf einen gemeinsamen Schlüssel einigen, ohne einen Schlüsselserver zu verwenden

- Sinnvoll z.B. bei dynamisch gegründeten Prozessen, die vorher noch nie kommuniziert haben

- z.B. wenn keine public keys vorhanden bzw. nicht bekannt

- Wie geht dies?

- wir erinnern uns an die “Schatzkiste mit zwei Vorhängeschlössern”

1. A generiert einen Sitzungsschlüssel k

2. A verschlüsselt k mit einem geheimen Schlüssel a 3. A → B: {k}

a

4. B verschlüsselt dies mit seinem Schlüssel b 5. B → A: {{k}

a

}

b

6. A entschlüsselt mit seinem Schlüssel a:

{{{k}

a

}

b

}

a

= {{{k}

a

}

a

}

b

= {k}

b

Forderung!

7. A → B: {k}

b

8. B entschlüsselt mit seinem Schlüssel: {{k}

b

}

b

= k

Bezeichne x den zu x inversen Schlüssel (oft: x=x)

Denkübung: Geht hier xor mit “one-time pads” a, b ?

gemeinsames Geheimnis a und b sind “lokal erfunden”

Beachte: k wird nie offen transportiert!

(33)

A B

??

Aha!: Aha!:

- Nutzung einer Einwegfunktion: f(x) = c

x

mod p

(1 < c < p; i.Allg. ist p eine grosse Primzahl)

- im RPC-Protokoll von Sun wurde z.B. c = 3 gewählt und p = d4a0ba0250b6fd2ec626e7efd637df76c716e22d0944b88b (hex.);

eine Zahl aus 192 Bits (die Parameter c und p sind kein Geheimnis) - in einem Restklassenring ist die Bestimmungdiskreter

Logarithmen (und k-ter Wurzeln) wesentlich schwieriger als die Bildung von Potenzen

1. A wählt eine Zufallszahl a 2. A berechnet α = f(a)

3. A → B: α

4. B wählt eine Zufallszahl b 5. B berechnet β = f(b)

6. B → A: β

7. A berechnet G

A

= β

a

mod p 8. B berechnet G

B

= α

b

mod p

Beispiel (für c = 5 und unrealistisch kleines p = 7):

Behauptung: G

A

= G

B

(gemeinsames Geheimnis!)

(a und b sind nur lokal bekannt und bleiben geheim)

(34)

Lemma: (k mod p)

n

mod p = k

n

mod p

Restklassen- arithmetik...

(c

b

mod p)

a

mod p = (c

b

)

a

mod p

= c

(b a)

mod p

= c

(a b)

mod p

= (c

a

)

b

mod p

= (c

a

mod p)

b

mod p

[Lemma]

[Lemma]

Bemerkungen:

- Lässt sich auch auf k > 2 Benutzer verallgemeinern

(35)

message sent by the transmitter; the cryptogram is again transformed by the authorized receiver using asecret reciprocal transformation to reproduce the message sent. The authorized receiver’s transformation is known only by the authorized receiver and is used to generate the transmitter’s transformation that is made publicly known. The pub- licly known transformation uses operations that areeasily performed but extremely difficult to invert. It is infeasible for an unauthorized receiver to invert the publicly known transformation or duplicate the authorized receiver’s secret transformation to obtain the message sent.

What is claimed is:

1. In a method ofcommunicating securely over an insecure communi- cation channel of the type which communicates a message from a transmitter to a receiver, the improvement characterized by: providing random numbers at the receiver; generating from said random num- bers a public enciphering key at the receiver; generating from said random numbers a secret deciphering key at the receiver such that the secret deciphering key is directly related to and computationally infeasible to generate from the public enciphering key; communicat- ing the public enciphering key from the receiver to the transmitter;

processing the message and the public enciphering key at the trans- mitter and generating an enciphered message by an enciphering trans- formation, such that the enciphering transformation is easy to effect but computationally infeasible to invert without the secret deciphering key; transmitting the enciphered message from the transmitter to the receiver; and processing the enciphered message and the secret deci-

- Besser: G nur als Schlüssel verwenden, um einen zufällig bestimmten session key zu kodieren und dem Kommunikationspartner diesen mitzuteilen

- so wird es z.B. im Sun-RPC-Protokoll gemacht - Motivation: G selbst so selten wie möglich benutzen

- Einzusehen bliebe noch, dass aus Kenntnis von α und β (sowie von c und p aus f) G von einem passiven Angreifer nicht effizient ermittelt werden kann!

- “Probieren” aller a, bisα =ca mod p gefunden→ langwierig

- Wie ist es aber bei aktiven Angreifern?

- α =ca mod p → a ist eindiskreter Logarithmus; dieser ist i.Allg. “schwierig” zu berechnen!

-α undβ sindunabhängig voneinander! (Wieso ist das ein Argument?) - Bem.: nicht jedes p ist “gut”; sollte auch einige 100 Bit gross sein

(36)

A B

- z.B. eigene Schlüssel für die (→ X arbeitet “transparent”)

Szenario 2:

Key- Server

X’

A B

X

public key von X

public

key von B - X kann alle von A mit dem falschen Schlüssel verschlüsselten Nach- richten an B entziffern - X verschlüsselt danach die Nachricht mit dem richtigen Schlüssel für B - kompromittierter Key- Server; Verschwörung,...

Teilstrecken vereinbaren - Challenge-Response-Tests: X reicht Challenges einfach an von ihm vorgetäuschten Partner weiter und miemt mit abgefangener Antwort die angenommene Identität

benutzt, als auf der Strecke XB!

2) A generiert die Antwort und verschlüsselt diese 3) A sendet nur die Hälfte davon an “B”

4) Ohne die andere Hälfte kann X diese nicht entschlüsseln und neu verschlüsseln

5) Erst nach t Zeiteinheiten sendet A die andere Hälfte

→ Gibt X die halbe Nachricht unverändert weiter, kann B diese nicht entschlüsseln → Fälschung erkannt

→ Behält X die halbe Nachricht bis zum Eintreffen der anderen Hälfte (und speichert die andere Hälfte

1) B stellt eine Anfrage, die nur A beantworten kann

- z.B. nur die geraden Bits

- B erwartet die Hälfte der Antwort in weniger als t Zeiteinheiten

(sofern X nicht erzwingen kann, dass key 1 = key 2 ist) - B setzt Schlüsseltexthälften zusammen und überprüft Antwort

(37)

- A lässt sich einmalig von einer Autorität ein Zertifikat Z

A

mitgeben (sollte von der Autorität signiert sein)

- Wenn B an der Identität von A zweifelt, wird B von A auf sein Zertifikat Z

A

hingewiesen

- Aber: A darf Z

A

nie B zeigen - sonst könnte B es sich kopieren und sich fortan als A ausgeben!

- Z

A

muss offenbar ein Geheimnis bleiben, das ausser der Autorität und A niemand kennt!

- Besitz des Zertifikates = Authentifizierung

- wie vermeidet man “raubkopierte Zertifikate”?

- in der digitalen Welt lassen sich Bitfolgen perfekt kopieren (im Unterschied zu “fälschungssicheren Ausweisen”)

- Autorität gilt als vertrauenswürdig und hat A evtl. persönlich in Augenschein genommen (oder einem fremden Zertifikat vertraut)

A

B

dann wissen, dass Du es hast?

A

Du kannst es mir glauben!

B

Dir?

Niemals!

A

Dann beweise ich Dir, dass ich das Bitmuster des Zertifikats kenne!

B

Ohne es mir zu verraten?

(38)

- B kann dennoch überprüfen, ob A das Zertifikat hat (z.B.

indem sich B von A etwas mit sA verschlüsseln lässt und anschliessend durch Anwenden von pA prüft; oder indem B ein {M}pA an A schickt und sich dies von A mit sA

- Eine andere Realisierung geht mit “zero knowledge”

- beweist Kenntnis eines Geheimnisses G, ohne relevante Information preiszugeben

entschlüsseln lässt)

Prover

P

Verifier

V

Hat Kenntnis einer bestimmten Information

Überprüft, ob P diese Kenntnis wirklich hat

- P kann V (praktisch) nicht betrügen: Wenn P die Information nicht hat, sind seine Chancen, V zu überzeugen, verschwindend gering

- V erfährt nichts über die eigentliche Kenntnis von P - V erfährt auch sonst nichts Relevantes von P, was V nicht auch alleine in Erfahrung bringen könnte

zwischen P und V

Idee:

(39)

5 1 2 6

7 3 4 8

A C

B D

Überprüfung eines A = 7

B = 5 C = 8 D = 6 E = 3 F = 1 G = 4 H = 2

durch eine Knoten- zuordnung gegebenen

Hier nur ein kleines und daher einfaches (aber unrealistisches) Beispiel

- Folgendes Protokoll überzeugt V davon:

- P erzeugt durch zufällige Permutation der Knoten einen Graphen H mit H ~ G1(und damit H ~ G2). Für P ist dies einfach. Andere aber können H ~ G1oder H ~ G2 nicht einfacher entscheiden als G1~ G2 - P sendet H an V

- Entweder bittet V dann P

- H ~ G1nachzuweisen,oder - H ~ G2nachzuweisen

- Da P den Graphen H konstruiert hat, kann P das gewünschte einfach tun (P hütet sich jedoch davor, auch noch die andere, von V nicht gewünschte, Alternative nachzuweisen - wieso?) - P und V wiederholen alles n Mal, wobei von P jedesmal ein anderer “Zeuge” H konstruiert wird (Beweissicherheit = 1-2-n)

zufällig; bzw. von P nicht vorhersehbar

- Der Isomorphismus bleibt dabei ein Geheimnis von P!

(40)

mit 50% Wahrscheinlichkeit wird P dann allerdings der Lüge überführt!

- V lernt nichts über die Isomorphie G

1

~ G

2

, glaubt aber schliesslich, dass P eine solche kennt

- Zur Minimierung der Interaktionen lassen sich die “Runden” parallelisieren: P sendet mehrere “iso- morphe Zeugen” an V, und V sendet einen Bitvektor zurück, der die Einzelnachweise auswählt

- V kann einem Dritten W gegenüber nicht beweisen, dass P den Isomorphismus kennt: Selbst ein exaktes Protokoll der Kommunikationsvorgänge muss W nicht überzeugen: P und V könnten sich verschworen haben!

- Da V nichts Relevantes gelernt hat, kann V sich anderen gegenüber auch nicht mit der Kenntnis schmücken

- sich alsonicht für P ausgeben(wenn die Kenntnis P identifiziert)

Referenzen

ÄHNLICHE DOKUMENTE

Unlike conventional folksonomy systems, employing web services in this way will allow us to capture and measure generalized un- certainty about the objects users are

Die Probleml¨ osung muss dem Service Provider ¨ uberlassen werden, da dieser ¨ uber spe- zialisiertes Wissen dazu verf¨ ugt, welches durch Services f¨ ur die Anwendung nutzbar

service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web- related

•  505 HTTP Version Not Supported: The server does not support the HTTP version that was used to make the request. Complete

[r]

Spotting is the process of autonomously detecting gesture segments in a continuous stream of motion and separating anticipated gestures from random actions.. An essential part

The encapsulation of the visualization and user interface (front-end layer), the data processing (back-end layer), and the access to various information and data sources (data

In Egoist(3), due to the fact that each mobile node always chooses to connect with its closest service node, the number of possible physical con- nections is the largest possible.