DE202012013404U1 - Finden von Benutzern in der Nähe ohne Offenlegung des eigenen Standortes - Google Patents

Finden von Benutzern in der Nähe ohne Offenlegung des eigenen Standortes Download PDF

Info

Publication number
DE202012013404U1
DE202012013404U1 DE202012013404.3U DE202012013404U DE202012013404U1 DE 202012013404 U1 DE202012013404 U1 DE 202012013404U1 DE 202012013404 U DE202012013404 U DE 202012013404U DE 202012013404 U1 DE202012013404 U1 DE 202012013404U1
Authority
DE
Germany
Prior art keywords
portable device
location
otps
secure
descriptors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE202012013404.3U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE202012013404U1 publication Critical patent/DE202012013404U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/023Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/20Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
    • H04W4/21Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel for social networking applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2242/00Special services or facilities
    • H04M2242/30Determination of the location of a subscriber
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42348Location-based services which utilize the location information of a target
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/63Location-dependent; Proximity-dependent

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Tragbares Gerät, umfassend: einen oder mehrere Prozessoren; ein Kommunikationsmodul, das mit dem einen oder den mehreren Prozessoren gekoppelt und so konfiguriert ist, dass es Signale über ein drahtloses Kommunikationsnetzwerk sendet und empfängt; einen computerlesbaren Speicher, der mit dem einen oder den mehreren Prozessoren gekoppelt ist und auf dem Anweisungen gespeichert sind, die, wenn sie auf dem einen oder den mehreren Prozessoren ausgeführt werden, dazu führen, dass das tragbare Gerät: einen Satz von einem oder mehreren One-Time Pads (OTPs) mithilfe eines Signals von einer Umgebung erzeugt, in der das tragbare Gerät betrieben wird, worin das Signal über das Kommunikationsmodul empfangen wird; einen Satz von einem oder mehreren Ortsdeskriptoren auf Basis eines aktuellen geografischen Orts des tragbaren Geräts erzeugt, worin jeder Ortsdeskriptor ein geografisches Gebiet angibt, das mit dem aktuellen geografischen Ort des tragbaren Geräts verbunden ist; einen Satz von einem oder mehreren sicheren Ortsdeskriptoren mithilfe einer kryptografischen Funktion, den Satz von OTPs und den Satz von Ortsdeskriptoren erzeugt; den Satz der sicheren Ortsindikatoren über das Kommunikationsmodul einem Server bereitstellt, der im drahtlosen Netzwerk betrieben wird, zur Bestimmung mithilfe der Vielzahl von sicheren Ortsdeskriptoren eines oder mehrerer Geräte, die sich physisch in der Nähe des tragbaren Geräts befinden.

