Secure, localized, connectionless handoff of data

The connectionless data handoff method using locally generated encryption keys and BLE scanning facilitates secure, seamless data transfer between devices without prior pairing or network connection, addressing the limitations of existing technologies.

JP7597954B2Active Publication Date: 2024-12-10GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2023572874
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-05-26
Filing Date
2022-05-25
Publication Date
2024-12-10
Estimated Expiration
2042-05-25

AI Technical Summary

Technical Problem

Existing technologies require devices to be paired or connected to a common network for data handoff, which can be cumbersome and latency-inducing, especially in environments where network connectivity is limited or not available.

Method used

A connectionless data handoff method using locally generated encryption keys shared through a user account, enabling devices to securely transfer data without prior pairing or network connection, utilizing techniques like Bluetooth Low Energy (BLE) scanning and advertising for proximity detection and encryption.

Benefits of technology

Enables seamless, secure, and low-latency data transfer between devices without the need for explicit pairing or network connectivity, allowing real-time data sharing and application continuity across devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007597954000001
    Figure 0007597954000001
  • Figure 0007597954000002
    Figure 0007597954000002
  • Figure 0007597954000003
    Figure 0007597954000003
Patent Text Reader

Abstract

A connectionless system for handing off data, content or information includes a proximity detection component that allows a device to detect other local devices within range. Devices within range can exchange communications using advertisements and scans such that one device can hand off data, content or information to another device without having a connection, e.g., pairing, with the other device.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is a continuation of U.S. Patent Application No. 17 / 331,185, filed May 26, 2021, the disclosure of which is incorporated herein by reference. [Background technology]

[0002] background It is not uncommon for a modern home to have multiple computing devices that can communicate with other computing devices, e.g., servers, over the Internet. For example, such a home may have a smart television, laptops, desktops, exercise equipment, appliances, and smartphones. These devices may also communicate with each other over a local area network (LAN) within the home. Each of these devices may also communicate independently through a wired (e.g., Ethernet) or wireless (e.g., WiFi) network to a computing system accessible over a wide area network, e.g., the Internet. The computing system may support applications that may run on two or more of the devices, e.g., banking applications, exercise and / or health applications. In some cases, it may be advantageous for data or applications being processed on one device to be handed off to another device. For example, a user may run an exercise application that requires the user to change locations. For example, an exercise routine may include an outdoor element, e.g., running, and an indoor element, e.g., mat exercises. When the user changes locations, the user may want the application or data to be securely handed off from his / her smartphone to his / her smart television. Summary of the Invention

[0003] overview Aspects of the disclosed technology may include a system, an apparatus, or a method.

[0004] In one aspect, the disclosed technology can include a method for connectionless data handoff. The method can include transmitting, by the first device, a first key generated locally to the computing device, receiving, by the first device from the computing device, a second key generated locally for the second device, scanning, by the first device, the encrypted data transmitted by the second device, and decrypting, by the first device, the encrypted data transmitted by the second device with the second key to generate decrypted data (the first device received the encrypted data without establishing a direct connection to the second device, thus, by connectionless handoff of data previously processed and / or displayed on the second device). The method can also include processing, by the first device, the decrypted data for display on the first device.

[0005] According to this aspect of the technology, the first device includes a device having a larger screen than the second device.

[0006] According to this aspect of the technology, the first device may store the second key as part of a tuple that further includes user account information, a device ID associated with the second device, an old encryption key associated with the second device, and a TTL (time to live) for the old encryption key.

[0007] In accordance with this aspect of the technology, the method may include associating, by a computing device, the first key and the second key with a user account.

[0008] According to this aspect of the technology, the method may include generating, by the first device, a first key using a hash function or a randomly generated string generated by the first device.

[0009] According to this aspect of the technology, the method can include detecting, by the first device, the presence of the second device. Additionally, the detecting can include determining a distance between the first device and the second device using a round trip delay. Furthermore, the determining the distance can include detecting the distance using wireless technology. The scanning can be performed by the first device only in response to detecting the presence of the second device by the first device. For example, if the first device approaches a threshold boundary for detecting the presence of the second device and then detects the second device, the first device can automatically initiate a handoff of data to the second device. The handoff of data can be restricted to second devices that are not only within a predetermined distance to the first device, but are also associated with a user account to which the first device is also associated.

[0010] In accordance with this aspect of the technology, the decrypted data may include one or more of video content or health statistics.

[0011] In accordance with this aspect of the present technology, a computing device includes a server coupled to a first device and a second device via a first network, and the scanning can be performed by the first device via a second network different from the first network.

[0012] According to this aspect of the technology, processing the decrypted data by the first device for display on the first device can involve launching an application on the first device for processing the decrypted data. For example, in response to receiving and decrypting the encrypted data, an app active on the second device can be automatically launched at the first device. Thus, the decrypted data can trigger the launch of an application (app) to process the decrypted handoff data for display.

[0013] Another aspect of the disclosed technology may include a method for connectionless handoff of data. The method may include transmitting, by a first device, a first key generated locally to a computing device, receiving, by the first device, a second key generated by a second device, sensing, by the first device, a location of the second device within a predetermined distance of the first device, and periodically broadcasting, by the first device, data encrypted with the first key to the second device, where the encrypted data is handed off to the second device for further processing and / or display.

[0014] According to this aspect of the disclosed technology, the first device includes a device having a smaller screen than the second device.

[0015] According to this aspect of the disclosed technology, the first device can store the second key as part of a tuple that further includes user account information, a device ID associated with the second device, an old encryption key associated with the second device, and a TTL (time to live) for the old encryption key.

[0016] Additionally, the method may include associating, by the computing device, the first key and the second key with the user account. The method may also include generating, by the first device, the first key using a hash function or a randomly generated string generated by the first device.

[0017] According to this aspect of the disclosed technology, the sensing may include determining a distance between the first device and the second device using a round trip delay.

