Patent Description:
The utilization of presence information has become increasingly important in commerce. Specifically, there are many technologies that attempt to utilize information about a person's presence or a thing's presence to provide or improve a service in connection therewith. As some examples, presence-based advertising, presence-based authentication, presence-based customer service, and the like are becoming commonly-used.

Current methods of interacting with tags (e.g., Near Field Communications (NFC) tags, Bluetooth tags, RFID tags, etc.) have a limitation where the interaction, typically reading a Universal Resource Locator (URL) from the tag, does not prove that there was a unique interaction with the tag. Whether the data on the tag is copied to another tag, or replayed, the data cannot be distinguished from an actual subsequent read (second tap) of the tag. Accordingly, any technology that attempts to use a person's presence or a thing's presence via their interaction with a tag cannot be trusted since the tag data may be received as a copy or replay of an original interaction with a tag. The patent publications <CIT> and <CIT> represent relevant prior art.

It is, therefore, one aspect of the present disclosure to provide the ability to validate that a tag has, in fact, been uniquely read (e.g., tapped), which proves the user is in the presence of the tag. According to embodiments of the present disclosure, it should be possible in some cases to validate locally (e.g., at the point of tap) that the tap is unique. In other cases, a remote authentication service can be used to validate that the tap is unique. Thus, proof of presence can be determined either locally at the point of tag interaction or remotely with a remote authentication service. The invention is defined by the independent claims <NUM> and <NUM>.

In one embodiment, a tag is provided with the ability to generate a pseudo-random sequence of numbers that can be appended to the tag's response, such as a URL, email address, phone number, etc. The validation of this pseudo-random sequence of numbers can be done by a validation engine which tracks the sequence for each tag and indicates if the tag has generated the next number in the sequence indicating the user has, in fact, interacted with the tag and is, therefore, currently in the presence of the tag. This information can be used to correlate the user's location to a known location of the tag.

In another embodiment, a mobile device, such as a smartphone, is provided with an application that maintains a local database of the tag interactions that have occurred at the mobile device. Each time a Tag Unique Identifier (TAGID) is read from a tag, a counter is also read from the tag. Based on the information contained in a tag response (e.g., a TAGID and counter value), the local application can determine whether the tag response was a unique response or a replay. In particular, the local application can compare the TAGID and counter value against TAGID/counter value combinations contained in its local database of tag interactions to determine whether the TAGID/counter value combination currently received from the tag is contained in the local database. If the TAGID/counter value combination is not in the local database, then the application can determine that the tag response is a unique response and the location of the mobile device can be correlated to the known location of the tag. In a variation of this implementation, the database of tag interactions could be maintained at a remote authentication service. In this variation, the mobile device may send the entire tag response (e.g., the response including the TAGID and counter value) to the authentication service for analysis.

In another embodiment, a mobile device may be required to verify that it is interacting with a previously determined (and authorized tag) at a known location. In this embodiment, the location of the tag could be known and fixed and the mobile device may also provide its location information (e.g., GPS location information, WiFi-based location information, cellular triangulation location information, etc.) to an authentication service. Before the mobile device begins interacting with a tag, the mobile device may be provided with a challenge/response pair issued by an authentication service. This challenge/response pair may be formatted specifically based on the location information provided by the mobile device. Specifically, the authentication service may attempt to identify a tag that has a location closer to the mobile device location than any other deployed tag. The mobile device may then issue a challenge to the tag (e.g., based on information contained in the challenge/response pair received from the authentication service). The tag may respond to the challenge with a response. If the response received from the tag matches the expected response contained in the challenge/response pair, then the mobile device can confirm that it is interacting with an approved tag based on its location and further interactions with the tag will be allowed.

In some embodiments, a method is provided that generally comprises:.

The TAC received from the tag may include a pseudo-randomly generated number, a counter value that increments after every interaction with the tag, a One-Time-Password (OTP), or combinations thereof.

In some embodiments, the data object is received in one or more NFC Data Exchange Format (NDEF) messages.

In some embodiments, the data object is received via a Bluetooth protocol.

In some embodiments, the location of the smart tag corresponds to a geographical location and may be approximated based on an association with another object.

In some embodiments, the determining the location of the smart tag may include: comparing the identifier of the smart tag with a plurality of identifiers stored in an identifier database; matching the identifier of the smart tag with a first identifier from the plurality of identifiers; and determining that the location of the smart tag corresponds to a location associated the first identifier in the identifier database.

The method may also include: storing, in a data structure, the location of the mobile device along with the correlated location of the smart tag; and storing, in the data structure and in association with the stored location of the mobile device, a time at which the data object was at least one of transmitted by the smart tag and received by the mobile device.

It is still another aspect of the present disclosure to provide a system for confirming presence information for mobile device, where the system includes:.

As used herein, the term "correlating" or "correlate" can be understood to include any act of associating or binding (e.g., logically) one object's location with another object's location within a computational system. For instance, a location of a mobile device may be "correlated" with a location of a smart tag within a data structure stored in a database, for example, by entering a location of the mobile device with the same location as that of a smart tag. As another example, location information for a smart tag within a data structure or data cell may be copied and then pasted into location information for a mobile device, thereby "correlating" the location of the mobile device with the location of the smart tag. As still another example, location information for a mobile device within a data structure can be linked or pointed to location information for a smart tag (e.g., via a URL, hyperlink, data pointer, etc.), thereby "correlating" the location of the mobile device with the location of the smart tag. It should be appreciated that any other mechanism of associating one object's location with another object's location within a computational system can also be used to "correlate" the locations of the two objects. It should also be appreciated that one object can have it's location information "correlated" with location information for many other objects at substantially the same time.

The present disclosure will be further understood from the drawings and the following detailed description. Although this description sets forth specific details, it is understood that certain embodiments of the invention may be practiced without these specific details.

Embodiments of the present disclosure will be described in connection with interactions between a smart tag and a mobile device. While most of the mobile device, it should be appreciated that embodiments of the present disclosure are not so limited. Indeed, any type of device having a processor and memory capable of performing the functions of the smart tag discussed herein can be utilized without departing from the scope of the present disclosure. For instance, any tag form factor may be used. Examples of such form factors include card-type tags, key fobs, wristbands, smart tags embedded in clothing or other objects, smart watches, stickers, smart phones, laptops, tablets, etc. Furthermore, the mobile device may correspond to a mobile device carried by a user (e.g., to determine a presence or location of a user) or it may be associated with an inanimate object or thing (e.g., to determine a presence or location of a thing). Thus, while embodiments of the present disclosure are described in connection with determining presence information for a user or person, it should be appreciated that embodiments of the present disclosure are not so limited.

With reference initially to <FIG>, a communication system <NUM> will be described in accordance with at least some embodiments of the present disclosure. The communication system <NUM> is shown to include a mobile device <NUM>, a smart tag <NUM>, a tag platform <NUM>, and an authentication service <NUM>, each of which are interconnected or in communication with one another via one or more communication networks <NUM>.

In some embodiments, the mobile device <NUM> corresponds to a mobile communications device, such as a smartphone or the like. In more specific embodiments, the mobile device <NUM> may correspond to an NFC-enabled communications device in that the mobile device <NUM> may be configured to exchange communications with the smart tag <NUM> via NFC. As shown in <FIG>, a communications channel <NUM> may be established directly between the mobile device <NUM> and the smart tag <NUM> to enable communications therebetween. In some embodiments, this communications channel <NUM> corresponds to an NFC or non-galvanic mutual coupling between the mobile device <NUM> and smart tag <NUM>. In other embodiments, the communications channel <NUM> corresponds to a direct or indirect wireless communications channel, examples of which may include a Bluetooth channel (e.g., a direct wireless channel), a WiFi/IEEE <NUM>. 11N channel (e.g., an indirect channel through a wireless router), etc. In some embodiments, the type of channel <NUM> used to communicate between the mobile device <NUM> and smart tag <NUM> may depend upon the capabilities of the devices; thus, although embodiments of the present disclosure will be described in connection with NFC readers and applets, it should be appreciated that embodiments of the present disclosure are not so limited. Instead, embodiments of the present disclosure contemplate the utilization of a Bluetooth, WiFi, optical, any other type of RF protocols such as ZigBee, Zwave, etc., and/or sound based communication channel <NUM> between the mobile device <NUM> and smart tag <NUM>.

As depicted in <FIG>, the mobile device <NUM> may comprise an NFC reader <NUM>, a communication application <NUM>, and a network interface <NUM>, among other things. Examples of a mobile device <NUM> include, without limitation, a smartphone, a tablet, a laptop, a Personal Digital Assistant (PDA), a smart watch, a remote control, a smart vehicle or car, or the like. Although not depicted, the mobile device <NUM> may also comprise one or more processors (e.g., microprocessors, CPUs, etc.) that are configured to perform certain operations for the mobile device <NUM> and memory for storing the instructions that are executable by the one or more processors. As an example, the mobile device <NUM> may have dedicated processors for its NFC functions, communication functions, and other functions (e.g., image-capture functions, GPS functions, etc.). In some embodiments, the components of the mobile device <NUM> may be connected together via a data bus or similar architecture. The memory of the mobile device <NUM> may be volatile and/or non-volatile.

The NFC reader <NUM> may correspond to a collection of components that enable the mobile device <NUM> to communicate via the communications channel <NUM> with the smart tag <NUM>. Types of components that may be provided as part of the NFC reader <NUM> may be executed by a processor of the mobile device <NUM> to enable the mobile device <NUM> to operate in one or more of a card emulation mode, a read/write mode, and/or a peer-to-peer mode of operation. In some embodiments, the NFC reader <NUM> may also comprise a secure element such as a SIM card or an embedded secure element, where NFC data is stored and/or processed in an encrypted or secure fashion.

As noted above, the mobile device <NUM> may establish the communications channel <NUM> via non-NFC methods. Thus, mobile device <NUM> may also include non-NFC communication components (e.g., Bluetooth antennas, Bluetooth drivers, WiFi antennas, Ultra-High Frequency (UHF) communication components, High Frequency (HF) communication components, any variation of Bluetooth components (e.g., drivers or antennas that support Bluetooth, Bluetooth <NUM>, Bluetooth Low Energy (BLE)), ZigBee components, etc.). Furthermore, the non-NFC communications with the smart tag <NUM> may occur via the network interface <NUM> and/or the antenna of the NFC reader <NUM>.

The communication application <NUM> may correspond to one or more of a phone module, email module, Internet browser, messaging module (e.g., SMS, MMS, etc.), or the like that enable the mobile device <NUM> to communicate with other communication devices via the communication network <NUM>. Another type of communication that may be facilitated by the communication application <NUM> includes social networking communications.

The network interface <NUM> may comprise one or more different networks or network types. For instance, the network interface <NUM> may comprise a cellular network interface that enables the mobile device <NUM> to interact with a cellular network, which is usually provided by a Mobile Network Operator (MNO). Alternatively or additionally, the network interface <NUM> may comprise a Bluetooth interface, Infrared interface, etc. The network interface <NUM> may alternatively or additionally include an <NUM>. 11N interface (e.g., Wi-Fi interface), a Universal Serial Bus (USB) port, or any other wired or wireless interface to the communication bus of the mobile device <NUM>.

The smart tag <NUM> may correspond to any type of device with memory, a processor, and one or more antennas to communicate via the communications channel <NUM>. Non-limiting examples of form factors for the smart tag <NUM> may include card-type tags, key fobs, wristbands, smart tags embedded in clothing or other objects, smart watches, stickers, smart phones, laptops, tablets, etc. In some embodiments, the smart tag <NUM> may comprise data storage in the form of a volatile or non-volatile memory as well as a microprocessor or Integrated Circuit (IC). In some embodiments, the smart tag <NUM> may comprise an Integrated Circuit Card (ICC).

Components of the smart tag <NUM> are depicted as including a TAGID <NUM>, an NFC applet <NUM>, a Tag Authentication Cryptogram (TAC) module <NUM>, and a cryptographic engine <NUM>, some or all of which may be stored in a secure area of the smart tag's <NUM> memory. The TAGID <NUM> of the smart tag <NUM> may correspond to a static or dynamically-changing string (e.g., alphanumeric string, series of bits, etc.) that identifies the smart tag <NUM> in a globally unique fashion. As a more specific example, the TAGID <NUM> may correspond to an identification number assigned to and stored by the smart tag <NUM> that is uniquely assigned to the smart tag <NUM> (e.g., to the exclusion of being assigned to any other similar type of smart tag <NUM>).

The NFC applet <NUM> may correspond to a set of instructions stored on the smart tag <NUM> that enable the smart tag <NUM> to generate and share tag data <NUM> with a mobile device <NUM> via the communications channel <NUM>. More specifically, the NFC applet <NUM> may enable the smart tag <NUM> to receive and understand read requests issued by the mobile device <NUM> and then respond to the read request in a substantially unique way. In some embodiments, when the smart tag <NUM> receives a read request from a mobile device <NUM>, the smart tag <NUM> may invoke its NFC applet <NUM>, which subsequently invokes the TAC module <NUM>. The NFC applet <NUM> may correspond to an application or portion of executable code that enables the smart tag <NUM> to emulate functionality of an NFC tag, perhaps in accordance with ISO <NUM>. The TAC module <NUM> may correspond to code contained within the smart tag <NUM> (and possibly written thereto during provisioning) that is capable of generating unique responses to read requests on behalf of the smart tag <NUM>. In some embodiments, the TAC module <NUM> may comprise a unique cryptographic key K and a counter value C and the TAC module <NUM> may utilize the cryptographic key K and counter value C along with the assistance of a cryptographic engine <NUM> to create a data object that can be provided back to the mobile device <NUM> in response to a read request. Examples of TACs that may be generated by the TAC module <NUM> include, without limitation, a One-Time-Password (OTP), a pseudo-random number, a counter value, or combinations thereof.

In some embodiments, the cryptographic key K may correspond to a symmetric encryption key of length N bytes that is substantially unique to the smart tag <NUM> on which it is written. In some embodiments, the cryptographic key K may correspond to at least some of the unique seed value written to the smart tag <NUM> during provisioning. Likewise, the counter value C may also correspond to a random initial value assigned to the smart tag <NUM> during provisioning or any incremented value obtained as the smart tag <NUM> generates responses to devices. In other words, the counter value C may change according to use of the smart tag <NUM> such that the counter value C is never the same value twice during the life of the smart tag <NUM>; thereby ensuring that the smart tag <NUM> continues to generate substantially unique responses to each read request. Thus, the unique seed value may correspond to the combination of the cryptographic key K and the counter value C initially written to the smart tag <NUM> during provisioning.

In other embodiments, the counter value C may correspond to a changeable data part that is not necessarily incremented after each use by the smart tag <NUM>. Instead, the counter value C may correspond to a pseudo-randomly generated value that is computed each time the smart tag <NUM> is preparing a response. Thus, the counter value C may actually correspond to the output of a pseudo-random number generator as opposed to a value that increments by a predetermined amount (e.g., one, two, three,. , ten, etc.) after each use. In either event, the counter value C is intended to change and be substantially unique on a per-transaction basis.

The cryptographic engine <NUM> is designed to compute a TAC, once invoked by the TAC module <NUM>, based on inputs K and C provided by the TAC module <NUM>. Even more specifically, when the TAC module <NUM> is invoked by the NFC applet <NUM>, the TAC module <NUM> may provide the cryptographic key K and the current counter value C (or pseudo-randomly-generated number) to the cryptographic engine <NUM> which utilizes a cryptographic mechanism that is a hash function that takes an arbitrary block of data (e.g., K and C) and returns a fixed-size bit string, the cryptographic hash value, such that any (accidental or intentional) change to the data will (with very high probability) change the output hash value. Non-limiting examples of cryptographic mechanisms that may be used as the cryptographic engine <NUM> include MD5, SHA-<NUM>, SHA-<NUM>, SHA-<NUM>, SHA-<NUM>, keyed-hash message authentication codes (HMACs), or any other <NUM>, <NUM>, or <NUM>-bit encryption algorithm. The cryptographic engine <NUM> returns a value based on the inputs K and C that is provided to the NFC applet <NUM>.

In some embodiments, a smart tag <NUM> may be configured to generate a TAC in response to any number of conditions or triggers. As one example, the smart tag <NUM> may generate a TAC in response to a mobile device <NUM> coming into a predetermined proximity (e.g., a read range) of the smart tag <NUM>. In this particular configuration, the smart tag <NUM> may automatically generate a TAC every time that a mobile device <NUM> comes within a distance suitable to establish a bidirectional communication link with the smart tag <NUM>. Thus, a new TAC may be automatically generated by the smart tag <NUM> in response to detecting a mobile device <NUM> within its communication range, regardless of whether or not the mobile device <NUM> requests information from the smart tag <NUM>. This means that a certain number of TACs generated by the smart tag <NUM> may never be transmitted to a mobile device <NUM>; instead, the smart tag <NUM> will increment or move on to the next TAC when another (or the same mobile device <NUM>) mobile device <NUM> comes into read range of the smart tag <NUM> (or the same mobile device <NUM> exits and re-enters the read range). As another example, the smart tag <NUM> may be triggered to generate a TAC only in response to receiving a request for authentication from the mobile device <NUM>. In this configuration, the smart tag <NUM> may wait to generate a TAC unless and until a mobile device <NUM> is within a read range of the smart tag <NUM> and the mobile device <NUM> requests that the smart tag <NUM> authenticate itself to the mobile device <NUM>. After the request for authentication is received from the mobile device <NUM>, the smart tag <NUM> may generate and transmit a TAC to the mobile device <NUM>. This particular configuration does not result in the superfluous generation of TACs as compared to the first example described above.

Upon receiving the results from the cryptographic engine <NUM>, the NFC applet <NUM> formats a response for the mobile device <NUM> that includes the tag data <NUM> as well as the results received from the cryptographic engine <NUM> (e.g., the TAC). The NFC applet <NUM> then prepares the data object to be provided to the mobile device <NUM>. More particularly, the TAC may correspond to the response-specific data in the data object whereas the tag data <NUM> and TAGID <NUM> may correspond to the non-response-specific data. As a non-limiting example, the message transmitted back to the mobile device <NUM> may be formatted for transmission via NFC, Bluetooth, or some other proximity-based RF communication protocol. Even more specifically, the message transmitted back to the mobile device <NUM> may comprise one or more NDEF records having the tag data <NUM>, TAGID <NUM>, and TAC.

In some embodiments, the response provided back to the mobile device <NUM> from the smart tag <NUM> may be formatted as a URL with the tag data <NUM>, TAGID <NUM>, and TAC. In other embodiments, the response may be in the form of an email address, phone number, or the like that contains some or all of the tag data <NUM>, TAGID <NUM>, and TAC.

The tag data <NUM> may direct the communication application <NUM> of the mobile device <NUM> to communicate with the tag platform (or content server) <NUM>. In particular, the response provided from the smart tag <NUM> to the mobile device <NUM> may correspond to a URL or the like. Upon receiving the response, the mobile device <NUM> may utilize the communication application <NUM> to request content (e.g., one or more web pages <NUM>) from the tag platform <NUM>. Even more specifically, the URL received from the smart tag <NUM> may correspond to an address of the web page(s) <NUM>. Thus, the communication application <NUM> may attempt to retrieve the web page(s) <NUM> upon receiving the URL from the smart tag <NUM>. As will be discussed in further detail herein, the response provided by the tag platform <NUM> may be dependent upon the mobile device <NUM> proving that it is within proximity to the smart tag <NUM> (e.g., it has the same location as the smart tag <NUM>). In other words, the smart tag <NUM> is provided with the ability to respond to each read request in a substantially unique fashion, thereby prohibiting replays and copies of previous responses. If the mobile device <NUM> provides a valid and unique response to the tag platform <NUM>, the tag platform <NUM> may provide the requested content. For instance, if the content provided by the tag platform <NUM> is sensitive and can only be viewed at certain locations, then the tag platform <NUM> will only provide the requested content if the mobile device <NUM> proves it is within a predetermined distance (e.g., a read range via communications channel <NUM>) of the smart tag <NUM>. Failure to make such a showing will result in the tag platform <NUM> denying the mobile device's <NUM> request for content.

Alternatively or additionally, the tag platform <NUM> may select different content (e.g., web pages <NUM>) for the mobile device <NUM> depending upon the determined presence of the mobile device <NUM>. This may be done instead of simply denying content based on a replay or copy of a response. For instance, if the mobile device <NUM> is determined to be at a particular location (due to the mobile device <NUM> interacting with a particular smart tag <NUM> having a known and fixed location), then the tag platform <NUM> will provide appropriate content to the mobile device <NUM> based on its (and the smart tag's <NUM>) location. If the mobile device <NUM> is determined to have a different location (e.g., due to interacting with a different smart tag <NUM>), the tag platform <NUM> may provide different content back to the mobile device <NUM>.

The authentication service <NUM> may be provided to help ensure that the mobile device <NUM> is at a particular predetermined location prior to the tag platform <NUM> providing requested content to the mobile device <NUM>. As such, the authentication service <NUM> may comprise components that enable the authentication service <NUM> to analyze responses received at a mobile device <NUM> during a tag interaction to determine if the responses are unique or replays from previous tag interactions. In particular, the authentication service <NUM> may be provided with a TAGID repository <NUM> and a cryptographic engine <NUM>.

The TAGID repository <NUM> may correspond to a data structure or listing of authentic and deployed smart tags <NUM> along with information about such tags <NUM>. More specifically, the TAGID repository <NUM> may contain information that helps identify whether an interaction with a tag <NUM> corresponds to a unique interaction (e.g., TAC information, TAGID information, etc.). The TAGID repository <NUM> may also inherently contain or at least reference location information for deployed smart tags <NUM>. In particular, when a smart tag <NUM> is deployed, the location information for the smart tag <NUM> may be stored within the TAGID repository <NUM> in association with the TAGID of the smart tag <NUM>. In this way, the location information of each smart tag <NUM> can be known and whenever a mobile device <NUM> interacts with a smart tag <NUM>, the location information for the smart tag <NUM> interacting with the mobile device <NUM> can be correlated with location information for the mobile device <NUM> due to the limited range of the communications channel <NUM>.

The cryptographic engine <NUM> of the authentication service <NUM> may be similar or identical to the cryptographic engine <NUM> of the smart tag <NUM>, thereby enabling the authentication service <NUM> to check TACs generated by the smart tag <NUM>. More specifically, when the authentication service <NUM> receives information about a mobile device <NUM> interacting with a smart tag <NUM> (e.g., information contained in a tag response provided to the mobile device <NUM>), the authentication service <NUM> may compare the TAGID received from the mobile device <NUM> to one or more TAGIDs contained in the TAGID repository <NUM> to determine whether the smart tag <NUM> that provided the response to the mobile device <NUM> is a valid and known smart tag. Additionally, the authentication service <NUM> may invoke its cryptographic engine <NUM> to generate an TAC based on its internally-maintained K and C values, which should match the K and C values of a valid smart tag <NUM>. If the TAC generated by the cryptographic engine <NUM> matches the TAC received from the mobile device <NUM>, then the authentication service <NUM> can verify that the interaction between the smart tag <NUM> and mobile device <NUM> was a unique interaction (e.g., there was no replay of a TAC by the mobile device <NUM>). This information can be used to determine that the mobile device <NUM> is currently within read range of the smart tag <NUM> and, therefore, the location of the mobile device <NUM> can be correlated to the ;location of the smart tag <NUM>. This correlation can be maintained within the TAGID repository <NUM> or within a presence database maintained by the tag platform (content server) <NUM>. The newly-determined presence information for the mobile device <NUM> can also be used by the tag platform (content server) <NUM> to control the content provided to the mobile device <NUM>. For instance, certain web page(s) <NUM> may be selectively provided to the mobile device <NUM> based on the determined location of the mobile device <NUM>.

In some embodiments where the counter value C is incremented at the TAC module <NUM>, the counter value C at the authentication service <NUM> is incremented for each response it receives for a particular smart tag <NUM>. Thus, the counter values C at each node should maintain a certain amount of synchronization. Alternatively, where a pseudo-random number generator is used by the smart tag <NUM>, a pseudo-random number generator may also be used at the authentication service <NUM>. It should be appreciated that the authentication service <NUM> may be allowed to verify the validity of an TAC without necessarily generating its own TAC. Instead, the authentication service <NUM> may maintain a listing of previously-received TACs or counter values within the TAGID repository <NUM>. This list may be kept indefinitely or it may comprise only a fixed number of TACs from previous interactions (e.g., the last <NUM> TACs generated by a particular smart tag <NUM>). If the authentication service <NUM> receives an TAC that it has previously received (e.g., that is already found in the list of previously-received TACs), then the authentication service <NUM> may identify the TAC as invalid and may fail to correlate the location of the mobile device <NUM> to the smart tag <NUM>.

Although the authentication service <NUM> is depicted as being separate and distinct from the tag platform (content server) <NUM> and discussions of the two components are primarily directed toward situations where different entities operate the components, such an implementation is not a requirement for embodiments of the present disclosure. To the contrary, the tag platform (content server) <NUM> and authentication service <NUM> may be administered by a common entity or enterprise without departing from the scope of the present disclosure. Additionally, although the TAGID repository <NUM> (and location information for smart tags <NUM>) is depicted as being stored in the authentication service <NUM>, it should be appreciated that the tag platform (content server) <NUM> may also maintain location information for tags <NUM> as well as correlated location information for mobile devices <NUM> that have interacted with tags <NUM>.

With reference now to <FIG>, a first method of determining presence information for a mobile device <NUM> or a user/thing associated therewith will be described in accordance with at least some embodiments of the present disclosure. The method begins when the mobile device <NUM> transmits a read request to the smart tag <NUM> (step S201). The read request may be transmitted via the communications channel <NUM> and it may be transmitted before or after a mutual authentication has been performed between the mobile device <NUM> and smart tag <NUM>.

Upon receiving the read request, the smart tag <NUM> generates a response thereto and transmits the response back to the mobile device <NUM> (step S202). The response may be transmitted back to the mobile device <NUM> via the same communications channel <NUM> over which the read request was transmitted. In some embodiments, both the read request and response may be transmitted over an NFC communications channel. Where NFC is used, some or all of the response may be transmitted in the form of one or more NDEF records. In some embodiments, both the read request and response may be transmitted using a Bluetooth of WiFi communications channel. Combinations of wireless channels may also be used without departing from the scope of the present disclosure. It should be appreciated that the response may include tag data (e.g., a URL, email address, phone number, etc.) or some other data that directs the mobile device <NUM> to the tag platform (content server) <NUM>. The response may also include information that identifies the smart tag <NUM> (e.g., a TAGID) as well as interaction-specific information (e.g., an TAC). This information can be provided to the mobile device <NUM> in one or multiple messages.

In some embodiments, step S201 may be optional and the smart tag <NUM> may automatically generate a TAC in response to detecting the mobile device <NUM> within its read range. For instance, if the smart tag <NUM> detects the mobile device <NUM> as being within a Bluetooth read range (e.g., up to <NUM> feet), the smart tag <NUM> may automatically generate a new TAC. Upon a pairing between the mobile device <NUM> and smart tag <NUM>, the smart tag <NUM> may send a data object to the mobile device <NUM> that includes the newly-generated TAC, a TAGID, and/or other information that is helpful in proving that the mobile device <NUM> is within the presence of the smart tag <NUM>.

Upon receiving the data object from the smart tag <NUM> (e.g., in the form of a response or an initially-transmitted message), the mobile device <NUM> invokes its communication application <NUM> and issues a request for content to the tag platform (content server) <NUM> (step S203). In other embodiments, the mobile device <NUM> may simply send information received from the smart tag <NUM> to the tag platform <NUM> (e.g., without necessarily requesting content). Where the mobile device <NUM> is requesting content, for example by requesting one or more web page(s) <NUM> from the tag platform (content server) <NUM>, the request may comprise one or more HTTP messages.

When the tag platform (content server) <NUM> receives the tag information from the mobile device <NUM>, the tag platform (content server) <NUM> may request the authentication service <NUM> to confirm that the interaction between the mobile device <NUM> and smart tag <NUM> corresponds to a unique interaction (step S204). If the tag platform also implements the authentication service, then the request for confirmation may not necessarily need to traverse the communication network <NUM>.

Upon receiving the information from the tag platform (content server) <NUM>, the authentication service <NUM> may analyze the information provided from the smart tag <NUM> to the mobile device <NUM>. In particular, the authentication service <NUM> may analyze the TAGID of the smart tag <NUM> as well as the TAC or interaction-specific information provided from the smart tag <NUM> to the mobile device <NUM>. Based on this analysis, the authentication service <NUM> provides results of the analysis back to the tag platform (content server) <NUM>, where the information is used to (i) update presence information for the mobile device <NUM> and/or (ii) condition whether and to what extent content (e.g., a web page <NUM>) is provided to the mobile device <NUM> (step S205).

If the authentication service <NUM> verifies that the tag interaction was a unique interaction and the mobile device <NUM> is currently within a read range of the smart tag <NUM>, then the tag platform (content server) <NUM> may correlate the location of the mobile device <NUM> with the known location of the smart tag <NUM>. If the smart tag <NUM> has been fixed in a particular geographical location, then the mobile device <NUM> may have its location correlated to the particular geographical location of the smart tag <NUM>. This correlation may occur within a data structure maintained by the tag platform (content server) <NUM> or within some other data structure (e.g., the TAGID repository <NUM>), which may be maintained by the authentication service <NUM> or some other entity not depicted. In other embodiments, the location of the smart tag <NUM> may not actually correspond to a particular geographical location, but instead may correspond to an association of the smart tag <NUM> with another object. For instance, the smart tag <NUM> may be fixed or attached to a poster, a patient, a room in which a patient is sitting, a vehicle, a device to repair/control, a store, etc. When the mobile device <NUM> uniquely interacts with the smart tag <NUM>, it can be confirmed that the mobile device <NUM> is within the presence of the object to which the smart tag <NUM> is attached or fixed if the interaction between the mobile device <NUM> and smart tag <NUM> is determined to be a unique interaction. Thus, the "location" of the mobile device <NUM> can be correlated with the object to which the smart tag <NUM> is attached or fixed rather than correlating the location of the mobile device <NUM> to a specific geographical location. In other words, the mobile device <NUM> can be determined to have been within the presence of the object to which the smart tag <NUM> is attached or fixed and this information may be maintained within a presence database or data structure. Moreover, the presence information can be determined to be current based on when the data object was received at the mobile device <NUM>, based on when the mobile device <NUM> transmitted the request to the tag platform (content server) <NUM>, or some other action that has a time stamp associated therewith.

As a more specific, but non-limiting example, the smart tag <NUM> may be incorporated into a wristband of a patient and a healthcare provider may use the mobile device <NUM> to read the smart tag <NUM> of the patient. When the mobile device <NUM>/smart tag <NUM> interaction is determined to be unique, the location of the mobile device <NUM> and the healthcare provider can be correlated to the smart tag <NUM> and the patient, without necessarily considering the actual geographical location of the patient. As long as the mobile device <NUM> sends the unique information obtained from the smart tag <NUM> within a predetermined time window (e.g., an appointment window), it can be determined that the healthcare provider was in the presence of the patient at the required appointment window since the tag interaction cannot correspond to a replay of previous information obtained from the smart tag <NUM> earlier (e.g., from a site visit earlier in the day or in a previous day). This particular proof of presence solution is highly useful because many home healthcare providers have a need to verify that a clinician actually comes to a patient's house to provide the care that has been paid for. Methods used today to confirm such activity include the use of caller ID systems (e.g., a phone call placed from the residence of the patient to prove the clinician's presence as the residence) or GPS tracking of the clinician from a phone application. As land lines disappear and the GPS system does not provide enough granularity or non-repudiation, the disclosed proof of presence solution can be used to electronically verify that someone has visited the patient by having their mobile phone <NUM> interact with the smart tag <NUM> of a patient.

As another non-limiting example, a plurality of smart tags <NUM> may be attached to various checkpoints or rooms in a building to facilitate confirmation that a security guard is following a predetermined guard tour route, in the appropriate order, and at the appropriate times. A security guard may perform a guard tour of the building and during the tour be required to read each smart tag <NUM> with the mobile device <NUM>. As the guard tour is performed, the movement of the guard within the building can be correlated to each smart tag <NUM> with which the guard uniquely interacts. If the guard properly follows the prescribed guard tour, the mobile device <NUM> will interact with the appropriate smart tags <NUM> in the appropriate order and this information can be confirmed by determining each tag interaction is unique and not a replay of a previous interaction from a previous tour. Moreover, if the guard is required to be at each location within a particular time window, the guard's compliance with the guard tour can be confirmed when the guard's mobile device <NUM> interacts with each smart tag <NUM> and the information obtained from each smart tag <NUM> is transmitted back to an authentication service. In some embodiments, the location of the mobile device <NUM> may be correlated to the location of each smart tag <NUM>, which may correspond to the specific rooms or corridors within and around the building. Thus, a guard's compliance with a guard tour can be continuously confirmed in real-time. This provides particular advantages over prior art guard tour-compliance systems in that any type of mobile device <NUM> can be used by the guard as opposed to traditional, and more expensive, custom RFID readers. Secondly, the smart tags <NUM> themselves cannot be closed due to the keys used to generate the TACs.

