-
PRIORITÄTSANSPRUCH
-
Die vorliegende Anmeldung basiert auf der und beansprucht Priorität über die provisorische US-Patentanmeldung 62/009,998, eingereicht am 10. Juni 2014 und der bzw. die provisorische US-Patentanmeldung 62/010,058, eingereicht am 10. Juni 2014, welche hierin beide zur Bezugnahme beinhaltet sind.
-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung betrifft im Allgemeinen das Erzeugen und Verwenden von flüchtigen Kennungen und Message Integrity Codes. Im Einzelnen bezieht sich die vorliegende Offenbarung auf die Erzeugung und Verwendung von flüchtigen Kennungen und Message Integrity Codes im Zusammenhang mit einem System, das mehrere Beacon-Vorrichtungen, mindestens eine Überwachungseinheit und mindestens eine Verifizierungseinheit aufweist.
-
Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
-
HINTERGRUND
-
Es gibt bestimmte Systeme, bei denen eine erste Vorrichtung Informationen bereitstellt (z. B. unter Verwendung einer Kurzbereichs-Drahtloskommunikationsvorrichtung sendet), die die erste Vorrichtung öffentlich identifizieren. Eine zweite Vorrichtung kann die Informationen empfangen und das Kenntnis über die Identität der ersten Vorrichtung und Nähe zu der ersten Vorrichtung für verschiedene Zwecke verwenden, die Kommunikation, Asset Tracking, Einzelhandelsidentifikation, Sicherheit, Ortsbestimmung usw. beinhalten. Diese Konfiguration kann bei vollständig öffentlichen und offenen Einstellungen nützlich sein, bei denen die Identität und Präsenz der Vorrichtung nicht aus irgendeinem Grund verborgen werden muss.
-
Jedoch kann es in vielen Situationen nicht gewollt sein, dass die Identität und Präsens der ersten Vorrichtung vollständig transparent und öffentlich verfügbar ist. Stattdessen kann es wünschenswert sein, dass nur bestimmte Individuen oder Vorrichtungen fähig sind, die erste Vorrichtung zu identifizieren oder anderweitig spezifische Informationen, die mit der ersten Vorrichtung assoziiert sind, zu empfangen.
-
Allerdings kann diese Konfiguration anfällig für Identitätsbetrug oder andere Spoofing-Angriffe sein. Da die erste Vorrichtung ihre identifizierenden Informationen öffentlich sendet, kann beispielsweise eine betrügerische Vorrichtung die gesendeten identifizierenden Informationen aufzeichnen und wiedergeben, wodurch die zweite Vorrichtung fälschlicherweise annimmt, dass die betrügerische Vorrichtung die erste Vorrichtung ist. Diese Anfälligkeit für Identitätsbetrug kann die Effizienz des Systems erheblich schädigen.
-
Ferner kann die erste Vorrichtung, in einigen Systemen, unfähig sein oder es ihr anderweitig untersagt sein, komplexere Kommunikationen mit anderen Vorrichtungen durchzuführen, um ihre Interaktionen zu validieren.
-
Daher kann eine Verwendung von verschleierten Kennungen und Message Integrity Codes, die die Identität der sendenden Vorrichtung authentifizieren, wünschenswert sein. Im Einzelnen können zeitbasierte flüchtige Kennungen und Message Integrity Codes besonders vorteilhaft sein.
-
KURZDARSTELLUNG
-
Aspekte und Vorteile der vorliegenden Offenbarung sind in der folgenden Beschreibung teilweise dargelegt oder können aus der Beschreibung deutlich werden oder können durch praktische Umsetzung der Ausführungsformen der vorliegenden Offenbarung erlernt werden.
-
Ein beispielhafter Aspekt der vorliegenden Offenbarung bezieht sich auf ein computerimplementiertes Verfahren bzw. System zur Authentifizierung von Beacon-Vorrichtungen. Das Verfahren beinhaltet Empfangen, durch ein oder mehrere Computergeräte, einer statischen Kennung und eines Message Integrity Codes von einer Überwachungseinheit. Die Überwachungseinheit hat zuvor die statische Kennung und den Message Integrity Code von einer Beacon-Vorrichtung empfangen. Der Message Integrity Code ist eine zeitlich variierte Verschleierung der statischen Kennung, die mit der Beacon-Vorrichtung assoziiert ist. Die Operationen beinhalten Bestimmen, durch die einen oder mehreren Computergeräte, einer Gültigkeit des Message Integrity Codes durch Abgleichen des Message Integrity Codes mit mehreren erwarteten Message Integrity Codes. Wenn der Message Integrity Code als gültig bestimmt wird, beinhalten die Operationen Bereitstellen, durch die einen oder mehreren Computergeräte, einer Authentifizierung der Beacon-Vorrichtung für die Überwachungseinheit.
-
Ein anderer beispielhafter Aspekt der vorliegenden Offenbarung bezieht sich auf ein computerimplementiertes Verfahren bzw. System zum Erzeugen flüchtiger Kennungen. Das Verfahren bzw System beinhaltet Bestimmen, durch ein oder mehrere Computergeräte, einer aktuellen Zeitzählung. Das Verfahren bzw. System beinhaltet Bestimmen, durch die einen oder mehreren Computergeräte, einer zeitlich modifizierten Kennung mindestens teilweise basierend auf einer statischen Kennung und der aktuellen Zeitzählung. Das Verfahren bzw. System beinhaltet Bestimmen, durch die einen oder mehreren Computergeräte, einer flüchtigen Kennung mindestens teilweise basierend auf der zeitlich modifizierten Kennung und einem Rotationsschlüssel.
-
Ein anderer beispielhafter Aspekt der vorliegenden Offenbarung bezieht sich auf ein System zum Verwenden von flüchtigen Kennungen. Das System beinhaltet mehrere Beacon-Vorrichtungen. Mehrere statische Kennungen sind jeweils mit den mehreren Beacon-Vorrichtungen assoziiert. Jede der mehreren Beacon-Vorrichtungen ist konfiguriert, periodisch eine flüchtige Kennung basierend auf ihrer jeweiligen statischen Kennung und einer aktuellen Zeitzählung zu bestimmen. Das System beinhaltet eine Überwachungseinheit, die konfiguriert ist, eine erste flüchtige Kennung von einer ersten Beacon-Vorrichtung der mehreren Beacon-Vorrichtungen zu empfangen. Das System beinhaltet eine Verifizierungseinheit, die konfiguriert ist, die erste flüchtige Kennung von der Überwachungseinheit zu empfangen und eine Identität der ersten Beacon-Vorrichtung durch Auffinden der ersten flüchtigen Kennung in einem vorberechneten Zwischenspeicher flüchtiger Kennungen zu bestimmen. Die erste flüchtige Kennung ist eine zeitlich variierte Verschleierung der statischen Kennung, die mit der ersten Beacon-Vorrichtung assoziiert ist. Die erste flüchtige Kennung wurde unter Verwendung einer Verschleierungsfunktion erzeugt, die nur der ersten Beacon-Vorrichtung und der Verifizierungseinheit bekannt ist, sodass die Überwachungseinheit die Identität der ersten Beacon-Vorrichtung nicht unabhängig von Kommunikation mit der Verifizierungseinheit berechnen kann.
-
Diese und andere Funktionen, Aspekte und Vorteile der vorliegenden Offenbarung lassen sich mit Bezug auf die nachfolgende Beschreibung und hinzugefügte Ansprüche besser verstehen. Die zugehörigen Zeichnungen, die in diese Spezifikation einbezogen sind und einen Teil dieser Spezifikation darstellen, veranschaulichen Ausführungsformen der vorliegenden Offenbarung und dienen, zusammen mit der Beschreibung, zur Erklärung der Prinzipien der vorliegenden Offenbarung.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Eine vollständige und befähigende Beschreibung der vorliegenden Offenbarung, welche sich an den Durchschnittsfachmann richtet, wird in der Spezifikation dargelegt, die auf die angehängten Figuren Bezug nimmt, in denen:
-
1 ein Beispielsystem gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung darstellt;
-
2A ein Beispiel-Funktionsdiagramm zur Erzeugung flüchtiger Kennungen auf einer Beacon-Vorrichtung gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung darstellt;
-
2B ein Beispiel-Funktionsdiagramm zur Erzeugung von Message Integrity Codes auf einer Beacon-Vorrichtung gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung darstellt;
-
3A ein Beispiel-Funktionsdiagramm zur Verarbeitung flüchtiger Kennungen auf einer Überwachungseinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung darstellt;
-
3B ein Beispiel-Funktionsdiagramm zur Verarbeitung von Message Integrity Code auf einer Überwachungseinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung darstellt;
-
4A ein Beispiel-Funktionsdiagramm zur Erzeugung flüchtiger Kennungen auf einer Verifizierungseinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung darstellt;
-
4B ein Beispiel-Funktionsdiagramm zur Verarbeitung von Message Integrity Codes auf einer Verifizierungseinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung darstellt; und
-
5 ein Beispiel-Funktionsdiagramm zur Verarbeitung flüchtiger Kennungen auf einer Verifizierungseinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung darstellt.
-
DETAILLIERTE BESCHREIBUNG
-
Übersicht
-
Im Allgemeinen bezieht sich die vorliegende Offenbarung auf Systeme und Verfahren zum Erzeugen und Verwenden flüchtiger Kennungen und Message Integrity Codes. Ein Beispielsystem kann mehrere Beacon-Vorrichtungen beinhalten, die eine periodisch eine Nachricht, ein Signal und/oder Werbeframe senden (z. B. unter Verwendung einer Kurzbereichs-Drahtloskommunikationstechnologie, wie beispielsweise der Technologie Bluetooth Low Energy), die eine oder mehrere einer flüchtigen Kennung, einer statischen Kennung und eines Message Integrity Codes enthält. Jede Beacon-Vorrichtung kann insbesondere eine zugewiesene statische Kennung aufweisen und kann periodisch einen zeitbasierten Verschleierungsalgorithmus implementieren, um seine statische Kennung in eine flüchtige Kennung oder einen zeitspezifischen Message Integrity Code umzuwandeln. Das System kann ferner eine Überwachungseinheit beinhalten, die fähig ist, Übertragungen von den Beacon-Vorrichtungen zu empfangen. Wenn die Überwachungseinheit eine Nachricht, ein Signal und/oder einen Werbeframe von einer bestimmten Beacon-Vorrichtung empfängt, kann die Überwachungseinheit die empfangene flüchtige Kennung, statische Kennung, Message Integrity Code oder Kombinationen davon an eine zentrale Verifizierungseinheit übertragen, um die Identität oder andere Informationen, die mit der bestimmten Beacon-Vorrichtung assoziiert sind, herauszufinden und/oder zu authentifizieren.
-
Genauer ausgedrückt kann sich der Verschleierungsalgorithmus eine oder mehrere geteilte Geheimnisse, die nur den jeweiligen Beacon-Vorrichtungen und der Verifizierungseinheit bekannt sind, zunutze machen. Der Verschleierungsalgorithmus kann verschiedene Verschlüsselungsformen, umkehrbare Verschleierungen, nicht-umkehrbare Verschleierungen (z. B. Hash-Funktionen) beinhalten, Permutationen oder andere Verfahren oder Techniken zum Verschleiern von Daten beinhalten. Im Allgemeinen sollte der Verschleierungsalgorithmus in dem Sinne wiederholbar sein, dass der Algorithmus eine identische Ausgabe bereitstellen sollte, wenn ihm identische Eingaben bereitgestellt werden. Obwohl die flüchtige Kennung öffentlich gesendet sein kann, kann die Überwachungseinheit daher die Identität einer bestimmten Beacon-Vorrichtung nicht unabhängig von einer Kommunikation mit der Verifizierungseinheit berechnen. In einigen Ausführungsformen kann die flüchtige Kennung als Pseudozufallsfolgen von Kennungen gesehen werden. In ähnlicher Weise kann ein Message Integrity Code von einer zentralen Verifizierungseinheit verwendet werden, um die Verwendung einer statischen Kennung in einem Frame, einer Nachricht oder einem anderen Signal, das von der Beacon-Vorrichtung gesendet wird, zu authentifizieren.
-
Gemäß einem Aspekt der vorliegenden Offenbarung kann jede Beacon-Vorrichtung periodisch einen zeitbasierten Verschleierungsalgorithmus implementieren, um ihre statische Kennung in eine flüchtige Kennung und/oder einen zeitspezifischen Message Integrity Code umzuwandeln. In einigen Ausführungsformen kann jede Beacon-Vorrichtung jede flüchtige Kennung oder Message Integrity Code durch Bestimmen einer aktuellen Zeitzählung erzeugen; wobei eine zeitlich modifizierte Kennung mindestens teilweise basierend auf einer statischen Kennung und der aktuellen Zeitzählung bestimmt wird; und die flüchtige Kennung oder Message Integrity Codes mindestens teilweise basierend auf der zeitlich modifizierten Kennung und einem Rotationsschlüssel bestimmt wird.
-
Als ein Beispiel kann die aktuelle Zeitzählung der Beacon-Vorrichtung durch Erhalten der aktuellen Zeitzählung von einem zeitbasierten Zähler, der in der Beacon-Vorrichtung beinhaltet ist, bestimmt werden. Der zeitbasierte Zähler kann die Zeitzählung im Verlauf der Zeit erhöhen (z. B. kann die Zeitzählung einmal pro Sekunde oder in einem anderen festgelegten Erhöhungsintervall erhöhen). Das Intervall, in dem der zeitbasierte Zähler die Zeitzählung erhöht, kann ein geteiltes Geheimnis zwischen der Beacon-Vorrichtung und der Verifizierungseinheit sein, sodass die Verifizierungseinheit fähig ist, die aktuelle Zeitzählung an einer Beacon-Vorrichtung zu einem vorgegebenen Zeitpunkt mit angemessener Genauigkeit vorauszusagen, wohingegen Vorrichtungen, die keine Kenntnis über das Erhöhungsintervall besitzen, unfähig sein können, dies zu tun.
-
In einigen Ausführungsformen kann der zeitbasierte Zähler die Zeitzählung in vorbestimmten Erhöhungsquanten je Erhöhungsvorgang erhöhen. Die Erhöhungsquanten können eine Zahl sein, die ungleich Eins ist. Die Erhöhungsquanten können ein geteiltes Geheimnis zwischen der Beacon-Vorrichtung und der Verifizierungseinheit sein, sodass die Verifizierungseinheit fähig ist, die aktuelle Zeitzählung an einer Beacon-Vorrichtung zu einem vorgegebenen Zeitpunkt mit angemessener Genauigkeit vorauszusagen, wohingegen Vorrichtungen, die keine Kenntnis über die Erhöhungsquanten besitzen, unfähig sein können, dies zu tun.
-
Die Beacon-Vorrichtung kann außerdem eine Rotationsrate verwenden, um zu definieren, wie oft die Beacon-Vorrichtung eine neue flüchtige Kennung oder Message Integrity Code erzeugen sollte. Infolgedessen kann die Rotationsrate auch verwendet werden, um eine Zeitspanne zu definieren, für die eine gegebene flüchtige Kennung oder Message Integrity Code eine jeweilige gültige Identifizierung oder Authentifizierungscode für die sendende Beacon-Vorrichtung darstellt.
-
Des Weiteren kann die Rotationsrate, in einigen Ausführungsformen, eine bestimmte Jittermenge beinhalten. Insbesondere kann es, durch Hinzufügen eines Zufalls- oder Pseudozufallsjitters zu dem exakten Timing der Rotation der flüchtigen Kennung oder des Message Integrity Codes, einer Einheit erschwert werden, Zeitsignaturen (z. B. Rotationsrate) als identifizierende Informationen, die mit einer bestimmten Beacon-Vorrichtung assoziiert sind, zu verwenden.
-
Als Solches kann die aktuelle Zeitzählung des zeitbasierten Zählers, wenn eine neue flüchtige Kennung oder Message Integrity Code gemäß der aktuellen Zeit und Rotationsrate erzeugt werden soll, ausgelesen oder anderweitig erhalten werden. So kann beispielsweise ein Verriegelungswerkzeug verwendet werden, um die bestimmte Zeitzählung des Zählers zu einem vorgegebenen Zeitpunkt festzuhalten. Die Rotationsrate kann außerdem ein geteiltes Geheimnis zwischen der Beacon-Vorrichtung und der Verifizierungseinheit ein, sodass die Verifizierungseinheit fähig ist, mit angemessener Genauigkeit vorauszusagen, wann und wie oft die Beacon-Vorrichtung eine neue flüchtige Kennung oder Message Integrity Code erzeugen wird, wohingegen Vorrichtungen, die keine Kenntnis über die Rotationsrate besitzen, unfähig sein können, dies zu tun.
-
Daher können die Beacon-Vorrichtung und die Verifizierungseinheit ein geteiltes Zeitbewusstsein aufweisen, das gemäß einem eindeutigen Zeitschema agiert. Insbesondere können, unter Verwendung der vorstehenden Zeitfunktionen, in einigen Ausführungsformen Zeitzählungen, die verwendet werden, um Message Integrity Code zu erzeugen, immer eindeutig sein (z. B. nicht erneut verwendet) und die Zeitzählung kann immer erhöht oder sich anderweitig in dieselbe Richtung bewegen.
-
Sobald die aktuelle Zeitzählung erhalten wird, kann sie zusammen mit der statischen Kennung verwendet werden, um eine zeitlich modifizierte Kennung zu erzeugen. Als ein Beispiel kann die zeitlich modifizierte Kennung in einigen Ausführungsformen durch Durchführen einer Exklusiv-Oder-Operation hinsichtlich der aktuellen Zeitzählung und der statische Kennung erhalten werden. Demnach kann die aktuelle Zeitzählung, in derartigen Ausführungsformen, durch Daten dargestellt sein, die die gleiche Bit-Größe wie die statische Kennung aufweisen.
-
Die zeitlich modifizierte Kennung kann dann zusammen mit einem Rotationsschlüssel verwendet werden, um die flüchtige Kennung oder einen Message Integrity Code zu erzeugen. Als ein Beispiel können die zeitlich modifizierte Kennung oder der Rotationsschlüssel in eine Verschleierungsfunktion eingegeben werden, um die flüchtige Kennung oder einen Message Integrity Code-Vorläufer zu erzeugen. So kann beispielsweise die Verschleierungsfunktion eine Blockchiffre sein. Die Blockchiffre kann beispielsweise eine Advanced Encryption Standard 128-Bit-Blockchiffre sein. Ein Message Integrity Code-Vorläufer kann anschließend mit einer Maske unter Verwendung einer UND-Funktion kombiniert werden, um den Message Integrity Code zu erzeugen. In einigen Ausführungsformen kann die Maske beispielsweise verwendet werden, um eine Teilmenge oder einen oder mehrere Teile des Message Integrity Code-Vorläufers als den Message Integrity Code zu verwendet. Ferner kann die Maske in einigen Ausführungsformen ein geteiltes Geheimnis zwischen jeder Beacon-Vorrichtung und der Verifizierungseinheit sein. In anderen Ausführungsformen kann eine Verwendung einer Maske nicht notwendig sein.
-
Der Rotationsschlüssel kann spezifisch für jede Beacon-Vorrichtung sein und kann ein geteiltes Geheimnis zwischen jeder Beacon-Vorrichtung und der Verifizierungseinheit sein. Von daher, wenn eine flüchtige Kennung oder ein Message Integrity Code gegeben sind, werden nur die Beacon-Vorrichtung und die Verifizierungseinheit, die Kenntnis über den bestimmten Rotationsschlüssel der Beacon-Vorrichtung haben, in der Lage sein, jeweils die flüchtige Kennung oder Message Integrity Code zu entschleiern oder zu validieren, um die zeitlich modifizierte Kennung zu erhalten. Ferner, da der Rotationsschlüssel für jede Beacon-Vorrichtung spezifisch ist, wird, wenn eine der mehreren Beacon-Vorrichtungen kompromittiert wird oder ihre Informationen anderweitig öffentlich zugänglich werden, eine böswillige Einheit unfähig sein, flüchtige Kennungen oder authentifizierbare Nachrichten für jede der anderen nicht kompromittierten Beacon-Vorrichtungen betrügerisch zu erzeugen.
-
Darüber hinaus kann jede Beacon-Vorrichtung, in einigen Ausführungsformen, einen Satz von Rotationsschlüsseln aufweisen, die geteilte Geheimnisse zwischen einer solchen Beacon-Vorrichtung und der Verifizierungseinheit sein können. So kann beispielsweise die Auswahl von einem aus dem Satz von Rotationsschlüsseln bei jedem Vorgang von Rotationsschlüsselbenutzung auf einem geteilten Zeitbewusstsein oder anderen Mitteln oder Kommunikation zwischen der Verifizierungseinheit und der Beacon-Vorrichtung basieren. Demnach kann, durch Verwendung unterschiedliche Rotationsschlüssel aus dem Satz mit der Zeit, die Folge gesendeter flüchtiger Kennungen oder Message Integrity Codes ferner gegen Angriffe geschützt werden (z. B. ein Versuch, den Rotationsschlüssel durch Analysieren der Folge gesendeter Kennungen oder Message Integrity Codes oder anderweitiges Umkehren der Verschleierungsfunktion herzuleiten).
-
In einigen Ausführungsformen kann die Maske beispielsweise verwendet werden, um eine Teilmenge oder einen Teil des Message Integrity Code-Vorläufers zur Verwendung als den Message Integrity Code auszuwählen. In einigen Ausführungsformen kann der Message Integrity Code-Vorläufer beispielsweise ein 16-Byte-Wert sein und die Maske kann verwendet werden, um Daten in einem 4-Byte-Umfang aus dem Message Integrity Code-Vorläufer als den Message Integrity Code auszuwählen. Ähnlich dem Rotationsschlüssel kann die Maske, in einigen Ausführungsformen, ein geteiltes Geheimnis zwischen jeder Beacon-Vorrichtung und der Verifizierungseinheit sein.
-
Auf diese Weise kann eine Beacon-Vorrichtung periodisch eine neue flüchtige Kennung oder Message Integrity Code zum Einschließen in ihren Übertragungen erzeugen. Ferner, da die Verifizierungseinheit ebenfalls Kenntnis über die geteilten Geheimnisse besitzt und den zeitbasierten Beacon-Zähler mit angemessener Genauigkeit voraussagen kann, kann die Verifizierungseinheit flüchtige Kennungen, die von jeder Beacon-Vorrichtung zu jedem beliebigen Zeitpunkt verwendet werden, unabhängig erzeugen und speichern. Außerdem, da die Verifizierungseinheit Kenntnis über die geteilten Geheimnisse besitzt und den zeitbasierten Beacon-Zähler mit angemessener Genauigkeit voraussagen kann, kann die Verifizierungseinheit erwartete Message Integrity Codes, deren Verwendung durch jede Beacon-Vorrichtung zu jedem beliebigen Zeitpunkt erwartet wird, unabhängig erzeugen und speichern. Zusätzlich, da die flüchtigen Kennungen sich mit der Zeit ändern, können sie dabei helfen, gegen Identitätsbetrug durch Wiedergabe oder andere Spoofing-Angriffe zu schützen.
-
Das System kann außerdem eine oder mehrere Überwachungseinheiten beinhalten, die die Übertragungen von den Beacon-Vorrichtungen empfangen oder belauschen. Jedoch wird, in einigen Ausführungsformen, da die Überwachungseinheiten nicht in der Lage sind, die jeweilige flüchtige Kennung oder Message Integrity Code zu entschleiern oder zu validieren, die Überwachungseinheit mit der Verifizierungseinheit kommunizieren müssen, um die Beacon-Vorrichtung jeweils zu identifizieren oder zu authentifizieren oder zusätzliche Informationen, die mit der Beacon-Vorrichtung assoziiert sind, zu erhalten. Die Überwachungseinheit kann beispielsweise die empfangene flüchtige Kennung oder Message Integrity Code zusammen mit einem Vorrichtungsempfangszeitstempel, der eine Zeit angibt, zu der die Überwachungseinheit die flüchtige Kennung oder Message Integrity Code empfangen hat, an die Verifizierungseinheit weiterleiten. Alternativ oder zusätzlich zum Vorrichtungsempfangszeitstempel kann die Überwachungseinheit auch ihren aktuellen Standort, eine Angabe zu kürzlich überwachten Beacon-Vorrichtungen und/oder andere Informationen kommunizieren, die von der Verifizierungseinheit zur Unterstützung bei der Durchführung der Authentifizierungsfunktionalität verwendet werden können.
-
In anderen Ausführungsformen kann die Überwachungseinheit einige Aspekte der Funktionalität der Verifizierungseinheit lokal durchführen oder kann zuvor empfangene Daten von der Verifizierungseinheit, die es der Überwachungseinheit ermöglichen, die Beacon-Vorrichtung zu identifizieren oder zumindest eine angemessene Reaktion auf Empfangen der Beacon-Vorrichtungsübertragung ohne präzise Identifizierung der Beacon-Vorrichtung zu bestimmen, oder gleichzeitige Authentifizierung des Message Integrity Codes durch die Verifizierungseinheit aufweisen.
-
Gemäß einem Aspekt der vorliegenden Offenbarung kann, in einigen Ausführungsformen, wenn die Verifizierungseinheit eine flüchtige Kennung von einer Überwachungseinheit empfängt, die Verifizierungseinheit die empfangene flüchtige Kennung innerhalb eines Zwischenspeichers flüchtiger Kennungen auffinden, um die statische Kennung, die mit der Beacon-Vorrichtung, die die flüchtige Kennung gesendet hat, assoziiert ist, zu erhalten.
-
Insbesondere, wie vorstehend angemerkt, kann die Verifizierungseinheit erwartete flüchtige Kennungen, die von einer gegebenen Beacon-Vorrichtung verwendet werden, vorberechnen. Als solches kann die Verifizierungseinheit einen Zwischenspeicher flüchtiger Kennungen erzeugen, der eine große Anzahl von flüchtigen Kennungen enthält, die von der Beacon-Vorrichtung über einen erheblichen Zeitraum hinweg verwendet werden.
-
In einigen Ausführungsformen kann für jeden Eintrag einer flüchtigen Kennung, die in dem Zwischenspeicher flüchtiger Kennungen gespeichert ist, auch die statische Kennung und der Rotationsschlüssel für die entsprechende Beacon-Vorrichtung in dem Zwischenspeicher flüchtiger Kennungen gespeichert oder durch den Eintrag darin referenziert werden. Somit kann die Verifizierungseinheit, durch Auffinden der empfangenen flüchtigen Kennung in dem Zwischenspeicher, die statische Kennung für die entsprechende Beacon-Vorrichtung erhalten.
-
Zusätzlich kann, in einigen Ausführungsformen, der Vorrichtungsempfangszeitstempel als ein Hinweis für ein schnelleres Auffinden der flüchtigen Kennung verwendet werden. So können beispielsweise die flüchtigen Kennungen innerhalb des Zwischenspeichers flüchtiger Kennungen gemäß ihren jeweiligen Gültigkeitszeiten organisiert sein. Daher kann der Zwischenspeicher nach der Zeit herum durchsucht werden, die von dem Vorrichtungsempfangszeitstempel bereitgestellt wird, um die flüchtige Kennung innerhalb des Zwischenspeichers schneller aufzufinden.
-
Nachdem die Beacon-Vorrichtung, von der die Überwachungseinheit die flüchtige Kennung empfangen hat, identifiziert wurde, kann die Verifizierungseinheit Informationen, die mit der identifizierten Beacon-Vorrichtung assoziiert sind, der Überwachungseinheit bereitstellen. So können beispielsweise die bereitgestellten Informationen die Identität der Beacon-Vorrichtung, den genauen Standort der Beacon-Vorrichtung, semantische Informationen, die mit der Beacon-Vorrichtung assoziiert sind (z. B. ein Name oder andere textuelle Informationen oder grafische Informationen, die mit der Beacon-Vorrichtung assoziiert sind) oder andere Informationen beinhalten. Alternativ oder zusätzlich zum Versorgen der Überwachungseinheit mit Informationen kann die Verifizierungseinheit eine oder mehrere Operationen als Reaktion auf ein Identifizieren der Beacon-Vorrichtung durchführen, die beispielhaft, Hinzufügen der Überwachungseinheit zu einer bestimmten Eintragsgruppierung, Modifizieren lokal gespeicherter Daten oder Anpassen eines Zählers, der mit Analytik assoziiert ist, beinhalten.
-
Als ein anderes Beispiel kann die Verifizierungseinheit in einigen Ausführungsformen erfordern, dass die mehreren empfangenen flüchtigen Kennungen mit mehreren der erwarteten flüchtigen Kennungen, die in dem Zwischenspeicher beinhaltet sind, übereinstimmen, um die Überwachungseinheit mit zusätzlichen Informationen zu versorgen. Wenn beispielsweise alle oder einige annehmbare Teile der mehreren empfangenen flüchtigen Kennungen in der Lage sind, innerhalb des Zwischenspeichers aufgefunden zu werden, dann können die zusätzlichen Informationen der Überwachungseinheit bereitgestellt werden.
-
Gemäß einem Aspekt der vorliegenden Offenbarung kann, in einigen Ausführungsformen, wenn die Verifizierungseinheit einen Message Integrity Code von einer Überwachungseinheit empfängt, die Verifizierungseinheit die Gültigkeit des Message Integrity Codes bestimmen und somit die statische Kennung, die von der Beacon-Vorrichtung zusammen mit dem Message Integrity Code gesendet wird, authentifizieren.
-
Als ein Beispiel kann, wenn die Verifizierungseinheit eine statische Kennung und Message Integrity Code empfängt, die Verifizierungseinheit ein gleiches Verschleierungsschema und Kenntnis über die geteilten Geheimnisse verwenden, um mehrere erwartete Message Integrity Codes zu erzeugen, deren Verwendung durch jede Beacon-Vorrichtung, die mit der empfangenen statischen Kennung assoziiert sind, erwartet wird. Der empfangene Message Integrity Code kann anschließend mit den erwarteten Message Integrity Codes abgeglichen werden. Wird eine Übereinstimmung gefunden, kann die Verifizierungseinheit der Überwachungseinheit anschließend die Verwendung der statischen Kennung durch die Beacon-Vorrichtung authentifizieren.
-
Als ein anderes Beispiel kann die Verifizierungseinheit erfordern, dass mehrere empfangene Message Integrity Codes mit mehreren erwarteten Message Integrity Codes übereinstimmen, um die statische Kennung zu authentifizieren. So können beispielsweise die mehreren empfangenen Message Integrity Codes mit einem gegebenen Satz von erwarteten Message Integrity Codes abgeglichen werden. Wenn alle oder ein annehmbarer Teil der mehreren empfangenen Message Integrity Codes Mitglieder des Satzes sind, dann kann die statische Kennung authentifiziert werden. In einigen Ausführungsformen kann ein probabilistischer Filter, wie ein Bloom-Filter, verwendet werden, um Satzmitgliedschaftsabfragen durchzuführen.
-
In anderen Ausführungsformen kann möglicherweise vorausgesetzt werden, dass die mehreren empfangenen Message Integrity Codes mit einer bestimmten Folge von erwarteten Message Integrity Codes übereinstimmen. So kann beispielsweise, in einigen Ausführungsformen, die Überwachungseinheit über die Fähigkeit verfügen (z. B. durch die Verwendung eines Bloomier-Filters) zu bestimmen, dass ein gegebener empfangener Message Integrity Code an einem bestimmten Standort n innerhalb einer erwarteten Folge ist. Wenn der nachfolgend empfangene Message Integrity Code an einem Standort n + 1 (und so weiter für eine gewünschte Folgenlänge) ist, dann kann die statische Kennung lokal authentifiziert werden, ohne irgendwelche der Geheimnis, die zwischen den Beacon-Vorrichtungen und den Verifizierungseinheiten geteilt werden, zu kompromittieren.
-
Daher kann Bereitstellen lokaler Authentifizierung unter Verwendung von Bloomier-Filtern, wie vorstehend beschrieben, variierende Authentifizierungsstufen ermöglichen. Insbesondere kann die lokale Verwendung von Bloomier-Filtern auf der Überwachungseinheit probabilistische Authentifizierung ermöglichen. Alternativ kann Kommunikation der Message Integrity Codes zur Validierung durch eine Verifizierungseinheit, die Kenntnis über die geteilten Geheimnisse besitzt, kalkulierte Authentifizierung ermöglichen.
-
In einigen Ausführungsformen können die mehreren erwarteten Message Integrity Codes erzeugt werden, indem zunächst mehrere erwartete zeitlich modifizierte Kennungen durch jeweiliges Durchführen einer Exklusiv-Oder-Operation im Hinblick auf die statische Kennung und mehrere erwartete Zeitzählungen, die in einer Zeitzählliste beinhaltet sind, erzeugt werden.
-
Als ein Beispiel können die mehrere erwarteten Zeitzählungen, die in der Zeitzählliste beinhaltet sind, mindestens teilweise basierend auf dem Vorrichtungs-Empfangszeitstempel erzeugt werden. Die Verifizierungseinheit kann ihr geteiltes Wissen über das bestimmte zeithaltende Schema der Beacon-Vorrichtung, die mit der statischen Kennung identifiziert ist, verwenden, um die Beacon-Zähler Zeitzählungen zu bestimmen, die ein solcher Beacon verwenden wird, um seinen Message Integrity Code innerhalb eines Zeitfensters um die Zeit herum, die durch den Vorrichtungs-Empfangszeitstempel angegeben ist, zu erzeugen.
-
Die mehreren erwarteten zeitlich modifizierten Kennungen können dann jeweils in eine Verschleierungsfunktion zusammen mit einem Rotationsschlüssel, der mit den statischen Kennungen assoziiert ist, eingegeben werden, um mehrere erwartete Message Integrity Code-Vorläufer zu erzeugen. Zum Beispiel kann die Verschleierungsfunktion eine Blockchiffre sein. Die Blockchiffre kann beispielsweise eine Advanced Encryption Standard 128-Bit-Blockchiffre sein. Der Rotationsschlüssel kann ein geteiltes Geheimnis sein, das für die Beacon-Vorrichtung, die mit der statischen Kennung assoziiert ist, spezifisch ist.
-
Eine UND-Operation kann anschließend im Hinblick auf eine Maske und die mehreren erwarteten Message Integrity Code-Vorläufer jeweils durchgeführt werden, um die mehreren erwarteten Message Integrity Codes zu erzeugen. In einigen Ausführungsformen kann die Maske ein geteiltes Geheimnis sein, das für die Beacon-Vorrichtung spezifisch ist.
-
In einigen Ausführungsformen kann, für jeden erwarteten Message Integrity Code, der durch die Verifizierungseinheit erzeugt wird, die erwartete Zeitzählung, die verwendet wird, um solchen erwarteten Message Integrity Code zu erzeugen, auch mit dem und/oder referenziert durch den entsprechenden erwarteten Message Integrity Code gespeichert werden. Daher kann die Verifizierungseinheit durch Abgleichen des empfangenen Message Integrity Codes mit einem erzeugten erwarteten Message Integrity Code außerdem die erwartete Zeitzählung erhalten, die verwendet wird, um den erwarteten Message Integrity Code zu erzeugen. Eine solche erwartete Zeitzählung sollte der Zeitzählung entsprechen, die von der Beacon-Vorrichtung verwendet wird, um den gesendeten Message Integrity Code zu erzeugen, wodurch eine Angabe eines aktuellen Status des internen Taktgebers der Beacon-Vorrichtung bereitgestellt wird, wie nachstehend ferner besprochen.
-
Die Verifizierungseinheit kann den empfangenen Message Integrity Code durch Abgleichen des Message Integrity Codes mit einem der erwarteten Message Integrity Codes validieren. Als Reaktion auf Validieren des Message Integrity Codes kann die Verifizierungseinheit verschiedene Operationen durchführen und/oder zusätzliche Informationen erhalten.
-
Als ein Beispiel kann die Verifizierungseinheit die Verwendung der statischen Kennung durch die Beacon-Vorrichtung für die Überwachungsvorrichtung authentifizieren und kann, in einigen Ausführungsformen, der Überwachungseinheit weitere Informationen bereitstellen, die mit der authentifizierten Beacon-Vorrichtung assoziiert sind. So können beispielsweise die bereitgestellten Informationen den genauen Standort der Beacon-Vorrichtung, semantische Informationen, die mit der Beacon-Vorrichtung assoziiert sind (z. B. ein Name oder andere textuelle Informationen oder grafische Informationen, die mit der Beacon-Vorrichtung assoziiert sind) oder andere Informationen beinhalten. Alternativ oder zusätzlich zum Versorgen der Überwachungseinheit mit Informationen kann die Verifizierungseinheit eine oder mehrere Operationen als Reaktion auf ein Authentifizieren der Verwendung der statischen Kennung durchführen, die beispielhaft, Hinzufügen der Überwachungseinheit zu einer bestimmten Eintragsgruppierung, Modifizieren lokal gespeicherter Daten oder Anpassen eines Zählers, der mit Analytik assoziiert ist, beinhalten.
-
In weiteren Ausführungsformen der vorliegenden Offenbarung kann die Verifizierungseinheit eine oder mehrere Sicherheitsprüfungen vor oder nach Identifizieren oder Authentifizieren der Beacon-Vorrichtung durchführen. Als ein Beispiel kann die Verifizierungseinheit die Überwachungseinheit mit einer Zugriffssteuerungsliste abgleichen, die jeweils mit der identifizierten oder authentifizierten Beacon-Vorrichtung oder der empfangenen flüchtigen Kennung oder Message Integrity Code assoziiert ist. So kann beispielsweise Verwendung einer Zugriffssteuerungsliste dem Bediener der Beacon-Vorrichtung ermöglichen zu steuern, welche Überwachungseinheiten berechtigt sind, von der Verifizierungseinheit mit den Informationen, die mit der Beacon-Vorrichtung assoziiert sind (z. B. die Identität der Beacon-Vorrichtung), versorgt zu werden, oder welche Überwachungseinheiten berechtigt sind, von der Verifizierungseinheit mit einer Authentifizierung der Beacon-Vorrichtung oder den zusätzlichen Informationen, die mit der Beacon-Vorrichtung assoziiert sind, versorgt zu werden.
-
Des Weiteren, da die flüchtigen Kennungen oder Message Integrity Codes, die von der Beacon-Vorrichtung verwendet werden, sich mit der Zeit ändern, kann die Zugriffssteuerungsliste außerdem festlegen, wann und für wie lange bestimmte Überwachungseinheiten berechtigt sind, die Authentifizierung und/oder Informationen, die mit der Beacon-Vorrichtung assoziiert sind, zu empfangen. In einer solchen Weise können Verifizierungseinheiten dazu in der Lage sein, spezifische Überwachungseinheiten zu befähigen, für ein definiertes Zeitintervall flüchtige Kennungen zu erkennen oder eine Authentifizierung von Message Integrity Codes zu empfangen, ohne die Privatsphäre vor oder nach diesem Intervall zu kompromittieren.
-
Als ein anderes Beispiel kann die Verifizierungseinheit in einigen Ausführungsformen die flüchtige Kennung entschleiern, um eine Zeitzählung, die von der Beacon-Vorrichtung verwendet wird, um die flüchtige Kennung zu erzeugen, zu erhalten. Die Vorrichtungs-Empfangszeitstempel kann anschließend eine Zeitdifferenz zwischen der Zeitzählung, die von der Beacon-Vorrichtung verwendet wird, um die flüchtige Kennung zu erzeugen, und einem Vorrichtungs-Empfangszeitstempel, der ebenfalls von der Überwachungseinheit empfangen wird, bestimmen. Wenn die Zeitdifferenz einen Schwellenwert (z. B. die Rotationsrate) übersteigt, dann können der Überwachungseinheit die Informationen, die mit der Beacon-Vorrichtung assoziiert sind, verweigert werden.
-
Als ein anderes Beispiel kann die Verifizierungseinheit in einigen Ausführungsformen die flüchtige Kennung entschleiern, um eine Zeitzählung zu erhalten, die von der Beacon-Vorrichtung verwendet wird, um die flüchtige Kennung zu erzeugen. Die Verifizierungseinheit kann anschließend eine Zeitdifferenz zwischen der Zeitzählung, die von der Beacon-Vorrichtung verwendet wird, um die flüchtige Kennung zu erzeugen, und einem Vorrichtungs-Empfangszeitstempel, der ebenfalls von der Überwachungseinheit empfangen wird, bestimmen. Wenn die Zeitdifferenz einen Schwellenwert (z. B. die Rotationsrate) übersteigt, dann können der Überwachungseinheit die Informationen, die mit der Beacon-Vorrichtung assoziiert sind, verweigert werden.
-
Als ein anderes Beispiel kann die Verifizierungseinheit in einigen Ausführungsformen die erwartete Zeitzählung identifizieren, die verwendet wurde, um den erwarteten Message Integrity Code, mit dem der empfangene Message Integrity Code abgeglichen wurde, zu erzeugen. Die Verifizierungseinheit kann anschließend eine Zeitdifferenz zwischen der erwarteten Zeitzählung und dem Vorrichtungs-Empfangszeitstempel, der ebenfalls von der Überwachungseinheit empfangen wird, bestimmen. Wenn die Zeitdifferenz einen Schwellenwert (z. B. die Rotationsrate) übersteigt, dann können der Überwachungseinheit die Authentifizierung der Beacon-Vorrichtung und/oder die zusätzlichen Informationen, die mit der Beacon-Vorrichtung assoziiert sind, verweigert werden.
-
In noch einem anderen Beispiel, wenn eine Zeitdifferenz zwischen der aktuellen Zeit und dem Vorrichtungs-Empfangszeitstempel einen Schwellenwert übersteigt, dann kann der Empfang der flüchtigen Kennung oder des Message Integrity Codes durch die Überwachungseinheit als abgelaufen eingestuft werden und die Verifizierungseinheit kann einen Zugriff auf die Authentifizierung der Beacon-Vorrichtung und/oder die zusätzlichen Informationen, die mit der Beacon-Vorrichtung assoziiert sind, verweigern.
-
Als ein anderes Beispiel kann die Verifizierungseinheit in einigen Ausführungsformen der vorliegenden Offenbarung ein Loch in einer Liste von flüchtigen Kennungen, statischen Kennungen und/oder Message Integrity Codes, die die Verifizierungseinheit verarbeiten/validieren möchte, erzeugen. Somit kann die Verifizierungseinheit ebenfalls eine verifizierungsvermittelte Zugriffssteuerungsliste erzeugen. Diese Techniken können als Mittel zum Einschränken des Zugrifft auf Beacon-Vorrichtungsinformationen und/oder -identitäten verwendet werden oder dazu, dass Authentifizierung nur zu bestimmten Zeiten (z. B. Geschäftszeiten) stattfindet, oder als ein Mittel, um Verifizierungs-/Authentifizierungsfunktionalität im Fall eines Denial-of-Service-Angriffs selektiv abzuschalten. Wenn die Verifizierungseinheit beispielsweise mehr als eine Schwellenwertanzahl von Anfragen zur Verarbeitung oder Authentifizierung mit einer bestimmten flüchtigen oder statischen Kennung oder Message Integrity Code erhält, dann kann die Verifizierungseinheit die bestimmte flüchtige oder statische Kennung oder Message Integrity Code aus der Liste löschen und, somit, eine Verifizierung/Authentifizierung für die bestimmte flüchtige Kennung, statische Kennung, entsprechende Beacon-Vorrichtung für eine bestimmten Zeitraum oder Message Integrity Code-Kombination nicht länger bereitstellen.
-
In noch weiteren Ausführungsformen der vorliegenden Offenbarung kann die Verifizierungseinheit Operationen durchführen, um Taktabweichung der Beacon-Vorrichtung anzugehen. Als ein Beispiel kann die Verifizierungseinheit in einigen Ausführungsformen einen Beacon-Taktkorrekturfaktor für jede der Beacon-Vorrichtungen aufrechterhalten. Der Beacon-Taktkorrekturfaktor für jede Beacon-Vorrichtung kann einen Versatz zwischen dem Taktgeber der Verifizierungseinheit und dem Taktgeber oder Zähler solcher Beacon-Vorrichtung beschreiben. Der Beacon-Taktkorrekturfaktor kann ein einzelner Wert sein oder kann eine komplexe Funktion sein, die eine zeitvariierende Beziehung bereitstellt (z. B. einen Skalierungsfaktor beinhaltet).
-
In einigen Ausführungsformen kann der Beacon-Taktkorrekturfaktor durch eine Verifizierungseinheit mindestens teilweise basierend auf einer flüchtigen Kennung oder einem Message Integrity Code, der von einer Überwachungseinheit empfangen wurde und an die Verifizierungseinheit weitergeleitet wurde, und einem Vorrichtungs-Empfangszeitstempel für den Empfang der flüchtigen Kennung durch die Überwachungseinheit aktualisiert werden. Als ein Beispiel kann der Beacon-Taktkorrekturfaktor Entschleiern der flüchtigen Kennung beinhalten, um eine Zeitzählung zu erhalten, die von der Beacon-Vorrichtung verwendet wird, um die flüchtige Kennung zu erzeugen. Der Beacon-Taktkorrekturfaktor kann mindestens teilweise basierend auf einem Vergleich der entschleierten Zeitzählung mit dem Vorrichtungs-Empfangszeitstempel aktualisiert werden.
-
Genauer ausgedrückt kann Entschleiern der flüchtigen Kennung Erhalten der mit der Beacon-Vorrichtung assoziierten statischen Kennung und eines Rotationsschlüssels aus dem Zwischenspeicher flüchtiger Kennungen und Eingeben der flüchtigen Kennung und des Rotationsschlüssels in eine umgekehrte Verschleierungsfunktion beinhalten, um die zeitlich modifizierte Kennung zu erhalten. So kann beispielsweise die umgekehrte Verschleierungsfunktion eine Blockchiffre sein (z. B. eine Advanced Encryption Standard 128-Bit-Blockchiffre).
-
Als nächstes kann eine Exklusiv-Oder-Operation hinsichtlich der statischen Kennung und der zeitlich modifizierten Kennung durchgeführt werden, um die Zeitzählung zu erhalten, die von der Beacon-Vorrichtung verwendet wird, um die flüchtige Kennung zu erzeugen. Wie vorstehend angemerkt, kann diese Zeitzählung verwendet werden, um den Beacon-Taktkorrekturfaktor zu aktualisieren.
-
In einigen Ausführungsformen kann der Beacon-Taktkorrekturfaktor durch eine Verifizierungseinheit mindestens teilweise basierend auf einem Message Integrity Code, der von einer Überwachungseinheit empfangen wurde und an die Verifizierungseinheit weitergeleitet wurde, und einem Vorrichtungs-Empfangszeitstempel für den Empfang des Message Integrity Codes durch die Überwachungseinheit aktualisiert werden.
-
Als ein Beispiel kann Aktualisieren des Beacon-Taktkorrekturfaktors Identifizieren der erwarteten Zeitzählung beinhalten, die verwendet wird, um den erwarteten Message Integrity Code, mit dem der empfangene Message Integrity Code abgeglichen wurde, zu erzeugen. Der Beacon-Taktkorrekturfaktor kann mindestens teilweise basierend auf einem Vergleich der erwarteten Zeitzählung mit dem Vorrichtungs-Empfangszeitstempel aktualisiert werden.
-
Als ein anderes Beispiel kann die Beacon-Vorrichtung in einigen Ausführungsformen periodisch einen Burst oder andere schnelle Folge von sich ändernden flüchtigen Kennungen oder Message Integrity Codes übertragen. Beobachtungen von dem übertragenen Burst können für eine präzisere Berechnung des Korrekturfaktors verwendet werden. Eine solche Konfiguration kann beispielsweise in Situationen nützlich sein, in denen die flüchtigen Kennungen oder Message Integrity Code selten (z. B. einmal pro Stunde) rotieren. Der Burst kann einmal pro Sekunde, pro Minute, pro Tag oder anderen Zeitabschnitten durchgeführt werden.
-
Bezugnehmend auf die FIGS werden nun exemplarische Ausführungsformen der vorliegenden Offenbarung detaillierter erörtert, wobei ein oder mehrere der Beispiele in den Zeichnungen dargestellt sind. Jedes Beispiel wird im Rahmen einer Erläuterung der vorliegenden Offenbarung und nicht einer Einschränkung der Erfindung bereitgestellt.
-
Tatsächlich ist es für einen Fachmann offensichtlich, dass zahlreiche Modifizierungen und Variationen an der vorliegenden Offenbarung vorgenommen werden können, ohne von dem Umfang oder den Sinn der Offenbarung abzuweichen. Zum Beispiel können Merkmale, die als Teil einer Ausführungsform veranschaulicht oder beschrieben werden, mit einer anderen Ausführungsform verwendet werden, um noch eine weitere Ausführungsform zu erreichen. Somit wird beabsichtigt, dass die vorliegende Offenbarung solche Modifizierungen und Varianten als innerhalb des Umfangs der hinzugefügten Ansprüche und ihrer Äquivalente fallend abdeckt.
-
Beispielsystem
-
1 stellt ein Beispielsystem 100 gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung dar. Das System 100 kann eine Vielzahl von Beacon-Vorrichtungen 102–110, mindestens eine Überwachungseinheit 112 und 114 und mindestens eine Verifizierungseinheit 118 beinhalten.
-
Beacon-Vorrichtungen 102–110 können für viele verschiedene Anwendungen verwendet werden, einschließlich beispielsweise der Kopräsenz (z. B. zwei Einheiten, die sich gegenseitig erkennen), standortbasiertem Gaming, Asset Tracking, Lokalisierung von Beacon-Vorrichtungen, Lokalisierung von Überwachungseinheiten, Telemetrie, Informationsbereitstellung (z. B. die Verwendung einer Überwachungseinheit für den Abruf zahlreicher Informationen, wie semantischen oder geografischen Informationen, die mit den Beacon-Vorrichtungen 102–110 assoziiert sind, während die Überwachungseinheit irgendwo auf der Welt bewegt wird), Kommunikation zwischen Beacon-Vorrichtungen, Zahlungssysteme, Sicherheit usw. Die vorliegende Offenbarung stellt ein allgemeines System bereit, das für die zuvor beschriebenen Anwendungen sowie andere Anwendungen gleichermaßen anwendbar ist. Insbesondere stellt die vorliegende Offenbarung Systeme und Verfahren bereit, die flüchtige Kennungen oder Message Integrity Codes im Kontext einer beliebigen der vorstehenden Anwendungen erzeugen und verwenden können.
-
Beacon-Vorrichtungen 102–110 können Computergeräte sein, die so konfiguriert sind, dass sie Nachrichten oder andere Signale aussenden. Zum Beispiel können die Nachrichten Werbeframes sein, die von den Beacon-Vorrichtungen 102–110 gesendet werden. Die Werbeframes können flüchtige Kennungen oder statische Kennungen und Message Integrity Code beinhalten, die gemäß der vorliegenden Offenbarung erzeugt wurden. In einigen Ausführungsformen können Werbeframes zu dem Zweck verwendet werden, zu informieren, ohne eine Verbindung herzustellen. Daher kann die gesamte Interaktion zwischen den Beacon-Vorrichtungen 102–110 und den Überwachungseinheiten 112 und 114 in solchen Ausführungsformen ohne das Benötigen einer Verbindung zwischen der Überwachungseinheit und der Beacon-Vorrichtung oder einer Verbindung zwischen der Beacon-Vorrichtung und der Verifizierungseinheit 118 erfolgen. Stattdessen sind alle relevanten Informationen für die Interaktion in den Werbepaketen oder -frames enthalten, die von der Beacon-Vorrichtung ausgesendet werden. Die Beschränkung der Interaktion der Beacon-Vorrichtung auf das Senden von Werbeframes kann zu einem nominalen Verhalten führen, das es ermöglicht, den Energieverbrauch und die Lebensdauer zu modellieren und angemessen vorherzusagen.
-
In anderen Ausführungsformen können die Beacon-Vorrichtungen 102–110 jedoch das Herstellen einer Verbindung zur Konfiguration, Bereitstellung, Wartung, Firmware-Aktualisierung oder für andere Funktionen gestatten. In einigen Ausführungsformen können die Beacon-Vorrichtungen 102–110 beispielsweise eine Verbindung zur Verifizierungseinheit 118 über einen zweiten Kommunikationskanal herstellen. In noch weiteren Ausführungsformen können die Beacon-Vorrichtungen 102–110 so konfiguriert werden, dass sie einer Überwachungseinheit über Interaktionen in Form einer Scananforderung (SCAN_REQ) und einer Scanantwort (SCAN_RSP), die keine tatsächliche Verbindung zwischen den Geräten benötigen, zusätzliche Informationen bereitstellen. In einigen Ausführungsformen können die SCAN_RSP-Frames außerdem einen Message Integrity Code beinhalten.
-
Die Beacon-Vorrichtungen 102–110 können beispielsweise die Werbeframes mit drahtlosen Kurzbereichs-Drahtloskommunikationstechnologien wie beispielsweise Bluetooth, Bluetooth Low Energy, ZigBee, Nahfeldkommunikation, WiFi Direct oder anderen Technologien übertragen. Auch wenn drahtlose Kurzbereichs-Drahtloskommunikationstechnologien als Beispiel bereitgestellt werden, kann jedes Kommunikationsverfahren zur Übertragung der Werbeframes von den Beacon-Vorrichtungen 102–110 auf die Überwachungseinheiten 112 und 114 verwendet werden, beispielsweise einschließlich drahtgebundene Verbindungen, allgemeine Funkfrequenzkommunikation, optische Kommunikation, Infrarot-Kommunikation, magnetische Kommunikation oder andere Kommunikationsverfahren, die beispielsweise Quantum-Kommunikationsverfahren beinhalten.
-
Das Senden von Werbeframes kann der Hauptzweck von jeder Beacon-Vorrichtung 102–110 oder auch ein Nebenzweck sein. In den verschiedenen Ausführungsformen der vorliegenden Offenbarung kann daher jede Beacon-Vorrichtung ein Computergerät sein, das zur regelmäßigen Übertragung von Werbeframes vorgesehen ist; ein eingebettetes System mit einem größeren Computergerät oder -system; ein Benutzer-Computergerät (z. B. ein Smartphone oder ein tragbares Computergerät), das so konfiguriert ist, dass es Werbeframes sendet; oder Kombinationen davon.
-
Gemäß einem Aspekt der vorliegenden Offenbarung kann jede Beacon-Vorrichtung 102–110 zum Zeitpunkt der Bereitstellung mit einer beaconspezifischen statischen Kennung ausgestattet sein. Beispielverfahren zum Zuweisen von statischen Kennungen werden nachstehend näher erläutert. Jeder Beacon kann außerdem mit einem beaconspezifischen geheimen Schlüssel versehen sein, der als Rotationsschlüssel bekannt ist. Die statische Kennung und der Rotationsschlüssel, die jeder Beacon-Vorrichtung 102–110 zugewiesen werden, können auch der Verifizierungseinheit 118 bekannt sein und als geteiltes Geheimnis zur Erzeugung und Entschleierung und/oder Validierung der flüchtigen Kennung oder des Message Integrity Codes verwendet werden.
-
In einigen Ausführungsformen kann jedes von einer Beacon-Vorrichtung ausgeführte Werbeereignis aus bis zu drei Werbe(ADV)-Frames bestehen, die von der Beacon-Vorrichtung ausgesendet werden. In Ausführungsformen, in denen Beacon-Vorrichtungen die Technologie Bluetooth Low Energy (BLE) zur Übertragung verwenden, kann jeder ADV-Frame maximal 31 Byte Nutzdaten enthalten und kann über einen von drei dafür vorgesehenen Werbekanälen innerhalb des derzeit festgelegten 40-Kanal-BLE-Funkspektrums gesendet werden. Wie bereits angemerkt, können Werbungen Übertragungsereignisse sein, die von jedem Abhörgerät (z. B. einer Überwachungseinheit) empfangen und verarbeitet werden können. Dabei ist anzumerken, dass die oben erwähnte Beispielimplementierung unter Einsatz der BLE-Technologie nur als Beispiel anzusehen ist. Es können auch andere geeignete Kommunikationsprotokolle mit unterschiedlichen Rahmenformaten oder Kanalzuweisungen verwendet werden. Darüber hinaus werden bestimmte Protokolle mit der Zeit modifiziert oder ersetzt und die vorliegende Offenbarung kann für die Implementierung unter Einsatz solcher neuer Protokolle leicht angepasst werden.
-
In einigen Ausführungsformen kann jedes ADV-Frame im Frame-Format anzeigen, ob der Status der übertragenden Beacon-Vorrichtung „Connectable” (Verbindbar), „Scannable” (Abtastbar) oder „Non-Connectable” (Nicht verbindbar)”/„Non-Scannable” (Nicht abtastbar) lautet. Bei Frames, deren Status „Connectable” (Verbindbar) oder „Scannable” (Abtastbar) lautet, kann ein Abhörgerät eine Anforderung an die Beacon-Vorrichtung senden, einen weiteren 31-Byte-Frame zu senden, das zusätzliche Informationen enthält.
-
In einigen Ausführungsformen kann die Anforderung (SCAN_REQ) keine Daten sondern nur eine „Rückgabeadresse” enthalten, an die die Beacon-Vorrichtung ihre Antwort (SCAN_RSP) richten kann.
-
Allerdings kann die SCAN_REQ in anderen Ausführungsformen überwachungsspezifische Daten beinhalten, die von der Beacon-Vorrichtung verwendet werden können, um einen Message Integrity Code zu erzeugen, der in der SCAN_RSP beinhaltet werden soll, wobei überwachungsspezifische Informationen verwendet werden können, um Message Integrity Codes zu erzeugen, die einen verbesserten Schutz gegen Wiedergabe-Angriffe bereitstellen.
-
Insbesondere, da ADV-Frames typischerweise gesendet werden, können sie anfällig für Wiedergabe-Identitätsbetrug innerhalb eines Zeitraums sein, für den der Message Integrity Code, der in dem ADV-Frame beinhaltet ist, gültig ist (z. B. innerhalb einer Rotationsperiode). Daher kann, in einigen Ausführungsformen der vorliegenden Offenbarung, alternativ oder zusätzlich zu einem Message Integrity Code, der in dem ADV-Frame beinhaltet ist, ein Message Integrity Code in einem Scan_RSP-Frame oder einem anderen Antwortframe, der sich an eine spezifische Überwachungseinheit richtet, beinhaltet werden. Insbesondere kann der Message Integrity Code, der in dem Antwortframe beinhaltet ist, beispielsweise basierend auf überwachungsspezifischen Informationen erzeugt werden, die der Beacon-Vorrichtung direkt von der Überwachungseinheit gesendet werden. In gleicher Weise kann ein Antwortframe direkt von der Beacon-Vorrichtung an die anfragende Überwachungseinheit gesendet werden, wodurch das Risiko eines Identitätsbetrugs oder anderer Spoofing-Attacken reduziert wird.
-
In einigen Ausführungsformen kann die gesamte Nachricht, die den ADV-Frame und den SCAN_RSP-Frame beinhaltet und Message Integrity Code aufweist, als ein Paket behandelt werden. Insbesondere können die Antwortframes typischerweise Informationen beinhalten, die ebenfalls zeitvariabel ist oder die selbst gemäß der hierin erörterten Verschleierungsalgorithmen verschleiert ist. Als ein Ergebnis ist die gesamte Nachricht eine eindeutige Nachricht, die einer spezifischen Interaktion zwischen einer spezifischen Kombination aus Überwachungseinheit und Beacon-Vorrichtung zugeordnet werden kann.
-
Darüber hinaus kann der Message Integrity Code, der in dem Antwortframe beinhaltet ist, in einigen Ausführungsformen im Gegensatz zur Verwendung der Beacon-Kennung zum Erzeugen eines Message Integrity Codes eines ADV-Frames, über die gesamten Nutzdaten des Antwortframes hinweg berechnet werden.
-
Zusätzlich, obgleich Antwortframes, die Message Integrity Codes beinhalten, vorstehen innerhalb des Kontexts eines Systems erörtert wurden, das die Kommunikationstechnologie Bluetooth Low Energy verwendet, können die darin erörterten Konzepte leicht auf andere Kommunikationsprotokolle und -technologien angewendet werden, die Anfragen und Antworten zwischen Überwachungseinheiten und Beacon-Vorrichtungen ermöglichen.
-
In einigen Ausführungsformen der vorliegenden Offenbarung kann jeder Werbeframe 30 der maximal 31 Byte umfassenden Nutzungsdaten verwenden. Die Bytes 1–3 können beispielsweise für BLE-Flags verwendet werden; die Bytes 4–7 können für Servicedaten-Kopfzeilen verwendet werden; das Byte 8 kann zur Anzeige eines Frame-Typs verwendet werden; das Byte 9 kann für Flags und einen Funkkanal verwendet werden, über den der ADV-Frame übermittelt wird; das Byte 10 kann eine kalibrierte oder geschätzte Übertragungsleistung für den ADV-Frame anzeigen; Bytes 11–26 können zur Kommunikation einer Beacon-Kennung, wie der statischen Kennung verwendet werden und Bytes 27–30 können verwendet werden, um den Message Integrity Code zu kommunizieren. In anderen Ausführungsformen können andere Frame-Formate oder -Bezeichnungen verwendet werden. Insbesondere ist die Bit-Größe des Message Integrity Codes und die Platzierung in dem vorstehend beschriebenen Frame nur eine mögliche Konfiguration, die als ein Beispiel bereitgestellt ist.
-
In einem anderen Beispiel kann jeder SCAN_RSP-Frame eine herstellerspezifische Datenkopfzeile von 4 Bytes; und herstellerspezifische Nutzungsdaten von 1–27 Bytes; und Message Integrity Code von 4 Bytes beinhalten. In einigen Ausführungsformen können die Nutzungsdaten eines SCAN_RSP-Frames beispielsweise für die Telemetrie oder zur Bereitstellung anderer Daten verwendet werden.
-
Ferner sind die vorstehenden Beispielimplementierungen unter Verwendung der BLE-Technologie nur als Beispiele bereitgestellt.
-
In einigen Ausführungsformen kann die statische Kennung, die jeder Beacon-Vorrichtung 102–110 zugewiesen ist, eine 16 Byte umfassende Zeitkonstantenkennung sein. So kann die statische Kennung beispielsweise die Verknüpfung einer 10 Byte großen Namensraum-Kennung und einer 6 Byte großen Beacon-Vorrichtungs-Instanzkennung sein. Andere Formate oder Bitgrößen können jedoch ebenso verwendet werden.
-
Bei der Namensraum-Kennung kann es sich beispielsweise um eine Klasse von Beacons handeln, die mit einer bestimmten Anwendung oder Organisation verknüpft ist. Daher kann in einigen Ausführungsformen die Namensraum-Kennung zur Auswahl überwachter ADV-Frames verwendet werden, die an eine bestimmte Anwendung weitergeleitet werden sollen, die die Beacon-Instanzkennung möglicherweise weiter identifizieren kann. Namensräume können ebenfalls ein Hilfsmittel zur Organisation darstellen, die Beacon-Vorrichtungen zur Segmentierung von Populationen von Beacon-Vorrichtungen gemäß bestimmten Anwendungen, Anwendungsfällen oder Kategorisierungen einsetzen.
-
In einigen Ausführungsformen kann jede Namensraum-Kennung vollständig oder teilweise auf einer universellen einzigartigen Kennung, dem Universally Unique Identifier (UUID), basieren. Die Namensraum-Kennung kann sich beispielsweise aus den vier Bytes mit dem höchsten Stellenwert und den sechs Bytes mit dem niedrigsten Stellenwert einer 128-Bit-UUID zusammensetzen, die gemäß der Internet Engineering Task Force RFC:4122 festgelegt wurde.
-
Die Beacon-Instanzkennung kann eine spezifische Beacon-Vorrichtung innerhalb eines Namensraums identifizieren. Jede Beacon-Instanzkennung kann innerhalb eines vorgegebenen Namensraum eindeutig sein.
-
Überwachungseinheiten 112 und 114 können Computergeräte sein, die so konfiguriert sind, dass sie Werbeframes von jeder der Beacon-Vorrichtungen 102–110 empfangen. Die Überwachungseinheiten 112 und 114 können beispielsweise Computergeräte, wie ein Smartphone, ein Laptop, ein Desktop oder ein tragbares Computergerät; ein eingebettetes System auf einer Maschine; andere Geräte oder Kombinationen davon sein. In einigen Ausführungsformen verfügt ein Einzelgerät über Komponenten, die die Funktionalität einer Beacon-Vorrichtung durchführen, und Komponenten, die die Funktionalität einer Überwachungseinheit durchführen.
-
In einigen Ausführungsformen kann jede der Überwachungseinheiten 112 und 114 mit mehreren Prozessoren oder Verarbeitungsmodulen ausgestattet sein. Jede Überwachungseinheit kann beispielsweise ein System auf einem Chip (SoC) beinhalten, das im Hintergrund mit niedrigem Energieverbrauch nach Werbeframes sucht, ein Mittel zur Batch-Erstellung überwachter Werbeframes bietet und regelmäßige Massenübertragungen durchführt, um die Energieeffizienz zu verbessern. Jede der Überwachungseinheiten 112 und 114 kann ferner einen Prozessor auf Anwendungsebene beinhalten, der in der Lage ist, gemeinschaftlich mit dem SoC eine adaptive Scanfunktion bereitzustellen. Der Prozessor auf Anwendungsebene kann ebenso hochrangige Aufgaben durchführen. Gleichfalls können Beacon-Vorrichtungen 102–110, wie vorstehend ausgeführt, mit mehreren Prozessoren oder Verarbeitungsmodulen ausgestattet sein.
-
Bei der Verifizierungseinheit 118 kann es sich um ein oder mehrere Computergeräte handeln, die so konfiguriert sind, dass sie über ein Netzwerk 116 mit den Überwachungseinheiten 112 und 114 kommunizieren. Bei der Verifizierungseinheit 118 kann es sich beispielsweise um ein oder mehrere Server-Computergeräte handeln. Für den Fall, dass mehrere Server-Computergeräte verwendet werden, können die Server-Computergeräte entsprechend jeder geeigneten Rechnerarchitektur, einschließlich sequentielle Rechnerarchitekturen, parallele Rechnerarchitekturen oder Kombinationen davon, angeordnet sein.
-
Netzwerk 116 kann eine beliebige Art eines Kommunikationsnetzwerks sein, wie etwa ein Local Area Network (z. B. Intranet), Wide Area Network (z. B. Internet) oder eine Kombination davon, und kann eine Reihe von drahtgebundenen oder Drahtlosverbindungen beinhalten. Im Allgemeinen kann die Kommunikation zwischen der Verifizierungseinheit 118 und den Überwachungseinheiten 112 und 114 unter Verwendung aller Arten von drahtgebundenen und/oder drahtlosen Verbindungen, zahlreichen Kommunikationsprotokollen (z. B. TCP/IP, HTTP, SMTP, FTP), Kodierungen oder Formaten (z. B. HTML, XML) und/oder Schutzsystemen (z. B. VPN, sicheres HTTP, SSL) ausgeführt werden.
-
Auch wenn jede der Überwachungseinheiten 112 und 114 so dargestellt ist, dass sie direkt über das Netzwerk 116 mit der Verifizierungseinheit 118 kommuniziert, kann es ferner eine Reihe von Zwischenvorrichtungen zwischen der Überwachungseinheit 112 oder 114 und der Verifizierungseinheit 118 geben. In einigen Ausführungsformen können Gruppen von Überwachungseinheiten beispielsweise in einem Netzwerk (z. B. einem Maschennetz) organisiert werden und Nachrichten von einer bestimmten Überwachungseinheit zur Verifizierungseinheit 118 zurück- und weiterleiten.
-
Gemäß einem Aspekt der vorliegenden Offenbarung kann jede Beacon-Vorrichtung 110–112 konfiguriert sein, periodisch eine flüchtige Kennung oder einen Message Integrity Code zu bestimmen, der innerhalb des Werbeframes gesendet werden soll. Insbesondere kann die statische Kennung in vollständig öffentlichen und offenen Situationen, in denen es wünschenswert ist, über ein Scangerät zu verfügen, das die statischen Kennungen überwacht und versteht. Ferner können Beacon-Vorrichtungen in einigen Ausführungsformen zusätzlich einen Message Authentication Code (MAC) zusammen mit der statischen Kennung übertragen, um eine Authentifizierung der statischen Kennung zu ermöglichen und ferner vor Namensraumkollisionen zu schützen.
-
Jedoch kann es in vielen Fällen nicht gewollt sein, dass die statische Identität und Präsens der ersten Beacon-Vorrichtung vollständig transparent und öffentlich verfügbar ist. Daher kann die flüchtige Kennung oder der Message Integrity Code gemäß einem Aspekt der vorliegenden Offenbarung verwendet werden, um ein Mittel bereitzustellen, um die Identität der Beacon-Vorrichtung jeweils durch Ändern eines vorbestimmten Intervalls der von der Beacon-Vorrichtung gesendeten flüchtigen Kennung oder dem Message Integrity Code zu verschleiern. Insbesondere, da die Erzeugung von der flüchtigen Kennung oder Message Integrity Code auf einem oder mehrere geteilten Geheimnissen und einer aktuellen Zeit der Beacon-Vorrichtung basiert, kann eine Entschleierung oder Validierung der jeweiligen flüchtigen Kennungen oder Message Integrity Codes Kenntnis über das eine oder die mehreren geteilten Geheimnisse und ein geteiltes Zeitverständnis erfordern. Anhand dieser Informationspunkte können flüchtige Kennungen und/oder Message Integrity Codes in Situation effektiv verwendet werden, in denen es nicht gewünscht oder gefährlich ist, eine statische Kennung zu bewerben, oder Authentifizierung der Identität einer Beacon-Vorrichtung wünschenswert ist.
-
Ferner, da die Überwachungseinheiten 112 bis 114 typischerweise keine geteilten Geheimnisse oder ein geteiltes Zeitverständnis aufweisen, sind die flüchtigen Kennungen oder Message Integrity Codes jeweils nicht in der Lage, direkt verwendbar oder validierbar zu sein und können zusätzliche Verfahrensschritte erfordern, um sie für Überwachungseinheiten 112 und 114 zum Empfangen der Authentifizierung der Beacon-Vorrichtung verwendbar zu machen. Daher können flüchtige Kennungen oder Message Integrity Codes verwendet werden, um Privatsphäre, Sicherheit und Mechanismen zur Zugangssteuerung bereitzustellen.
-
Beispielerzeugung flüchtiger Kennungen
-
2A stellt ein Beispiel-Funktionsdiagramm 200 zur Erzeugung flüchtiger Kennungen auf einer Beacon-Vorrichtung gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung dar. Insbesondere stellt Funktionsdiagramm 200 ein Verfahren zum Erzeugen einer flüchtigen Kennung 204 aus einer statischen Kennung 202 dar.
-
Ein zeitbasierter Zähler 206 kann verwendet werden, um eine Zeitzählung im Verlauf der Zeit zu erhöhen (z. B. kann die Zeitzählung einmal pro Sekunde, wie in 2A gezeigt, oder in einem anderen festgelegten Erhöhungsintervall erhöhen). Das Intervall, in dem der zeitbasierte Zähler 206 die Zeitzählung erhöht, kann ein geteiltes Geheimnis zwischen der Beacon-Vorrichtung und der Verifizierungseinheit sein, sodass die Verifizierungseinheit fähig ist, die aktuelle Zeitzählung an der Beacon-Vorrichtung zu einem vorgegebenen Zeitpunkt mit angemessener Genauigkeit vorauszusagen, wohingegen Vorrichtungen, die keine Kenntnis über das Erhöhungsintervall besitzen, unfähig sein können, dies zu tun.
-
Der zeitbasierte Zähler 206 kann die Zeitzählung in vorbestimmten Erhöhungsquanten 208 je Erhöhungsvorgang erhöhen. Die Erhöhungsquanten 208 können eine Zahl sein, die gleich Eins oder ungleich Eins ist. Die Erhöhungsquanten 208 können ein geteiltes Geheimnis zwischen der Beacon-Vorrichtung und der Verifizierungseinheit sein, sodass die Verifizierungseinheit fähig ist, die aktuelle Zeitzählung an einer Beacon-Vorrichtung zu einem vorgegebenen Zeitpunkt mit angemessener Genauigkeit vorauszusagen, wohingegen Vorrichtungen, die keine Kenntnis über die Erhöhungsquanten 208 besitzen, unfähig sein können, dies zu tun. In gleicher Weise kann eine Verwendung von Erhöhungsquanten 208, die ungleich Eins sind, die Entropie der resultierenden flüchtigen Kennungen 204 erhöhen.
-
Die Beacon-Vorrichtung kann außerdem eine Rotationsrate 212 verwenden, um zu definieren, wie oft die Beacon-Vorrichtung eine neue flüchtige Kennung erzeugen sollte. Infolgedessen kann die Rotationsrate 212 auch verwendet werden, um eine Zeitspanne zu definieren, für die eine gegebene flüchtige Kennung eine gültige Identifizierung für die sendende Beacon-Vorrichtung darstellt.
-
Als solches kann die aktuelle Zeitzählung des zeitbasierten Zählers 206, wenn eine neue flüchtige Kennung gemäß der aktuellen Zeit und Rotationsrate 212 erzeugt werden soll, ausgelesen oder anderweitig erhalten werden. So kann beispielsweise ein Verriegelungswerkzeug 210 verwendet werden, um die bestimmte Zeitzählung des Zählers 206 zu einem vorgegebenen Zeitpunkt festzuhalten. Die Rotationsrate 212 kann außerdem ein geteiltes Geheimnis zwischen der Beacon-Vorrichtung und der Verifizierungseinheit ein, sodass die Verifizierungseinheit fähig ist, mit angemessener Genauigkeit vorauszusagen, wann und wie oft die Beacon-Vorrichtung eine neue flüchtige Kennung erzeugen wird, wohingegen Vorrichtungen, die keine Kenntnis über die Rotationsrate besitzen, unfähig sein können, dies zu tun.
-
Die verschiedenen vorstehend beschriebenen Variablen geteilter Geheimnisse können verwendet werden, um der Beacon-Vorrichtung und der Verifizierungseinheit ein geteiltes Bewusstsein von einer Sekunde oder einer anderen Zeitrasterung innerhalb eines eindeutigen Zeiterhöhungsschemas bereitzustellen, das einen zufälligen Startpunkt aufweist, der zu der Zeit der Bereitstellung festgelegt wird.
-
Sobald die aktuelle Zeitzählung erhalten wurde, kann sie zusammen mit der statischen Kennung 202 verwendet werden, um eine zeitlich modifiziert Kennung zu erzeugen. Insbesondere, wie in 2A gezeigt, kann die zeitlich modifizierte Kennung durch Durchführen bei 214 einer Exklusiv-Oder-Operation im Zusammenhang mit der aktuellen Zeitzählung und der statischen Kennung 202 erhalten werden. Demnach kann die aktuelle Zeitzählung, in derartigen Ausführungsformen, durch Daten dargestellt sein, die die gleiche Bit-Größe wie die statische Kennung 202 aufweisen.
-
Die zeitlich modifizierte Kennung kann dann zusammen mit einem Rotationsschlüssel 216 verwendet werden, um die flüchtige Kennung 204 zu erzeugen. So können beispielsweise, wie in 2A gezeigt, die zeitlich modifizierte Kennung oder der Rotationsschlüssel 216 in eine Advanced Encryption Standard 128-Bit-Blockchiffre 218 oder andere Verschleierungsfunktion eingegeben werden.
-
Der Rotationsschlüssel 216 kann spezifisch für jede Beacon-Vorrichtung sein und kann ein geteiltes Geheimnis zwischen jeder Beacon-Vorrichtung und der Verifizierungseinheit sein. Von daher werden, wenn eine flüchtige Kennung 204 gegeben ist, nur die Beacon-Vorrichtung und die Verifizierungseinheit, die Kenntnis über den bestimmten Rotationsschlüssel 216 der Beacon-Vorrichtung haben, in der Lage sein, die flüchtige Kennung 204 zu entschleiern oder zu validieren, um die zeitlich modifizierte Kennung zu erhalten. Ferner, da der Rotationsschlüssel 216 für jede Beacon-Vorrichtung spezifisch ist, wird, wenn eine der mehreren Beacon-Vorrichtungen kompromittiert wird oder ihre Informationen anderweitig öffentlich zugänglich werden, eine böswillige Einheit unfähig sein, flüchtige Kennungen, die jede der anderen nicht kompromittierten Beacon-Vorrichtungen darstellen, betrügerisch zu erzeugen.
-
Auf diese Weise kann eine Beacon-Vorrichtung periodisch eine neue flüchtige Kennung 204 zum Einschließen in ihren Übertragungen erzeugen. Ferner, da die Verifizierungseinheit ebenfalls Kenntnis über die geteilten Geheimnisse besitzt und den zeitbasierten Beacon-Zähler mit angemessener Genauigkeit voraussagen kann, kann die Verifizierungseinheit flüchtige Kennungen, die von jeder Beacon-Vorrichtung zu jedem beliebigen Zeitpunkt verwendet werden, unabhängig erzeugen und speichern.
-
Weiterhin kann Kombinieren der aktuellen Zeitzählung mit der statischen Kennung 202 sicherstellen, das resultierende flüchtige Kennung 204 nicht für jede nachfolgende Erzeugung einer flüchtigen Kennung stabil sein wird. Zusätzlich ermöglicht Kombinieren der Zeitzählung mit der statischen Kennung 202 es Zeit, durch die Verifizierungseinheit als Teil des Umkehrungs- und Validierungsverfahrens von flüchtigen Kennungen extrahiert zu werden, wodurch der Verifizierungseinheit ermöglicht wird, sowohl sicherzustellen, dass die flüchtige Kennung innerhalb eines vereinbarten Zeitfensters ankommt, als auch das geteilte Zeitbewusstsein durch Empfangen einer Angabe der Zeitzählung, die von der Beacon-Vorrichtung verwendet wird, um die flüchtige Kennung 204 zu erhalten, zu aktualisieren und aufrechtzuerhalten.
-
Beispielverarbeitung flüchtiger Kennungen
-
3A stellt ein Beispiel-Funktionsdiagramm 300 zur Verarbeitung flüchtiger Kennungen auf einer Überwachungseinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung dar. Die Überwachungseinheit kann eine flüchtige Kennung 302 von einer Beacon-Vorrichtung empfangen.
-
Als Reaktion auf das Empfangen der flüchtigen Kennung 302 von der Beacon-Vorrichtung kann die Überwachungseinheit die empfangene flüchtige Kennung 302 an eine Verifizierungseinheit übertragen, damit die flüchtige Kennung 302 validiert und verstanden wird. Zusätzlich kann die Überwachungseinheit einen Vorrichtungs-Empfangszeitstempel 304 zusammen mit der flüchtigen Kennung 302 übertragen. Der Vorrichtungs-Empfangszeitstempel kann eine Zeit angeben, zu der die Überwachungseinheit die flüchtige Kennung von der Beacon-Vorrichtung empfangen hat.
-
Alternativ oder zusätzlich kann die Überwachungseinheit einige Aspekte der Funktionalität der Verifizierungseinheit lokal durchführen oder kann zuvor empfangene Daten von der Verifizierungseinheit aufweisen, die es der Überwachungseinheit ermöglichen, die Beacon-Vorrichtung zu identifizieren oder zumindest eine angemessene Reaktion auf Empfangen der Beacon-Vorrichtungsübertragung ohne präzise Identifizierung der Beacon-Vorrichtung zu bestimmen. Demnach kann die Überwachungseinheit in solchen Ausführungsformen eine lokale Suche und Aktion 306 durchführen.
-
Als ein Beispiel kann die Verifizierungseinheit, in einigen Ausführungsformen, Daten auf die Überwachungseinheit vorzuladen, die es der Überwachungseinheit ermöglichen, eine lokale Suche und Aktion 306 durchzuführen. In einigen Ausführungsformen können die vorgeladenen Daten beispielsweise Hash-Filterscherben sein, die in einem probabilistischen Filter (z. B. ein Bloom-Filter) platziert sind, der auf der Überwachungseinheit vorhanden ist. Die Überwachungseinheit kann dann eine Anfrage an den probabilistischen Filter unter Verwendung einer lokalen Hash-Version der flüchtigen Kennung 302 stellen, um eine Angabe (mit einigem Risiko von Falschmeldungen) darüber zu empfangen, ob Filterscherben, die der bestimmten empfangenen flüchtigen Kennung 302 entsprechen, innerhalb des Filterdatensatzes vorhanden sind.
-
Auf diese Weise kann die Überwachungseinheit fähig sein, eine Klasse oder Untergruppe zu identifizieren, zu der die Beacon-Vorrichtung, von der die flüchtige Kennung 302 empfangen wurde, gehört. Daher kann die Überwachungseinheit fähig sein, bestimmte gewünschte Operationen als Reaktion auf das Erhalten der flüchtigen Kennung 302 zu identifizieren, ohne jemals die genaue Identität der Beacon-Vorrichtung zu erhalten, von welcher die flüchtige Kennung 302 empfangen wurde.
-
In weiteren Ausführungsformen kann die Überwachungseinheit die Filterdaten organisiert in mehrere hierarchische probabilistische Filter aufweisen, um für verbesserte Kategorisierung, Identifizierung und Verarbeitungseffizienz zu sorgen.
-
Beispielerzeugung flüchtiger Kennungen
-
4A stellt ein Beispiel-Funktionsdiagramm 400 zur Erzeugung flüchtiger Kennungen auf einer Verifizierungseinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung dar. Genauer gesagt kann das in Funktionsdiagramm 400 dargestellte Verfahren Kenntnis über die geteilten Geheimnisse, die von der Beacon-Vorrichtung zum Vorberechnen flüchtiger Kennungen, deren Verwendung durch eine gegebene Beacon-Vorrichtung zu einer bestimmten Zeit erwartet wird, verwendet werden. Als solches kann die Verifizierungseinheit unter Verwendung des in Diagramm 400 dargestellten Verfahrens einen Zwischenspeicher 410 flüchtiger Kennungen erzeugen, der eine große Anzahl von flüchtigen Kennungen enthält, die von den Beacon-Vorrichtungen über einen erheblichen Zeitraum hinweg verwendet werden.
-
Insbesondere kann die Verifizierungseinheit, für jede Beacon-Vorrichtung, für die entsprechende flüchtige Kennungen in dem Zwischenspeicher 410 flüchtiger Kennungen beinhaltet werden sollen, zunächst die statische Kennung 402, die mit einer solchen Beacon-Vorrichtung assoziiert ist, mit jeder der mehreren Zeitzählungen, die in einer Zeitzählliste 404 beinhaltet sind, kombinieren. Die Zeitzählliste 404 kann eine Zeitzählung für jede flüchtige Kennung, die in dem Zwischenspeicher 410 beinhaltet werden soll, beinhalten. Genauer gesagt kann jede Zeitzählung eine prognostizierte Zeitzählung des zeitbasierten Zählers sein, der in der entsprechenden Beacon-Vorrichtung zu dem Zeitpunkt beinhaltet ist, zu dem die flüchtige Kennung angesichts der bekannten zeithaltenden Parameter voraussichtlich erzeugt wird.
-
Als ein Beispiel, wie in 4A gezeigt, können die mehreren Zeitzählungen, die in der Zeitzählliste 404 beinhaltet sind, durch jeweiliges Durchführen einer Exklusiv-Oder-Operation, jeweils mit der statischen Kennung 402 kombiniert werden, um mehrere zeitlich modifiziert Kennungen zu erhalten.
-
Danach, wie in 4A gezeigt, können die mehreren zeitlich modifizierten Kennungen jeweils zusammen mit einen Rotationsschlüssel 406 in eine Advanced Encryption Standard 128-Bit-Blockchiffre 408 eingegeben werden, um die mehreren flüchtigen Kennungen zu erhalten, die in dem Zwischenspeicher 410 flüchtiger Kennungen beinhaltet werden sollen. Andere Verschleierungsfunktionen können alternativ oder zusätzlich zu der Blockchiffre 408 verwendet werden. Die statische Kennung 402 und der Rotationsschlüssel 406 werden für jede Beacon-Vorrichtung, für die der Zwischenspeicher 410 entsprechende flüchtige Kennungen enthalten soll, spezifisch und unterschiedlich sein. Des Weiteren können die Zeiträume, denen flüchtige Kennungen für eine gegebene Beacon-Vorrichtung entsprechen sollen, durch Modifizieren der Zeitzählungen in Zeitzählliste 404, gesteuert werden.
-
In einigen Ausführungsformen kann der Zwischenspeicher 410 ferner die bestimmte statische Kennung 402 und den Rotationsschlüssel 406, die verwendet werden, um jede flüchtige Kennung, die in dem Zwischenspeicher 410 beinhaltet ist, speichern oder referenzieren. Auf diese Weise, durch Auffinden einer später empfangenen flüchtigen Kennung innerhalb des Zwischenspeichers 410, wird die Verifizierungseinheit fähig sein, die statische Kennung 402 und Rotationsschlüssel 406 für die bestimmte Beacon-Vorrichtung, die eine solche flüchtige Kennung übertragen hat, zu erhalten.
-
Beispielverarbeitung flüchtiger Kennungen
-
5 stellt ein Beispiel-Funktionsdiagramm 500 zur Verarbeitung flüchtiger Kennungen auf einer Verifizierungseinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung dar. Die Verifizierungseinheit kann eine flüchtige Kennung 502 und einen Vorrichtungs-Empfangszeitstempel 504 von einer Überwachungseinheit empfangen. Die Verifizierungseinheit kann die empfangene flüchtige Kennung 502 innerhalb eines Zwischenspeicher 506 flüchtiger Kennungen auffinden, um die statische Kennung 508 und Rotationsschlüssel 510 zu erhalten, die mit der Beacon-Vorrichtung, die die bestimmte flüchtige Kennung 502 gesendet hat, assoziiert sind.
-
Genauer ausgedrückt, wie vorstehend mit Bezug auf 4A besprochen, kann die Verifizierungseinheit erwartete flüchtige Kennungen, die von einer gegebenen Beacon-Vorrichtung verwendet werden, vorberechnen. Als solches kann die Verifizierungseinheit einen Zwischenspeicher 506 flüchtiger Kennungen erzeugen, der eine große Anzahl von flüchtigen Kennungen enthält, die von der Beacon-Vorrichtung über einen erheblichen Zeitraum hinweg verwendet werden.
-
In einigen Ausführungsformen kann für jeden Eintrag einer flüchtigen Kennung, die in dem Zwischenspeicher 506 flüchtiger Kennungen gespeichert ist, auch die statische Kennung 508 und der Rotationsschlüssel 510 für die entsprechende Beacon-Vorrichtung in dem Zwischenspeicher 506 flüchtiger Kennungen gespeichert oder durch den Eintrag darin referenziert werden. Somit kann die Verifizierungseinheit, durch Auffinden der empfangenen flüchtigen Kennung 502 in dem Zwischenspeicher 506, die statische Kennung 508 für die entsprechende Beacon-Vorrichtung erhalten.
-
Zusätzlich kann, in einigen Ausführungsformen, der Vorrichtungs-Empfangszeitstempel 504 als ein Hinweis für ein schnelleres Auffinden der flüchtigen Kennung 502 innerhalb des Zwischenspeichers 506 verwendet werden. So können beispielsweise die flüchtigen Kennungen innerhalb des Zwischenspeichers 506 flüchtiger Kennungen gemäß ihren jeweiligen Gültigkeitszeiten organisiert sein. Daher kann der Zwischenspeicher 506 nach der Zeit herum durchsucht werden, die von dem Vorrichtungs-Empfangszeitstempel 504 bereitgestellt wird, um die flüchtige Kennung 502 innerhalb des Zwischenspeichers 506 schneller aufzufinden.
-
Nachdem die Beacon-Vorrichtung, von der die Überwachungseinheit die flüchtige Kennung empfangen hat, identifiziert wurde, kann die Verifizierungseinheit Informationen, die mit der identifizierten Beacon-Vorrichtung assoziiert sind, der Überwachungseinheit bereitstellen. So können beispielsweise die bereitgestellten Informationen die Identität der Beacon-Vorrichtung, den genauen Standort der Beacon-Vorrichtung, semantische Informationen, die mit der Beacon-Vorrichtung assoziiert sind (z. B. ein Name oder andere textuelle Informationen oder grafische Informationen, die mit der Beacon-Vorrichtung assoziiert sind) oder andere Informationen beinhalten. Alternativ oder zusätzlich zum Versorgen der Überwachungseinheit mit Informationen kann die Verifizierungseinheit eine oder mehrere Operationen als Reaktion auf ein Identifizieren der Beacon-Vorrichtung durchführen, die beispielhaft, Hinzufügen der Überwachungseinheit zu einer bestimmten Eintragsgruppierung, Modifizieren lokal gespeicherter Daten oder Anpassen eines Zählers, der mit Analytik assoziiert ist, beinhalten.
-
In weiteren Ausführungsformen der vorliegenden Offenbarung kann die Verifizierungseinheit eine oder mehrere Sicherheitsprüfungen vor oder nach Identifizieren der Beacon-Vorrichtung durchführen. Als ein Beispiel kann die Verifizierungseinheit die Überwachungseinheit mit einer Zugriffssteuerungsliste abgleichen, die mit der identifizierten Beacon-Vorrichtung oder der empfangenen flüchtigen Kennung 502 assoziiert ist. So kann beispielsweise Verwendung einer Zugriffssteuerungsliste dem Bediener der Beacon-Vorrichtung ermöglichen zu steuern, welche Überwachungseinheiten berechtigt sind, von der Verifizierungseinheit mit den Informationen, die mit der Beacon-Vorrichtung assoziiert sind (z. B. die Identität der Beacon-Vorrichtung), versorgt zu werden.
-
Des Weiteren, da die flüchtigen Kennungen, die von der Beacon-Vorrichtung verwendet werden, sich mit der Zeit ändern, kann die Zugriffssteuerungsliste außerdem festlegen, wann und für wie lange bestimmte Überwachungseinheiten berechtigt sind, die Informationen, die mit der Beacon-Vorrichtung assoziiert sind, zu empfangen. In einer solchen Weise können Verifizierungseinheiten dazu in der Lage sein, spezifische Überwachungseinheiten zu befähigen, für ein definiertes Zeitintervall flüchtige Kennungen zu erkennen, ohne die Privatsphäre vor oder nach diesem Intervall zu kompromittieren.
-
Darüber hinaus kann die Verifizierungseinheit die flüchtige Kennung 502 entschleiern, um eine Zeitzählung 512 zu erhalten, die von der Beacon-Vorrichtung verwendet wird, um die flüchtige Kennung 502 zu erzeugen. Die Verifizierungseinheit kann anschließend eine Zeitdifferenz zwischen der Zeitzählung 512, die von der Beacon-Vorrichtung verwendet wird, um die flüchtige Kennung zu erzeugen, und dem Vorrichtungs-Empfangszeitstempel 504, der ebenfalls von der Überwachungseinheit empfangen wird, bestimmen. Wenn die Zeitdifferenz einen Schwellenwert (z. B. die Rotationsrate) übersteigt, dann können der Überwachungseinheit die Informationen, die mit der Beacon-Vorrichtung assoziiert sind, verweigert werden.
-
In noch einem anderen Beispiel, wenn eine Zeitdifferenz zwischen der aktuellen Zeit und dem Vorrichtungs-Empfangszeitstempel 504 einen Schwellenwert übersteigt, dann kann der Empfang der flüchtigen Kennung 502 durch die Überwachungseinheit als abgelaufen eingestuft werden und die Verifizierungseinheit kann einen Zugriff auf die Informationen, die mit der Beacon-Vorrichtung assoziiert sind, verweigern.
-
Die Verifizierungseinheit kann Operationen durchführen, um Taktabweichung der Beacon-Vorrichtung anzugehen. Als ein Beispiel kann die Verifizierungseinheit in einigen Ausführungsformen einen Beacon-Taktkorrekturfaktor für jede der Beacon-Vorrichtungen aufrechterhalten. Der Beacon-Taktkorrekturfaktor für jede Beacon-Vorrichtung kann einen Versatz zwischen dem Taktgeber der Verifizierungseinheit 514 und dem Taktgeber einer solchen Beacon-Vorrichtung beschreiben. Der Beacon-Taktkorrekturfaktor kann ein einzelner Wert sein oder kann eine komplexe Funktion sein, die eine zeitvariierende Beziehung bereitstellt (z. B. einen Skalierungsfaktor beinhaltet).
-
In einigen Ausführungsformen kann der Beacon-Taktkorrekturfaktor durch eine Verifizierungseinheit (dargestellt in 5 durch Synchronisationsbox 516) mindestens teilweise basierend auf der flüchtigen Kennung 502 und dem Vorrichtungs-Empfangszeitstempel 504 aktualisiert werden. Als ein Beispiel kann Aktualisieren 516 des Beacon-Taktkorrekturfaktors Entschleiern der flüchtigen Kennung 502 beinhalten, um die Zeitzählung 512, die von der Beacon-Vorrichtung verwendet wird, um die flüchtige Kennung 502 zu erzeugen, zu erhalten. Der Beacon-Taktkorrekturfaktor kann mindestens teilweise basierend auf einem Vergleich der entschleierten Zeitzählung 512 mit dem Vorrichtungs-Empfangszeitstempel 504 aktualisiert werden.
-
Genauer ausgedrückt kann Entschleiern der flüchtigen Kennung 502 Erhalten der mit der Beacon-Vorrichtung assoziierten statischen Kennung 508 und Rotationsschlüssels 510 aus dem Zwischenspeicher flüchtiger Kennungen 506 und Eingeben der flüchtigen Kennung 502 und des Rotationsschlüssels 510 in eine Advanced Encryption Standard 128-Bit-Blockchiffre 518 beinhalten, um die zeitlich modifizierte Kennung zu erhalten. Andere Verschleierungsfunktionen können alternativ oder zusätzlich zu der Blockchiffre 518 ebenfalls verwendet werden. Als nächstes kann eine Exklusiv-Oder-Operation 520 hinsichtlich der statischen Kennung 508 und der zeitlich modifizierten Kennung durchgeführt werden, um die Zeitzählung 512 zu erhalten, die von der Beacon-Vorrichtung verwendet wird, um die flüchtige Kennung zu erzeugen. Wie vorstehend angemerkt, kann diese Zeitzählung 512 verwendet werden, um den Beacon-Taktkorrekturfaktor zu aktualisieren 516.
-
Auf diese Weise können geteilte Geheimnisse zwischen den Beacon-Vorrichtungen und der Verifizierungseinheit wirksam eingesetzt werden, um autorisierten Überwachungseinheiten Zugang zu Informationen, die mit einer gegebenen Beacon-Vorrichtung assoziiert sind, bereitzustellen. Darüber hinaus können die empfangenen flüchtigen Kennungen entschleiert werden und verwendet werden, um das geteilte Zeitbewusstsein zwischen der Verifizierungseinheit und den Beacon-Vorrichtungen aufrechtzuerhalten oder zu aktualisieren.
-
Beispielerzeugung von Message Integrity Code
-
2B stellt ein Beispiel-Funktionsdiagramm 260 zur Erzeugung von Message Integrity Codes auf einer Beacon-Vorrichtung gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung dar. Insbesondere stellt Funktionsdiagramm 260 ein Verfahren zum Erzeugen eines Message Integrity Codes 264 aus einer statischen Kennung 262 dar.
-
Ein zeitbasierter Zähler 266 kann verwendet werden, um eine Zeitzählung im Verlauf der Zeit zu erhöhen (z. B. kann er die Zeitzählung einmal pro Sekunde oder in einem anderen festgelegten Erhöhungsintervall erhöhen). Das Intervall, in dem der zeitbasierte Zähler 266 die Zeitzählung erhöht, kann ein geteiltes Geheimnis zwischen der Beacon-Vorrichtung und der Verifizierungseinheit sein, sodass die Verifizierungseinheit fähig ist, die aktuelle Zeitzählung an der Beacon-Vorrichtung zu einem vorgegebenen Zeitpunkt mit angemessener Genauigkeit vorauszusagen, wohingegen Vorrichtungen, die keine Kenntnis über das Erhöhungsintervall besitzen, unfähig sein können, dies zu tun.
-
Der zeitbasierte Zähler 266 kann die Zeitzählung in vorbestimmten Erhöhungsquanten je Erhöhungsvorgang erhöhen. Die Erhöhungsquanten können eine Zahl sein, die gleich Eins oder ungleich Eins ist. Die Erhöhungsquanten können ein geteiltes Geheimnis zwischen der Beacon-Vorrichtung und der Verifizierungseinheit sein, sodass die Verifizierungseinheit fähig ist, die aktuelle Zeitzählung an einer Beacon-Vorrichtung zu einem vorgegebenen Zeitpunkt mit angemessener Genauigkeit vorauszusagen, wohingegen Vorrichtungen, die keine Kenntnis über die Erhöhungsquanten besitzen, unfähig sein können, dies zu tun. In gleicher Weise kann eine Verwendung von Erhöhungsquanten, die ungleich Eins sind, die Entropie des resultierenden Message Integrity Codes 264 erhöhen.
-
Die Beacon-Vorrichtung kann außerdem eine Rotationsrate verwenden, um zu definieren, wie oft die Beacon-Vorrichtung einen neuen Message Integrity Code erzeugen sollte. Infolgedessen kann die Rotationsrate auch verwendet werden, um eine Zeitspanne zu definieren, für die ein gegebener Message Integrity Code einen gültigen Integritätscode für die sendende Beacon-Vorrichtung darstellt.
-
Als solches kann die aktuelle Zeitzählung des zeitbasierten Zählers 266, wenn eine neuer Message Integrity Code gemäß der aktuellen Zeit und Rotationsrate erzeugt werden soll, ausgelesen oder anderweitig erhalten werden. So kann beispielsweise ein Verriegelungswerkzeug verwendet werden, um die bestimmte Zeitzählung des Zählers 266 zu einem vorgegebenen Zeitpunkt festzuhalten. Die Rotationsrate kann außerdem ein geteiltes Geheimnis zwischen der Beacon-Vorrichtung und der Verifizierungseinheit ein, sodass die Verifizierungseinheit fähig ist, mit angemessener Genauigkeit vorauszusagen, wann und wie oft die Beacon-Vorrichtung einen neuen Message Integrity Code erzeugen wird, wohingegen Vorrichtungen, die keine Kenntnis über die Rotationsrate besitzen, unfähig sein können, dies zu tun.
-
Die verschiedenen vorstehend beschriebenen Variablen geteilter Geheimnisse können verwendet werden, um der Beacon-Vorrichtung und der Verifizierungseinheit ein geteiltes Bewusstsein von einer Sekunde oder einer anderen Zeitrasterung innerhalb eines eindeutigen Zeiterhöhungsschemas bereitzustellen, das einen zufälligen Startpunkt aufweist, der zu der Zeit der Bereitstellung festgelegt wird.
-
Sobald die Zeitzählung erhalten wurde, kann sie zusammen mit der statischen Kennung 202 verwendet werden, um eine zeitlich modifizierte Kennung zu erzeugen. Insbesondere, wie in 2B gezeigt, kann die zeitlich modifizierte Kennung durch Durchführen bei 274 einer Exklusiv-Oder-Operation hinsichtlich der aktuellen Zeitzählung und der statischen Kennung 262 erhalten werden. Demnach kann die aktuelle Zeitzählung, in derartigen Ausführungsformen, durch Daten dargestellt sein, die die gleiche Bit-Größe wie die statische Kennung 262 aufweisen.
-
Die zeitlich modifizierte Kennung kann dann zusammen mit einem Rotationsschlüssel 276 verwendet werden, um einen Message Integrity Code-Vorläufer zu erzeugen. So können beispielsweise, wie in 2A gezeigt, die zeitlich modifizierte Kennung oder der Rotationsschlüssel 276 in eine Advanced Encryption Standard 128-Bit-Blockchiffre 278 eingegeben werden.
-
Der Rotationsschlüssel 276 kann spezifisch für jede Beacon-Vorrichtung sein und kann ein geteiltes Geheimnis zwischen jeder Beacon-Vorrichtung und der Verifizierungseinheit sein. Von daher, wenn ein Message Integrity Code 264 gegeben ist, werden nur die Beacon-Vorrichtung und die Verifizierungseinheit, die Kenntnis über den bestimmten Rotationsschlüssel 276 der Beacon-Vorrichtung haben, in der Lage sein, den Message Integrity Code 264 zu validieren. Ferner, da der Rotationsschlüssel 276 für jede Beacon-Vorrichtung spezifisch ist, wird, wenn eine der mehreren Beacon-Vorrichtungen kompromittiert wird oder ihre Informationen anderweitig öffentlich zugänglich werden, die Fähigkeit, andere Beacons zu authentifizieren, nicht kompromittiert.
-
Der Message Integrity Code-Vorläufer kann anschließend mit einer Maske 270 durch Durchführen einer UND-Operation (gezeigt bei 272) kombiniert werden, um den Message Integrity Code 264 zu erhalten. In einigen Ausführungsformen kann die Maske 270 verwendet werden, um eine Teilmenge oder einen Teil des Message Integrity Code-Vorläufers zur Verwendung als den Message Integrity Code 264 auszuwählen. In einigen Ausführungsformen kann der Message Integrity Code-Vorläufer beispielsweise ein 16-Byte-Wert sein und die Maske 270 kann verwendet werden, um Daten in einem 4-Byte-Umfang aus dem Message Integrity Code-Vorläufer als den Message Integrity Code 264 auszuwählen. Ähnlich dem Rotationsschlüssel 276 kann die Maske 270, in einigen Ausführungsformen, ein geteiltes Geheimnis zwischen jeder Beacon-Vorrichtung und der Verifizierungseinheit sein.
-
Auf diese Weise kann eine Beacon-Vorrichtung periodisch einen neuen Message Integrity Code 264 zum Einschließen in ihren Übertragungen zusammen mit der statischen Kennung 262 erzeugen. Ferner, da die Verifizierungseinheit ebenfalls Kenntnis über die geteilten Geheimnisse besitzt und den zeitbasierten Beacon-Zähler 266 mit angemessener Genauigkeit voraussagen kann, kann die Verifizierungseinheit Message Integrity Codes, deren Verwendung durch jede Beacon-Vorrichtung zu jedem beliebigen Zeitpunkt erwartet wird, unabhängig erzeugen und speichern.
-
Weiterhin kann Kombinieren der aktuellen Zeitzählung mit der statischen Kennung 202 sicherstellen, das resultierender Message Integrity Code 264 nicht für jede nachfolgende Erzeugung von Message Integrity Code stabil sein wird. Zusätzlich ermöglicht Kombinieren der Zeitzählung mit der statischen Kennung 262 es Zeit, durch die Verifizierungseinheit als Teil des Umkehrungs- und Validierungsverfahrens von Message Integrity Code extrahiert zu werden, wodurch der Verifizierungseinheit ermöglicht wird, sowohl sicherzustellen, dass der Message Integrity Code innerhalb eines vereinbarten Zeitfensters ankommt, als auch das geteilte Zeitbewusstsein durch Empfangen einer Angabe der Zeitzählung, die von der Beacon-Vorrichtung verwendet wird, um den Message Integrity Code 264 zu erhalten, zu aktualisieren und aufrechtzuerhalten.
-
Beispielverarbeitung von Message Integrity Code
-
3B stellt ein Beispiel-Funktionsdiagramm 360 zur Verarbeitung von Message Integrity Codes auf einer Überwachungseinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung dar. Die Überwachungseinheit kann einen Message Integrity Code 362 und eine statische Kennung 364 von einer Beacon-Vorrichtung empfangen.
-
Als Reaktion auf ein Empfangen der statischen Kennung 364 und des Message Integrity Codes 362 von der Beacon-Vorrichtung kann die Überwachungseinheit die empfangene statische Kennung 364 und Message Integrity Code 362 an eine Verifizierungseinheit übertragen, damit der Message Integrity Code 362 validiert und die Verwendung einer statischen Kennung 364 somit authentifiziert werden kann. Zusätzlich kann die Überwachungseinheit einen Vorrichtungs-Empfangszeitstempel 366 zusammen mit dem Message Integrity Code 362 übertragen. Der Vorrichtungs-Empfangszeitstempel 366 kann eine Zeit angeben, zu der die Überwachungseinheit den Message Integrity Code 362 von der Beacon-Vorrichtung empfangen hat.
-
Alternativ oder zusätzlich kann die Überwachungseinheit einige Aspekte der Funktionalität der Verifizierungseinheit lokal durchführen oder kann zuvor empfangene Daten von der Verifizierungseinheit, die es der Überwachungseinheit ermöglichen, die Beacon-Vorrichtung zu identifizieren oder zumindest eine angemessene Reaktion auf Empfangen der Beacon-Vorrichtungsübertragung ohne präzise Identifizierung der Beacon-Vorrichtung zu bestimmen, oder gleichzeitige Authentifizierung des Message Integrity Codes durch die Verifizierungseinheit aufweisen. Demnach kann die Überwachungseinheit in solchen Ausführungsformen eine lokale Suche und Aktion 368 durchführen.
-
Als ein Beispiel kann die Verifizierungseinheit in einigen Ausführungsformen Daten auf die Überwachungseinheit vorladen, die der Überwachungseinheit ermöglichen, die lokale Suche und Aktion 308 durchzuführen. In einigen Ausführungsformen können die vorgeladenen Daten beispielsweise Hash-Filterscherben sein, die in einem probabilistischen Filter (z. B. ein Bloom-Filter) platziert sind, der auf der Überwachungseinheit vorhanden ist. Die Überwachungseinheit kann dann eine Anfrage (gezeigt bei 370) an den probabilistischen Filter unter Verwendung einer lokalen Hash-Version (gezeigt bei 372) des Message Integrity Codes 372 stellen, um eine Angabe (mit einigem Risiko von Falschmeldungen) darüber zu empfangen, ob Filterscherben, die dem bestimmten empfangenen Message Integrity Code 362 entsprechen, innerhalb des Filterdatensatzes vorhanden sind.
-
Auf diese Weise kann die Überwachungseinheit fähig sein, eine Klasse oder Untergruppe zu identifizieren, zu der die Beacon-Vorrichtung, von der der Message Integrity Code 362 empfangen wurde, gehört. Daher kann die Überwachungseinheit fähig sein, bestimmte gewünschte Operationen als Reaktion auf das Erhalten des Message Integrity Codes 362 zu identifizieren, ohne jemals die gleichzeitige Authentifizierung der statischen Kennung 364 zu erhalten.
-
In weiteren Ausführungsformen kann die Überwachungseinheit die Filterdaten organisiert in mehrere hierarchische probabilistische Filter aufweisen, um für verbesserte Kategorisierung, Identifizierung und Verarbeitungseffizienz zu sorgen.
-
4B stellt ein Beispiel-Funktionsdiagramm 460 zur Verarbeitung von Message Integrity Code auf einer Überwachungseinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung dar. Die Verifizierungseinheit kann einen Message Integrity Code 462, eine statische Kennung 464 und einen Vorrichtungs-Empfangszeitstempel 466 von einer Überwachungseinheit empfangen.
-
Gemäß einem Aspekt der vorliegenden Offenbarung kann, in einigen Ausführungsformen, wenn die Verifizierungseinheit einen Message Integrity Code 462 von einer Überwachungseinheit empfängt, die Verifizierungseinheit die Gültigkeit des Message Integrity Codes 462 bestimmen und somit die statische Kennung 464, die von der Beacon-Vorrichtung zusammen mit dem Message Integrity Code 462 gesendet wird, authentifizieren.
-
Als ein Beispiel kann, wenn die Verifizierungseinheit die statische Kennung 464 und Message Integrity Code 462 empfängt, die Verifizierungseinheit ein gleiches Verschleierungsschema und Kenntnis über die geteilten Geheimnisse verwenden, um mehrere erwartete Message Integrity Codes zu erzeugen, deren Verwendung durch jede Beacon-Vorrichtung, die mit der empfangenen statischen Kennung assoziiert sind, erwartet wird. Der empfangene Message Integrity Code kann anschließend mit den erwarteten Message Integrity Codes abgeglichen werden. Wird eine Übereinstimmung gefunden, kann die Verifizierungseinheit der Überwachungseinheit anschließend die Verwendung der statischen Kennung durch die Beacon-Vorrichtung verifizieren.
-
Insbesondere können die mehreren erwarteten Message Integrity Codes in einigen Ausführungsformen erzeugt werden, indem zunächst mehrere erwartete zeitlich modifizierte Kennungen durch jeweiliges Durchführen einer Exklusiv-Oder-Operation 468 im Hinblick auf die statische Kennung 464 und mehrere erwartete Zeitzählungen, die in einer Zeitzählliste 470 beinhaltet sind, erzeugt werden.
-
Als ein Beispiel können die mehrere erwarteten Zeitzählungen, die in der Zeitzählliste 470 beinhaltet sind, mindestens teilweise basierend auf dem Vorrichtungs-Empfangszeitstempel 466 erzeugt werden. Die Verifizierungseinheit kann ihr geteiltes Wissen über das bestimmte zeithaltende Schema der Beacon-Vorrichtung, die mit der statischen Kennung 464 identifiziert ist, verwenden, um die Beacon-Zähler Zeitzählungen zu bestimmen, die ein solcher Beacon verwenden wird, um seinen Message Integrity Code innerhalb eines Zeitfensters um die Zeit herum, die durch den Vorrichtungs-Empfangszeitstempel 466 angegeben ist zu erzeugen.
-
Die mehreren erwarteten zeitlich modifizierten Kennungen können dann jeweils in eine Advanced Encryption Standard 128-Bit-Blockchiffre 472 zusammen mit einem Rotationsschlüssel 474, der mit den statischen Kennungen 464 assoziiert ist, eingegeben werden, um mehrere erwartete Message Integrity Code-Vorläufer zu erzeugen. Der Rotationsschlüssel 474 kann ein geteiltes Geheimnis sein, das für die Beacon-Vorrichtung, die mit der statischen Kennung 464 assoziiert ist, spezifisch ist.
-
Eine UND-Operation 476 kann anschließend im Hinblick auf eine Maske 478 und die mehreren erwarteten Message Integrity Code-Vorläufer jeweils durchgeführt werden, um eine Liste erwarteter Message Integrity Codes zu erzeugen. In einigen Ausführungsformen kann die Maske 478 ein geteiltes Geheimnis sein, das für die Beacon-Vorrichtung spezifisch ist.
-
In einigen Ausführungsformen kann, für jeden erwarteten Message Integrity Code, der durch die Verifizierungseinheit erzeugt wird, die erwartete Zeitzählung, die verwendet wird, um solchen erwarteten Message Integrity Code zu erzeugen, auch mit dem und/oder referenziert durch den entsprechenden erwarteten Message Integrity Code gespeichert werden. Daher kann die Verifizierungseinheit durch Abgleichen des empfangenen Message Integrity Codes mit einem erzeugten erwarteten Message Integrity Code außerdem die erwartete Zeitzählung erhalten, die verwendet wird, um den erwarteten Message Integrity Code zu erzeugen. Eine solche erwartete Zeitzählung sollte der Zeitzählung entsprechen, die von der Beacon-Vorrichtung verwendet wird, um den gesendeten Message Integrity Code zu erzeugen, wodurch eine Angabe eines aktuellen Status des internen Taktgebers der Beacon-Vorrichtung bereitgestellt wird, wie nachstehend ferner besprochen.
-
Die Verifizierungseinheit kann den empfangenen Message Integrity Code 472 durch Abgleichen (gezeigt bei 482) des Message Integrity Codes 462 mit einem der erwarteten Message Integrity Codes in der erzeugten Liste validieren. Als Reaktion auf Validieren des Message Integrity Codes 462 kann die Verifizierungseinheit verschiedene Operationen durchführen (gezeigt bei 484) und/oder zusätzliche Informationen erhalten.
-
Als ein Beispiel kann die Verifizierungseinheit die Verwendung der statischen Kennung 464 durch die Beacon-Vorrichtung für die Überwachungsvorrichtung authentifizieren und kann, in einigen Ausführungsformen, der Überwachungseinheit weitere Informationen bereitstellen, die mit der authentifizierten Beacon-Vorrichtung assoziiert sind. So können beispielsweise die bereitgestellten Informationen den genauen Standort der Beacon-Vorrichtung, semantische Informationen, die mit der Beacon-Vorrichtung assoziiert sind (z. B. ein Name oder andere textuelle Informationen oder grafische Informationen, die mit der Beacon-Vorrichtung assoziiert sind) oder andere Informationen beinhalten. Alternativ oder zusätzlich zum Versorgen der Überwachungseinheit mit Informationen kann die Verifizierungseinheit eine oder mehrere Operationen als Reaktion auf ein Authentifizieren der Verwendung der statischen Kennung durchführen, die beispielhaft, Hinzufügen der Überwachungseinheit zu einer bestimmten Eintragsgruppierung, Modifizieren lokal gespeicherter Daten oder Anpassen eines Zählers, der mit Analytik assoziiert ist, beinhalten.
-
In weiteren Ausführungsformen der vorliegenden Offenbarung kann die Verifizierungseinheit eine oder mehrere Sicherheitsprüfungen vor oder nach Authentifizieren oder Authentifizieren der Beacon-Vorrichtung durchführen. Als ein Beispiel kann die Verifizierungseinheit die Überwachungseinheit mit einer Zugriffssteuerungsliste abgleichen, die jeweils mit der authentifizierten Beacon-Vorrichtung oder dem empfangenen Message Integrity Code assoziiert ist. So kann beispielsweise Verwendung einer Zugriffssteuerungsliste dem Bediener der Beacon-Vorrichtung ermöglichen zu steuern, welche Überwachungseinheiten berechtigt sind, von der Verifizierungseinheit mit einer Authentifizierung der Beacon-Vorrichtung oder den zusätzlichen Informationen, die mit der Beacon-Vorrichtung assoziiert sind, versorgt zu werden.
-
Des Weiteren, da die Message Integrity Codes, die von der Beacon-Vorrichtung verwendet werden, sich mit der Zeit ändern, kann die Zugriffssteuerungsliste außerdem festlegen, wann und für wie lange bestimmte Überwachungseinheiten berechtigt sind, die Authentifizierung und/oder Informationen, die mit der Beacon-Vorrichtung assoziiert sind, zu empfangen. In einer solchen Weise können Verifizierungseinheiten dazu in der Lage sein, spezifische Überwachungseinheiten zu befähigen, für ein definiertes Zeitintervall eine Authentifizierung von Message Integrity Codes zu empfangen, ohne die Privatsphäre vor oder nach diesem Intervall zu kompromittieren.
-
Als ein anderes Beispiel kann die Verifizierungseinheit in einigen Ausführungsformen die erwartete Zeitzählung identifizieren, die verwendet wurde, um den erwarteten Message Integrity Code, mit dem der empfangene Message Integrity Code 462 abgeglichen wurde, zu erzeugen. Die Verifizierungseinheit kann anschließend eine Zeitdifferenz zwischen der erwarteten Zeitzählung und dem Vorrichtungs-Empfangszeitstempel 466, der ebenfalls von der Überwachungseinheit empfangen wird, bestimmen. Wenn die Zeitdifferenz einen Schwellenwert (z. B. die Rotationsrate) übersteigt, dann können der Überwachungseinheit die Authentifizierung der Beacon-Vorrichtung und/oder die zusätzlichen Informationen, die mit der Beacon-Vorrichtung assoziiert sind, verweigert werden.
-
In noch einem anderen Beispiel, wenn eine Zeitdifferenz zwischen der aktuellen Zeit und dem Vorrichtungs-Empfangszeitstempel 466 einen Schwellenwert übersteigt, dann kann der Empfang des Message Integrity Codes 462 durch die Überwachungseinheit als abgelaufen eingestuft werden und die Verifizierungseinheit kann einen Zugriff auf die Authentifizierung der Beacon-Vorrichtung und/oder die zusätzlichen Informationen, die mit der Beacon-Vorrichtung assoziiert sind, verweigern.
-
In noch weiteren Ausführungsformen der vorliegenden Offenbarung kann die Verifizierungseinheit Operationen durchführen, um Taktabweichung der Beacon-Vorrichtung anzugehen. Als ein Beispiel kann die Verifizierungseinheit in einigen Ausführungsformen einen Beacon-Taktkorrekturfaktor für jede der Beacon-Vorrichtungen aufrechterhalten. Der Beacon-Taktkorrekturfaktor für jede Beacon-Vorrichtung kann einen Versatz zwischen dem Taktgeber der Verifizierungseinheit 486 und dem Zähler einer solchen Beacon-Vorrichtung beschreiben. Der Beacon-Taktkorrekturfaktor kann ein einzelner Wert sein oder kann eine komplexe Funktion sein, die eine zeitvariierende Beziehung bereitstellt (z. B. einen Skalierungsfaktor beinhaltet).
-
In einigen Ausführungsformen kann der Beacon-Taktkorrekturfaktor durch eine Verifizierungseinheit mindestens teilweise basierend auf dem Message Integrity Code 462 und dem Vorrichtungs-Empfangszeitstempel 466 aktualisiert werden (gezeigt bei 488). Als ein Beispiel kann Aktualisieren des Beacon-Taktkorrekturfaktors Identifizieren der erwarteten Zeitzählung 480 beinhalten, die verwendet wird, um den erwarteten Message Integrity Code zu erzeugen, mit dem der empfangene Message Integrity Code 462 bei 482 abgeglichen wurde. Der Beacon-Taktkorrekturfaktor kann mindestens teilweise basierend auf einem Vergleich der erwarteten Zeitzählung 480 mit dem Vorrichtungs-Empfangszeitstempel 466 aktualisiert werden.
-
Auf diese Weise können geteilte Geheimnisse zwischen den Beacon-Vorrichtungen und der Verifizierungseinheit wirksam eingesetzt werden, um autorisierten Überwachungseinheiten eine Authentifizierung einer gegebenen Beacon-Vorrichtung bereitzustellen. Darüber hinaus können die empfangenen Message Integrity Codes verwendet werden, um das geteilte Zeitbewusstsein zwischen der Verifizierungseinheit und den Beacon-Vorrichtungen aufrechtzuerhalten oder zu aktualisieren.
-
Die hier besprochene Technologie nimmt Bezug auf Server, Datenbanken, Softwareanwendungen, und sonstige computerbasierte Systeme, sowie auch unternommene Handlungen und die an und von derartigen Systemen und gesendeten Informationen. Der Durchschnittsfachmann auf diesem Gebiet wird erkennen, dass die naturgemäße Flexibilität computergestützter Systeme eine große Vielfalt an möglichen Konfigurationen, Kombinationen und der Aufteilung von Aufgaben und Funktionalitäten zwischen und unter den Komponenten ermöglicht. Die hierin diskutierten Serverprozesse können beispielsweise unter Verwendung eines einzelnen Servers oder mehrerer in Kombination betriebener Server umgesetzt werden. Datenbanken und Anwendungen können auf einem einzigen System oder verteilt auf mehrere Systeme implementiert werden. Verteilte Komponenten können sequenziell oder parallel betrieben werden.
-
Darüber hinaus bezieht sich der hierin verwendete Begriff „Computergerät” auf ein elektronische Gerät zur Speicherung und Verarbeitung von Daten. Jedes Computergerät kann einen Prozessor bzw. mehrere Prozessoren und einen Speicher beinhalten. Der Speicher kann Anweisungen speichern, die bei Ausführung durch einen Prozessor bzw. mehrere Prozessoren den Prozessor bzw. die mehreren Prozessoren veranlassen, Operationen zur Bereitstellung der Funktionalität auszuführen. Ferner können Computergeräte in einigen Fällen ein Modul oder mehrere Module zur Bereitstellung einer bestimmten Funktionalität implementieren. Der Begriff „Modul” bezieht sich auf eine Computer-Logik, die zur Bereitstellung der gewünschten Funktionalität eingesetzt wird. Daher kann ein Modul in Hardware, Firmware und/oder Software, die einen Allzweck-Prozessor steuert, implementiert werden. In einer Ausführungsform sind die Module Programmcode-Dateien, die im Speichergerät gespeichert und in einem Speicher geladen sind sowie von einem Prozessor ausgeführt werden oder die von Computerprogramm-Produkten bereitgestellt werden können, wie beispielsweise computerausführbare Anweisungen, die in einem körperlichen, computerlesbaren Speichermedium, wie einem RAM, einer Festplatte oder einem optischen oder magnetischen Datenträger, gespeichert sind.
-
Obwohl der vorliegende Erfindungsgegenstand im Detail unter Bezugnahme auf seine spezifischen exemplarischen Ausführungsformen und Verfahren beschrieben wurde, ist erkennbar, dass der Fachmann mit dem Verständnis des Vorstehenden leicht Änderungen an den, Varianten von den und Äquivalente dieser Ausführungsformen erzeugen kann. Demgemäß ist der Umfang der vorliegenden Offenlegung nur beispielhaft und nicht begrenzend, und die betroffene Offenbarung schließt die Einbeziehung solcher Modifizierungen, Varianten und/oder Hinzufügungen des vorliegenden Gegenstands nicht aus, die für den Fachmann problemlos offensichtlich sind.