[0018] According to this aspect of the disclosed technology, the determining includes detecting the distance using one of an ultra-wideband signal, a Bluetooth low energy signal, or a Bluetooth RSSI signal. In addition, the encrypted data includes one or more of video content or health statistics. Furthermore, the computing device may include a server coupled to the first device and the second device via the first network.

[0019] According to this aspect of the disclosed technology, the scanning can be performed by the first device over a second network different from the first network. Further, the method can include periodically broadcasting data encrypted with the first key over the second network. [Brief description of the drawings]

[0020] [Figure 1] 1 illustrates an exemplary system in accordance with an aspect of the disclosed technology. [Diagram 2] 1 illustrates an exemplary computing device in accordance with aspects of the disclosed technology. [Diagram 3] 1 illustrates an exemplary system in accordance with an aspect of the disclosed technology. [Figure 4A] 1 illustrates an example process in accordance with an aspect of the disclosed technology. [Figure 4B]1 illustrates an exemplary system in accordance with an aspect of the disclosed technology. [Diagram 5] 1 illustrates an example process in accordance with an aspect of the disclosed technology. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0021] Detailed Description Overview The technology relates to techniques for securely handing off an active application, or alternatively data, running on a first device to a second device without requiring the devices to be "paired" or present on a common network prior to initiation of the handoff. As an example, an application on a first device may perform a workout routine that includes an outdoor component (e.g., a 5K run) followed by an indoor component (e.g., yoga). The first device in this example may include a mobile phone, a smartwatch, or other portable device that the person wears or can carry while the user performs the outdoor component. Once the outdoor component is finished, the user may then enter the home to perform the indoor component. Once the user enters indoors and is in the vicinity of other devices in the home that may also be running applications, the application running on the first device may be handed off to a second device for displaying information related to the active application, among other devices. The second device may include a television receiver, a computer, a tablet, or any other device capable of running an application. Once the handoff is made, the user may continue with the indoor component of the workout routine by looking at the second device.

[0022] In the above example, the technology is described in the context of a workout routine having an indoor component and an outdoor component. The technology is not limited to that example. For example, the technology may involve an application that starts indoors on a first device and is handed off to a second indoor device. For example, the application may involve a workout routine where the user may want to move from one location in the home to a second location. In such an example, the application may run first on a first device, such as a mobile phone, laptop or other portable device. The user may then want to hand off an already active application to another device with a larger screen, such as a television receiver. In this example, the active application may include a workout application and other applications, such as an application that streams movies or other entertainment content (e.g., YOUTUBE®), a banking application, a text editor, or any other application that the user may find useful.

[0023] An aspect of the disclosed technology is secure key generation and sharing of device keys among handoff device candidates associated with a user account. For example, a technique for implementing this aspect of the technology can include sharing one or more decryption keys among handoff device candidates intended to pick up or obtain the encrypted data broadcast before performing the handoff. Each handoff device can include a device signed into a user account. The user account can be, for example, an online email account such as a Google® or Gmail® account. The account can include any account that allows for registration of user devices and key sharing between registered devices. A unique key stored in association with the account can be used to decrypt data sent by a device signed into the account to another device signed into the account. For devices that are not yet signed into an account, signing into the account next makes such devices handoff device candidates.

[0024] A unique key is generated locally at the device and may include a randomly generated string or a string generated by a hash. Once the key is generated, it is stored in a tuple (e.g., a sequence or ordered list of n elements) on the server and linked to the user's account. Thus, each device associated with the user account generates and stores a unique key on the server. In addition, each device associated with the account may store unique keys for other devices associated with the user account. As part of the process of enabling an application handoff from a first device to a second device, the second device uses the first device's unique key to decrypt encrypted data broadcast by the first device. That is, the first device uses its own unique key to encrypt and securely transmit application content or data to the second device. The second device then uses its unique key to decrypt the application content or data it receives and presents the data or content to the user.

[0025] If the key is stored on a remote server via the Internet, the device may need to connect to a server that provides and has access to the device's key associated with a given user account. In general, the device needs to be able to connect to the server via one or more networks. For example, the device may need the ability to connect to the Internet directly (e.g., via WiFi, LAN, cellular) or indirectly (e.g., via Bluetooth (e.g., BT-tethering watch)) and to connect to another device with Internet connectivity (e.g., a smartphone with Internet access) to connect to or cooperate with the server. In another example, the function of maintaining and providing the device key can be performed by a local computer, for example, providing equivalent functionality to that provided by a server accessible via the Internet. As a further example, instead of requiring a connection to the Internet, a Google home speaker can be an intermediary and key storage / sharing device (e.g., instead of requiring a Google server). In these latter cases, the system can be considered localized to a building or other location where the user device linked to the user account is available for handoff of content or data, since no WAN or Internet connection is required.

[0026] The tuple associated with a device may, for example, take the following form: (User_acct., device ID, new_encryption_key, old_encryption_key, new_TTL (time to live), old_TTL). The new_encryption_key and old_encryption_key may be stored, for example, if a WiFi or network connection fails and the keys are not updated locally on other devices. Nearby or candidate devices may then attempt to decrypt received content or data and may use the old or new key. "old_TTL" refers to the expiration date of the old key, at which point the key becomes invalid and its associated field in the tuple is filled or set to zero. Once a new key or hash is created, all devices associated with the account may update their local storage with this new information.

[0027] Another example of this technology is proximity detection between nearby devices, or devices located within listening range of each other. In an example, proximity detection can be based on a technique that uses the round trip time of one or more transmitted and / or reflected signals to estimate the distance between two devices. In another example, ultra-wideband (UWB) technology can be used for this function. In another example, Bluetooth Low Energy (BLE) or Bluetooth Received Signal Strength Indicator (RSSI) can be used to estimate the distance. Because there is variance in received signal strength based on antenna design, signal loss (e.g., device chassis), etc., which can be large at times, in some cases, using RSSI trending to determine the changing distance between points may be preferable as opposed to using the absolute value of RSSI. When multiple devices are present, trilateration can be used to estimate the distance between the multiple devices. As an example of proximity detection, if a user is doing a workout on their watch and moves near a television (e.g., Google TV®), RSSI can be used to determine the proximity between the watch and the television and suggest an action tip to move to a guided workout on the TV. For example, if the watch and TV are within a certain distance or the detected power level is below a threshold, the user may be alerted via the watch or TV that the TV is available for viewing or interacting with content or data presented on the watch (e.g., a streaming workout).