Yet another non-limiting example is in the context of a sweepstakes / raffle / advertising campaign. Today, sweepstakes are typically managed by having a limited number of physical objects that are issued, for example a raffle ticket. An electronic version of a sweepstakes involves the user being directed to a website where the user is allowed to enter into the contest; however, anyone who knows the URL to the contest website could enter the content, which means that it is extremely difficult to limit the contest participants to only those people present at a particular location (e.g., a trade show, a conference, etc.). With the implementation of the proof of presence concepts disclosed herein, the entry into the sweepstakes/contest can be limited to only those people physically in the presence of the smart tag <NUM> (e.g., at the location where the entry must take place). Re-use of the URL through refresh or sharing will not result in a valid entry into the sweepstakes/contest.

Still another non-limiting example is in the context of loyalty discounts or coupons. Today, for example, loyalty credits (e.g., buy <NUM> sandwiches and get one free) are managed through physical punch cards that are modified every time a customer visits a store and makes a purchase. The electronic equivalent of this loyalty coupon involves having a user visit a web page that tracks a "virtual punch card. " However, by refreshing the browser or sharing the link, this system can be broken as well. Utilization of the proof of presence concepts disclosed herein helps the retailer ensure that the customer was physically present in the stored when the customer received their additional loyalty points.

Although not depicted, the tag platform (content server) <NUM> may eventually provide content back to the mobile device <NUM>. For instance, if the mobile device <NUM> issued a request for a web page, then the requested web page(s) <NUM> may be provided to the mobile device <NUM> where they can be displayed and presented to a user of the mobile device <NUM>.

With reference now to <FIG>, a second method of determining presence information for a mobile device <NUM> or a user/thing associated therewith will be described in accordance with at least some embodiments of the present disclosure. In this particular example, the mobile device <NUM> is provided with the ability to analyze tag responses to ensure such responses are unique. The mobile device <NUM> may also be provided with the ability to maintain information about its presence or a history of its tag interactions, which can eventually be correlated to location information.

More specifically, the mobile device <NUM> is provided with an authentication module <NUM> that enable the mobile device <NUM> to perform some or all of the functions discussed in connection with the authentication service <NUM>. The mobile device <NUM> is also provided with an interaction database <NUM> that provides the mobile device <NUM> with the ability to historically track its tag interactions over time. Information from the interaction database <NUM> can be used by the mobile device <NUM> to ensure that it continues to have unique tag interactions. Furthermore, the interaction database <NUM> can be uploaded or provided to a third party, thereby enabling the third party to determine the mobile device's <NUM> movement over time based on its interaction history.

