-
Die
vorliegende Erfindung betrifft das Bereitstellen von verbesserter
Sicherheit in einer Vorrichtung, die Dienste aufweist, auf die andere
Vorrichtungen zugreifen können,
welche mit der Vorrichtung kommunizieren. Insbesondere bezieht sich
die Erfindung auf Vorrichtungen, auf die über einer Funkschnittstelle,
gemäß der Bluetooth-Spezifizierung
zugegriffen wird.
-
1 stellt
ein Netzwerk 2, von Funk-Sende-Empfänger-Einheiten bzw. Funk-Sende-Empfangseinheiten
dar, welches eine Haupteinheit bzw. Mastereinheit 4, und
Untereinheiten bzw. Slaveeinheiten 6, 8 und 10 einschließt, welche
mittels Übertragung
und Empfang von Funkpaketen kommunizieren. Es gibt nur eine Haupteinheit
in einem Netzwerk. Das Netzwerk arbeitet mit einem Zeitmultiplex-
bzw. Zeitvielfachzugriffverfahren. Die Sende-Empfangseinheiten sind auf einen gemeinsamen
Zeitrahmen synchronisiert, welcher durch die Haupteinheit 4 festgelegt
wird. Dieser Zeitrahmen besteht aus einer Reihe von Zeitschlitzen
gleicher Länge.
Jedes Funkpaket das in das Netzwerk gesendet wird, weist seinen Anfang
auf, welcher auf den Anfang eines Schlitzes abgestimmt ist und nur
ein einzelnes Paket wird in dem Netzwerk zu einer Zeit gesendet.
Wenn die Haupteinheit eine Punkt zu Punkt Kommunikation durchführt, wird
ein gesendetes Funkpaket an einen besonderen Sende-Empfänger adressiert,
der der Haupteinheit durch die Übertragung
eines Funkpaketes, in dem nächsten
verfügbaren
Zeitschlitz antwortet, das an die Haupteinheit adressiert ist. Wenn
die Haupteinheit eine Punkt zu Mehrfachpunkt Kommunikation durchführt, ist
ein gesendetes Funkpaket an alle Sende-Empfangseinheiten adressiert.
Jegliche Falschausrichtung bzgl. der Zeit, zwischen der Haupt- und
der Nebeneinheit, wird durch das Anpassen der Zeitsteuerung der
Nebeneinheit korrigiert.
-
Die
Sende-Empfangseinheiten bzw. Sende-Empfänger senden und empfangen,
in diesem Beispiel, in einem Mikrowellenfrequenzband (microwave
frequency band), von beispielsweise 2.4 GHz. Das Netzwerk verringert
Störungen
durch Wechseln der Frequenz, auf der jedes Funkpaket übertragen wird.
Eine Anzahl von separaten Frequenzkanälen, bekommt je eine Bandbreite
von 1 MHz zugewiesen und die Frequenz kann auf eine Rate von 1600 Sprüngen pro
Sekunde (hops/s) springen. Das Frequenzspringen der Sende-Empfangseinheiten
die in dem Netzwerk kommunizieren oder mit ihm verbunden sind, wird
durch die Haupteinheit synchronisiert und gesteuert. Die Abfolge
der Sprungfrequenzen ist einzigartig für das Netzwerk und wird durch
eine einzigartige Identifizierung der Haupteinheit bestimmt.
-
Jede
Sende-Empfangseinheit weist eine einzigartige Identifizierung auf,
die Einheits ID, die fortan als die Bloetooth ID bezeichnet wird.
Jede Bloetooth ID (48-Bit IEEE Adresse) ist einzigartig für jede Bluetootheinheit.
Eine Bluetooth ID einer Einheit, kann durch eine Nachfrageprozedur über die
Funkfrequenz-Schnittstelle an die Einheit gefunden werden.
-
Das
Netzwerk ist ein Funkfrequenz-Netzwerk, das zur Übertragung von Sprachinformation oder
Dateninformation zwischen Sende-Empfangseinheiten geeignet ist.
Die durchgeführten Übertragungen
sind von niedriger Leistung, z.B. 0 bis 20 dBm, und die Sende-Empfangseinheiten
können
effektiv über
einen Bereich von ein paar Zentimetern bis ein paar Zehn, oder ein
paar hundert Metern kommunizieren.
-
Bezug
nehmend auf 2, wird ein Rahmen 20 dargestellt.
Dieser Rahmen 20 ist das gemeinsame Zeitfenster, welches
von dem Netzwerk 2 verwendet wird und welcher von der Haupteinheit 4 gesteuert
wird. Der Rahmen weist zur Veranschaulichung Schlitze 22 bis 29 auf.
Die durch gerade Nummern gekennzeichneten Schlitze sind belegt bzw.
reserviert. Nur die Haupteinheit kann anfangen ein Funkpaket zu
senden, das mit dem Start eines Schlitzes mit einer geraden Nummer
ausgerichtet ist. Die durch ungerade Nummern gekennzeichneten Schlitze
sind belegt bzw. reserviert. Nur Funkpakete die durch eine Nebeneinheit übertragen
werden, d.h. Funkpakete die zum Empfang durch die Haupteinheit adressiert sind,
können
mit dem Beginn des Schlitzes mit einer ungeraden Nummer ausgerichtet
gestartet werden. Jedem Schlitz ist eine andere einer Sequenz von Sprungfrequenzen
zugeordnet. Allerdings ist es für ein
Funkpaket möglich,
sich über
eine Anzahl von Schlitzen zu erstrecken und in diesem Fall Frequenzen,
und in diesem Fall bleibt die Frequenz auf der das Paket gesendet wird
gleich auf der die dem Schlitz zugeordnet ist bei dem das Paket
begann. Ein Schlitz weist eine konstante Zeitdauer auf und dauert normalerweise
625 Mikrosekunden.
-
Bezug
nehmend auf die 3, wird ein typisches Funkpaket 30 dargestellt.
Das Funkpaket weist einen Start 32 auf und beinhaltet drei
getrennte Abschnitte. Ein erster Abschnitt beinhaltet einen Zugangskode 34,
ein zweiter Abschnitt beinhaltet einen Dateikopf bzw. Kopfteil 34 und
ein dritter Abschnitt beinhaltet Nutzdaten 38. Die Nutzdaten 38 weisen
einen Nutzdatenkopf 37 auf.
-
Bezug
nehmend auf 4, wird eine schematische Darstellung
einer Sende-Empfangseinheit gezeigt. Es sind nur so viele verschiedene
funktionale Blöcke
und Verbindungen in diesem Diagramm gezeigt, wie nötig sind,
um im Folgenden zu erklären, wie
eine Sende-Empfangseinheit
und das Kommunikationsnetzwerk arbeitet. Die Sende-Empfangseinheit 40 beinhaltet
eine Anzahl von funktionalen Elementen, einschließlich: eine
Antenne 46, einen Empfänger
(RX) 50, eine Synchronisierungseinrichtung (SYNC) 52,
einen Dateikopfdekodierer 54, eine Steuerung 60,
einen Speicher 56, einen Paketierer (packetiser) 42,
eine Uhr bzw. einen Taktgeber 68, eine Frequenzsprungsteuerung 48 und
einen Sender (TX) 44. Obzwar diese
Elemente als separate Elemente gezeigt sind, können sie tatsächlich zusammen
integriert sein und können
in Software oder in Hardware ausgeführt sein.
-
Daten
die in den Nutzdaten eines Paketes durch die Sende-Empfangseinheit 40 gesendet
werden sollen, werden als Datensignal 41, an den Paketierer 42 zugeführt. Steuerungsinformation,
die in den Nutzdaten eines Paketes gesendet werden soll, wird in
einem Nutzdatensteuerungssignal 87 zugeführt, das
durch die Steuerung 60 dem Paketierer 42 bereitgestellt
wird. Der Paketierer 42, empfängt auch ein Zugangskode-Steuerungssignal 69 und
ein Dateikopf-Steuerungssignal 71 von einer Steuerung 60, welche
entsprechend den Zugangskode 34 und den Dateikopf 36 steuert,
der an die Nutzdaten angehängt
ist um das Paket zu bilden. Der Paketierer 42 platziert
die Daten- oder Steuerungsinformation in ein Paket 30,
welches als ein Signal 43, dem Sender 44 zugeführt wird.
Der Sender 44 moduliert eine Trägerwelle, in Abhängigkeit
des Signals 43, um das gesendete Signal 45 zu
erzeugen, das zur Übertragung der
Antenne 46 zugeführt
wird. Die Frequenz der Trägerwelle
wird gesteuert, um eine Sequenz von Sprungfrequenzen (hop frequencies),
durch ein Übertragungsfrequenz-Steuerungssignal 47 zu
sein, welches durch die Frequenzsprungsteuerung 48 dem
Sender 44 zugeführt.
-
Die
Antenne 46 empfängt
ein Funksignal 51 und führt
es dem Empfänger 50 zu,
welcher das Funksignal 51, unter der Steuerung eines Empfangsfrequenz-Steuerungssignals 49 demoduliert,
welches durch die Frequenzsteuerung 48 bereitgestellt bzw.
zugeführt
wird, um ein digitales Signal 53 zu erzeugen. Das digitale
Signal 53 wird der Synchronisierungseinrichtung 52 zugeführt, welche
die Sende-Empfangseinheit 40 mit dem Zeitrahmen des Netzwerkes
synchronisiert. Die Synchronisierungseinrichtung wird ein Zugangskodesignal 81 zugeführt, welches
den Zugangskode des Paketes spezifiziert, das die Sende-Empfangseinheit
erwartet zu empfangen. Die Synchronisierungseinrichtung akzeptiert
diese empfangenen Funkpakete mit Zugangskodes, die mit den erwarteten
Zugangskodes übereinstimmen,
und weist die empfangenen Funkpakete mit Zugangskodes zurück, die
nicht mit dem erwarteten Zugangskode übereinstimmen. Eine gleitende
Zuordnung (sliding correlation) wird verwendet, um die Anwesenheit
und den Beginn des erwarteten Zugangskodes, in einem Funkpaket zu
identifizieren. Wenn das Funkpaket akzeptiert ist, wird das Funkpaket
an den Dateikopfdekodierer 54 als ein Signal 55 zugeführt und
ein Bestätigungssignal 79 wird zu
der Steuerung 60 zurückgesandt,
welches anzeigt, dass das Paket durch die Synchronisierungseinrichtung 52 akzeptiert
wurde. Das Bestätigungssignal 79,
wird von der Steuerung in einer Untereinheit verwendet, um den Takt
bzw. die Uhr der Untereinheit mit dem Takt der Haupteinheit zu resynchronisieren. Die
Steuerung vergleicht die Zeit zu der ein Funkpaket empfangen wurde
mit der Zeit, zu der erwartet wurde, ein Paket zu empfangen und
verschiebt ihre Zeitsteuerung, um die Differenz zu auszugleichen. Der
Dateikopfdekodierer 54 dekodiert den Dateikopf in das empfangene
Paket und liefert es als Dateikopfsignal 75, zu der Steuerung 60.
Der Dateikopfdekodierer 54 erzeugt ein Datenausgabesignal 57,
welches den Rest des Funkpaketes, die Nutzdaten 38 enthält, wenn
dies durch ein Nutzdatenakzeptanzsignal 77, das durch die
Steuerung 60 übertragen
wurde, erlaubt wird.
-
Der
Speicher 56 kann Anwendungen speichern.
-
Der
Betrieb der Einheit kann auch aus der 5 ersichtlich
werden, die einen Bluetooth-Protokollstapel
(protocol stack) 100 darstellt. Der Stapel 100 schließt, von
der Basis weg, die Basisschichten einschließlich der Funkfrequenzschicht 102,
der Basisband- und Verbindungs-Steuerungsschicht 104, die
Linkleiter-Protokollschicht (Link Manager Protocol Layer) 106,
und die logische Linksteuerungs- und Anpassungsschicht (L2CAP) 108 ein.
Die Schicht L2CAP 108 verbindet mit einer Anzahl von übereinander
liegenden Schichten 110, einschließend einer Internetschicht 112,
zum Bereitstellen eines TCP/IP Protokolls, eine Menschschnittstellen-Vorrichtungsschicht
(HID) 114 zur Kopplung mit der Benutzerschnittstelle (UI) 130 und
einer Funkfrequenz-Kommunikationsschicht
(RFCOMM) 116, welche serielle Ports eines PCs (com1, com2,
com3, usw.) emuliert. Jede dieser Schichten 112, 114 und 116 kann
direkt mit einer oder mehreren Anwendungen/Diensten 118 gekoppelt
werden, und sie sind in der Lage ihre Ausgabe so zu multiplexen,
dass Daten zu dem richtigen, von verschiedenen Anwendungen/Diensten,
gesendet werden. Die Schicht L2CAP 108 kann auch direkt mit
einer Anwendung oder einem Dienst verbunden werden.
-
In
den gegenwärtig
vorgeschlagenen Einheiten ermöglicht
das Basisband und die Linksteuerungsschicht 104, der körperlichen
bzw. physikalischen Funkfrequenzverbindung zwischen Einheiten, eine
Anfrage und einen Funkruf zu verwenden, um ihre Uhren und ihre Übertragungsfrequenzen
zu synchronisieren. Die Linkleiter-Protokollschicht (Link Manager) 106,
künftig
als Linkschicht 106 bezeichnet, ist für den Linkaufbau, zwischen
zwei Einheiten, einschließlich
Sicherheit, Steuerung der Paketgröße, Verbindungs- und Leistungsmodi
zuständig.
In dem Vorschlag, reagiert die Linkschicht 106, auf die
in den Linkleiter-Protokollpaketen empfangenen Nutzdaten.
-
L2CAP
ermöglicht
Protokollen höherer
Ebene bzw. übergeordnete
Protokollen, die Nutzdaten von empfangenen L2CAP-Datenpaketen zu
empfangen. Das L2CAP-Protokoll kann an Anwendungs- und höhere Protokollschichten
gekoppelt werden und überträgt Daten
zwischen sowohl übergeordneten Protokollen
und Diensten als auch der unteren Linkschicht 106.
-
Der
Nutzdatendateikopf 37, der Nutzdaten 38 in Paketen 30,
unterscheidet L2CAP Pakete von Linkleiter-Protokollpaketen. Gegenwärtig ist
es erforderlich, dass die Linkleiter-Protokollpakete durch die Linkschicht 106 ausgefiltert
werden sollen und nicht an übergeordnete
Schichten weitergeleitet werden.
-
Die
Bluetooth-Technik sollte Sicherheitsmaßnahmen, sowohl bei der Anwendungsschicht, als
auch bei der Linkschicht bereitstellen. Gegenwärtig sind in jeder Bluetootheinheit
die Sicherheitsmaßnahmen
der Linkschicht 106 standardisiert. Authentifizierungs-
und Verschlüsselungsprogramme
sind in auf eine einheitliche Weise in jede Vorrichtung, in die Linkschicht 106 implementiert.
-
Jede
Einheit speichert einen oder mehrere geheime Authentifizierungslink-Schlüssel, zur
Verwendung in der Kommunikation mit einer oder mehreren anderen
Einheiten. Normalerweise wird eine Einheit ständig einen Linkschlüssel für jede der
Einheiten, mit der sie kommunizieren möchte, speichern. Jeder Linkschlüssel ist
der Bluetooth ID der Einheit zugeordnet, mit der er gewohnt ist
zu kommunizieren.
-
Der
gespeicherte geheime Linkschlüssel wird
in einem Authentifizierungsprogramm verwendet, um die Identität der Einheit
mit der kommuniziert wird, zu identifizieren. Der gespeicherte gemeinsame geheime
Linkschlüssel
wird auch verwendet um einen Verschlüsselungsschlüssel zu
erzeugen. Der Verschlüsselungsschlüssel wird
abgeleitet aus dem Authentifizierungslink-Schlüssel, unterscheidet sich jedoch
von dem Authentifizierungslink-Schlüssel, und jedes Mal wenn eine
Verschlüsselung
verwendet wird, wird ein neuer Verschlüsselungsschlüssel unter Verwendung
eines Zufallszahlengenerators erzeugt.
-
Ein
Challenge-Response-Schema wird verwendet, um eine Einheit zu Authentifizieren.
Ein gültiges
Paar von Einheiten teilt denselben geheimen Linkschlüssel. Eine
erste Einheit erzeugt eine Zufallsnummer und fordert eine zweite
Einheit auf, sich selbst durch Liefern der Nummer an sie, zu Authentifizieren.
Die zweite Einheit schickt das Ergebnis einer Funktion zurück, welche
als ihre Argumente die Bluetooth ID der zweiten Einheit, die empfangene
Zufallsnummer und den Schlüssel,
der der ersten Einheit zugeordnet ist, welcher aber in der zweiten
Einheit gespeichert ist verwendet. Die erste Einheit verwendet dieselbe
Funktion um ein Ergebnis zu erzeugen das, wenn es mit dem Ergebnis,
welches von der zweiten Einheit empfangen wurde übereinstimmt, die zweite Vorrichtung
authentifiziert. Die Funktion in der ersten Einheit nimmt als ihre
Argumente die Bluethooth ID der zweiten Einheit, die zuvor erhalten
wurde, die Zufallsnummer und den Schlüssel, der der zweiten Einheit
zugeordnet ist, aber in der ersten Einheit gespeichert ist.
-
Die
Authentifizierungsprozedur geschieht in der Linkschicht jeder Einheit.
Sobald die Authentifizierung erfolgreich vervollständigt ist,
ist der Zugang zu der Protokollschicht, den Diensten und den Anwendungen
der Einheit uneingeschränkt.
-
Jedes
Mal wenn eine Verschlüsselung
benötigt
wird, wird eine Zufallsnummer erzeugt und ein Verschlüsselungsschlüssel wird
aus der Zufallsnummer und dem Authentifizierungsschlüssel für den Link
gebildet. Der Verschlüsselungsprozess
findet in der Linkschicht 106 statt.
-
Wenn
die zwei Vorrichtungen nicht vorher kommuniziert haben, wird kein
gemeinsamer Linkschlüssel
in den Vorrichtungen gespeichert sein und es ist erforderlich die
Vorrichtungen zu "paaren". Dies kann mittels
der Eingabe einer PIN-Nummer in eine Benutzerschnittstelle der ersten
Einheit und Eingeben derselben PIN in eine Benutzerschnittstelle
der zweiten Einheit durchgeführt
werden. Die PINs können
für die
Berechnung von temporären
initialen Authentifizierungslink-Schlüsseln verwendet werden, bis
zu der Berechnung eines dauerhaften geheimen Authentifizierungslink-Schlüssels, zur
Kommunikation zwischen den Vorrichtungen verwendet werden.
-
Ein
Problem mit dem gegenwärtig
vorgeschlagenen Sicherheitssystem ist, dass es unflexibel ist. Sobald
die Linkschicht 106 einer Vorrichtung genehmigt hat, auf
die Schichten über
ihr zuzugreifen, ist ihr Zugriff uneingeschränkt, mit Ausnahme von speziellen
Sicherheitsfunktionen, die in die Anwendungen selbst eingebaut sind.
-
"Bluetooth – The universal
radio interface for ad hoc, wireless connectivety" von Jaap Haartsen (D1)
beschreibt Frequenzsprungtechnologie und die Kanal-Paket und physikalische-
Linkdefinition, die die Bluetooth-Luft-Schnittstelle charakterisieren.
Dieses Dokument beschreibt auch die Netzwerkaspekte der Bloetooth-Technologie – Piconets,
Scatternets, Verbindungsvorgänge
und Inter-Piconet Kommunikation.
-
"Bluetooth: Vision,
Goals und Architecture" von
Jaap Haartsen et al. (D2), beschreibt die Vorstellung und die Ziele
des Bluetooth Programms und stellt die funkbasierte Technologie
vor.
-
Es
wäre wünschenswert
ein verbessertes, flexibleres Sicherheitssystem bereitzustellen.
-
Gemäß einem
Aspekt der vorliegenden Erfindung, wird eine Vorrichtung, wie in
Anspruch 1 beansprucht, bereitgestellt.
-
Gemäß einem
anderen Aspekt der vorliegenden Erfindung, wird ein Verfahren, wie
in Anspruch 27 beansprucht, bereitgestellt.
-
Ausführungsformen
der Erfindung liefern eine flexible Sicherheitsarchitektur, die
Zugangskontrollen durchführt,
wenn die Verbindung zu einem Dienst erbeten wird, einschließlich, falls
erforderlich, Authentifizierung und Verschlüsselung zu der Zeit des Erbetens
des Zugangs auf die Anwendung. Die Zugangssteuerungsmittel können eine
Multiplex-Protokollschicht (multiplexing protocol layer) und die
Authentifizierungsmittel können
die Linkschicht sein.
-
Es
ist bevorzugt dass eine Vorrichtung die Zugang zu einem Dienst ersucht,
einmal und nicht mehrere Male authentifiziert wird. Dies kann durch das
Bereitstellen der Anfrage für
den Zugriff auf einen Dienst geschehen, die nur einmal entschieden
bzw. verhandelt bzw. ausgehandelt wurde, vorzugsweise in Erwiderung
auf eine Abfrage der höchst
möglichen Multiplex-Schicht
(diese welche direkt den Dienst koppelt).
-
Zugriff
auf einen Dienst kann in Abhängigkeit von
den Sicherheitsanforderungen des erbetenen Dienstes und/oder dem
Vertrauenslevel bzw. -niveau der Vorrichtung die den Dienst ersucht,
entschieden werden. Die Sicherheitsarchitektur wird ohne die Änderung
der Basisfunktionen (Paarung, Authentifizierung, Verschlüsselung),
welche in den Authentifizierungsmitteln (Linklevel) bleiben, implementiert.
-
Gemäß einem
weiteren Aspekt der vorliegenden Erfindung, wird eine Vorrichtung,
wie in Anspruch 29 beansprucht, bereitgestellt.
-
Gemäß Ausführungsformen
der Erfindung, hängt
der Zugang zu Diensten von dem Vertrauenslevel der Vorrichtung,
die versucht auf den Dienst zuzugreifen ab. Eine vertrauenswürdige Vorrichtung hat,
sobald ihre Identität
bestätigt
ist, Zugriff auf alle Dienste/Anwendungen. Eine nicht vertrauenswürdige Vorrichtung
kann jedes Mal eine Benutzerautorisierung benötigen, wenn sie versucht auf
einen Dienst zuzugreifen. Deshalb wird die Gestattung eines Zugriffs
einer nicht vertrauenswürdigen
Vorrichtung auf einen Dienst, nicht die anderen Dienste für einen
Zugriff freigeben. Eine separate Benutzerauthentifizierung ist erforderlich,
um auf jeden der anderen Dienste zugreifen zu können. Zum besseren Verständnis der
vorliegenden Erfindung und um zu Vertehen, wie diese verwirklicht
werden kann, wird lediglich beispielsweise auf beigefügte Zeichnungen Bezug
genommen, in denen:
-
1 ein
Kommunikationsnetzwerk einschließlich einer Haupt- und Untereinheiten
darstellt;
-
2 den
Zeitrahmen des Kommunikationsnetzwerks darstellt;
-
3 ein
Funkpaket darstellt;
-
4 eine
Sende-Empfangseinheit darstellt, die geeignet ist, als Haupt- oder
Untereinheit verwendet zu verwenden;
-
5 einen
Protokollstapel darstellt, der von einer Sende-Empfangseinheit verwendet
wird;
-
6 eine
Sicherheitsarchitektur darstellt;
-
7a und 7b entsprechend
eine Dienstdatenbank und eine Vorrichtungsdatenbank darstellen;
-
8a und 8b einen
Informationsfluss in der Sicherheitsarchitektur darstellen, wenn
durch eine entsprechend vertrauenswürdige bzw. nicht vertrauenswürdige Vorrichtung,
ein Zugang zu einem nicht offenen Dienst erbeten wird;
-
9 bis 11 Flussdiagramme
sind, die den Entscheidungsprozess darstellen, der durch die Steuerung
durchgeführt
wird, um zu bestimmen ob eine Vorrichtung auf einen Dienst zugreifen
sollte.
-
6 stellt
eine Sicherheitsarchitektur gemäß einer
Ausführungsform
der Erfindung dar. Der Bluetooth-Protokoll-Stapel 100 ist
dargestellt. Er enthält
niedrigere Schichten, einschließlich
einer Linkschicht 106, einer untersten Multiplex-Steuerungschicht 108,
wie die L2CAP-Schicht,
eine höhere
Multiplex-Protokollschicht 110, wie die RFCOMM-Schicht 116 und
eine Anwendungsschicht 118. Ebenfalls dargestellt sind
die Benutzerschnittstelle (User Interface (UI)) 130, ein
Sicherheits-Manager 120, eine Dienstdatenbank 122 und
eine Vorrichtungsdatenbank 124.
-
Die
Linkschicht 106 ist direkt mit dem niedrigsten Multiplex-Protokoll 108 verbunden.
Zugang zu dem höheren
Multiplex-Protokoll 110 und den Anwendungen/Diensten 118 der
Linkschicht, kann nur über
die niedrigste Multiplex-Protokollschicht 108 erreicht
werden.
-
Die
niedrigste Multiplex-Protokollschicht 108 ist direkt mit
einem höheren
Multiplex-Protokoll 110 und
auch direkt mit einer Anwendung 1183 verbunden.
Auf die Anwendung 1183 , kann direkt
durch das niedrigste Multiplex-Protokoll zugegriffen werden, wohingegen
auf die Anwendungen 1181 und 1182 nur über das höhere Multiplex-Protokoll 110 zugegriffen werden
kann, welches direkt mit den Anwendungen 1181 und 1182 verbunden ist.
-
Wenn
ein Paket durch eine Einheit empfangen wird, werden die Nutzdaten
des Pakets an die niedrigste Multiplex-Protokollschicht 108 weitergegeben.
Die Nutzdaten werden nicht durch die Linkschicht 106 gefiltert.
Wenn das empfangene Paket eine Anforderung für den Zugriff auf einen/eine Dienst/Anwendung
ist, wird der Zugriff auf diese Dienstanwendung entschieden.
-
Die
niedrigste Multiplex-Protokollschicht 108, sendet eine
Abfrage an den Sicherheitsmanager und fragt ob Zugang zu einer höheren Einheit, wie
der höheren
Protokollschicht 110 oder der Anwendung 1183 gewährt werden soll. Diese Abfrage identifiziert
den Dienst/die Anwendung, zu der Zugang benötigt wird und die Bluetooth
ID der Vorrichtung die Zugang anfordert. Der Sicherheits-Manager bestimmt,
ob Zugang zu der nächsten
Einheit erlaubt werden soll, und kann die Linkschicht 106 steuern, um
eine Authentifizierung voranzutreiben. Wenn die abfragende Protokollschicht
nicht direkt mit dem erbetenen Dienst verbunden ist, sendet der
Sicherheitsmanager automatisch ein Gestattungssignal an die abfragende
Protokollschicht 108, welche dann den Zugriff auf eine
höhere
Protokollschicht 110 erlaubt. Wenn die abfragende Protokollschicht 108 direkt
mit dem erbetenen Dienst 1183 verbunden
ist, verhandelt der Sicherheits-Manager um zu bestimmen, ob Zugriff
gestattet werden soll. Falls der Zugriff gestattet wird, sendet
er ein Genehmigungssignal an die unterste Multiplex-Protokollschicht 108,
welche dann auf die Anwendung 1183 zugreift.
Wenn der Zugriff verweigert wird, sendet der Sicherheits-Manager 120 ein
Zurückweisungssignal
an das unterste Multiplex-Protokoll 108, welches den Zugriff
der anfordernden Einheit auf den gewünschten Dienst verhindert.
-
Die
Anfrage auf einen Dienst zugreifen zu können (Anwendung 1181 oder 1182 ),
welche bei einem höheren
Multiplex-Protokoll 110 von dem untersten Multiplex-Protokoll 108 empfangen
wird, veranlasst die Schicht 110, eine Abfrage an den Sicherheits-Manager
zu senden, mit der Bitte ob Zugriff auf eine höhere Einheit, wie eine höhere Multiplex-Protokollschicht
(nicht dargestellt), oder auf eine Anwendung 1181 oder 1182 gewährt werden soll. Diese Abfrage
identifiziert den/die Dienst/Anwendung, auf den/die der Zugriff
benötigt
wird und die Bluetooth ID der Vorrichtung, die den Zugriff anfordert.
Falls die abfragende Protokollschicht 110 nicht direkt
mit dem angeforderten Dienst verbunden ist, sendet der Sicherheits-Manager
automatisch ein Freigabesignal an die abfragenden Protokollschicht 108,
welche dann einen Zugriff auf eine höhere Protokollschicht gestattet.
Falls die anfragende Protokollschicht 110 direkt mit dem
angeforderten Dienst verbunden ist, verhandelt der Sicherheits-Manager,
um zu Bestimmen, ob der Zugriff gestattet werden sollte. Falls der Zugriff
gestattet ist, sendet er ein Genehmigungssignal an die abfragende
Protokollschicht 110, welche dann auf die angeforderte
Anwendung zugreift. Falls der Zugriff verweigert wird, sendet der
Sicherheits-Manager 120, ein Zurückweisungssignal an die abfragende
Protokollschicht 110, welches den Zugriff der abfragenden
Einheit, auf den erbetenen Dienst verhindert.
-
Das
unterste Multiplex-Protokoll 108 macht für jede empfangene
Anforderung für
den Zugriff auf einen Dienst, eine Anfrage an den Sicherheits-Manager.
Die Anforderung darf nur zu einer höheren Schicht oder einem höheren Dienst
fortschreiten, wenn der Zugriff durch den Sicherheits-Manager gewährt ist.
Jede der Multiplex-Protokollschichten, durch die eine Anforderung
für den
Zugriff auf einen Dienst geleitet wird, macht jedes Mal wenn eine
Anforderung empfangen wird, eine Abfrage bzw. Anfrage an den Sicherheits-Manager.
Die Anforderung darf nur in eine höhere Schicht fortschreiten,
wenn der Zugriff durch den Sicherheits-Manager genehmigt wird. Deshalb
kann auf keine/kein Anwendung/Dienst durch eine Einheit, ohne mindestens eine
Entscheidung des Sicherheits-Managers, zugegriffen werden.
-
Der
Sicherheits-Manager 120 ist ein Softwaremodul mit Schnittstellen
zu Protokollen 108 und 110, Diensten/Anwendungen 118,
Der Benutzerschnittstelle 130, den Datenbanken 122 und 124 und der
Linkschicht 106. Der Sicherheits-Manager steuert die Linkschicht
und die Durchführung
seiner Standardfunktionen wie Authentifizierung, Verschlüsselung
und Paarung. Der Sicherheits-Manager kennt die Identität der Dienste
auf die jede der Protokollschichten direkten Zugriff hat.
-
Der
Sicherheitsmanager kann seine Schnittstellen zu der Dienstdatenbank 122,
der Vorrichtungsdatenbank, dem Link-Manager und der Benutzerschnittstelle 130 verwenden,
um die oben erwähnte
Entscheidung zu treffen. Eine beispielhafte Dienstdatenbank ist
in der 7a dargestellt und eine beispielhafte
Vorrichtungsdatenbank ist in der 7b dargestellt.
Wenn der Sicherheits-Manager eine Abfrage von den Protokollschichten
oder -Anwendungen empfängt,
fragt er die Datenbanken 122 und 124 ab. Er greift
auf die der/dem erbetenen Anwendung/Dienst zugeordneten Felder,
der Dienstdatenbank zu und greift auf die Felder, die der Bluetooth ID
der anfragenden Einheit, von der Vorrichtungsdatenbank 124 zugeordnet
sind zu.
-
Die
Datenbanken werden verwendet um verschiedene Sicherheitslevels für Vorrichtungen
und Dienste zu bestimmen. Jede Einheit weist eine Vorrichtungsdatenbank
auf, die Information über
andere Vorrichtungen speichert, mit denen sie zuvor kommuniziert
hat. Die Vorrichtungsdatenbank weist einen Eintrag für jede Bluetooth
ID der anderen Vorrichtungen auf. Jeder Eintrag weist zugeordnete
Felder auf, einschließlich
einem ersten Feld, um anzuzeigen, ob diese Vorrichtung vertrauenswürdig ist
oder nicht vertrauenswürdig
ist, einem zweiten Feld zum Speichern des gegenwärtigen Linkschlüssels zur
Kommunikation mit diesen Vorrichtungen und einem dritten Feld um
anzuzeigen, ob eine erfolgreiche Authentifizierung mit der Vorrichtung,
in der gegenwärtigen
Sitzung stattgefunden hat.
-
Das
Vertrauenswürdig-Feld
ist binär
und daher gibt es zwei Sicherheitslevels für Vorrichtungen, vertrauenswürdig und
nicht-vertrauenswürdig.
Wenn eine erste Einheit eine zweite Einheit als vertrauenswürdig in
ihrer Vorrichtungsdatenbank verzeichnet, dann kann diese zweite
Einheit nach Authentifizierung auf alle Dienste der ersten Einheit
zugreifen. Wenn die erste Einheit die zweite Einheit als nicht vertrauenswürdig (unvertrauenswürdig) verzeichnet, kann
die zweite Einheit, in Abhängigkeit
von der Dienstdatenbank in der ersten Einheit beschränkten Zugriff
auf die Dienste der ersten Einheit haben.
-
Jede
Einheit weist eine Dienstdatenbank (7a) auf,
die Information über
die Anwendungen und Dienste speichert, die in dieser Einheit für den Zugriff
von einer anderen Einheit zugänglich
sind. Die Dienstdatenbank weist einen Eintrag für jede verfügbare Anwendung oder jeden
verfügbaren
Dienst auf. Jeder Eintrag weist ihm zugeordnete Felder auf, einschließlich einem
ersten Feld zum Anzeigen ob dieser Dienst offen oder nicht offen
ist und einem zweiten Feld zum Anzeigen ob eine Verschlüsselung
erforderlich ist. Diese Sicherheitsinformation kann durch die Dienste/Anwendungen
an den Sicherheits-Manager, während
eines Registrierungsvorgangs, geliefert werden.
-
Der
Sicherheitsmanager bestimmt, im Bezug auf einen Dienst, drei Levels
der Sicherheit. Was dass für
ein Level ist, hängt
von der Sicherheitsbewertung des Dienstes (offen/nicht offen) und
der Sicherheitsbewertung der anfragenden Vorrichtung (vertrauenswürdig/unvertrauenswürdig) ab.
Wenn die Sicherheitsbewertung des Dienstes offen ist, besteht keine
Abhängigkeit
davon, ob die anfragende Vorrichtung vertrauenswürdig oder unvertrauenswürdig ist
und die offenen Dienste sind für
alle Vorrichtungen offen.
-
Wenn
die Sicherheitsbewertung des Dienstes nicht offen ist, besteht eine
Abhängigkeit
von dem Vertrauenswürdigkeitslevel
der Vorrichtung, die Zugriff anfordert. Wenn die anfordernde Vorrichtung vertrauenswürdig ist,
muss die Vorrichtung die Zugriff auf den Dienst anfordert authentifiziert
werden, bevor der Zugriff auf den Dienst gewährt wird. Wenn die anfordernde
Vorrichtung unvertrauenswürdig
ist, dann muss die Vorrichtung die Dienste ersucht, authentifiziert
werden und dann muss eine ausdrückliche
Benutzerautorisierung gegeben werden, bevor der Zugriff auf den
Dienst genehmigt wird.
-
Unter
Bezugnahme auf die Flussdiagramme in den 9 bis 11,
bestimmt der Sicherheits-Manager,
nachdem er eine Abfrage 200 von den Multiplex-Protokollschichten 108 oder 110 empfängt, ob
die abfragende Multiplexschicht direkt mit dem (an den) erbetenen
Dienst 201 verbunden (angekoppelt) ist. Wenn die Abfrage
von der Protokollschicht einen Dienst betrifft, mit dem die Protokollschicht
nicht direkt, aber indirekt durch höhere Multiplex-Protokollschichten
verbunden ist, erlaubt der Sicherheits-Manager, durch das Senden
eines Gewährungssignals
an die abfragende Protokollschicht, den Durchgang der Anfrage zu
höheren
Multiplex-Protokollschichten. Wenn die Abfrage der abfragenden Protokollschicht
einen Dienst betrifft, mit dem die abfragende Protokollschicht direkt
verbunden ist, führt der
Sicherheits-Manager eine Entscheidung bzw. Verhandlung durch, um
zu bestimmen, ob der Zugriff auf den Dienst erlaubt oder verweigert
werden sollte.
-
Die
Verhandlung wird durch den Sicherheits-Manager 202 initiiert,
der auf die Datenbanken 122 und 124, zugreift
die identifizieren, ob die anfordernde Vorrichtung vertrauenswürdig ist
und identifizieren, ob der angeforderte Dienst offen ist 204.
-
Falls
der angeforderte Dienst ein offener Dienst ist, gestattet der Sicherheits-Manager
Zugriff 216, durch das Senden eines Gewährungs- bzw. Gestattungssignals
an die abfragende Protokollschicht, die dann auf die angefragte
Anwendung zugreift. Falls der erbetene Dienst kein offener Dienst
ist, wird die Verhandlung fortgeführt.
-
Falls
die ersuchende Vorrichtung vertrauenswürdig ist, ist lediglich eine
Authentifizierung erforderlich. Falls die Authentifizierung der
ersuchenden Vorrichtung in dieser Sitzung 206 nicht stattgefunden hat
(bestimmt durch das 3. Feld des Eintrags für die anfordernde Vorrichtung
in der Vorrichtungsdatenbank), ordnet der Sicherheits-Manager der
Linkschicht 106 dann an, eine Authentifizierung 208 durchzuführen. Unter
Bezugnahme auf 10, stellt der Sicherheitsmanager
den gegenwärtigen
Schlüssel
(falls überhaupt),
der in dem 2. Feld des Datenbankeingangs gespeichert ist, der Linkschicht
bereit. Die Linkschicht führt
die Authentifizierung (falls nötig mit
Paarung) durch und informiert den Sicherheits-Manager, ob die Authentifizierung
erfolgreich war. Die Prozesse des Paarens 222, Überprüfung ob der
Linkschlüssel
gültig
ist 224 und erzeugen eines Linkschlüssels sind von der Implementierung
abhängig
und werden nicht weiter beschrieben. Falls die Authentifizierung
nicht erfolgreich ist, sendet 218 der Sicherheits-Manager
ein Verweigerungssignal an das abfragende Protokoll, wodurch der
Zugriff auf den angefragten Dienst verhindert wird. Wenn die Authentifizierung
erfolgreich ist, sendet die Linkschicht den gültigen bzw. gegenwärtigen Linkschlüssel auch
an die abfragende Vorrichtung zurück. Der Sicherheits-Manager
aktualisiert dann 210 die Vorrichtungsdatenbank, platziert
den gegenwärtigen Linkschlüssel in
dem zweiten Feld des Datenbankeintrags und zeigt in dem dritten
Feld des Eintrags an, dass eine erfolgreiche Authentifizierung in
dieser Sitzung, stattgefunden hat. Der Sicherheits-Manager bestimmt
dann 212, ob die anfordernde Vorrichtung eine vertrauenswürdige Vorrichtung
ist. Wenn die Vorrichtung vertrauenswürdig ist, sendet 216 der
Sicherheits-Manager,
ein Gestattungssignal an das abfragende Protokoll, wodurch er den
Zugriff auf den Dienst erlaubt.
-
Falls
die ersuchende Vorrichtung nicht vertrauenswürdig ist, ist eine Authentifizierung
und eine Benutzerautorisierung erforderlich. Falls die Authentifizierung
der anfordernden Vorrichtung in dieser Sitzung 206 nicht
geschehen ist, (bestimmt von dem 3. Feld des Eintrags für die anfordernde
Vorrichtung in der Vorrichtungsdatenbank), ordnet der Sicherheits-Manager
der Linkschicht 106 an, eine Authentifizierung 208 durchzuführen. Der Sicherheits-Manager
stellt der Linkschicht den gegenwärtigen Schlüssel, (falls überhaupt)
bereit, der in dem 2. Feld des Datenbankeintrags gespeichert ist.
Die Linkschicht führt
die Authentifizierung (falls erforderlich mit Paarung) durch, wie
zuvor in Bezug auf 10 beschrieben und informiert
den Sicherheitsmanager, wenn die Authentifizierung erfolgreich war.
Falls die Authentifizierung nicht erfolgreich war, sendet 218 der Sicherheits-Manager,
ein Ablehnungssignal an das abfragende Protokoll, wodurch der Zugriff
auf den Dienst verhindert wird. Wenn die Authentifizierung erfolgreich
ist, sendet die Linkschicht den gegenwärtigen Linkschlüssel an
die abfragende Vorrichtung zurück
und der Sicherheits-Manager
aktualisiert die Vorrichtungsdatenbank 210, platziert den
gegenwärtigen
Linkschlüssel
in dem zweiten Feld des Datenbankeintrags und zeigt in dem dritten
Feld des Eintrags an, dass eine erfolgreiche Authentifizierung in dieser
Sitzung stattgefunden hat. Der Sicherheits-Manager prüft 212 den
vertrauenswürdig-Status
der anfordernden Vorrichtung. Wenn die Vorrichtung nicht vertrauenswürdig ist,
versucht der Sicherheits-Manager dann die Benutzerautorisierung 214 zu
bekommen, wie in 11 dargestellt. Der Sicherheits-Manager steuert 230 die
Benutzerschnittstelle 130, um dem Benutzer anzuzeigen,
dass eine aktive Handlung erforderlich ist, um einer anfordernden
Vorrichtung Zugriff auf einen Dienst zu gewähren. Der Dienst und/oder die
ersuchende Vorrichtung können auf
einem Bildschirm identifiziert werden. Der Benutzer kann dem Zugriff
zustimmen oder widersprechen. Eine Zustimmung veranlasst den Sicherheits-Manager,
ein Gestattungssignal an die abfragende Protokollschicht zu geben 216,
wodurch der Zugriff auf den angeforderten Dienst gestattet wird.
Ein Widerspruch veranlasst den Sicherheits-Manager, ein Zurückweisungssignal
an das abfragende Protokoll zu geben 218, wodurch der Zugriff
auf den angeforderten Dienst verhindert wird. Die Tatsache dass
eine Benutzerautorisierung gegeben wurde, wird nicht aufgezeichnet
und der Zugriff gilt deshalb nur einmal. Der Sicherheits-Manager
kann dann als Alternative dem Benutzer die Gelegenheit bieten 232,
den Vertrauensstatus der anfordernden Vorrichtung, mit einer anschließenden Aktualisierung 234 der
Vorrichtungsdatenbank, von unvertrauenswürdig auf vertrauenswürdig zu ändern.
-
Falls
eine Verschlüsselung
zusätzlich
zu einer Authentifizierung erforderlich ist, steuert der Sicherheits-Manager
die Linkschicht 106, um diese durchzuführen, bevor er eine Verbindung
mit der/dem angeforderten Anwendung/Dienst getattet.
-
Die
Anwendungen/Dienste 118 und das höhere Multiplex-Protokoll 110 müssen ihre
Multiplex-Verfahren bei dem Sicherheits-Manager so registrieren,
dass er bestimmen kann, welche/welcher Anwendung/Dienst direkt mit
jeder Protokollschicht verbunden ist.
-
Der
Prozess des Zugriffs auf einen Dienst, unter Verwendung einer vertrauenswürdigen Vorrichtung,
ist weiter in 8a dargestellt. Die Protokollschicht
ist direkt mit einem Dienst verbunden,
-
- 1
- Anfordern
einer Verbindung zu der Protokollschicht
- 2
- Falls
eine Zugangssteuerung bei dieser Protokollschicht geschieht, dann
Senden einer Abfrage an den Sicherheits-Manager
- 3
- Sicherheits-Manager
liest Dienstdatenbank aus
- 4
- Sicherheits-Manager
liest Vorrichtungsdatenbank aus
- 5
- Sicherheits-Manager
führt eine
Standardauthentifizierung (und möglicherweise
eine Verschlüsselung)
in der Linkschicht durch
- 6
- Sicherheits-Manager
gewährt
Zugriff oder beendet den Link
- 7
- Protokollschicht
fährt fort
die Verbindung durch Kontaktieren höherer Protokollschichten/Dienste
aufzubauen
-
Der
Prozess des Zugriffs auf einen Dienst unter Verwendung von unvertrauenswürdigen Vorrichtungen
wird weiter in 8b dargestellt. Die Protokollschicht
ist direkt mit einem Dienst verbunden.
-
- 1
- Anfordern
einer Verbindung zu der Protokollschicht
- 2
- Falls
eine Zugangssteuerung bei dieser Protokollschicht geschieht, dann
Senden einer Abfrage an den Sicherheits-Manager
- 3
- Sicherheits-Manager
liest Dienstdatenbank aus
- 4
- Sicherheits-Manager
liest Vorrichtungsdatenbank aus
- 5
- Sicherheits-Manager
führt eine
Standardauthentifizierung (und möglicherweise
eine Verschlüsselung)
in der Linkschicht durch
- 6
- Sicherheits-Manager
erfragt manuelle Benutzerautorisierung
- 7
- Sicherheits-Manager
kann eine Vorrichtungsdatenbank aktualisieren (vertrauenswürdig?)
- 8
- Sicherheits-Manager
gewährt
Zugriff oder beendet den Link
- 9
- Protokollschicht
fährt fort
die Verbindung durch Kontaktieren höherer Protokollschichten/Dienste
aufzubauen
-
In
dieser Ausführungsform
wird die Authentifizierung (5), vor der Autorisierung (6)
durchgeführt. Es
wäre natürlich möglich, eine
Autorisierung (6), vor der Authentifizierung (5)
durchzuführen.
-
Die
vorangehende Beschreibung beschreibt eine bevorzugte Implementierung
der beanspruchten Erfindung in einer bevorzugten Anwendung, nämlich einem
Funkfrequenz-Netzwerk
mit niedriger Leistung (low power radio frequency communications
network) gemäß dem Bluetooth-Standard.
Allerdings sollte wahrgenommen werden, dass andere Implementierungen
und Anwendungen verwendet werden können, ohne von dem Schutzumfang
der beanspruchten Erfindung abzuweichen.
-
Insbesondere
ist in der Ausführungsform
beschrieben, dass ob eine Vorrichtungsauthentifizierung erforderlich
ist oder nicht, einfach von dem angeforderten Dienst und dem Inhalt
der Dienstdatenbank abhängt,
insbesondere, ob der Dienst offen oder nicht offen ist. Ob eine
Benutzerautorisierung erforderlich ist oder nicht, hängt von
dem erforderlichen Dienst und dem Inhalt der Dienstdatenbank ab, insbesondere,
ob der Dienst offen oder nicht offen ist und abhängig von der Identität der Vorrichtung,
die Zugriff anfordert und dem Inhalt der Vorrichtungsdatenbank,
insbesondere, ob die anfragende Vorrichtung vertrauenswürdig oder
nicht vertrauenswürdig ist.
-
Es
wäre natürlich möglich eine
Vorrichtungsauthentifizierung, alleine oder zusätzlich, abhängig von dem Vertrauenswürdigkeitsstatus
der Vorrichtung durchzuführen,
die den Dienst anfordert. Es wäre
auch möglich
eine Benutzerauthentifizierung, alleine oder zusätzlich, abhängig von dem angeforderten
Dienst durchzuführen,
sodass z.B. eine Benutzerautorisierung für eine unvertrauenswürdige Vorrichtung,
die auf einen bestimmen Dienst, abhängig von den gespeicherten
Merkmalen des Dienstes zugreift, erforderlich ist oder nicht.
-
In
den obigen Ausführungsformen
wurde der Betrieb der Sicherheitsarchitektur in Bezug auf eine Vorrichtung
beschrieben, die Zugriff auf einen Dienst in der 'sicheren' Vorrichtung anfordert.
Die Sicherheitsarchitektur kann in beiden Richtungen betrieben werden,
sodass Information nicht von der 'sicheren' Vorrichtung an eine andere Vorrichtung,
ohne eine Entscheidung die durch den Sicherheits-Manager gemacht
wurde, gesendet wird. Eine Protokollschicht, vorzugsweise die höchste mögliche Multiplex-Protokollschicht
und der Sicherheits-Manager zusammen entscheiden bzw. verhandeln,
ob die Information gesendet wird oder nicht. Diese Entscheidung kann
eine Authentifizierung und/oder Autorisierung, wie oben beschrieben,
erfordern.