[0028] An aspect of the disclosed technology is to utilize a connectionless method. A connectionless connection allows a device to obtain real-time information (e.g., health statistics) on another device without an explicit connection. In particular, devices can communicate with each other without a connection, for example, via advertisement and scanning. The advertisement takes the form of a broadcast that all nearby devices can listen to. Thus, this aspect of the disclosed technology is not limited to unicast or point-to-point connection methods. Instead, a device can "broadcast" or "speak" to multiple endpoints or other devices simultaneously. In accordance with this aspect of the disclosed technology, BLE scanning and advertising can be utilized. Further, in accordance with this aspect of the disclosed technology, advertisements can vary from 6 to 37 bytes. This can typically be large enough to allow communication of encrypted information between devices. The encrypted information can include information in the advertisement packet that may or may not be sensitive, such as, for example, name, health, photo, etc. The payload is not encrypted and can include a custom preamble (in the data portion of the payload) that corresponds to the unique ID of the device. This ID is the same one present in the tuple discussed above. The listener (the device doing the scanning) unpacks the payload, reads the device ID, and uses that value as a hash to do a hash table lookup, thereby obtaining the tuple corresponding to this device. As mentioned above, the tuple stores the old and new encryption keys, which can be used to decrypt the remainder of the payload. The raw data can then be processed.

[0029] Since the disclosed technology does not utilize point-to-point connections, the advertisement and scanning methods utilized are inherently unidirectional. However, bidirectional communication can be obtained by emulating the characteristics of a point-to-point connection using a sequence number in the payload of the advertisement field. To ensure that the listener picks up the packet that the advertiser is sending, the packet can be retransmitted a certain number of times. If the data is related to some time series, such as real-time heartbeat data, a sequence number or identifier can be attached to the advertisement packet.

[0030] An example according to the above aspects of the disclosed technology may include a user using a watch to perform an exercise routine that involves tracking, processing, and accumulating statistics associated with one or more detected health-related parameters. The watch may be registered to a user account, such as a Google Gmail account. In addition, a TV associated with the user may also be registered to the user account. The watch and TV may each generate a local unique key. Each key is shared with a server and associated with the user's Gmail account. In addition, each device associated with the account, e.g., the watch and TV, may obtain the keys of all other devices associated with the account. When the watch is located within a certain distance of the TV, the TV may alert the user that the TV is available to display data associated with the exercise routine being performed on the watch. If the user wants the data to be displayed on the TV, the watch may advertise the data it collects with its unique key, and the TV may scan such advertisements and decrypt them with the watch's key to obtain the collected data, which it may display on the TV. Alternatively, the user may not need to be alerted and the data can be sent automatically to the TV, for example by having the user indicate a preference to automatically switch the display from the Watch to the TV whenever the two devices are in close proximity to each other. In another example, the user may be allowed to set the distance at which an automatic handover can occur.

[0031] Data can be exchanged by the watch and TV by concatenating strings into the advertisement packet payload field. To enable real-time health statistics on the TV, the watch can add an identification header that signals the type of data being sent, and the TV should use this identifier to determine the offset between values ​​in the payload field. The range of data can include, but is not limited to, vectors containing one or more of the following data: heart rate, heart rate variability, respiration rate, calories burned, movement data (e.g., steps, distance, altitude, speed). The watch broadcasts advertisements with data at some periodic interval (e.g., every 2 seconds), and a listener such as a TV scans the advertisements, decrypts the data using a decryption key, and displays it in real time.

[0032] In one embodiment, the disclosed technology can be used in conjunction with applications that are whitelisted by a user. For example, a user can select certain applications that are present on a smartphone to be used with the disclosed system and techniques. For example, a user can select a fitness application (e.g., Fitbit application), a content streaming application (e.g., YOUTUBE), or other applications that are whitelisted so that when these applications are active, they can be handed off to different devices associated with the user account.

[0033] The technology can be implemented in communication platforms such as BlueTooth or WiFi and can avoid pairing by using advertising and scanning to share keys in the background over a BlueTooth or WiFi connection, thereby avoiding pairing having to exchange keys between devices. In this regard, pairing typically requires a user to take an action (e.g., enter a code that appears on the device to be paired). In accordance with one or more aspects of the disclosed technology, the user action required to establish a connection can be advantageously avoided.

[0034] The above aspects of the disclosed technology provide as one advantage the avoidance of the need to explicitly pair or connect devices involved in data handoff, as required, for example, in Bluetooth connections. In addition, communication between devices is performed in a secure manner using locally generated keys. Another advantage of the disclosed system and technique is that devices can share data even when a LAN or other network may not be available. Furthermore, the communication link between devices is not available for use by unregistered devices running locally in other networks. In addition, the overall user experience is more seamless since devices do not need to be explicitly paired and connected to each other. In addition, the technology reduces latency because the keys associated with a user account can be stored on each device associated with the user account. Thus, delays associated with obtaining keys as part of a private / public key scheme, or delays associated with pairing, are reduced or avoided.

[0035] Exemplary Systems and / or Apparatus 1 illustrates an exemplary system 100 according to aspects of the disclosed technology. The system can include multiple computing devices capable of communicating through access points with one or more servers. The computing devices can include, for example, a watch 104, a phone 108, a laptop 112, a desktop 114, and a smart display or television 118. In some examples, the computing devices watch 104, phone 108, laptop 112, desktop 114, smart display or television 118, and AP 106 can be considered to form an on-premise or local area network (LAN) in that each of these computing devices can communicate with each other without involving a WAN by using one or more of near-field, Bluetooth, or WiFi technologies.

