Patent Publication Number: US-11026092-B2

Title: Proof of presence via tag interactions

Description:
CROSS REFERENCE TO RELATED APPLICATION 
     This application is a continuation of U.S. application Ser. No. 14/772,995, titled “Proof of Presence Via Tag Interactions,” filed Sep. 4, 2015, which is a national stage application under 35 U.S.C. § 371 of PCT Appl. No. PCT/IB2014/000843, titled “Proof of Presence Via Tag Interactions,” filed Mar. 6, 2014, which claims the benefit of U.S. Provisional Appl. Nos. 61/794,447 and 61/794,371, both filed Mar. 15, 2013, each of which is hereby incorporated by reference herein in its entirety. 
    
    
     FIELD OF THE DISCLOSURE 
     The present disclosure is generally directed toward determining presence and more specifically toward determining presence based on interactions with tags. 
     BACKGROUND 
     The utilization of presence information has become increasingly important in commerce. Specifically, there are many technologies that attempt to utilize information about a person&#39;s presence or a thing&#39;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&#39;s presence or a thing&#39;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. 
     SUMMARY 
     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. 
     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&#39;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&#39;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: 
     receiving, from a smart tag, a data object including a Tag Authentication Cryptogram (TAC) as well as an identifier of the of the smart tag; 
     analyzing the TAC to determine that the data object was received from the smart tag via a unique interaction between the smart tag and a mobile device; 
     determining a location of the smart tag based on the identifier of the smart tag; and 
     correlating the location of the smart tag with a location of the mobile device only in response to determining that the data object was received from the smart tag via a unique interaction between the smart tag and the mobile device. 
     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: 
     a repository of tag identifiers stored with associated location information; and 
     an authentication service configured to receive a data object from a mobile device, the data object including a Tag Authentication Cryptogram (TAC) and an tag identifier exchanged between the mobile device and a smart tag, wherein the authentication service is further configured to analyze the TAC to determine whether the tag identifier was received during a unique interaction between the mobile device and the smart tag and then correlate a location of the mobile device only in response to determining that the tag identifier was received during a unique interaction between the mobile device and the smart tag. 
     As used herein, the term “correlating” or “correlate” can be understood to include any act of associating or binding (e.g., logically) one object&#39;s location with another object&#39;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&#39;s location with another object&#39;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&#39;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. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram depicting a communication system in accordance with embodiments of the present disclosure; 
         FIG. 2  is a diagram depicting a first method of determining presence in accordance with embodiments of the present disclosure; 
         FIG. 3  is a diagram depicting a second method of determining presence in accordance with embodiments of the present disclosure; 
         FIG. 4  is a diagram depicting a third method of determining presence in accordance with embodiments of the present disclosure; and 
         FIG. 5  is a diagram depicting a fourth method of determining presence in accordance with embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     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. 1 , a communication system  100  will be described in accordance with at least some embodiments of the present disclosure. The communication system  100  is shown to include a mobile device  104 , a smart tag  108 , a tag platform  112 , and an authentication service  116 , each of which are interconnected or in communication with one another via one or more communication networks  118 . 
     In some embodiments, the mobile device  104  corresponds to a mobile communications device, such as a smartphone or the like. In more specific embodiments, the mobile device  104  may correspond to an NFC-enabled communications device in that the mobile device  104  may be configured to exchange communications with the smart tag  108  via NFC. As shown in  FIG. 1 , a communications channel  110  may be established directly between the mobile device  104  and the smart tag  108  to enable communications therebetween. In some embodiments, this communications channel  110  corresponds to an NFC or non-galvanic mutual coupling between the mobile device  104  and smart tag  108 . In other embodiments, the communications channel  110  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 802.11N channel (e.g., an indirect channel through a wireless router), etc. In some embodiments, the type of channel  110  used to communicate between the mobile device  104  and smart tag  108  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  110  between the mobile device  104  and smart tag  108 . 
     As depicted in  FIG. 1 , the mobile device  104  may comprise an NFC reader  120 , a communication application  124 , and a network interface  128 , among other things. Examples of a mobile device  104  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  104  may also comprise one or more processors (e.g., microprocessors, CPUs, etc.) that are configured to perform certain operations for the mobile device  104  and memory for storing the instructions that are executable by the one or more processors. As an example, the mobile device  104  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  104  may be connected together via a data bus or similar architecture. The memory of the mobile device  104  may be volatile and/or non-volatile. 
     The NFC reader  120  may correspond to a collection of components that enable the mobile device  104  to communicate via the communications channel  110  with the smart tag  108 . Types of components that may be provided as part of the NFC reader  120  may be executed by a processor of the mobile device  104  to enable the mobile device  104  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  120  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  104  may establish the communications channel  110  via non-NFC methods. Thus, mobile device  104  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 4, Bluetooth Low Energy (BLE)), ZigBee components, etc.). Furthermore, the non-NFC communications with the smart tag  108  may occur via the network interface  128  and/or the antenna of the NFC reader  120 . 
     The communication application  124  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  104  to communicate with other communication devices via the communication network  118 . Another type of communication that may be facilitated by the communication application  124  includes social networking communications. 
     The network interface  128  may comprise one or more different networks or network types. For instance, the network interface  128  may comprise a cellular network interface that enables the mobile device  104  to interact with a cellular network, which is usually provided by a Mobile Network Operator (MNO). Alternatively or additionally, the network interface  128  may comprise a Bluetooth interface, Infrared interface, etc. The network interface  128  may alternatively or additionally include an 802.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  104 . 
     The smart tag  108  may correspond to any type of device with memory, a processor, and one or more antennas to communicate via the communications channel  110 . Non-limiting examples of form factors for the smart tag  108  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  108  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  108  may comprise an Integrated Circuit Card (ICC). 
     Components of the smart tag  108  are depicted as including a TAGID  132 , an NFC applet  136 , a Tag Authentication Cryptogram (TAC) module  144 , and a cryptographic engine  148 , some or all of which may be stored in a secure area of the smart tag&#39;s  108  memory. The TAGID  132  of the smart tag  108  may correspond to a static or dynamically-changing string (e.g., alphanumeric string, series of bits, etc.) that identifies the smart tag  108  in a globally unique fashion. As a more specific example, the TAGID  132  may correspond to an identification number assigned to and stored by the smart tag  108  that is uniquely assigned to the smart tag  108  (e.g., to the exclusion of being assigned to any other similar type of smart tag  108 ). 
     The NFC applet  136  may correspond to a set of instructions stored on the smart tag  108  that enable the smart tag  108  to generate and share tag data  140  with a mobile device  104  via the communications channel  110 . More specifically, the NFC applet  136  may enable the smart tag  108  to receive and understand read requests issued by the mobile device  104  and then respond to the read request in a substantially unique way. In some embodiments, when the smart tag  108  receives a read request from a mobile device  104 , the smart tag  108  may invoke its NFC applet  136 , which subsequently invokes the TAC module  324 . The NFC applet  136  may correspond to an application or portion of executable code that enables the smart tag  108  to emulate functionality of an NFC tag, perhaps in accordance with ISO 7816, the entire contents of which are hereby incorporated herein by reference. The TAC module  144  may correspond to code contained within the smart tag  108  (and possibly written thereto during provisioning) that is capable of generating unique responses to read requests on behalf of the smart tag  108 . In some embodiments, the TAC module  144  may comprise a unique cryptographic key K and a counter value C and the TAC module  144  may utilize the cryptographic key K and counter value C along with the assistance of a cryptographic engine  148  to create a data object that can be provided back to the mobile device  104  in response to a read request. Examples of TACs that may be generated by the TAC module  144  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  108  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  108  during provisioning. Likewise, the counter value C may also correspond to a random initial value assigned to the smart tag  108  during provisioning or any incremented value obtained as the smart tag  108  generates responses to devices. In other words, the counter value C may change according to use of the smart tag  108  such that the counter value C is never the same value twice during the life of the smart tag  108 ; thereby ensuring that the smart tag  108  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  108  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  108 . Instead, the counter value C may correspond to a pseudo-randomly generated value that is computed each time the smart tag  108  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  148  is designed to compute a TAC, once invoked by the TAC module  144 , based on inputs K and C provided by the TAC module  144 . Even more specifically, when the TAC module  144  is invoked by the NFC applet  136 , the TAC module  144  may provide the cryptographic key K and the current counter value C (or pseudo-randomly-generated number) to the cryptographic engine  148  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  148  include MD5, SHA-1, SHA-2, SHA-3, SHA-256, keyed-hash message authentication codes (HMACs), or any other 128, 256, or 512-bit encryption algorithm. The cryptographic engine  148  returns a value based on the inputs K and C that is provided to the NFC applet  136 . 
     In some embodiments, a smart tag  108  may be configured to generate a TAC in response to any number of conditions or triggers. As one example, the smart tag  108  may generate a TAC in response to a mobile device  104  coming into a predetermined proximity (e.g., a read range) of the smart tag  108 . In this particular configuration, the smart tag  108  may automatically generate a TAC every time that a mobile device  104  comes within a distance suitable to establish a bidirectional communication link with the smart tag  108 . Thus, a new TAC may be automatically generated by the smart tag  108  in response to detecting a mobile device  104  within its communication range, regardless of whether or not the mobile device  104  requests information from the smart tag  108 . This means that a certain number of TACs generated by the smart tag  108  may never be transmitted to a mobile device  104 ; instead, the smart tag  108  will increment or move on to the next TAC when another (or the same mobile device  104 ) mobile device  104  comes into read range of the smart tag  108  (or the same mobile device  104  exits and re-enters the read range). As another example, the smart tag  108  may be triggered to generate a TAC only in response to receiving a request for authentication from the mobile device  104 . In this configuration, the smart tag  108  may wait to generate a TAC unless and until a mobile device  104  is within a read range of the smart tag  108  and the mobile device  104  requests that the smart tag  108  authenticate itself to the mobile device  104 . After the request for authentication is received from the mobile device  104 , the smart tag  108  may generate and transmit a TAC to the mobile device  104 . 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  148 , the NFC applet  136  formats a response for the mobile device  104  that includes the tag data  140  as well as the results received from the cryptographic engine  148  (e.g., the TAC). The NFC applet  136  then prepares the data object to be provided to the mobile device  104 . More particularly, the TAC may correspond to the response-specific data in the data object whereas the tag data  140  and TAGID  132  may correspond to the non-response-specific data. As a non-limiting example, the message transmitted back to the mobile device  104  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  104  may comprise one or more NDEF records having the tag data  140 , TAGID  132 , and TAC. 
     In some embodiments, the response provided back to the mobile device  104  from the smart tag  108  may be formatted as a URL with the tag data  140 , TAGID  132 , 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  140 , TAGID  132 , and TAC. 
     The tag data  140  may direct the communication application  124  of the mobile device  104  to communicate with the tag platform (or content server)  112 . In particular, the response provided from the smart tag  108  to the mobile device  104  may correspond to a URL or the like. Upon receiving the response, the mobile device  104  may utilize the communication application  124  to request content (e.g., one or more web pages  152 ) from the tag platform  112 . Even more specifically, the URL received from the smart tag  108  may correspond to an address of the web page(s)  152 . Thus, the communication application  124  may attempt to retrieve the web page(s)  152  upon receiving the URL from the smart tag  108 . As will be discussed in further detail herein, the response provided by the tag platform  112  may be dependent upon the mobile device  104  proving that it is within proximity to the smart tag  108  (e.g., it has the same location as the smart tag  108 ). In other words, the smart tag  108  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  104  provides a valid and unique response to the tag platform  112 , the tag platform  112  may provide the requested content. For instance, if the content provided by the tag platform  112  is sensitive and can only be viewed at certain locations, then the tag platform  112  will only provide the requested content if the mobile device  104  proves it is within a predetermined distance (e.g., a read range via communications channel  110 ) of the smart tag  108 . Failure to make such a showing will result in the tag platform  112  denying the mobile device&#39;s  104  request for content. 
     Alternatively or additionally, the tag platform  112  may select different content (e.g., web pages  152 ) for the mobile device  104  depending upon the determined presence of the mobile device  104 . This may be done instead of simply denying content based on a replay or copy of a response. For instance, if the mobile device  104  is determined to be at a particular location (due to the mobile device  104  interacting with a particular smart tag  108  having a known and fixed location), then the tag platform  112  will provide appropriate content to the mobile device  104  based on its (and the smart tag&#39;s  108 ) location. If the mobile device  104  is determined to have a different location (e.g., due to interacting with a different smart tag  108 ), the tag platform  112  may provide different content back to the mobile device  104 . 
     The authentication service  116  may be provided to help ensure that the mobile device  104  is at a particular predetermined location prior to the tag platform  112  providing requested content to the mobile device  104 . As such, the authentication service  116  may comprise components that enable the authentication service  116  to analyze responses received at a mobile device  104  during a tag interaction to determine if the responses are unique or replays from previous tag interactions. In particular, the authentication service  116  may be provided with a TAGID repository  156  and a cryptographic engine  160 . 
     The TAGID repository  156  may correspond to a data structure or listing of authentic and deployed smart tags  108  along with information about such tags  108 . More specifically, the TAGID repository  156  may contain information that helps identify whether an interaction with a tag  108  corresponds to a unique interaction (e.g., TAC information, TAGID information, etc.). The TAGID repository  156  may also inherently contain or at least reference location information for deployed smart tags  108 . In particular, when a smart tag  108  is deployed, the location information for the smart tag  108  may be stored within the TAGID repository  156  in association with the TAGID of the smart tag  108 . In this way, the location information of each smart tag  108  can be known and whenever a mobile device  104  interacts with a smart tag  108 , the location information for the smart tag  108  interacting with the mobile device  104  can be correlated with location information for the mobile device  104  due to the limited range of the communications channel  110 . 
     The cryptographic engine  160  of the authentication service  116  may be similar or identical to the cryptographic engine  148  of the smart tag  108 , thereby enabling the authentication service  116  to check TACs generated by the smart tag  108 . More specifically, when the authentication service  116  receives information about a mobile device  104  interacting with a smart tag  108  (e.g., information contained in a tag response provided to the mobile device  104 ), the authentication service  116  may compare the TAGID received from the mobile device  104  to one or more TAGIDs contained in the TAGID repository  156  to determine whether the smart tag  108  that provided the response to the mobile device  104  is a valid and known smart tag. Additionally, the authentication service  116  may invoke its cryptographic engine  160  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  108 . If the TAC generated by the cryptographic engine  160  matches the TAC received from the mobile device  104 , then the authentication service  116  can verify that the interaction between the smart tag  108  and mobile device  104  was a unique interaction (e.g., there was no replay of a TAC by the mobile device  104 ). This information can be used to determine that the mobile device  104  is currently within read range of the smart tag  108  and, therefore, the location of the mobile device  104  can be correlated to the location of the smart tag  108 . This correlation can be maintained within the TAGID repository  156  or within a presence database maintained by the tag platform (content server)  112 . The newly-determined presence information for the mobile device  104  can also be used by the tag platform (content server)  112  to control the content provided to the mobile device  104 . For instance, certain web page(s)  152  may be selectively provided to the mobile device  104  based on the determined location of the mobile device  104 . 
     In some embodiments where the counter value C is incremented at the TAC module  144 , the counter value C at the authentication service  116  is incremented for each response it receives for a particular smart tag  108 . 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  108 , a pseudo-random number generator may also be used at the authentication service  116 . It should be appreciated that the authentication service  116  may be allowed to verify the validity of an TAC without necessarily generating its own TAC. Instead, the authentication service  116  may maintain a listing of previously-received TACs or counter values within the TAGID repository  156 . This list may be kept indefinitely or it may comprise only a fixed number of TACs from previous interactions (e.g., the last 200 TACs generated by a particular smart tag  108 ). If the authentication service  116  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  116  may identify the TAC as invalid and may fail to correlate the location of the mobile device  104  to the smart tag  108 . 
     Although the authentication service  116  is depicted as being separate and distinct from the tag platform (content server)  112  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)  112  and authentication service  116  may be administered by a common entity or enterprise without departing from the scope of the present disclosure. Additionally, although the TAGID repository  156  (and location information for smart tags  108 ) is depicted as being stored in the authentication service  116 , it should be appreciated that the tag platform (content server)  112  may also maintain location information for tags  108  as well as correlated location information for mobile devices  104  that have interacted with tags  108 . 
     With reference now to  FIG. 2 , a first method of determining presence information for a mobile device  104  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  104  transmits a read request to the smart tag  108  (step S 201 ). The read request may be transmitted via the communications channel  110  and it may be transmitted before or after a mutual authentication has been performed between the mobile device  104  and smart tag  108 . 
     Upon receiving the read request, the smart tag  108  generates a response thereto and transmits the response back to the mobile device  104  (step S 202 ). The response may be transmitted back to the mobile device  104  via the same communications channel  110  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  104  to the tag platform (content server)  112 . The response may also include information that identifies the smart tag  108  (e.g., a TAGID) as well as interaction-specific information (e.g., an TAC). This information can be provided to the mobile device  104  in one or multiple messages. 
     In some embodiments, step S 201  may be optional and the smart tag  108  may automatically generate a TAC in response to detecting the mobile device  104  within its read range. For instance, if the smart tag  108  detects the mobile device  104  as being within a Bluetooth read range (e.g., up to 100 feet), the smart tag  108  may automatically generate a new TAC. Upon a pairing between the mobile device  104  and smart tag  108 , the smart tag  108  may send a data object to the mobile device  104  that includes the newly-generated TAC, a TAGID, and/or other information that is helpful in proving that the mobile device  104  is within the presence of the smart tag  108 . 
     Upon receiving the data object from the smart tag  108  (e.g., in the form of a response or an initially-transmitted message), the mobile device  104  invokes its communication application  124  and issues a request for content to the tag platform (content server)  112  (step S 203 ). In other embodiments, the mobile device  104  may simply send information received from the smart tag  108  to the tag platform  112  (e.g., without necessarily requesting content). Where the mobile device  104  is requesting content, for example by requesting one or more web page(s)  152  from the tag platform (content server)  112 , the request may comprise one or more HTTP messages. 
     When the tag platform (content server)  112  receives the tag information from the mobile device  104 , the tag platform (content server)  112  may request the authentication service  116  to confirm that the interaction between the mobile device  104  and smart tag  108  corresponds to a unique interaction (step S 204 ). If the tag platform also implements the authentication service, then the request for confirmation may not necessarily need to traverse the communication network  118 . 
     Upon receiving the information from the tag platform (content server)  112 , the authentication service  116  may analyze the information provided from the smart tag  108  to the mobile device  104 . In particular, the authentication service  116  may analyze the TAGID of the smart tag  108  as well as the TAC or interaction-specific information provided from the smart tag  108  to the mobile device  104 . Based on this analysis, the authentication service  116  provides results of the analysis back to the tag platform (content server)  112 , where the information is used to (i) update presence information for the mobile device  104  and/or (ii) condition whether and to what extent content (e.g., a web page  152 ) is provided to the mobile device  104  (step S 205 ). 
     If the authentication service  116  verifies that the tag interaction was a unique interaction and the mobile device  104  is currently within a read range of the smart tag  108 , then the tag platform (content server)  112  may correlate the location of the mobile device  104  with the known location of the smart tag  108 . If the smart tag  108  has been fixed in a particular geographical location, then the mobile device  104  may have its location correlated to the particular geographical location of the smart tag  108 . This correlation may occur within a data structure maintained by the tag platform (content server)  112  or within some other data structure (e.g., the TAGID repository  156 ), which may be maintained by the authentication service  116  or some other entity not depicted. In other embodiments, the location of the smart tag  108  may not actually correspond to a particular geographical location, but instead may correspond to an association of the smart tag  108  with another object. For instance, the smart tag  108  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  104  uniquely interacts with the smart tag  108 , it can be confirmed that the mobile device  104  is within the presence of the object to which the smart tag  108  is attached or fixed if the interaction between the mobile device  104  and smart tag  108  is determined to be a unique interaction. Thus, the “location” of the mobile device  104  can be correlated with the object to which the smart tag  108  is attached or fixed rather than correlating the location of the mobile device  104  to a specific geographical location. In other words, the mobile device  104  can be determined to have been within the presence of the object to which the smart tag  108  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  104 , based on when the mobile device  104  transmitted the request to the tag platform (content server)  112 , or some other action that has a time stamp associated therewith. 
     As a more specific, but non-limiting example, the smart tag  108  may be incorporated into a wristband of a patient and a healthcare provider may use the mobile device  104  to read the smart tag  108  of the patient. When the mobile device  104 /smart tag  108  interaction is determined to be unique, the location of the mobile device  104  and the healthcare provider can be correlated to the smart tag  108  and the patient, without necessarily considering the actual geographical location of the patient. As long as the mobile device  104  sends the unique information obtained from the smart tag  108  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  108  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&#39;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&#39;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  104  interact with the smart tag  108  of a patient. 
     As another non-limiting example, a plurality of smart tags  108  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  108  with the mobile device  104 . As the guard tour is performed, the movement of the guard within the building can be correlated to each smart tag  108  with which the guard uniquely interacts. If the guard properly follows the prescribed guard tour, the mobile device  104  will interact with the appropriate smart tags  108  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&#39;s compliance with the guard tour can be confirmed when the guard&#39;s mobile device  104  interacts with each smart tag  108  and the information obtained from each smart tag  108  is transmitted back to an authentication service. In some embodiments, the location of the mobile device  104  may be correlated to the location of each smart tag  108 , which may correspond to the specific rooms or corridors within and around the building. Thus, a guard&#39;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  104  can be used by the guard as opposed to traditional, and more expensive, custom RFID readers. Secondly, the smart tags  108  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  108  (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 10 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)  112  may eventually provide content back to the mobile device  104 . For instance, if the mobile device  104  issued a request for a web page, then the requested web page(s)  152  may be provided to the mobile device  104  where they can be displayed and presented to a user of the mobile device  104 . 
     With reference now to  FIG. 3 , a second method of determining presence information for a mobile device  104  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  104  is provided with the ability to analyze tag responses to ensure such responses are unique. The mobile device  104  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  104  is provided with an authentication module  304  that enable the mobile device  104  to perform some or all of the functions discussed in connection with the authentication service  116 . The mobile device  104  is also provided with an interaction database  308  that provides the mobile device  104  with the ability to historically track its tag interactions over time. Information from the interaction database  308  can be used by the mobile device  104  to ensure that it continues to have unique tag interactions. Furthermore, the interaction database  308  can be uploaded or provided to a third party, thereby enabling the third party to determine the mobile device&#39;s  104  movement over time based on its interaction history. 
     The method begins when the mobile device  104  issues a read request to the smart tag  108  (step S 301 ). Similar to the read request issued in step S 201 , the read request issued in step S 301  may be transmitted via the communications channel  110 . The smart tag  108  may then respond to the read request with a response over the same communications channel  110  (step S 302 ). In some embodiments, the response may contain information that identifies the smart tag  108  (e.g., the tag&#39;s TABID) as well as information that is specific to the current interaction (e.g., a counter value, a TAC, etc.). 
     When the mobile device  104  receives the response, the mobile device  104  may compare the information contained in the response with some or all of the interactions stored in the interaction database  308 . 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  104  may determine that it is interacting with a valid and authentic smart tag  108  and additional interactions may occur. Alternatively or additionally, the mobile device  104  may update its own presence or location information and correlate such presence information with the smart tag  108 . Again, the mobile device  104  may correlate its geographical location with a known geographical location of the smart tag  104  or the mobile device  104  may simply correlate its presence with an object to which the smart tag  108  is attached or fixed. This information can simply be maintained at the mobile device  104  and/or it can be reported to a third party, such as a tag platform (content server)  112  or authentication service  116 . 
     With reference now to  FIG. 4 , 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)  112  comprises the authentication module  404 . More specifically, the tag platform (content server)  112  is enabled to inherently perform some or all functions of an authentication service  116  (e.g., to determine whether a tag interaction is a unique interaction). 
     The method begins with the mobile device  104  transmitting a read request to the smart tag  108  (step S 401 ) and the smart tag  108  responding thereto (step S 402 ). The read request and response may both be transmitted over the same communications channel  110  or different communications channels. Moreover, the response may include a TAGID  132 , tag data  140 , and/or a TAC generated by the smart tag  108 . 
     Some or all of the response received at the mobile device  104  may be provided to the tag platform (content server)  112  via the communication network  118  (step S 403 ). The tag platform (content server)  112  may then invoke its authentication module  404  to determine if the information provided from the smart tag  108  to the mobile device  104  was unique or not. In particular, the authentication module  404  may analyze the TAC and/or TAGID of the response to determine if the smart tag  108  provided a unique response to the mobile device  104 , thereby proving that the mobile device  104  is within proximity of the smart tag  108 . If the interaction is determined to be unique, then the tag platform (content server)  112  may correlate the location of the mobile device  104  with the location of the smart tag  108 . 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)  112  may also decide to provide one or more web pages  152  to the mobile device  104  if the interaction is determined to be unique. The web page(s)  152  provided to the mobile device  104  may also vary depending upon the current geographical location of the smart tag  108  and/or the object to which the smart tag  108  is attached/fixed. Of course, if the interaction is not determined to be unique, then the location of the mobile device  104  may not be correlated with the location of the smart tag  108  and/or the web page(s)  152  may not be provided to the mobile device  104 . 
     With reference now to  FIG. 5 , 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  104  transmits a first read request to a smart tag  108  (step S 501 ). The first read request may correspond to an initial request for authentication information rather than a request for a full response containing tag data  140 , a TAGID  132 , 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  104  and smart tag  108 . 
     In response to the first request, the mobile device  104  may provide a first response (step S 502 ). The first response may be enough information to allow the mobile device  104  to either authenticate the smart tag  108  or begin a process or authenticating the smart tag  108 . Specifically, the first response may contain information that directs the mobile device  104  to an authentication service  116  to obtain a challenge/response pair (step S 503 ). The authentication service  116  may determine an appropriate challenge/response pair based on the information contained in the first response of step S 502 . Once determined, the challenge/response pair is transmitted back to the mobile device  104  (step S 504 ). 
     Upon receiving the challenge/response pair, the mobile device  104  may generate and send the smart tag  108  a second read request (step S 505 ). The second read request may contain some or all of the challenge contained in the challenge/response pair issued by the authentication service  116 . The smart tag  108  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  108  to generate the second response, which is subsequently provided to the mobile device  104  (step S 506 ). If the second response received from the smart tag matches the response from the challenge/response pair, then the mobile device  104  can determine that the smart tag  108  is a valid, authentic, and trusted smart tag. Alternatively or additionally, the comparison of the of the second response issued in step S 506  with the response from the challenge/response pair may be performed by the authentication service  116 . As a further note, the read requests S 501 , S 505  and responses S 502 , S 506  may all be transmitted over a common communications channel  110  directly between the mobile device  104  and smart tag  108 . Since there may be a lapse of time between the first read request and second read request, the user of the mobile device  104  may be required to hold the mobile device  104  within a read range of the smart tag  108  for a predetermined amount of time. The progress of the interaction can be depicted to a user of the mobile device  104  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  104  within proximity of the smart tag  108 . 
     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. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. 
     While illustrative embodiments of the disclosure have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art.