Description

  • Gebiet der Offenbarung
  • Die vorliegende Offenbarung bezieht sich auf ortsbasierte Dienste und insbesondere auf die Benachrichtigung eines Benutzers tragbarer Geräte, wenn andere Benutzer tragbarer Geräte sich in der Nähe befinden, ohne die Privatsphäre der Benutzer zu gefährden. 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
  • Die hierin angegebene Hintergrundbeschreibung soll den Kontext der Offenbarung allgemein darstellen. Die Arbeit der vorliegend genannten Erfinder, in dem Umfang, wie sie in diesem Hintergrundabschnitt beschrieben ist, sowie Aspekte der Beschreibung, die zum Zeitpunkt der Anmeldung sonst möglicherweise nicht als Stand der Technik qualifiziert sind, werden weder ausdrücklich noch stillschweigend als Stand der Technik gegenüber der vorliegenden Offenbarung anerkannt.
  • Viele heute verkaufte tragbare Kommunikationsgeräte, wie Smartphones oder Tablet-PCs, können ihren Ort bestimmen. Zum Beispiel kann ein tragbares Kommunikationssystem mit einem Global Positioning System(GPS)-Chip ausgestattet sein, um den Breitengrad, den Längengrad und die Höhe des Geräts auf Basis von Signalen mehrerer GPS-Satelliten zu bestimmen. Einige Geräte können außerdem ihren Ort mithilfe von Signalen von „Hotspots” wie Wi-Fi-Zugangspunkten bestimmen. Andere Positonierungstechniken, die heute verfügbar sind, sind z. B. Näherungssensoren unter Verwendung von Radio-Frequency Identification (RFID), Triangulation unter Verwendung von Funksignalen von festen Mobilfunkinfrastrukturelementen usw.
  • Hersteller tragbarer Kommunikationsgeräte sowie verschiedene Softwareentwickler haben zahlreiche Softwareanwendungen erstellt, die Ortsdaten für Navigation, Suche, Social Networking, Spiele usw. verwenden. Zum Beispiel ermöglichen es einige Anwendungen Benutzern, ihren Ort automatisch einem Netzwerkserver zu melden und ihren Ort Freunden und Verwandten mitzuteilen. Der Markt für diese und andere ortsbasierte Anwendungen und Dienste wächst stetig, ebenso aber auch die Bedenken in Bezug auf Zuverlässigkeit, Genauigkeit und Privatsphäre solcher Anwendungen und Dienste.
  • Zusammenfassung
  • Ein Verfahren gemäß einer Ausführungsform wird in einem tragbaren Gerät implementiert, das in einem drahtlosen Kommunikationsnetzwerk betrieben wird. Das Verfahren dient der sicheren Meldung eines Hinweises eines aktuellen geografischen Orts des tragbaren Geräts an einen Server, ohne dem Server den aktuellen geografischen Ort des tragbaren Geräts offenzulegen, wobei der Server kommunikativ mit dem Kommunikationsnetzwerk gekoppelt ist. Das Verfahren umfasst die Erzeugung eines pseudo-zufälligen Werts mithilfe eines Signals aus einer Umgebung, in der das tragbare Gerät betrieben wird, die Erzeugung eines Ortsdeskriptors auf Basis des aktuellen geografischen Orts des tragbaren Geräts, die Anwendung einer kryptografischen Funktion auf eine Kombination aus dem pseudo-zufälligen Wert und dem Ortsdeskriptor, um einen sicheren Ortsindikator für das tragbare Gerät zu erzeugen, und die Veranlassung des elektronischen Sendens des sicheren Ortsindikators an den Server über das Kommunikationsnetzwerk.
  • Ein Verfahren gemäß einer anderen Ausführungsform wird in einem tragbaren Gerät implementiert, das in einem drahtlosen Kommunikationsnetzwerk betrieben wird. Das Verfahren dient der sicheren Meldung eines Hinweises eines aktuellen geografischen Orts des tragbaren Geräts an einen Server, ohne dem Server den aktuellen geografischen Ort des tragbaren Geräts offenzulegen, wobei der Server kommunikativ mit dem Kommunikationsnetzwerk gekoppelt ist. Das Verfahren umfasst die Ableitung einer Vielzahl von One-Time Pads (OTPs) aus der Entropie der Umgebung, die Bestimmung des aktuellen geografischen Orts des tragbaren Geräts, die Erzeugung einer Vielzahl von Ortsdeskriptoren auf Basis des aktuellen geografischen Orts des tragbaren Geräts, wobei die Vielzahl der Ortsdeskriptoren ein jeweiliges geografisches Gebiet angeben, das den aktuellen geografischen Ort des tragbaren Geräts umfasst oder in dessen Nähe liegt, Hashing jeder Kombination aus einer der Vielzahl der OTPs mit einem der Vielzahl von Ortsdeskriptoren, um eine Vielzahl sicherer Ortsindikatoren zu erzeugen, und Bereitstellung der sicheren Ortsindikatoren und einer Kennung des tragbaren Geräts für den Server über das Kommunikationsnetzwerk.
  • In noch einer weiteren Ausführungsform umfasst ein tragbares Gerät einen oder mehrere Prozessoren, ein Kommunikationsmodul, das mit dem einen oder den mehreren Prozessoren gekoppelt und so konfiguriert ist, dass es Signale über ein drahtloses Kommunikationsnetzwerk sendet und empfängt, einen computerlesbaren Speicher, der mit dem einen oder den mehreren Prozessoren gekoppelt ist, und das Speichern von Anweisungen darauf. Wenn die Anweisungen von dem einen oder den mehreren Prozessoren ausgeführt werden, veranlassen sie das tragbare Gerät, eine Vielzahl von One-Time Pads (OTPs) mithilfe eines Signals aus einer Umgebung zu erzeugen, in der das tragbare Gerät betrieben wird, wobei das Signal über das Kommunikationsmodul empfangen wird, und eine Vielzahl von Ortsdeskriptoren auf Basis eines aktuellen geografischen Orts des tragbaren Geräts zu erzeugen, wobei die Vielzahl der Ortsdeskriptoren ein jeweiliges geografisches Gebiet angeben, das mit dem aktuellen geografischen Ort des tragbare Geräts verbunden ist, und eine Vielzahl sicherer Ortsindikatoren mithilfe der kryptografischen Funktion, der Vielzahl der OTPs und der Vielzahl der Ortsdeskriptoren zu erzeugen und die Vielzahl der sicheren Ortsindikatoren über das Kommunikationsmoduls einem Server bereitzustellen, der im drahtlosen Kommunikationsnetzwerk betrieben wird, um mithilfe der Vielzahl der sicheren Ortsdeskriptoren eines oder mehrere Geräte zu bestimmen, die sich physisch in der Nähe des tragbaren Geräts befinden.
  • Ein Verfahren einer anderen Ausführungsform wird in einem Server implementiert, der mit einem drahtlosen Kommunikationsnetzwerk kommunikativ gekoppelt ist, in dem ein erstes tragbares Gerät und ein zweites tragbares Gerät betrieben werden. Das Verfahren umfasst den elektronischen Empfang eines ersten sicheren Ortsindikators vom ersten tragbaren Computergerät am Server, wobei der erste sichere Ortsindikator mithilfe eines Orts des ersten tragbaren Computergeräts erzeugt wurde, und der erste sichere Ortsindikator den Ort des ersten tragbaren Computergeräts dem Server nicht offenlegt. Das Verfahren umfasst außerdem den elektronischen Empfang eines zweiten sicheren Ortsindikators vom zweiten tragbaren Computergerät am Server, wobei der zweite sichere Ortsindikator mithilfe eines Orts des zweiten tragbaren Computergeräts erzeugt wurde, und der zweite sichere Ortsindikator den Ort des zweiten tragbaren Computergeräts dem Server nicht offenlegt. Des Weiteren umfasst das Verfahren das Vergleichen des ersten sicheren Ortsindikators mit dem zweiten sicheren Ortsindikator und, als Reaktion auf die Bestimmung, dass der erste sichere Ortsindikator mit dem zweiten sicheren Ortsindikator identisch ist, die Veranlassung des elektronischen Sendens eines Hinweises der physischen Nähe des zweiten tragbaren Computergeräts an das erste Computergerät.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm eines beispielhaften Computersystems, in dem Benutzer tragbarer Geräte, die sich nahe beieinander befinden, sichere Ortsindikatoren erzeugen, um einander zu identifizieren, ohne der anderen Partei ihren jeweiligen Ort offenzulegen;
  • 2 ist ein Blockdiagramm eines beispielhaften Systems für die Erzeugung sicherer Ortsindikatoren in Form privater Orts-Hash-Werte, das in den tragbaren Geräten aus 1 implementiert werden kann;
  • 3 ist ein Flussdiagramm eines beispielhaften Verfahrens für die Erzeugung privater Orts-Hash-Werte, das in einem tragbaren Gerät aus 1 implementiert werden kann;
  • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens für die Erzeugung von One-Time-Pads (OTPs), die verwendet werden können, um private Orts-Hash-Werte in einem tragbaren Gerät aus 1 zu erzeugen;
  • 5 ist ein Flussdiagramm eines beispielhaften Verfahrens für die Erzeugung privater Orts-Hash-Werte mithilfe von OTPs und Längengrad-Breitengrad-Tupeln, das in einem tragbaren Gerät aus 1 implementiert werden kann;
  • 6 ist ein Flussdiagramm eines beispielhaften Verfahrens für die Erzeugung privater Orts-Hash-Werte mithilfe regelmäßig gesammelter Signale aus der Umgebung, das in einem tragbaren Gerät aus 1 implementiert werden kann;
  • 7 ist ein Flussdiagramm eines beispielhaften Verfahrens für die Identifizierung von Benutzern in der Nähe mithilfe privater Orts-Hash-Werte, die von den entsprechenden Benutzergeräten empfangen werden, das in einem tragbaren Gerät aus 1 implementiert werden kann;
  • 8 ist ein Diagramm eines beispielhaften Szenarios, in dem tragbare Geräte mehrere gemeinsame Signale aus der Umgebung empfangen;
  • 9A ist ein Diagramm eines tragbaren Geräts, das sich relativ zu einem bestimmten Satz quantisierter Ortszellen befindet, und der Identifizierung seines Orts als Teilmenge der quantisierten Ortszellen; und
  • 9B ist ein Diagramm eines beispielhaften Szenarios, in dem zwei tragbare Geräte eine quantisierte Ortszelle gemeinsam nutzen.
  • Detaillierte Beschreibung
  • Mithilfe der nachstehend beschriebenen Techniken stellt ein tragbares Gerät, das in einem drahtlosen Kommunikationsnetzwerk betrieben wird, einen sicheren Hinweis seines geografischen Orts für einen Server bereit, damit der Server Geräte identifizieren kann, die sich physisch in der Nähe des tragbaren Geräts befinden, wobei jedoch verhindert wird, dass der Server den geografischen Ort des tragbaren Geräts bestimmt. In einer beispielhaften Implementierung erzeugt das tragbare Gerät einen solchen Hinweis (im Folgenden „ein sicherer Ortsindikator”) durch Anwendung einer kryptografischen Funktion auf eine Kombination aus quantisierten geografischen Koordinaten und einer pseudo-zufälligen Rauschsequenz, die aus der Entropie der Umgebung abgeleitet wurde. Ein anderes Gerät kann denselben sicheren Ortsindikator nach Erzeugung derselben quantisierten geografischen Koordinaten und Ableitung derselben pseudo-zufälligen Rauschsequenz aus der Umgebung erzeugen. Es ist äußerst unwahrscheinlich, dass das andere Gerät dies tut, außer es befindet sich relativ nah beim tragbaren Gerät. Der Server kann sichere Ortsindikatoren von mehreren tragbaren Geräten empfangen und vergleichen und nach Identifizierung eines identischen Paars sicherer Ortsindikatoren bestimmen, dass die entsprechenden tragbaren Geräte sich in physischer Nähe zueinander befinden. Der Server kann dann eine entsprechende Benachrichtigung für eines oder beide tragbare Geräte erzeugen. Der Benutzer des tragbaren Geräts kann zum Beispiel eine Popup-Benachrichtigung auf dem Bildschirm sehen, die dem Benutzer sagt, dass sich ein Freund in der Nähe befindet. Jedoch können weder der Server noch ein Dritter bestimmen, welchem geografischen Ort ein sicherer Ortsindikator entspricht. Insbesondere kann keine Entität, die den sicheren Ortsindikator empfängt, die geografischen Koordinaten des tragbaren Geräts bestimmen. Somit gefährdet die Übermittlung des sicheren Ortshinweises vom tragbaren Gerät zum Server die Privatsphäre des Benutzers des tragbaren Geräts nicht, auch wenn der sichere Ortshinweis abgefangen oder sonst ohne Berechtigung oder Autorisierung erhalten wird.
  • Beispielhafte Techniken für die Erzeugung, Mitteilung und Verarbeitung sicherer Ortsindikatoren werden unter Bezugnahme auf 19B näher erörtert. Unter erster Bezugnahme auf 1 beinhaltet ein beispielhaftes Kommunikationssystem 10 ein tragbares Gerät 12, ein tragbares Gerät 14 und einen Server 16, der mit den tragbaren Geräten 12 und 14 über ein drahtloses Kommunikationsnetzwerk 18 kommunizieren kann. Das drahtlose Kommunikationsnetzwerk 18 kann zum Beispiel ein Mobilfunknetzwerk der dritten Generation (3G) sein, das es Teilnehmergeräten ermöglicht, Sprachanrufe und Videoanrufe zu tätigen, Datenpakete mit hohen Datenraten auszutauschen, um verschiedene Anwendungen zu unterstützen usw. Mehrere drahtlose Zugangspunkte (Access Points, APs) 20 werden in der Nähe der tragbaren Geräte 12 und 14 betrieben. In der in 1 dargestellten beispielhaften Konfiguration kann das tragbare Gerät 12 Signale von einem AP 20-1, einem AP 20-2 und einem AP 20-3 empfangen, während das tragbare Gerät 14 Signale vom AP 20-1, vom AP 20-2 und von einem AP 20-4 empfangen kann. Des Weiteren können die tragbaren Geräte 12 und 14 ihren jeweiligen geografischen Ort mithilfe von Signalen von GPS-Satelliten, z. B. einem Satelliten 30, bestimmen. Auch wenn ein Gerät im Allgemeinen Signale von mehreren GPS-Satelliten benötigt, um seinen geografischen Ort zu bestimmen, ist zur einfacheren Veranschaulichung nur ein solcher Satellit in 1 dargestellt.
  • Bei den tragbaren Geräte 12 und 14 kann es sich im Allgemeinen um Smartphones, Laptop-Computer, Tablet-PCs oder alle anderen geeigneten Arten von Geräten handeln. In einer beispielhaften Implementierung beinhaltet das tragbare Gerät 12 einen oder mehrere Prozessoren 40, um Softwareanweisungen auszuführen, einen oder mehrere Speicher 42, um Softwareanweisungen und Daten zu speichern, ein Benutzeroberflächenmodul 44, um Benutzereingaben zu empfangen und dem Benutzer eine Ausgabe bereitzustellen, eines oder mehrere Kommunikationsmodule 46, um Daten über das Kommunikationsnetzwerk 18 gemäß einem oder mehreren Kommunikationsprotokollen zu senden und zu empfangen, und ein Positionierungsmodul 48, um den geografischen Ort des tragbaren Geräts 12 automatisch zu bestimmen. Die Komponenten 4048 können auf jede geeignete Weise (z. B. über einen digitalen Bus) verbunden sein. Das tragbare Gerät 14 kann gleiche oder ähnliche Komponenten enthalten. Des Weiteren können, je nach Implementierung, die tragbaren Geräte 12 und 14 auch zusätzliche Komponenten enthalten, z. B. Lautsprecher und Kameras.
  • Der Speicher 42 kann ein persistenter Speicher sein, z. B. eine Festplatte oder ein Flash-Speicher. Allgemeiner kann der Speicher 42 jedes geeignete computerlesbare Medium enthalten. Neben dem persistenten Speicher kann das tragbare Gerät 12 einen nicht persistenten oder flüchtigen Speicher enthalten, z. B. RAM (nicht dargestellt), der auf demselben Chip wie der Prozessor 40 bereitgestellt sein kann. Der Speicher 42 kann Anweisungen speichern, die, wenn Sie vom Prozessor 40 ausgeführt werden, dem Benutzer des tragbaren Geräts 12 verschiedene Funktionen bereitstellen. Insbesondere kann Speicher 42 die Anweisungen eines Betriebssystems (z. B. AndroidTM, iOSTM, SymbianTM), verschiedene Telefondienste, Anwendungen usw. speichern. Der Speicher 42 kann außerdem Anweisungen eines sicheren Ortsindikators 50 speichern, die als Anwendung implementiert werden können, die von einem Netzwerk als Dienst des Betriebssystems oder auf jede andere geeignete Weise auf das tragbare Gerät 12 heruntergeladen werden kann.
  • Die Module 44, 46 und 48 könne mithilfe aller geeigneten Hardware- und/oder Softwarekomponenten implementiert werden. Des Weiteren können einige der Module 44, 46 und 48 Kombinationen von Komponenten oder, im Gegenteil, Teile größerer Komponenten sein. Das Benutzeroberflächenmodul 44 kann zum Beispiel ein Touchscreen sein oder alternativ ein Eingabegerät (z. B. eine Tastatur) und ein getrenntes Ausgabegerät (z. B. einen Bildschirm) enthalten. Das Kommunikationsmodul 46 kann Hardware-, Firmware- oder Softwarekomponenten enthalten, um es dem tragbaren Gerät zu ermöglichen, in einem Mobilfunk-Kommunikationsnetzwerk in Übereinstimmung mit einem oder mehreren Telekommunikationsstandards oder -protokollen zu kommunizieren. Des Weiteren kann Kommunikationsmodul 46 die Kommunikation über ein Wireless Location Area Network (WLAN) unterstützen, das zum Beispiel dem Institute of Electrical and Electronics Engineers (IEEE) 802.11-Standard entspricht. Des Weiteren kann das Kommunikationsmodul 46 auch drahtlose Kurzstreckenkommunikation unterstützen, zum Beispiel eine solche, die dem BluetoothTM-Standard entspricht. Das Positionierungsmodul 48 kann z. B. in Form eines GPS-Empfänger-Chips bereitgestellt werden. Jedoch können in einer anderen Implementierung das Positionierungsmodul 48 und das Kommunikationsmodul 46 als integrale Komponente bereitgestellt sein. Als spezifischeres Beispiel kann das Positionierungsmodul 48 den geografischen Ort des tragbaren Geräts 12 mithilfe von Signalen bestimmen, die von einem oder mehreren APs 20 bereitgestellt werden.
  • Unter fortgesetzter Bezugnahme auf 1 kann der Server 16 einen oder mehrere Prozessoren 60 und einen computerlesbaren Speicher 62 umfassen, der Anweisungen speichert, die auf dem Prozessor 60 ausgeführt werden. Insbesondere speichert der Speicher 62 Anweisungen eines sicheren Ortshinweis-Übereinstimmungsmoduls 70 und eines Benachrichtigungsmoduls 72. Wie unten näher erörtert, können die Module 70 und 72 so konfiguriert sein, dass sie die jeweiligen sicheren Ortsindikatoren empfangen und verarbeiten, die vom tragbaren Gerät 12, tragbaren Gerät 14 und anderen tragbaren Geräte empfangen werden, die in dem Kommunikationssystem 10 betrieben werden. Der Server 16 kann auf kabelgebundene oder drahtlose Weise mit dem Netzwerk 18 verbunden sein.
  • Im Betrieb erzeugt das tragbare Gerät 12 sichere Ortsindikatoren mithilfe der Entropie der Umgebung und einen Hinweis auf den geografischen Ort des tragbaren Geräts 12. Insbesondere empfängt das tragbare Gerät 12 Signale von der Entropie der Umgebung über das Kommunikationsmodul 46, und der sichere Ortshinweisgenerator 50 erzeugt Sequenzen pseudo-zufälliger Daten mithilfe der empfangenen Signale. Als ein Beispiel kann das tragbare Gerät 12 Datenpakete von den APs 20-1, 20-2 und AP 20-3 während eines bestimmten Zeitintervalls (z. B. einer Minute) empfangen und eine sichere Hash-Funktion auf die empfangenen Datenpakete anwenden, um einen Strom pseudo-zufälliger Werte zu erzeugen. Der sichere Ortshinweisgenerator 50 kann dann einen oder mehrere pseudo-zufällige Werte als One-Time Pads (OTPs) auswählen. Der Server 16 hat keinen Zugriff auf ein OTP, das von der Entropie der Umgebung abgeleitet wurde, und somit trägt ein N-Bit langes OTP N Bits der Entropie zu einem sicheren Ortsindikator bei.
  • Das Positionierungsmodul 48 kann den geografischen Ort des tragbaren Geräts 12 bestimmen und Breitengrad- und Längengradwerte beispielsweise dem sicheren Ortshinweisgenerator 50 bereitstellen. Als Reaktion kann der sichere Ortshinweisgenerator 50 die Breitengrad- und Längengradwerte quantisieren, um einen Ortsdeskriptor zu erzeugen, der ein bestimmtes Gebiet angibt, z. B. eine 15 m breite quadratische Region, in der sich das tragbare Gerät 12 befindet. In einer Implementierung erzeugt der sichere Ortshinweisgenerator 50 mehrere solche Ortsdeskriptoren, von denen jeder ein jeweiliges Gebiet angibt, das entweder den geografischen Ort des tragbaren Geräts 12 umfasst oder sich in dessen Nähe befindet. In einer weiteren Implementierung des tragbaren Geräts 12 erzeugt das Positionierungsmodul 48 einen Ortsdeskriptor, der den Ort des tragbaren Geräts 12 nur ungefähr angibt, und der sichere Ortshinweisgenerator 50 verwendet den Ortsdeskriptor als einen bereits quantisierten Ortsdeskriptor.
  • Mithilfe des einen oder der mehreren OTPs und des einen oder der mehreren Breitengrad- und Längengradwerte erzeugt der sichere Ortshinweisgenerator 50 einen oder mehrere sichere Ortsindikatoren, die vom aktuellen geografischen Ort des tragbaren Geräts 12 und der aktuellen Umgebung abhängen, in der das tragbare Gerät 12 betrieben wird, aber den geografischen Ort des tragbaren Geräts 12 einem Empfänger nicht bekanntgeben. Dazu kann der sichere Ortshinweisgenerator 50 eine kryptografische Funktion, z. B. eine sichere Hash-Funktion, auf eine Kombination aus einem der OTPs und einem der Ortsdeskriptoren anwenden. In einer Implementierung wendet der sichere Ortshinweisgenerator 50 die sichere Hash-Funktion auf jede Kombination aus N OTPs und M Ortsdeskriptoren an, um N*M sichere Ortsindikatoren zu erzeugen. Sichere Ortsindikatoren, die mithilfe einer Hash-Funktion erzeugt wurden, können als „private Orts-Hashes” bezeichnet werden. Es ist jedoch zu beachten, dass sichere Ortsindikatoren auch mithilfe anderer Funktionen als Hash-Funktionen erzeugt werden können, z. B. Verschlüsselungsfunktionen, die nicht auf Hashing basieren.
  • Das tragbare Gerät 12 stellt den einen oder die mehreren sicheren Ortsindikatoren dem Server 16 bereit, wobei das sichere Ortsindikator-Übereinstimmungsmodul 70 diese Indikatoren mit sicheren Ortsindikatoren vergleicht, die von anderen tragbaren Geräten während desselben Zeitintervalls oder während eines oder mehreren jüngsten Zeitintervallen empfangen wurden. Falls ein Paar tragbarer Geräte denselben sicheren Ortsindikator gemeldet hat, bestimmt Server 16, dass sich die tragbaren Geräte zurzeit in der Nähe voneinander befinden. Das Benachrichtigungsmodul 72 erzeugt demgemäß eine Benachrichtigung und stellt, je nach den vom Benutzer angegebenen Einstellungen, die Benachrichtigung einem oder beiden tragbaren Geräten 12 und 14 bereit.
  • Die tragbaren Geräte 12 und 14 können den jeweiligen Benutzern wiederum entsprechende visuelle und/oder Tonhinweise geben. Die tragbaren Geräte 12 und 14 können zum Beispiel eine Softwareanwendung für soziale Netzwerke unterstützen, die es Benutzern ermöglicht, Freunde und Verwandte zu verfolgen (die dieser Verfolgung möglichst zugestimmt haben sollten) sowie manuell oder automatisch sichere Hinweise ihres eigenen Orts dem Server 16 bereitzustellen, sodass Freunde und Verwandte wiederum sie verfolgen können. In einem solchen Szenario besucht der Benutzer des tragbaren Geräts 12 einen vielbesuchten Ort, z. B. einen Konzertveranstaltungsort, und konfiguriert sein Profil und/oder das tragbare Gerät 12 so, dass es den Benutzer aktiv informiert, wenn seine Freunde in einer bestimmten Entfernung zum Benutzer erscheinen, z. B. 45 m. Der Benutzer des tragbaren Geräts 14 kann in ähnlicher Weise sein Profil und/oder das tragbare Gerät 14 konfigurieren. Sobald der Server 16 eine Benachrichtigung an das tragbare Gerät 12 weiterleitet, dass sich das tragbare Gerät 14 in der Nähe befindet, kann die Anwendung für soziale Netzwerke ein Popup-Fenster mit dem Text „Bob ist hier. Steh auf und winke!” oder jeden anderen geeigneten Text anzeigen, der vom Benutzer konfiguriert werden kann.
  • Des Weiteren können in einigen Implementierungen Benutzer der tragbaren Geräte 12 und 14 die Anwendung für soziale Netzwerke so konfigurieren, dass sie dem Server 16 eine bestimmte Nachricht bereitstellt, sodass der Server 16 die Nachricht an tragbare Geräte weiterleiten kann, die als in der Nähe befindlich identifiziert werden. Zum Beispiel kann der Benutzer des tragbaren Geräts 14 den Text „Den Kerl im grünen Shirt und brauner Hose suchen” eingeben und dann die Anwendung für soziale Netzwerke anweisen, diesen Text zusammen mit einer Reihe von sicheren Ortsindikatoren und der Kennung des tragbaren Geräts 14 an den Server 16 zu senden. Auf diese Weise können Freunde des Benutzers automatisch eine ortsspezifische Nachricht vom Benutzer erhalten, wenn der Server 16 bestimmt, dass der Benutzer und seine Freunde sich in einer bestimmten geringen Entfernung voneinander befinden.
  • Um die Techniken der vorliegenden Offenbarung besser zu veranschaulichen, wird als Nächstes ein beispielhaftes System 100 für die Erzeugung sicherer Ortsindikatoren unter Bezugnahme auf 2 erörtert. Das System 100 kann in jedem geeigneten Gerät betrieben werden, zum Beispiel im tragbaren Gerät 12 oder im tragbaren Gerät 14 aus 1. Wenn es im tragbaren Gerät 12 implementiert ist, können einige oder alle Komponenten des Systems 100 als sicherer Ortsgenerator 50 betrieben werden.
  • In einer Ausführungsform umfasst das System 100 ein OTP-Modul 102, das eines oder mehrere OTPs mithilfe eines Signals erzeugt, das aus der Umgebung empfangen wird, einen Ortsquantisierer 104, um eine oder mehrere quantisierte Darstellungen des geografischen Orts zu erzeugen, und einen Hash-Wert-Generator 106, um einen oder mehrere private Orts-Hash-Werte zu erzeugen, die ein tragbares Gerät, das System 100 implementiert, als sichere Ortsindikatoren verwenden kann. Die Module 102, 104 und 106 können als Satz von Softwareanweisungen implementiert werden, die auf einem greifbaren computerlesbaren Medium gespeichert sind und auf einem Prozessor ausgeführt werden. Alternativ können die Module 102, 104 und 106 in Firmware, Hardware oder jeder geeigneten Kombination aus Hardware, Firmware oder Software implementiert sein.
  • Das OTP-Modul 102 beinhaltet einen Satz von L sicheren Hash-Modulen 110-1, 110-2, 110-3, ... 110-L. In einer beispielhaften Implementierung wird der Wert von L so ausgewählt, dass zwei tragbare Geräte mit einer Wahrscheinlichkeit von mindestens 99% dasselbe OTP auf Basis desselben Signals aus der Umgebung erzeugen, wie unten näher erörtert. Die Anzahl der sicheren Hash-Module 110 kann im Allgemeinen eins oder mehrere sein (d. h. L ≥ 1). Jedes der sicheren Hash-Module 110 kann als Hashed Message Authentication Code(HMAC)-Generator betrieben werden und eine sichere Hash-Funktion SHi implementieren. Zum Beispiel kann jede der sicheren Funktionen SH1, SH2 ... SHL die Secure Hash Algorithm 512(SHA-512)-Funktion sein, die mit einem anderen Schlüssel verwendet wird. Als spezifischeres Beispiel kann, für ein Datenpaket P, das sichere Hash-Modul 110-1 die ersten 128 Bits des Ergebnisses der Anwendung der SHA-512-Funktion auf das Datenpaket P unter Verwendung von Schlüssel K1, ausgeben, das sichere Hash-Modul 110-2 kann die ersten 128 Bits des Ergebnisses der Anwendung der SHA-512-Funktion auf das Datenpaket P unter Verwendung von Schlüssel K2 ausgeben usw. Jedoch müssen die sicheren Hash-Module 110 nicht notwendigerweise dieselben oder auch nur ähnliche Funktionen implementieren. Das sichere Hash-Modul 110-1 kann zum Beispiel die SHA-512-Funktion implementieren, während das sichere Hash-Modul 110-2 die Message Digest Algorithm 5(MD5)-Funktion implementieren kann.
  • Das OTP-Modul 102 kann in verschiedenen Implementierungen und/oder Szenarios auf Wi-Fi-Signalen, Bluetooth-Signalen, anderen geeigneten Funksignalen, akustischen Signalen usw. betrieben werden. Das Signal kann zum Beispiel einen Strom digitaler Daten oder diskreter Datenpakete enthalten. Als eine andere Alternative kann das Signal analoge Daten enthalten, die das OTP-Modul 102 abtasten kann, um eine Sequenz digitaler Werte zu erzeugen, die auf die sicheren Hash-Generatoren 110 angewandt werden. Im Beispiel aus 2 empfängt das OTP-Modul 102, das in einem tragbaren Gerät betrieben wird, Datenpakete über einen Wi-Fi-Kommunikationskanal 120 (oder einen Satz von Kanälen) von APs, die innerhalb der Reichweite des tragbaren Geräts betrieben werden. Es ist zu beachten, dass das tragbare Gerät nicht in einem Netzwerk betrieben werden muss, das mit einem AP verbunden ist, von dem ein Datenpaket empfangen wird. Des Weiteren kann das Datenpaket verschlüsselt oder nicht verschlüsselt sein, und es kann vom AP für beliebige Zwecke übertragen werden (z. B. als Beacon, als frame-übertragende Daten zu einer bestimmten Station usw.). Unter erneuter Bezugnahme auf 1 kann zum Beispiel das OTP-Modul 102, das im tragbaren Gerät 12 betrieben wird, Datenpakete von den APs 20-1, 20-2 und 20-3 empfangen.
  • Unter fortgesetzter Bezugnahme auf 2 können die sicheren Hash-Module 110L Ströme 130-1, 130-2, 130-3, ... 130-L pseudo-zufälliger Werte erzeugen, z. B. 128-Bit Hashes. Einmal pro Zeitintervall der Länge T (z. B. eine Minute) kann ein Selektor 134 den größten Wert aus jedem der L Ströme 130 auswählen, um einen Satz an OTPs zu erzeugen, die OTP1, OTP2, ... OTPL beinhalten. In anderen Ausführungsformen kann der Selektor 134 Werte gemäß einem anderen Prinzip auswählen, z. B. durch Auswählen des größten Werts aus jedem der Ströme 130. In der beispielhaften Implementierung aus 2 liefert das OTP-Modul 102 dann dem Hash-Wert-Generator 106 den Satz von OTPs.
  • Der Quantisierer 104 liefert die anderen Eingaben an den Hash-Wert-Generator 106. Im Allgemeinen kann der Quantisierer 104 Positionierungsdaten, z. B. GPS-Koordinaten, auf dem tragbaren Gerät empfangen, in dem das System 100 betrieben wird, und die Positionierungsdaten quantisieren, um einen Satz von M Ortsdeskriptoren zu erzeugen. Jeder Ortsdeskriptor kann ein anderes Gebiet angeben, das den Ort, der durch die Positionierungsdaten angegeben wird, entweder umfasst oder in seiner Nähe liegt. Der Breitengrad und Längengrad eines tragbaren Geräts kann zum Beispiel auf die nächstgelegenen 15 m und 30 m quantisiert werden, um vier 15 m breite quadratische Regionen anzugeben. Als spezifischeres Beispiel können aktuelle GPS-Koordinaten eines tragbaren Geräts einem Punkt mit der Breite von ca. 103,5 m und der Länge von ca. 267 m in Bezug auf einen gemeinsamen Ursprung entsprechen. Der Quantisierer 104 kann Ortsdeskriptoren mit Koordinatentupeln (300, 850), (300, 900), (350, 850) und (350, 900) erzeugen, die jeweils die obere linke Ecke der entsprechenden quadratischen Region angeben. Alternativ kann jedes Tupel die tatsächlichen GPS-Koordinaten angeben, die zu einem nächstgelegenen 15- oder 30-m-Punkt quantisiert wurden. Im Allgemeinen kann eine Region eine gewünschte Form (z. B. einen Kreis) haben, auf geeignete Weise angegeben werden (durch Angabe von einem oder mehreren Eckpunkten, durch Angabe des geometrischen Mittelpunkts usw.) und sie kann mithilfe jeder gewünschten Skala der Quantisierung ausgewählt werden.
  • In der Implementierung aus 2 erzeugt der Ortsquantisierer 104 einen minimalen Längengradwert 142, einen maximalen Längengradwert 144, einen minimalen Breitengradwert 146 und einen maximalen Breitengradwert 148, die verwendet werden können, um vier Ortsdeskriptoren zu erzeugen, die jeweils einem der Tupel (LATMIN, LONMIN), (LATMIN, LONMAX), (LATMAX, LONMIN) oder (LATMAX, LONMAX) entsprechen. Im oben erörterten beispielhaften Szenario LATMIN = 300, LATMAX = 350, LONMIN = 850 und LONMIN = 900. Mithilfe der vier Werte 142148 und der L OTP-Werte, die vom OTP-Modul 102 erzeugt wurden, kann der Hash-Wert-Generator 106 4*L sichere Ortsindikatoren 150-1, 150-2, ... 150-4*L erzeugen. Um die sicheren Ortsindikatoren 150 zu erzeugen, kann der Hash-Wert-Generator 106 eine sichere Hash-Hauptfunktion (SHM), zum Beispiel SHA-512, auf jede Kombination aus einem OTP und einem Ortsdeskriptor anwenden: (OTP1, LATMIN, LONMIN), (OTP1, LATMIN, LONMAX), ... (OTPL, LATMAX, LONMAX). Die Funktion SHM kann dieselbe wie eine oder mehrere der Funktionen SH1, SH2, ... SHL oder eine andere Hash-Funktion sein.
  • Als Nächstes werden mehrere beispielhafte Verfahren für die Erzeugung, den Austausch und die Verarbeitung sicherer Ortsindikatoren in Kommunikationssystem 10 (oder einem ähnlichen System) unter Bezugnahme auf mehrere Flussdiagramme in 37 erörtert. Die in diesen Flussdiagrammen veranschaulichten Verfahren können als Softwarenanweisungen implementiert werden, die auf einem greifbaren computerlesbaren Medium gespeichert sind und auf einem oder mehreren Prozessoren ausgeführt werden können. Es ist jedoch zu beachten, dass diese Verfahren, zumindest teilweise, auch in Firmware, Hardware oder als geeignete Kombination aus Hardware, Firmware und Software implementiert werden können.
  • 3 veranschaulicht ein beispielhaftes Verfahren 200 für die Erzeugung privater Orts-Hash-Werte, die zum Beispiel im sicheren Ortshinweisgenerator 50 aus 1 oder im System 100 aus 2 implementiert werden können. Das Verfahren 200 beginnt bei Block 202, wenn ein Satz aus einem oder mehreren OTPs aus der Entropie der Umgebung abgeleitet wird. Es ist jedoch zu beachten, dass die Techniken der vorliegenden Offenbarung es nicht erfordern, dass mehrere OTPs erzeugt oder einem Server bereitgestellt werden, sondern, durch Erzeugung mehrerer OTPs, kann ein tragbares Gerät die Wahrscheinlichkeit erhöhen, dass ein Server ein in der Nähe befindliches tragbares Gerät umgehend identifiziert. Es ist außerdem zu beachten, dass, auch wenn die OTPs in den oben erörterten Beispielen mithilfe von Wi-Fi-Datenpaketen erzeugt werden, die OTPs im Allgemeinen aus jeder geeigneten Quelle abgeleitet werden können, die einen unvorhersehbaren Prozess mit ausreichender Entropie angenähert hat. Somit können OTPs bei Block 202 auf Basis jedes Umgebungsfaktors erhalten werden, der als Signal dargestellt werden kann und auf ähnliche Weise durch zwei Geräte in der Nähe beobachtet werden kann (z. B. ein Ton, eine Temperaturmessung, ein visuelles Signal).
  • Als Nächstes wird bei Block 204 der Ort des Geräts mithilfe von GPS-Positionierung, Wi-Fi-Triangulation, Näherungssensoren mit Bluetooth- oder Infrarot(IR)-Signalen bestimmt. Der Ort wird dann bei Block 206 quantisiert, um einen Ortsdeskriptor zu erzeugen. Auch wenn der Ort auf ein einziges Gebiet quantisiert werden kann, z. B. eine quadratische oder kreisförmige Region mit einer Fläche von ca. 232 m2, können mehrere quantisierte Ortsdeskriptoren erzeugt werden, um die Genauigkeit der Suche nach dem Gerät in der Nähe zu verbessern. Gemäß einer beispielhaften Implementierung werden die geografischen Koordinaten, die bei Block 204 bestimmt wurden, auf vier benachbarte quadratische Regionen quantisiert, wie unten unter Bezugnahme auf 9A und 9B erörtert. Andererseits gibt in einer anderen Implementierung der Ort, der bei Block 204 bestimmt wurde, eine Region oder ein Gebiet statt einen bestimmten Punkt an, sodass die Koordinaten als ein bereits quantisierter Ortsdeskriptor verwendet werden können. In diesem Fall wird der Ortsdeskriptor bei Block 206 lediglich in ein geeignetes Format umgewandelt, falls nötig.
  • Bei Block 208 werden private Orts-Hash-Werte mithilfe der OTPs und dem einen oder den mehreren Ortsdeskriptoren erzeugt, die bei Block 206 erzeugt wurden. Eine sichere Hash-Funktion kann zum Beispiel auf eine Kombination aus einem Ortsindikator, einem quantisierten Breitengrad und einem quantisierten Längengrad angewandt werden. Insbesondere können einige oder alle Bits des Ortsindikators an einige oder alle Bits des quantisierten Breitengrads oder einige oder alle Bits des quantisierten Längengrads angehängt werden. In einer Implementierung kann die SHA-512-Funktion auf die Kombination angewandt werden und die ersten 128 Bits der Ausgabe können als privater Orts-Hash-Wert verwendet werden. Zusätzliche private Orts-Hashes können bei Block 208 erzeugt werden, wenn mehrere OTPs und/oder mehrere quantisierte Ortsindikatoren vorher bei Blöcken 202 und 206 erzeugt werden.
  • Der eine oder die mehreren privaten Orts-Hashes werden dann einem Server bei Block 210 zum Beispiel über eine drahtlose Netzwerkverbindung bereitgestellt. Das Verfahren wird nach Block 210 abgeschlossen. In zumindest einigen Implementierungen wird jedoch Verfahren 200 dann nach einem bestimmten Zeitintervall (z. B. einer Minute) erneut ausgeführt. Das Verfahren 200 kann im Allgemeinen in regelmäßigen Intervallen oder als Reaktion auf bestimmte Ereignisse aufgerufen werden, z. B. die Bewegung des tragbaren Geräts, in dem Verfahren 200 implementiert ist.
  • Unter Bezugnahme auf 4 kann zum Beispiel ein Verfahren 250 für die Erzeugung von OTPs bei Block 202 von Verfahren 200 ausgeführt werden. Das Verfahren 250 kann in einem tragbaren Gerät, z. B. im tragbaren Gerät 12 aus 1, oder, genauer gesagt, in einem OTP-Generator implementiert werden, der in einem solchen Gerät betrieben wird, z. B. im OTP-Generator 102 aus 2.
  • Das Verfahren 250 beginnt bei Block 252, wenn Wi-Fi-Datenpakete von einem oder mehreren APs empfangen werden, die in Reichweite des tragbaren Geräts betrieben werden. Die Wi-Fi-Datenpakete können während eines sich regelmäßig wiederholenden Zeitraums empfangen werden, zum Beispiel während der ersten 20 Sekunden jeder Minute, oder während der gesamten 60 Sekunden jeder Minute. Die empfangenen Wi-Fi-Datenpakete können Beacons oder jedes andere Datenpaket sein, und sie können verschlüsselt oder nicht verschlüsselt sein, wie vorstehend erörtert. Es kann erwartet werden, dass zwei tragbare Geräte, die innerhalb eines bestimmten Bereichs voneinander betrieben werden, eine erhebliche Überlappung bei Wi-Fi-Datenpaketen beobachten, die während des Zeitraums gesammelt werden, wobei möglicherweise zu bestimmten Zeiten eine Überlappung von 100% bei den Datenpaketen auftritt.
  • Bei Block 254 wird jedes der empfangenen Datenpakete mithilfe von N verschiedenen Hash-Funktionen gehasht, die zum Beispiel kryptografische Hash-Funktionen ähnlich denen sein können, die durch die sicheren Hash-Module 110 aus 2 implementiert werden. Somit wird jedes Datenpaket in N Hash-Werte umgewandelt, die als pseudo-zufällige Werte betrachtet werden können, und der Satz an Datenpaketen, der bei Block 252 empfangen wird, wird in N Ströme von pseudo-zufälligen Daten umgewandelt. Gemäß einer beispielhaften Ausführungsform von Verfahren 250 beträgt die Länge jedes Hash-Werts 128 Bits. Auch wenn N = 1 in einer Implementierung von Methode 250 ist, kann ein größerer Wert N ausgewählt werden, um die Wahrscheinlichkeit zu verbessern, dass zwei tragbare Geräte letztendlich denselben Ortsindikator produzieren. Mögliche Effekte des Werts N auf die Genauigkeit der Erkennung von Geräten in der Nähe werden nachstehend unter Bezugnahme auf 8 näher erörtert.
  • Als Nächstes wird bei Block 256 der größte Hash-Wert in jedem der N Ströme ausgewählt. Zum Beispiel kann jeder Hash-Wert als binär kodierte Dezimalzahl interpretiert werden. Im Allgemeinen kann ein Hash-Wert aus einem der N Ströme gemäß jedem Prinzip ausgewählt werden, das einheitlich auf mehrere tragbare Geräte angewandt werden kann, die am Senden sicherer Ortsindikatoren an gemeinsame Server oder Gruppen von Servern beteiligt sind. Somit kann in einer anderen Implementierung von Verfahren 250 der kleinste Hash-Wert bei Block 256 ausgewählt werden. Es muss jedoch beachtet werden, dass, da zwei oder mehrere tragbare Geräte manchmal eine Überlappung bei Wi-Fi-Datenpaketen erleben, die größer als null, aber kleiner als 100% ist, die bei Block 256 ausgewählten Hash-Werte mithilfe verschiedener Datenpakete erzeugt werden können.
  • Als ein Beispiel der Verwendung von GPS-Daten mit einem Satz von einem oder mehreren OTPs zur Erzeugung sicherer Ortsindikatoren veranschaulicht 5 ein Verfahren 300 für die Erzeugung privater Orts-Hash-Werte, die ähnlich Verfahren 200 aus 3 im sicheren Ortshinweisgenerator 50 aus 1 oder im System 100 aus 2 implementiert werden können. In einer Ausführungsform von System 100 wird zum Beispiel Verfahren 250 aufgerufen, um einen Satz von OTPs zu erzeugen, und Verfahren 300 wird anschließend aufgerufen, um diese OTPs mit den quantisierten Ortsindikatoren zu verwenden, um sichere Ortsindikatoren zu erzeugen. Allgemeiner gesagt, kann Verfahren 300 in jedem geeigneten Gerät implementiert werden, das im System aus 1 oder einer ähnlichen Umgebung betrieben wird.
  • Bei Block 302 werden GPS-Signale empfangen und verarbeitet. Der Breitengrad und Längengrad des tragbaren Geräts werden dann bei Block 304 bestimmt. Als Nächstes kann bei Block 306 ein Satz von Ortsdeskriptoren in Form von Tupeln bestimmt werden, die quantisierte Breitengrad- und Längengradwerte angeben. In einer beispielhaften Implementierung können der quantisierte Breitengrad und Längengrad die GPS-Breitengrad- und -Längengradkoordinaten auf die den GPS-Breitengrad- und -Längengradkoordinaten nächsten 15-m- oder 30-m-Werte angenähert sein. Anschließend werden verschiedene Kombinationen aus OTPs und Ortsdeskriptoren bei Block 308 erzeugt, und auf jede Kombination wird bei Block 310 eine sichere Hash-Funktion angewandt: (OTP1, LAT1, LON1), (OTP1, LAT1, LON2) usw.
  • Wie vorstehend angegeben, kann ein tragbares Gerät einem Server in regelmäßigen Intervallen sichere Ortsindikatoren bereitstellen, um sicherzustellen, dass, während sich das tragbare Gerät bewegt, der Server prüfen kann, damit neue Paare oder Gruppen physisch in der Nähe befindlicher Geräte identifiziert werden können. Dazu kann das tragbare Gerät zum Beispiel ein Verfahren 350 aus 6 zur Erzeugung privater Orts-Hash-Werte mithilfe regelmäßig gesammelter Signale aus der Umgebung implementieren.
  • Unter Bezugnahme auf 6 beginnt Verfahren 350 bei Block 352 nach Ablauf eines Timers, der zum Beispiel so konfiguriert sein kann, dass er jede Minute abläuft. Ein Satz aus einem oder mehreren privaten Orts-Hash-Werten (oder anderen sicheren Ortsindikatoren) wird zum Beispiel bei Block 354 in Übereinstimmung mit Verfahren 200 erzeugt. Der Satz privater Orts-Hash-Werte wird bei Block 356 einem Server bereitgestellt. Die Kennung des tragbaren Geräts (z. B. Telefonnummer, IP-Adresse, Seriennummer) und/oder der Benutzer, der das tragbare Gerät betreibt (z. B. Name, Login für einen bestimmten elektronischen Dienst) kann dem Server ebenfalls bereitgestellt werden. Als Nächstes werden bei Block 358 null, eine oder mehrere Kennungen von physisch in der Nähe befindlichen Geräten empfangen. Die empfangenen Kennungen werden, falls verfügbar, bei Block 360 verarbeitet. Als ein Beispiel wird ein Popup-Fenster auf dem Bildschirm des tragbaren Geräts für jede empfangene Kennung angezeigt. Der Timer wird dann bei Block 362 neu gestartet und der Ablauf kehrt nach Ablaufen des Timers zu Block 352 zurück. In einigen Implementierungen kann jedoch der Benutzer den Timer auch vollständig deaktivieren oder die Ablaufzeit des Timers anpassen (z. B. vom Standardwert von einer Minute auf drei Minuten).
  • 7 stellt ein Flussdiagramm eines beispielhaften Verfahrens 400 dar, das zum Beispiel Server 16 aus 1 implementieren kann, um mithilfe privater Orts-Hash-Werte Benutzer zu identifizieren, die sich physisch in der Nähe voneinander befinden. Das Verfahren 400 kann zum Beispiel teilweise im sicheren Ortsindikator-Übereinstimmungsmodul 70 und teilweise im Benachrichtigungsmodul 72 implementiert werden. In einer anderen Ausführungsform eines geeigneten Kommunikationssystems wird Verfahren 400 in mehreren Servern auf verteilte Weise implementiert. In noch einer anderen Ausführungsform wird Verfahren 400 als Anwendung implementiert, die auf einem tragbaren Gerät ausgeführt wird. Anders ausgedrückt kann ein bestimmtes tragbares Gerät so konfiguriert werden, dass es als Server dient, der sichere Ortsindikatoren empfängt und verarbeitet, falls gewünscht. Darüber hinaus kann das tragbare Gerät auch als teilnehmendes Gerät dienen, das eigene sichere Ortsindikatoren erzeugt und sendet.
  • Unter Bezugnahme auf 7 wird ein privater Orts-Hash-Wert (oder ein anderer sicherer Ortsindikator) von einem bestimmten Gerät bei Block 402 empfangen. Der empfangene private Orts-Hash-Wert wird bei Block 404 in einem Speicher gespeichert, z. B. einer Datenbank. Einer oder mehrere private Orts-Hash-Werte, die vorher von anderen Geräten empfangen wurden, werden bei Block 406 aus dem Speicher abgerufen. Gemäß einer Implementierung sind alle vorher empfangenen privaten Orts-Hash-Werte „frisch”, d. h. nicht länger als X Minuten alt. X kann zum Beispiel auf fünf Minuten eingestellt werden, um sicherzustellen, dass ein privater Orts-Hash-Wert, der von einem tragbaren Gerät empfangen wird, nicht mit veralteten Werten verglichen wird, die nicht mehr zutreffend sind. Des Weiteren wurden in einigen Implementierungen die vorher empfangenen privaten Orts-Hash-Werte in derselben Minute empfangen, um eine strengere Ablaufrichtlinie durchzusetzen.
  • Bei Block 408 wird der private Orts-Hash-Wert, der bei Block 402 empfangen wird, mit einem oder mehreren privaten Orts-Hash-Werten verglichen, die bei Block 406 abgerufen wurden. Wenn eine Übereinstimmung erkannt wird, geht der Ablauf zu Block 410 weiter, wo eine entsprechende Benachrichtigung erzeugt und an die relevanten Geräte weitergeleitet wird. Die Benachrichtigung kann von Benutzerspezifikationseinstellungen abhängen. Alternativ kann die Benachrichtigung uneingeschränkt an alle relevanten Geräte weitergeleitet werden, und eine Anwendung, die auf jedem Gerät ausgeführt wird, prüft die Einstellungen des Benutzers, um zu bestimmen, ob die Benachrichtigung angezeigt werden soll. Wenn bei Block 408 keine Übereinstimmung erkannt wird, kehrt der Ablauf zu Block 402 zurück, um eine neuen privaten Orts-Hash-Wert zu empfangen.
  • Um die Techniken der vorliegenden Offenbarung weiter zu veranschaulichen, stellt 8 ein beispielhaftes Szenario in einem System 500 dar, in dem die tragbaren Geräte 502 und 504 mehrere gemeinsame Signale aus der Umgebung empfangen. Insbesondere kann das tragbare Gerät 502 Signale erkennen, die aus Gebiet 510 gesendet werden, und das tragbare Gerät 504 kann Signale erkennen, die aus Gebiet 512 gesendet werden. Die Überlappung zwischen den Gebieten 510 und 512 ist als Gebiet 514 dargestellt. Aus Gründen der Einfachheit wird angenommen, dass alle APs 520 Signale mit demselben Leistungspegel senden. Das tragbare Gerät 502 kann Signale von APs 520-1, 520-2, 520-3 und 520-7 erkennen, während das tragbare Gerät 504 Signale von APs 520-1, 520-2 und 530-3 und 520-6 erkennen kann. Weder das tragbare Gerät 502 noch das tragbare Gerät 504 können Signale von APs 520-4 oder 520-5 erkennen.
  • Jedes der tragbaren Geräte 502 und 504 kann die oben erörterten Techniken implementieren, um Wi-Fi-Datenpakete während bestimmter Zeiträume, z. B. einer Minute, zu empfangen und einen Satz von OTPs erzeugen, um ein konsistentes Hashing zu erreichen. Zum Beispiel können die tragbaren Geräte 502 und 504 während einer bestimmten Minute eine Überlappung von 50% bei den Wi-Fi-Datenpaketen erleben. Somit besteht, wenn eine bestimmte Hash-Funktion auf diese Datenpakete angewandt wird, eine Wahrscheinlichkeit von 50%, dass die tragbaren Geräte 502 und 504 denselben Hash-Wert erzeugen, der als OTP verwendet wird. Wenn jedoch L Hash-Funktionen im selben Szenario verwendet werden, wird die Wahrscheinlichkeit P, dass mindestens einer der Hash-Werte, der von den tragbaren Geräten 502 und 504 erzeugt wird, gleich ist,
    Figure DE202012013404U1_0002
  • Somit besteht, wenn L = 7, eine Wahrscheinlichkeit von 99%, dass die tragbaren Geräte 502 und 504 ein identisches OTP erzeugen. Des Weiteren besteht, wenn die tragbaren Geräte 502 und 504 weiterhin eine Überlappung von 50% bei den Wi-Fi-Paketen während einer gewissen Zeit erleben, und die tragbaren Geräte 502 und 504 während der ersten Minute nicht dasselbe OTP erzeugen, eine Wahrscheinlichkeit von 99%, dass die tragbaren Geräte 502 und 504 während der nächsten Minute dasselbe OTP erzeugen. Kurz gesagt können durch Verwendung mehrerer Hash-Funktionen zum Hashing von Wi-Fi-Paketen tragbare Geräte die Wahrscheinlichkeit verbessern, dass sie dasselbe OTP zur Erzeugung eines sicheren Ortsindikators verwenden.
  • Um einen anderen Faktor bei der Erzeugung sicherer Ortsindikatoren mithilfe der oben erörterten Techniken zu berücksichtigen, veranschaulichen 9A und 9B ein beispielhaftes quadratisches Gebiet 550, das 45 m breit ist, in dem ein tragbares Gerät seinen Ort mithilfe quantisierter Darstellungen seiner geografischen Koordinaten angeben kann. Das Gebiet 550 kann als neun benachbarte quadratische Regionen, oder Zellen 552-1, 552-2, ... 552-9, jeweils 15 m breit, dargestellt werden. Unter erster Bezugnahme auf 9A kann ein tragbares Gerät 554 seine geografischen Koordinaten bestimmen, die einem bestimmten Breitengrad und Längengrad in Zelle 552-5 entsprechen. Das tragbare Gerät 554 kann den Breitengrad und Längengrad quantisieren, um vier Ortskennungen zu erzeugen, die der Zelle 552-5, 552-6, 552-8 und 552-9 entsprechen. Somit muss, damit ein anderes tragbares Gerät dieselbe Ortskennung wie das tragbare Gerät 554 erzeugt, das andere tragbare Gerät einen Ortsdeskriptor erzeugen, der einer der Zellen 552-5, 552-6, 552-8 und 552-9 entspricht.
  • 9B veranschaulicht ein beispielhaftes Szenario, in dem zwei tragbare Geräte eine quantisierte Ortszelle gemeinsam nutzen. In diesem Fall bewegt sich das tragbare Gerät 554 zur Zelle 552-3 und erzeugt Ortsindikatoren für die Zellen 552-2, 552-3, 552-5 und 552-6. Ein tragbares Gerät 556 ist in einer Zelle 552-4 und erzeugt Ortsindikatoren für die Zellen 552-4, 552-5, 552-7 und 552-8. Die tragbaren Geräte 554 und 556 erzeugen somit eine identische Ortskennung, die die Zelle 552-5 identifiziert, auch wenn diese Geräte mindestens 15 m voneinander entfernt sind. Wie vorstehend unter Bezugnahme auf 8 erörtert, besteht, wenn die tragbaren Geräte 554 und 556 eine Überlappung von 50% bei den Wi-Fi-Paketen beobachten und wenn diese Geräte sieben Hash-Funktionen implementieren, um einen Satz von OTPs zu erzeugen, eine Wahrscheinlichkeit von 99%, dass diese Geräte innerhalb eines bestimmten Zeitintervalls auch dasselbe OTP erzeugen. Somit können mithilfe desselben OTP und desselben Ortsdeskriptors, der die Zelle 552-5 identifiziert, die tragbaren Geräte 554 und 556 einander mit hoher Wahrscheinlichkeit rasch finden.
  • In Bezug auf die Genauigkeit ist darauf hinzuweisen, dass die Wahrscheinlichkeit, dass zwei Hash-Werte kollidieren
    Figure DE202012013404U1_0003
    ist,
    wobei M die Zahl der Bits in einem sicheren Hash-Wert ist. Somit beträgt, wenn sieben Hash-Funktionen zusammen mit vier Ortsdeskriptoren verwendet werden, um 28 Hash-Werte mit einer Länge von 128 Bit zu erzeugen, und eine Milliarde Benutzer sichere Orts-Hash-Werte während eines bestimmten Zeitraums erzeugen, die Wahrscheinlichkeit einer versehentlichen Kollision von zwei sicheren Ortsindikatoren (d. h. die Wahrscheinlichkeit, dass zwei Geräte so weit voneinander entfernt sind, dass sie denselben sicheren Ortsindikator erzeugen) ungefähr eins in einer Milliarde Milliarden.
  • Zusätzliche Überlegungen
  • Die folgenden zusätzlichen Überlegungen gelten für die vorstehende Erörterung. In dieser gesamten Spezifikation können mehrere Instanzen Komponenten, Operationen oder Strukturen implementieren, die als einzelne Instanz beschreiben sind. Auch wenn einzelne Operationen von einem oder mehreren Verfahren als getrennte Operationen veranschaulicht und beschrieben sind, können eine oder mehrere der einzelnen Operationen gleichzeitig durchgeführt werden, und nichts erfordert, dass die Operationen in der veranschaulichten Reihenfolge durchgeführt werden. Strukturen und Funktionen, die in beispielhaften Konfigurationen als getrennte Komponenten dargestellt werden, können als kombinierte Struktur oder Komponente implementiert werden. In ähnlicher Weise können Strukturen und Funktionen, die als einzelne Komponenten dargestellt werden, als getrennte Komponenten implementiert werden. Diese und andere Varianten, Änderungen, Hinzufügungen und Verbesserungen fallen in den Umfang des Gegenstands der vorliegenden Offenbarung.
  • Außerdem sind bestimmte Ausführungsformen hierin als Logik oder eine Reihe von Komponenten, Modulen oder Mechanismen umfassend beschrieben. Module können entweder Softwaremodule (z. B. Code, der auf einem maschinenlesbaren Medium gespeichert ist) oder Hardwaremodule darstellen. Ein Hardwaremodul ist ein greifbares Gerät, das bestimmte Operationen durchführen kann, und es kann in einer bestimmten Weise konfiguriert oder angeordnet sein. In beispielhaften Ausführungsformen können eines oder mehrere Computersysteme (z. B. ein eigenständiges, Client- oder Server-Computersystem) oder eines oder mehrere Hardwaremodule eines Computersystems (z. B. ein Prozessor oder eine Gruppe von Prozessoren) von der Software (z. B. einer Anwendung oder einem Anwendungsteil) als Hardwaremodul konfiguriert sein, um bestimmte, hierin beschriebene Operationen durchzuführen.
  • In verschiedenen Ausführungsformen kann ein Hardwaremodul mechanisch oder elektronisch implementiert werden. Ein Hardwaremodul kann beispielsweise eine spezielle Schaltung oder Logik umfassen, die dauerhaft zur Ausführung bestimmter Operationen konfiguriert ist (z. B. als ein spezieller Prozessor, wie beispielsweise ein Field Programmable Gate Array (FPGA) oder eine anwendungsspezifische integrierte Schaltung (ASIC)). Ein Hardwaremodul kann außerdem programmierbare Logik oder Schaltkreise umfassen (z. B. wie in einem Allzweck-Prozessor oder einem anderen programmierbaren Prozessor eingeschlossen), der von der Software temporär für die Durchführung bestimmter Operationen konfiguriert ist. Es wird darauf hingewiesen, dass die Entscheidung für die mechanische Implementierung eines Hardwaremoduls in spezielle und dauerhaft konfigurierte oder temporär konfigurierte Schaltungen (z. B. per Software konfiguriert) von Kosten- und Zeitüberlegungen abhängig sein kann.
  • Demgemäß sollte der Begriff Hardware so verstanden werden, dass er eine greifbare Entität umfasst, sei es eine Entität, die physisch konstruiert, permanent konfiguriert (z. B. hartverdrahtet) oder temporär konfiguriert (z. B. programmiert) ist, um auf bestimmte Weise zu arbeiten oder bestimmte, hierin beschriebene Operationen durchzuführen. Bei Berücksichtigung von Ausführungsformen, in denen Hardwaremodule temporär konfiguriert (z. B. programmiert) sind, müssen die jeweiligen Hardwaremodule nicht zu jeder einzelnen zeitlichen Instanz konfiguriert oder instanziiert sein. Wenn die Hardwaremodule zum Beispiel einen Allzweck-Prozessor umfassen, der für die Verwendung von Software konfiguriert ist, kann der Allzweck-Prozessor als entsprechend unterschiedliche Hardwaremodule zu verschiedenen Zeiten konfiguriert sein. Software kann demgemäß einen Prozessor zum Beispiel so konfigurieren, dass er zu einer zeitlichen Instanz ein bestimmtes Hardwaremodul und zu einer anderen zeitlichen Instanz ein anderes Hardwaremodul darstellt.
  • Hardware- und Softwaremodule können Informationen anderen Hardware- und/oder Softwaremodulen bereitstellen und Informationen von diesen empfangen. Demgemäß können die beschriebenen Hardwaremodule als kommunikativ gekoppelt betrachtet werden. Wenn mehrere solcher Hardware- oder Softwaremodule gleichzeitig vorhanden sind, kann die Kommunikation über Signalübertragung (z. B. über entsprechende Schaltkreise und Busse) erreicht werden, die mit den Hardware- oder Softwaremodulen verbunden sind. In Ausführungsformen, in denen mehrere Hardware- und Softwaremodule zu verschiedenen Zeiten konfiguriert oder instanziiert sind, kann die Kommunikation zwischen solchen Hardware- und Softwaremodulen zum Beispiel durch die Speicherung und das Abrufen von Informationen in Speicherstrukturen erreicht werden, zu denen die mehreren Hardware- und Softwaremodule Zugriff haben. Zum Beispiel kann ein Hardware- oder Softwaremodul eine Operation durchführen und den Ausgang dieser Operation in einem Speichergerät speichern, mit dem es kommunikativ gekoppelt ist. Ein weiteres Hardware- oder Softwaremodul kann dann, zu einem späteren Zeitpunkt, auf das Speichergerät zugreifen, um die gespeicherte Ausgabe abzurufen und zu verarbeiten. Hardware- und Softwaremodule können außerdem die Kommunikation mit Eingabe- und Ausgabegeräten initiieren, und sie können auf einer Ressource (z. B. einer Informationssammlung) betrieben werden.
  • Die verschiedenen Operationen hierin beschriebener exemplarischer Verfahren können, zumindest teilweise, von einem oder mehreren Prozessoren durchgeführt werden, die temporär (z. B. durch Software) oder permanent für die Durchführung der relevanten Operationen konfiguriert sind. Ganz gleich, ob sie temporär oder permanent konfiguriert sind, stellen solche Prozessoren von Prozessoren implementierte Module dar, die betrieben werden, um eine oder mehrere Operationen oder Funktionen durchzuführen. Module, auf die hierin verwiesen wird, umfassen in einigen beispielhaften Ausführungsformen von Prozessoren implementierte Module.
  • In ähnlicher Weise können hierin beschriebene Verfahren oder Routinen zumindest teilweise von Prozessoren implementiert sein. Zum Beispiel können zumindest einige der Operationen eines Verfahrens von einem oder mehreren Prozessoren oder von durch Prozessoren implementierten Hardwaremodulen durchgeführt werden. Die Durchführung bestimmter Operationen kann unter den ein oder mehreren Prozessoren verteilt sein, die sich nicht in einer einzigen Maschine befinden, sondern über eine Reihe von Maschinen bereitgestellt werden. In einigen beispielhaften Ausführungsformen können sich der Prozessor oder die Prozessoren an einem einzigen Ort (z. B. in einer Wohnungsumgebung, in einer Büroumgebung oder als eine Serverfarm) befinden, während in anderen Ausführungsformen die Prozessoren über eine Reihe von Orten verteilt sein können.
  • Der eine oder die mehreren Prozessoren können auch so betrieben werden, dass sie die Durchführung der relevanten Operationen in einer „Cloud-Computer”-Umgebung oder einer SaaS unterstützen. Zum Beispiel können einige der Operationen durch eine Gruppe von Computern (z. B. von Maschinen einschließlich Prozessoren) durchgeführt werden, wobei dieses Operationen über ein Netzwerk (z. B. das Internet) und über eine oder mehrere geeignete Schnittstellen (z. B. Anwendungsprogrammschnittstellen, APIs) zugänglich sind.
  • Die Durchführung bestimmter Operationen kann unter dem einen oder den mehreren Prozessoren verteilt sein, die sich nicht in einer einzigen Maschine befinden, sondern über eine Reihe von Maschinen bereitgestellt werden. In einigen beispielhaften Ausführungsformen können sich der eine oder die mehreren Prozessoren oder durch Prozessoren implementierte Module an einem einzigen geografischen Ort (z. B. einer Wohnumgebung, einer Büroumgebung oder einer Serverfarm) befinden. In anderen beispielhaften Ausführungsformen können der eine oder die mehreren Prozessoren oder durch Prozessoren implementierten Module über eine Reihe geografischer Orte verteilt sein.
  • Einige Teile dieser Spezifikation werden in Bezug auf Algorithmen oder symbolische Darstellungen von Operationen bei Daten dargestellt, die als Bits oder binäre digitale Signale in einem Maschinenspeicher (z. B. einem Computerspeicher) gespeichert sind. Diese Algorithmen oder symbolischen Darstellungen sind Beispiele von Techniken, die von Fachleuten der Datenverarbeitungstechnik verwendet werden, um anderen Fachleuten die wesentlichen Inhalte ihrer Arbeit zu vermitteln. Wie hierin verwendet, ist ein „Algorithmus” oder eine „Routine” eine eigenkonsistente Sequenz von Operationen oder ähnliche Verarbeitung, die zu einem gewünschten Ergebnis führt. In diesem Kontext beinhalten Algorithmen, Routinen und Operationen die physische Manipulation physischer Mengen. Normalerweise, aber nicht notwendigerweise, können solche Mengen die Form elektrischer, magnetischer oder optischer Signale annehmen, die von einer Maschine gespeichert, aufgerufen, übertragen, kombiniert, verglichen oder sonst manipuliert werden können.
  • Hauptsächlich aus Gründen der allgemeinen Verwendung ist es manchmal praktisch, solche Signale mithilfe von Wörtern wie „Daten”, „Inhalt”, „Bits”, „Werte”, „Elemente”, „Symbole”, „Zeichen” „Begriffe”, „Zahlen”, „Ziffern” oder ähnlichem zu bezeichnen. Diese Wörter sind jedoch lediglich praktische Bezeichnungen und dürfen nicht mit entsprechenden physischen Mengen verbunden werden.
  • Sofern nicht speziell anders angegeben, können sich Erörterungen hierin, die Wörter wie „Verarbeitung”, „Berechnung”, „Bestimmung”, „Darstellung”, „Anzeige” oder ähnliches verwenden, auf Aktionen oder Prozesse einer Maschine (z. B. eines Computers) beziehen, die Daten manipulieren oder transformieren, die als physische (z. B: elektronische, magnetische oder optische) Mengen in einem oder mehreren Speichern (z. B. flüchtiger Speicher, nicht flüchtiger Speicher oder eine Kombination davon), Register oder andere Maschinenkomponenten dargestellt sind, die Informationen empfangen, speichern, übertragen oder anzeigen.
  • Wie hierin verwendet, bedeuten Verweise auf „eine Ausführungsform” oder „Ausführungsformen”, dass ein bestimmtes Element, Merkmal, eine Struktur oder eine Eigenschaft, das/die in Verbindung mit der Ausführungsform beschrieben wird, zumindest in einer Ausführungsform enthalten ist. Das Erscheinen der Phrase „in einer Ausführungsform” an verschiedenen Orten in der Spezifikation bezieht sich nicht notwendigerweise immer auf dieselbe Ausführungsform.
  • Einige Ausführungsformen können mithilfe des Ausdrucks „gekoppelt” und „verbunden” zusammen mit deren Ableitungen beschrieben werden. Zum Beispiel können einige Ausführungsformen mithilfe des Begriffs „gekoppelt” beschrieben werden, um anzugeben, dass eines oder mehrere Elemente im direkten physischen oder elektrischen Kontakt sind. Der Begriff „gekoppelt” kann jedoch auch bedeuten, dass eines oder mehrere Elemente nicht im direkten Kontakt miteinander sind, aber trotzdem noch zusammenarbeiten oder interagieren. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
  • Wie hierin verwendet, sollen die Begriffe „umfasst”, „umfassend”, „beinhaltet”, „enthält”, „hat”, „haben” und andere Varianten davon eine nicht ausschließliche Einbeziehung abdecken. Zum Beispiel ist ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, der/die eine Liste von Elementen umfasst, nicht notwendigerweise nur auf diese Elemente beschränkt, sondern kann andere Elemente beinhalten, die nicht ausdrücklich aufgelistet oder bei einem solchen Prozess, einem solchen Verfahren, einem solchen Artikel oder einer solchen Vorrichtung inhärent sind. Des Weiteren bezieht sich, sofern nichts Gegenteiliges angegeben wird, „oder” auf ein einschließendes und nicht auf ein ausschließendes Oder. Zum Beispiel ist eine Bedingung A oder B durch eines der folgenden erfüllt: A ist wahr (oder vorhanden) und B ist falsch (oder nicht vorhanden), A ist falsch (oder nicht vorhanden) und B ist wahr (oder vorhanden) und sowohl A als auch B sind wahr (oder vorhanden).
  • Außerdem wird „eine”, „einer” oder „eines” verwendet, um Elemente und Komponenten der Ausführungsformen hierin zu beschreiben. Dies erfolgt lediglich aus praktischen Gründen und um eine allgemeine Vorstellung der Beschreibung zu vermitteln. Die Beschreibung sollte so gelesen werden, dass sie eines oder mindestens eines enthält, und der Singular umfasst auch den Plural, außer es ist offensichtlich anders gedacht.
  • Beim Lesen dieser Offenbarung werden Fachleute auf dem Gebiet weitere Alternativen struktureller und funktioneller Designs zur Generierung sicherer Ortsindikatoren durch die hierin offenbarten Prinzipien erkennen. Somit sollte, während bestimmte Ausführungsformen und Anwendungen veranschaulicht und beschrieben wurden, es selbstverständlich sein, dass die offenbarten Ausführungsformen nicht auf die genaue Konstruktion und Komponenten beschränkt sind, die hierin offenbart wurden. Verschiedene Modifikationen, Änderungen und Variationen, die für Fachleute auf dem Gebiet ersichtlich werden, können in der Anordnung, dem Betrieb und in den Einzelheiten der Verfahren und der Vorrichtung, die hierin offenbart werden, ohne Abweichung von der Idee und dem Umfang der angehängten Patentansprüche erfolgen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • Institute of Electrical and Electronics Engineers (IEEE) 802.11-Standard [0023]