[0036] The watch 104 may be a smart watch capable of detecting health-related and other parameters associated with the wearer. In this regard, the watch 104 may include one or more sensors configured to detect health-related metrics of the wearer. For example, the watch 104 may utilize sensors and related technology to perform photoplethysmography (PPG). More specifically, the watch 104 may include a light source, such as an LED, and a photodetector, which together may form a sensor or sensing circuitry. The light source and photodetector may be used to perform heart rate calculations based on PPG technology. The watch 104 may also include other technologies, such as GPS, accelerometers, that allow tracking of the distance traveled by the wearer while wearing the watch, changes in altitude, the number of steps taken by the wearer, and measure stress. The watch 104 may also detect and monitor sleep patterns associated with the wearer.

[0037] The watch 104 may also include technology that allows it to communicate with other computing devices. Such technologies may include BlueTooth, WiFi, and cellular communications (e.g., 4G, New Radio ("NR"), or 5G). WiFi communications may occur through an access point (AP) 106. Cellular communications may occur through radio towers, which are not shown to simplify FIG. 1.

[0038] The watch 104 can communicate directly with another computing device, such as the phone 108, via BlueTooth. In some examples, the phone 108 can include a smartphone, which can also communicate via the AP 106 using WiFi technology or via a cellular network. The phone 106 can also include near field communication (NFC) capabilities. The phone 106 can execute applications that allow it to receive and further process data received from the watch 104 or other computing devices. Such data can include health-related metrics, or data or signals from which health-related metrics can be derived. More generally, such data can include any data present on the phone 108 or other computing devices. The phone 108 can also execute various other software and / or applications that access data and other information through or over the WAN 122. The WAN 122 can be considered a network of communication equipment and computing devices that provide services to other computing devices. In some examples, the WAN 122 can be considered the Internet. The WAN 122 may also provide access to computing devices 130, 132, and 134, which may be considered to be server farms, data centers, or private networked computing devices. In this regard, the computing devices 130, 132, and 134 may be considered to be part of the WAN 122 or the Internet, in some examples.

[0039] As another example, the computing device may include a laptop 112 or a desktop 114. The laptop 112 and the desktop 114 may also include computing devices that may access data on the WAN 122 or may include software and / or applications that reside on the computing devices 130, 132, and / or 134. The laptop 112 and the desktop 114 may access such data wirelessly via the AP 106 or via a wired network 140. The wired network 140 may include, for example, Ethernet. The laptop 112 and the desktop 114 may also include BlueTooth and near field communication technologies. Thus, the laptop 108 and the desktop 114 may communicate directly with each other or each may communicate with the phone 108 or the watch 104.

[0040] As another example, the computing device may include a smart display or television 118. The smart display / TV 118 may communicate with the AP 106 to communicate with the WAN 122 or any of the computing devices 130, 132, and 134. To this end, the smart display / TV 118 may utilize WiFi technology. In addition, the smart display / TV 118 may also utilize BlueTooth and near-field communication technologies. The smart display / TV 118 may also connect with the AP 106 via an Ethernet network 140. In some examples, the AP 106 may also include a cable modem through which the smart TV / display 118 may also access data, such as video content, over the WAN 122 or the computing devices 130, 132, and / or 134.

[0041] 2 illustrates an exemplary computing device 200 in accordance with aspects of the disclosed technology. Computing device 200 may include any of the computing devices, i.e., watch 104, phone 108, laptop 112, desktop 114, smart display or television 118, and computing devices 130, 132, and 134. Computing device 200 may include one or more processors 211, memory 212, instructions 213, and data 214. Computing device 200 may also include a display 215, user input 216, and communications 230.

[0042] The one or more processors 211 may include any conventional processor, such as a commercially available CPU or microprocessor. Alternatively, the processor may be a dedicated component, such as an ASIC or other hardware-based processor. Although not required, the computing device 200 may include dedicated hardware components to perform certain computing functions faster or more efficiently.

[0043] 2 functionally depicts the processor, memory, and other elements of computing device 200 as being within the same respective blocks, those skilled in the art will appreciate that a processor or memory may actually include multiple processors or memories that may or may not be stored within the same physical housing. Similarly, a memory may be a hard drive or other storage medium located in a housing different from that of computing device 200. Thus, reference to a processor or computing device will be understood to include reference to a collection of processors or computing devices or memories that may or may not operate in parallel.

[0044] The memory 212 of the computing device 200 can store information accessible by one or more processors 211. The information can include instructions 213 and / or data 214. The instructions 213 and data 214 can be retrieved, manipulated, or stored by the processor 211. The memory 212 can be of any non-transitory type capable of storing information accessible by the processor 211, including non-transitory computer-readable media or other media that store data that can be read with the aid of electronic devices such as hard drives, memory cards, read-only memory ("ROM"), random access memory ("RAM"), optical disks, and other writable and read-only memories.

[0045] The instructions 213 may be any set of instructions that are executed directly, such as machine code, or indirectly, such as a script, by the processor 211. In this regard, the terms "instructions," "application," "steps," and "program" may be used interchangeably herein. The instructions may be stored in object code format for direct processing by the processor, or in any other computing device language, including scripts or collections of separate source code modules that are interpreted on demand or precompiled. The functions, methods, and routines of the instructions are described in more detail below.

[0046] Data 214 may be retrieved, stored, or modified by processor 111 in accordance with instructions 213. For example, although this disclosure is not limited by a particular data structure, data 214 may be stored in a computer register, in a relational database as a table with multiple different fields and records, an XML document, or a flat file. Data 214 may also be formatted into a computer-readable format, such as, but not limited to, binary values, ASCII, or Unicode. Additionally, by way of example only, data 214 may include sufficient information to identify the associated information, such as numbers, descriptive text, proprietary codes, pointers, references to data stored in other memory (including other network locations), or information used by a function to calculate the associated data.

[0047] The display 215 and other displays described herein may be any type of display, such as a monitor with a screen, a touch screen, a projector, or a television. In this regard, in some examples, the display 215 may include an actual display forming part of the device. In other examples, the display 215 may include a display external to the computing device, such that the computing device need only provide a display port (e.g., an HDMI port). The display 215 of one or more computing devices 200 may electronically display information to a user via a graphical user interface ("GUI") or other type of user interface. For example, as discussed below, the display 215 may electronically display a notification indicating that a first computing device associated with a user account is within range of a second computing device and that data or applications residing in or running on the first device may be shared with the second device.

[0048] The user input 216 may be a mouse, keyboard, touch screen, microphone, or any other type of input. The user input 216 may be included as part of the computing device 200 or may be provided separately from the device 200.

[0049] The communications block 230 may include circuitry and associated instructions or methods to enable communication using near field, Bluetooth, WiFi, cellular, Ethernet, or other communications technologies. For example, the communications block 230 may include a wireless interface including circuitry forming a wireless transmitter and receiver and software modules (e.g., instructions residing in memory 212 or residing in a memory in the communications block 230) that transmit and receive data to and from the AP 106. Similarly, the communications block 230 may include components within the computing device 200 that need to communicate using any of the above communications technologies.

[0050] Computing device 200 may be equipped differently in terms of number of processors, number and size of memory, whether it includes a display, and type of user input or communication blocks. For example, if computing device 200 is one of computing devices 130, 132, or 134, it may include a server. In this example, the computing device may have multiple processors, multiple memories, and multiple communication blocks that run independently of each other. In this example, the computing device may only provide ports for connecting a display and a keyboard. In other examples, computing device 200 may be equipped to form a smartphone, a smartwatch, a laptop, or a desktop, as known in the art, as described above.

[0051] FIG. 3 illustrates an exemplary system 300 according to aspects of the disclosed technology. The system 300 includes a smartwatch 310 and a smartphone 330. The smartwatch 310 and the smartphone 330 are associated with or registered to a given user account (e.g., Andrew Pixel Google account), as described in further detail below. In this example, the smartwatch 310 is worn by a user or user account owner while the user participates in a workout, which may include, for example, outdoor and indoor elements. As part of the workout, the user or wearer of the smartwatch 310 may want or need to change from a location to the right of the detection threshold boundary 340 to a location to the left of the boundary 340. The detection threshold boundary 340 illustratively illustrates a distance or within a possible range at which the smartphone 330 or the smartwatch 310 can sense or detect the presence of one another. The detection threshold boundary 340 may include, for example, an exterior wall defining a building, such as a home or a room within a home. The smartwatch 310 senses or detects the presence of the smartphone 330 as it approaches the threshold boundary. Upon detecting the smartphone 330, the smartwatch 310 may display a prompt to the user indicating that the workout may be transferred or handed off to the smartphone 330 (e.g., Andrew Pixel 4A). If the user selects or accepts the handoff of the workout to the smartphone 330, the smartwatch 310 may securely transmit data collected from the user (e.g., health-related metrics) to the smartphone 330 for display or further processing while the user continues the workout. For example, the smartphone 330 may display the heart rate detected by the smartwatch 310. This, in turn, allows the user to more easily view the heart rate or other data collected by the smartwatch.

[0052] In other examples, the selection or approval of a workout handoff from the smartwatch 310 to the smartphone 330 can involve more than a transfer of health data from the smartwatch to the smartphone. For example, if the workout is managed through an app that provides instructions to the user, the handoff action can also involve launching a workout app on the smartphone. In this way, instead of instructions regarding the workout continuing through the smartwatch, such instructions can continue through the smartphone 330 via a workout app launched on the smartphone 330. Thus, while the smartwatch can continue to collect data from the user or wearer during the workout, instructions can be received from the smartphone 330 and data collected can be displayed on the smartphone as the workout continues.

[0053] More generally, one device can be considered a primary device and another device a secondary device. A primary device can be defined as the device on which the user's attention is initially focused, and a secondary device can be defined as the device to which data (e.g., content of active applications and / or instructions related to active applications) is handed off. For example, a primary device (e.g., a smartwatch) can include the user interface (UI) and content of an ongoing activity. The "handoff" is then to the phone, which becomes the primary device displaying the ongoing UI, but the smartwatch can still participate in the session in a lighter way. The smartwatch can continue to collect user information and have status indicators and a method for re-enabling the smartwatch as the primary device (and returning the session UI to the smartwatch if desired). For example, the smartwatch has an area on the display to select to switch sessions and return to the UI.

[0054] The system 300 includes two devices, a smartwatch 310 and a smartphone 330. According to an aspect of the technology, the devices communicate securely with each other without requiring pairing of the two devices. The secure communication is enabled by having the devices share a key or other security code, for example, through a common account. For example, each device can be registered to an online account. Each device can then generate a unique key or code that can be used to encrypt data that is to be communicated to another device. The server or other computer on which the common account resides can then share the key with the other devices registered to the account. Thus, when a first device receives encrypted information from a second device, the first device can decrypt the information received from the second device because it has received (or been provided with) from the server the key used by the second device to encrypt transmitted data or, more generally, communications from the second device.

[0055] In the system 300, a smartwatch 310 and a smartphone 330 are used as exemplary computing devices. In other examples, the computing devices of the system can include any of the computing devices discussed above in connection with FIG. 1. For example, the handoff can be between a smartphone and a smart display / TV. The handoff can also include a handoff from a smart display / TV to a smartphone or a smartwatch. Similarly, the handoff can be from a smartphone to a smartwatch. The devices involved in the handoff are determined based on the device the user uses initially and other nearby devices that the user may encounter when changing locations. For example, a user may be in the process of using a banking application on a smartphone and enter an area where his / her desktop computer is located, and as long as the devices detect or sense each other and the desktop computer has a key or code that the smartphone will use to transmit the data, the handoff of data and / or applications associated with execution on the smartphone can be initiated to the desktop computer. Thus, the disclosed technique can be performed between any two devices. In addition, the technique can be configured to allow handoff of the same data or content from one device to multiple other devices.

