DE19906134B4 - Anbindung eines ressourcenbeschränkten, prozessorbasierten Systems an einen Mechanismus zur Signalisierung von Nachrichten - Google Patents
Anbindung eines ressourcenbeschränkten, prozessorbasierten Systems an einen Mechanismus zur Signalisierung von Nachrichten Download PDFInfo
- Publication number
- DE19906134B4 DE19906134B4 DE19906134A DE19906134A DE19906134B4 DE 19906134 B4 DE19906134 B4 DE 19906134B4 DE 19906134 A DE19906134 A DE 19906134A DE 19906134 A DE19906134 A DE 19906134A DE 19906134 B4 DE19906134 B4 DE 19906134B4
- Authority
- DE
- Germany
- Prior art keywords
- resource
- constrained
- processor
- based system
- representative
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
a) Ankopplung des ressourcenbeschränkten, prozessorbasierten Systems (102) über einen Zwischenverteiler (207) an einen Signalisierungsmechanismus (206) des Basissystems (101) zur asynchronen Signalisierung von Nachrichten, wobei der Signalisierungsmechanismus (206) ein Event Service ist,
b) Signalisierung von Nachrichten zu und von dem ressourcenbeschränkten, prozessorbasierten System (102), wobei
b1) vom ressourcenbeschränkten, prozessorbasierten System (102) gesendete Nachrichten über den Zwischenverteiler (207) an den Signalisierungsmechanismus (206) weitergeleitet werden, und
b2) für das ressourcenbeschränkte, prozessorbasierte System...
Description
- Die vorliegende Erfindung betrifft die Anbindung ressourcenbeschränkter, prozessorbasierter Systeme an einen Mechanismus zur Signalisierung von Nachrichten.
- Die Fortschritte auf dem Gebiet der Hardware und speziell der Miniaturisierung von Prozessoren und Speicher machen es möglich, kleine intelligente Geräte in hohen Stückzahlen zu sehr geringen Kosten zu bauen. Das Spektrum der Möglichkeiten reicht von intelligenten Haushaltsgeräten über prozessorbasierte Chipkarten bis hin zu verteilten Sensoren für Überwachungszwecke, um nur einige Beispiele zu nennen. Die Verarbeitungs- und Speicherressourcen der verwendeten Hardware sind aufgrund technischer oder ökonomischer Rahmenbedingungen meistens stark eingeschränkt.
- Als Beispiel für ressourcenbeschränkte, prozessorbasierte Systeme sind prozessorbasierte Chipkarten bekannt, insbesondere solche, die dem JavaCard-Standard folgen ("Java Card 2.1 API Specification", Sun Microsystems Inc., 1998). Die hierbei verwendete Basistechnologie ist bereits durch andere Anwendungen wie beispielsweise den JavaRing bekannt (Dallas Semiconductor Corp., 1997, http://www.ibutton.com/java.html). Weiterhin ähnelt sie in Ihren Grundsätzen den bei vergleichbaren Systemen verwendeten Technologien. Im Kartenbereich sind das etwa proprietäre Chipkartenbetriebssysteme wie STARCOS (URL http://www.gdm.de/starcos.html) der Firma Giesecke & Devrient (URL http://www.gdm.de) oder der MULTOS-Standard (MULTOS – The Technology, URL http://www.MULTOS.com/100/120.html) des Firmenkonsortiums MAOSCO (URL http://www.MULTOS.com/200.html). Im weiteren Umfeld lassen sich unterschiedliche eingebettete Microcontroller mit Betriebssystemen wie "Windows CE" (URL http://www.microsoft.com/windowsce/embedded/basics/overview/default.asp) oder "Embedded Java" (URL http://www.javasoft.com/products/embeddedjava) als Beispiele nennen.
- Den bekannten ressourcenbeschränkten, prozessorbasierten Systemen ist gemeinsam, daß die Kommunikation mit der Außenwelt über Protokolle mit sehr niedrigem Abstraktionsniveau durchgeführt wird.
1 zeigt als Beispiel eine bekannte Anbindung einer monolithischen Anwendung105 auf dem ressourcenbeschränkten, prozessorbasierten System102 an bestehende Anwendungen103 des Basissystems101 . Dabei muß auf beiden Seiten eine low-level Schnittstelle zu einem zugrundeliegenden, proprietären Kommunikationsmechanismus104 verwendet werden. - Im Falle von Chipkarten erfolgt die Kommunikation mit der Außenwelt oft nach dem Standard ISO 7816-2 ("ISO 7816-2: Identification cards – integrated circuit cards with contacts"), der neben den elektrischen und physikalischen Eigenschaften der Verbindung (über Kontaktflächen oder auch drahtlos) das Format von sogenannten APDU-Datenblöcken beschreibt, die über diese Verbindung versendet werden können.
- Die Verwendung dieser APDU-Schnittstelle ist für den Programmierer einer Endanwendung sehr umständlich und fehleranfällig, da starke Abweichungen von den normalerweise bei der Anwendungsprogrammierung eingesetzten Kommunikationsschnittstellen bestehen und zudem oft eine entsprechende Unterstützung durch Werkzeuge fehlt: Datenblöcke müssen im wesentlichen "von Hand" aus einzelnen Bits und Bytes zusammengestellt werden. Ebenso muß die Adressierung der Anwendung, die APDU-Kommandos erhalten soll, vom Programmierer explizit programmiert werden.
- Das Management von offenen Kommunikationsverbindungen mit APDUs wird ebenfalls nicht vom System unterstützt: Programmierer müssen sich selbst darum kümmern, die Verbindung nach einer temporären Trennung von Chipkarte und Kartenlesegerät wieder aufzusetzen. Weiterhin gibt es keine ausgereiften Standard-Sicherheitsmechanismen zur Absicherung und Verschlüsselung der Kommunikation.
- Um einige Schwächen der APDU-Kommunikation zu vermeiden, hat die Firma GemPlus bei der GemXpresso-Karte auf der Grundlage der APDUs den sogenannten DMI-Mechanismus realisiert, (GemXpresso Product Sheet, Gemplus SCA, 1997-98), der es Anwendungen des Basissystems erlaubt, solche auf der Chipkarte direkt aufzurufen. Dieser Mechanismus erlaubt eine Programmierung auf der vom Anwendungsprogrammierer gewohnten Abstraktionsebene. Das Kommunikationsmodell ist allerdings immer noch eingeschränkt: Es sind nur Aufrufe von außerhalb auf Anwendungen auf der Karte möglich, aber keine Aufrufe in der umgekehrten Richtung. Weiterhin haben Kommunikationsverbindungen immer die Vielfachheit 1-zu-1, das heißt, ein Aufrufer kann über eine Verbindung mit genau einer Anwendung kommunizieren. DMI bietet analog zu den APDUs ebenfalls kein automatisches Wiederaufsetzen von offenen Verbindungen nach einer temporären Trennung von Chipkarte und Kartenlesegerät, und ferner gibt es keine Standard-Sicherheitsmechanismen zur Absicherung und Verschlüsselung der Kommunikation.
- Die Situation bei anderen ressourcenbeschränkten Geräten ist ähnlich: Meistens stehen hier sogar nur Kommunikationsmechanismen auf sehr niedriger Abstraktionsebene analog zu den APDUs zur Verfügung. Ein Beispiel aus dem Bereich der eingebetteten Systeme sind beispielsweise Geräte, die über einen CAN-Bus (CAN Specification, Version 2.0, September 1991, Robert Bosch GmbH) kommunizieren. Sie kommunizieren ebenfalls über den Austausch von Datenblöcken, die vom Programmierer selbst zusammengebaut werden müssen.
- Unabhängig von den bisher erwähnten ressourcenbeschränkten Systemen ist es in der allgemeinen Technik der Datenverarbeitung bekannt, komplexe Anwendungssysteme aus einer Vielzahl von räumlich und logisch verteilten Teilsystemen zu bilden. Für die Kommunikation zwischen diesen Teilsystemen hat sich in vielen Anwendungsfällen die Signalisierung asynchroner Nachrichten als geeignet erwiesen, da hier die Kopplung zwischen den Sendern und den Empfängern von Nachrichten wesentlich geringer ist als bei anderen Kommunikationsformen. Die Dienste und Schnittstellen von Signalisierungsmechanismen sind beispielsweise in den Spezifikationen für den CORBA Event Service ("CORBA Service Specification", November 1997, Abschnitt 4) und den CORBA Notification Service ("Notification Service Joint Revised Submission", Januar 1998) der Object Management Group (kurz: OMG) standardisiert. Andere Mechanismen, wie etwa Microsoft Message Queue (MSMQ) in der derzeitigen Variante für COM oder in der geplanten Version für COM+ (MSMQ: "Microsoft Component Services – Server Operating System: A Technology Overview", Microsoft Corporation, 1997) bieten eine vergleichbare Funktionalität.
- Die Signalisierungsmechanismen CORBA Event Service, CORBA Notification Service und MSMQ für COM+ bieten folgende Grundfunktionalität: Kommunikationspartner können sich über den Signalisierungsmechanismus Nachrichten schicken, wobei mehrere Sender und mehrere Empfänger erlaubt sind. Die Kommunikation geschieht dabei üblicherweise über sogenannte Kanäle, bei denen sich die Partner als Sender und/oder Empfänger registrieren können. Eine von einem Sender geschickte Nachricht wird dabei an alle an dem jeweiligen Kanal registrierten Empfänger verschickt. Für ressourcenbeschränkte, prozessorbasierte Systeme wie die eingangs erwähnten sind die genannten Signalisierungsmechanismen jedoch nicht vorgesehen. Insbesondere ist der Einsatz von Standard-Signalisierungsmechanismen für die sichere Kommunikation mit ressourcenbeschränkten Systemen nicht möglich, da heutige Signalisierungsmechanismen hohe Anforderungen an die Speicher- und Verarbeitungskapazität stellen.
-
EP 0 260 043 B1 zeigt ein Verfahren zur Signalisierung von Nachrichten zwischen mehreren Kommunikationspartnern in einem festen Kommunikationsnetz. - In WO 97/14108 A1 ist der Einsatz eines Systems gemäß der CORBA-Architektur zum Zugriff auf Finanzinformationen beschrieben.
- Die Erfindung hat demgemäß die Aufgabe, die genannten Nachteile des Stands der Technik zumindest teilweise zu vermeiden und einen flexiblen und programmiertechnisch günstigen Weg zur Signalisierung von Nachrichten zwischen mehreren Kommunikationspartnern, von denen mindestens einer ein ressourcenbeschränktes, prozessorbasiertes System ist, vorzuschlagen. Vorzugsweise soll durch die Erfindung der Einsatz von standardisierten Signalisierungsmechanismen auch im Zusammenhang mit ressourcenbeschränkten, prozessorbasierten Systemen ermöglicht werden. Eine weitere Aufgabe bevorzugter Ausgestaltungen der Erfindung ist es, eine sichere Kommunikation im Hinblick auf Angriffe von außen und/oder innen zu gewährleisten.
- Erfindungsgemäß wird diese Aufgabe durch ein Verfahren und Vorrichtungen gemäß den Ansprüchen 1,3 und 19 gelöst. Die abhängigen Ansprüche betreffen bevorzugte Ausgestaltungen der Erfindung. Die Aufzählungsreihenfolge der Verfahrensschritte in den Ansprüchen soll nicht einschränkend verstanden werden. Vielmehr soll der Schutzbereich auch Verfahren umfassen, bei denen die in den Ansprüchen genannten Schritte in anderer Reihenfolge oder parallel oder ineinander verzahnt (quasi-parallel) ausgeführt werden.
- Die Erfindung beruht auf der Grundidee, das ressourcenbeschränkte, prozessorbasierte System über einen Zwischenverteiler an einen Mechanismus für die vorzugsweise asynchrone Signalisierung von Nachrichten anzukoppeln, wobei ankommende und abgehende Nachrichten über den Zwischenverteiler geleitet werden. Der Zwischenverteiler repräsentiert für die beteiligten Parteien den jeweiligen Partner. Die vom Zwischenverteiler bereitgestellte Schnittstelle zum Versenden und Empfangen von Ereignissen abstrahiert von den tatsächlichen Gegebenheiten der Hardware und bietet damit die Möglichkeit, einen plattformübergreifenden Kommunikationsmechanismus auf nahezu beliebige ressourcenbeschränkte Systeme auszudehnen.
- Mit anderen Worten ermöglicht der Zwischenverteiler eine Kommunikation des Basissystems und des ressourcenbeschränkten, prozessorbasierten Systems nach dem Ankoppeln. Damit ist der Signalisierungsmechanismus des Basissystems in der Lage (und somit auch die eigentlichen Anwendungen des Basissystems), Nachrichten auch an das ressourcenbeschränkte, prozessorbasierte System zu senden oder von diesem zu empfangen.
- Die Erfindung bietet somit hohe Flexibilität aus Anwender- wie aus Programmierersicht. Überdies brauchen Funktionen, die bereits im Signalisierungsmechanismus des Basissystems vorhanden sind, nicht nochmals für die Kommunikation mit dem ressourcenbeschränkten, prozessorbasierten System implementiert zu werden.
- Beispiele für den Einsatz der Erfindung sind die Verbindung von verteilten Sensoren und Aktuatoren mit Kontrollrechnern, wobei ausgewählte Daten zu Kontrollzwecken auf einer prozessorbasierten Chipkarte mitgeschrieben werden, oder die Kommunikation zwischen einer multifunktionalen Kreditkarte und einem zentralen Bankrechner. In allen genannten Fällen ist der Signalisierungsmechanismus vorzugsweise ein vorgegebener Standard-Signalisierungsmechanismus, so daß dafür vorhandene Entwicklungswerkzeuge eingesetzt werden können. Bei dem letztgenannten Beispiel ist ferner die Sicherheit bei der Datenübertragung von ausschlaggebender Bedeutung.
- In bevorzugten Ausführungsformen der Erfindung bestehen zwischen allen an einer Kommunikation beteiligten Partnern ein oder mehrere Kanäle als Mittel zur Nachrichtenübertragung. Bevorzugt lassen sich diese Kanäle eindeutig voneinander unterscheiden und jedem einzelnen ist explizit oder implizit eine bestimmte Signalart und damit auch eine Funktionalität zugeordnet. Auf diese Weise werden logische, bidirektionale, 1-zu-1, 1-zu-n und n-zu-m-Verbindungen zwischen allen Kommunikationspartnern möglich, auch wenn nur eine einzige physikalische Verbindung zum ressourcenbeschränkten, prozessorbasierten System zur Verfügung steht.
- Vorzugsweise wird die Kommunikation der Teilnehmer durch explizites An- bzw. Abmelden an einem oder mehreren dieser Kanäle eingeleitet bzw. beendet. Dadurch ist eine besonders flexible Kommunikationsstruktur möglich, insbesondere in Verbindung mit einem asynchronen Nachrichtenaustausch über die Kanäle. Die Kanäle sind dann Kommunikationsverbindungen, die weder auf einen Sender noch auf einen Empfänger beschränkt sind. Die tatsächliche Anzahl der Teilnehmer an einer solchen Verbindung kann beständig wechseln ebenso wie die Anzahl der Kanäle selbst. Dieses Verfahren verträgt eine physikalische oder logische Abkopplung von Teilnehmern, ohne daß dadurch ein zu großer Verwaltungsaufwand oder grundsätzliche Probleme im Kommunikationsmechanismus auftreten würden.
- In bevorzugten Ausführungsformen ist eine Komponente des Basissystems ein Vertreter des ressourcenbeschränkten Systems. Der Vertreter kann dann gegenüber dem Signalisierungsmechanismus das ressourcenbeschränkte, prozessorbasierte System repräsen tieren. Somit können Teilsysteme des Basissystems Nachrichten zum ressourcenbeschränkten, prozessorbasierten System senden und von diesem empfangen. In optionalen Weiterentwicklungen filtert der Vertreter des ressourcenbeschränkten Systems Nachrichten, die nicht vom ressourcenbeschränkten, prozessorbasierten System verarbeitet werden können.
- Analog dazu existiert im ressourcenbeschränkten, prozessorbasierten System vorzugsweise eine Komponente, die gegenüber diesem das Basissystem und insbesondere den dortigen Signalisierungsmechanismus repräsentiert. Dieser Vertreter des Basissystems ermöglicht ebenfalls die Kapselung der physikalischen Verbindung. Da der Vertreter unter anderem die Dienste des Signalisierungsmechanismus auf dem ressourcenbeschränkten, prozessorbasierten System zur Verfügung stellt, können Nachrichten zum Basissystem geschickt und von dort empfangen werden.
- Somit enthält der Zwischenverteiler in bevorzugten Ausführungsformen der Erfindung zwei physikalisch oder logisch miteinander verbundene Vertreter. Der Vertreter des ressourcenbeschränkten Systems ist eine Komponente des Basissystems und repräsentiert das entfernte System gegenüber dem Signalisierungsmechanismus und somit auch gegenüber den diversen Teilsystemen des Basissystems. Anstelle einer direkten Kommunikation mit dem ressourcenbeschränkten System werden die entsprechenden Nachrichten lediglich an dessen Vertreter gesandt, der sie dann weiterschickt. Der entscheidende Vorteil dabei ist, daß der Signalisierungsmechanismus stets einen Kommunikationspartner hat, auch in dem Fall, daß das entfernte System vom Basissystem abgekoppelt wurde. Es ist Aufgabe des Vertreters des ressourcenbeschränkten Systems, die Verbindung zu überwachen und nach einer Abkopplung den Signalisierungsmechanismus in geeigneter Form davon in Kenntnis zu setzen. Beispielsweise kann der Vertreter eine kurzzeitige Abkopplung des ressourcenbeschränkten Systems überbrücken, indem die Nachrichten gepuffert werden. Weiterhin gibt der Vertreter auf Anfrage Auskunft über den aktuellen Status der Verbindung.
- Vorzugsweise erfolgt in dem Basissystem die Anbindung von Teilsystemen an Kommunikationskanäle zum ressourcenbeschränkten, prozessorbasierten System mittels Anschlußpunktvertretern. Ein solcher einem Kanal zugeordneter Anschlußpunktvertreter repräsentiert sein Pendant auf dem ressourcenbeschränkten, prozessorbasierten System. In Weiterbildungen werden die Anschlußpunktvertreter bedarfsabhängig durch den Vertreter des ressourcenbeschränkten Systems erzeugt oder gelöscht. Über diese Anschlußpunktvertreter sind beispielsweise die logischen m-zu-n Verbindungen zwischen den einzelnen Teilsystemen und dem ressourcenbeschränkten, prozessorbasierten System auf transparente Art und Weise realisierbar. Dementsprechend können die Anschlußpunktvertreter als Sender und/oder Empfänger fungieren.
- Trotz der Tatsache, daß zwischen Basissystem und ressourcenbeschränktem, prozessorbasiertem System unter Umständen nur eine einzige physikalische (z.B. eine galvanische oder eine drahtlose) Verbindung besteht, können mehrere logische Verbindungen existieren. Um diese zu handhaben, werden auf dem ressourcenbeschränkten, prozessorbasierten System vorzugsweise besondere Anschlußpunkte erzeugt, die jeder für sich einen Endpunkt einer logischen Verbindung darstellen und über die die Kommunikation mit dem Basissystem verläuft. Auf dem ressourcenbeschränkten, prozessorbasierten System laufen dann vorzugsweise anstelle einer monolithischen Anwendung mehrere entfernte Teilsysteme, von dem sich jedes für die Kommunikation an Anschlußpunkten als Sender und/oder Empfänger an- und abmeldet. Es ist den Anwendungen im entfernten System zudem möglich, sich bei Bedarf auch mehrfach als Sender und/oder Empfänger an einen Kanal anzumelden.
- Ein in vielen Anwendungen wichtiger Aspekt der betrachteten Systeme (z.B. Chipkarten) ist die Eigenschaft, zu einem beliebigen Zeitpunkt vom Basissystem getrennt oder mit einem solchen erneut verbunden zu werden. Vorzugsweise verhält sich der Zwischenverteiler (bzw. dessen beide Vertreter) entsprechend und paßt sich bei einer temporären Abkoppelung des ressourcenbeschränkten, prozessorbasierten Systems vom Basissystem dem jeweiligen Ankopplungszustand an. Beispielsweise kann der Vertreter des ressourcenbeschränkten Systems nach einer Abkopplung bis zum Ablauf eines Timeouts warten, bis er die erzeugten Anschlußpunkte beim Signalisierungsmechanismus abmeldet und sie löscht. Insbesondere werden dadurch mobile, ressourcenbeschränkte, prozessorbasierte Systeme unterstützt, wie zum Beispiel Chipkarten. Bei Bedarf können in vorteilhaften Weiterentwicklungen entfernte Teilsysteme vom Zwischenverteiler über eine bevorstehende Abkopplung von dem bzw. Ankopplung an das Basissystem benachrichtigt werden. Im ersten Fall haben sie somit die Gelegenheit, ihren aktuellen Zustand zu speichern.
- Ferner wird vorzugsweise die Möglichkeit berücksichtigt, daß das ressourcenbeschränkte, prozessorbasierte System nach dem erneuten Ankoppeln an ein anderes Basissystem angekoppelt wird. In diesem Fall wird vorzugsweise der Zustand des Zwischenverteilers so modifiziert, daß er dem des Zwischenverteilers vor der Abkopplung ent spricht. Dies beinhaltet die Wiederherstellung der Kommunikationsstruktur, insbesondere der Vertreter der Anschlußpunkte und ihrer Ankopplung an die entsprechenden Kanäle.
- In bevorzugten Ausgestaltungen der Erfindung kann die Ab- und Ankopplung des ressourcenbeschränkten, prozessorbasierten Systems an das Basissystem während der Signalisierungsphase geschehen. Beim Wiederankoppeln werden vorzugsweise offene Verbindungen des ressourcenbeschränkten, prozessorbasierten Systems zum Basissystem wiederhergestellt, indem die entsprechenden Anschlußpunktvertreter wieder erzeugt werden. Optional werden außerdem entfernte Teilsysteme vom Zwischenverteiler über die Abkopplung von und das Ankoppeln an einzelne Anschlußpunkte und deren Vertreter benachrichtigt.
- In bevorzugten Ausführungsformen der Erfindung ist das ressourcenbeschränkte, prozessorbasierte System reaktiv in dem Sinne, daß es nicht selbständig Daten senden kann (also aktiv werden kann), sondern ausschließlich auf Anfragen des Basissystems reagiert. Dabei kann es während der Abarbeitung einer Anfrage beliebig oft mit dem Basissystem kommunizieren. Ein Beispiel ist die SmartCard GemXpresso, die die Ausführung von Programmcode beendet, sobald ein Aufruf an die Karte abgearbeitet wurde. Als zusätzliche Einschränkung zu dieser Charakteristik gestatten es einige Systeme nicht, während der Abarbeitung einer Anfrage vom Basissystem an dieses Nachrichten zurückzusenden, so daß in dieser Zeit keine weitere Kommunikation mit dem Basissystem erfolgen kann. Diese Eigenschaft wird hier als unidirektionale Aufrufstruktur bezeichnet. Sie ist insbesondere dann gegeben, wenn der Befehlszähler des entfernten Systems mit jeder empfangenen Nachricht zurückgesetzt wird. Eine solche Nachricht wäre die Antwort des Basissystems auf eine Anfrage des entfernten Systems während der Abarbeitung einer anderen Nachricht. Bei der Umsetzung der oben genannten Kommunikationsschemata werden vorzugsweise diese und gegebenenfalls weitere hardwarebedingte Einschränkungen berücksichtigt.
- Besondere Anwendung findet die vorgestellte Erfindung, wenn es sich bei dem ressourcenbeschränkten System um eine prozessorbasierte Chipkarte handelt, insbesondere um eine SmartCard oder eine Karte nach dem JavaCard-Standard (besonders JavaCard 2.1 oder höher). Bei den letzten beiden Fällen sind die entfernten Teilsysteme auf der Karte ablaufende Java Applets bzw. Java Cardlets. Weitere bevorzugte Anwendung findet die Erfindung, wenn das ressourcenbeschränkte, prozessorbasierte System ein eingebettetes System ist, z.B. ein "Pico-Java"-Mikroprozessor (Pico-Java-, URL http://www.sun.com/sparc/whitepapers/wpr-0014-01/) oder ein Mikroprozessor mit "Windows CE", "Embedded Windows NT" oder "Embedded Java". Ferner ist es besonders vorteilhaft, wenn der Signalisierungsmechanismus ein Event Service ist. Dieser kann beispielsweise der "CORBA Event Service Specification" oder der "CORBA Notification Service Specification" oder der "Microsoft Message Queue Specification" genügen.
- Bevorzugte Ausführungsformen der Erfindung bieten weiterhin die Möglichkeit, sichere Kommunikation zu gewährleisten. Dies ist eine wichtige Voraussetzung für viele Einsatzgebiete von ressourcenbeschränkten Systemen, beispielsweise bei dem Transfer von Zahlungsmitteln oder der Autorisierung von Zugriffen. Vorzugsweise wird die Kommunikation zwischen dem ressourcenbeschränkten System und dem Basissystem gegen Mithören und/oder Verfälschung und/oder gegen das Erkennen der Tatsache, ob kommuniziert wird, gesichert. Insbesondere kann ein symmetrisches Verschlüsselungsverfahren einerseits sowie das Annotieren von Nachrichten mit Sequenznummern und Prüfsummen andererseits verwendet werden. Für die Vorbereitung zur symmetrischen Kommunikation, also insbesondere zur Authentifizierung der Kommunikationspartner, wird in bevorzugten Ausgestaltungen ein asymmetrisches Protokoll zum gesicherten Austausch des Schlüssels vereinbart.
- In manchen Fällen ist das Verfahren der Blindkommunikation speziell geeignet, um tatsächlich stattfindende Kommunikation zu verbergen. Dazu werden auf der Kommunikationsleitung bedeutungslose Nachrichten in den Signalfluß eingespeist und an der anderen Seite wieder herausgefiltert. Die eigentliche Kommunikation kann von außen nicht von der vorgetäuschten unterschieden werden. Für den Fall, daß bösartige Komponenten – dem trojanischen Pferd gleich – in das System eingeschleust werden, kann das Basissystem die Existenz bestimmter Kanäle geheimhalten. Auf ähnliche Weise ist es den entfernten Teilsystemen des ressourcenbeschränkten Systems möglich, zu verbergen, an welchen Kanälen sie angemeldet sind.
- Die vorgestellten Sicherheitseigenschaften sind in bevorzugten Ausgestaltungen der Erfindung als Anforderungen an einen Übertragungsweg formuliert. Für einen höheren Grad an Flexibilität können sie zudem in mehrere aufeinander aufbauende Gruppen eingestuft werden. Es ist somit einer Komponente, insbesondere einem Vertreter aus dem Zwischenverteiler, möglich, von ihrem Kommunikationspartner die Einhaltung der Anforderungen einer bestimmten Gruppe zu fordern. Ist der Partner dazu nicht willens oder nicht in der Lage, kommt keine Verbindung zustande und der Anfragende erfährt nicht einmal die Identität des angesprochenen Vertreters. Die möglichen Sicherheitsanforde rungen umfassen die Absicherung gegen Mithören und/oder Verfälschung von Nachrichten und/oder das Erkennen des Auftretens von Nachrichten und/oder Absicherung gegen ungewollte Identifikation der Vertreter. Die Zusicherung von Sicherheitskriterien läßt sich flexibler auf der Ebene einzelner Kanäle festlegen. In solchen Ausführungsformen unterscheiden sich im System weniger kritische Kanäle von solchen, die hohen Anforderungen genügen müssen.
- Mehrere Ausführungsbeispiele der Erfindung werden im folgenden anhand schematischer Zeichnungen genauer beschrieben. Die Erfindung ist weder auf ein bestimmtes Anwendungsszenario (Geldkarten, Bordcomputer eines Autos, o.ä.) noch auf spezielle Komponenten in der Umgebung des Systems, wie zum Beispiel den CORBA Event Service oder eine auf Java basierende SmartCard, beschränkt. Lediglich beispielhaft wird im folgenden auf derartige konkrete Elemente Bezug genommen, um den Mechanismus und das Verfahren der Erfindung klarer zu beschreiben, ohne daß damit die Erfindung auf die konkret genannten Beispiele eingeschränkt werden soll. Bei den Zeichnungen zeigen:
-
1 ein Blockdiagramm zur Veranschaulichung der Kommunikation eines Basissystems mit einem ressourcenbeschränkten, prozessorbasierten System nach dem Stand der Technik, -
2 ein Blockdiagramm der Grobarchitektur, wie sie in einem Ausführungsbeispiel der Erfindung Verwendung findet, -
3 und4 zwei Sequenzdiagramme (Message Sequence Charts) je eines Beispielablaufs des in2 gezeigten Systems, -
5 ein Blockdiagramm des Systems von2 in einer verfeinerten Darstellung, und -
6 bis8 drei Sequenzdiagramme je eines Beispielablaufs des in5 gezeigten Systems. -
1 zeigt ein Basissystem101 mit mehreren Teilsystemen103 . Die Teilsysteme103 kommunizieren direkt über einen beschränkten, proprietären low-level Kommunikationsmechanismus104 mit einem speziellen, nicht-modularen, entfernten Teilsystem105 auf einem ressourcenbeschränkten, prozessorbasierten System102 . Die in1 dargestellte monolithische Anwendung105 beinhaltet die fachliche Funktionalität einerseits, jedoch genauso wie die einzelnen Teilsysteme103 auf dem Basissystem101 außerdem noch Funktionalität für die Verwaltung der Verbindung. Dies beinhaltet beispielsweise die Möglichkeit, den gemeinsamen Zugriff auf die Leitung zu organisieren. - In
2 sind ebenfalls das Basissystem101 mit den mehreren Teilsystemen103 sowie das ressourcenbeschränkte, prozessorbasierte System102 dargestellt. Im Rahmen des ressourcenbeschränkten, prozessorbasierten Systems102 laufen mehrere unabhängige, entfernte Teilsysteme208 , die über einen Zwischenverteiler207 transparent an einem Signalisierungsmechanismus206 des Basissystems101 teilnehmen. Somit ist die Möglichkeit zur Kommunikation zwischen den Teilsystemen103 und den entfernten Teilsystemen208 geschaffen. - In den folgenden Absätzen werden die Aufgaben, Dienste und Schnittstellen der einzelnen Komponenten der in
2 dargestellten Grobarchitektur genauer beschrieben. - Das Basissystem
101 ist der stationäre Teil der Systemumgebung. Die einzelnen Teilsysteme103 , der Signalisierungsmechanismus206 und ein Teil des Zwischenverteilers207 werden auf dem Basissystem101 ausgeführt. Das Basissystem101 ist meist ein verteiltes, heterogenes System aus vernetzten PCs, Workstations und Hosts. Zum Beispiel besteht im Falle eines Geldautomaten das Basissystem aus dem Kartenleser, dem Rechner im Geldautomaten, dem lokalen Netzwerk der Bankfiliale und dem firmenweiten Netzwerk der Bank mit den diversen dezentralen Servern. Für das einfache Programmieren einer SmartCard reicht allerdings ein handelsüblicher PC mit Pentium-Prozessor, 32 Megabyte Hauptspeicher und einer FIFO-gepufferten, seriellen Schnittstelle. - Auf dem ressourcenbeschränkten, prozessorbasierten System
102 werden die entfernten Teilsysteme208 und ein Teil des Zwischenverteilers207 ausgeführt. Typischerweise ist das ressourcenbeschränkte System102 ein Chip mit stark beschränkter Rechnerleistung sowie knappem Speicher. Eine zusätzliche Eigenschaft kann in der Mobilität des Systems bestehen, die nur eine gelegentliche Verfügbarkeit zur Folge hat. Ein Beispiel für ein derartiges System ist eine Smartcard mit 256 Bytes bis 1 Kilobyte RAM, 1 Kilobyte bis 32 Kilobyte EEPROM, 6 Kilobyte bis 32 Kilobyte ROM und einem 8-Bit Mikroprozessor mit 5 MHz Taktfrequenz. Weiterhin existieren neben der Karte als Träger des Prozessors auch andere Ausführungen, wie beispielsweise Ringe. Im vorliegenden Text werden die Begriffe "ressourcenbeschränktes, prozessorbasiertes System", "ressourcenbeschränktes System" und "entferntes System" synonym verwendet. - Die Teilsysteme
103 kommunizieren untereinander und mit den entfernten Teilsystemen208 über den angebotenen Signalisierungsmechanismus206 . Dieser erlaubt es, Kanäle zu erzeugen oder zu löschen, sich bei Kanälen als Sender oder Empfänger zu registrieren und als registrierter Sender Nachrichten zu senden oder als angemeldeter Empfänger von einem Kanal Nachrichten zu empfangen. Die Teilsysteme103 beinhalten die fachliche Funktionalität der jeweiligen Anwendung, während die restlichen Komponenten der vorliegenden Erfindung die technische Unterstützung liefern. Beispiele für Teilsysteme sind Kontomanagementsysteme, Hostsysteme von Kreditkartenfirmen oder Anwendungen, die den Besitzer der entsprechenden SmartCard für das Betreten von Sperrzonen autorisiert. - Der Signalisierungsmechanismus
206 muß die Funktionalität und Dynamik einer kanalorientierten Kommunikation aufweisen, wie bereits beschrieben. Beispiele für passende, standardisierte Mechanismen sind der "CORBA Event Service" bzw. der "CORBA Notification Service" der Object Management Group oder auch die "Microsoft Message Queue". - Der Zwischenverteiler
207 ist das Kernstück der Erfindung. Die entfernten Teilsysteme208 nutzen den Zwischenverteiler207 , um am Signalisierungsmechanismus206 teilnehmen zu können. Somit übernimmt der Zwischenverteiler gegenüber den entfernten Teilsystemen208 die Rolle des Signalisierungsmechanismus206 . Im Gegenzug hat der Zwischenverteiler207 die Aufgabe, gegenüber dem Signalisierungsmechanismus206 die Rolle der entfernten Teilsysteme208 zu übernehmen. Das bedeutet, daß der Zwischenverteiler207 Nachrichten, die für entfernte Teilsysteme208 bestimmt sind, vom Signalisierungsmechanismus206 empfängt und sie an die eigentlichen Empfänger weiterleitet. Außerdem erzeugt und löscht er Kanäle, registriert sich als Empfänger und/oder Sender an diversen Kanälen und leitet Nachrichten im Auftrag der entfernten Teilsysteme208 weiter. - Die entfernten Teilsysteme
208 kommunizieren untereinander und mit den Teilsystemen103 über den Zwischenverteiler207 und damit indirekt über den Signalisierungsmechanismus206 . So kann ein entferntes Teilsystem den Zwischenverteiler beispielsweise anweisen, Kanäle zu erzeugen oder zu löschen. Entfernte Teilsysteme enthalten fachliche Funktionalität und stellen somit in Kooperation mit den Teilsystemen auf dem Basissystem die eigentlichen Anwendungen dar. Beispiele für entfernte Teilsysteme208 sind JavaCard-Applets für Kreditkartenfunktionalität, Bonussysteme oder Anwendungen für ein PC-Benutzerkonfigurationsmanagement, aber auch Stromverbrauchsmessung und Analyseprogramme in einem Haushaltsgerät. - In
3 und4 sind zwei beispielhafte Abläufe des in2 gezeigten Systems dargestellt. Diese und alle folgenden Beispielabläufe sind als sogenannte Sequenzdiagramme (Message Sequence Charts) dargestellt, einer Notation, wie sie im Rahmen der "Unified Modeling Language" (kurz: UML, http://www.rational.com/uml) bekannt und standardisiert wurde. - Bei dem Beispielablauf von
3 meldet sich ein entferntes Teilsystem208 an einen Kanal an und schickt auf diesem eine Nachricht. Das entfernte Teilsystem208 überprüft vor dem Erzeugen eines neuen Kanals, ob nicht ein solcher bereits existiert. Dazu wird die Methode "EXISTIERT" des Zwischenverteilers207 aufgerufen, der diese Anfrage an den Signalisierungsmechanismus206 weiterreicht. Da im Beispiel diese Anfrage ergibt, daß noch kein Kanal existiert, wird ein neuer angelegt und das ressourcenbeschränkte System102 meldet sich bei diesem als Sender an. Anschließend können Nachrichten über diesen Kanal versendet werden. Aus3 ist ersichtlich, wie eine solche Nachricht zum adressierten Teilsystem103 weitergereicht wird. -
4 bezieht sich ebenfalls auf die Grobarchitektur gemäß2 . Der Beispielablauf von4 demonstriert das Verhalten des Systems bei Unterbrechung und erneuter Aufnahme der Verbindung zwischen dem ressourcenbeschränkten System102 und dem Basissystem101 . Dies entspricht in der Praxis beispielsweise dem Entfernen der SmartCard aus dem Kartenleser mit anschließendem erneutem Einführen. Zunächst meldet sich ein entferntes Teilsystem208 an einem oder mehr Kanälen als Empfänger und als Sender an. Dabei protokolliert der Zwischenverteiler207 , bei welchen Kanälen sich entfernte Teilsysteme208 als Sender oder Empfänger angemeldet haben. Im Falle eines Verbindungsabbruchs wird der Zwischenverteiler207 durch die Nachricht "VER-BINDUNG UNTERBROCHEN" von der Situation unterrichtet und kann entsprechend darauf reagieren, indem er zum Beispiel seinen momentanen Zustand sichert. Wird dann zu einem späteren Zeitpunkt die Verbindung wiederhergestellt, restauriert der Zwischenverteiler207 die entsprechenden Kanalverbindungen, so wie sie vor dem Abbruch bestanden hatten, indem er selbständig die erforderlichen Anmeldungen vornimmt. Somit kann nach einer temporären Abkopplung des ressourcenbeschränkten, prozessorbasierten Systems102 der alte Zustand erneut hergestellt werden. - In
5 ist das abstrakte Bild von2 konkretisiert, um die Implementierung des Systems eingehender zu beschreiben. Insbesondere sind in der in5 gezeigten Verfeinerung die Komponenten Signalisierungsmechanismus206 und Zwischenverteiler207 mitsamt ihren Subkomponenten dargestellt, wobei die Teilsysteme103 aus2 aus Gründen der Übersichtlichkeit weggelassen wurden. Beim Signalisierungsmechanismus206 sind das eine Reihe von Subkomponenten510 , die die jeweils existierenden Kanäle repräsentieren, sowie eine Komponente509 zu ihrer Verwaltung. Der Zwischenverteiler207 als zentrale Komponente der Erfindung ist in einen Teil auf dem Basissystem101 und einen Teil auf dem ressourcenbeschränkten, prozessorbasierten System102 unterteilt. - Aus
5 wird deutlich, was die Erfindung im Kern leistet: Zwischen Kanälen510 und entfernten Teilsystemen208 bestehen logische n-zu-m Kommunikationsverbindungen, da mehrere entfernte Teilsysteme208 auf einen Kanal510 zugreifen können und ein entferntes Teilsystem208 mehrere Kanäle510 nutzen kann, um mit anderen (ggf. entfernten) Teilsystemen103 ,208 zu kommunizieren. Diese logischen, bidirektionalen n-zu-m Verbindungen müssen über eine einzige Verbindung zwischen dem Basissystem101 und dem ressourcenbeschränkten System102 realisiert werden. Diese Aufgabe wird vom Systemzwischenverteiler207 übernommen. Vereinfacht betrachtet, wird dies durch Multiplexing/Demultiplexing erreicht. Hierbei übernimmt ein Vertreter512 des ressourcenbeschränkten Systems102 das Multiplexing/Demultiplexing auf Seiten des Basissystems101 , und der Vertreter513 des Basissystems101 übernimmt diese Aufgabe für das ressourcenbeschränkte System102 . Anschlußpunkte514 und Anschlußpunktvertreter511 dienen als Schnittstelle zu den restlichen Systemteilen und kapseln ferner den Zustand der logischen Verbindungen. - In den folgenden Absätzen werden die Aufgaben, Dienste und Schnittstellen der Komponenten
509 bis514 genauer beschrieben. Hinsichtlich der Komponenten101 bis208 in5 wird auf die obige Beschreibung von2 verwiesen. - Ein Kanalmanager
509 und die Kanäle510 sind Teile des Signalisierungsmechanismus206 . Der Kanalmanager509 erlaubt es, die Kanäle510 zu erzeugen, zu löschen und die Existenz bestimmter Kanäle510 zu erfragen. An jedem der Kanäle510 können beliebig viele Anschlußpunktvertreter511 und somit auch Anschlußpunkte514 angemeldet werden. Dabei kann ein Anschlußpunktvertreter511 wahlweise als Sender oder als Empfänger oder als Sender und gleichzeitig als Empfänger angemeldet werden. Über die Kanäle510 werden dann die Nachrichten von den Sender-Anschlußpunkten zu den Empfänger-Anschlußpunkten weitergeleitet. - Die Anschlußpunktvertreter
511 bilden die Schnittstelle zum Signalisierungsmechanismus206 . Für jeden Anschlußpunkt514 existiert ein Anschlußpunktvertreter511 . Ein Anschlußpunktvertreter511 meldet sich für den Anschlußpunkt514 , den er vertritt, an einem Kanal510 des Signalisierungsmechanismus206 an. Die Anmeldung erfolgt dabei als Sender und/oder als Empfänger. Kommen Nachrichten an diesem Kanal510 an, so übergeben die Anschlußpunktvertreter511 , die als Empfänger an diesem Kanal angemeldet sind, die Nachrichten dem Vertreter512 des ressourcenbeschränkten Systems102 , der sie entsprechend weiterleitet. Kommen Nachrichten vom Vertreter513 des Basissystems101 beim Vertreter512 des ressourcenbeschränkten Systems102 an, so werden sie über den zugeordneten Anschlußpunktvertreter511 an dessen Kanal510 weitergeleitet. - Der Vertreter
512 des ressourcenbeschränkten Systems102 zusammen mit seinem Gegenpart, dem Vertreter513 des Basissystems101 , verbirgt low-level Eigenschaften der physikalischen Verbindung zwischen beiden. Neben dem reinen Kodieren und Dekodieren von Nachrichten sorgen sie dafür, daß logische n-zu-n Verbindungen zwischen den Anschlußpunkten514 und den korrespondierenden Anschlußpunktvertretern511 realisiert werden. Die eigentlichen n-zu-m Verbindungen werden dann zusätzlich durch die Kanäle510 erreicht. So ermöglichen sie Nachrichtenaustausch zwischen einem Anschlußpunkt514 und seinem Vertreter511 , wodurch es einem Anschlußpunkt514 möglich ist, an der Kommunikation mit dem Signalisierungsmechanismus206 so teilzunehmen, als wäre er Teil des Basissystems101 . Die Vertreter513 des Basissystems101 und die Vertreter512 des ressourcenbeschränkten Systems102 sorgen zusammen auch dafür, daß die Menge der Anschlußpunktvertreter511 auf der Seite des Basissystems101 derjenigen auf der Seite des ressourcenbeschränkten, prozessorbasierten Systems102 entspricht. Unabhängig davon bieten beide Vertreter512 und513 Funktionalität, die über den momentanen Status der Verbindung Auskunft gibt. - Die Anschlußpunkte
514 realisieren für die entfernten Teilsysteme208 den Zugang zu den Kanälen510 . Über diese Anschlußpunkte514 kann ein entferntes Teilsystem208 Nachrichten empfangen bzw. senden. Dementsprechend können sich entfernte Teilsysteme208 bei Anschlußpunkten514 als Sender und/oder Empfänger anmelden. Für jeden Kanal510 können beliebig viele Anschlußpunkte514 existieren, wobei ein Anschlußpunkt514 stets an genau einen Kanal510 gebunden und vorzugsweise genau einem entferntem Teilsystem208 zugeordnet ist. Durch das Konzept der Anschlußpunkte514 ist es möglich, daß sich innerhalb des gesamten Systems mehrere entfernte Teilsysteme208 befinden können, die Nachrichten an denselben Kanal510 senden und Nachrichten von demselben Kanal510 empfangen können. - Im folgenden werden unter Hinweis auf
6 bis8 drei weitere Beispielabläufe in einem System gemäß5 beschrieben. - Bei dem Beispiel von
6 erzeugt ein entferntes Teilsystem208 einen Anschlußpunkt514 für einen Kanal510 . Während des Ablaufs wird insbesondere ein Anschlußpunktvertreter511 erzeugt, und eine Rückmeldung wird an das entfernte Teilsystem208 ausgegeben. - Im einzelnen beginnt der Ablauf von
6 damit, daß ein entferntes Teilsystem208 den Vertreter513 des Basissystems101 damit beauftragt, einen Anschlußpunkt514 zu erzeugen. Als Parameter wird dabei der Name des Kanals510 mitgeteilt, bezüglich dem der Anschlußpunkt514 erzeugt werden soll. Der Vertreter513 des Basissystems101 erzeugt einen Anschlußpunkt514 , wobei er diesem bei der Erzeugung eine eindeutige Anschlußpunkt-ID zuweist. Mit Hilfe dieser Anschlußpunkt-ID kann der Anschlußpunkt514 in eindeutiger Weise referenziert werden. Der Vertreter513 des Basissystems101 trägt den neu erzeugten Anschlußpunkt514 in eine Anschlußpunkt-Liste ein, um später auf ihn zugreifen zu können. Nachdem der Vertreter513 des Basissystems101 den Anschlußpunkt514 an das entfernte Teilsystem208 , das die Erzeugung initiiert hat, zurückgegeben hat, ist die Erzeugung des Anschlußpunktes514 innerhalb des ressourcenbeschränkten Systems102 nun abgeschlossen. - Nun beauftragt der Vertreter
513 des Basissystems101 den Vertreter512 des ressourcenbeschränkten Systems102 , für den gerade erzeugten Anschlußpunkt514 einen Anschlußpunktvertreter511 zu erzeugen. Diese Beauftragung geschieht mittels Senden einer Nachricht, in der als Parameter der Kanalname und die Anschlußpunkt-ID übergeben werden. Der Vertreter512 des ressourcenbeschränkten Systems102 erzeugt nun einen Anschlußpunktvertreter511 , wobei er diesem den Kanalnamen und die Anschlußpunkt-ID des ursprünglichen Anschlußpunktes514 übergibt. Der Vertreter512 des ressourcenbeschränkten Systems102 trägt den neuen Anschlußpunktvertreter511 in eine Liste von Anschlußpunktvertretern ein, um später auf ihn zugreifen zu können. - Der Vertreter
512 des ressourcenbeschränkten Systems102 teilt dem Vertreter513 des Basissystems101 nun mit, ob die Erzeugung des Anschlußpunktvertreters511 erfolgreich war oder fehlerhaft verlief. Bei dieser Mitteilung übergibt der Vertreter512 des ressourcenbeschränkten Systems102 die Anschlußpunkt-ID des Anschlußpunktvertreters511 . Der Vertreter513 des Basissystems101 leitet die Erfolgs- bzw. Mißerfolgsmeldung an den Anschlußpunkt514 weiter, für den der Anschlußpunktvertreter511 erzeugt wurde. Dazu sucht der Vertreter513 des Basissystems101 in seiner Anschlußpunktliste nach dem Anschlußpunkt514 mit der passenden Anschlußpunkt-ID. Der Anschlußpunkt514 schließlich leitet die Erfolgsmeldung an das entfernte Teilsystem208 weiter, das den Vorgang der Anschlußpunkterzeugung initiierte. Das entfernte Teilsystem208 kann auf die Erfolgsmeldung bzw. Fehlermeldung nun in geeigneter Weise reagieren. - Im Sequenzdiagramm von
7 werden die Vorgänge beschrieben, die ablaufen, wenn ein entferntes Teilsystem208 eine Nachricht an einen Anschlußpunkt514 sendet. Es sei hier vorausgesetzt, daß für den Anschlußpunkt514 , über den das entfernte Teilsystem208 die Nachricht sendet, bereits ein entsprechender Anschlußpunktvertreter511 existiert. Überdies sei vorausgesetzt, daß das entfernte Teilsystem208 als Sender am Anschlußpunkt514 angemeldet ist und der zugehörige Anschlußpunktvertreter511 als Sender am entsprechenden Kanal510 angemeldet ist. - Der Vorgang beginnt gemäß
7 damit, daß das entfernte Teilsystem208 einen Anschlußpunkt514 dazu benutzt, eine Nachricht zu senden. Dabei übergibt das entfernte Teilsystem208 die Nachricht X an den Anschlußpunkt514 . Der Anschlußpunkt514 nimmt die Nachricht X entgegen, versieht sie mit seiner Anschlußpunkt-ID, und übergibt diese Daten dem Vertreter513 des Basissystems101 . - Der Vertreter
513 des Basissystems101 übergibt das Datenpaket an den Vertreter512 des ressourcenbeschränkten Systems102 . Der Vertreter512 des ressourcenbeschränkten Systems102 sucht in seiner Liste von Anschlußpunktvertretern nach dem Anschlußpunktvertreter511 , der dem Anschlußpunkt514 entspricht, an den das entfernte Teilsystem208 die Nachricht ursprünglich sendete. Die Zuordnung von Anschlußpunkt514 zu Anschlußpunktvertreter511 erfolgt über die Anschlußpunkt-ID. Dem Anschlußpunktvertreter511 wird die Nachricht X übergeben und dieser sendet sie an den Kanal510 , an den er als Sender angemeldet ist. - Je nachdem, ob die Versendung der Nachricht vom Vertreter
512 des ressourcenbeschränkten Systems102 durchgeführt werden konnte, erzeugt dieser nun eine Erfolgsmeldung bzw. Fehlermeldung. Diese Meldung wird an den Vertreter513 des Basissystems101 gesendet, von diesem dann an den betreffenden Anschlußpunkt514 weitergeleitet und erreicht schließlich das entfernte Teilsystem208 , das die Versendung der Nachricht initiiert hat. - In
8 wird anhand eines Beispielablaufs die Lösung verdeutlicht, die in der vorliegenden Erfindung gewählt wurde, um spezielle Probleme, die sich aus den Eigenschaften gewisser Arten von ressourcenbeschränkten Systemen102 ergeben, zu lösen. Vor der näheren Beschreibung von8 werden jedoch im folgenden zunächst die konkret auftretenden Probleme geschildert. - JavaCard-kompatible Smartcards, insbesondere solche gemäß dem JavaCard-Standard 2.1, weisen die Eigenschaften "Reaktivität der Smartcard" und darüberhinaus "Unidirektionalität der Aufrufstruktur" auf. Diese Eigenschaften stellen zwei wesentliche Einschränkungen dar.
- Unter "Reaktivität" ist zu verstehen, daß eine Smartcard einen Anstoß benötigt, um Programmcode abarbeiten zu können. Dieser Anstoß muß von außerhalb der Smartcard kommen, bei ISO 7816-kompatiblen Smartcards in Form eines APDU-Kommandos, das an die Smartcard gesendet wird. Beim DMI-Mechanismus ist der Anstoß ein DMI-Methodenaufruf an ein Applet, das auf der Smartcard installiert ist. Im Fall der vorliegenden Erfindung ist dies ein Methodenaufruf, den der Vertreter
512 des ressourcenbeschränkten Systems102 an den Vertreter513 des Basissystems101 absetzt. - Unter "Unidirektionalität der Aufrufstruktur" ist zu verstehen, daß eine Smartcard auf ein APDU-Kommando, das an die Smartcard gesendet wird, genau eine Antwort in Form eines APDU-Antwort-Kommandos an den Aufrufer zurücksenden kann. Die Einschränkung besteht darin, daß die Smartcard während der Abarbeitung eines APDU-Kommandos keine Möglichkeit hat, Daten nach außerhalb der Karte zu senden und/oder von dort zu empfangen.
- Zwar sind auf dem Markt Smartcards erhältlich, die dem JavaCard Standard entsprechen, aber durch proprietäre Erweiterungen die beschriebenen Einschränkungen umgehen können. Von solchen proprietären Erweiterungen soll hier jedoch vorzugsweise nicht ausgegangen werden.
- Die Folge des Zusammenwirkens beider Eigenschaften ist, daß eine Smartcard fast immer in einem Zustand ist, in dem sie nichts tut, also keinen Programmcode ausführt. Wenn von einem Aufrufer ein APDU-Kommando an die Smartcard gesendet wird, arbeitet die Smartcard dieses Kommando ab, wobei Programmcode ausgeführt wird. Während dieser Abarbeitung kann die Smartcard keine Daten nach außerhalb senden bzw. weitere Daten in Form von APDU-Datenblöcken von dort empfangen. Nach der Abarbeitung des APDU-Kommandos sendet die Smartcard eine APDU-Antwort an den Aufrufer zurück. Danach geht die Smartcard wieder in den Zustand über, in dem sie nichts tut, also keinen Programmcode ausführt. Erst beim Eintreffen des nächsten APDU-Kommandos wird die Smartcard wieder aktiv in dem Sinn, daß sie Programmcode abarbeitet.
- Eine weitere Folge der beiden oben geschilderten Eigenschaften ist, daß der Vertreter
513 des Basissystems101 die Kommandos, die er an den Vertreter512 des ressourcenbeschränkten Systems102 senden möchte, nicht unmittelbar an diesen senden kann. Denn wegen der Reaktivität der Smartcard ist sicher, daß der Vertreter513 des Basissystems101 nur dann Programmcode abarbeiten und somit Kommandos an den Vertreter512 des ressourcenbeschränkten Systems102 produzieren kann, wenn er durch den Vertreter512 des ressourcenbeschränkten Systems102 mittels eines APDU-Kommandos aktiviert wurde. Da der Vertreter513 des Basissystems101 dann aber gerade in der Abarbeitung eines APDU-Kommandos steckt, ist der Kommunikationsweg zum Vertreter512 des ressourcenbeschränkten Systems102 blockiert. - Für die Übergabe der Kommandos an den Vertreter
512 des ressourcenbeschränkten Systems102 gibt es mehrere Möglichkeiten. Es ist beispielsweise denkbar, daß der Vertreter513 des Basissystems101 die Kommandos in der APDU-Antwort, die an den Vertreter512 des ressourcenbeschränkten Systems102 gesendet wird, einfügt. In der vorliegenden Erfindung wird jedoch vorzugsweise der folgende Ansatz verfolgt: Alle Kommandos, die der Vertreter513 des Basissystems101 für den Vertreter512 des ressourcenbeschränkten Systems102 erzeugt, werden vom Vertreter513 des Basissystems101 in einer Kommandoliste abgelegt. Es ist die Aufgabe des Vertreters512 des ressourcenbeschränkten Systems102 , diese Liste vom Vertreter513 des Basissystems101 abzuholen und die darin enthaltenen Kommandos auszuführen. Diese Möglichkeit ist in vielen Fällen gegenüber der ersten Möglichkeit vorteilhaft, da im DMI-Mechanismus die Länge von APDU-Kommandos und deren APDU-Antwortdaten beschränkt sind. Diese Beschränkung wird entschärft, wenn die Kommandos Schritt für Schritt (und nicht in einem Stück) vom Vertreter512 des ressourcenbeschränkten Systems102 abgeholt werden. - Eine Folge der verzögerten Abarbeitung von Kommandos durch den Vertreter
512 des ressourcenbeschränkten Systems102 ist, daß Rückgabewerte der Kommandos verzögert an den Vertreter513 des Basissystems101 zurückgesendet werden müssen. Bei diesen Kommando-Rückgabewerten handelt es sich um Fehlercodes, die anzeigen, ob die Ausführung eines Kommandos durch den Vertreter512 des ressourcenbeschränkten Systems102 erfolgreich war oder ob während der Abarbeitung des Kommandos ein Fehler aufgetreten ist. Der Vertreter512 des ressourcenbeschränkten Systems102 sendet für jedes Kommando, das er verarbeitet hat, einen entsprechenden Fehlercode an den Vertreter513 des Basissystems101 zurück. - Eine weitere Folge der beiden genannten Eigenschaften von Smartcards nach dem JavaCard-Standard ist, daß der Vorgang der Ankopplung in der vorliegenden Erfindung vom Vertreter
512 des ressourcenbeschränkten Systems102 initiiert werden muß. Dabei sendet der Vertreter512 des ressourcenbeschränkten Systems102 ein Initialisierungs-Kommando an den Vertreter513 des Basissystems101 . Der Vertreter513 des Basissystems101 beantwortet das Initialisierungs-Kommando mit Informationen über seinen Systemzustand. Insbesondere werden hier Daten über die Anschlußpunkte514 geliefert, die der Vertreter513 des Basissystems101 verwaltet. Außerdem werden an alle entfernten Teilsysteme208 Initialisierungs-Botschaften gesendet, wodurch den entfernten Teilsystemen208 die Möglichkeit zur Reaktion auf eine Ankopplung gegeben wird. - Im Sequenzdiagramm von
8 , dessen zugrundeliegende Komponenten in5 gezeigt sind, ist anhand eines Beispielablaufs gezeigt, welche Auswirkungen die beiden genannten Eigenschaften einer JavaCard-kompatiblen Smartcard – Passivität und Unidirektionalität der Aufrufstruktur – auf die Erfindung haben. Grundlage des in8 gezeigten Ablaufs ist folgendes Szenario: Es gibt ein entferntes Teilsystem208 , das einen Anschlußpunkt514 besitzt. Das entfernte Teilsystem208 sei an dem Anschlußpunkt514 als Sender und Empfänger angemeldet. Auf der Seite des Vertreters512 des ressourcenbeschränkten Systems102 existiere der zum genannten Anschlußpunkt514 gehörige Anschlußpunktvertreter511 , der als Sender und Empfänger an seinem Kanal510 angemeldet ist. Die Aufgabe des entfernten Teilsystems208 sei es, bei Eintreffen einer Nachricht X eine Nachricht Y auf den Kanal zu senden. - Der Vorgang gemäß
8 beginnt damit, daß eine Nachricht X über den Kanal510 signalisiert wird. Der Sender dieser Nachricht X ist ein hier nicht näher angegebenes Teilsystem. Da der Anschlußpunktvertreter511 an dem Kanal510 als Empfänger registriert ist, empfängt dieser die Nachricht X. Der Anschlußpunktvertreter511 gibt die Nachricht X an den Vertreter512 des ressourcenbeschränkten Systems102 weiter, wobei bei der Übergabe auch die Anschlußpunkt-ID des Anschlußpunktvertreters511 mitgegeben wird. Der Vertreter512 des ressourcenbeschränkten Systems102 verpackt die Daten – Nachricht X und Anschlußpunkt-ID – in einen APDU-Datenblock und sendet diesen Datenblock an den Vertreter513 des Basissystems101 . Der Vertreter513 des Basissystems101 wertet die Daten aus und gewinnt daraus die eigentliche Nachricht X und die Anschlußpunkt-ID des Anschlußpunktes514 , an den die Nachricht X weitergeleitet werden soll. Der Vertreter513 des Basissystems101 sucht in seiner Liste von Anschlußpunkten514 nach dem Anschlußpunkt514 mit der angegebenen Anschlußpunkt-ID und übergibt die Nachricht X an diesen Anschlußpunkt514 . Der Anschlußpunkt514 , der die Nachricht empfängt, prüft nun, ob bei ihm ein entferntes Teilsystem208 als Empfänger angemeldet ist. - Ist ein entferntes Teilsystem
208 als Empfänger angemeldet – wie hier angenommen – so gibt der Anschlußpunkt514 die Nachricht X an das entfernte Teilsystem208 weiter. Während der Abarbeitung der Nachricht X sendet das entfernte Teilsystem208 , das an dem Anschlußpunkt514 ebenfalls als Sender angemeldet ist, eine neue Nachricht Y an den Anschlußpunkt514 . Der Anschlußpunkt514 übergibt die Nachricht Y zusammen mit seiner Anschlußpunkt-ID an den Vertreter513 des Basissystems101 . Der Vertreter513 des Basissystems101 kann, da er gerade in der Abarbeitung eines APDU-Kommandos steckt, die Daten nicht an den Vertreter512 des ressourcenbeschränkten Systems102 senden. Er bewirkt eine Zwischenspeicherung des Befehls "Sende Nachricht", den das entfernte Teilsystem208 initiiert hat, in einer Kommandoliste. Das entfernte Teilsystem208 hätte nun die Möglichkeit, weitere Nachrichten an den Anschlußpunkt514 zu senden, die ebenfalls in Einträgen in der Kommandoliste resultieren würden. Da das entfernte Teilsystem208 im Beispielablauf aber keine weitere Aktionen mehr auslöst, ist das APDU-Kommando, mit dem die Nachricht X an das ressourcenbeschränkte System102 gesendet wurde, nun abgearbeitet. Der Vertreter513 des Basissystems101 gibt eine leere APDU-Antwort an den Vertreter512 des ressourcenbeschränkten Systems102 zurück. - Zu bemerken ist, daß der "Sende"-Befehl aus dem Blickwinkel des entfernten Teilsystems
208 erledigt zu sein scheint, daß die Nachricht Y in Wirklichkeit jedoch noch nicht an den Zielkanal510 gesendet worden ist. - Nun prüft der Vertreter
512 des ressourcenbeschränkten Systems102 , ob während der Abarbeitung des APDU-Kommandos durch den Vertreter513 des Basissystems101 Kommandos angefallen sind, die in der Kommandoliste des Vertreters513 des Basissystems101 auf ihre Abarbeitung warten. Dies ist im vorliegenden Szenario der Fall, es handelt es sich um das Kommando "Sende Nachricht (Y, AP-ID)". Der Vertreter des ressourcenbeschränkten Systems512 fordert den Vertreter513 des Basissystems101 auf, das nächste Kommando aus der Kommandoliste zu übertragen. Der Vertreter513 des Basissystems101 tut dies, indem er das nächste Kommando aus der Kommandoliste in einen APDU-Antwort-Datenblock umwandelt und an den Vertreter512 des ressourcenbeschränkten Systems102 zurückgibt. Zugleich wird das Kommando aus der Kommandoliste gelöscht. Der Vertreter512 des ressourcenbeschränkten Systems102 führt das Kommando aus, indem er den Anschlußpunktvertreter511 mit der im Kommando angegebenen Anschlußpunkt-ID sucht. Diesem Anschlußpunktvertreter511 wird die Nachricht Y nun übergeben. Der Anschlußpunktvertreter511 , der am Kanal510 als Sender angemeldet ist, sendet die Nachricht Y nun auf den Kanal510 . - Um das entfernte Teilsystem
208 , das die Sendung der Nachricht Y ausgelöst hat, über Erfolg oder Scheitern der Versendung von Nachricht Y zu informieren, kann vom Vertreter512 des ressourcenbeschränkten Systems102 eine Erfolgs-/Mißerfolgsmeldung erzeugt und an den Vertreter513 des Basissystems101 geschickt werden, der die Meldung dann an das entfernte Teilsystem208 weiterleitet. Dieser Vorgang der Erfolgs-/Mißerfolgsmeldung geschieht dabei analog zu dem in Ablaufbeispiel von7 beschriebenen Vorgang und soll hier nicht mehr erläutert werden. - Ein weiterer wesentlicher Aspekt in bevorzugten Ausführungsbeispielen der Erfindung ist die Sicherheit der Kommunikation in Bezug auf Angriffe von außen und innen.
- Zunächst werden die grundlegenden Sicherheitsmechanismen in bevorzugten Ausgestaltungen der Erfindung erläutert. Die Beschreibung basiert auf den in
5 dargestellten Komponenten. Der im folgenden verwendete Begriff der "Sitzung" bezeichnet den Zeitraum vom Ankoppeln eines Vertreters513 des Basissystems101 an einen Vertreter512 des ressourcenbeschränkten Systems102 bis zum Zeitpunkt der Abkopplung desselben. - Die Kommunikation zwischen dem Vertreter
512 des ressourcenbeschränkten Systems102 und dem Vertreter513 des Basissystems101 kann durch Sicherheitsmechanismen geschützt werden. Dabei werden im vorliegend beschriebenen Ausführungsbeispiel der Erfindung die folgenden 3 Sicherheitsstufen unterschieden: - Stufe 0: keine Sicherheitsfunktionen,
- Stufe 1: Schutz vor Abhören und Manipulation der Kommunikation, und
- Stufe 2: wie Stufe 1, dazu Schutz vor Informationsgewinnung
aus der Analyse des Verkehrsaufkommens der Kommunikation zwischen
dem Vertreter
512 des ressourcenbeschränkten Systems102 und dem Vertreter513 des Basissystems101 . - In dem hier beschriebenen Ausführungsbeispiel ist vorgesehen, daß ein entferntes Teilsystem
208 einstellen kann, mit welcher Sicherheitsstufe die Kommunikation zwischen dem Vertreter512 des ressourcenbeschränkten Systems102 und dem Vertreter513 des Basissystems101 geschützt werden soll. Der Vertreter513 des Basissystems101 sorgt dafür, daß die Sicherheitswünsche aller entfernten Teilsysteme208 , die bei ihm registriert sind, eingehalten werden. - Ferner ist in vorteilhaften Ausführungsbeispielen vorgesehen, daß bei der Ankopplung eines Vertreters eines Basissystems
513 an einen Vertreter512 des ressourcenbeschränkten Systems102 eine Sicherheitsstufe ausgehandelt wird, mit der die Kommunikation zwischen dem Vertreter513 des Basissystems101 und dem Vertreter512 des ressourcenbeschränkten Systems102 geschützt wird. Dabei teilt zunächst der Vertreter512 des ressourcenbeschränkten Systems102 dem Vertreter513 des Basissystems101 die Sicherheitsstufen mit, die er unterstützt. Der Vertreter513 des Basissystems101 kann nun anhand dieser Information entscheiden, welche entfernten Teilsysteme208 in die Sitzung mit einbezogen werden und welche nicht. Das Kriterium, ob ein entferntes Teilsystem208 in die Sitzung miteinbezogen wird, ist die Sicherheitsstufe, die das entfernte Teilsystem208 wünscht. Der Vertreter513 des Basissystems101 prüft dabei für jedes Teilsystem, ob die Sicherheitsstufe, die der Vertreter512 des ressourcenbeschränkten Systems102 anbietet, groß genug ist, um den Wunsch des entfernten Teilsystems208 erfüllen zu können. Wenn dem so ist, wird das entfernte Teilsystem208 als "aktiviert" markiert, andernfalls wird das entfernte Teilsystem als "nicht aktiviert" markiert. Der Vertreter513 des Basissystems101 sorgt dafür, daß an der laufenden Sitzung nur solche entfernte Teilsysteme208 teilnehmen, die als "aktiviert" markiert sind. - Die sichere Kommunikation erfolgt in unterschiedlichen Ausführungsvarianten unter anderem durch eine oder mehrere der folgenden, an sich bekannten Techniken: Sequenznummern, Prüfsummen, Verschlüsselung der Kommunikation und Schlüsselaustausch.
- In einem besonders sicheren Ausführungsbeispiel werden sämtliche Datenpakete, die der Vertreter
512 des ressourcenbeschränkten Systems102 und der Vertreter513 des Basissystems101 untereinander austauschen, mit Hilfe kryptographischer Verfahren vor Verfälschung und Abhören geschützt, falls die Kommunikation mit Sicherheitsstufe1 oder2 erfolgt. Dabei wird jedes Datenpaket zunächst mit einer Sequenznummer und einer aus dem Datenpaket berechneten Prüfsumme versehen. Das Resultat wird dann mit Hilfe eines symmetrischen Verschlüsselungsverfahrens verschlüsselt, wobei ein Schlüssel zum Einsatz kommt, der nur dem Vertreter513 des Basissystems101 und dem Vertreter512 des ressourcenbeschränkten Systems102 bekannt ist. Dieser Schlüssel wird bei jeder Ankopplung des Vertreters513 des Basissystems101 an einen Vertreter512 des ressourcenbeschränkten Systems102 vom Vertreter513 des Basissystems101 neu generiert und wird im folgenden als Sitzungsschlüssel bezeichnet. - Die Sicherheit des Verfahrens hängt wesentlich davon ab, daß die Übertragung des Sitzungsschlüssels vom Vertreter
513 des Basissystems101 an den Vertreter512 des ressourcenbeschränkten Systems102 auf sichere Weise geschieht. Dies wurde im gegenwärtig beschriebenen Ausführungsbeispiel so gelöst, daß der Vertreter513 des Basissystems101 den Sitzungsschlüssel vor der Übertragung an den Vertreter512 des ressourcenbeschränkten Systems102 mit Hilfe eines asymmetrischen Verschlüsselungsverfahrens verschlüsselt. Jeder Vertreter eines ressourcenbeschränkten Systems512 muß dabei über ein Schlüsselpaar aus einem öffentlichen und dem zugehörigen geheimen Schlüssel verfügen. Bei der Ankopplung eines Vertreters513 des Basissystems101 an einen Vertreter512 eines ressourcenbeschränkten Systems102 teilt der Vertreter512 des ressourcenbeschränkten Systems102 dem Vertreter513 des Basissystems101 seinen öffentlichen Schlüssel mit. Der Vertreter513 des Basissystems101 verschlüsselt den Sitzungsschlüssel dann mit dem öffentlichen Schlüssel des Vertreters512 des ressourcenbeschränkten Systems102 . Da nur der Vertreter512 des ressourcenbeschränkten Systems102 im Besitz des geheimen Schlüssels ist, kann nur er den Sitzungsschlüssel entschlüsseln und somit mit dem Vertreter513 des Basissystems101 kommunizieren. - Alternativ oder zusätzlich ist in weiteren Ausführungsvarianten ein Geheimhalten von offenen Channels und Ports vorgesehen. Beim Ankoppeln eines Vertreters
513 des Basissystems101 an einen Vertreter512 des ressourcenbeschränkten Systems102 teilt der Vertreter513 des Basissystems101 dem Vertreter512 des ressourcenbeschränkten Systems102 seinen Zustand mit. Dabei übergibt der Vertreter513 des Basissystems101 unter anderem Daten über die Anschlußpunkte514 der als "aktiviert" markierten entfernten Teilsysteme208 . Aus den Daten, die bei der Ankopplung ausgetauscht werden, können Informationen über das ressourcenbeschränkte System102 und die darauf installierten entfernten Teilsysteme208 gewonnen werden, wie z.B. Namen der Kanäle510 , an denen sich die entfernten Teilsysteme208 anmelden wollen. - Daher ist im hier beschriebenen Ausführungsbeispiel eine Möglichkeit vorgesehen, mit dem entfernte Teilsysteme
208 bestimmen können, mit welchen Vertretern512 eines ressourcenbeschränkten Systems102 sie kommunizieren möchten, an welche Vertreter512 des ressourcenbeschränkten Systems102 sie also Informationen über sich selbst preisgeben. Dazu übergibt jedes entfernte Teilsystem208 an den Vertreter513 des Basissystems101 eine Liste mit öffentlichen Schlüsseln, die den öffentlichen Schlüsseln der Vertreter512 des ressourcenbeschränkten Systems102 entspricht, mit dem das entfernte Teilsystem208 kommunizieren möchte. Der Vertreter513 des Basissystems101 sorgt dafür, daß entfernte Teilsysteme208 , die den öffentlichen Schlüssel des Vertreters512 des ressourcenbeschränkten Systems102 , der eine Ankopplung einleitet, nicht in ihrer Liste haben, als "nicht aktiviert" markiert werden, und somit von der Kommunikation mit dem Vertreter512 des ressourcenbeschränkten Systems102 ausgeschlossen werden. - Ein weiterer wichtiger Sicherheitsaspekt in Ausführungsalternativen der Erfindung ist es, das Erkennen von Nachrichten durch geeignete Blindkommunikation zu verhindern. Es soll damit, insbesondere bei drahtloser Kommunikation, vermieden werden, daß durch Analyse des Verkehrsaufkommens zwischen dem Vertreter
512 des ressourcenbeschränkten Systems102 und dem Vertreter513 des Basissystems101 möglicherweise vertrauliche Informationen gewonnen werden können. Zu diesem Verschleiern der Kommunikation werden vom Vertreter512 des ressourcenbeschränkten Systems102 Pakete von Blinddaten in die Kommunikation mit dem Vertreter513 des Basissystems101 eingestreut, wenn die Kommunikation zwischen dem Vertreter512 des ressourcenbeschränkten Systems102 und dem Vertreter513 des Basissystems101 mit Sicherheitsstufe2 betrieben wird. Die Anzahl, Größe und die Inhalte dieser Datenpakete ist zufällig, jedoch so gestaltet, daß der Vertreter513 des Basissystems101 , der im Besitz des Sitzungsschlüssels ist, sie als Blinddatenpakete identifizieren kann. Der Vertreter513 beantwortet ein Blinddatenpaket seinerseits mit einer zufälligen Anzahl von Blinddaten paketen, deren Größe und Inhalt wiederum zufällig ist. Durch Anwendung dieses Verfahrens ist es nicht mehr möglich, durch Messung des Verkehrsaufkommens zwischen dem Vertreter512 des ressourcenbeschränkten Systems102 und dem Vertreter513 des Basissystems101 vertrauliche Informationen zu gewinnen. - Wie bereits beschrieben, kann ein entferntes Teilsystem
208 Sicherheitswünsche äußern, was die Kommunikation mit dem Vertreter512 des ressourcenbeschränkten Systems102 betrifft. In bevorzugten Ausführungsvarianten ist vorgesehen, daß die Angabe dieser Sicherheitsanforderungen in unterschiedlichen Granularitätsstufen erfolgen kann. Eine entferntes Teilsystem208 kann dann Sicherheitsforderungen global für das entfernte Teilsystem208 stellen. Es kann aber auch die Sicherheitsforderungen bezüglich einer Menge von Anschlußpunkten514 stellen. Es kann im Extremfall für jeden Anschlußpunkt514 eigene Sicherheitsforderungen stellen. - Schließlich ist in vorteilhaften Ausführungsbeispielen vorgesehen, daß der Vertreter
512 des ressourcenbeschränkten Systems102 bestimmen kann, welche entfernten Teilsysteme208 an der Kommunikation zwischen dem Vertreter512 des ressourcenbeschränkten Systems102 und dem Vertreter513 des Basissystems101 teilnehmen können. Dazu teilt der Vertreter512 des ressourcenbeschränkten Systems102 dem Vertreter513 des Basissystems101 die öffentlichen Schlüssel der entfernten Teilsysteme208 mit, die in die Kommunikation miteinbezogen werden sollen. Dementsprechend teilen alle entfernten Teilssysteme208 , die sich am Vertreter513 des Basissystems101 registrieren, bei der Registrierung ihren öffentlichen Schlüssel mit. Der Vertreter513 des Basissystems101 sorgt bei einer Ankopplung dafür, daß die entfernten Teilsysteme208 , die der Vertreter512 des ressourcenbeschränkten Systems102 nicht unterstützt, als "nicht aktiviert" markiert werden und somit nicht in die Kommunikation zwischen dem Vertreter512 des ressourcenbeschränkten Systems102 und dem Vertreter513 des Basissystems101 miteinbezogen werden. - Insgesamt sind am Schluß der Initialisierungsphase nur diejenigen entfernten Teilsysteme
208 als "aktiviert" markiert, deren Sicherheitsforderungen vom Vertreter513 des Basissystems101 durchgesetzt werden können und die der Vertreter512 des ressourcenbeschränkten Systems102 zur Kommunikation zulassen möchte. Die als "nicht aktiviert" markierten entfernten Teilsysteme208 werden zur Kommunikation der laufenden Sitzung nicht zugelassen. Jedes Teilsystem wird (falls vom entfernten Teilsystem208 gewünscht) vom Vertreter513 des Basissystems101 davon unterrichtet, ob es an der aktuellen Sitzung teilnimmt oder nicht.
Claims (19)
- Verfahren zur Signalisierung von Nachrichten zwischen mindestens zwei Kommunikationsparfnern, wobei mindestens einer der Partner ein Basissystem (
101 ) und mindestens einer der Partner ein ressourcenbeschränktes, prozessorbasiertes System (102 ), nämlich eine prozessorbasierte Chipkarte, ist, wobei das ressourcenbeschränkte, prozessorbasierte System (102 ) dazu eingerichtet ist, zu beliebigen Zeitpunkten vom Basissystem (101 ) getrennt oder wieder mit dem Basissystem (101 ) verbunden zu werden, und wobei das Verfahren, wenn das ressourcenbeschränkte, prozessorbasierte System (102 ) mit dem Basissystem (101 ) verbunden wird, folgende Schritte aufweist: a) Ankopplung des ressourcenbeschränkten, prozessorbasierten Systems (102 ) über einen Zwischenverteiler (207 ) an einen Signalisierungsmechanismus (206 ) des Basissystems (101 ) zur asynchronen Signalisierung von Nachrichten, wobei der Signalisierungsmechanismus (206 ) ein Event Service ist, b) Signalisierung von Nachrichten zu und von dem ressourcenbeschränkten, prozessorbasierten System (102 ), wobei b1) vom ressourcenbeschränkten, prozessorbasierten System (102 ) gesendete Nachrichten über den Zwischenverteiler (207 ) an den Signalisierungsmechanismus (206 ) weitergeleitet werden, und b2) für das ressourcenbeschränkte, prozessorbasierte System (102 ) bestimmte Nachrichten vom Signalisierungsmechanismus (206 ) über den Zwischenverteiler (207 ) an das ressourcenbeschränkte, prozessorbasierte System (102 ) weitergeleitet werden, bei dem der Zwischenverteiler (207 ) sein Verhalten bei einer temporären Abkoppelung des ressourcenbeschränkten, prozessorbasierten Systems (102 ) vom Basissystem (101 ) dem jeweiligen Ankopplungszustand anpaßt, und bei dem der Zwischenverteiler (207 ) einerseits für den Signalisierungsmechanismus (206 ) das ressourcenbeschränkte, prozessorbasierte System (102 ) und andererseits für das ressourcenbeschränkte, prozessorbasierte System (102 ) den Signalisierungsmechanismus (206 ) als Kommunikationspartner repräsentiert. - Verfahren nach Anspruch 1, bei dem die Kommunikation zwischen dem ressourcenbeschränkten, prozessorbasierten System (
102 ) und dem Basissystem (101 ) gegen Mithören und/oder Verfälschung und/oder das Erkennen des Auftretens von Nachrichten abgesichert ist. - Verfahren zur Signalisierung von Nachrichten zwischen mindestens zwei Kommunikationspartnern, wobei mindestens einer der Partner ein Basissystem (
101 ) und mindestens einer der Partner ein ressourcenbeschränktes, prozessorbasiertes System (102 ), nämlich ein intelligentes Haushaltsgerät oder ein verteilter Sensor oder ein verteilter Aktuator, ist, wobei das ressourcenbeschränkte, prozessorbasierte System (102 ) dazu eingerichtet ist, zu beliebigen Zeitpunkten vom Basissystem (101 ) getrennt oder wieder mit dem Basissystem (101 ) verbunden zu werden, und wobei das Verfahren, wenn das ressourcenbeschränkte, prozessorbasierte System (102 ) mit dem Basissystem (101 ) verbunden wird, folgende Schritte aufweist: a) Ankopplung des ressourcenbeschränkten, prozessorbasierten Systems (102 ) über einen Zwischenverteiler (207 ) an einen Signalisierungsmechanismus (206 ) des Basissystems (101 ) zur asynchronen Signalisierung von Nachrichten, wobei der Signalisierungsmechanismus (206 ) ein Event Service ist, b) Signalisierung von Nachrichten zu und von dem ressourcenbeschränkten, prozessorbasierten System (102 ), wobei b1) vom ressourcenbeschränkten, prozessorbasierten System (102 ) gesendete Nachrichten über den Zwischenverteiler (207 ) an den Signalisierungsmechanismus (206 ) weitergeleitet werden, und b2) für das ressourcenbeschränkte, prozessorbasierte System (102 ) bestimmte Nachrichten vom Signalisierungsmechanismus (206 ) über den Zwischenverteiler (207 ) an das ressourcenbeschränkte, prozessorbasierte System (102 ) weitergeleitet werden, bei dem der Zwischenverteiler (207 ) sein Verhalten bei einer temporären Abkoppelung des ressourcenbeschränkten, prozessorbasierten Systems (102 ) vom Basissystem (101 ) dem jeweiligen Ankopplungszustand anpaßt, bei dem der Zwischenverteiler (207 ) einerseits für den Signalisierungsmechanismus (206 ) das ressourcenbeschränkte, prozessorbasierte System (102 ) und andererseits für das ressourcenbeschränkte, prozessorbasierte System (102 ) den Signalisierungsmechanismus (206 ) als Kommunikationspartner repräsentiert, und bei dem die Kommunikation zwischen dem ressourcenbeschränkten, prozessorbasierten System (102 ) und dem Basissystem (101 ) gegen Mithören und/oder Verfälschung von Nachrichten abgesichert ist. - Verfahren nach Anspruch 3, bei dem die Kommunikation zwischen dem ressourcenbeschränkten, prozessorbasierten System (
102 ) und dem Basissystem (101 ) gegen das Erkennen des Auftretens von Nachrichten abgesichert ist. - Verfahren nach einem der Ansprüche 2 bis 4, bei dem die Absicherung der Kommunikation gegen Mithören und/oder Verfälschung durch symmetrische Verschlüsselung der zusätzlich mit Sequenznummern und Prüfsummen versehenen Nachrichten erfolgt.
- Verfahren nach einem der Ansprüche 2 bis 5, bei dem die jeweiligen Vertreter des ressourcenbeschränkten, prozessorbasierten Systems (
102 ) sowie des Basissystems (101 ) nach der Ankopplung ein asymmetrisches Verschlüsselungsverfahren benutzen, um sich gegenseitig zu autorisieren und den für die symmetrische Verschlüsselung benötigten Schlüssel zu vereinbaren. - Verfahren nach einem der Ansprüche 2 bis 6, bei dem die Kommunikation gegen das ungewollte Erkennen der Tatsache, daß Nachrichten versendet werden, durch die Verwendung von Blindnachrichten abgesichert ist, indem diese von den jeweiligen Vertretern (
512 und513 ) in den Kommunikationsfluß eingestreut und wieder herausgefiltert werden. - Verfahren nach einem der Ansprüche 2 bis 7, bei dem eine Signalisierung von Nachrichten nur dann zustande kommt, wenn Sicherheitsanforderungen eines Vertreters (
512 oder513 ) von dem jeweils anderen Vertreter (513 bzw.512 ) erfüllt werden können. - Verfahren nach Anspruch 8, bei dem die Sicherheitsanforderungen von den entfernten Teilsystemen (
208 ) für einzelne Anschlußpunkte (514 ) und damit für Kanäle (510 ) gestellt werden. - Verfahren. nach einem der Ansprüche 2 bis 9, bei dem das Basissystem (
101 ) das Vorhandensein von Kanälen (510 ) vor dem ressourcenbeschränkten, prozessorbasierten System (102 ) verbirgt und die entfernten Teilsysteme (208 ) die Ankopplung an Kanäle (510 ) geheimhalten. - Verfahren nach einem der Ansprüche 1 bis 10, bei dem jede Nachricht zwischen den Kommunikationspartnern über einen von dem Signalisierungsmechanismus (
206 ) zur Verfügung gestellten, eindeutig bestimmten Kanal (510 ) signalisiert wird. - Verfahren nach einem der Ansprüche 1 bis 11, bei dem eine Komponente des Basissystems (
101 ) ein Vertreter (512 ) des ressourcenbeschränkten, prozessorbasierten Systems (102 ) ist. - Verfahren nach einem der Ansprüche 1 bis 12, bei dem eine Komponente auf dem ressourcenbeschränkten, prozessorbasierten System (
102 ) ein Vertreter (513 ) des Basissystems (101 ) ist. - Verfahren nach einem der Ansprüche 1 bis 13, bei dem auf dem Basissystem (
101 ) die Anbindung von Teilsystemen (103 ) an Kommunikationskanäle (510 ) zum ressourcenbeschränkten, prozessorbasierten System (102 ) mittels Anschlußpunktvertretern (511 ) erfolgt. - Verfahren nach einem der Ansprüche 1 bis 14, bei dem auf dem ressourcenbeschränkten, prozessorbasierten System (
102 ) Anschlußpunkte (514 ) erzeugt werden, über die die Kommunikation mit dem Basissystem (101 ) verläuft. - Verfahren nach einem der Ansprüche 1 bis 15, bei dem bei einer Wiederankopplung des ressourcenbeschränkten, prozessorbasierten Systems (
102 ) der Zwischenverteiler (207 ) in einen Zustand versetzt wird, der dem Zustand des Zwischenverteilers (207 ) entspricht, mit dem das ressourcenbeschränkte, prozessorbasierte System (102 ) vor der Trennung verbunden war. - Verfahren nach einem der Ansprüche 1 bis 16, bei dem das ressourcenbeschränkte, prozessorbasierte System (
102 ) ausschließlich auf Anfragen des Basissystems (101 ) reagiert. - Verfahren nach einem der Ansprüche 1 bis 17, bei dem das ressourcenbeschränkte, prozessorbasierte System (
102 ) lediglich eine unidirektionale Aufrufstruktur unterstützt. - Vorrichtung, die dazu eingerichtet ist, ein Verfahren nach einem der Ansprüche 1 bis 18 durchzuführen.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19906134A DE19906134B8 (de) | 1999-02-13 | 1999-02-13 | Anbindung eines ressourcenbeschränkten, prozessorbasierten Systems an einen Mechanismus zur Signalisierung von Nachrichten |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19906134A DE19906134B8 (de) | 1999-02-13 | 1999-02-13 | Anbindung eines ressourcenbeschränkten, prozessorbasierten Systems an einen Mechanismus zur Signalisierung von Nachrichten |
Publications (3)
Publication Number | Publication Date |
---|---|
DE19906134A1 DE19906134A1 (de) | 2000-08-31 |
DE19906134B4 true DE19906134B4 (de) | 2005-02-24 |
DE19906134B8 DE19906134B8 (de) | 2005-07-28 |
Family
ID=7897463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19906134A Expired - Fee Related DE19906134B8 (de) | 1999-02-13 | 1999-02-13 | Anbindung eines ressourcenbeschränkten, prozessorbasierten Systems an einen Mechanismus zur Signalisierung von Nachrichten |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE19906134B8 (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018104178A1 (de) * | 2018-02-23 | 2019-08-29 | Fujitsu Client Computing Limited | Verfahren zum sicheren Zugriff auf Hardware-Komponenten innerhalb eines Benutzer-Terminals sowie derartiges Benutzer-Terminal |
DE102018104184A1 (de) * | 2018-02-23 | 2019-08-29 | Fujitsu Client Computing Limited | Verfahren zur Absicherung eines Zugriffs auf Informationen innerhalb eines Benutzer-Terminals sowie derartiges Benutzer-Terminal |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0260043B1 (de) * | 1986-09-05 | 1993-01-13 | AT&T Corp. | Virtuelles Anrufbehandlungsverfahren in einer Fernsprechnebenstellenanlage |
WO1997014108A1 (en) * | 1995-10-11 | 1997-04-17 | Block Financial Corporation | Financial information access system |
-
1999
- 1999-02-13 DE DE19906134A patent/DE19906134B8/de not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0260043B1 (de) * | 1986-09-05 | 1993-01-13 | AT&T Corp. | Virtuelles Anrufbehandlungsverfahren in einer Fernsprechnebenstellenanlage |
WO1997014108A1 (en) * | 1995-10-11 | 1997-04-17 | Block Financial Corporation | Financial information access system |
Also Published As
Publication number | Publication date |
---|---|
DE19906134B8 (de) | 2005-07-28 |
DE19906134A1 (de) | 2000-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60124367T2 (de) | Verfahren zur übertragung von hochrätigen datenströmen über internet zwischen einem server und einem chipkartenterminal | |
DE69925806T2 (de) | Verfahren zur kommunikation zwischen einer benutzerstation und einem netzwerk insbesondere das internet und architektur dafür | |
DE60220665T2 (de) | Verfahren und system für den aufbau einer verbindung zwischen einem personal security device und einem fernrechnersystem | |
DE69400549T3 (de) | IC-Karten-Übertragungssystem | |
EP0990356B1 (de) | Mobilgerät, chipkarte und kommunikationsverfahren | |
DE60205485T2 (de) | Paketorientierter datenaustausch zwischen beweglichen und örtlich festgelegten datennetzen | |
DE69829346T2 (de) | Ein-/Ausgabevorrichtung für ein Peripheriegerät | |
EP0283432A1 (de) | Verfahren und Vorrichtung zum Schutz der Geheimelemente in einem Netz von Chiffriergeräten mit offener Schlüssel-Verwaltung | |
DE3103873A1 (de) | Raeumlich verteiltes datenverarbeitungssystem | |
WO1999025140A1 (de) | Identifizierungskarte und identifizierungsverfahren | |
EP2417550A1 (de) | Verfahren zur durchführung einer applikation mit hilfe eines tragbaren datenträgers | |
DE19720431A1 (de) | Vorrichtung und Verfahren zur Personalisierung von Chipkarten | |
EP1576848B1 (de) | Verfahren zur bereitstellung von kostenpflichtigen diensten sowie nutzeridentifikationsvorrichtung und einrichtung zum bereitstellen der dienste | |
DE60219076T2 (de) | Herunterladung eines applets in einem kommunikationssystem | |
WO2001039464A1 (de) | Anpassbare chipkarte | |
DE19906134B4 (de) | Anbindung eines ressourcenbeschränkten, prozessorbasierten Systems an einen Mechanismus zur Signalisierung von Nachrichten | |
EP1230779B1 (de) | Verfahren, chipkarte, und vorrichtung für eine logische schnittstelle zwischen zwei anwendungen | |
DE60313746T2 (de) | Verfahren zur netzwerkkommunikation mit einer chipkarte die asynchrone meldungen benutzt | |
DE10107883B4 (de) | Verfahren zur Übertragung von Daten, Proxy-Server und Datenübertragungssystem | |
DE60205206T2 (de) | Verfahren zur Sicherung des Herunterladens von aktiven Daten auf ein Kommunikationsgerät | |
EP2196005B1 (de) | Datenkommunikationsverfahren und datenträger dafür | |
DE102007006384A1 (de) | Verfahren und Vorrichtung zum Speichern einer für eine Nahfeldkommunikation erforderlichen gesicherten Information auf einem Kommunikationsgerät | |
DE60203811T2 (de) | Funkkommunikationsmodul, das ein hauptsoftwareprogramm ausführt, dessen niedrige schichten einem client-softwareprogramm, das ebenfalls durch das modul ausgeführt wird, offen sind | |
DE60213632T2 (de) | Byte-übertragungsverwaltung in einer chipkarte | |
DE102005055419B3 (de) | Doppelschnittstellenvorrichtung aus portablen Datenträgern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8181 | Inventor (new situation) |
Free format text: BERGNER, KLAUS, 80333 MUENCHEN, DE BRUEGGE, BERND, PROF. DR., 80333 MUENCHEN, DE RAUSCH, ANDREAS, 87452 ALTUSRIED, DE SIHLING, MARC, 80333 MUENCHEN, DE VILSMEIER, CHRISTOPH, 84030 ERGOLDING, DE PIHULAK, BRIGITTE, 73257 KOENGEN, DE HEGE, DIETER, 71384 WEINSTADT, DE |
|
8381 | Inventor (new situation) |
Inventor name: PIHULAK, BRIGITTE, 73257 K?NGEN, DE Inventor name: SIHLING, MARC, 80333 MUENCHEN, DE Inventor name: BRUEGGE, BERND, PROF. PH.D., 80333 MUENCHEN, DE Inventor name: BERGNER, KLAUS, 80333 MUENCHEN, DE Inventor name: VILSMEIER, CHRISTOPH, 84030 ERGOLDING, DE Inventor name: RAUSCH, ANDREAS, 87452 ALTUSRIED, DE Inventor name: HEGE, DIETER, 71384 WEINSTADT, DE |
|
8396 | Reprint of erroneous front page | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |