A proximity card is a smart card that can be “read” without inserting it into a reader device, as required by earlier magnetic stripe cards such as credit cards. When used, a proximity card is transported near an electronic reader. The reader wirelessly communicates with the card to read information from the card, including an identification number. If it is confirmed that the read identification number is correct (matches the expected identification number), the applicable function may be performed.
Passive and active proximity cards exist. Passive proximity cards, which are currently more widely used, are powered by radio frequency signals from the reader device. As such, passive cards have a more limited range and must be positioned relatively closer to the reader device to be read. Active proximity cards have an internal battery that provides power to the card. As such, active proximity cards may have a greater range than passive proximity cards.
Proximity cards may be used for various purposes, such as keyless door access, contactless payment, and other purposes. As such, a proximity card enables a function to be easily and conveniently performed for a user through automatic wireless communications. However, a user must make sure to carry a proximity card on their person, which can be cumbersome. If a person forgets to carry a proximity card (in addition to the other items that they may have to carry), they will be unable to access the applicable function. Furthermore, the user may need to carry multiple proximity cards corresponding to multiple separate functions that the user may need to access.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Methods, systems, and computer program products are provided that enable a mobile computing device to emulate multiple proximity cards. A portable computing device may store a plurality of identification numbers. The portable computing device may respond to a proximity card reader interrogation transmitted by a reader device by providing one or more of the stored identification numbers in response. In one implementation, the portable computing device may transmit the stored identification numbers in sequence, one or more times, in response to the interrogation. Alternatively, the portable computing device may select one or more particular stored identification numbers to provide in response, based on a location or other attribute of the portable computing device. An applicable function may be enabled when an identification number provided by the portable computing device is determined as a match by the reader device.
In one implementation, a portable computing device includes an antenna, storage that stores a plurality of identification numbers, and a processor. The processor is configured to control modulation of an identification number of the plurality of identification numbers onto a carrier signal received by the antenna from a proximity card reader device.
The processor may be configured to select the identification number of the plurality of identification numbers based on at least one predetermined criteria.
In one aspect, the predetermined criteria includes a location of the portable computing device. The portable computing device includes a location monitor configured to determine the location of the portable computing device. The storage stores a plurality of geographic regions. Each of the identification numbers is associated with one of the geographic regions. The processor is configured to determine when the determined location of the portable computing device is in a geographic region of the plurality of geographic regions. The processor is configured to select the identification number associated with the geographic region in which the portable computing device is determined to be located. The processor is configured to control modulation of the selected identification number onto the carrier signal one or more times.
In another aspect, the predetermined criteria includes time. The storage stores a plurality of time indications. Each of the identification numbers is associated with at least one of the time indications. The processor is configured to determine a time indication most closely associated with a current time. The processor is configured to select the identification number associated with the determined time indication. The processor is configured to control modulation of the selected identification number onto the carrier signal.
The processor may be configured to enable a user to select the identification number from the plurality of identification numbers.
The processor may be configured to control modulation of the plurality of identification numbers onto the carrier signal in series, one or more times.
The portable computing device may include a screen lock module. The screen lock module enables a user of the portable computing device to unlock a screen of the portable computing device. The processor may enable modulation of the identification number onto the carrier signal when the screen is unlocked, and prevent modulation of the identification number onto the carrier signal when the screen is locked.
A value of at least one identification number may be periodically changed according to a predetermined factor to enhance security.
In another implementation, a method in a portable computing device is provided. A carrier signal transmitted by a proximity card reader device is received at an antenna of the portable computing device. An identification number of a plurality of identification numbers stored in storage of the portable computing device is accessed. The identification number is modulated onto the carrier signal one or more times.
The identification number may be selected from the stored identification numbers based on a predetermined criteria, such as a location of the portable computing device and/or a current time. Alternatively, all of the stored identification numbers may be modulated onto the carrier signal in series, one or more times.
A computer readable storage medium is also disclosed herein having computer program instructions stored therein that enable a portable computing device to emulate a proximity card according to the embodiments described herein.
Further features and advantages of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying drawings. It is noted that the invention is not limited to the specific embodiments described herein. Such embodiments are presented herein for illustrative purposes only. Additional embodiments will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein.
The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the pertinent art to make and use the invention.
The features and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
The present specification discloses one or more embodiments that incorporate the features of the invention. The disclosed embodiment(s) merely exemplify the invention. The scope of the invention is not limited to the disclosed embodiment(s). The invention is defined by the claims appended hereto.
References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
Numerous exemplary embodiments of the present invention are described as follows. It is noted that any section/subsection headings provided herein are not intended to be limiting. Embodiments are described throughout this document, and any type of embodiment may be included under any section/subsection. Furthermore, embodiments disclosed in any section/subsection may be combined with any other embodiments described in the same section/subsection and/or a different section/subsection in any manner.
A proximity card is a smart card that can be “read” without inserting it into a reader device, as required by earlier magnetic stripe cards such as credit cards. When used, a proximity card is transported (e.g., carried or held) near an electronic reader. For instance, the proximity card may be held against a reader pad. The reader wirelessly communicates with the card to read an identification number from the card. If it is confirmed that the read identification number is correct (matches an expected identification number), the applicable function may be performed.
NFC (near field communication) is a set of standards and techniques for radio communications between devices at very short ranges, such as when the devices are positioned in close proximity to each other, including being contacted together. Most proximity card based door access systems, as well as other systems that communicate with proximity cards, do not use NFC and are incompatible with current smart phones.
According to embodiments disclosed herein, a mobile or portable computing device such as a smart phone or a wearable computing device is enabled to operate as multiple proximity cards by storing multiple identification numbers corresponding to the multiple cards. The portable computing device may therefore replace one or more physical proximity cards for a user, and as such, the user need not carry proximity cards in addition to a smart phone or other portable electronic device that the user may typically carry anyway. Such a proximity card-enabled portable computing device may be used for keyless door access, contactless payment, and other functions fulfilled by proximity cards. Furthermore, such proximity card-enabled portable computing devices may be more easily provisioned than physical proximity cards (e.g., over the air (OTA) provisioning), and may provide improved security against cloning and theft relative to physical proximity cards (e.g., PIN unlock may be required before the card identification number is transmitted). As such, embodiments described herein provide convenience for users.
In one embodiment, a geographic area may be specified where a particular proximity card identification number stored by a portable computing device may be used (e.g., within a particular distance of a corresponding reader, doorway, facility, etc., where the card is applicable). This may be referred to as “geo-fencing.” The portable computing device may select the card/identification number based on the location of the user when the user contacts the portable computing device to the reader. For performance reasons or if a reader is located outside of the range of location sensing signals (e.g., GPS), the appropriate card identification number may be pre-selected, even before the user contacts the portable computing device to the reader as the user moves geographically. In this case, as the portable computing device tracks the user's location, the portable computing device may continuously or periodically determine which door reader (or set of door readers) the user is most likely to use next and pre-select the corresponding identification number.
Alternatively, in cases where geo-fencing is not used, or it is ambiguous which card to use, the portable computing device may be configured to transmit multiple sets of card data (ID numbers) sequentially to the reader. The reader may receive the sequentially transmitted ID numbers, and accept the appropriate ID number when received. This technique may be effective if the different cards use different modulation schemes or different code prefixes known to the reader, but this technique may have performance problems when more than one card of the same modulation scheme and same code prefixes are used. This may be because the reader performs a round-trip query with the access control system for each matching card and may ignore subsequent cards for a short period of time (as well as emit a “failed card” light/tone if it received an unacceptable card ID number before receiving the ID number for the matching card). When sending multiple cards sequentially, the portable computing device may predict which ID number is the most likely to be the correct ID number, and may transmit this ID number first, and may continue transmitting ID numbers in a descending order of likelihood. Each ID number may be modulated and repeated a set number of times depending on the modulation scheme, card format, and provisioning data on the portable computing device with configuration data about the card readers used at the premises. Likewise, in between each ID number, the portable computing device may determine an optimal gap time (if any) to wait and a modulation state (e.g., an antenna coil open circuited or closed) before modulating the next ID number, and this gap time and modulation state may depend on various factors including those described above.
The portable computing device may be configured to determine a likelihood that the collection of candidate ID numbers to be sequentially transmitted may cause performance or other problems with the reader, for example if all cards are of the same modulation scheme and have similar/identical prefixes. The phone may decide to prompt the user (e.g., may display a user interface) to select which card to present to the reader in this case, and/or in other situations.
Example embodiments are described in the following subsections for a proximity card emulation. For instance, the next subsection describes example embodiment for proximity card emulation with multiple proximity card ID numbers. The following subsection describes example embodiments for portable computing devices, and is followed by subsections describing embodiments for selection of identification numbers using geo-fencing and/or other predetermined criteria, and embodiments for managing security.
Example Proximity Card Emulation Embodiments
Embodiments may be implemented in a variety of environments and devices. For instance,
Computing device 102 may be any type of portable computing device, including a mobile computer or computing device (e.g., a Microsoft® Surface® device, a personal digital assistant (PDA), a laptop computer, a notebook computer, a tablet computer such as an Apple iPad™, a netbook, etc.), a mobile phone (e.g., a cell phone, a smart phone such as a Microsoft Windows® phone, an Apple iPhone, a Google Android™ phone, a Palm® device, a RIM Blackberry® device, etc.), a wearable computing device (such as a watch or glass) or other type of mobile computing device. Reader device 104 is a proximity card reader that may be implemented in one or more computer systems, and may be mobile (e.g., handheld) or stationary. In an embodiment, reader device 104 may include a surface or other designated area that a proximity card can contacted with by a user, although such a surface/area is not present or needed in all implementations.
Storage 118 and 124 may each include one or more of any type of storage mechanism to store data, including a magnetic disc (e.g., in a hard disk drive), an optical disc (e.g., in an optical disk drive), a magnetic tape (e.g., in a tape drive), a memory device such as a RAM device, a ROM device, etc., and/or any other suitable type of storage medium.
Portable computing device 102 may be used by one or more associated persons (“users”) for any number and type of functions. For example, in a smart phone implementation of computing device 102, a user may use computing device 102 to make phone calls (e.g., cellular calls, etc.), and the smart phone implementation of computing device 102 may have processing capability that enables one or more mobile applications to execute on computing device 102 (“mobile apps”). For instance, the user may interact with a browser of computing device 102 to browse the Internet, may use computing device 102 to check email, etc.
Furthermore, according to an embodiment, computing device 102 may be configured to emulate a proximity card for the user. As shown in
For example, portable computing device 102 may be positioned proximate to reader antenna 112 of reader device 104. The user may hold portable computing device 102 near reader antenna 112, or portable computing device 102 may be in a pocket, purse, or otherwise be carried by the user to be positioned proximate to reader antenna 112. Reader device 104 wirelessly communicates with portable computing device 102 by reader antenna 112 transmitting an interrogation signal 120, which is received by an antenna of portable computing device 102, such as device antenna 106. Portable computing device 102 responds to signal 120 by transmitting one of identification numbers 110a-110n retrieved from storage 118 to reader device 104 in a response signal 122. Response signal 122 is received by reader antenna 112.
For instance, in an embodiment, portable computing device 102 may operate according to
Flowchart 200 begins with step 202. In step 202, a carrier signal transmitted by a proximity card reader device is received at an antenna of the portable computing device. For example, as shown in
In step 204, an identification number of a plurality of identification numbers stored in storage of the portable computing device is accessed. For example, as shown in
In step 206, the identification number is modulated onto the carrier signal. For example, as shown in
For instance, in one embodiment, when a value of change in the electromagnetic field is minimum or least affected by antenna 106 (e.g., a loop of antenna 106 is open, or otherwise least modified or unmodified with a load), transceiver 130 may detect this change (or no change) in field value, which may be interpreted as a logic “0” (or “1”). When a value of change in the electromagnetic field is maximum or most affected by antenna 106 (e.g., a loop of antenna 106 is closed, or otherwise modified with a load), transceiver 130 may detect this field value, which may be interpreted as a logic “1” (or “0”). A string of detected logic “1”s and “0”s can be equated to the ID number being transmitted.
At reader device 104, functionality may be enabled if the ID number received from portable computing device 102 matches an expected value. Compare logic 116 at reader device 104 may compare each received ID number transmitted by portable computing device 102 to a list of acceptable ID numbers to determine whether functionality associated with reader device 104 may be enabled. For instance, compare logic 116 may receive ID number 110a from transceiver 130. Compare logic 116 may compare ID number 110a to one or more expected ID numbers in database 114, which is stored in storage 124. If compare logic 116 determines that the received ID number matches an expected ID number in database 114, the applicable function may be enabled to be performed by reader device 104 or by another mechanism (e.g., a monetary transaction may be enabled, access to a facility may be granted by unlock and/or opening a door, etc.). If compare logic 116 determines that the received ID number does not match any expected ID numbers in database 114, the applicable function may be denied, and a “failed card” light/tone and/or other indication of a failure may be enacted. Compare logic 116 may perform this comparison for each received ID number transmitted by portable computing device 102, at least until a matching ID number is received, or portable computing device 102 ceases transmitting ID numbers.
As such, portable computing device 102 enables a function to be easily and conveniently performed for a user through automatic wireless communications. Furthermore, by using portable computing device 102, the user does not need to carry separate proximity cards on their person, in addition to portable computing device 102.
It is noted that when portable computing device 102 stores multiple ID numbers, such as ID numbers 110a-110n, portable computing device 102 may provide one or more of the ID numbers to reader device 104 in response to interrogation signal 102. For instance, in one embodiment, portable computing device 102 may operate according to
Alternatively, in another embodiment, portable computing device 102 may operate according to
Example Portable Computing Device Embodiments
Portable computing device 102 may be configured in various ways to be enabled perform proximity card emulation with regard to multiple ID numbers. For instance,
Main processor 502 is a core, central processor of portable computing device 500. Sensor processor 516 is a processor that may optionally be present that is configured for managing sensors associated with portable computing device 500. In other embodiments, sensor processor 516 may not be present. In such an embodiment, main processor 502 may perform the functions of sensor processor 516 described herein, and/or one or more other auxiliary processors may be present that perform those functions. As shown in
Application 510 may be one of one or more applications hosted by portable computing device 500, which may include one or more first and/or third party applications. For instance, in an embodiment, application 510 may be an application that utilizes a proximity card ID number (e.g., an electronic payment application, etc.). Application 510 may be used to provision one or more ID numbers, to select an ID number from a list of ID numbers for transmission in response to a carrier signal, and/or for other functions related to ID numbers. Platform code 512 and driver 514 may be present to enable functionality described herein for modulation code 518 when sensor processor 516 is not present.
Antenna 524 may be a loop or coil antenna that includes any number of one or more loops or coils, or may be another type of antenna suitable for responding to proximity card reader interrogations. In one embodiment, antenna 524 may be an antenna dedicated to responding to proximity card reader interrogations for portable computing device 500. Alternatively, antenna 524 may be an antenna of portable computing device 500 that is used for responding to proximity card reader interrogations as well as for performing other communications for portable computing device 500. For instance, in an embodiment, antenna 524 may be a wireless charging antenna. In such an embodiment, antenna 524 may receive wireless charging signals from a remote wireless charger. The received wireless charging signals may be converted to a charge current used to charge a rechargeable battery of portable computing device 500 (e.g., by a wireless charging controller of portable computing device 500). Furthermore, the wireless charging antenna may be used to respond to proximity card reader interrogations as described herein. Example embodiments for a portable computing device having an antenna that may be used for responding to proximity card reader interrogations and receiving wireless charging signals from a remote wireless charger are described in co-pending, commonly owned U.S. patent application Ser. No. ______, titled “Smartphone Proximity Card Emulation,” filed on ______, which is incorporated by reference in its entirety herein.
Accordingly, portable computing device 500 of
As shown in
For example, in an embodiment, modulation code 518 of sensor processor 516 may be configured to retrieve an ID number from storage 118, and to output the retrieved ID number at a serial port 520 of sensor processor 516 as timed ID signal 536. Serial port 520 is a serial port of sensor processor 516 that may be used to output data serially, according to desired timing, in a more accurate manner than a GPIO port. While software-based card emulation implementations may implement “bit banging” to output a modulation bit stream from a GPIO pin, such a technique typically requires microsecond timing accuracy on the part of the processor and is relatively more processor intensive. As such, in an embodiment, serial port 520 may be used to output timed ID signal 536 as a modulation control signal. The clock used by modulation code 518 to time the output of timed ID signal 536 may be an internally generated clock or may be the clock included in detected carrier indication 534 (which may be derived from the incoming carrier signal). Modulation code 518 controls serial port 520 to output bits of the retrieved ID number in timed ID signal 536 in sync with the received carrier signal (or with another clock signal) according to a predetermined timing (e.g., with bit lengths and spacing according to the bit transmission requirements of the applicable proximity card communication protocol being used). Timed ID signal 536 may be generated in a manner to eliminate idle time between bit groupings (e.g., bytes) that may be present in conventional serial bit streams, and to continuously output each bit for each clock cycle driven by the carrier signal. Sensor processor 516 or modulation circuit 506 may configure a logic state of the output during idle time, if desired, to minimize any error in the output modulation seen by the reader as a result of the idle time. If an idle time between bit groupings cannot be avoided in an implementation, the idle time may be configured to be as predictable and short as possible, with the bit groups as large as possible. Serial port 520 may be configured to not require any additional signaling (e.g., such as a slave select), or the signaling may be generated locally (e.g., by hardwired pull up/down).
In an embodiment, an asynchronous serial port may be present in portable computing device 500, and may be used for readers that are not sensitive to the modulation signal having to be in sync with the carrier signal frequency. In this case, the received carrier signal may be used to determine whether a reader or wireless charger is in range, but not used as a clock input. The asynchronous serial port may be configured similarly to a synchronous port, except that the clock signal may be configured to match the expected frequency of the card reader (e.g., generally 125 kHz or less commonly 134 kHz). Note that in other embodiments, another type of processor port may be used to output timed ID signal 536, rather than serial port 520.
As shown in
One or more of ID numbers 110a-110n may be transmitted from portable computing device 500 in this manner (e.g., in series), and the transmission of the one or more ID numbers may be repeated any number of times, if desired, for improved probability of being received by the reader device. Each ID number may be spaced in time from the next ID number in the serial stream by any suitable amount of time. Accordingly, portable computing device 500 is enabled to emulate one or more proximity cards. Note that when a carrier signal is received, it may not be known to portable computing device 500 whether the carrier signal was transmitted by a proximity card reader. As such, portable computing device 500 may be configured in various ways to respond when the originator of a received carrier signal is not known. For example, in some embodiments, portable computing device 500 may automatically initially assume that a received carrier signal is transmitted by a reader. As such, portable computing device 500 may automatically enter a proximity card emulation mode, and begin transmitting one or more ID numbers in response. After transmitting the ID number(s) for a predetermined time period or duration, portable computing device 500 may cease transmitting the ID number(s). The predetermined time duration may have any length, such as a second, two seconds, further numbers of seconds, a portion of a second (e.g., a half second, 100 milliseconds, etc.), or any other time duration.
Alternatively, in some other embodiments, portable computing device 500 may initially analyze the carrier signal in an attempt to determine whether the carrier signal was transmitted by a proximity card reader, and may act in accordance with the determination (e.g., transmit the ID number(s) if the carrier signal is determined to be transmitted by a reader, do not transmit the ID number(s) if the carrier signal is determined to not be transmitted by a reader).
Proximity card carrier frequencies include 125 kHz and 134 kHz, and thus, in one embodiment, a “proximity card carrier frequency range” may be considered to be the frequency range of 125 kHz to 134 kHz. A proximity card carrier frequency range, which is a kilohertz carrier frequency range, is distinguished from and non-overlapping with a near field communication (NFC) communication carrier frequency range, which is a megahertz frequency range (e.g., including 13.56 MHz). The lower proximity card frequencies have a relatively low data transfer rate compared to NFC data communications occurring with the higher NFC communication frequency range (e.g., data rate of 106 kbit/sec to 424 kbit/sec).
Example Embodiments Using Predetermined Criteria for Selecting ID Numbers
As described above with respect to
In an embodiment, portable computing device 500 of
Location matcher 546 and location monitor 504 enable portable computing device 500 to select an ID number (or a subset of ID numbers) for transmission based on location. For instance, when a carrier signal is received (e.g., step 202 of
In such an embodiment, portable computing device 500 may operate according to
In step 602 of flowchart 600, the location of the portable computing device is determined. In an embodiment, location monitor 504 may determine a location of portable computing device 500. In one embodiment, location monitor 504 may receive detected carrier indication 534 from carrier detection module 530 (or from sensor processor 516) as a trigger to generate a location determination. Location monitor 504 may be configured to determine a location of portable computing device 500 in various ways, including using GPS (global positioning system) techniques, local positioning systems (e.g., using cellular base stations, Wi-Fi access points, radio towers, etc.), and/or using other positioning techniques, as would be known to persons skilled in the relevant art(s).
For instance, location monitor 504 may include one or more receivers that receive GPS signals from satellites for the purpose of determining a current location on Earth of the device. Location monitor 504 may calculate its location by timing the signals transmitted by the GPS satellites. Location monitor 504 may determine the transit time of each signal and may calculate the distance to each satellite. These distances, along with the locations of the satellites, may be used in a positioning algorithm (e.g., trilateration, etc.) to determine the location of location monitor 504. Location monitor 504 may determine the location in other ways, as would be known to persons skilled in the relevant art(s). Location monitor 504 may indicate the determined location in determined location 548 in any format, such as GPS coordinates, latitude, longitude, altitude, etc.
In step 604, whether the determined location of the portable computing device is in a geographic region of a plurality of geographic regions associated with the plurality of identification numbers is determined. In an embodiment, location matcher 546 compares determined location 548 to locations associated with ID numbers 110a-110n to select one or more of ID numbers 110a-110n to transmit in response to the carrier signal.
For instance, in an embodiment, each of ID numbers 110a-110n may include associated metadata.
Geographic region 704a is an indication of a geographic region associated with ID number 702a, and geographic region 704b is an indication of a geographic region associated with ID number 702b. For instance, geographic regions 704a and 704b may each indicate a building or other facility, a two- or three-dimensional area defined by geographic coordinates (including a single contiguous area or multiple separate areas), a radial distance from a central location (e.g., a location of a reader), and/or other indication of a geographic region. Geographic regions 704a and 704b indicate respective geographic areas in which reader devices for ID numbers 702a and 702b are located. Thus, ID number 702a is valid in geographic region 704a and may be transmitted in response to a reader device located therein, and ID number 702b is valid in geographic region 704b and may be transmitted in response to a reader device located therein.
Referring back to
In step 606, the identification number of the plurality of identification numbers associated with the geographic region in which the portable computing device is determined to be located is selected. In an embodiment, sensor processor 516 selects the one or more ID numbers of ID numbers 110a-110n that were indicated by location matcher 546 to have associated geographic regions containing determined location 548.
In step 608, the selected identification number is modulated onto the carrier signal. In an embodiment, according to step 206 of flowchart 200, sensor processor 516 transmits the selected ID number(s) to modulation circuit 506 via timed ID signal 536, and modulation circuit 506 modulates the ID number(s) onto the received carrier signal, to transmit response signal 122 from antenna 106.
In this manner, portable computing device 500 may select one or more card/identification numbers based on the location of the user when the user contacts portable computing device 500 to a reader. Such an embodiment may provide benefits with regards to security, because an identification number may not be transmitted from portable computing device 500 unless portable computing device 500 is within the geographic region associated with the identification number. Therefore, devices that transmit a proximity card reader carrier signal in an attempt to illicitly obtain an ID number will not receive the ID number in a response from portable computing device 500 (unless portable computing device 500 is within the designated geographic region for the ID number).
In another embodiment, time matcher 544 may enable portable computing device 500 to select an ID number (or a subset of ID numbers) for transmission based on time. For instance, when a carrier signal is received (e.g., step 202 of
In such an embodiment, portable computing device 500 may operate according to
In step 802 of flowchart 800, a plurality of time indications is stored, each of the plurality of the identification numbers associated with at least one of the time indications. As described above, each of ID numbers 110a-110n may include associated metadata, including a time indication. For instance, as shown in
In step 804, a time indication of the plurality time indications most closely associated with a current time is determined. In an embodiment, time matcher 544 compares the determined time to the time indications associated with ID numbers 110a-110n. In one embodiment, time matcher 544 indicates one or more of ID numbers 110a-110n that have time indications that overlap the determined time. In another embodiment, if there are no ID numbers 110a-110n that have time indications that overlap the determined time, time matcher 544 may indicate the ID number having the closest time indication to the determined time.
In step 806, the identification number of the plurality of identification numbers associated with the determined time indication is selected. In an embodiment, sensor processor 516 selects the one or more ID numbers of ID numbers 110a-110n that were indicated by time matcher 544 in step 804.
In step 808, the selected identification number is modulated onto the carrier signal. In an embodiment, according to step 206 of flowchart 200, sensor processor 516 transmits the selected ID number(s) to modulation circuit 506 via timed ID signal 536, and modulation circuit 506 modulates the ID number(s) onto the received carrier signal, to transmit response signal 122 from antenna 106.
In this manner, portable computing device 500 may select one or more card/identification numbers based on the time at which the user contacts portable computing device 500 to a reader. Such an embodiment may provide benefits with regards to security, because an identification number may not be transmitted from portable computing device 500 unless portable computing device 500 is within or close to the time indication associated with the identification number. Therefore, devices that transmit a proximity card reader carrier signal in attempts to illicitly obtain an identification number will not receive a response from portable computing device 500 (unless the current time is within or near the designated time indication).
In further embodiments, additional and/or alternative predetermined criteria may be used to select ID numbers for response. For instance, an ID number may be selected from ID numbers 110a-110n based on an encoding of the ID number, a format of the ID number, an encryption type of the ID number, a communication protocol of the reader, etc.
In still another embodiment, a user may be enabled to manually select one of ID numbers 110a-110n to provide in response to a reader interrogation. For instance, as shown in
For example, when a carrier signal is received (step 202 of
The user may be enabled to select a particular ID number for transmission in various ways. For instance, the user may interact with a touch screen, a keyboard, a thumb wheel, a stick, and/or other virtual or physical interface of portable computing device 500, and/or may make a gesture, may use voice, and/or may use other non-touch interface of portable computing device 500. In one exemplary embodiment, to select a particular ID number, the user may use a combination of UI elements, such as holding down a button of portable computing device 500 while typing in a PIN (personal ID number) to unlock a screen of portable computing device 500
Example Embodiments for Managing Security
As described above, proximity card-enabled portable computing devices may be more easily provisioned than physical proximity cards (e.g., over the air (OTA) provisioning), and may provide improved security against cloning and theft relative to physical proximity cards (e.g., PIN unlock may be required before the card identification number is transmitted). As such, embodiments described herein provide convenience for users.
In an embodiment, portable computing device 500 of
Screen lock module 538 is configured to lock a screen of portable computing device 500 from user access, and to enable a user to enter a code and/or perform other action to unlock the screen. For instance, the user may enter a PIN to portable computing device 500. Screen lock module 538 receives the entered PIN, and if the entered PIN matches a stored PIN, unlocks the screen for the user.
In an embodiment, portable computing device 500 is not enabled to transmit an ID number in response to a received carrier signal unless the screen is unlocked. When the screen is unlocked by the user, screen lock module 538 may transmit an unlocked screen indication to security module 542. After receiving the unlocked screen indication, security module 542 may provide a response enabled indication to modulation code 518. The response enabled indication enables modulation code 518 to transmit an ID number from sensor processor 516 for transmission by modulation circuit 506 via antenna 524. As such, security module 542 may be present to enable or disable modulation code 518 from transmitting one or more ID numbers based on one or more security factors or criteria (such as the screen being unlocked).
Furthermore, security module 542 may be configured to maintain security over ID numbers 110a-110n. Security module 542 may perform this function in various ways. For instance,
In step 902, a value of at least one identification number may be changed according to a predetermined factor to enhance security. For instance, in one embodiment, each time that an ID number is transmitted in response to a carrier signal, every N times that the ID number is transmitted in response to a carrier signal (where N≧1), every time a predetermined time period passes, and/or based on another predetermined factor, security module 542 may generate or retrieve a new value for the ID number. In one example (an “online” technique), security module 542 may communicate with a remote server (e.g., via transceiver 128 and device antenna 106 of
In each case, security module 542 may store the new replacement value in storage 118, overwriting the stored, prior value of the ID number. The remove server also replaces the remote version of the ID number with the new replacement value at the reader device (e.g., in database 124 in
Example Portable Computing Device Embodiments
Portable computing device 102, reader device 104, compare logic 116, processor 126, portable computing device 500, main processor 502, location monitor 504, modulation circuit 506, application 510, platform code 512, driver 514, sensor processor 516, modulation code 518, carrier detection module 530, screen lock module 538, UI module 540, security module 542, time matcher 544, location matcher 546, flowchart 200, step 302, step 402, flowchart 600, flowchart 800, and/or step 902 may be implemented in hardware, or hardware combined with software and/or firmware. For example, portable computing device 102, reader device 104, compare logic 116, processor 126, portable computing device 500, main processor 502, modulation circuit 506, application 510, platform code 512, driver 514, sensor processor 516, modulation code 518, carrier detection module 530, screen lock module 538, UI module 540, security module 542, time matcher 544, location matcher 546, flowchart 200, step 302, step 402, flowchart 600, flowchart 800, and/or step 902 may be implemented as computer program code/instructions configured to be executed in one or more processors and stored in a computer readable storage medium. Alternatively, portable computing device 102, reader device 104, compare logic 116, processor 126, portable computing device 500, main processor 502, modulation circuit 506, application 510, platform code 512, driver 514, sensor processor 516, modulation code 518, carrier detection module 530, screen lock module 538, UI module 540, security module 542, time matcher 544, location matcher 546, flowchart 200, step 302, step 402, flowchart 600, flowchart 800, and/or step 902 may be implemented as hardware logic/electrical circuitry.
For instance, in an embodiment, one or more of compare logic 116, processor 126, main processor 502, modulation circuit 506, application 510, platform code 512, driver 514, sensor processor 516, modulation code 518, carrier detection module 530, screen lock module 538, UI module 540, security module 542, time matcher 544, location matcher 546, flowchart 200, step 302, step 402, flowchart 600, flowchart 800, and/or step 902 may be implemented together in a system-on-chip (SoC). The SoC may include an integrated circuit chip that includes one or more of a processor (e.g., a central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.), memory, one or more communication interfaces, and/or further circuits and/or embedded firmware to perform its functions.
As shown in
Computing device 1000 may include one or more of the following drives: a hard disk drive 1014 for reading from and writing to a hard disk, a magnetic disk drive 1016 for reading from or writing to a removable magnetic disk 1018, and an optical disk drive 1020 for reading from or writing to a removable optical disk 1022 such as a CD ROM, DVD ROM, or other optical media. Hard disk drive 1014, magnetic disk drive 1016, and optical disk drive 1020 are connected to bus 1006 by a hard disk drive interface 1024, a magnetic disk drive interface 1026, and an optical drive interface 1028, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the computer. Although a hard disk, a removable magnetic disk and a removable optical disk are described, other types of computer-readable storage media can be used to store data, such as flash memory cards, digital video disks, RAMs, ROMs, and the like.
A number of program modules may be stored on the hard disk, magnetic disk, optical disk, ROM, or RAM. These programs include an operating system 1030, one or more application programs 1032, other program modules 1034, and program data 1036. Application programs 1032 or program modules 1034 may include, for example, computer program logic (e.g., computer program code or instructions) for implementing compare logic 116, processor 126, main processor 502, modulation circuit 506, application 510, platform code 512, driver 514, sensor processor 516, modulation code 518, carrier detection module 530, screen lock module 538, UI module 540, security module 542, time matcher 544, location matcher 546, flowchart 200, step 302, step 402, flowchart 600, flowchart 800, and/or step 902 (including any step of flowcharts 200, 700, and 800), and/or further embodiments described herein.
A user may enter commands and information into the computing device 1000 through input devices such as keyboard 1038 (which may be physical or virtual) and pointing device 1040, when present. Other input devices (not shown) may include a microphone, joystick, game pad, scanner, a touch screen and/or touch pad, a voice recognition system to receive voice input, a gesture recognition system to receive gesture input, or the like. These and other input devices are often connected to processor 1002 through a serial port interface 1042 that is coupled to bus 1006, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB).
A display screen 1044 is also connected to bus 1006 via an interface, such as a video adapter 1046. Display screen 1044 may be external to, or incorporated in computing device 1000. Display screen 1044 may display information, as well as being a user interface for receiving user commands and/or other information (e.g., by touch, finger gestures, virtual keyboard, etc.). In addition to display screen 1044, computing device 1000 may include other internal or peripheral output devices (not shown) such as speakers and printers.
Computing device 1000 is connected to a network 1048 (e.g., the Internet) through an adaptor or network interface 1050, a modem 1052, or other means for establishing communications over the network. Modem 1052, which may be internal or external, may be connected to bus 1006 via serial port interface 1042, as shown in
As used herein, the terms “computer program medium,” “computer-readable medium,” and “computer-readable storage medium” are used to generally refer to media such as the hard disk associated with hard disk drive 1014, removable magnetic disk 1018, removable optical disk 1022, as well as other media such as flash memory cards, digital video disks, RAMs, ROMs, and further types of physical storage media. Such computer-readable storage media are distinguished from and non-overlapping with communication media (do not include communication media). Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wireless media such as acoustic, RF, infrared and other wireless media, as well as signals transmitted over wires. Embodiments are also directed to such communication media.
As noted above, computer programs and modules (including application programs 1032 and other program modules 1034) may be stored on the hard disk, magnetic disk, optical disk, ROM, or RAM. Such computer programs may also be received via network interface 1050, serial port interface 1042, or any other interface type. Such computer programs, when executed or loaded by an application, enable computing device 1000 to implement features of embodiments of the present invention discussed herein. Accordingly, such computer programs represent controllers of the computing device 1000.
The invention is also directed to computer program products comprising software stored on any computer useable medium. Such software, when executed in one or more data processing devices, causes a data processing device(s) to operate as described herein. Embodiments of the present invention employ any computer-useable or computer-readable medium, known now or in the future. Examples of computer-readable mediums include, but are not limited to storage devices such as RAM, hard drives, floppy disks, CD ROMs, DVD ROMs, zip disks, tapes, magnetic storage devices, optical storage devices, MEMs, nanotechnology-based storage devices, and the like.
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be understood by those skilled in the relevant art(s) that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. Accordingly, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
This application claims the benefit of U.S. Provisional Application No. 61/809,215, filed on Apr. 5, 2013, which is incorporated by reference herein in its entirety. This application is also related to the following U.S. patent application, which also claims the benefit of U.S. Provisional Patent Application No. 61/809,215, and which is also incorporated by reference herein: U.S. patent application Ser. No. ______, titled “Smartphone Proximity Card Emulation,” filed on Jun. 14, 2013.
Number | Date | Country | |
---|---|---|---|
61809215 | Apr 2013 | US |