[0056] Exemplary Processes and / or Methods In this regard, FIG. 4A illustrates an example of a process 400 according to the disclosed technology in the form of a swim lane diagram. The process 400 illustrates a data handoff between a first device 410 and a second device 420 according to one or more aspects of the disclosed technology. As shown, the first device 410 transmits a unique key 414 to a server 430 via block 424. Block 424 may include an Ethernet system including AP 106, cellular towers that are part of a cellular system, switches, routers, etc., or any other system that allows the first device 410 and / or the second device 420 to communicate with the server 430. The server 430 may include any one or more of the computing devices 130, 132, 134. In addition, the functionality provided by the server 430 may also be provided by a user device, such as, for example, a laptop 112, a desktop 114, or a phone 108. In this regard, the other devices may also include home speakers. In these latter examples, a local device, either on-premise or part of the LAN in FIG. 1, can provide the key registration and sharing functionality described with respect to server 430.

[0057] The unique key is generated locally on or by the first device 410. The unique key may include a randomly generated string or a string generated by a hash function. Once the key is generated, it is sent to the server 430 as shown by line 414. The server 430 may store the key in a tuple such that the key is linked to a user account associated with the first device 410. The tuple may take the form of, for example: (User_acct., device ID, new_encryption_key, old_encryption_key, new_TTL (time to live), old_TTL). "old_TTL" refers to the expiration date of the old key, at which point the key becomes invalid and its associated field in the tuple is filled or set to zero. The new_encryption_key and old_encryption_key may be stored, for example, if a WiFi or network connection fails and the key is not updated locally on other nearby devices. The server 430 may include a server that manages user accounts, such as a Google account or any other account used for authentication that supports server-side key storage and maintenance. Devices used by the user may be registered with the account. In some cases, in addition to being registered, the device may be required to sign in to receive unique keys generated by other devices associated with the account.

[0058] As shown in loop 436, the server 430 stores the keys it receives for each registered device and processes the received key information (e.g., manipulates it for storage and / or transmission). The server 430 also shares the keys of each device with other devices associated with the user account. As shown in FIG. 4A, the server 430 can share, for example, the unique key received from the first device 410 with the second device 420, as shown in 440. To the extent there are other devices registered and / or signed in to the user account, the server 430 can also share the unique keys with these devices and share keys generated by these devices among other registered devices. Proximate or candidate devices can then use the old or new key in an attempt to decrypt the received content or data. Once a new key or hash is created, all devices associated with the account can update their local storage with the new key or hash information.

[0059] According to aspects of the disclosed technology, the first device 410 and the second device 420 perform proximity detection to detect nearby devices. Proximity detection is illustrated, for example, by loops 444 and 448 in FIG. 4A. Proximity detection can be performed in multiple ways depending on the wireless technology deployed. Techniques that can be used include measuring round trips based on transmitted or reflected signals. Ultra-wideband (UWB) can also be used when two nearby devices utilize UWB. Furthermore, Bluetooth low energy (BLE) can also be used to estimate the distance between nearby devices. In addition, Bluetooth received signal strength indication (RSSI) can also be used. RSSI provides an indication of the power level received by the antenna and can be used to sense or detect nearby devices with the Bluetooth radio on. Since the received signal strength varies based on the antenna design, instead of using the absolute value of RSSI, the RSSI trend can be used to determine the change in the distance between the devices. If there are three or more devices in the vicinity of a given device, trilateration can be used to estimate the distance between the devices.

[0060] When the first device 410 detects that the second device 420 is within a predetermined distance, for example based on an RSSI value, it can initiate a handoff offer of data or content to the user via the second device 420, as shown in loop 450. If the user selects the offer such that the handoff can be made, the data or content can be transmitted by the first device 410 to the second device 420 using a scanning and advertisement scheme similar to that used in BLE. In some examples, the user may be required to accept the handoff offer at both the first and second devices 410, 420. In other examples, the system may be implemented such that the user is required to accept the offer only at the first device 410. In this latter example, the first device 410 can then broadcast a message that, when received at the second device 420, informs the second device 420 that the second device 420 will be the recipient of data from the first device. This can be implemented, for example, by including a device identifier of the second device in the broadcasted message. This aspect of the technology can be implemented using BLE scanning and advertisements between multiple devices. Thus, the technology utilizes a connectionless method. The advertisements are in the form of "broadcasts" so that all nearby devices can listen. In general, devices communicate with each other as a result of advertisements and scans without needing to connect. Thus, in an example, devices can periodically scan for BLE packets.

[0061] In some examples, the second device involved in the handoff is revealed given the proximity to the device. For example, the closest device can be given the highest ranking and automatically selected as the second device. More specifically, when the first device is advertising data for initiating the handoff, the handoff candidates (recipient or second device) can also advertise with their device IDs. These IDs can then be used by the first device (e.g., watch) along with a proximity metric to sort a list of devices that the user can select on the first device or watch with which to "initiate" the handoff. If disambiguation may be required, the devices can be ranked as handoff candidates based on proximity. In addition, the user can be prompted to provide user input to select which device (i.e., second device) the data or content should be handed off to. In some examples, the user selection can be ranked based on proximity. In other cases, the user input can allow the user to select a different handoff candidate if desired.

[0062] In particular, when the first device 410 decides to initiate a handoff, it periodically advertises data (e.g., distance, app information, content) using BLE packets, as shown in loop 454 and transmission line 456. The advertisement involves packaging the data into a payload field after encryption (loop 454) and then transmitting one or more packets into the local environment (456). The advertisement payload can vary from 6 bytes to 37 bytes, which can provide enough space to communicate encrypted information between devices. In some examples, more bytes may be used, for example up to 255 bytes. The payload of the advertisement packet is not encrypted and can include a custom preamble (in the data portion of the payload of the PDU) that corresponds to a unique ID of the transmitting device. This ID will be the same as in the tuple discussed above. The second device 420, acting as a listener, periodically scans for the broadcasted packets, as shown in loop 458. When the second device 420 receives the transmission 456, it unpacks the payload, reads the device ID, and uses the device payload as a hash to do a hash lookup table lookup to obtain the tuple corresponding to the device. The tuple is stored locally on the user device linked to the user account, but the second device 420 may need some manner of transitioning from "hey, I just got a device ID" to "here's what the data is." The period between transitions may require looking up the tuple (locally) with the device ID and then obtaining a key to decrypt other or remaining data. These steps are shown in loop 458. Once the tuple is obtained, it can be used to decrypt the remainder of the payload. Once the payload is decrypted, the underlying data (e.g., heart rate information) can be processed for presentation to the user. These steps are shown by loop 462.