Claims (7)

  1. Tragbares Gerät, umfassend: einen oder mehrere Prozessoren; ein Kommunikationsmodul, das mit dem einen oder den mehreren Prozessoren gekoppelt und so konfiguriert ist, dass es Signale über ein drahtloses Kommunikationsnetzwerk sendet und empfängt; einen computerlesbaren Speicher, der mit dem einen oder den mehreren Prozessoren gekoppelt ist und auf dem Anweisungen gespeichert sind, die, wenn sie auf dem einen oder den mehreren Prozessoren ausgeführt werden, dazu führen, dass das tragbare Gerät: einen Satz von einem oder mehreren One-Time Pads (OTPs) mithilfe eines Signals von einer Umgebung erzeugt, in der das tragbare Gerät betrieben wird, worin das Signal über das Kommunikationsmodul empfangen wird; einen Satz von einem oder mehreren Ortsdeskriptoren auf Basis eines aktuellen geografischen Orts des tragbaren Geräts erzeugt, worin jeder Ortsdeskriptor ein geografisches Gebiet angibt, das mit dem aktuellen geografischen Ort des tragbaren Geräts verbunden ist; einen Satz von einem oder mehreren sicheren Ortsdeskriptoren mithilfe einer kryptografischen Funktion, den Satz von OTPs und den Satz von Ortsdeskriptoren erzeugt; den Satz der sicheren Ortsindikatoren über das Kommunikationsmodul einem Server bereitstellt, der im drahtlosen Netzwerk betrieben wird, zur Bestimmung mithilfe der Vielzahl von sicheren Ortsdeskriptoren eines oder mehrerer Geräte, die sich physisch in der Nähe des tragbaren Geräts befinden.
  2. Das tragbare Gerät nach Anspruch 1, wobei der Satz von OTPs eine Vielzahl von OTPs umfasst, der Satz von Ortsdeskriptoren eine Vielzahl von Ortsdeskriptoren umfasst, und der Satz von sicheren Ortsdeskriptoren eine Vielzahl von sicheren Ortsdeskriptoren umfasst, worin, um die Vielzahl der sicheren Ortsdeskriptoren zu erzeugen, die Anweisungen das tragbare Gerät veranlassen: eine Vielzahl von Kombinationen zu erzeugen, wobei jede Kombination eines der Vielzahl von OTPs und einen der Vielzahl von Ortsdeskriptoren umfasst, und die kryptografische Funktion auf jede der Vielzahl von Kombinationen anwendet, um die Vielzahl sicherer Ortsdeskriptoren zu erzeugen.
  3. Das tragbare Gerät nach Anspruch 2, worin der Satz von Ortsdeskriptoren eine Vielzahl von Ortsdeskriptoren umfasst, und worin, um die Vielzahl der Ortsdeskriptoren zu erzeugen, die Anweisungen das tragbare Gerät veranlassen: einen Breitengrad und einen Längengrad zu bestimmen, der dem aktuellen geografischen Ort des tragbaren Geräts entspricht, und den Breitengrad und Längengrad zu quantisieren, um die Vielzahl von Ortsdeskriptoren zu erzeugen, die jeweils eine jeweilige Annäherung des Breitengrads und eine jeweilige Annäherung des Längengrads umfassen.
  4. Das tragbare Gerät nach Anspruch 3, des Weiteren umfassend ein Positonierungsmodul, das so konfiguriert ist, dass es den aktuellen geografischen Ort des tragbaren Geräts bestimmt.
  5. Das tragbare Gerät nach Anspruch 4, worin das Positionierungsmodul den aktuellen geografischen Ort des tragbaren Geräts auf Basis einer Vielzahl von Global Positioning Service(GPS)-Signalen bestimmt.
  6. Das tragbare Gerät nach Anspruch 1, worin das Kommunikationsmodul des Weiteren so konfiguriert ist, dass es: eine Vielzahl von Beacons von den jeweiligen drahtlosen Zugangspunkten empfängt; den aktuellen geografischen Ort des tragbaren Geräts auf Basis der Vielzahl von Beacons bestimmt.
  7. Das tragbare Gerät nach Anspruch 1, worin der Satz von OTPs eine Vielzahl von OTPs umfasst, und worin, um die Vielzahl der OTPs zu erzeugen, die Anweisungen das tragbare Gerät veranlassen: eine Vielzahl von Datenpaketen zu empfangen, die im empfangenen Signal enthalten sind, eine Vielzahl kryptografischer Hash-Funktionen auf die Vielzahl von Datenpaketen anzuwenden, um eine Vielzahl von Strömen pseudo-zufälliger Werte zu erzeugen, und einen pseudo-zufälligen Wert aus jeder der Vielzahl von Strömen pseudo-zufälliger Werte auszuwählen, um die Vielzahl von OTPs zu erzeugen.