The method begins when the mobile device <NUM> issues a read request to the smart tag <NUM> (step S301). Similar to the read request issued in step S201, the read request issued in step S301 may be transmitted via the communications channel <NUM>. The smart tag <NUM> may then respond to the read request with a response over the same communications channel <NUM> (step S302). In some embodiments, the response may contain information that identifies the smart tag <NUM> (e.g., the tag's TAGID) as well as information that is specific to the current interaction (e.g., a counter value, a TAC, etc.).

When the mobile device <NUM> receives the response, the mobile device <NUM> may compare the information contained in the response with some or all of the interactions stored in the interaction database <NUM>. If the information from the current response does not exactly match information from any previous interactions, then the current interaction can be determined to be unique. At this point, the mobile device <NUM> may determine that it is interacting with a valid and authentic smart tag <NUM> and additional interactions may occur. Alternatively or additionally, the mobile device <NUM> may update its own presence or location information and correlate such presence information with the smart tag <NUM>. Again, the mobile device <NUM> may correlate its geographical location with a known geographical location of the smart tag <NUM> or the mobile device <NUM> may simply correlate its presence with an object to which the smart tag <NUM> is attached or fixed. This information can simply be maintained at the mobile device <NUM> and/or it can be reported to a third party, such as a tag platform (content server) <NUM> or authentication service <NUM>.

With reference now to <FIG>, a third method of determining presence information will be described in accordance with at least some embodiments of the present disclosure. The method of this example shows a scenario where the tag platform (content server) <NUM> comprises the authentication module <NUM>. More specifically, the tag platform (content server) <NUM> is enabled to inherently perform some or all functions of an authentication service <NUM> (e.g., to determine whether a tag interaction is a unique interaction).

The method begins with the mobile device <NUM> transmitting a read request to the smart tag <NUM> (step S401) and the smart tag <NUM> responding thereto (step S402). The read request and response may both be transmitted over the same communications channel <NUM> or different communications channels. Moreover, the response may include a TAGID <NUM>, tag data <NUM>, and/or a TAC generated by the smart tag <NUM>.

Some or all of the response received at the mobile device <NUM> may be provided to the tag platform (content server) <NUM> via the communication network <NUM> (step S403). The tag platform (content server) <NUM> may then invoke its authentication module <NUM> to determine if the information provided from the smart tag <NUM> to the mobile device <NUM> was unique or not. In particular, the authentication module <NUM> may analyze the TAC and/or TAGID of the response to determine if the smart tag <NUM> provided a unique response to the mobile device <NUM>, thereby proving that the mobile device <NUM> is within proximity of the smart tag <NUM>. If the interaction is determined to be unique, then the tag platform (content server) <NUM> may correlate the location of the mobile device <NUM> with the location of the smart tag <NUM>. This correlation may be maintained within a data structure of the tag platform or in an external presence database where it can be accessed by other servers and communication devices. The tag platform (content server) <NUM> may also decide to provide one or more web pages <NUM> to the mobile device <NUM> if the interaction is determined to be unique. The web page(s) <NUM> provided to the mobile device <NUM> may also vary depending upon the current geographical location of the smart tag <NUM> and/or the object to which the smart tag <NUM> is attached/fixed. Of course, if the interaction is not determined to be unique, then the location of the mobile device <NUM> may not be correlated with the location of the smart tag <NUM> and/or the web page(s) <NUM> may not be provided to the mobile device <NUM>.

With reference now to <FIG>, a fourth method of determining presence information will be described in accordance with at least some embodiments of the present disclosure. The method begins when a mobile device <NUM> transmits a first read request to a smart tag <NUM> (step S501). The first read request may correspond to an initial request for authentication information rather than a request for a full response containing tag data <NUM>, a TAGID <NUM>, and an TAC. In other words, the first request may correspond to a request issued before a level of trust has been established between the mobile device <NUM> and smart tag <NUM>.

In response to the first request, the mobile device <NUM> may provide a first response (step S502). The first response may be enough information to allow the mobile device <NUM> to either authenticate the smart tag <NUM> or begin a process or authenticating the smart tag <NUM>. Specifically, the first response may contain information that directs the mobile device <NUM> to an authentication service <NUM> to obtain a challenge/response pair (step S503). The authentication service <NUM> may determine an appropriate challenge/response pair based on the information contained in the first response of step S502. Once determined, the challenge/response pair is transmitted back to the mobile device <NUM> (step S504).

Upon receiving the challenge/response pair, the mobile device <NUM> may generate and send the smart tag <NUM> a second read request (step S505). The second read request may contain some or all of the challenge contained in the challenge/response pair issued by the authentication service <NUM>. The smart tag <NUM> may analyze the second read request and generate a second response based on the information contained in the second read request. In particular, the information from challenge may be used by the smart tag <NUM> to generate the second response, which is subsequently provided to the mobile device <NUM> (step S506). If the second response received from the smart tag matches the response from the challenge/response pair, then the mobile device <NUM> can determine that the smart tag <NUM> is a valid, authentic, and trusted smart tag. Alternatively or additionally, the comparison of the of the second response issued in step S506 with the response from the challenge/response pair may be performed by the authentication service <NUM>. As a further note, the read requests S501, S505 and responses S502, S506 may all be transmitted over a common communications channel <NUM> directly between the mobile device <NUM> and smart tag <NUM>. Since there may be a lapse of time between the first read request and second read request, the user of the mobile device <NUM> may be required to hold the mobile device <NUM> within a read range of the smart tag <NUM> for a predetermined amount of time. The progress of the interaction can be depicted to a user of the mobile device <NUM> via a user output or display, thereby informing the user of how much more time is required for the user to hold the mobile device <NUM> within proximity of the smart tag <NUM>.

It is noted that the embodiments were described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. A process is terminated when its operations are completed, but could have additional steps not included in the figure.

Claim 1:
A method for confirming presence of mobile devices (<NUM>) in the presence of a tag comprising:
receiving a data object, the data object generated by a smart tag (<NUM>) in response to a request from a mobile device (<NUM>) and provided to the mobile device (<NUM>) in one or more Near-Field Communications (NFC) in the form of one or more Data Exchange Format (NDEF) records, the data object including a Tag Authentication Cryptogram (TAC) and an identifier (<NUM>) of the smart tag (<NUM>), the TAC generated by the smart tag based on a unique cryptographic key (K) associated with the smart tag (<NUM>) and a counter value (C);
an authentication service (<NUM>, <NUM>) analyzing the TAC to determine that the data object was received from the smart tag (<NUM>) via a unique interaction between the smart tag (<NUM>) and the mobile device (<NUM>) as opposed to being a copy or replay of a data object from a previous interaction with the smart tag (<NUM>), whereby the authentication service (<NUM>) comprises as components a TAGID repository (<NUM>) comprising location information, unique cryptographic keys and counter values associated with smart tags and a cryptographic engine (<NUM>) that enable the authentication service (<NUM>) to analyze responses received at a mobile device (<NUM>) during a tag interaction; and
correlating the location of the mobile device (<NUM>) with the location of the smart tag (<NUM>) only in response to determining that the data object was received from the smart tag (<NUM>) via the unique interaction between the smart tag (<NUM>) and the mobile device (<NUM>).