[0063] As described in the above examples, the technology is connectionless and does not establish a point-to-point connection. Therefore, advertisement and scanning can be considered unidirectional in nature. In some examples, it may be possible to modify the technology to be more bidirectional by emulating the characteristics of a point-to-point connection by using a sequence number in the payload of the advertisement field. As indicated above, advertisement packets can be sent or broadcast periodically, e.g., retransmitted a certain number of times. This mitigates from advertising to listeners that have not picked up the packet. If the data being transported is time-related (e.g., real-time heartbeat), a sequence number or identifier can be included or attached to the advertisement packet.

[0064] FIG. 4B illustrates an exemplary system 480 according to an aspect of the disclosed technology. FIG. 4B illustrates an exemplary broadcaster 484 and a listener or observer 486 that use advertisements and scans to enable handoff of data from the broadcaster to the listener. The broadcaster 486 periodically transmits advertisements 490 to its surroundings. The periodicity of the transmission (e.g., every 2 seconds) may depend, for example, on the type of data being collected by the broadcaster 486, which in this example may be a smartwatch as discussed above. If the data is, for example, heart rate data, the data may need to be transmitted frequently enough so that the observer can display the data in a timely manner so that the user receives timely updates. Data is exchanged and transmitted by concatenating a string into the advertisement packet payload field. The observer 486 periodically scans for advertisements (492) and, upon detecting an advertisement targeted to the observer 486, processes the advertisement further as described above.

[0065] The broadcaster 484 can add an identifier to the header indicating the type of data being sent to enable having real-time health statistics at the observer 486. The observer 486 can then use the identifier to determine, for example, offsets between values ​​in the payload field. The type of data can include, for example, for a workout application, heart rate, calories, steps, movement data, etc.

[0066] 5 illustrates an example of a process or method 500 according to aspects of the disclosed technology. The method includes a computing device generating a unique local key and sharing the local key with an account manager server (block 504). Although the generating and sharing steps are illustrated in block 504, they may be performed as separate steps within the computing device. The account manager server associates the keys received from the different devices with a user account. The user account may include a Google account or other types of accounts.

[0067] At block 508, the account manager server shares the received keys among the computing devices associated with the user account. In order for a device to be authenticated to receive keys for other devices associated with the account, the device should be registered and / or signed into the account. When the device detects a nearby device, processing proceeds to block 516, where the device offers the user to initiate a handoff of data or applications to another detected nearby device. The user can reject the handoff proposal, for example, by selecting an option to reject or if the user does not affirmatively select handoff within a given time window.

[0068] In block 512, the device detects nearby devices, for example by performing proximity detection. If no nearby devices are detected, the device continues by periodically performing proximity detection in block 512. When one or more nearby devices are detected, processing proceeds to block 516. In block 516, the device detecting the nearby devices provides the user with an option to have an application running on the device or data on the device handed off to one of the nearby devices. If the user chooses to have the handoff performed, in block 520, the device that detected the nearby devices advertises the data to be handed off to the nearby devices. In block 526, the nearby devices that are the subject of the advertisement detect the advertisement as part of the scan. In block 536, upon receiving the advertisement, the scanning device decodes and utilizes the data.

[0069] As discussed above, the technology can be used with applications such as workout applications or banking applications. The technology can also be used in other applications. For example, the application can be used where content is streamed to a smartphone by YOUTUBE or a content application over the Internet. For example, a user may start watching content streaming by YOUTUBE on a smartphone while on the bus on the way home. When the user enters his / her home, he / she may turn on a smart display / TV. When the smartphone detects that the smart display / TV is in the vicinity, it can prompt the user to initiate a handoff of the content streaming on the phone to the smart display / TV. If the user chooses to initiate the handoff, the content can be switched without any further intervention from the user as required for establishing a connection between the smart display / TV and the smartphone, such as entering a code required for pairing.

[0070] In some examples, the technology can be implemented such that a user has control over which applications can utilize the handoff technology. This can be implemented by providing a user with an option to whitelist certain applications running on the user device. For example, a user may whitelist an exercise application but not a banking application. For applications where handoff between devices is not authorized, the technology can be implemented to not provide a suggestion to initiate handoff even when a nearby device is detected. Additionally, in some examples, handoff may occur without providing the user with a suggestion to initiate handoff. For example, as part of application whitelisting, a feature may be provided that allows a user to select automatic handoff between specified devices. For example, for a workout application, the technology can be implemented such that handoff occurs automatically from a smartwatch or smartphone to a smart display / TV.

[0071] Aspects of the disclosed technology can include any combination of the following features and sub-features.

[0072] F1. A method for connectionless data handoff, comprising: transmitting, by the first device, a first key generated locally to the computing device; receiving, by the first device, from the computing device, a second key generated locally for the second device; scanning, by the first device, encrypted data transmitted by the second device; decrypting, by the first device, the encrypted data sent by the second device using a second key to generate decrypted data; processing, by the first device, the decrypted data for display on the first device; A method comprising:

[0073] F2. The method of F1, wherein the first device includes a device having a larger screen than the second device.

[0074] F3. The method of F1 or F2, wherein the first device stores the second key as part of a tuple that further includes user account information, a device ID associated with the second device, an old encryption key associated with the second device, and a TTL (time to live) of the old encryption key.

[0075] F4. The method of any one of F1 to F3, comprising associating, by the computing device, the first key and the second key with a user account.

[0076] F5. The method of any one of F1 to F4, comprising generating, by the first device, the first key using a hash function or a randomly generated string generated by the first device.

[0077] F6. The method of any one of F1 to F5, comprising detecting, by the first device, the presence of the second device.