DE202012013404.3U 2011-11-22 2012-06-20 Finden von Benutzern in der Nähe ohne Offenlegung des eigenen Standortes Expired - Lifetime DE202012013404U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/302,599 US8213617B1 (en) 2011-11-22 2011-11-22 Finding nearby users without revealing own location
US201113302599 2011-11-22

Publications (1)

Publication Number Publication Date
DE202012013404U1 true DE202012013404U1 (de) 2016-10-28

Family

ID=46320218

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202012013404.3U Expired - Lifetime DE202012013404U1 (de) 2011-11-22 2012-06-20 Finden von Benutzern in der Nähe ohne Offenlegung des eigenen Standortes

Country Status (4)

Country Link
US (2) US8213617B1 (de)
EP (1) EP2772080B1 (de)
DE (1) DE202012013404U1 (de)
WO (1) WO2013077910A1 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292668B1 (en) * 2011-09-01 2016-03-22 Google Inc. Systems and methods for device authentication
WO2013166588A1 (en) 2012-05-08 2013-11-14 Bitstrips Inc. System and method for adaptable avatars
CN102970297B (zh) * 2012-11-27 2015-03-04 飞天诚信科技股份有限公司 一种行程记录方法
US9344990B1 (en) * 2012-12-03 2016-05-17 Sprint Communications Company L.P. Device location accuracy metrics for applications on wireless communication devices
US20160007184A1 (en) * 2013-02-25 2016-01-07 Radius Mobile, Inc. Identifying computer devices in proximity to a given origin
WO2014132250A1 (en) * 2013-02-26 2014-09-04 Adience SER LTD Generating user insights from images and other data
US9351116B2 (en) * 2013-05-30 2016-05-24 Hong Kong Baptist University System and method for providing proximity information
US8909250B1 (en) 2013-07-02 2014-12-09 Google Inc. Obscuring true location for location-based services
US9042912B1 (en) 2014-02-18 2015-05-26 Google Inc. Two-pass copresence
US10320860B1 (en) 2014-06-24 2019-06-11 Google Llc Server orchestrated connectivity
US10296549B2 (en) 2014-08-18 2019-05-21 Perry Street Software, Inc. Density dependent search functions
US10296550B2 (en) 2014-08-18 2019-05-21 Perry Street Software, Inc. Selective inclusion of members in a results list
US10282478B2 (en) 2014-08-18 2019-05-07 Perry Street Software, Inc. Density modified search results
US10713702B1 (en) 2014-09-29 2020-07-14 Groupon, Inc. System and method for generating purchase recommendations based on geographic zone information
US10339365B2 (en) 2016-03-31 2019-07-02 Snap Inc. Automated avatar generation
US10432559B2 (en) 2016-10-24 2019-10-01 Snap Inc. Generating and displaying customized avatars in electronic messages
US11893647B2 (en) 2017-04-27 2024-02-06 Snap Inc. Location-based virtual avatars
US10212541B1 (en) 2017-04-27 2019-02-19 Snap Inc. Selective location-based identity communication
CN110800018A (zh) 2017-04-27 2020-02-14 斯纳普公司 用于社交媒体平台的朋友位置共享机制
US11922363B2 (en) * 2017-07-05 2024-03-05 United Parcel Service Of America, Inc. Counterparty physical proximity verification for digital asset transfers
US11900306B2 (en) 2017-07-05 2024-02-13 United Parcel Service Of America, Inc. Verifiable parcel distributed ledger shipping and tracking system
WO2020068857A1 (en) 2018-09-24 2020-04-02 Knowhere App Inc. Reciprocal-basis authorization for proximate presence reveal with location privacy maintained
US11937078B2 (en) * 2020-08-25 2024-03-19 Crypto Lab Inc. Mobile device for detecting route overlap and methods thereof

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5436632A (en) * 1994-06-02 1995-07-25 Trimble Navigation Limited Integrity monitoring of differential satellite positioning system signals
US5831579A (en) * 1997-04-15 1998-11-03 Ericsson, Inc. Latch mechanism for mobile communication devices
US6441752B1 (en) * 2000-12-30 2002-08-27 Mundi Fomukong Method and apparatus for locating mobile units tracking another or within a prescribed geographic boundary
DE60313735T2 (de) * 2003-03-28 2007-10-18 Alcatel Lucent Kommunikationsverfahren für ein drahtloses Netz
US7088989B2 (en) * 2003-05-07 2006-08-08 Nokia Corporation Mobile user location privacy solution based on the use of multiple identities
WO2005099173A1 (en) * 2004-04-06 2005-10-20 Koninklijke Philips Electronics, N.V. Location based handoff for mobile devices
US7925027B2 (en) 2005-05-02 2011-04-12 Ntt Docomo, Inc. Secure address proxying using multi-key cryptographically generated addresses
US7561888B2 (en) * 2005-07-15 2009-07-14 Cisco Technology, Inc. Efficiently bounding the location of a mobile communications device
US7613426B2 (en) * 2005-12-20 2009-11-03 Microsoft Corporation Proximity service discovery in wireless networks
US8099086B2 (en) * 2006-06-21 2012-01-17 Ektimisi Semiotics Holdings, Llc System and method for providing a descriptor for a location to a recipient
US8848924B2 (en) * 2008-06-27 2014-09-30 University Of Washington Privacy-preserving location tracking for devices
US7590245B1 (en) * 2008-09-10 2009-09-15 Gutman Levitan Anonymous communicating over interconnected networks
US8010131B2 (en) * 2008-09-16 2011-08-30 Rothschild Leigh M System and method for enabling social interactive wireless communications
US8224978B2 (en) * 2009-05-07 2012-07-17 Microsoft Corporation Mechanism to verify physical proximity
US8630422B2 (en) 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
US8386620B2 (en) * 2009-12-15 2013-02-26 Apple Inc. Ad hoc networking based on content and location

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Institute of Electrical and Electronics Engineers (IEEE) 802.11-Standard