[0078] F7. The method of any one of F1 to F6, wherein the sensing includes determining a distance between the first device and the second device using a round trip delay.

[0079] F8. The method of any one of F1 to F7, wherein determining the distance includes detecting the distance using wireless technology.

[0080] F9. The method of any one of F6 to F8, wherein the scanning is performed by the first device in response to detecting the presence of the second device by the first device.

[0081] F10. Any one of the methods F1 to F9, wherein the decryption data includes one or more of video content or health statistics.

[0082] F11. The method of any one of F1 to F10, wherein the computing device includes a server coupled to the first device and the second device via a first network.

[0083] F12. Any one of the methods F1 to F11, wherein the scanning is performed by the first device via a second network different from the first network.

[0084] F13. Any one of methods F1 to F12, wherein the first device and the second device are associated with the same user account.

[0085] F14. The method of any one of F1 to F13, wherein processing, by the first device, the decrypted data for display on the first device involves launching an application on the first device for processing the decrypted data.

[0086] F15. A method for connectionless handoff of data, comprising: transmitting, by the first device, a first key generated locally to the computing device; receiving, by the first device, a second key generated by the second device; Detecting, by a first device, a location of a second device within a predetermined distance of the first device; periodically broadcasting, by the first device, data encrypted with a first key, which data is to be handed off to the second device; A method comprising:

[0087] F16. The method of F15, wherein the first device includes a device having a smaller screen than the second device.

[0088] F17. The method of F15 or F16, wherein the first device stores the second key as part of a tuple further including user account information, a device ID associated with the second device, an old encryption key associated with the second device, and a TTL (time to live) of the old encryption key.

[0089] F18. The method of any one of F15 to F17, comprising associating, by the computing device, the first key and the second key with a user account.

[0090] F19. The method of any one of F15 to F18, comprising generating, by the first device, the first key using a hash function or a randomly generated string generated by the first device.

[0091] F20. The method of any one of F15 to F19, wherein detecting the location includes determining a distance between the first device and the second device using a round trip delay.

[0092] F21. The method of F20, wherein determining the distance includes detecting the distance using one of an ultra-wideband signal, a Bluetooth low energy signal, or a Bluetooth RSSI signal.

[0093] F22. Any one of the methods of F15 to F21, wherein the encrypted data includes one or more of video content or health statistics.

[0094] F23. The method of any one of F15 to F22, wherein the computing device includes a server coupled to the first device and the second device via the first network.

[0095] F24. The method of F23, wherein the scanning is performed by the first device over a second network different from the first network.

[0096] F25. The method of F24, including periodically broadcasting data encrypted with the first key over a second network.

[0097] Although various aspects of the invention have been described herein with reference to particular embodiments, it should be understood that these embodiments are merely illustrative of the aspects, principles, and applications of the present invention. It should thus be understood that numerous modifications can be made to the illustrative embodiments and other configurations can be devised without departing from the spirit and scope of the invention as defined by the appended claims.

Claims

1. 1. A method for secure connectionless data communication, comprising: receiving, by the first device from a computing device, a locally generated second key for the second device, the second key being associated with a user account to which the first device and the second device are registered, the method further comprising: scanning, by the first device, for encrypted data broadcast by the second device; decrypting, by the first device, the encrypted data broadcast by the second device using the second key to generate decrypted data; processing, by the first device, the decrypted data for display on the first device; A method comprising:

2. The method of claim 1 , wherein the first device comprises a device having a larger screen than the second device.

3. 2. The method of claim 1, wherein the first device stores the second key as part of a tuple that further includes user account information, a device ID associated with the second device, an old encryption key associated with the second device, and a TTL (time to live) of the old encryption key.

4. The method of claim 1 , further comprising registering, by the computing device, the first device and the second device into the user account.

5. The method of claim 1 , comprising generating, by the second device, the second key using a hash function or a randomly generated string generated by the second device.

6. The method of claim 1 , comprising detecting, by the first device, the presence of the second device.

7. The method of claim 6 , wherein detecting includes determining a distance between the first device and the second device using a round trip delay.

8. The method of claim 7 , wherein determining the distance includes detecting the distance using wireless technology.

9. The method of claim 1 , wherein the decrypted data includes one or more of video content or health statistics.

10. The method of claim 1 , wherein the computing device comprises a server coupled to the first device and the second device via a first network.

11. The method of claim 10 , wherein scanning is performed by the first device over a second network that is different from the first network.

12. 1. A method for secure connectionless data communication, comprising: transmitting a first key generated locally by a first device registered to a user account to a computing device; sharing, by the computing device, the first key with a second device registered to the user account; detecting, by the first device, a location of the second device within a predetermined distance of the first device; periodically broadcasting, by the first device, content encrypted with the first key; scanning, by the second device, for the content broadcast by the first device and decrypting the content using the first key.

13. The method of claim 12 , wherein the first device comprises a device having a smaller screen than the second device.

14. 13. The method of claim 12, wherein the second device stores the first key as part of a tuple that further includes user account information, a device ID associated with the first device, an old encryption key associated with the first device, and a TTL (time to live) of the old encryption key.

15. The method of claim 12 , comprising associating, by the computing device, the first key and the second key with the user account.

16. 13. The method of claim 12, comprising generating, by the first device, the first key using a hash function or a randomly generated string generated by the first device.

17. The method of claim 12 , wherein detecting the location includes determining a distance between the first device and the second device using a round trip delay.

18. The method of claim 17 , wherein determining the distance includes detecting the distance using one or more radio signals.

19. The method of claim 12 , wherein the encrypted content includes one or more of video content or health statistics.

20. The method of claim 12 , wherein the computing device comprises a server coupled to the first device and the second device via a first network.

21. 21. The method of claim 20, wherein scanning is performed by the first device over a second network that is different from the first network.

22. 22. The method of claim 21, comprising periodically broadcasting the content encrypted with the first key over the second network.

Citation Information

Patent Citations

  • Media intercom over a secure device to device communication channel

    US20200127988A1

  • Device pairing

    US20200288303A1