Also Published As

Publication number Publication date
US8213617B1 (en) 2012-07-03
US8737607B2 (en) 2014-05-27
EP2772080B1 (de) 2016-08-10
EP2772080A1 (de) 2014-09-03
WO2013077910A1 (en) 2013-05-30
EP2772080A4 (de) 2014-09-03
US20130129084A1 (en) 2013-05-23

Similar Documents

Publication Publication Date Title
DE202012013404U1 (de) Finden von Benutzern in der Nähe ohne Offenlegung des eigenen Standortes
CN105474677B (zh) 安全管理的位置和跟踪服务访问
US9705736B2 (en) Method and system for a personal network
US7308250B2 (en) Integration of secure identification logic into cell phone
EP2513758B1 (de) Intelligentes standortverwaltungssystem
DE202013012429U1 (de) Erstellen und Teilen von privaten Lokalisierungsdatenbanken
CN106028331A (zh) 一种识别伪基站的方法及设备
US8989701B2 (en) Identifying a wireless device of a target user for communication interception based on individual usage pattern(S)
CN105144655A (zh) 3gpp lte中的通信移动设备之间的接近发现、认证和链路建立
CN112055958B (zh) 实现安全协议的方法及用于无线网络的安全系统
CN105873177A (zh) 一种用于获取共享无线接入点的接入信息的方法与设备
DE112013004348T5 (de) Verfahren und Vorrichtung zum Identifizieren eines Verdächtigen durch mehrere korrelierte Geräteidentitäten
US9003055B2 (en) Controlling third party access to network devices
US20140088965A1 (en) Associating and locating mobile stations based on speech signatures
KR20150100602A (ko) 데이터 저장 및 판독 방법, 장치, 및 기기
CN109040951B (zh) 个人热点的控制方法及装置
US11200409B2 (en) Utilizing an array of cameras including IoT sensors with cameras to search for objects via a wireless communication network
CN111031475A (zh) 采集终端位置信息的方法、终端、位置采集端及存储介质
CN113973293B (zh) 一种侦听方法及装置
WO2016061981A1 (zh) 实现wlan共享的方法、系统和wlan共享注册服务器
Gorlatova et al. Managing base station location privacy
DE112019002070T5 (de) Peer-to-Peer-Kommunikationssystem
US9125060B2 (en) Methods, systems, and computer program products for intercepting, in a carrier network, data destined for a mobile device to determine patterns in the data
Caprolu et al. Watch Nearby! Privacy Analysis of the People Nearby Service of Telegram
US20230370837A1 (en) System and method for phone privacy

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R151 Utility model maintained after payment of second maintenance fee after six years
R152 Utility model maintained after payment of third maintenance fee after eight years
R071 Expiry of right